Update of /cvsroot/audacity/audacity-src/src
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv8267
Modified Files:
Track.cpp Track.h WaveTrack.cpp
Log Message:
Most of the effects should use an iterator over Selected Wave Tracks.
SelectedTrackListOfKindIterator created and respective files updated (I hope
all of them).
Fix for Paste when the initial paste position is not the same as the initial
selection (ex.: Repeat Effect).
Index: Track.h
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/Track.h,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -d -r1.59 -r1.60
--- Track.h 18 Jun 2009 00:40:04 -0000 1.59
+++ Track.h 25 Jun 2009 02:16:00 -0000 1.60
@@ -211,7 +211,7 @@
};
//
-// VisibleTrackIterator
+// TrackListOfKindIterator
//
// Based on TrackListIterator and returns only tracks of the specified type.
//
@@ -229,6 +229,24 @@
};
//
+// SelectedTrackListOfKindIterator
+//
+// Based on TrackListOfKindIterator and returns only tracks selected.
+//
+class AUDACITY_DLL_API SelectedTrackListOfKindIterator: public
TrackListOfKindIterator
+{
+ public:
+ SelectedTrackListOfKindIterator(int kind, TrackList * val = NULL) :
TrackListOfKindIterator(kind, val) {};
+
+ // Iterate functions
+ Track *First(TrackList * val = NULL);
+ Track *Next(bool skiplinked = false);
+
+ private:
+ int kind;
+};
+
+//
// VisibleTrackIterator
//
// Based on TrackListIterator returns only the currently visible tracks.
Index: WaveTrack.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/WaveTrack.cpp,v
retrieving revision 1.156
retrieving revision 1.157
diff -u -d -r1.156 -r1.157
--- WaveTrack.cpp 24 Jun 2009 23:55:40 -0000 1.156
+++ WaveTrack.cpp 25 Jun 2009 02:16:00 -0000 1.157
@@ -32,6 +32,7 @@
#include <wx/debug.h>
#include <math.h>
+#include <algorithm>
#include "float_cast.h"
@@ -50,6 +51,8 @@
#include "ondemand/ODManager.h"
+using std::max;
+
WaveTrack* TrackFactory::DuplicateWaveTrack(WaveTrack &orig)
{
return (WaveTrack*)(orig.Duplicate());
@@ -808,7 +811,7 @@
double length = src->GetEndTime();
ViewInfo *info = &p->mViewInfo;
- double sel_len = info->sel1 - info->sel0;
+ double sel_len = max(info->sel1 - max(info->sel0, t0), 0.0);
TrackGroupIterator it(tracks);
Track *t = it.First(this);
Index: Track.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/Track.cpp,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -d -r1.63 -r1.64
--- Track.cpp 18 Jun 2009 09:56:15 -0000 1.63
+++ Track.cpp 25 Jun 2009 02:16:00 -0000 1.64
@@ -360,6 +360,29 @@
return NULL;
}
+//SelectedTrackListOfKindIterator
+Track *SelectedTrackListOfKindIterator::First(TrackList * val)
+{
+ Track *t = TrackListOfKindIterator::First(val);
+
+ while (t && !t->GetSelected()) {
+ t = TrackListOfKindIterator::Next();
+ }
+
+ return t;
+}
+
+Track *SelectedTrackListOfKindIterator::Next(bool skiplinked)
+{
+ while (Track *t = TrackListOfKindIterator::Next(skiplinked)) {
+ if (t->GetSelected()) {
+ return t;
+ }
+ }
+
+ return NULL;
+}
+
// VisibleTrackIterator
//
// Based on TrackListIterator returns only the currently visible tracks.
------------------------------------------------------------------------------
_______________________________________________
Audacity-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/audacity-cvs