pulseaudio: subscribe to default sink changes

This commit is contained in:
theswitch 2015-04-05 15:36:53 +10:00
parent 83c04fd245
commit bd7ed9704f
2 changed files with 9 additions and 1 deletions

View File

@ -113,10 +113,15 @@ class PulseAudio(Module, ColorRangeModule):
pa_context_set_subscribe_callback(context, self._update_cb, None) pa_context_set_subscribe_callback(context, self._update_cb, None)
pa_operation_unref(pa_context_subscribe( pa_operation_unref(pa_context_subscribe(
context, PA_SUBSCRIPTION_EVENT_CHANGE | PA_SUBSCRIPTION_MASK_SINK, self._success_cb, None)) context, PA_SUBSCRIPTION_EVENT_CHANGE | PA_SUBSCRIPTION_MASK_SINK | PA_SUBSCRIPTION_MASK_SERVER, self._success_cb, None))
def update_cb(self, context, t, idx, userdata): def update_cb(self, context, t, idx, userdata):
"""A sink property changed, calls request_update""" """A sink property changed, calls request_update"""
if t & PA_SUBSCRIPTION_EVENT_FACILITY_MASK == PA_SUBSCRIPTION_EVENT_SERVER:
pa_operation_unref(
pa_context_get_server_info(context, self._server_info_cb, None))
self.request_update(context) self.request_update(context)
def sink_info_cb(self, context, sink_info_p, _, __): def sink_info_cb(self, context, sink_info_p, _, __):

View File

@ -18,7 +18,10 @@ PA_OPERATION_CANCELLED = 2
PA_OPERATION_DONE = 1 PA_OPERATION_DONE = 1
PA_OPERATION_RUNNING = 0 PA_OPERATION_RUNNING = 0
PA_SUBSCRIPTION_EVENT_CHANGE = 16 PA_SUBSCRIPTION_EVENT_CHANGE = 16
PA_SUBSCRIPTION_EVENT_FACILITY_MASK = 15
PA_SUBSCRIPTION_EVENT_SERVER = 7
PA_SUBSCRIPTION_MASK_SINK = 1 PA_SUBSCRIPTION_MASK_SINK = 1
PA_SUBSCRIPTION_MASK_SERVER = 0x80
class pa_sink_port_info(Structure): class pa_sink_port_info(Structure):