libsaria: Create init flags
I eventually plan on creating more cpp binaries that link with libsaria for pipe actions and other things. It's helpful to only initialize the parts of libsaria that I intend to use. Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
This commit is contained in:
parent
af2d4833fa
commit
d764489e89
|
@ -3,9 +3,20 @@
|
|||
|
||||
#include <libsaria/track.h>
|
||||
|
||||
enum LSInitFlags {
|
||||
LS_INIT_NONE = (0),
|
||||
LS_INIT_PREFS = (1 << 0),
|
||||
LS_INIT_AUDIO = (1 << 1),
|
||||
LS_INIT_LIBRARY = (1 << 2),
|
||||
LS_INIT_STACK = (1 << 3),
|
||||
};
|
||||
|
||||
static const unsigned int LS_INIT_EVERYTHING =
|
||||
LS_INIT_PREFS | LS_INIT_AUDIO | LS_INIT_LIBRARY | LS_INIT_STACK;
|
||||
|
||||
namespace libsaria
|
||||
{
|
||||
void init(int, char **);
|
||||
void init(unsigned int, int, char **);
|
||||
void quit();
|
||||
|
||||
libsaria::Track *current_track();
|
||||
|
|
|
@ -11,25 +11,36 @@
|
|||
#include <libsaria/index.h>
|
||||
#include <libsaria/stack.h>
|
||||
|
||||
static unsigned int init_flags;
|
||||
|
||||
namespace libsaria
|
||||
{
|
||||
|
||||
void init(int argc, char **argv)
|
||||
void init(unsigned int flags, int argc, char **argv)
|
||||
{
|
||||
srand( time(NULL) );
|
||||
init_flags = flags;
|
||||
println("Initializing libsaria");
|
||||
libsaria::prefs::load();
|
||||
audio::init(argc, argv);
|
||||
|
||||
if (init_flags & LS_INIT_PREFS)
|
||||
libsaria::prefs::load();
|
||||
if (init_flags & LS_INIT_AUDIO)
|
||||
audio::init(argc, argv);
|
||||
|
||||
println("saria dir: %s", get_saria_dir().c_str());
|
||||
make_saria_dir();
|
||||
libsaria::library::init();
|
||||
libsaria::stack_init();
|
||||
|
||||
if (init_flags & LS_INIT_LIBRARY)
|
||||
libsaria::library::init();
|
||||
if (init_flags & LS_INIT_STACK)
|
||||
libsaria::stack_init();
|
||||
}
|
||||
|
||||
void quit()
|
||||
{
|
||||
println("Quitting libsaria");
|
||||
audio::quit();
|
||||
if (init_flags & LS_INIT_AUDIO)
|
||||
audio::quit();
|
||||
print_format_stats();
|
||||
index::print_stats();
|
||||
close_pipes();
|
||||
|
|
|
@ -78,7 +78,7 @@ int main(int argc, char **argv)
|
|||
println("Ocarina " + vers_str());
|
||||
set_path_prefix(argv[0]);
|
||||
|
||||
libsaria::init(argc, argv);
|
||||
libsaria::init(LS_INIT_EVERYTHING, argc, argv);
|
||||
setup_callbacks();
|
||||
|
||||
g_thread_init(NULL);
|
||||
|
|
Loading…
Reference in New Issue