Home | Trees | Indices | Help |
|
---|
|
1 # This application is released under the GNU General Public License 2 # v3 (or, at your option, any later version). You can find the full 3 # text of the license under http://www.gnu.org/licenses/gpl.txt. 4 # By using, editing and/or distributing this software you agree to 5 # the terms and conditions of this license. 6 # Thank you for using free software! 7 8 9 # Listen API by vrunner 10 11 import os 12 import dbus 13 import string 14 import gobject 15 from GenericPlayer import GenericAPI 16 17 #LISTEN = {'DBUS_NAME':'org.gnome.Listen','DBUS_OBJECT':'/org/gnome/listen', \ 18 # 'DBUS_TITLE':'get_title()','DBUS_ALBUM':'get_album()', \ 19 # 'DBUS_ARTIST':'get_artist()','DBUS_ART':'get_cover_path()',\ 20 # 'DBUS_PLAYING':'playing()','PLAY_WORD':False} 2123 __name__ = 'Listen API' 24 __version__ = '0.0' 25 __author__ = 'vrunner' 26 __desc__ = 'API to the Listen Music Player' 27 28 ns = "org.gnome.Listen" 29 iroot = "/org/gnome/listen" 30 iface = "org.gnome.Listen" 31 32 playerAPI = None 33 34 __timeout = None 35 __interval = 2 36 37 callbackFn = None 38 __curplaying = None 39 40 # Extended Functions from the GenericAPI 41 44 4810650 proxy_obj = self.session_bus.get_object(self.ns, self.iroot) 51 self.playerAPI = dbus.Interface(proxy_obj, self.iface)5254 return self.playerAPI.current_playing().split(" - ",3)[0]55 #return self.playerAPI.get_title() 5658 return self.playerAPI.current_playing().split(" - ",3)[1][1:]59 #return self.playerAPI.get_album() 60 64 #return self.playerAPI.get_artist() 65 69 #return self.playerAPI.get_cover_path() 7072 #if self.playerAPI.playing() == "False": return False 73 if self.playerAPI.current_playing() == "": return False 74 else: return True75 78 81 8486 self.callback_fn = fn 87 # Could not find a callback signal for Listen, so just calling after some time interval 88 if self.__timeout: 89 gobject.source_remove(self.__timeout) 90 self.__timeout = gobject.timeout_add(self.__interval * 1000, self.info_changed)91 #self.playerAPI.connect_to_signal("playingUriChanged", self.info_changed) 9294 # Only call the callback function if Data has changed 95 if self.__timeout: 96 gobject.source_remove(self.__timeout) 97 try: 98 if self.__curplaying != self.playerAPI.current_playing(): 99 self.__curplaying = self.playerAPI.current_playing() 100 self.callback_fn() 101 102 self.__timeout = gobject.timeout_add(self.__interval * 1000, self.info_changed) 103 except: 104 # The player exited ? call callback function 105 self.callback_fn()
Home | Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Mon Feb 28 23:21:27 2011 | http://epydoc.sourceforge.net |