[enh] dbus interface missing signals

Bug #219889 reported by Hakan Erduman
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Exaile
Fix Released
Medium
Hakan Erduman

Bug Description

For remote controlling exaile from dockapps, docklets or else, the provided dbus interface is fine.
However, cleints need to poll the interface in second intervals to get notified of:
- Track changes
- State changes (play/pause/stop)

Please add these signals, they need not have any parameters.

Revision history for this message
Johannes Sasongko (sjohannes) wrote :

Assigning to me, but not working on it right now. Any takers welcome.

Changed in exaile:
assignee: nobody → sjohannes
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
qoiwejqioejqio (qioeujqioejqioe-deactivatedaccount) wrote :

Working on it.

Changed in exaile:
assignee: sjohannes → caio-alonso
Changed in exaile:
status: Confirmed → Fix Committed
Revision history for this message
Hakan Erduman (aquaherd) wrote :

Caio, your branch 'just works'.

However, the mainline DBus bindings seems to have undergone a major overhaul.

Could you re-merge?

reacocard (reacocard)
Changed in exaile:
status: Fix Committed → Fix Released
Revision history for this message
reacocard (reacocard) wrote :

re-opening since it seems that branch never actually got merged. branch is also woefully out of date so cant be merged to trunk as-is.

Changed in exaile:
status: Fix Released → Confirmed
Revision history for this message
Hakan Erduman (aquaherd) wrote :

I think I have made it myself.

Changed in exaile:
assignee: Caio Alonso (caio-alonso) → Hakan Erduman (aquaherd)
status: Confirmed → In Progress
Revision history for this message
reacocard (reacocard) wrote :

branch has a couple of problems:

 * in GetTrackAttr, you access Track.tags directly. Please use Track.get_tag_raw instead.
 * you have various modules in Exaile calling into the dbus module directly to send the signals - please don't do this since it makes those module harddep on dbus. Instead, those modules should send events when appropriate, and dbus should catch those events and fire its signals from those.

Revision history for this message
Hakan Erduman (aquaherd) wrote :

Thanks Aren,

I think I have it now:

using get_tag_raw.

xldbus.py is now self-contained so that it subscribes to the global events like the main window does.
(this needs to reorder initialization of xldbus after self.__init in xl/main.py.)

regards,
Hakan

Revision history for this message
reacocard (reacocard) wrote :

You cannot reorder dbus in init, since we have to have it as early as possible in order to do single-instance stuff. I would just call _connect_signals after the main part of Exaile is inited and leave the main dbus initialization in its current position. Other than that it's looking pretty good.

Revision history for this message
Hakan Erduman (aquaherd) wrote :

Thanks again, fixed.

Please merge if OK.

Changed in exaile:
status: In Progress → Fix Committed
Revision history for this message
reacocard (reacocard) wrote :

fixed in trunk/2725

also, please don't set state to fix committed until its fixed in trunk - separate branches don't count.

Changed in exaile:
milestone: none → 0.3.1
reacocard (reacocard)
Changed in exaile:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.