error while get current_position through dbus

Bug #399610 reported by bones
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Exaile
Fix Released
Low
Steve Dodier-Lazaro

Bug Description

my machine info:
OS: gentoo
Exaile : 0.2.99.2
media-libs/gstreamer-0.10.23
ERROR info:

$ dbus-send --print-reply --dest=org.exaile.ExaileInterface /org/exaile org.exaile.ExaileInterface.current_position
Error org.freedesktop.DBus.Python.AttributeError: Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/dbus/service.py", line 702, in _message_cb
    retval = candidate_method(self, *args, **keywords)
  File "/usr/lib/exaile/xl/xldbus.py", line 151, in current_position
    return self.exaile.player.get_current_position()
AttributeError: 'GSTPlayer' object has no attribute 'get_current_position'

Revision history for this message
Steve Dodier-Lazaro (sidi) wrote :

This bug is apparently fixed in the Alpha 3.

Revision history for this message
Steve Dodier-Lazaro (sidi) wrote :

Please reopen this bug if it still happens for you. I couldn't reproduce it with the Alpha 3.

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

Why Exaile's dbus interface always changing? and now I using Exaile 0.3.0
But I cann't get current_playing_filename through dbus any more?
Before I can get this using:
dbus-send --print-reply --dest=org.exaile.ExaileInterface /org/exaile org.exaile.ExaileInterface.get_track_attr string:loc

Now I execute
dbus-send --print-reply --dest=org.exaile.Exaile /org/exaile/Exaile org.exaile.Exaile.GetTrackAttr string:loc
but return nothing...

And, another problem:
when player is idle (not playing anything),execute
dbus-send --print-reply --dest=org.exaile.Exaile /org/exaile/Exaile org.exaile.Exaile.CurrentPosition
whill cause this:
Error org.freedesktop.DBus.Python.TypeError: Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/dbus/service.py", line 702, in _message_cb
    retval = candidate_method(self, *args, **keywords)
  File "/usr/lib/exaile/xl/xldbus.py", line 264, in CurrentPosition
    length = float(self.GetTrackAttr('__length'))
TypeError: float() argument must be a string or a number

I think retrun a string 'Not Playing' is better.

Changed in exaile:
assignee: nobody → Steve Dodier (sidi)
status: Fix Released → New
Revision history for this message
Mathias Brodala (mathbr) wrote :

> Now I execute
> dbus-send --print-reply --dest=org.exaile.Exaile /org/exaile/Exaile org.exaile.Exaile.GetTrackAttr string:loc
> but return nothing...

That’s because 'loc' does not exist. Location is an internal tag, which is why you access it via '__loc'. Works fine with this.

As for the error: it will return a empty string starting from r2443.

Changed in exaile:
importance: Undecided → Low
milestone: none → 0.3.0.1
status: New → Fix Committed
Revision history for this message
Mathias Brodala (mathbr) wrote :

> Thank you for resolve exaile bug:
> https://bugs.launchpad.net/exaile/+bug/399610?comments=all
> but, where can I get exaile's dbus document? for example, GetTrackAttr
> can accept what parameter?

GetTrackAttr accepts every possible tagname. As for a documention of Exaile’s DBus interface: there is none yet. You can, however, check out xl/xldbus.py for method signatures.

reacocard (reacocard)
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