60 lines
927 B
C++
60 lines
927 B
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(NULL)
|
|
{
|
|
builder->get_widget("scrolledwindow1", m_scrolledwindow);
|
|
|
|
if (m_scrolledwindow != NULL) {
|
|
m_scrolledwindow->add(m_matrix);
|
|
}
|
|
|
|
m_matrix.parent = this;
|
|
|
|
Refresh();
|
|
|
|
Glib::signal_idle().connect(sigc::mem_fun(*this, &Gui::on_idle));
|
|
}
|
|
|
|
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;
|
|
}
|
|
|