ocarina/gui/main.cpp

53 lines
1.0 KiB
C++

/*
* Copyright 2014 (c) Anna Schumaker.
*/
#include <core/audio.h>
#include <core/deck.h>
#include <core/library.h>
#include <core/playlist.h>
#include <gui/ocarina.h>
#include <gui/tabs.h>
const std::string share_file(const std::string &file)
{
char buf[1024];
std::string res;
ssize_t len = readlink("/proc/self/exe", buf, sizeof(buf) - 1);
if (len == -1)
return "";
buf[len] = '\0';
res = std::string(buf);
// len("bin/ocarina") == 11
res = res.substr(0, res.size() - 11);
return res + "share/ocarina/" + file;
}
Gtk::Window *ocarina_init(int *argc, char ***argv)
{
Gtk::Window *window = setup_gui();
tagdb :: init();
library::init();
playlist::init();
deck::init();
audio::init(argc, argv);
playlist :: select("Favorites");
share_file("ocarina6.glade");
post_init_tabs();
return window;
}
#ifndef CONFIG_TEST
int main(int argc, char **argv)
{
Gtk::Main ocarina(&argc, &argv);
Gtk::Window *window = ocarina_init(&argc, &argv);
Gtk::Main::run(*window);
cleanup_tabs();
return 0;
}
#endif /* CONFIG_TEST */