15.04.2014 16:56, Tanu Kaskinen wrote: > +typedef int (*pa_sink_get_mute_cb_t)(pa_sink *s, bool *mute); > + > struct pa_sink { > pa_msgobject parent; > > @@ -191,14 +193,14 @@ struct pa_sink { > * set this callback. */ > pa_sink_cb_t write_volume; /* may be NULL */ > > - /* Called when the mute setting is queried. A PA_SINK_MESSAGE_GET_MUTE > - * message will also be sent. Called from IO thread if PA_SINK_DEFERRED_VOLUME > - * flag is set otherwise from main loop context. If refresh_mute is false > - * neither this function is called nor a message is sent. > + /* Called when the mute setting is queried. Called from the IO thread if > + * the PA_SINK_DEFERRED_VOLUME flag is set, otherwise called from the main > + * thread. The implementation is expected to set the mute parameter and > + * return 0 on success, or return -1 on failure. > * > * You must use the function pa_sink_set_get_mute_callback() to > * set this callback. */ > - pa_sink_cb_t get_mute; /* may be NULL */ > + pa_sink_get_mute_cb_t get_mute; /* may be NULL */ It is not clear from the documentation how a NULL get_mute meets the expectation above (i.e. get_mute == NULL has unclear semantics). Same for sources. -- Alexander E. Patrakov