def connect(self, server=None): '''Connect to pulseaudio server. :Parameters: `server` : str Server to connect to, or ``None`` for the default local server (which may be spawned as a daemon if no server is found). ''' # TODO disconnect from old assert not self._context, 'Already connected' # Create context app_name = self.get_app_name() self._context = pa.pa_context_new(self.mainloop, app_name) # Context state callback self._state_cb_func = pa.pa_context_notify_cb_t(self._state_cb) pa.pa_context_set_state_callback(self._context, self._state_cb_func, None) # Connect check(pa.pa_context_connect(self._context, server, 0, None)) self.lock() check(pa.pa_threaded_mainloop_start(self.threaded_mainloop)) try: # Wait for context ready. self.wait() if pa.pa_context_get_state(self._context) != pa.PA_CONTEXT_READY: check(-1) finally: self.unlock()
def connect(self, server=None): """Connect to pulseaudio server. :Parameters: `server` : str Server to connect to, or ``None`` for the default local server (which may be spawned as a daemon if no server is found). """ # TODO disconnect from old assert not self._context, 'Already connected' # Create context app_name = self.get_app_name() self._context = pa.pa_context_new(self.mainloop, app_name.encode('ASCII')) # Context state callback self._state_cb_func = pa.pa_context_notify_cb_t(self._state_cb) pa.pa_context_set_state_callback(self._context, self._state_cb_func, None) # Connect check( pa.pa_context_connect(self._context, server, 0, None) ) with self.lock: check( pa.pa_threaded_mainloop_start(self.threaded_mainloop) ) # Wait for context ready. self.wait() if pa.pa_context_get_state(self._context) != pa.PA_CONTEXT_READY: check(-1)