summaryrefslogtreecommitdiff
path: root/muse2/muse/audio.h
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/muse/audio.h')
-rw-r--r--muse2/muse/audio.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/muse2/muse/audio.h b/muse2/muse/audio.h
index 4b81bb2a..044760ac 100644
--- a/muse2/muse/audio.h
+++ b/muse2/muse/audio.h
@@ -52,6 +52,7 @@ class Part;
class PluginI;
class SynthI;
class Track;
+class Undo;
//---------------------------------------------------------
// AudioMsgId
@@ -67,7 +68,7 @@ enum {
SEQM_ADD_TEMPO, SEQM_SET_TEMPO, SEQM_REMOVE_TEMPO, SEQM_ADD_SIG, SEQM_REMOVE_SIG,
SEQM_ADD_KEY, SEQM_REMOVE_KEY,
SEQM_SET_GLOBAL_TEMPO,
- SEQM_UNDO, SEQM_REDO,
+ SEQM_REVERT_OPERATION_GROUP, SEQM_EXECUTE_OPERATION_GROUP,
SEQM_RESET_DEVICES, SEQM_INIT_DEVICES, SEQM_PANIC,
SEQM_MIDI_LOCAL_OFF,
SEQM_PLAY_MIDI_EVENT,
@@ -121,6 +122,7 @@ struct AudioMsg : public ThreadMsg { // this should be an union
char port, channel, ctrl;
int a, b, c;
Pos pos;
+ Undo* operations;
};
class AudioOutput;
@@ -221,6 +223,9 @@ class Audio {
void msgSeek(const Pos&);
void msgPlay(bool val);
+ void msgExecuteOperationGroup(Undo&); // calls exe1, then calls exe2 in audio context, then calls exe3
+ void msgRevertOperationGroup(Undo&); // similar.
+
void msgRemoveTrack(Track*, bool u = true);
void msgRemoveTracks();
void msgMoveTrack(int idx1, int dx2, bool u = true);
@@ -252,8 +257,6 @@ class Audio {
void msgSetPrefader(AudioTrack*, int);
void msgSetChannels(AudioTrack*, int);
void msgSetRecord(AudioTrack*, bool);
- void msgUndo();
- void msgRedo();
void msgLocalOff();
void msgInitMidiDevices(bool force = true);
void msgResetMidiDevices();