50 lines
942 B
C++
50 lines
942 B
C++
/*
|
|
* Copyright 2014 (c) Anna Schumaker.
|
|
*/
|
|
#include <audio.h>
|
|
#include <deck.h>
|
|
#include <ocarina.h>
|
|
#include <playlist.h>
|
|
#include <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();
|
|
audio::init(argc, argv);
|
|
deck::init();
|
|
library::init();
|
|
playlist::init();
|
|
|
|
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 */
|