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):
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]]
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
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