78 lines
1.6 KiB
C++
78 lines
1.6 KiB
C++
#include <iostream>
|
|
#include <cmath>
|
|
#include <unistd.h>
|
|
#include "jack.h"
|
|
#include "portmanager.h"
|
|
#include "gui.h"
|
|
#include "config.h"
|
|
|
|
Gui::Gui()
|
|
{
|
|
set_title("JACK Sweeper");
|
|
set_border_width(0);
|
|
set_size_request(100, 100);
|
|
|
|
add(m_box);
|
|
|
|
m_scrolledwindow.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
|
|
m_scrolledwindow.set_border_width(0);
|
|
|
|
m_scrolledwindow.add(m_matrix);
|
|
m_matrix.parent = this;
|
|
|
|
Refresh();
|
|
|
|
Glib::signal_idle().connect(sigc::mem_fun(*this, &Gui::on_idle));
|
|
|
|
m_actiongroup = Gtk::ActionGroup::create();
|
|
m_actiongroup->add(Gtk::Action::create("MenuFile", "_File"));
|
|
m_actiongroup->add(Gtk::Action::create("Connect", "Connect"));
|
|
m_actiongroup->add(Gtk::Action::create("Disconnect", "Disconnect"));
|
|
m_actiongroup->add(Gtk::Action::create("Quit", Gtk::Stock::QUIT));
|
|
|
|
m_uimanager = Gtk::UIManager::create();
|
|
m_uimanager->insert_action_group(m_actiongroup);
|
|
add_accel_group(m_uimanager->get_accel_group());
|
|
|
|
std::string ui_info =
|
|
"<ui>"
|
|
" <menubar name='MenuBar'>"
|
|
" <menu action='MenuFile'>"
|
|
" <menuitem action='Connect'/>"
|
|
" <menuitem action='Disconnect'/>"
|
|
" <separator/>"
|
|
" <menuitem action='Quit'/>"
|
|
" </menu>"
|
|
" </menubar>"
|
|
"</ui>";
|
|
m_uimanager->add_ui_from_string(ui_info);
|
|
|
|
Gtk::Widget *menubar = m_uimanager->get_widget("/MenuBar");
|
|
m_box.pack_start(*menubar, Gtk::PACK_SHRINK);
|
|
m_box.pack_start(m_scrolledwindow);
|
|
|
|
show_all_children();
|
|
}
|
|
|
|
Gui::~Gui()
|
|
{
|
|
}
|
|
|
|
void Gui::Refresh()
|
|
{
|
|
m_matrix.Refresh();
|
|
}
|
|
|
|
bool Gui::on_idle()
|
|
{
|
|
if (jack.ProcessEvents()) {
|
|
Refresh();
|
|
queue_draw();
|
|
}
|
|
|
|
usleep(1000);
|
|
|
|
return true;
|
|
}
|
|
|