protected Player master;
protected bool loop;
protected string uri;
+ public signal void state_changed(Gst.State new_state);
public Player()
{
this.loop = loop;
}
+ public Gst.State get_state()
+ {
+ Gst.State state;
+ Gst.State pending;
+
+ player.get_state(out state, out pending, (Gst.ClockType)Gst.CLOCK_TIME_NONE);
+
+ return state;
+ }
+
public void pause()
{
player.set_state(Gst.State.PAUSED);
+ state_changed(Gst.State.PAUSED);
}
public void resume()
{
player.set_state(Gst.State.PLAYING);
+ state_changed(Gst.State.PLAYING);
}
public void restart()
{
player.seek_simple(Gst.Format.TIME, Gst.SeekFlags.FLUSH | Gst.SeekFlags.KEY_UNIT, 0);
player.set_state(Gst.State.PLAYING);
+ state_changed(Gst.State.PLAYING);
}
public void stop()
{
playing = false;
player.set_state(Gst.State.NULL);
+ state_changed(Gst.State.NULL);
// Resume slave after we are done
if (slave != null && slave.playing)