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