- devices.remove(dev)
-
-
- def get_switch_service(self, device):
- return device.services[service[1]]
-
-
- def set_zukebox_server(self, cp):
-
- for device in cp.get_devices():
- print 'set_zukebox_server'
- if device.values().friendly_name == 'Zukebox-Server':
- cp.set_current_server(device)
- return True
-
- return False
-
-
- def get_playlist(self, cp):
-
- playlist = {}
- try:
- device = cp.get_current_server()
- service = device.get_service_by_type('urn:schemas-upnp-org:service:Playlist:1')
- playlist = service.GetPlaylist()
+ device = dev
+ self.devices.remove(device)
+
+
+ def run(self):
+ self.running = True
+ self.start()
+ reactor.add_after_stop_func(self.stop)
+ thread.start_new_thread(self.handle_cmds, ())
+ reactor.main()
+
+
+ def _list_devices(self):
+ n=0
+ for dev in self.devices:
+ print 'device %d: ' % n
+ print '\tudn:', dev.udn
+ print '\tfriendly_name:', dev.friendly_name
+ print '\tservices:', dev.services
+ print '\ttype:', dev.device_type
+ n+=1
+
+
+ def _select_zukebox_device(self):
+ zukebox_device = None
+ for dev in self.devices:
+ if dev.friendly_name == 'ZukeBox Server':
+ zukebox_device = dev
+ return zukebox_device
+
+
+ def handle_cmds(self):
+ try:
+ n=0
+ op=True
+ while self.running:
+ while op:
+ self.start_search(600, 'upnp:rootdevice')
+ self._list_devices();
+ self.device = self._select_zukebox_device()
+ if self.device:
+ op=False
+ self.set_current_server(self.device)
+ self.append()
+ self.drop(1)
+ ret=self.getPlaylist()
+ print ret
+ list=ret['PlayList']
+ print list
+ playlist=eval(list)
+ print playlist
+ self.running = False
+ except Exception, e:
+ print 'Handle_cmds: Exception %s' %e
+
+
+ def append(self):
+ try:
+ device = self.get_current_server()
+ service = device.get_service_by_type('urn:schemas-upnp-org:service:PlayList:1')
+ locked = service.IsLocked()
+ if locked['Locked'] == '0':
+ d= {'CurrentURI':'teste', 'CurrentURIMetaData':'teste', 'FromName':'teste','ToName':'teste'}
+ service.Append(**d)
+ print service.GetSizeOfPlayList()
+ print service.IsLocked()
+ except Exception, e:
+ print 'Cannot insert the music in the list. Exception: \n %s' %e
+
+
+ def drop(self, id):
+ try:
+ device = self.get_current_server()
+ service = device.get_service_by_type('urn:schemas-upnp-org:service:PlayList:1')
+ print dir(service)
+ ID = {"Index":id}
+ service.Drop(**ID)
+ print service.GetSizeOfPlayList()
+ print service.IsLocked()
+ except Exception, e:
+ print 'Cannot drop the music of the list. Exception: \n %s' %e
+
+
+ def getPlaylist(self):
+ try:
+ device = self.get_current_server()
+ service = device.get_service_by_type('urn:schemas-upnp-org:service:PlayList:1')
+ playlist = service.GetPlayList()
+ #service.GetCurrentItem()
+ #service.GetNextItem()
+ #service.GetPreviousItem()