simplify events and commands

This commit is contained in:
Wim Taymans 2016-10-24 15:30:15 +02:00
parent 0373f73bac
commit d3dd90bb05
25 changed files with 220 additions and 252 deletions

View file

@ -216,7 +216,7 @@ alsa_on_fd_events (SpaPollNotifyData *data)
SpaALSAMonitor *this = data->user_data;
struct udev_device *dev;
const char *str;
SpaMonitorEvent event;
SpaMonitorItem *item;
dev = udev_monitor_receive_device (this->umonitor);
if (fill_item (&this->uitem, dev) < 0)
@ -225,16 +225,17 @@ alsa_on_fd_events (SpaPollNotifyData *data)
if ((str = udev_device_get_action (dev)) == NULL)
str = "change";
item = &this->uitem.item;
if (strcmp (str, "add") == 0) {
event.type = SPA_MONITOR_EVENT_TYPE_ADDED;
item->event.type = SPA_MONITOR_EVENT_TYPE_ADDED;
} else if (strcmp (str, "change") == 0) {
event.type = SPA_MONITOR_EVENT_TYPE_CHANGED;
item->event.type = SPA_MONITOR_EVENT_TYPE_CHANGED;
} else if (strcmp (str, "remove") == 0) {
event.type = SPA_MONITOR_EVENT_TYPE_REMOVED;
item->event.type = SPA_MONITOR_EVENT_TYPE_REMOVED;
}
event.data = &this->uitem.item;
event.size = sizeof (this->uitem);
this->event_cb (&this->monitor, &event, this->user_data);
item->event.size = sizeof (this->uitem);
this->event_cb (&this->monitor, &item->event, this->user_data);
return 0;
}

View file

@ -241,14 +241,12 @@ xrun_recovery (SpaALSAState *state, snd_pcm_t *hndl, int err)
static void
pull_input (SpaALSAState *state, void *data, snd_pcm_uframes_t frames)
{
SpaNodeEvent event;
SpaNodeEventNeedInput ni;
event.type = SPA_NODE_EVENT_TYPE_NEED_INPUT;
event.size = sizeof (ni);
event.data = &ni;
ni.event.type = SPA_NODE_EVENT_TYPE_NEED_INPUT;
ni.event.size = sizeof (ni);
ni.port_id = 0;
state->event_cb (&state->node, &event, state->user_data);
state->event_cb (&state->node, &ni.event, state->user_data);
}
static int
@ -370,7 +368,6 @@ mmap_read (SpaALSAState *state)
if (b) {
SpaNodeEvent event;
SpaNodeEventHaveOutput ho;
SpaData *d;
@ -380,11 +377,10 @@ mmap_read (SpaALSAState *state)
b->next = NULL;
SPA_QUEUE_PUSH_TAIL (&state->ready, SpaALSABuffer, next, b);
event.type = SPA_NODE_EVENT_TYPE_HAVE_OUTPUT;
event.size = sizeof (ho);
event.data = &ho;
ho.event.type = SPA_NODE_EVENT_TYPE_HAVE_OUTPUT;
ho.event.size = sizeof (ho);
ho.port_id = 0;
state->event_cb (&state->node, &event, state->user_data);
state->event_cb (&state->node, &ho.event, state->user_data);
}
return 0;
}