diff options
author | Florian Jung <flo@windfisch.org> | 2012-05-28 14:15:52 +0000 |
---|---|---|
committer | Florian Jung <flo@windfisch.org> | 2012-05-28 14:15:52 +0000 |
commit | d2a88cfaad5ac385fc3c6212c09ad7fbc38e9454 (patch) | |
tree | 387da0b38255003e1a971629ea0de32273ac3d3c /muse2/muse/mixer | |
parent | 716f5a5b56a3b7ff59004ef0a1af5f98cb2a691c (diff) |
merged with release_2_0
Diffstat (limited to 'muse2/muse/mixer')
-rw-r--r-- | muse2/muse/mixer/astrip.cpp | 25 | ||||
-rw-r--r-- | muse2/muse/mixer/astrip.h | 1 | ||||
-rw-r--r-- | muse2/muse/mixer/mstrip.cpp | 8 | ||||
-rw-r--r-- | muse2/muse/mixer/rack.cpp | 15 | ||||
-rw-r--r-- | muse2/muse/mixer/strip.cpp | 21 |
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) { |