From: Arun Raghavan Date: Wed, 27 Jul 2011 16:21:01 +0000 (+0530) Subject: doc: Document subscription events better X-Git-Url: https://code.delx.au/pulseaudio/commitdiff_plain/4e8bb96975699eec63977d37c38e2bc8dc1eb9d2 doc: Document subscription events better Add an explanation and some example code to make it easier for people writing client-side code to figure out how subscription events work. --- diff --git a/src/pulse/subscribe.h b/src/pulse/subscribe.h index f1e17ca1..667a8874 100644 --- a/src/pulse/subscribe.h +++ b/src/pulse/subscribe.h @@ -42,6 +42,26 @@ * The application sets the notification mask using pa_context_subscribe() * and the function that will be called whenever a notification occurs using * pa_context_set_subscribe_callback(). + * + * The callback will be called with a \ref pa_subscription_event_type_t + * representing the event that caused the callback. Clients can examine what + * object changed using \ref PA_SUBSCRIPTION_EVENT_FACILITY_MASK. The actual + * event type can then be extracted with \ref PA_SUBSCRIPTION_EVENT_TYPE_MASK. + * Please note that the masked values are integers, not flags (so you will + * check the object/event type using a comparison not a binary AND). For + * example, the callback might look something like: + * +@verbatim +void my_subscription_callback(pa_context *c, pa_subscription_event_type_t t, + uint32_t idx, void *userdata) +{ + if ((t & PA_SUBSCRIPTION_EVENT_FACILITY_MASK) == PA_SUBSCRIPTION_EVENT_SOURCE) { + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_NEW) { + ... a source was added, let's do stuff! ... + } + } +} +@endverbatim */ /** \file