def __init__(self, conn): dbus.service.Object.__init__(self, conn=conn, object_path=LYRICS_OBJECT_PATH) self._db = lrcdb.LrcDb() self._config = osdlyrics.config.Config(conn) self._metadata = Metadata()
def __init__(self, proxy, name, caps): super(HttpPlayer, self).__init__(proxy, name) self._status = STATUS_STOPPED self._caps = caps self._metadata = Metadata() self._last_ping = datetime.datetime.now() self._timer = osdlyrics.timer.Timer() self._cmds = []
def do_track_changed(self, params): player = self.get_player(params['id']) status = params['status'] del params['status'] del params['id'] metadata = Metadata(**params) player.do_update_track(metadata) player.do_update_status(status) return ''
def _handle_currentsong(self, metadata): logging.debug('currentsong: %s', metadata) args = {} for key in ('title', 'artist', 'album'): if key in metadata: args[key] = metadata[key] if 'time' in metadata: args['length'] = int(metadata['time']) * 1000 if 'track' in metadata: args['tracknum'] = int(metadata['track'].split('/')[0]) self._metadata = Metadata(**args)
def _handle_status(self, status): logging.debug('status\n%s', status) changes = set() for prop, handler in self.STATUS_CHANGE_MAP.items(): if not prop in status: value = None else: funcname = handler[0] func = getattr(__builtin__, funcname) \ if not funcname.startswith('_') \ else getattr(self, funcname) value = func(status[prop]) if value != getattr(self, '_' + prop): logging.debug('prop %s changed to %s', prop, value) setattr(self, '_' + prop, value) changes.add(handler[1]) if 'track' in changes: if self._songid is None: self._metadata = Metadata() else: self._send_cmd(Cmds.CURRENTSONG, sync=True) if 'status' in changes: if self._state == STATUS_PAUSED: self._elapsed.pause() elif self._state == STATUS_PLAYING: self._elapsed.play() else: self._elapsed.stop() if self._state == STATUS_STOPPED: elapsed = 0 else: elapsed = float(status['elapsed']) * 1000 if self._elapsed.set_time(elapsed): changes.add('position') if not self._inited: # Initializing, do not emit the change signals changes = set() for change in changes: getattr(self, change + '_changed')()