Update of /cvsroot/audacity/audacity-src/src
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv19679
Modified Files:
Menus.cpp Track.cpp Track.h WaveTrack.cpp WaveTrack.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: WaveTrack.h
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/WaveTrack.h,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -d -r1.67 -r1.68
--- WaveTrack.h 20 Apr 2009 17:27:22 -0000 1.67
+++ WaveTrack.h 18 Jun 2009 00:40:04 -0000 1.68
@@ -150,7 +150,8 @@
virtual bool Trim (double t0, double t1);
- bool HandleGroupClear(double t0, double t1, bool addCutLines, bool split);
+ bool Clear(double t0, double t1, TrackList* tracks);
+ bool HandleGroupClear(double t0, double t1, bool addCutLines, bool split,
TrackList* tracks = NULL);
bool HandleClear(double t0, double t1,
bool addCutLines, bool split);
Index: WaveTrack.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/WaveTrack.cpp,v
retrieving revision 1.151
retrieving revision 1.152
diff -u -d -r1.151 -r1.152
--- WaveTrack.cpp 25 May 2009 11:15:32 -0000 1.151
+++ WaveTrack.cpp 18 Jun 2009 00:40:04 -0000 1.152
@@ -440,11 +440,16 @@
bool WaveTrack::Clear(double t0, double t1)
{
+ return Clear(t0, t1, NULL);
+}
+
+bool WaveTrack::Clear(double t0, double t1, TrackList* tracks)
+{
bool addCutLines = false;
bool split = false;
AudacityProject *p = GetActiveProject();
if( p && p->IsSticky())
- return HandleGroupClear(t0, t1, addCutLines, split);
+ return HandleGroupClear(t0, t1, addCutLines, split, tracks);
else
return HandleClear(t0, t1, addCutLines, split);
}
@@ -630,44 +635,28 @@
return HandleClear(t0, t1, addCutLines, split);
}
-bool WaveTrack::HandleGroupClear(double t0, double t1, bool addCutLines, bool
split)
+bool WaveTrack::HandleGroupClear(double t0, double t1, bool addCutLines, bool
split, TrackList* tracks)
{
+ // get tracks
AudacityProject *p = GetActiveProject();
- if(p){
- TrackListIterator iter(p->GetTracks());
-
- int editGroup = 0;
- Track *t=iter.First();
- Track *n=t;
-
- while (t && t!= this){//find edit group number
- if (t->GetSelected()) return true;//multiple tracks have been
selected, we only want to handle one
- n=iter.Next(true);//to skip handling the second channel of stereo
- if (n && n->GetKind()==Track::Wave && t->GetKind()==Track::Label)
- editGroup++;
- t=n;
- }
- if (!t) return true;//we didnt find the track because it's stereo
-
- t=iter.First();
- for (int i=0; i<editGroup; i++){//go to first in edit group
- while (t && t->GetKind()==Track::Wave) t=iter.Next();
- while (t && t->GetKind()==Track::Label) t=iter.Next();
- }
-
- while (t && t->GetKind()==Track::Wave){
- //printf ("t(w): %x\n", t);
- if ( !( ((WaveTrack *)t)->HandleClear(t0, t1, addCutLines, split)) )
return false;
- t=iter.Next();
+
+ if (p) {
+ if (!tracks) tracks = p->GetTracks();
+ }
+ else return false;
+
+ TrackGroupIterator it(tracks);
+ for( Track *t = it.First(this); t; t = it.Next() ) {
+ if (t->GetKind() == Track::Wave) {
+ if ( !( ( (WaveTrack *) t)->HandleClear(t0, t1, addCutLines, split) )
)
+ return false;
}
-
- while (t && t->GetKind()==Track::Label && !split){
- //printf ("t(l): %x\n", t);
- ((LabelTrack *)t)->ShiftLabelsOnClear(t0, t1);
- t=iter.Next();
+ else if (t->GetKind() == Track::Label) {
+ if (!split)
+ ( (LabelTrack *)t )->ShiftLabelsOnClear(t0, t1);
}
- }else return false;
-
+ }
+
return true;
}
Index: Menus.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/Menus.cpp,v
retrieving revision 1.489
retrieving revision 1.490
diff -u -d -r1.489 -r1.490
--- Menus.cpp 13 Jun 2009 03:08:44 -0000 1.489
+++ Menus.cpp 18 Jun 2009 00:40:04 -0000 1.490
@@ -2293,7 +2293,7 @@
{
TranscriptionToolBar *tb = GetTranscriptionToolBar();
if (tb) {
- tb->AdjustPlaySpeed(0.1);
+ tb->AdjustPlaySpeed(0.1f);
}
}
@@ -2301,7 +2301,7 @@
{
TranscriptionToolBar *tb = GetTranscriptionToolBar();
if (tb) {
- tb->AdjustPlaySpeed(-0.1);
+ tb->AdjustPlaySpeed(-0.1f);
}
}
Index: Track.h
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/Track.h,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -d -r1.58 -r1.59
--- Track.h 9 Jun 2009 13:58:35 -0000 1.58
+++ Track.h 18 Jun 2009 00:40:04 -0000 1.59
@@ -82,7 +82,6 @@
Track *GetLink() const;
- TrackList *GetList();
const TrackListNode *GetNode();
void SetOwner(TrackList *list, TrackListNode *node);
@@ -113,7 +112,8 @@
Note,
#endif
Label,
- Time
+ Time,
+ All
} TrackKindEnum;
Track(DirManager * projDirManager);
Index: Track.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/Track.cpp,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -d -r1.61 -r1.62
--- Track.cpp 26 May 2009 01:42:48 -0000 1.61
+++ Track.cpp 18 Jun 2009 00:40:04 -0000 1.62
@@ -19,6 +19,7 @@
#include <wx/file.h>
#include <wx/textfile.h>
#include <wx/log.h>
+#include <wx/hashmap.h>
#include "Track.h"
#include "WaveTrack.h"
@@ -113,6 +114,7 @@
mDirManager->Deref();
}
+
const TrackListNode *Track::GetNode()
{
return mNode;
@@ -341,7 +343,7 @@
{
Track *t = TrackListIterator::First(val);
- while (t && t->GetKind() != kind) {
+ while (t && (kind != Track::All && t->GetKind() != kind)) {
t = TrackListIterator::Next();
}
@@ -351,7 +353,7 @@
Track *TrackListOfKindIterator::Next(bool skiplinked)
{
while (Track *t = TrackListIterator::Next(skiplinked)) {
- if (t->GetKind() == kind) {
+ if (t->GetKind() == kind || kind == Track::All) {
return t;
}
}
------------------------------------------------------------------------------
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