79 lines
1.4 KiB
C++
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;
|
|
}
|