df06b444cf
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
73 lines
1.3 KiB
C++
73 lines
1.3 KiB
C++
/*
|
|
* Copyright 2014 (c) Anna Schumaker.
|
|
*/
|
|
#include <core/core.h>
|
|
#include <gui/ocarina.h>
|
|
#include <gui/tabs.h>
|
|
|
|
|
|
static std::string ocarina_dir = "";
|
|
static Glib::RefPtr<Gtk::Application> ocarina_app;
|
|
|
|
|
|
struct core_init_data init_data = {
|
|
&collection_ops,
|
|
&history_ops,
|
|
&playlist_ops,
|
|
&tempq_ops,
|
|
};
|
|
|
|
namespace gui
|
|
{
|
|
Glib::RefPtr<Gtk::Builder> __O_BUILDER;
|
|
|
|
const std::string share_file(const std::string &f)
|
|
{
|
|
return ocarina_dir + f;
|
|
}
|
|
}
|
|
|
|
|
|
static void setup_share(const std::string &path)
|
|
{
|
|
char buf[1024];
|
|
ssize_t len = readlink("/proc/self/exe", buf, sizeof(buf) - 1);
|
|
|
|
if (len == -1)
|
|
return;
|
|
buf[len] = '\0';
|
|
|
|
ocarina_dir = std::string(buf);
|
|
ocarina_dir = ocarina_dir.substr(0, ocarina_dir.size() - 11);
|
|
ocarina_dir = ocarina_dir + "share/ocarina/";
|
|
}
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
Gtk::Window *window;
|
|
|
|
setup_share(argv[0]);
|
|
ocarina_app = Gtk::Application::create(argc, argv, "org.gtkmm.ocarina");
|
|
|
|
gui :: __O_BUILDER = Gtk::Builder::create();
|
|
if (!gui::__O_BUILDER->add_from_file(gui::share_file("ocarina6.glade")))
|
|
exit(1);
|
|
|
|
gst :: init(&argc, &argv);
|
|
|
|
core :: init(&init_data);
|
|
|
|
plist :: init();
|
|
manager :: init();
|
|
init_tabs();
|
|
window = window_init();
|
|
post_init_tabs();
|
|
|
|
ocarina_app->run(*window);
|
|
cleanup_tabs();
|
|
gst :: quit();
|
|
core :: deinit();
|
|
|
|
return 0;
|
|
}
|