ocarina/libsaria/audio/audio.cpp

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);
}