diff --git a/src/TrackPanel.cpp b/src/TrackPanel.cpp index 5ebd21138..955d5b711 100644 --- a/src/TrackPanel.cpp +++ b/src/TrackPanel.cpp @@ -7668,8 +7668,6 @@ bool TrackPanel::MoveClipToTrack(WaveClip *clip, WaveTrack* dst) src2->MoveClipToTrack(clip2, dst2); // update the captured clip array. - bool did1, did2; - did1 = did2 = false; for (i = 0; i < mCapturedClipArray.GetCount(); i++) { if (clip && mCapturedClipArray[i].clip == clip) { mCapturedClipArray[i].track = dst; diff --git a/src/WaveClip.cpp b/src/WaveClip.cpp index d73926f7c..dcd27e418 100644 --- a/src/WaveClip.cpp +++ b/src/WaveClip.cpp @@ -1242,14 +1242,9 @@ bool WaveClip::Paste(double t0, WaveClip* other) sampleCount s0; TimeToSamplesClip(t0, &s0); - // Check whether sample formats match. + // Force sample formats to match. if (pastedClip->mSequence->GetSampleFormat() != mSequence->GetSampleFormat()) - { - // In debug mode, fail because that's probably a bad call to this method. - // In release, adjust the source to match the destination, so we don't do a bad paste. - wxASSERT(false); pastedClip->ConvertToSampleFormat(mSequence->GetSampleFormat()); - } bool result = false; if (mSequence->Paste(s0, pastedClip->mSequence)) diff --git a/src/WaveTrack.cpp b/src/WaveTrack.cpp index 31fe160e9..10c8176d5 100644 --- a/src/WaveTrack.cpp +++ b/src/WaveTrack.cpp @@ -1839,21 +1839,24 @@ int WaveTrack::GetNumClips() const return mClips.GetCount(); } -void WaveTrack::MoveClipToTrack(int clipIndex, WaveTrack* dest) -{ - WaveClipList::compatibility_iterator node = mClips.Item(clipIndex); - WaveClip* clip = node->GetData(); - mClips.DeleteNode(node); - dest->mClips.Append(clip); -} +// unused +//void WaveTrack::MoveClipToTrack(int clipIndex, WaveTrack* dest) +//{ +// WaveClipList::compatibility_iterator node = mClips.Item(clipIndex); +// WaveClip* clip = node->GetData(); +// mClips.DeleteNode(node); +// dest->mClips.Append(clip); +//} void WaveTrack::MoveClipToTrack(WaveClip *clip, WaveTrack* dest) { for (WaveClipList::compatibility_iterator it=GetClipIterator(); it; it=it->GetNext()) { if (it->GetData() == clip) { - WaveClip* clip = it->GetData(); + WaveClip* clip = it->GetData(); // ANSWER-ME: Why declare and assign this to another variable, when we just verified the 'clip' parameter is the right value?! mClips.DeleteNode(it); dest->mClips.Append(clip); + clip->Resample(dest->GetRate()); + clip->MarkChanged(); return; // JKC iterator is now 'defunct' so better return straight away. } } diff --git a/src/WaveTrack.h b/src/WaveTrack.h index d2f2e8f49..da487ccf2 100644 --- a/src/WaveTrack.h +++ b/src/WaveTrack.h @@ -317,7 +317,7 @@ class AUDACITY_DLL_API WaveTrack: public Track { // Move a clip into a new track. This will remove the clip // in this cliplist and add it to the cliplist of the // other clip. No fancy additional stuff is done. - void MoveClipToTrack(int clipIndex, WaveTrack* dest); + // unused void MoveClipToTrack(int clipIndex, WaveTrack* dest); void MoveClipToTrack(WaveClip *clip, WaveTrack* dest); // Remove the clip from the track and return a pointer to it.