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:
parent
11f972aee4
commit
5dea1ae42a
|
@ -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();
|
||||
};
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue