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/commands/Gain...


From: Remon Sijrier
Subject: [Traverso-commit] traverso resources/keymap.xml src/commands/Gain...
Date: Sat, 05 May 2007 20:40:35 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/05/05 20:40:35

Modified files:
        resources      : keymap.xml 
        src/commands   : Gain.cpp 
        src/commands/plugins/TraversoCommands: TraversoCommands.cpp 
        src/traverso/songcanvas: ClipsViewPort.cpp SongWidget.cpp 
                                 SongWidget.h TrackPanelView.h 

Log message:
        * Use space left of TimeLine to show Song gain

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/keymap.xml?cvsroot=traverso&r1=1.64&r2=1.65
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Gain.cpp?cvsroot=traverso&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/plugins/TraversoCommands/TraversoCommands.cpp?cvsroot=traverso&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/ClipsViewPort.cpp?cvsroot=traverso&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/SongWidget.cpp?cvsroot=traverso&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/SongWidget.h?cvsroot=traverso&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TrackPanelView.h?cvsroot=traverso&r1=1.10&r2=1.11

Patches:
Index: resources/keymap.xml
===================================================================
RCS file: /sources/traverso/traverso/resources/keymap.xml,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -b -r1.64 -r1.65
--- resources/keymap.xml        2 May 2007 05:58:20 -0000       1.64
+++ resources/keymap.xml        5 May 2007 20:40:35 -0000       1.65
@@ -213,6 +213,7 @@
                                <Object objectname="Gain" 
slotsignature="increase_gain" modes="All" instantanious="1" />
                                <Object objectname="TrackPanelPan" 
slotsignature="pan_right" modes="All" sortorder="1" instantanious="1" />
                                <Object objectname="TrackPanelGain" 
slotsignature="gain_increment" modes="All" sortorder="1" instantanious="1" />
+                               <Object objectname="SongPanelGain" 
slotsignature="gain_increment" modes="All" sortorder="1" instantanious="1" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="MouseScrollVerticalDown" >
@@ -222,6 +223,7 @@
                                <Object objectname="Gain" 
slotsignature="decrease_gain" modes="All" instantanious="1" />
                                <Object objectname="TrackPanelPan" 
slotsignature="pan_left" modes="All" sortorder="2" instantanious="1" />
                                <Object objectname="TrackPanelGain" 
slotsignature="gain_decrement" modes="All" sortorder="2" instantanious="1" />
+                               <Object objectname="SongPanelGain" 
slotsignature="gain_decrement" modes="All" sortorder="2" instantanious="1" />
                        </Objects>
                </keyfact>
                <keyfact type="FKEY" key1="F" >
@@ -315,6 +317,7 @@
                        <Objects>
                                <Object objectname="AudioClip" modes="All" 
sortorder="5" pluginname="TraversoCommands" commandname="Gain" />
                                <Object objectname="Track" modes="All" 
sortorder="7" pluginname="TraversoCommands" commandname="Gain" />
+                               <Object objectname="Song" modes="All" 
sortorder="7" pluginname="TraversoCommands" commandname="Gain" />
                        </Objects>
                </keyfact>
                <keyfact type="HKEY" key1="P" sortorder="16" >
@@ -335,6 +338,7 @@
                                <Object objectname="TimeLineView" 
mousehint="LR" slotsignature="drag_marker" modes="All" sortorder="3" 
instantanious="1" />
                                <Object objectname="SongView" mousehint="LR" 
slotsignature="work_cursor_move" modes="All" sortorder="14" instantanious="0" />
                                <Object objectname="TrackPanelGain" modes="All" 
sortorder="7" pluginname="TraversoCommands" commandname="Gain" 
arguments="horizontal" />
+                               <Object objectname="SongPanelGain" modes="All" 
sortorder="7" pluginname="TraversoCommands" commandname="Gain" 
arguments="horizontal" />
                                <Object objectname="TrackPanelPan" 
mousehint="LR"  modes="All" sortorder="8" pluginname="TraversoCommands" 
commandname="TrackPan" />
                        </Objects>
                </keyfact> 
@@ -448,6 +452,7 @@
                                <Object objectname="AudioClip" modes="All" 
sortorder="22" pluginname="TraversoCommands" commandname="ResetGain" 
arguments="1.0" />
                                <Object objectname="Track" modes="All" 
sortorder="30" pluginname="TraversoCommands" commandname="ResetGain" 
arguments="0.5" />
                                <Object objectname="TrackPanelGain" modes="All" 
sortorder="30" pluginname="TraversoCommands" commandname="ResetGain" 
arguments="0.5" />
+                               <Object objectname="Song" modes="All" 
sortorder="30" pluginname="TraversoCommands" commandname="ResetGain" 
arguments="0.5" />
                        </Objects>
                </keyfact>
                <keyfact type="D_FKEY" key1="N" >

Index: src/commands/Gain.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Gain.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- src/commands/Gain.cpp       30 Apr 2007 18:16:46 -0000      1.20
+++ src/commands/Gain.cpp       5 May 2007 20:40:35 -0000       1.21
@@ -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: Gain.cpp,v 1.20 2007/04/30 18:16:46 benjie Exp $
+$Id: Gain.cpp,v 1.21 2007/05/05 20:40:35 r_sijrier Exp $
 */
 
 #include "Gain.h"
@@ -27,6 +27,7 @@
 #include "Mixer.h"
 #include <ViewPort.h>
 #include <Track.h>
+#include "Song.h"
 
 // Always put me below _all_ includes, this is needed
 // in case we run with memory leak detection enabled!
@@ -63,6 +64,11 @@
        Track* track = qobject_cast<Track*>(context);
        if (track && origGain == 0.5) {
                newGain = 1.0;
+       } else {
+               Song* song = qobject_cast<Song*>(context);
+               if (song && origGain == 0.5) {
+                       newGain = 1.0;
+               }
        }
 }
 

Index: src/commands/plugins/TraversoCommands/TraversoCommands.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/commands/plugins/TraversoCommands/TraversoCommands.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- src/commands/plugins/TraversoCommands/TraversoCommands.cpp  2 May 2007 
05:58:20 -0000       1.10
+++ src/commands/plugins/TraversoCommands/TraversoCommands.cpp  5 May 2007 
20:40:35 -0000       1.11
@@ -63,6 +63,9 @@
                        if (item->metaObject()->className() == 
QString("TrackPanelGain")) {
                                item = item->get_context();
                        }
+                       if (item->metaObject()->className() == 
QString("SongPanelGain")) {
+                               item = item->get_context();
+                       }
                        
                        if (!item) {
                                PERROR("TraversoCommands: Supplied QObject was 
not a ContextItem, "
@@ -128,7 +131,7 @@
                                        "RemoveClipCommand needs a Clip as 
argument");
                                return 0;
                        }
-                       return new RemoveClip(clip);
+                       return new AddRemoveClip(clip, AddRemoveClip::REMOVE);
                }
                
                case RemoveTrackCommand:

Index: src/traverso/songcanvas/ClipsViewPort.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/ClipsViewPort.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- src/traverso/songcanvas/ClipsViewPort.cpp   26 Apr 2007 18:57:57 -0000      
1.15
+++ src/traverso/songcanvas/ClipsViewPort.cpp   5 May 2007 20:40:35 -0000       
1.16
@@ -27,6 +27,7 @@
 #include <libtraversocore.h>
 #include <Import.h>
 #include <CommandGroup.h>
+#include "RemoveClip.h"
 
 #include <QScrollBar>
 #include <QSet>
@@ -153,12 +154,14 @@
                        }
                        clip->set_track_start_frame(startpos);
                        startpos = clip->get_track_end_frame();
-                       group->add_command(importTrack->add_clip(clip));
+                       AddRemoveClip* arc = new AddRemoveClip(clip, 
AddRemoveClip::ADD);
+                       arc->remove_from_database_when_removed(true);
+                       group->add_command(arc);
                        continue;
                }
                ReadSource* source = resources_manager()->get_readsource(id);
                if (source) {
-                       clip = 
resources_manager()->new_audio_clip(source->get_name());
+                       clip = 
resources_manager()->new_audio_clip(source->get_short_name());
                        clip->set_audio_source(source);
                        clip->set_song(importTrack->get_song());
                        clip->set_track(importTrack);
@@ -166,7 +169,9 @@
                        startpos = clip->get_track_end_frame();
                        // FIXME!!!!!!!!!!!!!!!!!!!!
                        clip->init_gain_envelope();
-                       group->add_command(importTrack->add_clip(clip));
+                       AddRemoveClip* arc = new AddRemoveClip(clip, 
AddRemoveClip::ADD);
+                       arc->remove_from_database_when_removed(true);
+                       group->add_command(arc);
                }
        }
        

Index: src/traverso/songcanvas/SongWidget.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/SongWidget.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- src/traverso/songcanvas/SongWidget.cpp      3 Apr 2007 21:25:25 -0000       
1.11
+++ src/traverso/songcanvas/SongWidget.cpp      5 May 2007 20:40:35 -0000       
1.12
@@ -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: SongWidget.cpp,v 1.11 2007/04/03 21:25:25 benjie Exp $
+    $Id: SongWidget.cpp,v 1.12 2007/05/05 20:40:35 r_sijrier Exp $
 */
 
                
@@ -31,11 +31,190 @@
 #include "Config.h"
 
 #include <Song.h>
+#include "Utils.h"
+#include "ContextPointer.h"
+#include "Mixer.h"
+
 #include <QtOpenGL>
 
 #include <Debugger.h>
 
 
+class SongPanelGain : public ViewItem
+{
+       Q_OBJECT
+public:
+       SongPanelGain(ViewItem* parent, Song* song);
+       SongPanelGain(){}
+
+       void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, 
QWidget *widget);
+
+public slots:
+       Command* gain_increment();
+       Command* gain_decrement();
+       
+private slots:
+       void update_gain() {update();}
+
+private:
+       Song* m_song;
+};
+
+
+SongPanelGain::SongPanelGain(ViewItem* parent, Song* song)
+       : ViewItem(parent, song)
+       , m_song(song)
+{
+       m_boundingRect = QRectF(0, 0, 180, 9);
+       connect(song, SIGNAL(masterGainChanged()), this, SLOT(update_gain()));
+       setAcceptsHoverEvents(true);
+}
+
+void SongPanelGain::paint( QPainter * painter, const QStyleOptionGraphicsItem 
* option, QWidget * widget )
+{
+       Q_UNUSED(widget);
+       const int height = 9;
+
+       int sliderWidth = (int)m_boundingRect.width() - 75;
+       float gain = m_song->get_gain();
+       QString sgain = coefficient_to_dbstring(gain);
+       float db = coefficient_to_dB(gain);
+
+       if (db < -60) {
+               db = -60;
+       }
+       int sliderdbx =  (int) (sliderWidth - (sliderWidth*0.3)) - (int) ( ( 
(-1 * db) / 60 ) * sliderWidth);
+       if (sliderdbx < 0) {
+               sliderdbx = 0;
+       }
+       if (db > 0) {
+               sliderdbx =  (int)(sliderWidth*0.7) + (int) ( ( db / 6 ) * 
(sliderWidth*0.3));
+       }
+
+       int cr = (gain >= 1 ? 30 + (int)(100 * gain) : (int)(50 * gain));
+       int cb = ( gain < 1 ? 150 + (int)(50 * gain) : abs((int)(10 * gain)) );
+       
+       painter->setPen(themer()->get_color("TrackPanel:text"));
+       painter->setFont(themer()->get_font("TrackPanel:gain"));
+       painter->drawText(0, height + 1, "GAIN");
+       painter->drawRect(30, 0, sliderWidth, height);
+       
+       bool mousehover = (option->state & QStyle::State_MouseOver);
+       QColor color(cr,0,cb);
+       if (mousehover) {
+               color = color.light(140);
+       }
+       painter->fillRect(31, 1, sliderdbx, height-1, color);
+       painter->drawText(sliderWidth + 35, height, sgain);
+}
+
+Command* SongPanelGain::gain_increment()
+{
+       m_song->set_gain(m_song->get_gain() + 0.05);
+       return 0;
+}
+
+Command* SongPanelGain::gain_decrement()
+{
+       m_song->set_gain(m_song->get_gain() - 0.05);
+       return 0;
+}
+
+
+class SongPanelView : public ViewItem
+{
+       Q_OBJECT
+public:
+       SongPanelView(QGraphicsScene* scene, Song* song);
+       ~SongPanelView() {}
+       
+       void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, 
QWidget *widget);
+       
+private:
+       SongPanelGain* m_gainview;
+       Song* m_song;
+};
+
+SongPanelView::SongPanelView(QGraphicsScene* scene, Song* song)
+       : ViewItem(0, 0)
+       , m_song(song)
+{
+       scene->addItem(this);
+       m_gainview = new SongPanelGain(this, m_song);
+       m_gainview->setPos(10, 16);
+       scene->addItem(m_gainview);
+       m_boundingRect = QRectF(0, 0, 200, 30);
+}
+
+void SongPanelView::paint(QPainter * painter, const QStyleOptionGraphicsItem * 
option, QWidget * widget)
+{
+       int xstart = (int)option->exposedRect.x();
+       int pixelcount = (int)option->exposedRect.width();
+       
+       QColor color = themer()->get_color("Track:background");
+               
+//     painter->fillRect(xstart, 0, pixelcount, 30, color);
+       
+       painter->setPen(themer()->get_color("TrackPanel:text"));
+       painter->setFont(themer()->get_font("TrackPanel:led"));
+       painter->drawText(10, 11, "Song: " + m_song->get_title());
+       
+       color = themer()->get_color("Track:cliptopoffset");
+       painter->setPen(color);
+//     painter->drawLine(200 - 1, 0,  200 - 1, 30 - 1);
+       painter->fillRect(xstart, 29, pixelcount, 1, color);
+}
+
+class SongPanelViewPort : public ViewPort
+{
+public:
+       SongPanelViewPort(QGraphicsScene* scene, SongWidget* sw);
+       ~SongPanelViewPort() {};
+
+       void get_pointed_context_items(QList<ContextItem* > &list)
+       {
+               QList<QGraphicsItem *> itemlist = 
items(cpointer().on_first_input_event_x(), cpointer().on_first_input_event_y());
+               foreach(QGraphicsItem* item, itemlist) {
+                       list.append((ViewItem*)item);
+               }
+               list.removeAll(m_spv);
+               list.append(m_sv);
+       }
+       
+       void set_song_view(SongView* sv)
+       {
+               m_sv = sv;
+               m_spv = new SongPanelView(scene(), m_song);
+               m_spv->setPos(-200, -30);
+       }
+
+private:
+       Song*   m_song;
+       SongView* m_sv;
+       SongPanelView* m_spv;
+};
+
+
+SongPanelViewPort::SongPanelViewPort(QGraphicsScene * scene, SongWidget * sw)
+       : ViewPort(scene, sw)
+{
+       setSceneRect(-200, -30, 200, 0);
+       m_song = sw->get_song();
+       
+       setMaximumHeight(30);
+       setMinimumHeight(30);
+       setMinimumWidth(200);
+       setMaximumWidth(200);
+       setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+       setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+       setBackgroundBrush(themer()->get_color("Song:background"));
+}
+
+
+#include "SongWidget.moc"
+
+
+
 SongWidget::SongWidget(Song* song, QWidget* parent)
        : QFrame(parent)
        , m_song(song)
@@ -48,9 +227,10 @@
        m_trackPanel = new TrackPanelViewPort(m_scene, this);
        m_clipsViewPort = new ClipsViewPort(m_scene, this);
        m_timeLine = new TimeLineViewPort(m_scene, this, m_clipsViewPort);
+       m_songPanelVP = new SongPanelViewPort(m_scene, this);
        
        m_mainLayout = new QGridLayout(this);
-       m_mainLayout->addWidget(new QWidget(this), 0, 0);
+       m_mainLayout->addWidget(m_songPanelVP, 0, 0);
        m_mainLayout->addWidget(m_timeLine, 0, 1);
        m_mainLayout->addWidget(m_trackPanel, 1, 0);
        m_mainLayout->addWidget(m_clipsViewPort, 1, 1);
@@ -64,6 +244,7 @@
        
        m_sv = new SongView(this, m_clipsViewPort, m_trackPanel, m_timeLine, 
song);
        m_timeLine->set_songview(m_sv);
+       m_songPanelVP->set_song_view(m_sv);
        
        connect(m_clipsViewPort->horizontalScrollBar(), 
                SIGNAL(valueChanged(int)),
@@ -99,6 +280,7 @@
        delete m_trackPanel;
        delete m_clipsViewPort;
        delete m_timeLine;
+       delete m_songPanelVP;
        delete m_scene;
 }
 
@@ -148,3 +330,4 @@
 
 //eof
 
+

Index: src/traverso/songcanvas/SongWidget.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/SongWidget.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- src/traverso/songcanvas/SongWidget.h        3 Apr 2007 21:25:25 -0000       
1.11
+++ src/traverso/songcanvas/SongWidget.h        5 May 2007 20:40:35 -0000       
1.12
@@ -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: SongWidget.h,v 1.11 2007/04/03 21:25:25 benjie Exp $
+    $Id: SongWidget.h,v 1.12 2007/05/05 20:40:35 r_sijrier Exp $
 */
 
 #ifndef SONG_WIDGET_H
@@ -32,6 +32,7 @@
 class TrackPanelViewPort;
 class TimeLineViewPort;
 class ClipsViewPort;
+class SongPanelViewPort;
 
 class Project;
 class Song;
@@ -60,6 +61,7 @@
        TrackPanelViewPort*     m_trackPanel;
        TimeLineViewPort*       m_timeLine;
        ClipsViewPort*          m_clipsViewPort;
+       SongPanelViewPort*      m_songPanelVP;
        QGraphicsScene*         m_scene;
        QScrollBar*             m_vScrollBar;
        QScrollBar*             m_hScrollBar;

Index: src/traverso/songcanvas/TrackPanelView.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/TrackPanelView.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- src/traverso/songcanvas/TrackPanelView.h    11 Apr 2007 22:46:36 -0000      
1.10
+++ src/traverso/songcanvas/TrackPanelView.h    5 May 2007 20:40:35 -0000       
1.11
@@ -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: TrackPanelView.h,v 1.10 2007/04/11 22:46:36 r_sijrier Exp $
+$Id: TrackPanelView.h,v 1.11 2007/05/05 20:40:35 r_sijrier Exp $
 */
 
 #ifndef TRACK_PANEL_VIEW_H
@@ -40,7 +40,6 @@
        TrackPanelGain(){}
 
        void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, 
QWidget *widget);
-       QRectF boundingRect() const {return m_boundingRect;}
        void set_width(int width);
 
 public slots:
@@ -48,7 +47,6 @@
        Command* gain_decrement();
        
 private:
-       QRectF  m_boundingRect;
        Track* m_track;
 };
 
@@ -62,7 +60,6 @@
        
 
        void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, 
QWidget *widget);
-       QRectF boundingRect() const {return m_boundingRect;}
        void set_width(int width);
 
 public slots:
@@ -70,7 +67,6 @@
        Command* pan_right();
 
 private:
-       QRectF  m_boundingRect;
        Track* m_track;
 };
 




reply via email to

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