2014-10-20 21:37:58 -04:00
|
|
|
/**
|
|
|
|
* @file
|
2014-05-31 10:25:25 -04:00
|
|
|
* Copyright 2014 (c) Anna Schumaker.
|
|
|
|
*/
|
2014-06-05 10:19:22 -04:00
|
|
|
#include <core/driver.h>
|
2014-05-31 10:25:25 -04:00
|
|
|
|
2014-12-19 14:19:18 -05:00
|
|
|
static Driver *cur_driver = NULL;
|
2014-05-31 10:25:25 -04:00
|
|
|
|
2014-12-19 14:19:18 -05:00
|
|
|
|
|
|
|
Driver :: Driver()
|
|
|
|
{
|
|
|
|
cur_driver = this;
|
|
|
|
}
|
|
|
|
|
|
|
|
Driver :: ~Driver()
|
|
|
|
{
|
|
|
|
cur_driver = NULL;
|
|
|
|
}
|
2014-05-31 10:25:25 -04:00
|
|
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_TEST
|
|
|
|
|
|
|
|
TestDriver :: TestDriver() : playing(false), cur_pos(0), cur_duration(0) {}
|
|
|
|
TestDriver :: ~TestDriver() {}
|
|
|
|
|
2014-05-31 20:52:40 -04:00
|
|
|
void TestDriver :: init(int *argc, char ***argv, void (*eos_cb)(), void (*error_cb)())
|
|
|
|
{ on_eos = eos_cb; on_error = error_cb; }
|
2014-06-01 17:52:49 -04:00
|
|
|
void TestDriver :: load(const std::string &file)
|
|
|
|
{ cur_file = file; playing = false; cur_pos = 0; }
|
2014-05-31 20:52:40 -04:00
|
|
|
bool TestDriver :: play() { playing = true; return true; }
|
|
|
|
bool TestDriver :: pause() { playing = false; return true; }
|
|
|
|
bool TestDriver :: is_playing() { return playing; }
|
2014-05-31 10:25:25 -04:00
|
|
|
|
|
|
|
void TestDriver :: seek_to(long pos) { cur_pos = pos; }
|
|
|
|
long TestDriver :: position() { return cur_pos; }
|
|
|
|
long TestDriver :: duration() { return cur_duration; }
|
|
|
|
|
2014-05-31 20:52:40 -04:00
|
|
|
void TestDriver :: eos() { on_eos(); }
|
|
|
|
void TestDriver :: error() { on_error(); }
|
2014-05-31 10:25:25 -04:00
|
|
|
|
|
|
|
#else /* CONFIG_TEST */
|
|
|
|
|
|
|
|
#endif /* CONFIG_TEST */
|
|
|
|
|
|
|
|
|
|
|
|
Driver *driver :: get_driver()
|
|
|
|
{
|
2014-12-19 14:19:18 -05:00
|
|
|
return cur_driver;
|
2014-05-31 10:25:25 -04:00
|
|
|
}
|