43 lines
696 B
C++
43 lines
696 B
C++
|
|
#include <libsaria/audio.h>
|
|
#include <libsaria/libsaria.h>
|
|
|
|
static bool initialized = false;
|
|
static void init_gstreamer(int argc, char **argv)
|
|
{
|
|
if (initialized == true)
|
|
return;
|
|
gst_init(&argc, &argv);
|
|
initialized = true;
|
|
}
|
|
|
|
Audio::Audio()
|
|
{
|
|
print("Creating audio driver");
|
|
}
|
|
|
|
Audio::~Audio()
|
|
{
|
|
}
|
|
|
|
void Audio::init(int argc, char **argv)
|
|
{
|
|
print("Initializing gstreamer");
|
|
init_gstreamer(argc, argv);
|
|
player = gst_element_factory_make("playbin2", "player");
|
|
}
|
|
|
|
void Audio::reset()
|
|
{
|
|
cur_file = "";
|
|
change_state(GST_STATE_NULL);
|
|
}
|
|
|
|
void Audio::load(string file)
|
|
{
|
|
string uri = "file://" + file;
|
|
reset();
|
|
cur_file = file;
|
|
g_object_set(G_OBJECT(player), "uri", uri.c_str(), NULL);
|
|
}
|