def set_state(self, state): log.msg("SET NEW STATE : %s " % state, loglevel=logging.DEBUG) if state == self._state: return self._state = state if state == 'pause': # print(self.transport_actions) self.transport_actions = ['PLAY', 'STOP'] # self.transport_actions.remove('PAUSE') # self.transport_actions.append('PLAY') if self.timer is not None: self.timer.stop() d = self.mpd.call('status') d.addCallback(lambda st: st['elapsed']) d.addCallbacks( self.set_reltime, lambda ignored: self.set_reltime(self.timer.get())) self.upnp_state = 'PAUSED_PLAYBACK' self.oh_state = 'Paused' elif state == 'play': self.transport_actions = ['STOP', 'PAUSE', 'SEEK'] self.changed_state({'volume': self.mpd.status['volume']}) self.timer = Timer() self.timer.set(self.seconds) d = self.mpd.call('status') d.addCallbacks(lambda st: st['elapsed']) d.addCallbacks(lambda t: self.timer.set(float(t)), lambda ignored: self.timer.set(0.000)) self.upnp_state = 'PLAYING' self.oh_state = 'Playing' elif state == 'stop': self.transport_actions = ['PLAY'] self.set_reltime(0) self.upnp_state = 'STOPPED' self.oh_state = 'Stopped' elif state == 'pending': self.upnp_state = 'TRANSITIONNING' self.oh_state = 'Buffering' else: # log.err('Unknow State from player : %s' % state) return log.msg('send new state: %s' % self._state, loglevel=logging.DEBUG) self.upnp_eventAV(self.upnp_state, 'TransportState') self.oh_eventPLAYLIST(self.oh_state, 'transportstate')
def playing(ignored, trackid=None, md=None): log.err('playing') self.pending = False if not self.timer: log.msg('create timer') self.timer = Timer() self.timer.set(self.seconds) else: log.msg('resume timer') self.timer.resume() if trackid: self.changed_state( { 'PlaybackStatus': 'Playing', 'Metadata': { 'songid': trackid } }, {'Metadata': md}) else: self.changed_state({'PlaybackStatus': 'Playing'})