exaile / exaile

:notes: Cross-platform music player
https://www.exaile.org
GNU General Public License v2.0
364 stars 82 forks source link

Port Exaile from python-dbus to a different DBus implementation #406

Open genodeftest opened 7 years ago

genodeftest commented 7 years ago

According to the official DBusBindings page, applications should use pydbus or GDBus (GLib's Gio.DBus) instead.

Affects: Exaile 4.0.0 Beta 2 (and current git master as of 2017-06-25)

Since GDBus is part of GLib (and Exaile already heavily depends on GLib), I'd suggest we use GDBus. Any objections?

Update:

sjohannes commented 7 years ago

GDBus is nice because it doesn't add any dependencies but the API is bleh. For the mpris2 plugin (which uses GDBus) I wrote a dbushelper module that routes method calls and property accesses to a regular Python object; that makes it less annoying.

Are you planning to work on this? Otherwise I can do it, but probably after 4.0.

genodeftest commented 7 years ago

GDBus is nice because it doesn't add any dependencies but the API is bleh. For the mpris2 plugin (which uses GDBus) I wrote a dbushelper module that routes method calls and property accesses to a regular Python object; that makes it less annoying.

Maybe we can move that to xl.common or somewhere else. I haven't looked into DBus in detail, especially not into GDBus.

Are you planning to work on this? Otherwise I can do it, but probably after 4.0.

I don't plan on doing any work on the DBus interface, no. Maybe the best solution would be for any of us who starts working on this to leave a note here.

I might try to replace the xl/hal dbus-based implementation by GIO API such as GVolume, GDrive, GMount, GVolumeMonitor though. This is not the main usage of dbus afaik, and I'll add a comment here when/if I start working on that.

genodeftest commented 7 years ago

I might try to replace the xl/hal dbus-based implementation by GIO API such as GVolume, GDrive, GMount, GVolumeMonitor though. This is not the main usage of dbus afaik, and I'll add a comment here when/if I start working on that.

Actually, that might get pretty hard to get right due to a few bugs in the API: https://gitlab.gnome.org/GNOME/glib/-/issues/1119 https://gitlab.gnome.org/GNOME/glib/-/issues/261 https://gitlab.gnome.org/GNOME/glib/-/issues/304 (risky)

sjohannes commented 6 years ago

There's a WIP for this in https://github.com/sjohannes/exaile/tree/gdbus . I haven't thoroughly tested it, and haven't touched hal.py.