[enh] dbus interface missing signals

Bug #219889 reported by Hakan Erduman on 2008-04-20
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.

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

Working on it.

Changed in exaile:
assignee: sjohannes → caio-alonso
Changed in exaile:
status: Confirmed → Fix Committed
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) on 2009-08-24
Changed in exaile:
status: Fix Committed → Fix Released
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
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
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.

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

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.

Hakan Erduman (aquaherd) wrote :

Thanks again, fixed.

Please merge if OK.

Changed in exaile:
status: In Progress → Fix Committed
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) on 2010-03-16
Changed in exaile:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers