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

Reply via email to