Updating the def _handle_cmds_ from zukebox_contro_point.py
authorHenry Bilby <henrymiller.engenheiro@gmail.com>
Thu, 28 May 2009 02:27:45 +0000 (22:27 -0400)
committerHenry Bilby <henrymiller.engenheiro@gmail.com>
Thu, 28 May 2009 02:43:26 +0000 (22:43 -0400)
control_point/zukebox_control_point.py

index c45a6a9..f487e54 100644 (file)
@@ -7,8 +7,10 @@ from brisa.core.network import parse_url
 from brisa.core.threaded_call import run_async_function
 
 from brisa.upnp.control_point.control_point import ControlPoint
+from brisa.upnp.control_point.control_point_av import ControlPointAV
 
-service = ('u','urn:schemas-upnp-org:service:AudioLibrary:1')
+devices=[]
+service = ('u','urn:schemas-upnp-org:service:PlayList:1')
 zukebox_type = 'urn:schemas-upnp-org:device:ZukeBoxServer:1'
 
 def on_new_device(dev):
@@ -18,9 +20,16 @@ def on_new_device(dev):
     if not dev:
         return
 
+    print devices
+    devices.append(dev)
+    
+
 def on_removed_device(udn):
 
     print 'Device is gone: ', udn
+    for dev in devices:
+       if dev.udn == udn:
+           devices.remove(dev)
 
 def get_switch_service(device):
     return device.services[service[1]]
@@ -28,7 +37,7 @@ def get_switch_service(device):
 def create_control_point():
     """ Creates the control point and binds callbacks to device events.
     """
-    c = ControlPoint()
+    c = ControlPointAV()
     c.subscribe('new_device_event', on_new_device)
     c.subscribe('removed_device_event', on_removed_device)
     return c
@@ -79,21 +88,25 @@ def _handle_cmds(c):
                k+=1
        elif input.startswith('set_zukebox'):
            try:
-               c.current_server = devices[int(input.split(' ')[1])]
-           except:
-               print 'Zukebox number not found. Please run list and check againg'
-               c.current_server = None
+               device_number = int(input.split(' ')[1])
+               c.set_current_server(devices[device_number])
+           except Exception, e:
+               print 'Zukebox number not found. Please run list and check again. Exception: \n %s' % e
+               c.set_current_server(None)
        elif input == 'get_playlist':
            try:
-               service = get_switch_service(c.current_server)
-               playlist = service.GetPlaylist()
-               for music in playlist:
-                   print '%s', music.name
+               print c.get_current_server().services
+               serviceTest = get_switch_service(c.get_current_server())
+               print dir(serviceTest.get_actions.__doc__)
+               playlist = serviceTest.get_actions()
+               print 'Playlist: %s' % playlist
+               #for music in playlist:
+                   #print '%s', music.name
            except Exception, e:
-               if not hasattr(c, 'current_server') or not c.current_server:
-                   print 'Zukebox device not set. Please use set zukebox <n>'
+               if not hasattr(c, 'get_current_server()') or not c.get_current_server():
+                   print 'Zukebox device not set. Please use set zukebox <n>. Exception: %s' % e
                else:
-                   print 'Erro in get_playlist: ',e
+                   print 'Erro in get_playlist: %s' % e
        elif input == 'exit':
            break