class ControlProxy(object): def __init__(self, proxyname, proxytype, proxytrans, udn, controlpoint, mediaserver, config): self.root_device = None self.upnp_urn = 'urn:schemas-upnp-org:device:MediaServer:1' self.proxyname = proxyname self.proxytype = proxytype self.proxytrans = proxytrans self.udn = udn self.controlpoint = controlpoint self.mediaserver = mediaserver self.destmusicaddress = None self.config = config def _add_root_device(self): """ Creates the root device object which will represent the device description. """ project_page = 'http://brisa.garage.maemo.org' # ip = get_ip_address('') ip, port = self.controlpoint._event_listener.host() if self.proxytype == 'WMP': listen_url = "http://" + ip + ':10243' model_name = 'Windows Media Player Sharing' else: listen_url = '' model_name = 'Rhapsody' self.root_device = Device( self.upnp_urn, self.proxyname, udn=self.udn, manufacturer='Henkelis', manufacturer_url=project_page, model_description='Media Server', model_name=model_name, model_number='3.0', model_url=project_page, udp_listener=self.controlpoint._ssdp_server.udp_listener, force_listen_url=listen_url) self.root_device.webserver.get_render = self.get_render def _add_services(self): cdservice = ContentDirectory(self.controlpoint, self.mediaserver, self.root_device.location, self) self.root_device.add_service(cdservice) cmservice = ConnectionManager(self.controlpoint, self.mediaserver) self.root_device.add_service(cmservice) mrservice = X_MS_MediaReceiverRegistrar() self.root_device.add_service(mrservice) def _add_resources(self): pass def _load(self): self._add_root_device() self._add_services() self._add_resources() def start(self): self.stop() self._load() self.root_device.start() def stop(self): if self.root_device: self.root_device.stop() self.root_device = None def get_render(self, uri, params): return self def render(self, env, start_response): # if self.destmusicaddress is not None: # address = self.destmusicaddress # else: # address = self.destaddress # respbody = HTTPRedirect().call(address, env, start_response) if env['PATH_INFO'] == '/on.mp3': print ">>>>>>>>>>>>>>>>>>>>>>" print ">>>>>>>>> ON >>>>>>>>>" print ">>>>>>>>>>>>>>>>>>>>>>" elif env['PATH_INFO'] == '/off.mp3': print ">>>>>>>>>>>>>>>>>>>>>>" print ">>>>>>>>> OFF >>>>>>>>" print ">>>>>>>>>>>>>>>>>>>>>>" return []
class ControlProxy(object): def __init__(self, proxyname, proxytype, proxytrans, udn, controlpoint, mediaserver, config): self.root_device = None self.upnp_urn = 'urn:schemas-upnp-org:device:MediaServer:1' self.proxyname = proxyname self.proxytype = proxytype self.proxytrans = proxytrans self.udn = udn self.controlpoint = controlpoint self.mediaserver = mediaserver self.destmusicaddress = None self.config = config def _add_root_device(self): """ Creates the root device object which will represent the device description. """ project_page = 'http://brisa.garage.maemo.org' # ip = get_ip_address('') ip, port = self.controlpoint._event_listener.host() if self.proxytype == 'WMP': listen_url = "http://" + ip + ':10243' model_name='Windows Media Player Sharing' else: listen_url = '' model_name='Rhapsody' self.root_device = Device(self.upnp_urn, self.proxyname, udn=self.udn, manufacturer='Henkelis', manufacturer_url=project_page, model_description='Media Server', model_name=model_name, model_number='3.0', model_url=project_page, udp_listener=self.controlpoint._ssdp_server.udp_listener, force_listen_url=listen_url) self.root_device.webserver.get_render = self.get_render def _add_services(self): cdservice = ContentDirectory(self.controlpoint, self.mediaserver, self.root_device.location, self) self.root_device.add_service(cdservice) cmservice = ConnectionManager(self.controlpoint, self.mediaserver) self.root_device.add_service(cmservice) mrservice = X_MS_MediaReceiverRegistrar() self.root_device.add_service(mrservice) def _add_resources(self): pass def _load(self): self._add_root_device() self._add_services() self._add_resources() def start(self): self.stop() self._load() self.root_device.start() def stop(self): if self.root_device: self.root_device.stop() self.root_device = None def get_render(self, uri, params): return self def render(self, env, start_response): # if self.destmusicaddress is not None: # address = self.destmusicaddress # else: # address = self.destaddress # respbody = HTTPRedirect().call(address, env, start_response) if env['PATH_INFO'] == '/on.mp3': print ">>>>>>>>>>>>>>>>>>>>>>" print ">>>>>>>>> ON >>>>>>>>>" print ">>>>>>>>>>>>>>>>>>>>>>" elif env['PATH_INFO'] == '/off.mp3': print ">>>>>>>>>>>>>>>>>>>>>>" print ">>>>>>>>> OFF >>>>>>>>" print ">>>>>>>>>>>>>>>>>>>>>>" return []