libsaria: Audio return values when changing state

play() and pause() now return true or false base on if the state change
request succeeds or fails.  This can be used later to determine if a
callback should be triggered.
This commit is contained in:
Bryan Schumaker 2011-08-27 12:32:06 -04:00
parent 11f972aee4
commit 5dea1ae42a
2 changed files with 24 additions and 9 deletions

View File

@ -15,7 +15,8 @@ class Audio
string cur_file;
void reset();
void change_state(GstState);
bool change_state(GstState);
void check_state(GstState);
public:
Audio();
@ -25,8 +26,8 @@ class Audio
void load(string);
/* Control functions */
void play();
void pause();
bool play();
bool pause();
void seek();
};

View File

@ -1,19 +1,33 @@
#include <libsaria/audio.h>
#include <libsaria/print.h>
void Audio::change_state(GstState new_state)
bool Audio::change_state(GstState new_state)
{
gst_element_set_state(GST_ELEMENT(player), new_state);
GstStateChangeReturn ret;
ret = gst_element_set_state(GST_ELEMENT(player), new_state);
switch(ret) {
case GST_STATE_CHANGE_SUCCESS:
case GST_STATE_CHANGE_ASYNC:
return true;
default:
return false;
}
}
void Audio::play()
void Audio::check_state(GstState state)
{
change_state(GST_STATE_PLAYING);
}
void Audio::pause()
bool Audio::play()
{
change_state(GST_STATE_PAUSED);
return change_state(GST_STATE_PLAYING);
}
bool Audio::pause()
{
return change_state(GST_STATE_PAUSED);
}
/*