[pulseaudio-commits] src/pulse
Arun Raghavan
arun at kemper.freedesktop.org
Wed Jul 27 19:40:17 PDT 2011
src/pulse/subscribe.h | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
New commits:
commit 4e8bb96975699eec63977d37c38e2bc8dc1eb9d2
Author: Arun Raghavan <arun.raghavan at collabora.co.uk>
Date: Wed Jul 27 21:51:01 2011 +0530
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 f1e17ca..667a887 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:
+ *
+ at 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! ...
+ }
+ }
+}
+ at endverbatim
*/
/** \file
More information about the pulseaudio-commits
mailing list