summaryrefslogtreecommitdiff
path: root/muse2/muse/seqmsg.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/muse/seqmsg.cpp')
-rw-r--r--muse2/muse/seqmsg.cpp337
1 files changed, 35 insertions, 302 deletions
diff --git a/muse2/muse/seqmsg.cpp b/muse2/muse/seqmsg.cpp
index fcffc332..669aff9d 100644
--- a/muse2/muse/seqmsg.cpp
+++ b/muse2/muse/seqmsg.cpp
@@ -319,38 +319,6 @@ void Audio::msgSetRecord(AudioTrack* node, bool val)
sendMsg(&msg);
}
-/* DELETETHIS 34
-//---------------------------------------------------------
-// msgSetVolume
-//---------------------------------------------------------
-
-void Audio::msgSetVolume(AudioTrack* src, double val)
- {
- AudioMsg msg;
- msg.id = AUDIO_VOL;
- msg.snode = src;
- msg.dval = val;
- sendMsg(&msg);
- //muse->arranger->controllerChanged(src);
- MusEGlobal::song->controllerChange(src);
- }
-
-//---------------------------------------------------------
-// msgSetPan
-//---------------------------------------------------------
-
-void Audio::msgSetPan(AudioTrack* node, double val)
- {
- AudioMsg msg;
- msg.id = AUDIO_PAN;
- msg.snode = node;
- msg.dval = val;
- sendMsg(&msg);
- //muse->arranger->controllerChanged(node);
- MusEGlobal::song->controllerChange(node);
- }
-*/
-
//---------------------------------------------------------
// msgSetPrefader
//---------------------------------------------------------
@@ -492,26 +460,6 @@ void Audio::msgSetChannels(AudioTrack* node, int n)
sendMsg(&msg);
}
-/* DELETETHIS 20
-//---------------------------------------------------------
-// msgSetPluginCtrlVal
-//---------------------------------------------------------
-
-void Audio::msgSetPluginCtrlVal(AudioTrack* track, int param, double val)
-{
- AudioMsg msg;
-
- msg.id = AUDIO_SET_PLUGIN_CTRL_VAL;
- msg.ival = param;
- msg.dval = val;
- //msg.plugin = plugin;
- msg.snode = track;
- sendMsg(&msg);
- //muse->arranger->controllerChanged(track);
- MusEGlobal::song->controllerChange(track);
-}
-*/
-
//---------------------------------------------------------
// msgSwapControllerIDX
//---------------------------------------------------------
@@ -646,18 +594,6 @@ void Audio::msgSetSolo(Track* track, bool val)
sendMsg(&msg);
}
-//---------------------------------------------------------
-// msgSetSegSize
-//---------------------------------------------------------
-
-void Audio::msgSetSegSize(int bs, int sr)
- {
- AudioMsg msg;
- msg.id = AUDIO_SET_SEG_SIZE;
- msg.ival = bs;
- msg.iival = sr;
- sendMsg(&msg);
- }
//---------------------------------------------------------
// msgSeek
@@ -670,26 +606,37 @@ void Audio::msgSeek(const Pos& pos)
}
//---------------------------------------------------------
-// msgUndo
+// msgExecuteOperationGroup
//---------------------------------------------------------
-void Audio::msgUndo()
- {
- AudioMsg msg;
- msg.id = SEQM_UNDO;
- sendMsg(&msg);
- }
+void Audio::msgExecuteOperationGroup(Undo& operations)
+{
+ MusEGlobal::song->executeOperationGroup1(operations);
+
+ AudioMsg msg;
+ msg.id = SEQM_EXECUTE_OPERATION_GROUP;
+ msg.operations=&operations;
+ sendMsg(&msg);
+
+ MusEGlobal::song->executeOperationGroup3(operations);
+}
//---------------------------------------------------------
-// msgRedo
+// msgRevertOperationGroup
//---------------------------------------------------------
-void Audio::msgRedo()
- {
- AudioMsg msg;
- msg.id = SEQM_REDO;
- sendMsg(&msg);
- }
+void Audio::msgRevertOperationGroup(Undo& operations)
+{
+ MusEGlobal::song->revertOperationGroup1(operations);
+
+
+ AudioMsg msg;
+ msg.id = SEQM_REVERT_OPERATION_GROUP;
+ msg.operations=&operations;
+ sendMsg(&msg);
+
+ MusEGlobal::song->revertOperationGroup3(operations);
+}
//---------------------------------------------------------
// msgPlay
@@ -714,56 +661,7 @@ void Audio::msgPlay(bool val)
}
}
-/* DELETETHIS 31
-//---------------------------------------------------------
-// msgShowInstrumentGui
-//---------------------------------------------------------
-
-void Audio::msgShowInstrumentGui(MidiInstrument* instr, bool val)
- {
- instr->showGui(val);
- // No need for this - it called msgUpdatePollFd which has nothing
- // to do with showing a gui.
- //AudioMsg msg;
- //msg.id = MIDI_SHOW_INSTR_GUI;
- //msg.p1 = instr;
- //msg.a = val;
- //sendMessage(&msg, false);
- }
-
-//---------------------------------------------------------
-// msgShowInstrumentNativeGui
-//---------------------------------------------------------
-
-void Audio::msgShowInstrumentNativeGui(MidiInstrument* instr, bool val)
- {
- instr->showNativeGui(val);
- //AudioMsg msg;
- //msg.id = MIDI_SHOW_INSTR_NATIVE_GUI;
- //msg.p1 = instr;
- //msg.a = val;
- //sendMessage(&msg, false);
- }
-*/
-
-//---------------------------------------------------------
-// msgAddTrack
-//---------------------------------------------------------
-void Song::msgInsertTrack(Track* track, int idx, bool doUndoFlag)
- {
- AudioMsg msg;
- msg.id = SEQM_ADD_TRACK;
- msg.track = track;
- msg.ival = idx;
- if (doUndoFlag) {
- MusEGlobal::song->startUndo();
- addUndo(UndoOp(UndoOp::AddTrack, idx, track));
- }
- MusEGlobal::audio->sendMsg(&msg);
- if (doUndoFlag)
- endUndo(SC_TRACK_INSERTED);
- }
//---------------------------------------------------------
// msgRemoveTrack
@@ -771,10 +669,7 @@ void Song::msgInsertTrack(Track* track, int idx, bool doUndoFlag)
void Audio::msgRemoveTrack(Track* track, bool doUndoFlag)
{
- AudioMsg msg;
- msg.id = SEQM_REMOVE_TRACK;
- msg.track = track;
- sendMessage(&msg, doUndoFlag);
+ MusEGlobal::song->applyOperation(UndoOp(UndoOp::DeleteTrack, MusEGlobal::song->tracks()->index(track), track), doUndoFlag);
}
//---------------------------------------------------------
@@ -794,9 +689,7 @@ void Audio::msgRemoveTracks()
Track* tr = *t;
if (tr->selected())
{
- MusEGlobal::song->removeTrack1(tr);
- msgRemoveTrack(tr, false);
- MusEGlobal::song->removeTrack3(tr);
+ MusEGlobal::song->applyOperation(UndoOp(UndoOp::DeleteTrack, MusEGlobal::song->tracks()->index(tr), tr), false);
loop = true;
break;
}
@@ -834,23 +727,6 @@ void Audio::msgRemoveTracks()
}
-/* DELETETHIS 18
-//---------------------------------------------------------
-// msgChangeTrack
-// oldTrack - copy of the original track befor modification
-// newTrack - modified original track
-//---------------------------------------------------------
-
-void Audio::msgChangeTrack(Track* oldTrack, Track* newTrack, bool doUndoFlag)
- {
- AudioMsg msg;
- msg.id = SEQM_CHANGE_TRACK;
- msg.p1 = oldTrack;
- msg.p2 = newTrack;
- sendMessage(&msg, doUndoFlag);
- }
-*/
-
//---------------------------------------------------------
// msgMoveTrack
// move track idx1 to slot idx2
@@ -863,11 +739,7 @@ void Audio::msgMoveTrack(int idx1, int idx2, bool doUndoFlag)
int n = MusEGlobal::song->tracks()->size();
if (idx1 >= n || idx2 >= n) // sanity check
return;
- AudioMsg msg;
- msg.id = SEQM_MOVE_TRACK;
- msg.a = idx1;
- msg.b = idx2;
- sendMessage(&msg, doUndoFlag);
+ MusEGlobal::song->applyOperation(UndoOp(UndoOp::SwapTrack, idx1, idx2), doUndoFlag);
}
//---------------------------------------------------------
@@ -876,10 +748,7 @@ void Audio::msgMoveTrack(int idx1, int idx2, bool doUndoFlag)
void Audio::msgAddPart(Part* part, bool doUndoFlag)
{
- AudioMsg msg;
- msg.id = SEQM_ADD_PART;
- msg.p1 = part;
- sendMessage(&msg, doUndoFlag);
+ MusEGlobal::song->applyOperation(UndoOp(UndoOp::AddPart, part), doUndoFlag);
}
//---------------------------------------------------------
@@ -888,54 +757,9 @@ void Audio::msgAddPart(Part* part, bool doUndoFlag)
void Audio::msgRemovePart(Part* part, bool doUndoFlag)
{
- AudioMsg msg;
- msg.id = SEQM_REMOVE_PART;
- msg.p1 = part;
- sendMessage(&msg, doUndoFlag);
- }
-
-//---------------------------------------------------------
-// msgRemoveParts
-// remove selected parts; return true if any part was
-// removed
-//---------------------------------------------------------
-
-bool Song::msgRemoveParts()
- {
- Undo operations;
- bool partSelected = false;
-
- TrackList* tl = MusEGlobal::song->tracks();
-
- for (iTrack it = tl->begin(); it != tl->end(); ++it) {
- PartList* pl = (*it)->parts();
- for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
- if (ip->second->selected()) {
- operations.push_back(UndoOp(UndoOp::DeletePart,ip->second));
- partSelected = true;
- }
- }
- }
-
- MusEGlobal::song->applyOperationGroup(operations);
-
- return partSelected;
+ MusEGlobal::song->applyOperation(UndoOp(UndoOp::DeletePart, part), doUndoFlag);
}
-//---------------------------------------------------------
-// msgChangePart
-//---------------------------------------------------------
-
-void Audio::msgChangePart(Part* oldPart, Part* newPart, bool doUndoFlag, bool doCtrls, bool doClones)
- {
- AudioMsg msg;
- msg.id = SEQM_CHANGE_PART;
- msg.p1 = oldPart;
- msg.p2 = newPart;
- msg.a = doCtrls;
- msg.b = doClones;
- sendMessage(&msg, doUndoFlag);
- }
//---------------------------------------------------------
// msgAddEvent
@@ -943,13 +767,7 @@ void Audio::msgChangePart(Part* oldPart, Part* newPart, bool doUndoFlag, bool do
void Audio::msgAddEvent(Event& event, Part* part, bool doUndoFlag, bool doCtrls, bool doClones)
{
- AudioMsg msg;
- msg.id = SEQM_ADD_EVENT;
- msg.ev1 = event;
- msg.p2 = part;
- msg.a = doCtrls;
- msg.b = doClones;
- sendMessage(&msg, doUndoFlag);
+ MusEGlobal::song->applyOperation(UndoOp(UndoOp::AddEvent, event,part, doCtrls, doClones), doUndoFlag);
}
//---------------------------------------------------------
@@ -958,13 +776,7 @@ void Audio::msgAddEvent(Event& event, Part* part, bool doUndoFlag, bool doCtrls,
void Audio::msgDeleteEvent(Event& event, Part* part, bool doUndoFlag, bool doCtrls, bool doClones)
{
- AudioMsg msg;
- msg.id = SEQM_REMOVE_EVENT;
- msg.ev1 = event;
- msg.p2 = part;
- msg.a = doCtrls;
- msg.b = doClones;
- sendMessage(&msg, doUndoFlag);
+ MusEGlobal::song->applyOperation(UndoOp(UndoOp::DeleteEvent, event,part, doCtrls, doClones), doUndoFlag);
}
//---------------------------------------------------------
@@ -973,14 +785,7 @@ void Audio::msgDeleteEvent(Event& event, Part* part, bool doUndoFlag, bool doCtr
void Audio::msgChangeEvent(Event& oe, Event& ne, Part* part, bool doUndoFlag, bool doCtrls, bool doClones)
{
- AudioMsg msg;
- msg.id = SEQM_CHANGE_EVENT;
- msg.ev1 = oe;
- msg.ev2 = ne;
- msg.p3 = part;
- msg.a = doCtrls;
- msg.b = doClones;
- sendMessage(&msg, doUndoFlag);
+ MusEGlobal::song->applyOperation(UndoOp(UndoOp::ModifyEvent, ne,oe, part, doCtrls, doClones), doUndoFlag);
}
//---------------------------------------------------------
@@ -989,11 +794,7 @@ void Audio::msgChangeEvent(Event& oe, Event& ne, Part* part, bool doUndoFlag, bo
void Audio::msgAddTempo(int tick, int tempo, bool doUndoFlag)
{
- AudioMsg msg;
- msg.id = SEQM_ADD_TEMPO;
- msg.a = tick;
- msg.b = tempo;
- sendMessage(&msg, doUndoFlag);
+ MusEGlobal::song->applyOperation(UndoOp(UndoOp::AddTempo, tick, tempo), doUndoFlag);
}
//---------------------------------------------------------
@@ -1027,11 +828,7 @@ void Audio::msgSetGlobalTempo(int val)
void Audio::msgDeleteTempo(int tick, int tempo, bool doUndoFlag)
{
- AudioMsg msg;
- msg.id = SEQM_REMOVE_TEMPO;
- msg.a = tick;
- msg.b = tempo;
- sendMessage(&msg, doUndoFlag);
+ MusEGlobal::song->applyOperation(UndoOp(UndoOp::DeleteTempo, tick, tempo), doUndoFlag);
}
//---------------------------------------------------------
@@ -1090,16 +887,6 @@ void Audio::msgRemoveKey(int tick, int key, bool doUndoFlag)
sendMessage(&msg, doUndoFlag);
}
-//---------------------------------------------------------
-// msgScanAlsaMidiPorts
-//---------------------------------------------------------
-
-void Audio::msgScanAlsaMidiPorts()
- {
- AudioMsg msg;
- msg.id = SEQM_SCAN_ALSA_MIDI_PORTS;
- sendMessage(&msg, false);
- }
//---------------------------------------------------------
// msgResetMidiDevices
@@ -1285,32 +1072,6 @@ void Audio::msgSetHwCtrlStates(MidiPort* port, int ch, int ctrl, int val, int la
}
//---------------------------------------------------------
-// msgSetTrackOutChannel
-//---------------------------------------------------------
-
-void Audio::msgSetTrackOutChannel(MidiTrack* track, int ch)
-{
- AudioMsg msg;
- msg.id = SEQM_SET_TRACK_OUT_CHAN;
- msg.p1 = track;
- msg.a = ch;
- sendMessage(&msg, false);
-}
-
-//---------------------------------------------------------
-// msgSetTrackOutPort
-//---------------------------------------------------------
-
-void Audio::msgSetTrackOutPort(MidiTrack* track, int port)
-{
- AudioMsg msg;
- msg.id = SEQM_SET_TRACK_OUT_PORT;
- msg.p1 = track;
- msg.a = port;
- sendMessage(&msg, false);
-}
-
-//---------------------------------------------------------
// msgSetTrackAutomationType
//---------------------------------------------------------
@@ -1324,34 +1085,6 @@ void Audio::msgSetTrackAutomationType(Track* track, int type)
}
//---------------------------------------------------------
-// msgRemapPortDrumCtlEvents
-//---------------------------------------------------------
-
-void Audio::msgRemapPortDrumCtlEvents(int mapidx, int newnote, int newchan, int newport)
-{
- AudioMsg msg;
- msg.id = SEQM_REMAP_PORT_DRUM_CTL_EVS;
- msg.ival = mapidx;
- msg.a = newnote;
- msg.b = newchan;
- msg.c = newport;
- sendMessage(&msg, false);
-}
-
-//---------------------------------------------------------
-// msgChangeAllPortDrumCtlEvents
-//---------------------------------------------------------
-
-void Audio::msgChangeAllPortDrumCtrlEvents(bool add, bool drumonly)
-{
- AudioMsg msg;
- msg.id = SEQM_CHANGE_ALL_PORT_DRUM_CTL_EVS;
- msg.a = (int)add;
- msg.b = (int)drumonly;
- sendMessage(&msg, false);
-}
-
-//---------------------------------------------------------
// msgSetSendMetronome
//---------------------------------------------------------