summaryrefslogtreecommitdiff
path: root/muse2/muse/wave.cpp
diff options
context:
space:
mode:
authorFlorian Jung <flo@windfisch.org>2013-09-18 23:54:35 +0200
committerFlorian Jung <flo@windfisch.org>2013-09-18 23:54:35 +0200
commitb3fc353a09496ee0aea7099d72e6963f4c2fc774 (patch)
tree83ab91e988c59076d81ebddc09e8ff274dee8af5 /muse2/muse/wave.cpp
parent48a93993cfce160fb7d4cf0b67b4b77e22db19e5 (diff)
parent85a51421d44f3893a1010f77e0418caf6be70235 (diff)
Merge branch 'audiomsg_overhaul' (nonshared eventlists and more)
This introduces the following changes: - Clone Parts no more share their eventlist. Instead, all changes made to one clone are replicated to the other clones' eventlists - audio/song->msg{Add,Delete,Change}{Part,Event,Track} have been replaced by the corresponding UndoOp operations. - Enforcing of const-correctness: No GUI code may ever gain writable access to audio/midi/song data structures. Access must *always* go through applyOperationGroup. This is now enforced. - Removed a bunch of DELETETHIS or REMOVE or otherwise commented out code - Removed dead code - Removed unused Audio Messages (that should go through applyOpGroup anyway.)
Diffstat (limited to 'muse2/muse/wave.cpp')
-rw-r--r--muse2/muse/wave.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/muse2/muse/wave.cpp b/muse2/muse/wave.cpp
index 8c647685..9bf26753 100644
--- a/muse2/muse/wave.cpp
+++ b/muse2/muse/wave.cpp
@@ -826,11 +826,11 @@ bool SndFile::checkCopyOnWrite()
PartList* pl = (*it)->parts();
for(ciPart ip = pl->begin(); ip != pl->end(); ++ip)
{
- EventList* el = ip->second->events();
+ const EventList& el = ip->second->events();
// We are looking for active independent non-clone parts
- if(el->arefCount() > 1)
+ if(ip->second->hasClones())
continue;
- for(ciEvent ie = el->begin(); ie != el->end(); ++ie)
+ for(ciEvent ie = el.begin(); ie != el.end(); ++ie)
{
if(ie->second.type() != Wave)
continue;
@@ -1114,7 +1114,10 @@ void Song::cmdAddRecordedWave(MusECore::WaveTrack* track, MusECore::Pos s, MusEC
event.setLenFrame(e.frame() - s.frame());
part->addEvent(event);
- MusEGlobal::song->cmdAddPart(part);
+ // TODO FIXME that's ugly (flo)
+ addPart(part);
+ addUndo(UndoOp(UndoOp::AddPart, part));
+ updateFlags = SC_PART_INSERTED;
if (MusEGlobal::song->len() < etick)
MusEGlobal::song->setLen(etick);