28
31
DBUS_NAME = 'org.gnome.Listen'
29
32
DBUS_OBJECT = '/org/gnome/listen'
34
capabilities = ('time',)
34
43
def connect(self): #Connect with dbus
35
self.session_bus = dbus.SessionBus()
36
self.dbus_object = self.session_bus.get_object(self.DBUS_NAME, self.DBUS_OBJECT)
37
self.timeout_id = gobject.timeout_add(2000, self.check_new_song)
44
session_bus = dbus.SessionBus()
45
self.iface = session_bus.get_object(self.DBUS_NAME, self.DBUS_OBJECT)
46
self._timeout_id = gobject.timeout_add(2000, self.check_new_song)
40
49
def disconnect(self):
42
gobject.source_remove(self.timeout_id)
51
gobject.source_remove(self._timeout_id)
44
53
def check_new_song(self):
45
self.state_handler(track=True)
54
state = self.get_state()
55
if state != self._state:
57
self.cg.update(STATE, state)
58
if state == State.PLAYING:
60
'title' : self.iface.get_title(),
61
'album' : self.iface.get_album(),
62
'artist' : self.iface.get_artist(),
63
'cover' : self.iface.get_cover_path(),
64
'location' : self.iface.get_uri(),
65
'length' : self.iface.current_song_length()
67
if data != self._data:
69
self._track = Track(**data)
70
self.cg.update(TRACK, self._track)
50
title = self.dbus_object.get_title()
59
album = self.dbus_object.get_album()
68
artist = self.dbus_object.get_artist()
75
def get_cover_path(self,data=None):
77
return self.dbus_object.get_cover_path()
81
73
def get_state(self):
83
75
Returns players actual state.
84
76
@return: string - playing, paused, stopped
86
if self.dbus_object.playing():
78
if self.iface.playing():
93
return self.dbus_object.playing()
97
def previous(self, widget, event):
99
self.dbus_object.previous()
101
def play(self, widget, event):
103
self.dbus_object.play_pause()
105
def next(self, widget, event):
107
self.dbus_object.next()
109
83
def get_track(self):
111
'title' : self.get_title(),
112
'artist': self.get_artist(),
113
'album' : self.get_album()
115
cover = self.get_cover_path(data)
117
title = data['title'],
118
album = data['album'],
119
artist= data['artist'],
86
def get_position(self):
87
return self.iface.current_position()
90
self.dbus_object.previous()
93
self.iface.play_pause()
96
self.dbus_object.next()