aboutsummaryrefslogtreecommitdiffstats
path: root/src/gui/MachinaGUI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/MachinaGUI.cpp')
-rw-r--r--src/gui/MachinaGUI.cpp75
1 files changed, 42 insertions, 33 deletions
diff --git a/src/gui/MachinaGUI.cpp b/src/gui/MachinaGUI.cpp
index 6e3b188..f162ebd 100644
--- a/src/gui/MachinaGUI.cpp
+++ b/src/gui/MachinaGUI.cpp
@@ -38,9 +38,10 @@
#include "machina/Evolver.hpp"
#endif
-using namespace Machina;
+namespace Machina {
+namespace GUI {
-MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine)
+MachinaGUI::MachinaGUI(SPtr<Machina::Engine> engine)
: _refresh(false)
, _evolve(false)
, _unit(TimeUnit::BEATS, 19200)
@@ -49,8 +50,7 @@ MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine)
, _controller(new Machina::Controller(_engine, *_client_model.get()))
, _maid(new Raul::Maid())
{
- _canvas = boost::shared_ptr<MachinaCanvas>(
- new MachinaCanvas(this, 1600*2, 1200*2));
+ _canvas = SPtr<MachinaCanvas>(new MachinaCanvas(this, 1600*2, 1200*2));
Glib::RefPtr<Gtk::Builder> xml = WidgetFactory::create();
@@ -146,23 +146,30 @@ MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine)
_quantize_spinbutton->signal_changed().connect(
sigc::mem_fun(this, &MachinaGUI::quantize_changed));
- _mutate_button->signal_clicked().connect(sigc::bind(
- sigc::mem_fun(this, &MachinaGUI::random_mutation),
- SharedPtr<Machine>()));
- _compress_button->signal_clicked().connect(sigc::hide_return(sigc::bind(
- sigc::mem_fun(this, &MachinaGUI::mutate), SharedPtr<Machine>(), 0)));
- _add_node_button->signal_clicked().connect(sigc::bind(
- sigc::mem_fun(this, &MachinaGUI::mutate), SharedPtr<Machine>(), 1));
- _remove_node_button->signal_clicked().connect(sigc::bind(
- sigc::mem_fun(this, &MachinaGUI::mutate), SharedPtr<Machine>(), 2));
- _adjust_node_button->signal_clicked().connect(sigc::bind(
- sigc::mem_fun(this, &MachinaGUI::mutate), SharedPtr<Machine>(), 3));
- _add_edge_button->signal_clicked().connect(sigc::bind(
- sigc::mem_fun(this, &MachinaGUI::mutate), SharedPtr<Machine>(), 4));
- _remove_edge_button->signal_clicked().connect(sigc::bind(
- sigc::mem_fun(this, &MachinaGUI::mutate), SharedPtr<Machine>(), 5));
- _adjust_edge_button->signal_clicked().connect(sigc::bind(
- sigc::mem_fun(this, &MachinaGUI::mutate), SharedPtr<Machine>(), 6));
+ _mutate_button->signal_clicked().connect(
+ sigc::bind(sigc::mem_fun(this, &MachinaGUI::random_mutation),
+ SPtr<Machine>()));
+ _compress_button->signal_clicked().connect(
+ sigc::hide_return(sigc::bind(sigc::mem_fun(this, &MachinaGUI::mutate),
+ SPtr<Machine>(), 0)));
+ _add_node_button->signal_clicked().connect(
+ sigc::bind(sigc::mem_fun(this, &MachinaGUI::mutate),
+ SPtr<Machine>(), 1));
+ _remove_node_button->signal_clicked().connect(
+ sigc::bind(sigc::mem_fun(this, &MachinaGUI::mutate),
+ SPtr<Machine>(), 2));
+ _adjust_node_button->signal_clicked().connect(
+ sigc::bind(sigc::mem_fun(this, &MachinaGUI::mutate),
+ SPtr<Machine>(), 3));
+ _add_edge_button->signal_clicked().connect(
+ sigc::bind(sigc::mem_fun(this, &MachinaGUI::mutate),
+ SPtr<Machine>(), 4));
+ _remove_edge_button->signal_clicked().connect(
+ sigc::bind(sigc::mem_fun(this, &MachinaGUI::mutate),
+ SPtr<Machine>(), 5));
+ _adjust_edge_button->signal_clicked().connect(
+ sigc::bind(sigc::mem_fun(this, &MachinaGUI::mutate),
+ SPtr<Machine>(), 6));
connect_widgets();
@@ -177,9 +184,8 @@ MachinaGUI::MachinaGUI(SharedPtr<Machina::Engine> engine)
// Idle callback to drive the maid (collect garbage)
Glib::signal_timeout().connect(
- sigc::bind_return(
- sigc::mem_fun(_maid.get(), &Raul::Maid::cleanup),
- true),
+ sigc::bind_return(sigc::mem_fun(_maid.get(), &Raul::Maid::cleanup),
+ true),
1000);
// Idle callback to update node states
@@ -289,16 +295,16 @@ void
MachinaGUI::evolve_toggled()
{
if (_evolve_button->get_active()) {
- _evolver = SharedPtr<Evolver>(
+ _evolver = SPtr<Evolver>(
new Evolver(_unit, _target_filename, _engine->machine()));
_evolve = true;
stop_clicked();
- _engine->driver()->set_machine(SharedPtr<Machine>());
+ _engine->driver()->set_machine(SPtr<Machine>());
_evolver->start();
} else {
_evolver->stop();
_evolve = false;
- SharedPtr<Machine> new_machine = SharedPtr<Machine>(
+ SPtr<Machine> new_machine = SPtr<Machine>(
new Machine(*_evolver->best()));
_engine->driver()->set_machine(new_machine);
_canvas->build(new_machine, _menu_view_labels->get_active());
@@ -309,7 +315,7 @@ MachinaGUI::evolve_toggled()
#endif
void
-MachinaGUI::random_mutation(SharedPtr<Machine> machine)
+MachinaGUI::random_mutation(SPtr<Machine> machine)
{
if (!machine)
machine = _engine->machine();
@@ -318,7 +324,7 @@ MachinaGUI::random_mutation(SharedPtr<Machine> machine)
}
void
-MachinaGUI::mutate(SharedPtr<Machine> machine, unsigned mutation)
+MachinaGUI::mutate(SPtr<Machine> machine, unsigned mutation)
{
#if 0
if (!machine)
@@ -423,7 +429,7 @@ MachinaGUI::menu_file_open()
const int result = dialog.run();
if (result == Gtk::RESPONSE_OK) {
- SharedPtr<Machina::Machine> new_machine = _engine->load_machine(dialog.get_uri());
+ SPtr<Machina::Machine> new_machine = _engine->load_machine(dialog.get_uri());
if (new_machine) {
_canvas->destroy();
_controller->announce(new_machine);
@@ -530,7 +536,7 @@ MachinaGUI::menu_import_midi()
const double length_dbl = length_sb->get_value_as_int();
const Raul::TimeStamp length(_unit, length_dbl);
- SharedPtr<Machina::Machine> machine = _engine->load_machine_midi(
+ SPtr<Machina::Machine> machine = _engine->load_machine_midi(
dialog.get_filename(), 0.0, length);
if (machine) {
@@ -689,13 +695,16 @@ MachinaGUI::play_toggled()
}
void
-MachinaGUI::on_new_object(SharedPtr<Client::ClientObject> object)
+MachinaGUI::on_new_object(SPtr<Client::ClientObject> object)
{
_canvas->on_new_object(object);
}
void
-MachinaGUI::on_erase_object(SharedPtr<Client::ClientObject> object)
+MachinaGUI::on_erase_object(SPtr<Client::ClientObject> object)
{
_canvas->on_erase_object(object);
}
+
+} // namespace Machina
+} // namespace GUI