#include #include #include #include #include #include #include #include #include #include #include static string path_prefix; void set_path_prefix(string prefix) { unsigned int stop = 0; for (stop = prefix.size() - 1; stop > 0; stop--) { if (prefix[stop] == '/') break; } for (unsigned int i = 0; i < stop; i++) path_prefix += prefix[i]; println("Path prefix: " + path_prefix); } namespace ocarina { static gboolean idle(gpointer data) { if (libsaria::idle::run_task() == 0) return FALSE; /* There are no idle events left */ return TRUE; /* Process remaining idle events */ } void idle_add() { g_idle_add(idle, NULL); } string full_path(string path) { string res = path_prefix + "/" + path; println("Expanding to path: " + res); return res; } void init(int argc, char **argv) { window_init("Ocarina " + vers_str(), full_path("images/ocarina.png")); window_add(get_tabs()); ocarina::library::init(); settings_init(); } void quit() { gtk_main_quit(); } } int main(int argc, char **argv) { println("Ocarina " + vers_str()); set_path_prefix(argv[0]); libsaria::init(argc, argv); setup_callbacks(); gtk_init(&argc, &argv); ocarina::init(argc, argv); if (argc > 1) libsaria::audio::load(argv[1]); gtk_main(); libsaria::quit(); return 0; }