summaryrefslogtreecommitdiff
path: root/muse2/muse/mixer
diff options
context:
space:
mode:
authorRobert Jonsson <spamatica@gmail.com>2012-10-04 16:08:51 +0000
committerRobert Jonsson <spamatica@gmail.com>2012-10-04 16:08:51 +0000
commit8f81edb163136e8374db131eeefd261fc58e2dc9 (patch)
treeaa107d525e28c06a3543b2de1d1e48d76ac057a3 /muse2/muse/mixer
parent2783d453532728eee509c1e61d4bdd4a5bfac64f (diff)
added gain knob to channel strips
Diffstat (limited to 'muse2/muse/mixer')
-rw-r--r--muse2/muse/mixer/astrip.cpp108
-rw-r--r--muse2/muse/mixer/astrip.h7
2 files changed, 71 insertions, 44 deletions
diff --git a/muse2/muse/mixer/astrip.cpp b/muse2/muse/mixer/astrip.cpp
index 530ca7e2..243df29c 100644
--- a/muse2/muse/mixer/astrip.cpp
+++ b/muse2/muse/mixer/astrip.cpp
@@ -179,7 +179,8 @@ void AudioStrip::songChanged(MusECore::SongChangedFlags_t val)
updateRouteButtons();
MusECore::AudioTrack* src = (MusECore::AudioTrack*)track;
-
+ gain->setValue(src->gain());
+
// Do channels before MusEGlobal::config...
if (val & SC_CHANNELS)
updateChannels();
@@ -441,6 +442,15 @@ void AudioStrip::auxChanged(double val, int idx)
}
//---------------------------------------------------------
+// gainChanged
+//---------------------------------------------------------
+
+void AudioStrip::gainChanged(double val)
+ {
+ ((MusECore::AudioTrack*)track)->setGain(val);
+ }
+
+//---------------------------------------------------------
// auxLabelChanged
//---------------------------------------------------------
@@ -664,74 +674,79 @@ void AudioStrip::updateChannels()
// 1 - aux send
//---------------------------------------------------------
-MusEGui::Knob* AudioStrip::addKnob(int type, int id, MusEGui::DoubleLabel** dlabel, QLabel *name)
+MusEGui::Knob* AudioStrip::addKnob(Knob::KnobType type, int id, MusEGui::DoubleLabel** dlabel, QLabel *name)
{
- MusEGui::Knob* knob = new MusEGui::Knob(this);
+ MusEGui::Knob* knob = new Knob(this);
knob->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum));
- if (type == 0)
+ MusEGui::DoubleLabel* knobLabel;
+ if (type == Knob::panType)
+ {
knob->setRange(-1.0, +1.0);
- else
- knob->setRange(MusEGlobal::config.minSlider-0.1, 10.0);
- knob->setBackgroundRole(QPalette::Mid);
-
- if (type == 0)
knob->setToolTip(tr("panorama"));
- else
+ knobLabel = new MusEGui::DoubleLabel(0, -1.0, +1.0, this);
+
+ } else if (type == Knob::auxType)
+ {
+ knob->setRange(MusEGlobal::config.minSlider-0.1, 10.0);
knob->setToolTip(tr("aux send level"));
+ knob->setFaceColor(Qt::blue);
+ knobLabel = new MusEGui::DoubleLabel(0.0, MusEGlobal::config.minSlider, 10.1, this);
- MusEGui::DoubleLabel* pl;
- if (type == 0)
- pl = new MusEGui::DoubleLabel(0, -1.0, +1.0, this);
- else
- pl = new MusEGui::DoubleLabel(0.0, MusEGlobal::config.minSlider, 10.1, this);
+ } else if (type == Knob::gainType)
+ {
+ knob->setRange(1.0, 20.0);
+ knob->setFaceColor(Qt::yellow);
+ knob->setToolTip(tr("calibration gain"));
+ knobLabel = new MusEGui::DoubleLabel(1.0, 1.0, 30.0, this);
+ }
+ knob->setBackgroundRole(QPalette::Mid);
if (dlabel)
- *dlabel = pl;
- pl->setSlider(knob);
+ *dlabel = knobLabel;
+ knobLabel->setSlider(knob);
///pl->setFont(MusEGlobal::config.fonts[1]);
- pl->setBackgroundRole(QPalette::Mid);
- pl->setFrame(true);
- if (type == 0)
- pl->setPrecision(2);
- else {
- pl->setPrecision(0);
+ knobLabel->setBackgroundRole(QPalette::Mid);
+ knobLabel->setFrame(true);
+ if (type == Knob::panType)
+ knobLabel->setPrecision(2);
+ else if (type == Knob::auxType){
+ knobLabel->setPrecision(0);
+ }
+ else if (type == Knob::gainType){
+ knobLabel->setPrecision(1);
}
- pl->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum));
+ knobLabel->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum));
- // QString label;
- // if (type == 0)
- // label = tr("Pan");
- // else
- // label = name;
-
- //QLabel* plb = new QLabel(label, this);
name->setParent(this);
name->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum));
name->setAlignment(Qt::AlignCenter);
grid->addWidget(name, _curGridRow, 0);
- grid->addWidget(pl, _curGridRow+1, 0);
+ grid->addWidget(knobLabel, _curGridRow+1, 0);
grid->addWidget(knob, _curGridRow, 1, 2, 1);
_curGridRow += 2;
- connect(knob, SIGNAL(valueChanged(double,int)), pl, SLOT(setValue(double)));
+ connect(knob, SIGNAL(valueChanged(double,int)), knobLabel, SLOT(setValue(double)));
- if (type == 0) {
- connect(pl, SIGNAL(valueChanged(double, int)), SLOT(panLabelChanged(double)));
+ if (type == Knob::panType) {
+ connect(knobLabel, SIGNAL(valueChanged(double, int)), SLOT(panLabelChanged(double)));
connect(knob, SIGNAL(sliderMoved(double,int,bool)), SLOT(panChanged(double,int,bool)));
connect(knob, SIGNAL(sliderPressed(int)), SLOT(panPressed()));
connect(knob, SIGNAL(sliderReleased(int)), SLOT(panReleased()));
connect(knob, SIGNAL(sliderRightClicked(const QPoint &, int)), SLOT(panRightClicked(const QPoint &)));
}
- else {
+ else if (type == Knob::auxType){
+ knobLabel->setReadOnly(true);
knob->setId(id);
-
- connect(pl, SIGNAL(valueChanged(double, int)), knob, SLOT(setValue(double)));
- // Not used yet. Switch if/when necessary.
- //connect(pl, SIGNAL(valueChanged(double, int)), SLOT(auxLabelChanged(double, int)));
-
+ connect(knobLabel, SIGNAL(valueChanged(double, int)), knob, SLOT(setValue(double)));
connect(knob, SIGNAL(sliderMoved(double, int)), SLOT(auxChanged(double, int)));
}
+ else if (type == Knob::gainType){
+ knobLabel->setReadOnly(true);
+ knob->setId(id);
+ connect(knobLabel, SIGNAL(valueChanged(double, int)), knob, SLOT(setValue(double)));
+ connect(knob, SIGNAL(sliderMoved(double, int)), SLOT(gainChanged(double)));
+ }
return knob;
}
@@ -813,6 +828,13 @@ AudioStrip::AudioStrip(QWidget* parent, MusECore::AudioTrack* at)
grid->addWidget(pre, _curGridRow++, 1);
//---------------------------------------------------
+ // Gain
+ //---------------------------------------------------
+
+ gain = addKnob(MusEGui::Knob::gainType, 0, &gainLabel, new QLabel("Gain", this));
+ gain->setValue(t->gain());
+
+ //---------------------------------------------------
// aux send
//---------------------------------------------------
@@ -826,7 +848,7 @@ AudioStrip::AudioStrip(QWidget* parent, MusECore::AudioTrack* at)
title = title.mid(0,8) + ".";
}
QLabel *name = new QLabel(title,this);
- MusEGui::Knob* ak = addKnob(1, idx, &al, name);
+ MusEGui::Knob* ak = addKnob(MusEGui::Knob::auxType, idx, &al, name);
auxKnob.push_back(ak);
auxLabel.push_back(al);
@@ -899,7 +921,7 @@ AudioStrip::AudioStrip(QWidget* parent, MusECore::AudioTrack* at)
// pan, balance
//---------------------------------------------------
- pan = addKnob(0, 0, &panl, new QLabel("Pan", this));
+ pan = addKnob(MusEGui::Knob::panType, 0, &panl, new QLabel("Pan", this));
pan->setValue(t->pan());
//---------------------------------------------------
diff --git a/muse2/muse/mixer/astrip.h b/muse2/muse/mixer/astrip.h
index 81edc664..7088301f 100644
--- a/muse2/muse/mixer/astrip.h
+++ b/muse2/muse/mixer/astrip.h
@@ -29,6 +29,7 @@
#include "type_defs.h"
#include "strip.h"
+#include "knob.h"
//#include "route.h"
//class QDialog;
@@ -67,6 +68,9 @@ class AudioStrip : public Strip {
MusEGui::Knob* pan;
MusEGui::DoubleLabel* panl;
+ MusEGui::Knob* gain;
+ MusEGui::DoubleLabel* gainLabel;
+
std::vector<MusEGui::Knob*> auxKnob;
std::vector<MusEGui::DoubleLabel*> auxLabel;
@@ -81,7 +85,7 @@ class AudioStrip : public Strip {
//QToolButton* iR;
//QToolButton* oR;
- MusEGui::Knob* addKnob(int, int, MusEGui::DoubleLabel**, QLabel *name);
+ MusEGui::Knob* addKnob(Knob::KnobType, int, MusEGui::DoubleLabel**, QLabel *name);
void updateOffState();
void updateVolume();
@@ -96,6 +100,7 @@ class AudioStrip : public Strip {
void iRoutePressed();
void oRoutePressed();
void auxChanged(double, int);
+ void gainChanged(double);
void volumeChanged(double,int,bool);
void volumePressed();
void volumeReleased();