diff --git a/src/client.py b/src/client.py index 551f524..43de37c 100644 --- a/src/client.py +++ b/src/client.py @@ -143,6 +143,8 @@ class Client(Base): SIGNAL_LOAD_OUTPUT_DEVICES = 'load-output-devices' # Signal: load albumart SIGNAL_LOAD_ALBUMART = 'albumart' + # Signal: custom (dummy) event to trigger callback + SIGNAL_CUSTOM = 'custom' # Signal: error SIGNAL_ERROR = 'error' # Buffer size for reading from socket @@ -317,6 +319,11 @@ class Client(Base): return albumart + def get_custom(self, name): + self._logger.info("get custom \"%s\"", name) + self._add_action_signal(Client.SIGNAL_CUSTOM, self._get_custom, name) + + # Private methods def _connect(self, host, port, password): @@ -664,6 +671,10 @@ class Client(Base): return (album, None) + def _get_custom(self, name): + return (name, ) + + def _start_worker(self): """Start the worker thread which waits for action to be performed.""" self._logger.debug("start worker") diff --git a/src/window.py b/src/window.py index 26eed81..a64fded 100644 --- a/src/window.py +++ b/src/window.py @@ -57,6 +57,7 @@ class Window(Adw.ApplicationWindow): SETTING_ITEM_SIZE = 'item-size' SETTING_SORT_ORDER = 'sort-order' SETTING_SORT_TYPE = 'sort-type' + _CUSTOM_STARTUP_COMPLETE = 'startup-complete' # Widgets toolbar_view = Gtk.Template.Child() @@ -162,6 +163,7 @@ class Window(Adw.ApplicationWindow): self._mcg.connect_signal(client.Client.SIGNAL_INIT_ALBUMS, self.on_mcg_init_albums) self._mcg.connect_signal(client.Client.SIGNAL_LOAD_ALBUMS, self.on_mcg_load_albums) self._mcg.connect_signal(client.Client.SIGNAL_LOAD_ALBUMART, self.on_mcg_load_albumart) + self._mcg.connect_signal(client.Client.SIGNAL_CUSTOM, self.on_mcg_custom) self._mcg.connect_signal(client.Client.SIGNAL_ERROR, self.on_mcg_error) self._settings.connect('changed::'+Window.SETTING_PANEL, self.on_settings_panel_changed) self._settings.connect('changed::'+Window.SETTING_ITEM_SIZE, self.on_settings_item_size_changed) @@ -391,6 +393,7 @@ class Window(Adw.ApplicationWindow): GObject.idle_add(self._connect_connected) self._mcg.load_playlist() self._mcg.load_albums() + self._mcg.get_custom(Window._CUSTOM_STARTUP_COMPLETE) self._mcg.get_status() self._mcg.get_stats() self._mcg.get_output_devices()