summaryrefslogtreecommitdiff
path: root/muse2/muse/waveevent.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/waveevent.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/waveevent.cpp')
-rw-r--r--muse2/muse/waveevent.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/muse2/muse/waveevent.cpp b/muse2/muse/waveevent.cpp
index 38ae10c6..24be2d01 100644
--- a/muse2/muse/waveevent.cpp
+++ b/muse2/muse/waveevent.cpp
@@ -53,16 +53,25 @@ WaveEventBase::WaveEventBase(EventType t)
// WaveEventBase::clone
//---------------------------------------------------------
-EventBase* WaveEventBase::clone()
+EventBase* WaveEventBase::clone() const
{
return new WaveEventBase(*this);
}
+bool WaveEventBase::isSimilarTo(const EventBase& other_) const
+{
+ const WaveEventBase* other = dynamic_cast<const WaveEventBase*>(&other_);
+ if (other==NULL) // dynamic cast hsa failed: "other_" is not of type WaveEventBase.
+ return false;
+
+ return f.dirPath()==other->f.dirPath() && _spos==other->_spos && this->PosLen::operator==(*other);
+}
+
//---------------------------------------------------------
// WaveEvent::mid
//---------------------------------------------------------
-EventBase* WaveEventBase::mid(unsigned b, unsigned e)
+EventBase* WaveEventBase::mid(unsigned b, unsigned e) const
{
WaveEventBase* ev = new WaveEventBase(*this);
unsigned fr = frame();