示例#1
0
    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')
示例#2
0
 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'})