summaryrefslogtreecommitdiff
path: root/muse2/muse/mixer
diff options
context:
space:
mode:
authorFlorian Jung <flo@windfisch.org>2012-05-28 14:15:52 +0000
committerFlorian Jung <flo@windfisch.org>2012-05-28 14:15:52 +0000
commitd2a88cfaad5ac385fc3c6212c09ad7fbc38e9454 (patch)
tree387da0b38255003e1a971629ea0de32273ac3d3c /muse2/muse/mixer
parent716f5a5b56a3b7ff59004ef0a1af5f98cb2a691c (diff)
merged with release_2_0
Diffstat (limited to 'muse2/muse/mixer')
-rw-r--r--muse2/muse/mixer/astrip.cpp25
-rw-r--r--muse2/muse/mixer/astrip.h1
-rw-r--r--muse2/muse/mixer/mstrip.cpp8
-rw-r--r--muse2/muse/mixer/rack.cpp15
-rw-r--r--muse2/muse/mixer/strip.cpp21
5 files changed, 58 insertions, 12 deletions
diff --git a/muse2/muse/mixer/astrip.cpp b/muse2/muse/mixer/astrip.cpp
index 6b8043b9..7699af41 100644
--- a/muse2/muse/mixer/astrip.cpp
+++ b/muse2/muse/mixer/astrip.cpp
@@ -121,7 +121,7 @@ void AudioStrip::heartBeat()
void AudioStrip::configChanged()
{
- // Set the whole strip's font, except for the label.
+ // Set the whole strip's font, except for the label.
if(font() != MusEGlobal::config.fonts[1])
setFont(MusEGlobal::config.fonts[1]);
@@ -150,6 +150,22 @@ void AudioStrip::configChanged()
meter[c]->setRange(MusEGlobal::config.minMeter, 10.0);
}
+void AudioStrip::updateRouteButtons()
+{
+ if (iR)
+ {
+ if (track->noInRoute())
+ iR->setStyleSheet("background-color:darkgray;");
+ else
+ iR->setStyleSheet("");
+ }
+
+ if (track->noOutRoute())
+ oR->setStyleSheet("background-color:red;");
+ else
+ oR->setStyleSheet("");
+}
+
//---------------------------------------------------------
// songChanged
//---------------------------------------------------------
@@ -159,6 +175,8 @@ void AudioStrip::songChanged(int val)
// Is it simply a midi controller value adjustment? Forget it.
if (val == SC_MIDI_CONTROLLER)
return;
+
+ updateRouteButtons();
MusECore::AudioTrack* src = (MusECore::AudioTrack*)track;
@@ -1055,6 +1073,9 @@ AudioStrip::AudioStrip(QWidget* parent, MusECore::AudioTrack* at)
off->blockSignals(false);
}
connect(MusEGlobal::heartBeatTimer, SIGNAL(timeout()), SLOT(heartBeat()));
+
+ updateRouteButtons();
+
}
//---------------------------------------------------------
@@ -1067,7 +1088,7 @@ void AudioStrip::iRoutePressed()
RoutePopupMenu* pup = new RoutePopupMenu();
pup->exec(QCursor::pos(), track, false);
delete pup;
- iR->setDown(false);
+ iR->setDown(false);
}
//---------------------------------------------------------
diff --git a/muse2/muse/mixer/astrip.h b/muse2/muse/mixer/astrip.h
index 1ee40d97..f5406652 100644
--- a/muse2/muse/mixer/astrip.h
+++ b/muse2/muse/mixer/astrip.h
@@ -85,6 +85,7 @@ class AudioStrip : public Strip {
void updateVolume();
void updatePan();
void updateChannels();
+ void updateRouteButtons();
private slots:
void stereoToggled(bool);
diff --git a/muse2/muse/mixer/mstrip.cpp b/muse2/muse/mixer/mstrip.cpp
index 61bd9ba5..6f98ffb8 100644
--- a/muse2/muse/mixer/mstrip.cpp
+++ b/muse2/muse/mixer/mstrip.cpp
@@ -108,7 +108,7 @@ void MidiStrip::addKnob(int idx, const QString& tt, const QString& label,
MusEGui::DoubleLabel* dl = new MusEGui::DoubleLabel(0.0, double(mn), double(mx), this);
dl->setId(idx);
dl->setSpecialText(tr("off"));
- dl->setToolTip(tr("double click on/off"));
+ dl->setToolTip(tr("ctrl-double-click on/off"));
controller[idx].dl = dl;
///dl->setFont(MusEGlobal::config.fonts[1]);
dl->setBackgroundRole(QPalette::Mid);
@@ -166,7 +166,7 @@ void MidiStrip::addKnob(int idx, const QString& tt, const QString& label,
connect(knob, SIGNAL(sliderMoved(double,int)), slot);
connect(knob, SIGNAL(sliderRightClicked(const QPoint &, int)), SLOT(controlRightClicked(const QPoint &, int)));
connect(dl, SIGNAL(valueChanged(double, int)), slot);
- connect(dl, SIGNAL(doubleClicked(int)), SLOT(labelDoubleClicked(int)));
+ connect(dl, SIGNAL(ctrlDoubleClicked(int)), SLOT(labelDoubleClicked(int)));
}
//---------------------------------------------------------
@@ -233,7 +233,7 @@ MidiStrip::MidiStrip(QWidget* parent, MusECore::MidiTrack* t)
sl->setBackgroundRole(QPalette::Mid);
sl->setSpecialText(tr("off"));
sl->setSuffix(tr("dB"));
- sl->setToolTip(tr("double click on/off"));
+ sl->setToolTip(tr("ctrl-double-click on/off"));
sl->setFrame(true);
sl->setPrecision(0);
sl->setSizePolicy(QSizePolicy(QSizePolicy::Maximum, QSizePolicy::Minimum));
@@ -278,7 +278,7 @@ MidiStrip::MidiStrip(QWidget* parent, MusECore::MidiTrack* t)
connect(slider, SIGNAL(sliderMoved(double,int)), SLOT(setVolume(double)));
connect(slider, SIGNAL(sliderRightClicked(const QPoint &, int)), SLOT(controlRightClicked(const QPoint &, int)));
connect(sl, SIGNAL(valueChanged(double, int)), SLOT(volLabelChanged(double)));
- connect(sl, SIGNAL(doubleClicked(int)), SLOT(labelDoubleClicked(int)));
+ connect(sl, SIGNAL(ctrlDoubleClicked(int)), SLOT(labelDoubleClicked(int)));
grid->addWidget(sl, _curGridRow++, 0, 1, 2, Qt::AlignCenter);
diff --git a/muse2/muse/mixer/rack.cpp b/muse2/muse/mixer/rack.cpp
index 3df46dd5..744d15b0 100644
--- a/muse2/muse/mixer/rack.cpp
+++ b/muse2/muse/mixer/rack.cpp
@@ -411,8 +411,17 @@ void EffectRack::doubleClicked(QListWidgetItem* it)
return;
}
if (pipe) {
- bool flag = !pipe->guiVisible(idx);
- pipe->showGui(idx, flag);
+ bool flag;
+ if (pipe->has_dssi_ui(idx))
+ {
+ flag = !pipe->nativeGuiVisible(idx);
+ pipe->showNativeGui(idx, flag);
+
+ }
+ else {
+ flag = !pipe->guiVisible(idx);
+ pipe->showGui(idx, flag);
+ }
}
}
@@ -508,6 +517,8 @@ void EffectRack::startDrag(int idx)
QString xmlconf;
xml.dump(xmlconf);
+ printf("[%s]\n", xmlconf.toLatin1().constData());
+
QByteArray data(xmlconf.toLatin1().constData());
//printf("sending %d [%s]\n", data.length(), xmlconf.toLatin1().constData());
diff --git a/muse2/muse/mixer/strip.cpp b/muse2/muse/mixer/strip.cpp
index 54cd2e8c..f34d5320 100644
--- a/muse2/muse/mixer/strip.cpp
+++ b/muse2/muse/mixer/strip.cpp
@@ -297,10 +297,23 @@ Strip::~Strip()
//---------------------------------------------------------
void Strip::setAutomationType(int t)
- {
- track->setAutomationType(AutomationType(t));
- MusEGlobal::song->update(SC_AUTOMATION);
- }
+{
+ // If going to OFF mode, need to update current 'manual' values from the automation values at this time...
+ if(t == AUTO_OFF && track->automationType() != AUTO_OFF) // && track->automationType() != AUTO_WRITE)
+ {
+ // May have a lot to do in updateCurValues, so try using idle.
+ MusEGlobal::audio->msgIdle(true);
+ track->setAutomationType(AutomationType(t));
+ if(!track->isMidiTrack())
+ (static_cast<MusECore::AudioTrack*>(track))->controller()->updateCurValues(MusEGlobal::audio->curFramePos());
+ MusEGlobal::audio->msgIdle(false);
+ }
+ else
+ // Try it within one message.
+ MusEGlobal::audio->msgSetTrackAutomationType(track, t);
+
+ MusEGlobal::song->update(SC_AUTOMATION);
+}
void Strip::resizeEvent(QResizeEvent* ev)
{