aboutsummaryrefslogtreecommitdiffstats
path: root/src/gui/MachinaGUI.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-03-31 07:04:04 +0000
committerDavid Robillard <d@drobilla.net>2007-03-31 07:04:04 +0000
commit7416f0b38e8eec05aea63604bdf23b5905c15754 (patch)
tree6ea8d7b3c063f2c782ce41a874f855ee1cebc2c5 /src/gui/MachinaGUI.cpp
parentf8883a56e44a42e97ca84392fdbff61e11540fcd (diff)
downloadmachina-7416f0b38e8eec05aea63604bdf23b5905c15754.tar.gz
machina-7416f0b38e8eec05aea63604bdf23b5905c15754.tar.bz2
machina-7416f0b38e8eec05aea63604bdf23b5905c15754.zip
Fixed tempo skew (record vs playback).
Recording/building algorithm fixes. Polished up GUI things. git-svn-id: http://svn.drobilla.net/lad/machina@384 a436a847-0d15-0410-975c-d299462d15a1
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();
}