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.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/gui/MachinaGUI.cpp b/src/gui/MachinaGUI.cpp
index cf0b07f..3ddb13f 100644
--- a/src/gui/MachinaGUI.cpp
+++ b/src/gui/MachinaGUI.cpp
@@ -235,7 +235,7 @@ void
MachinaGUI::update_toolbar()
{
_record_button->set_active(_engine->driver()->recording());
- _play_button->set_active(true);
+ _play_button->set_active(_engine->machine()->is_activated());
_bpm_spinbutton->set_sensitive(_bpm_radiobutton->get_active());
_quantize_spinbutton->set_sensitive(_quantize_checkbutton->get_active());
}
@@ -631,6 +631,7 @@ MachinaGUI::record_toggled()
} else if (_engine->driver()->recording()) {
_engine->driver()->finish_record();
_canvas->build(_engine->machine());
+ update_toolbar();
}
}
@@ -638,8 +639,12 @@ MachinaGUI::record_toggled()
void
MachinaGUI::stop_clicked()
{
- if (_engine->driver()->recording())
+ if (_engine->driver()->recording()) {
_engine->driver()->finish_record();
+ } else {
+ _engine->machine()->deactivate();
+ _engine->machine()->reset();
+ }
update_toolbar();
}
@@ -648,6 +653,10 @@ MachinaGUI::stop_clicked()
void
MachinaGUI::play_toggled()
{
+ if (_play_button->get_active())
+ _engine->machine()->activate();
+ else
+ _engine->machine()->deactivate();
}