traverso-commit
[Top][All Lists]
Advanced

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

[Traverso-commit] traverso resources/keymap.xml src/core/InputEng...


From: Remon Sijrier
Subject: [Traverso-commit] traverso resources/keymap.xml src/core/InputEng...
Date: Fri, 03 Oct 2008 20:09:11 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       08/10/03 20:09:11

Modified files:
        resources      : keymap.xml 
        src/core       : InputEngine.cpp Sheet.cpp Sheet.h 
        src/traverso/widgets: TransportConsoleWidget.cpp 
                              TransportConsoleWidget.h 

Log message:
        * fixed a bug in InputeEngine where the delegatedobject was always 
fetched from the 'normal' objects hash, even if the action was one with a 
modifier key.
        * moved all logic regarding skipping playhead to prev/next snap pos to 
Sheet, allowing it to work with CTRL+ right/left arrow key's as well.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/keymap.xml?cvsroot=traverso&r1=1.108&r2=1.109
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/InputEngine.cpp?cvsroot=traverso&r1=1.73&r2=1.74
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Sheet.cpp?cvsroot=traverso&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Sheet.h?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/TransportConsoleWidget.cpp?cvsroot=traverso&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/TransportConsoleWidget.h?cvsroot=traverso&r1=1.8&r2=1.9

Patches:
Index: resources/keymap.xml
===================================================================
RCS file: /sources/traverso/traverso/resources/keymap.xml,v
retrieving revision 1.108
retrieving revision 1.109
diff -u -b -r1.108 -r1.109
--- resources/keymap.xml        18 Feb 2008 19:49:59 -0000      1.108
+++ resources/keymap.xml        3 Oct 2008 20:09:10 -0000       1.109
@@ -48,6 +48,7 @@
                                <Object objectname="SheetView" 
slotsignature="scroll_left" modes="All" sortorder="1" submenu="Scroll" />
                                <Object objectname="MoveClip" 
slotsignature="move_left" modes="All" sortorder="3" />
                                <Object objectname="TrackPan" 
slotsignature="pan_left" modes="All" sortorder="1" />
+                               <Object objectname="Sheet" 
slotsignature="prev_skip_pos" modes="All" sortorder="5" modifierkeys="CTRL" 
submenu="Playhead" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="RARROW" >
@@ -55,6 +56,7 @@
                                <Object objectname="SheetView" 
slotsignature="scroll_right" modes="All" sortorder="2" submenu="Scroll" />
                                <Object objectname="MoveClip" 
slotsignature="move_right" modes="All" sortorder="4" />
                                <Object objectname="TrackPan" 
slotsignature="pan_right" modes="All" sortorder="2" />
+                               <Object objectname="Sheet" 
slotsignature="next_skip_pos" modes="All" sortorder="5" modifierkeys="CTRL" 
submenu="Playhead" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="UARROW" >

Index: src/core/InputEngine.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/InputEngine.cpp,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -b -r1.73 -r1.74
--- src/core/InputEngine.cpp    6 Aug 2008 13:56:39 -0000       1.73
+++ src/core/InputEngine.cpp    3 Oct 2008 20:09:10 -0000       1.74
@@ -399,8 +399,13 @@
                                delegatedobject = "HoldCommand";
                        } else {
                                delegatedobject = 
item->metaObject()->className();
+                               if (m_activeModifierKeys.size() > 0) {
+                                       delegatingdata = 
action->objectUsingModifierKeys.value(delegatedobject);
+                               } else {
                                delegatingdata = 
action->objects.value(delegatedobject);
                        }
+                               PMESG("delegatedobject is %s", 
QS_C(delegatedobject));
+                       }
                                
                        if ( ! delegatingdata) {
                                PMESG("No delegating data ? WEIRD");
@@ -1376,7 +1381,7 @@
        QDomNode keyfactNode = keyfactsNode.firstChild();
        
        QString keyFactType;
-       QString key1, key2, key3, key4, mouseHint, slot, modifierKeys;
+       QString key1, key2, key3, key4, mouseHint, modifierKeys;
        IEAction::Data* data;
        
        while( !keyfactNode.isNull() ) {
@@ -1396,7 +1401,6 @@
                keyFactType = e.attribute( "type", "" );
                key1 = e.attribute( "key1", "");
                key2 = e.attribute( "key2", "" );
-               slot = e.attribute( "slotname", "" );
 
                if (keyFactType == "FKEY")
                        action->type = FKEY;
@@ -1524,7 +1528,7 @@
                
                if (!exists) {
                        m_ieActions.append(action);
-                       PMESG2("ADDED action: type=%d keys=%d,%d,%d,%d useX=%d 
useY=%d, slot=%s", action->type, 
action->fact1_key1,action->fact1_key2,action->fact2_key1,action->fact2_key2,data->useX,data->useY,
 QS_C(slot));
+                       PMESG2("ADDED action: type=%d keys=%d,%d,%d,%d useX=%d 
useY=%d, slot=%s", action->type, 
action->fact1_key1,action->fact1_key2,action->fact2_key1,action->fact2_key2,data->useX,data->useY,
 QS_C(data->slotsignature));
                }
                
                keyfactNode = keyfactNode.nextSibling();

Index: src/core/Sheet.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Sheet.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- src/core/Sheet.cpp  2 Oct 2008 20:08:58 -0000       1.12
+++ src/core/Sheet.cpp  3 Oct 2008 20:09:10 -0000       1.13
@@ -191,6 +191,8 @@
        m_fader->set_gain(0.5);
        m_timeline = new TimeLine(this);
        
+       m_skipTimer.setSingleShot(true);
+       
        m_audiodeviceClient = new Client("sheet_" + 
QByteArray::number(get_id()));
        m_audiodeviceClient->set_process_callback( MakeDelegate(this, 
&Sheet::process) );
        m_audiodeviceClient->set_transport_control_callback( MakeDelegate(this, 
&Sheet::transport_control) );
@@ -1444,7 +1446,10 @@
        return 0;
 }
 
-void Sheet::prev_skip_pos(int steps)
+
+// the timer is used to allow 'hopping' to the left from snap position to snap 
position
+// even during playback.
+Command* Sheet::prev_skip_pos()
 {
        if (snaplist->was_dirty()) {
                update_skip_positions();
@@ -1455,13 +1460,20 @@
        if (p < TimeRef()) {
                PERROR("pos < 0");
                set_transport_pos(TimeRef());
-               return;
+               return ie().failure();
        }
 
        QListIterator<TimeRef> it(m_xposList);
 
        it.toBack();
 
+       int steps = 1;
+
+       if (m_skipTimer.isActive()) 
+       {
+               ++steps;
+       }
+
        int i = 0;
        while (it.hasPrevious()) {
                TimeRef pos = it.previous();
@@ -1475,9 +1487,13 @@
        }
 
        set_transport_pos(p);
+       
+       m_skipTimer.start(500);
+       
+       return ie().succes();
 }
 
-void Sheet::next_skip_pos(int steps)
+Command* Sheet::next_skip_pos()
 {
        if (snaplist->was_dirty()) {
                update_skip_positions();
@@ -1487,12 +1503,14 @@
 
        if (p > m_xposList.last()) {
                PERROR("pos > last snap position");
-               return;
+               return ie().failure();
        }
 
        QListIterator<TimeRef> it(m_xposList);
 
        int i = 0;
+       int steps = 1;
+       
        while (it.hasNext()) {
                TimeRef pos = it.next();
                if (pos > p) {
@@ -1505,6 +1523,8 @@
        }
 
        set_transport_pos(p);
+       
+       return ie().succes();
 }
 
 void Sheet::update_skip_positions()

Index: src/core/Sheet.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Sheet.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- src/core/Sheet.h    2 Oct 2008 20:04:06 -0000       1.5
+++ src/core/Sheet.h    3 Oct 2008 20:09:11 -0000       1.6
@@ -25,6 +25,7 @@
 #include "ContextItem.h"
 #include "AudioProcessingItem.h"
 #include <QDomNode>
+#include <QTimer>
 #include "defines.h"
 #include "APILinkedList.h"
 #include "GainEnvelope.h"
@@ -63,6 +64,7 @@
        Q_CLASSINFO("toggle_arm", tr("Arm: On/Off"))
        Q_CLASSINFO("set_editing_mode", tr("Mode: Edit"))
        Q_CLASSINFO("set_effects_mode", tr("Mode: Curve"))
+       Q_CLASSINFO("prev_skip_pos", tr("Skip to Left"))
 
 public:
 
@@ -121,8 +123,6 @@
        int set_state( const QDomNode & node );
        void set_recording(bool recording, bool realtime);
 
-       void next_skip_pos(int steps = 1);
-       void prev_skip_pos(int steps = 1);
        void skip_to_start();
        void skip_to_end();
        
@@ -164,6 +164,7 @@
 private:
        APILinkedList           m_tracks;
        QList<AudioClip*>       m_recordingClips;
+       QTimer                  m_skipTimer;
        Project*                m_project;
        WriteSource*            m_exportSource;
        AudioBus*               m_playBackBus;
@@ -240,6 +241,8 @@
 
        void set_temp_follow_state(bool state);
 
+       Command* next_skip_pos();
+       Command* prev_skip_pos();
        Command* start_transport();
        Command* set_recordable();
        Command* set_recordable_and_start_transport();

Index: src/traverso/widgets/TransportConsoleWidget.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/traverso/widgets/TransportConsoleWidget.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- src/traverso/widgets/TransportConsoleWidget.cpp     2 Oct 2008 20:04:06 
-0000       1.15
+++ src/traverso/widgets/TransportConsoleWidget.cpp     3 Oct 2008 20:09:11 
-0000       1.16
@@ -58,7 +58,6 @@
        m_playAction->setCheckable(true);
 
        m_lastSnapPosition = TimeRef();
-       m_skipTimer.setSingleShot(true);
 
        connect(&pm(), SIGNAL(projectLoaded(Project*)), this, 
SLOT(set_project(Project*)));
        connect(&m_updateTimer, SIGNAL(timeout()), this, SLOT(update_label()));
@@ -104,19 +103,9 @@
        m_sheet->skip_to_start();
 }
 
-// the timer is used to allow 'hopping' to the left from snap position to snap 
position
-// even during playback.
 void TransportConsoleWidget::to_left()
 {
-       int steps = 1;
-
-       if (m_skipTimer.isActive()) 
-       {
-               ++steps;
-       }
-
-       m_sheet->prev_skip_pos(steps);
-       m_skipTimer.start(500);
+       m_sheet->prev_skip_pos();
 }
 
 void TransportConsoleWidget::rec_toggled()

Index: src/traverso/widgets/TransportConsoleWidget.h
===================================================================
RCS file: 
/sources/traverso/traverso/src/traverso/widgets/TransportConsoleWidget.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- src/traverso/widgets/TransportConsoleWidget.h       2 Oct 2008 19:56:39 
-0000       1.8
+++ src/traverso/widgets/TransportConsoleWidget.h       3 Oct 2008 20:09:11 
-0000       1.9
@@ -23,9 +23,9 @@
 #define TRANSPORTCONSOLEWIDGET_H
 
 #include <QWidget>
+#include <QTimer>
 #include <QToolBar>
 #include <QToolButton>
-#include <QTimer>
 #include <QEvent>
 #include <QFont>
 #include <QString>
@@ -53,7 +53,6 @@
        QAction*        m_toEndAction;
        QAction*        m_toRightAction;
        QTimer          m_updateTimer;
-       QTimer          m_skipTimer;
        TimeRef         m_lastSnapPosition;
 
 protected slots:




reply via email to

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