def __init__(self, config, core): super(MpdFrontend, self).__init__() self.hostname = network.format_hostname(config['mpd']['hostname']) self.port = config['mpd']['port'] self.zeroconf_name = config['mpd']['zeroconf'] self.zeroconf_service = None try: network.Server( self.hostname, self.port, protocol=session.MpdSession, protocol_kwargs={ 'config': config, 'core': core, }, max_connections=config['mpd']['max_connections'], timeout=config['mpd']['connection_timeout']) except IOError as error: raise exceptions.FrontendError( 'MPD server startup failed: %s' % encoding.locale_decode(error)) logger.info('MPD server running at [%s]:%s', self.hostname, self.port)
def run(self): try: self._running = True while self._running: # poll for a tag. by default poll 5 times every 0.5 sec. # the terminate function should avoid that, but there # seems to be a catch after some time (or hardware issue?). tag = self.clf.connect(rdwr={ 'on-connect': self.__on_connect, 'on-release': self.__on_release }, terminate=self.status) # sleep for 0.5 seconds to avoid a direct reopen on serial # interfaces (e.g. on RasPi) leading to device blocking # timeouts... # (0.5s is just the same as nfcpy does by default...) # NOTE: absolute import necessary, hit exceptions # about not known functions when shutting down mopidy. time.sleep(0.5) except Exception: raise exceptions.FrontendError("Error in NFC connect():\n" + traceback.format_exc()) finally: self.clf.close() logger.debug(__logprefix__ + 'reader shut down')
def __init__(self, config, core): super().__init__() self.hostname = network.format_hostname(config["http"]["hostname"]) self.port = config["http"]["port"] tornado_hostname = config["http"]["hostname"] if tornado_hostname == "::": tornado_hostname = None try: logger.debug("Starting HTTP server") sockets = tornado.netutil.bind_sockets(self.port, tornado_hostname) self.server = HttpServer( config=config, core=core, sockets=sockets, apps=self.apps, statics=self.statics, ) except OSError as exc: raise exceptions.FrontendError( f"HTTP server startup failed: {exc}") self.zeroconf_name = config["http"]["zeroconf"] self.zeroconf_http = None self.zeroconf_mopidy_http = None
def __init__(self, config, core): super(HttpFrontend, self).__init__() self.hostname = network.format_hostname( config['mopidy_bamp']['hostname']) self.port = config['mopidy_bamp']['port'] tornado_hostname = config['mopidy_bamp']['hostname'] if tornado_hostname == '::': tornado_hostname = None try: logger.debug('Starting HTTP server') sockets = tornado.netutil.bind_sockets(self.port, tornado_hostname) self.server = HttpServer(config=config, core=core, sockets=sockets, apps=self.apps, statics=self.statics) except IOError as error: raise exceptions.FrontendError('HTTP server startup failed: %s' % encoding.locale_decode(error)) self.zeroconf_name = config['mopidy_bamp']['zeroconf'] self.zeroconf_http = None self.zeroconf_mopidy_http = None
def get_display_surface(self, size): try: if self.fullscreen: self.screen = pygame.display.set_mode(size, pygame.FULLSCREEN) else: self.screen = pygame.display.set_mode(size, pygame.RESIZABLE) except Exception: raise exceptions.FrontendError("Error on display init:\n" + traceback.format_exc())
def __init__(self, devicepath, onread_callback, onrelease_callback): self.devicepath = devicepath self.onread_callback = onread_callback self.onrelease_callback = onrelease_callback self._running = False try: self.clf = nfc.ContactlessFrontend(self.devicepath) except Exception: raise exceptions.FrontendError("Error on nfc reader init:\n" + traceback.format_exc())
def _setup_server(self, config, core): try: network.Server(self.hostname, self.port, protocol=session.MpdSession, protocol_kwargs={ 'config': config, 'core': core, 'uri_map': self.uri_map, }, max_connections=config['mpd']['max_connections'], timeout=config['mpd']['connection_timeout']) except IOError as error: raise exceptions.FrontendError('MPD server startup failed: %s' % encoding.locale_decode(error)) logger.info('MPD server running at [%s]:%s', self.hostname, self.port)
def _setup_server(self, config, core): try: server = network.Server( self.hostname, self.port, protocol=session.MpdSession, protocol_kwargs={ "config": config, "core": core, "uri_map": self.uri_map, }, max_connections=config["mpd"]["max_connections"], timeout=config["mpd"]["connection_timeout"], ) except OSError as exc: raise exceptions.FrontendError(f"MPD server startup failed: {exc}") logger.info( f"MPD server running at {network.format_address(server.address)}") return server