Update of /cvsroot/audacity/audacity-src/src/effects
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv19679/effects
Modified Files:
AutoDuck.cpp ChangeSpeed.cpp ClickRemoval.cpp Echo.cpp
Effect.cpp Effect.h Equalization.cpp Generator.cpp
NoiseRemoval.cpp Normalize.cpp Repair.cpp Repeat.cpp
Reverse.cpp SBSMSEffect.cpp SimpleMono.cpp
SimplePairedTwoTrack.h SoundTouchEffect.cpp StereoToMono.cpp
TruncSilence.cpp TwoPassSimpleMono.cpp TwoPassSimpleMono.h
Log Message:
Fixed Bugs Related with Clearing tracks inside Groups (p.e. Truncate Effect
Bug, Clear WaveTrack between Time and Label Track)
Removed some warnings.
Added Track::All enum to match all tracks. Edited TrackListOfKindIterator to
match Track::All meaning.
Index: Equalization.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/Equalization.cpp,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -d -r1.95 -r1.96
--- Equalization.cpp 25 May 2009 11:34:58 -0000 1.95
+++ Equalization.cpp 18 Jun 2009 00:40:05 -0000 1.96
@@ -444,10 +444,10 @@
bool EffectEqualization::Process()
{
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks.
+ this->CopyInputTracks(); // Set up mOutputTracks.
bool bGoodResult = true;
- TrackListIterator iter(mOutputWaveTracks);
+ TrackListIterator iter(mOutputTracks);
WaveTrack *track = (WaveTrack *) iter.First();
int count = 0;
while (track) {
@@ -472,7 +472,7 @@
count++;
}
- this->ReplaceProcessedWaveTracks(bGoodResult);
+ this->ReplaceProcessedTracks(bGoodResult);
return bGoodResult;
}
Index: ChangeSpeed.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/ChangeSpeed.cpp,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -d -r1.58 -r1.59
--- ChangeSpeed.cpp 30 Mar 2009 10:34:12 -0000 1.58
+++ ChangeSpeed.cpp 18 Jun 2009 00:40:05 -0000 1.59
@@ -89,10 +89,10 @@
// Similar to EffectSoundTouch::Process()
//Iterate over each track
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks.
+ this->CopyInputTracks(); // Set up mOutputTracks.
bool bGoodResult = true;
- TrackListIterator iter(mOutputWaveTracks);
+ TrackListIterator iter(mOutputTracks);
WaveTrack* pOutWaveTrack = (WaveTrack*)(iter.First());
mCurTrackNum = 0;
m_maxNewLength = 0.0;
@@ -145,13 +145,13 @@
double timeAdded = newLen - len;
double sel = mCurT1-mCurT0;
double percent = (sel / (timeAdded + sel)) * 100 - 100;
- ReplaceProcessedWaveTracks(bGoodResult);
+ ReplaceProcessedTracks(bGoodResult);
if (!(HandleGroupChangeSpeed(percent, mCurT0, mCurT1))) {
bGoodResult = false;
}
}
else {
- ReplaceProcessedWaveTracks(bGoodResult);
+ ReplaceProcessedTracks(bGoodResult);
}
mT1 = mT0 + m_maxNewLength; // Update selection.
Index: TruncSilence.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/TruncSilence.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- TruncSilence.cpp 21 May 2009 23:33:21 -0000 1.24
+++ TruncSilence.cpp 18 Jun 2009 00:40:05 -0000 1.25
@@ -206,8 +206,9 @@
}
// Start processing
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks.
- TrackListIterator iterOut(mOutputWaveTracks);
+ //Track::All is needed because this effect has clear functionality
+ this->CopyInputTracks(Track::All); // Set up mOutputTracks.
+ TrackListOfKindIterator iterOut(Track::Wave, mOutputTracks);
sampleCount index = start;
sampleCount outTrackOffset = start;
@@ -388,7 +389,7 @@
if (!cancelled && (outTrackOffset < end)) {
t = (WaveTrack *) iterOut.First();
while (t) {
- t->Clear(outTrackOffset / rate, t1);
+ t->Clear(outTrackOffset / rate, t1, mOutputTracks);
t = (WaveTrack *) iterOut.Next();
}
t1 = outTrackOffset / rate;
@@ -403,7 +404,7 @@
mT0 = t0;
mT1 = t1;
- this->ReplaceProcessedWaveTracks(!cancelled);
+ this->ReplaceProcessedTracks(!cancelled);
return !cancelled;
}
Index: StereoToMono.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/StereoToMono.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- StereoToMono.cpp 25 Apr 2009 00:33:42 -0000 1.14
+++ StereoToMono.cpp 18 Jun 2009 00:40:05 -0000 1.15
@@ -100,7 +100,7 @@
mLeftTrack->SetLinked(false);
mRightTrack->SetLinked(false);
mLeftTrack->SetChannel(Track::MonoChannel);
- mOutputWaveTracks->Remove(mRightTrack);
+ mOutputTracks->Remove(mRightTrack);
delete mRightTrack;
delete [] leftBuffer;
@@ -113,10 +113,10 @@
{
// Do not use mWaveTracks here. We will possibly delete tracks,
// so we must use the "real" tracklist.
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks.
+ this->CopyInputTracks(); // Set up mOutputTracks.
bool bGoodResult = true;
- TrackListIterator iter(mOutputWaveTracks);
+ TrackListIterator iter(mOutputTracks);
mLeftTrack = (WaveTrack *)iter.First();
bool refreshIter = false;
@@ -167,6 +167,6 @@
if(mOutTrack)
delete mOutTrack;
- this->ReplaceProcessedWaveTracks(bGoodResult);
+ this->ReplaceProcessedTracks(bGoodResult);
return bGoodResult;
}
Index: Repair.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/Repair.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- Repair.cpp 29 Sep 2008 22:38:06 -0000 1.7
+++ Repair.cpp 18 Jun 2009 00:40:05 -0000 1.8
@@ -56,10 +56,10 @@
{
//v This may be too much copying for EffectRepair. To support Cancel, may
be able to copy much less.
// But for now, Cancel isn't supported without this.
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks. //v This may be
too much copying for EffectRepair.
+ this->CopyInputTracks(); // Set up mOutputTracks. //v This may be too much
copying for EffectRepair.
bool bGoodResult = true;
- TrackListIterator iter(mOutputWaveTracks);
+ TrackListIterator iter(mOutputTracks);
WaveTrack *track = (WaveTrack *) iter.First();
int count = 0;
while (track) {
@@ -118,7 +118,7 @@
count++;
}
- this->ReplaceProcessedWaveTracks(bGoodResult);
+ this->ReplaceProcessedTracks(bGoodResult);
return bGoodResult;
}
Index: AutoDuck.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/AutoDuck.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- AutoDuck.cpp 26 May 2009 06:43:51 -0000 1.14
+++ AutoDuck.cpp 18 Jun 2009 00:40:05 -0000 1.15
@@ -338,8 +338,8 @@
if (!cancel)
{
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks.
- TrackListIterator iter(mOutputWaveTracks);
+ this->CopyInputTracks(); // Set up mOutputTracks.
+ TrackListIterator iter(mOutputTracks);
Track *iterTrack = iter.First();
int trackNumber = 0;
@@ -368,7 +368,7 @@
}
}
- this->ReplaceProcessedWaveTracks(!cancel);
+ this->ReplaceProcessedTracks(!cancel);
return !cancel;
}
Index: Repeat.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/Repeat.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- Repeat.cpp 23 Mar 2009 07:19:37 -0000 1.30
+++ Repeat.cpp 18 Jun 2009 00:40:05 -0000 1.31
@@ -108,13 +108,13 @@
bool EffectRepeat::Process()
{
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks.
+ this->CopyInputTracks(); // Set up mOutputTracks.
int nTrack = 0;
bool bGoodResult = true;
double maxDestLen = 0.0; // used to change selection to generated bit
- TrackListIterator iter(mOutputWaveTracks);
+ TrackListIterator iter(mOutputTracks);
WaveTrack *track = (WaveTrack *)iter.First();
for (; track && bGoodResult; track = (WaveTrack *)iter.Next(), nTrack++) {
double trackStart = track->GetStartTime();
@@ -158,7 +158,7 @@
mT1 = maxDestLen;
}
- this->ReplaceProcessedWaveTracks(bGoodResult);
+ this->ReplaceProcessedTracks(bGoodResult);
return bGoodResult;
}
Index: TwoPassSimpleMono.h
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/TwoPassSimpleMono.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- TwoPassSimpleMono.h 12 Jul 2008 15:25:48 -0000 1.6
+++ TwoPassSimpleMono.h 18 Jun 2009 00:40:05 -0000 1.7
@@ -30,7 +30,7 @@
// Override these methods if you need to initialize something
// before each pass. Return None if processing should stop.
- // These should not depend on mOutputWaveTracks having been set up via
CopyInputWaveTracks().
+ // These should not depend on mOutputTracks having been set up via
CopyInputTracks().
virtual bool InitPass1();
virtual bool InitPass2();
Index: Effect.h
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/Effect.h,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -d -r1.44 -r1.45
--- Effect.h 20 May 2009 06:22:49 -0000 1.44
+++ Effect.h 18 Jun 2009 00:40:05 -0000 1.45
@@ -56,7 +56,6 @@
#define SKIP_EFFECT_MILLISECOND 99999
class AUDACITY_DLL_API Effect {
-
//
// public methods
//
@@ -197,7 +196,7 @@
// be created with this rate...
TrackFactory *mFactory;
TrackList *mTracks; // the complete list of all tracks
- TrackList *mOutputWaveTracks; // used only if CopyInputWaveTracks() is
called.
+ TrackList *mOutputTracks; // used only if CopyInputTracks() is called.
double mT0;
double mT1;
@@ -239,18 +238,21 @@
static double sDefaultGenerateLen;
int mFlags;
double mLength;
+
+ // type of the tracks on mOutputTracks
+ int mOutputTracksType;
//
// private methods
//
- // Use these two methods to copy the input tracks to mOutputWaveTracks, if
+ // Use these two methods to copy the input tracks to mOutputTracks, if
// doing the processing on them, and replacing the originals only on
success (and not cancel).
- void CopyInputWaveTracks();
+ void CopyInputTracks(int trackType = Track::Wave);
// If bGoodResult, replace mWaveTracks tracks in mTracks with successfully
processed
- // mOutputWaveTracks copies, get rid of old mWaveTracks, and set
mWaveTracks to mOutputWaveTracks.
- // Else clear and delete mOutputWaveTracks copies.
- void ReplaceProcessedWaveTracks(const bool bGoodResult);
+ // mOutputTracks copies, get rid of old mWaveTracks, and set mWaveTracks to
mOutputTracks.
+ // Else clear and delete mOutputTracks copies.
+ void ReplaceProcessedTracks(const bool bGoodResult);
// Used only by the base Effect class
//
Index: NoiseRemoval.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/NoiseRemoval.cpp,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -d -r1.59 -r1.60
--- NoiseRemoval.cpp 25 May 2009 11:19:19 -0000 1.59
+++ NoiseRemoval.cpp 18 Jun 2009 00:40:05 -0000 1.60
@@ -282,10 +282,10 @@
// This same code will both remove noise and profile it,
// depending on 'mDoProfile'
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks.
+ this->CopyInputTracks(); // Set up mOutputTracks.
bool bGoodResult = true;
- TrackListIterator iter(mOutputWaveTracks);
+ TrackListIterator iter(mOutputTracks);
WaveTrack *track = (WaveTrack *) iter.First();
int count = 0;
while (track) {
@@ -317,7 +317,7 @@
if (bGoodResult)
Cleanup();
- this->ReplaceProcessedWaveTracks(bGoodResult);
+ this->ReplaceProcessedTracks(bGoodResult);
return bGoodResult;
}
Index: Reverse.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/Reverse.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- Reverse.cpp 12 Jul 2008 15:25:47 -0000 1.13
+++ Reverse.cpp 18 Jun 2009 00:40:05 -0000 1.14
@@ -31,10 +31,10 @@
bool EffectReverse::Process()
{
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks.
+ this->CopyInputTracks(); // Set up mOutputTracks.
bool bGoodResult = true;
- TrackListIterator iter(mOutputWaveTracks);
+ TrackListIterator iter(mOutputTracks);
WaveTrack *track = (WaveTrack *) iter.First();
int count = 0;
while (track) {
@@ -59,7 +59,7 @@
count++;
}
- this->ReplaceProcessedWaveTracks(bGoodResult);
+ this->ReplaceProcessedTracks(bGoodResult);
return bGoodResult;
}
Index: SBSMSEffect.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/SBSMSEffect.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- SBSMSEffect.cpp 30 Mar 2009 10:34:12 -0000 1.8
+++ SBSMSEffect.cpp 18 Jun 2009 00:40:05 -0000 1.9
@@ -158,8 +158,8 @@
bool bGoodResult = true;
//Iterate over each track
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks.
- TrackListIterator iter(mOutputWaveTracks);
+ this->CopyInputTracks(); // Set up mOutputTracks.
+ TrackListIterator iter(mOutputTracks);
WaveTrack* leftTrack = (WaveTrack*)(iter.First());
WaveTrack* saveLeft = leftTrack;
mCurTrackNum = 0;
@@ -360,13 +360,13 @@
double timeAdded = newLen-len;
double sel = mCurT1-mCurT0;
double percent = (sel/(timeAdded+sel))*100 - 100;
- ReplaceProcessedWaveTracks(bGoodResult);
+ ReplaceProcessedTracks(bGoodResult);
if (!(HandleGroupChangeSpeed(percent, mCurT0, mCurT1))) {
bGoodResult = false;
}
}
else {
- ReplaceProcessedWaveTracks(bGoodResult);
+ ReplaceProcessedTracks(bGoodResult);
}
// Update selection
Index: SimpleMono.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/SimpleMono.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- SimpleMono.cpp 23 Mar 2009 08:52:16 -0000 1.19
+++ SimpleMono.cpp 18 Jun 2009 00:40:05 -0000 1.20
@@ -29,10 +29,10 @@
bool EffectSimpleMono::Process()
{
//Iterate over each track
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks.
+ this->CopyInputTracks(); // Set up mOutputTracks.
bool bGoodResult = true;
- TrackListIterator iter(mOutputWaveTracks);
+ TrackListIterator iter(mOutputTracks);
WaveTrack* pOutWaveTrack = (WaveTrack*)(iter.First());
mCurTrackNum = 0;
while (pOutWaveTrack != NULL)
@@ -71,7 +71,7 @@
mCurTrackNum++;
}
- this->ReplaceProcessedWaveTracks(bGoodResult);
+ this->ReplaceProcessedTracks(bGoodResult);
return bGoodResult;
}
Index: Echo.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/Echo.cpp,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -d -r1.34 -r1.35
--- Echo.cpp 24 Jan 2009 11:06:37 -0000 1.34
+++ Echo.cpp 18 Jun 2009 00:40:05 -0000 1.35
@@ -75,10 +75,10 @@
bool EffectEcho::Process()
{
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks.
+ this->CopyInputTracks(); // Set up mOutputTracks.
bool bGoodResult = true;
- TrackListIterator iter(mOutputWaveTracks);
+ TrackListIterator iter(mOutputTracks);
WaveTrack *track = (WaveTrack *) iter.First();
int count = 0;
while (track) {
@@ -103,7 +103,7 @@
count++;
}
- this->ReplaceProcessedWaveTracks(bGoodResult);
+ this->ReplaceProcessedTracks(bGoodResult);
return bGoodResult;
}
Index: Generator.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/Generator.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- Generator.cpp 30 Mar 2009 08:33:56 -0000 1.2
+++ Generator.cpp 18 Jun 2009 00:40:05 -0000 1.3
@@ -23,13 +23,13 @@
BeforeGenerate();
- // Set up mOutputWaveTracks
- this->CopyInputWaveTracks();
+ // Set up mOutputTracks
+ this->CopyInputTracks();
// Iterate over the tracks
bool bGoodResult = true;
int ntrack = 0;
- TrackListIterator iter(mOutputWaveTracks);
+ TrackListIterator iter(mOutputTracks);
WaveTrack *track = (WaveTrack *)iter.First();
while (track) {
if (mDuration > 0.0)
@@ -67,7 +67,7 @@
Success();
- this->ReplaceProcessedWaveTracks(bGoodResult);
+ this->ReplaceProcessedTracks(bGoodResult);
HandleLinkedTracksOnGenerate(mDuration, mT0);
mT1 = mT0 + mDuration; // Update selection.
Index: SoundTouchEffect.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/SoundTouchEffect.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- SoundTouchEffect.cpp 30 Mar 2009 10:34:12 -0000 1.22
+++ SoundTouchEffect.cpp 18 Jun 2009 00:40:05 -0000 1.23
@@ -29,10 +29,10 @@
// by the subclass for subclass-specific parameters.
//Iterate over each track
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks.
+ this->CopyInputTracks(); // Set up mOutputTracks.
bool bGoodResult = true;
- TrackListIterator iter(mOutputWaveTracks);
+ TrackListIterator iter(mOutputTracks);
WaveTrack* leftTrack = (WaveTrack*)(iter.First());
mCurTrackNum = 0;
m_maxNewLength = 0.0;
@@ -108,13 +108,13 @@
double timeAdded = newLen-len;
double sel = mCurT1 - mCurT0;
double percent = (sel / (timeAdded + sel)) * 100 - 100;
- ReplaceProcessedWaveTracks(bGoodResult);
+ ReplaceProcessedTracks(bGoodResult);
if (!(HandleGroupChangeSpeed(percent, mCurT0, mCurT1))) {
bGoodResult = false;
}
}
else {
- ReplaceProcessedWaveTracks(bGoodResult);
+ ReplaceProcessedTracks(bGoodResult);
}
delete mSoundTouch;
Index: Effect.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/Effect.cpp,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -d -r1.74 -r1.75
--- Effect.cpp 26 May 2009 06:43:51 -0000 1.74
+++ Effect.cpp 18 Jun 2009 00:40:05 -0000 1.75
@@ -38,6 +38,8 @@
#include "../WaveTrack.h"
#include "../widgets/ProgressDialog.h"
#include "../ondemand/ODManager.h"
+
+WX_DECLARE_HASH_MAP( int, int, wxIntegerHash, wxIntegerEqual, t2bHash );
//
// public static methods
//
@@ -60,7 +62,8 @@
Effect::Effect()
{
mTracks = NULL;
- mOutputWaveTracks = NULL;
+ mOutputTracks = NULL;
+ mOutputTracksType = Track::None;
mLength = 0;
mNumTracks = 0;
mNumGroups = 0;
@@ -78,9 +81,9 @@
{
wxASSERT(*t0 <= *t1);
- if (mOutputWaveTracks) {
- delete mOutputWaveTracks;
- mOutputWaveTracks = NULL;
+ if (mOutputTracks) {
+ delete mOutputTracks;
+ mOutputTracks = NULL;
}
mFactory = factory;
@@ -114,9 +117,9 @@
End();
- if (mOutputWaveTracks) {
- delete mOutputWaveTracks;
- mOutputWaveTracks = NULL;
+ if (mOutputTracks) {
+ delete mOutputTracks;
+ mOutputTracks = NULL;
}
if (returnVal) {
@@ -180,45 +183,64 @@
//
// private methods
//
-// Use these two methods to copy the input tracks to mOutputWaveTracks, if
+// Use these two methods to copy the input tracks to mOutputTracks, if
// doing the processing on them, and replacing the originals only on success
(and not cancel).
-void Effect::CopyInputWaveTracks()
+// Copy the group tracks that have tracks selected
+void Effect::CopyInputTracks(int trackType)
{
- if (GetNumWaveTracks() <= 0) {
- return;
- }
-
// Reset map
mIMap.Clear();
mOMap.Clear();
- // Copy the wavetracks, to process the copies.
- TrackListOfKindIterator iter(Track::Wave, mTracks);
- mOutputWaveTracks = new TrackList();
- for (Track *t = iter.First(); t; t = iter.Next()) {
- if (!t->GetSelected()) {
+ mOutputTracks = new TrackList();
+ mOutputTracksType = trackType;
+
+ //iterate over tracks of type trackType (All types if Track::All)
+ TrackListOfKindIterator aIt(trackType, mTracks);
+ t2bHash added;
+
+ //for each track that is selected
+ for (Track *aTrack = aIt.First(); aTrack; aTrack = aIt.Next()) {
+ if (!aTrack->GetSelected()) {
continue;
}
- Track *o = mFactory->DuplicateWaveTrack(*(WaveTrack*)t);
- mOutputWaveTracks->Add(o);
+ TrackGroupIterator gIt(mTracks);
+ Track *gTrack = gIt.First(aTrack);
- mIMap.Add(t);
- mOMap.Add(o);
+ //if the track is part of a group
+ if (trackType == Track::All && gTrack != NULL) {
+ //go to the project tracks and add all the tracks in the same group
+ for( ; gTrack; gTrack = gIt.Next() ) {
+ // only add if the track was not added before
+ if (added.find((int)gTrack) == added.end()) {
+ added[(int)gTrack]=true;
+ Track *o = gTrack->Duplicate();
+ mOutputTracks->Add(o);
+ mIMap.Add(gTrack);
+ mOMap.Add(o);
+ }
+ }
+ }
+ //otherwise just add the track
+ else {
+ Track *o = aTrack->Duplicate();
+ mOutputTracks->Add(o);
+ mIMap.Add(aTrack);
+ mOMap.Add(o);
+ }
}
}
-
-// If bGoodResult, replace mWaveTracks tracks in mTracks with successfully
processed
-// mOutputWaveTracks copies, get rid of old mWaveTracks, and set mWaveTracks
to mOutputWaveTracks.
-// Else clear and delete mOutputWaveTracks copies.
-void Effect::ReplaceProcessedWaveTracks(const bool bGoodResult)
+// If bGoodResult, replace mTracks tracks with successfully processed
mOutputTracks copies.
+// Else clear and delete mOutputTracks copies.
+void Effect::ReplaceProcessedTracks(const bool bGoodResult)
{
- wxASSERT(mOutputWaveTracks != NULL); // Make sure we at least did the
CopyInputWaveTracks().
+ wxASSERT(mOutputTracks != NULL); // Make sure we at least did the
CopyInputTracks().
if (!bGoodResult) {
// Processing failed or was cancelled so throw away the processed tracks.
- mOutputWaveTracks->Clear(true); // true => delete the tracks
+ mOutputTracks->Clear(true); // true => delete the tracks
// Reset map
mIMap.Clear();
@@ -228,14 +250,14 @@
return;
}
- TrackListIterator iterOut(mOutputWaveTracks);
+ TrackListIterator iterOut(mOutputTracks);
+ Track *x;
size_t cnt = mOMap.GetCount();
size_t i = 0;
- Track *x;
for (Track *o = iterOut.First(); o; o = x, i++) {
- // If tracks were removed from mOutputWaveTracks, then there will be
+ // If tracks were removed from mOutputTracks, then there will be
// tracks in the map that must be removed from mTracks.
while (i < cnt && mOMap[i] != o) {
mTracks->Remove((Track *)mIMap[i], true);
@@ -262,7 +284,7 @@
delete t;
}
- // If tracks were removed from mOutputWaveTracks, then there may be tracks
+ // If tracks were removed from mOutputTracks, then there may be tracks
// left at the end of the map that must be removed from mTracks.
while (i < cnt) {
mTracks->Remove((Track *)mIMap[i], true);
@@ -277,8 +299,9 @@
wxASSERT(iterOut.First() == NULL);
// The output list is no longer needed
- delete mOutputWaveTracks;
- mOutputWaveTracks = NULL;
+ delete mOutputTracks;
+ mOutputTracks = NULL;
+ mOutputTracksType = Track::None;
}
void Effect::CountWaveTracks()
@@ -571,8 +594,8 @@
FocusDialog->SetFocus();
}
- delete mOutputWaveTracks;
- mOutputWaveTracks = NULL;
+ delete mOutputTracks;
+ mOutputTracks = NULL;
mTracks->Clear(true); // true => delete the tracks
delete mTracks;
Index: SimplePairedTwoTrack.h
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/SimplePairedTwoTrack.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- SimplePairedTwoTrack.h 20 May 2009 06:22:49 -0000 1.13
+++ SimplePairedTwoTrack.h 18 Jun 2009 00:40:05 -0000 1.14
@@ -126,10 +126,10 @@
template<class _DataType,sampleFormat _xxxSample>
bool EffectSimplePairedTwoTrack<_DataType,_xxxSample>::Process()
{
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks.
+ this->CopyInputTracks(); // Set up mOutputTracks.
bool bGoodResult = true;
- TrackListIterator iter(mOutputWaveTracks);
+ TrackListIterator iter(mOutputTracks);
int count = 0;
WaveTrack *left = (WaveTrack*)(iter.First());
WaveTrack *right;
@@ -157,7 +157,7 @@
count++;
}
- this->ReplaceProcessedWaveTracks(bGoodResult);
+ this->ReplaceProcessedTracks(bGoodResult);
return bGoodResult;
}
Index: ClickRemoval.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/ClickRemoval.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- ClickRemoval.cpp 25 May 2009 11:17:29 -0000 1.17
+++ ClickRemoval.cpp 18 Jun 2009 00:40:05 -0000 1.18
@@ -124,10 +124,10 @@
bool EffectClickRemoval::Process()
{
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks.
+ this->CopyInputTracks(); // Set up mOutputTracks.
bool bGoodResult = true;
- TrackListIterator iter(mOutputWaveTracks);
+ TrackListIterator iter(mOutputTracks);
WaveTrack *track = (WaveTrack *) iter.First();
int count = 0;
while (track) {
@@ -151,7 +151,7 @@
track = (WaveTrack *) iter.Next();
count++;
}
- this->ReplaceProcessedWaveTracks(bGoodResult);
+ this->ReplaceProcessedTracks(bGoodResult);
return bGoodResult;
}
Index: TwoPassSimpleMono.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/TwoPassSimpleMono.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- TwoPassSimpleMono.cpp 12 Jul 2008 15:25:48 -0000 1.7
+++ TwoPassSimpleMono.cpp 18 Jun 2009 00:40:05 -0000 1.8
@@ -28,7 +28,7 @@
mSecondPassDisabled = false;
InitPass1();
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks.
+ this->CopyInputTracks(); // Set up mOutputTracks.
bool bGoodResult = ProcessPass();
if (bGoodResult && !mSecondPassDisabled)
@@ -38,14 +38,14 @@
bGoodResult = ProcessPass();
}
- this->ReplaceProcessedWaveTracks(bGoodResult);
+ this->ReplaceProcessedTracks(bGoodResult);
return bGoodResult;
}
bool EffectTwoPassSimpleMono::ProcessPass()
{
//Iterate over each track
- TrackListIterator iter(mOutputWaveTracks);
+ TrackListIterator iter(mOutputTracks);
WaveTrack *track = (WaveTrack *) iter.First();
mCurTrackNum = 0;
while (track) {
Index: Normalize.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/effects/Normalize.cpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- Normalize.cpp 25 May 2009 11:20:07 -0000 1.29
+++ Normalize.cpp 18 Jun 2009 00:40:05 -0000 1.30
@@ -139,10 +139,10 @@
return true;
//Iterate over each track
- this->CopyInputWaveTracks(); // Set up mOutputWaveTracks.
+ this->CopyInputTracks(); // Set up mOutputTracks.
bool bGoodResult = true;
- TrackListIterator iter(mOutputWaveTracks);
+ TrackListIterator iter(mOutputTracks);
WaveTrack *track = (WaveTrack *) iter.First();
mCurTrackNum = 0;
while (track) {
@@ -179,7 +179,7 @@
mCurTrackNum++;
}
- this->ReplaceProcessedWaveTracks(bGoodResult);
+ this->ReplaceProcessedTracks(bGoodResult);
return bGoodResult;
}
------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Audacity-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/audacity-cvs