def __init__(self): MPlayer.populate() self.mp = MPlayer() self.fd,self.templist = tempfile.mkstemp() self.loadlist_flag = "empty" self.t = 0 # set up the glib main loop. dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) bus = dbus.Bus(dbus.Bus.TYPE_SESSION) bus_object = bus.get_object('org.gnome.SettingsDaemon', '/org/gnome/SettingsDaemon/MediaKeys') # this is what gives us the multi media keys. dbus_interface='org.gnome.SettingsDaemon.MediaKeys' bus_object.GrabMediaPlayerKeys("MyMultimediaThingy", 0, dbus_interface=dbus_interface) # connect_to_signal registers our callback function. bus_object.connect_to_signal('MediaPlayerKeyPressed', self.on_mediakey)
return {"dirs":dirs,"files":files} def mfile(method,*args): t=[] for arg in args: if type(arg) in (str,unicode): p=arg.split('/') if p[0] in mediasources.keys(): t.append(mediasources[p[0]]+'/'.join(p[1:])) else: t.append(arg) try: return getattr(mp,method)(*t) except AttributeError: return "'%s' not found"%method ip = sys.argv[1] if len(sys.argv)>1 else "127.0.0.1" port = int(sys.argv[2]) if len(sys.argv)>2 else 1337 srv = SimpleJSONRPCServer((ip, port),MyRequestHandler) MPlayer.populate() mp = MPlayer() srv.register_instance(mp) srv.register_function(ls) srv.register_function(mfile) print "Starting Server on %s:%s"%(ip,port) srv.serve_forever()