[Top][All Lists]
[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);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso/src commands/Fade.cpp commands/Fade.h ...,
Ben Levitt <=