traverso-commit
[Top][All Lists]
Advanced

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

[Traverso-commit] traverso/src commands/MoveClip.cpp commands/Mov...


From: Ben Levitt
Subject: [Traverso-commit] traverso/src commands/MoveClip.cpp commands/Mov...
Date: Thu, 17 May 2007 06:55:43 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Ben Levitt <benjie>     07/05/17 06:55:43

Modified files:
        src/commands   : MoveClip.cpp MoveEdge.cpp 
        src/core       : Song.cpp 
        src/traverso/songcanvas: AudioClipView.cpp FadeView.cpp 
                                 SongView.cpp SongView.h 

Log message:
        - fix fadeOut painting in wrong position when clip length < fade length
        - fix clip painting glitch at start/end when a fade is < 1 px
        - set/get song's transportPos on open/save (still need to make 
playCursor show on open)
        - fix follow_play_head bugs when scrolling, draging clips, edges, etc 
(fix for more commands?)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MoveClip.cpp?cvsroot=traverso&r1=1.39&r2=1.40
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MoveEdge.cpp?cvsroot=traverso&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Song.cpp?cvsroot=traverso&r1=1.98&r2=1.99
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/AudioClipView.cpp?cvsroot=traverso&r1=1.66&r2=1.67
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/FadeView.cpp?cvsroot=traverso&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/SongView.cpp?cvsroot=traverso&r1=1.48&r2=1.49
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/SongView.h?cvsroot=traverso&r1=1.23&r2=1.24

Patches:
Index: commands/MoveClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MoveClip.cpp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -b -r1.39 -r1.40
--- commands/MoveClip.cpp       14 May 2007 14:44:31 -0000      1.39
+++ commands/MoveClip.cpp       17 May 2007 06:55:42 -0000      1.40
@@ -162,6 +162,7 @@
 
 int MoveClip::begin_hold()
 {
+       d->sv->stop_follow_play_head();
        if (m_actionType == "copy") {
                d->newclip = 
resources_manager()->get_clip(d->view->get_clip()->get_id());
                d->newclip->set_song(m_song);

Index: commands/MoveEdge.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MoveEdge.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- commands/MoveEdge.cpp       30 Apr 2007 10:09:11 -0000      1.17
+++ commands/MoveEdge.cpp       17 May 2007 06:55:42 -0000      1.18
@@ -66,6 +66,7 @@
        }
 
        m_clip->set_snappable(false);
+       m_sv->stop_follow_play_head();
 
         return 1;
 }

Index: core/Song.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Song.cpp,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -b -r1.98 -r1.99
--- core/Song.cpp       16 May 2007 00:05:31 -0000      1.98
+++ core/Song.cpp       17 May 2007 06:55:42 -0000      1.99
@@ -186,6 +186,7 @@
        set_hzoom(e.attribute( "hzoom", "" ).toInt());
        set_first_visible_frame(e.attribute( "firstVisibleFrame", "0" 
).toUInt());
        set_work_at(e.attribute( "workingFrame", "0").toUInt());
+       set_transport_pos(e.attribute( "transportFrame", "0").toUInt());
        
        m_timeline->set_state(node.firstChildElement("TimeLine"));
 
@@ -219,6 +220,7 @@
        properties.setAttribute("artists", artists);
        properties.setAttribute("firstVisibleFrame", firstVisibleFrame);
        properties.setAttribute("workingFrame", (uint)workingFrame);
+       properties.setAttribute("transportFrame", (uint)transportFrame);
        properties.setAttribute("hzoom", m_hzoom);
        properties.setAttribute("mastergain", m_gain);
        songNode.appendChild(properties);

Index: traverso/songcanvas/AudioClipView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/AudioClipView.cpp,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -b -r1.66 -r1.67
--- traverso/songcanvas/AudioClipView.cpp       15 May 2007 20:15:14 -0000      
1.66
+++ traverso/songcanvas/AudioClipView.cpp       17 May 2007 06:55:43 -0000      
1.67
@@ -315,7 +315,7 @@
                        fademix = view->get_vector(xstart, pixelcount, 
curvemixdown);
                }
                        
-               if (mixcurvedata && fademix) {
+               if (mixcurvedata && fademix && view->get_fade()->get_range() > 
m_sv->scalefactor) {
                        for (int j=0; j<pixelcount; ++j) {
                                curvemixdown[j] *= fademixdown[j];
                        }

Index: traverso/songcanvas/FadeView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/FadeView.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- traverso/songcanvas/FadeView.cpp    17 Apr 2007 11:51:20 -0000      1.14
+++ traverso/songcanvas/FadeView.cpp    17 May 2007 06:55:43 -0000      1.15
@@ -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: FadeView.cpp,v 1.14 2007/04/17 11:51:20 r_sijrier Exp $
+$Id: FadeView.cpp,v 1.15 2007/05/17 06:55:43 benjie Exp $
 */
 
 #include "FadeView.h"
@@ -90,10 +90,15 @@
        
        QPolygonF polygon;
        int xstart = (int)option->exposedRect.x();
+       int vector_start = xstart;
        int height = (int)m_boundingRect.height();
        float vector[pixelcount];
        
-       m_guicurve->get_vector(xstart, xstart + pixelcount, vector, pixelcount);
+       if (m_fadeCurve->get_fade_type() == FadeCurve::FadeOut && 
m_guicurve->get_range() > m_parentViewItem->boundingRect().width()) {
+               vector_start += (int) m_guicurve->get_range() - 
m_parentViewItem->boundingRect().width();
+       }
+       
+       m_guicurve->get_vector(vector_start, vector_start + pixelcount, vector, 
pixelcount);
        
        for (int i=0; i<pixelcount; i++) {
                polygon <<  QPointF(xstart + i, height - (vector[i] * height) );
@@ -201,7 +206,7 @@
        }
        
        m_boundingRect = QRectF( 0, 0,
-                               m_guicurve->get_range(), 
+                               (m_guicurve->get_range() <= 
m_parentViewItem->boundingRect().width()) ? m_guicurve->get_range() : 
m_parentViewItem->boundingRect().width(), 
                                m_parentViewItem->get_height() );
        
        if (m_fadeCurve->get_fade_type() == FadeCurve::FadeOut) {

Index: traverso/songcanvas/SongView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/SongView.cpp,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -b -r1.48 -r1.49
--- traverso/songcanvas/SongView.cpp    16 May 2007 03:58:36 -0000      1.48
+++ traverso/songcanvas/SongView.cpp    17 May 2007 06:55:43 -0000      1.49
@@ -97,8 +97,8 @@
        m_workCursor = new WorkCursor(this, m_song);
        connect(m_song, SIGNAL(workingPosChanged()), m_workCursor, 
SLOT(update_position()));
        connect(m_song, SIGNAL(workingPosChanged()), m_playCursor, 
SLOT(work_moved()));
-       connect(m_song, SIGNAL(transportPosSet()), this, 
SLOT(play_head_updated()));
-       connect(m_song, SIGNAL(workingPosChanged()), this, 
SLOT(work_cursor_updated()));
+       connect(m_song, SIGNAL(transportPosSet()), this, 
SLOT(follow_play_head()));
+       connect(m_song, SIGNAL(workingPosChanged()), this, 
SLOT(stop_follow_play_head()));
 
        m_clipsViewPort->scene()->addItem(m_playCursor);
        m_clipsViewPort->scene()->addItem(m_workCursor);
@@ -121,6 +121,7 @@
        connect(m_song, SIGNAL(lastFramePositionChanged()), this, 
SLOT(update_scrollbars()));
        connect(m_song, SIGNAL(modeChanged()), this, SLOT(song_mode_changed()));
        connect(m_hScrollBar, SIGNAL(valueChanged(int)), 
this,SLOT(set_snap_range(int))); 
+       connect(m_hScrollBar, SIGNAL(sliderMoved(int)), 
this,SLOT(stop_follow_play_head()));
        connect(&m_shuttletimer, SIGNAL(timeout() ), this, SLOT 
(update_shuttle()) );
        
        connect(m_hScrollBar, SIGNAL(valueChanged(int)), this, 
SLOT(hscrollbar_value_changed(int)));
@@ -133,10 +134,11 @@
        connect(m_clipsViewPort->verticalScrollBar(), SIGNAL(valueChanged(int)),
                  m_vScrollBar, SLOT(setValue(int))); 
        
+       m_vScrollBar->setValue(0.0);
+
        load_theme_data();
        
        // FIXME Center too position on song close!!
-       ensureVisible(0.0, 0.0, 0.0, 0.0);
        center();
 }
 
@@ -215,7 +217,8 @@
        m_hScrollBar->setSingleStep(m_clipsViewPort->width() / 10);
        m_hScrollBar->setPageStep(m_clipsViewPort->width());
        
-       m_vScrollBar->setRange(0, m_sceneHeight);
+       m_vScrollBar->setRange(0, (m_sceneHeight < m_clipsViewPort->height()) ?
+               0 : m_sceneHeight - m_clipsViewPort->height());
        m_vScrollBar->setSingleStep(m_clipsViewPort->height() / 10);
        m_vScrollBar->setPageStep(m_clipsViewPort->height());
        
@@ -330,14 +333,14 @@
 }
 
 
-void SongView::work_cursor_updated()
+void SongView::stop_follow_play_head()
 {
        m_actOnPlayHead = false;
        m_playCursor->disable_follow();
 }
 
 
-void SongView::play_head_updated()
+void SongView::follow_play_head()
 {
        m_actOnPlayHead = true;
        m_playCursor->enable_follow();
@@ -359,6 +362,7 @@
        } else {
                m_shuttletimer.stop();
        }
+       stop_follow_play_head();
 }
 
 void SongView::update_shuttle_factor()
@@ -458,6 +462,7 @@
 
 Command* SongView::goto_begin()
 {
+       stop_follow_play_head();
        m_song->set_work_at(0);
        center();
        return (Command*) 0;
@@ -466,6 +471,7 @@
 
 Command* SongView::goto_end()
 {
+       stop_follow_play_head();
        m_song->set_work_at(m_song->get_last_frame());
        center();
        return (Command*) 0;
@@ -531,6 +537,7 @@
 Command* SongView::scroll_right()
 {
        PENTER3;
+       stop_follow_play_head();
        QScrollBar* scrollbar = m_clipsViewPort->horizontalScrollBar();
        scrollbar->setValue(scrollbar->value() + 50);
        return (Command*) 0;
@@ -540,6 +547,7 @@
 Command* SongView::scroll_left()
 {
        PENTER3;
+       stop_follow_play_head();
        QScrollBar* scrollbar = m_clipsViewPort->horizontalScrollBar();
        scrollbar->setValue(scrollbar->value() - 50); 
        return (Command*) 0;
@@ -570,6 +578,7 @@
 
 Command * SongView::add_marker()
 {
+       stop_follow_play_head();
        return m_tlvp->get_timeline_view()->add_marker();
 }
 

Index: traverso/songcanvas/SongView.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/SongView.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- traverso/songcanvas/SongView.h      30 Apr 2007 10:09:11 -0000      1.23
+++ traverso/songcanvas/SongView.h      17 May 2007 06:55:43 -0000      1.24
@@ -114,6 +114,8 @@
 public slots:
        void set_snap_range(int);
        void update_scrollbars();
+       void stop_follow_play_head();
+       void follow_play_head();
 
        Command* touch();
         Command* hzoom_out();
@@ -139,8 +141,6 @@
        void add_new_trackview(Track*);
        void remove_trackview(Track*);
        void update_shuttle();
-       void work_cursor_updated();
-       void play_head_updated();
        void song_mode_changed();
        void hscrollbar_value_changed(int);
 };




reply via email to

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