Commit b8444fec authored by André's avatar André

music_track_listener: recognize playing song

when listener is enabled
parent b56f9c6f
......@@ -2099,11 +2099,13 @@ class Interface:
if not self.music_track_changed_signal:
self.music_track_changed_signal = listener.connect(
'music-track-changed', self.music_track_changed)
listener.start()
def disable_music_listener(self):
listener = MusicTrackListener.get()
listener.disconnect(self.music_track_changed_signal)
self.music_track_changed_signal = None
listener.stop()
@staticmethod
def music_track_changed(unused_listener, music_track_info, account=None):
......
......@@ -55,6 +55,7 @@ class MusicTrackListener(GObject.GObject):
super().__init__()
self.players = {}
def start(self):
proxy = Gio.DBusProxy.new_for_bus_sync(
Gio.BusType.SESSION,
Gio.DBusProxyFlags.NONE,
......@@ -92,6 +93,11 @@ class MusicTrackListener(GObject.GObject):
if name.startswith(MPRIS_PLAYER_PREFIX):
self._add_player(name)
def stop(self):
for name in list(self.players):
if name.startswith(MPRIS_PLAYER_PREFIX):
self._remove_player(name)
def _signal_name_owner_changed(self, connection, sender_name, object_path,
interface_name, signal_name, parameters, *user_data):
name, oldOwner, newOwner = parameters
......@@ -204,4 +210,5 @@ if __name__ == '__main__':
print(music_track_info.title)
listener = MusicTrackListener.get()
listener.connect('music-track-changed', music_track_change_cb)
listener.start()
GLib.MainLoop().run()
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment