diff options
Diffstat (limited to 'muse2/muse/seqmsg.cpp')
-rw-r--r-- | muse2/muse/seqmsg.cpp | 337 |
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 //--------------------------------------------------------- |