jsweeper/src/gui.cpp

79 lines
1.4 KiB
C++

#include <iostream>
#include <cmath>
#include <unistd.h>
#include "jack.h"
#include "portmanager.h"
#include "gui.h"
#include "config.h"
Glib::RefPtr<Gtk::Builder> g_builder;
Gui::Gui(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &builder)
: Gtk::Window(cobject),
m_scrolledwindow_audio(NULL),
m_scrolledwindow_midi(NULL)
{
builder->get_widget("scrolledwindow_audio", m_scrolledwindow_audio);
builder->get_widget("scrolledwindow_midi", m_scrolledwindow_midi);
if (m_scrolledwindow_audio != NULL) {
m_scrolledwindow_audio->add(m_matrix);
}
if (m_scrolledwindow_midi != NULL) {
m_scrolledwindow_midi->add(m_matrix);
}
m_matrix.parent = this;
Refresh();
Glib::signal_idle().connect(sigc::mem_fun(*this, &Gui::on_idle));
Preferences *p = Preferences::Open();
p->show();
}
Gui::~Gui()
{
}
Gui *Gui::Open()
{
if (g_builder == NULL) {
g_builder = Gtk::Builder::create_from_file("jsweeper.ui");
}
Gui *window = NULL;
g_builder->get_widget_derived("window1", window);
return window;
}
void Gui::Refresh()
{
m_matrix.Refresh();
}
bool Gui::on_idle()
{
if (jack.ProcessEvents()) {
Refresh();
queue_draw();
}
usleep(1000);
return true;
}
Preferences::Preferences(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &builder)
: Gtk::Dialog(cobject)
{
}
Preferences *Preferences::Open()
{
Preferences *window = NULL;
g_builder->get_widget_derived("dialog_preferences", window);
return window;
}