pulsedevicemonitor: pa_subscription_event_t are enums, not flags

Coverity 1195132
This commit is contained in:
Olivier Crête 2014-05-04 01:13:24 -04:00
parent 717bbbbe70
commit 6c8e42944a

View file

@ -257,22 +257,24 @@ context_subscribe_cb (pa_context * context, pa_subscription_event_type_t type,
{ {
GstPulseDeviceMonitor *self = userdata; GstPulseDeviceMonitor *self = userdata;
GstDeviceMonitor *monitor = userdata; GstDeviceMonitor *monitor = userdata;
pa_subscription_event_type_t facility =
type & PA_SUBSCRIPTION_EVENT_FACILITY_MASK;
pa_subscription_event_type_t event_type =
type & PA_SUBSCRIPTION_EVENT_TYPE_MASK;
if (facility != PA_SUBSCRIPTION_EVENT_SOURCE &&
if (!(type & (PA_SUBSCRIPTION_EVENT_SOURCE | PA_SUBSCRIPTION_EVENT_SINK))) facility != PA_SUBSCRIPTION_EVENT_SINK)
return; return;
if (event_type == PA_SUBSCRIPTION_EVENT_NEW) {
if ((type & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_NEW) {
/* Microphone in the source output has changed */ /* Microphone in the source output has changed */
if (type & PA_SUBSCRIPTION_EVENT_SOURCE) if (facility == PA_SUBSCRIPTION_EVENT_SOURCE)
pa_context_get_source_info_by_index (context, idx, get_source_info_cb, pa_context_get_source_info_by_index (context, idx, get_source_info_cb,
self); self);
else if (type & PA_SUBSCRIPTION_EVENT_SINK) else if (facility == PA_SUBSCRIPTION_EVENT_SINK)
pa_context_get_sink_info_by_index (context, idx, get_sink_info_cb, self); pa_context_get_sink_info_by_index (context, idx, get_sink_info_cb, self);
} else if ((type & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == } else if (event_type == PA_SUBSCRIPTION_EVENT_REMOVE) {
PA_SUBSCRIPTION_EVENT_REMOVE) {
GstPulseDevice *dev = NULL; GstPulseDevice *dev = NULL;
GList *item; GList *item;