diff --git a/light9/ascoltami/index.html b/light9/ascoltami/index.html --- a/light9/ascoltami/index.html +++ b/light9/ascoltami/index.html @@ -18,6 +18,7 @@
Time:
Left:
Until autostop:
+
States:
@@ -55,6 +56,7 @@ $("#leftTime").text((data.duration - data.t).toFixed(1)); $("#leftAutoStopTime").text( Math.max(0, data.duration - times.post - data.t).toFixed(1)); + $("#states").text(JSON.stringify(data.state)); currentDuration = data.duration; $("#timeSlider").slider({value: data.t, max: data.duration}); diff --git a/light9/ascoltami/player.py b/light9/ascoltami/player.py --- a/light9/ascoltami/player.py +++ b/light9/ascoltami/player.py @@ -118,6 +118,13 @@ class Player(object): return self.playbin.query_duration(gst.FORMAT_TIME)[0] / gst.SECOND except gst.QueryError: return 0 + + def states(self): + """json-friendly object describing the interesting states of + the player nodes""" + success, state, pending = self.playbin.get_state(timeout=0) + return {"current": {"name":state.value_nick}, + "pending": {"name":state.value_nick}} def pause(self): self.pipeline.set_state(gst.STATE_PAUSED) diff --git a/light9/ascoltami/webapp.py b/light9/ascoltami/webapp.py --- a/light9/ascoltami/webapp.py +++ b/light9/ascoltami/webapp.py @@ -40,7 +40,9 @@ class timeResource(object): "started" : player.playStartTime, "duration" : player.duration(), "playing" : player.isPlaying(), - "t" : player.currentTime()}) + "t" : player.currentTime(), + "state" : player.states(), + }) def POST(self): """