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):
"""