traverso-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Traverso-commit] traverso/src commands/Fade.cpp commands/Fade.h ...


From: Ben Levitt
Subject: [Traverso-commit] traverso/src commands/Fade.cpp commands/Fade.h ...
Date: Mon, 14 May 2007 22:45:07 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Ben Levitt <benjie>     07/05/14 22:45:07

Modified files:
        src/commands   : Fade.cpp Fade.h 
        src/core       : AudioClip.cpp 

Log message:
        Make more fade editing undoable

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Fade.cpp?cvsroot=traverso&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Fade.h?cvsroot=traverso&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioClip.cpp?cvsroot=traverso&r1=1.89&r2=1.90

Patches:
Index: commands/Fade.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Fade.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- commands/Fade.cpp   30 Apr 2007 04:07:38 -0000      1.13
+++ commands/Fade.cpp   14 May 2007 22:45:06 -0000      1.14
@@ -39,12 +39,23 @@
 static const float RASTER_SIZE         = 0.05;
 
 
-FadeRange::FadeRange(AudioClip* clip, FadeCurve* curve, int direction)
+FadeRange::FadeRange(AudioClip* clip, FadeCurve* curve)
        : Command(clip, "")
 {
        m_curve = curve;
-       m_direction = direction;
-       setText( (direction == 1) ? tr("Fade In: range") : tr("Fade Out: 
range"));
+       m_direction = (m_curve->get_fade_type() == FadeCurve::FadeIn) ? 1 : -1;
+       setText( (m_direction == 1) ? tr("Fade In: range") : tr("Fade Out: 
range"));
+}
+
+
+FadeRange::FadeRange(AudioClip* clip, FadeCurve* curve, double newVal)
+       : Command(clip, "")
+{
+       m_curve = curve;
+       m_direction = (m_curve->get_fade_type() == FadeCurve::FadeIn) ? 1 : -1;
+       setText( (m_direction == 1) ? tr("Fade In: reset") : tr("Fade Out: 
reset"));
+       origFade = m_curve->get_range();
+       newFade = newVal;
 }
 
 
@@ -115,10 +126,11 @@
 /******************************/
 
 FadeBend::FadeBend(FadeView * fadeview)
-       : Command("FadeBend")
+       : Command(fadeview)
        , m_fade(fadeview->get_fade())
        , m_fv(fadeview) 
 {
+       setText( (m_fade->get_fade_type() == FadeCurve::FadeIn) ? tr("Fade In: 
bend") : tr("Fade Out: bend"));
 }
 
 int FadeBend::begin_hold()
@@ -126,6 +138,7 @@
        PENTER;
        origY = cpointer().on_first_input_event_y();
        oldValue =  m_fade->get_bend_factor();
+       newBend = origBend = oldValue;
        m_fv->set_holding(true);
        return 1;
 }
@@ -137,6 +150,29 @@
        return 1;
 }
 
+int FadeBend::prepare_actions()
+{
+       return 1;
+}
+
+int FadeBend::do_action()
+{
+       m_fade->set_bend_factor(newBend);
+       return 1;
+}
+
+int FadeBend::undo_action()
+{
+       m_fade->set_bend_factor(origBend);
+       return 1;
+}
+
+void FadeBend::cancel_action()
+{
+       finish_hold();
+       undo_action();
+}
+
 void FadeBend::set_cursor_shape(int useX, int useY)
 {
        Q_UNUSED(useX);
@@ -160,6 +196,7 @@
        }
 
        oldValue = m_fade->get_bend_factor();
+       newBend = oldValue;
        
        origY = cpointer().y();
        
@@ -170,10 +207,11 @@
 /******************************/
 
 FadeStrength::FadeStrength(FadeView* fadeview)
-       : Command("FadeStrength")
+       : Command(fadeview)
        , m_fade(fadeview->get_fade())
        , m_fv(fadeview)
 {
+       setText( (m_fade->get_fade_type() == FadeCurve::FadeIn) ? tr("Fade In: 
strength") : tr("Fade Out: strength"));
 }
 
 int FadeStrength::begin_hold()
@@ -181,11 +219,11 @@
        PENTER;
        origY = cpointer().on_first_input_event_y();
        oldValue =  m_fade->get_strenght_factor();
+       newStrength = origStrength = oldValue;
        m_fv->set_holding(true);
        return 1;
 }
 
-
 int FadeStrength::finish_hold()
 {
        QCursor::setPos(mousePos);
@@ -193,6 +231,28 @@
        return 1;
 }
 
+int FadeStrength::prepare_actions()
+{
+       return 1;
+}
+
+int FadeStrength::do_action()
+{
+       m_fade->set_strength_factor(newStrength);
+       return 1;
+}
+
+int FadeStrength::undo_action()
+{
+       m_fade->set_strength_factor(origStrength);
+       return 1;
+}
+
+void FadeStrength::cancel_action()
+{
+       finish_hold();
+       undo_action();
+}
 
 void FadeStrength::set_cursor_shape(int useX, int useY)
 {
@@ -219,6 +279,7 @@
        }
        
        oldValue = m_fade->get_strenght_factor();
+       newStrength = oldValue;
        
        origY = cpointer().y();
 

Index: commands/Fade.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Fade.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- commands/Fade.h     30 Apr 2007 04:07:38 -0000      1.8
+++ commands/Fade.h     14 May 2007 22:45:06 -0000      1.9
@@ -17,7 +17,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: Fade.h,v 1.8 2007/04/30 04:07:38 benjie Exp $
+$Id: Fade.h,v 1.9 2007/05/14 22:45:06 benjie Exp $
 */
 
 #ifndef FADE_H
@@ -34,7 +34,8 @@
 class FadeRange : public Command
 {
 public :
-        FadeRange(AudioClip* clip, FadeCurve* curve, int direction);
+        FadeRange(AudioClip* clip, FadeCurve* curve);
+       FadeRange(AudioClip* clip, FadeCurve* curve, double newVal);
         ~FadeRange();
 
         int begin_hold();
@@ -64,6 +65,11 @@
 
         int begin_hold();
        int finish_hold();
+        int prepare_actions();
+        int do_action();
+        int undo_action();
+       void cancel_action();
+
        int jog();
 
        void set_cursor_shape(int useX, int useY);
@@ -71,6 +77,8 @@
 private :
        float   oldValue;
        int     origY;
+       double  origStrength;
+       double  newStrength;
        FadeCurve*      m_fade;
        FadeView*       m_fv;
        QPoint          mousePos;
@@ -85,6 +93,11 @@
 
         int begin_hold();
        int finish_hold();
+        int prepare_actions();
+        int do_action();
+        int undo_action();
+       void cancel_action();
+
        int jog();
        
        void set_cursor_shape(int useX, int useY);
@@ -92,6 +105,8 @@
 private :
        float   oldValue;
        int     origY;
+       double  origBend;
+       double  newBend;
        FadeCurve*      m_fade;
        FadeView*       m_fv;
        QPoint          mousePos;

Index: core/AudioClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioClip.cpp,v
retrieving revision 1.89
retrieving revision 1.90
diff -u -b -r1.89 -r1.90
--- core/AudioClip.cpp  11 May 2007 13:09:23 -0000      1.89
+++ core/AudioClip.cpp  14 May 2007 22:45:06 -0000      1.90
@@ -576,21 +576,21 @@
 
 Command* AudioClip::reset_fade_in()
 {
-       set_fade_in(1);
-       return (Command*) 0;
+       return new FadeRange(this, fadeIn, 1.0);
 }
 
 Command* AudioClip::reset_fade_out()
 {
-       set_fade_out(1);
-       return (Command*) 0;
+       return new FadeRange(this, fadeOut, 1.0);
 }
 
 Command* AudioClip::reset_fade_both()
 {
-       reset_fade_in();
-       reset_fade_out();
-       return (Command*) 0;
+       CommandGroup* group = new CommandGroup(this, tr("Reset Fades"));
+       group->add_command(reset_fade_in());
+       group->add_command(reset_fade_out());
+
+       return group;
 }
 
 AudioClip * AudioClip::prev_clip( )
@@ -860,20 +860,18 @@
 
 Command * AudioClip::clip_fade_in( )
 {
-       int direction = 1;
        if (!fadeIn) {
                create_fade_in();
        }
-       return new FadeRange(this, fadeIn, direction);
+       return new FadeRange(this, fadeIn);
 }
 
 Command * AudioClip::clip_fade_out( )
 {
-       int direction = -1;
        if (!fadeOut) {
                create_fade_out();
        }
-       return new FadeRange(this, fadeOut, direction);
+       return new FadeRange(this, fadeOut);
 }
 
 Command * AudioClip::normalize( )
@@ -943,10 +941,22 @@
 void AudioClip::private_add_fade( FadeCurve* fade )
 {
        m_fades.append(fade);
+       
+       if (fade->get_fade_type() == FadeCurve::FadeIn) {
+               fadeIn = fade;
+       } else if (fade->get_fade_type() == FadeCurve::FadeOut) {
+               fadeOut = fade;
+       }
 }
 
 void AudioClip::private_remove_fade( FadeCurve * fade )
 {
+       if (fade == fadeIn) {
+               fadeIn = 0;
+       } else if (fade == fadeOut) {
+               fadeOut = 0;
+       }
+       
        m_fades.removeAll(fade);
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]