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'

Tags: dbus
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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