mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-29 05:40:23 -04:00
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.
This commit is contained in:
parent
441bd54bdc
commit
4e8bb96975
1 changed files with 20 additions and 0 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue