예제 #1
0
    def API_getStatus(self):
        status = {}

        # FIXME this should be speaker specific
        status['volume'] = self.dogvibes.speakers[0].get_volume()
        status['playlistversion'] = Playlist.get_version()

        playlist = self.fetch_active_playlist()

        # -1 is in tmpqueue
        if self.is_in_tmpqueue():
            status['playlist_id'] = -1
        else:
            status['playlist_id'] = self.active_playlist_id

        track = self.fetch_active_track()            
        if track != None:
            status['uri'] = track.uri
            status['title'] = track.title
            status['artist'] = track.artist
            status['album'] = track.album
            status['duration'] = int(track.duration)
            status['elapsedmseconds'] = self.API_getPlayedMilliSeconds()
            status['id'] = self.active_playlists_track_id
            status['index'] = track.position - 1
        else:
            status['uri'] = "dummy"

        (pending, state, timeout) = self.pipeline.get_state()
        if state == gst.STATE_PLAYING:
            status['state'] = 'playing'
        elif state == gst.STATE_NULL:
            status['state'] = 'stopped'
        else:
            status['state'] = 'paused'

        return status