[Top][All Lists]
[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;
};
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso resources/keymap.xml src/commands/Gain...,
Remon Sijrier <=