summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_track.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/midi_track.cc')
-rw-r--r--libs/ardour/midi_track.cc19
1 files changed, 13 insertions, 6 deletions
diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc
index f6d0a22019..a18d0c20ce 100644
--- a/libs/ardour/midi_track.cc
+++ b/libs/ardour/midi_track.cc
@@ -619,14 +619,21 @@ MidiTrack::unfreeze ()
FreezeChange (); /* EMIT SIGNAL */
}
-void
+int
MidiTrack::set_mode (TrackMode m)
{
- if (_diskstream) {
- if (_mode != m) {
- _mode = m;
- _diskstream->set_destructive (m == Destructive);
- ModeChanged();
+ assert(_diskstream);
+
+ if (m != _mode) {
+
+ if (_diskstream->set_destructive (m == Destructive)) {
+ return -1;
}
+
+ _mode = m;
+
+ TrackModeChanged (); /* EMIT SIGNAL */
}
+
+ return 0;
}