Philipp Hörist pushed to branch master at gajim / gajim
Commits: 0e9aed6a by André Apitzsch at 2020-11-07T15:55:20+01:00 MusicTrackListener: Get currently playing song asynchronously
Fixes #10339.
- - - - -
1 changed file:
- gajim/common/dbus/music_track.py
Changes:
===================================== gajim/common/dbus/music_track.py ===================================== @@ -93,9 +93,7 @@ def start(self): self._add_player(name)
for name in list(self.players): - info = self._get_playing_track(name) - if info is not None: - self._emit(info) + self._get_playing_track(name)
def stop(self): for name in list(self.players): @@ -154,10 +152,7 @@ def _signal_received(self, '''Signal handler for PropertiesChanged event'''
log.info('Signal received: %s - %s', interface_name, parameters) - - info = self._get_playing_track(user_data[0]) - - self._emit(info) + self._get_playing_track(user_data[0])
@staticmethod def _get_music_info(properties): @@ -189,18 +184,23 @@ def _get_playing_track(self, name): 'org.freedesktop.DBus.Properties', None)
- try: - result = proxy.call_sync( - "GetAll", - GLib.Variant('(s)', ('org.mpris.MediaPlayer2.Player',)), - Gio.DBusCallFlags.NONE, - -1, - None) - except GLib.Error as error: - log.debug("Could not enable music listener: %s", error.message) - return None + def proxy_call_finished(proxy, res): + try: + result = proxy.call_finish(res) + except GLib.Error as error: + log.debug("Could not enable music listener: %s", error.message) + return + + info = self._get_music_info(result[0]) + if info is not None: + self._emit(info)
- return self._get_music_info(result[0]) + proxy.call("GetAll", + GLib.Variant('(s)', ('org.mpris.MediaPlayer2.Player',)), + Gio.DBusCallFlags.NONE, + -1, + None, + proxy_call_finished)
def enable():
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/0e9aed6a32099ef88fdfd763a000417f5...