fades in pan, pitch, bus1, bus2
This commit is contained in:
parent
d35b166ce5
commit
aa713fd9be
4 changed files with 35 additions and 6 deletions
|
@ -25,7 +25,8 @@ HEADERS += src/libremediaserver-audio.h \
|
|||
src/defines.h \
|
||||
src/settings.h \
|
||||
src/slidergroup.h \
|
||||
src/dialgroup.h
|
||||
src/dialgroup.h \
|
||||
src/audiofade.h
|
||||
SOURCES += src/main.cpp \
|
||||
src/cuetrackwidget.cpp \
|
||||
src/editcuetrackwidget.cpp \
|
||||
|
|
|
@ -33,8 +33,10 @@ void EditCueTrackWidget::setupUi() {
|
|||
volumeSpin->setRange(0, 100.00f);
|
||||
layout->addRow("Volume", volumeSpin);
|
||||
panSpin = new QDoubleSpinBox(this);
|
||||
panSpin->setRange(-1, 1);
|
||||
layout->addRow("Pan", panSpin);
|
||||
pitchSpin = new QDoubleSpinBox(this);
|
||||
pitchSpin->setRange(0, 2);
|
||||
layout->addRow("Pitch", pitchSpin);
|
||||
bus1Spin = new QDoubleSpinBox(this);
|
||||
bus1Spin->setRange(0, 100.00f);
|
||||
|
@ -45,6 +47,7 @@ void EditCueTrackWidget::setupUi() {
|
|||
fadeInSpin = new QSpinBox(this);
|
||||
layout->addRow("Fade In", fadeInSpin);
|
||||
fadeOutSpin = new QSpinBox(this);
|
||||
fadeOutSpin->setRange(0, 60 * 60 * 24);
|
||||
layout->addRow("Fade Out", fadeOutSpin);
|
||||
waitInSpin = new QSpinBox(this);
|
||||
layout->addRow("Wait In", waitInSpin);
|
||||
|
|
|
@ -17,6 +17,8 @@ ShowPlayer::ShowPlayer(QWidget *parent) :
|
|||
for(int i = 0; i < MAX_LAYERS; i++) {
|
||||
layersUsed[i] = -1;
|
||||
cueTrackWidgetPlaying[i] = nullptr;
|
||||
current[i] = nullptr;
|
||||
prevCue[i] = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -31,8 +33,11 @@ void ShowPlayer::go()
|
|||
CueTrack *goCue = ui->cueListWidget->getSelectedTrack(true);
|
||||
if (!goCue)
|
||||
return;
|
||||
prevCue[goCue->audioLayer] = current[goCue->audioLayer];
|
||||
current[goCue->audioLayer] = goCue;
|
||||
playCueTrack(goCue);
|
||||
removeCueTrackWidget(goCue->audioLayer);
|
||||
CueTrackWidget *widget = addCueTrackWidget(goCue);
|
||||
widget->go();
|
||||
if (goCue->multi)
|
||||
go();
|
||||
}
|
||||
|
@ -60,12 +65,29 @@ void ShowPlayer::goAction(int c)
|
|||
ui->cueListWidget->redrawCueTrackList();
|
||||
}
|
||||
|
||||
void ShowPlayer::fade(Slider s, int start, CueTrack *track) {
|
||||
AudioFade *fade = new AudioFade(s, start, track, this);
|
||||
connect(fade, SIGNAL(uiSliderChanged(int, Slider, int)), this, SIGNAL(uiSliderChanged(int, Slider, int)));
|
||||
fade->start();
|
||||
}
|
||||
|
||||
void ShowPlayer::updateTrackStateInEngine(CueTrack *track) {
|
||||
emit uiSliderChangedFaded(track->audioLayer, Slider::Volume, track->volume * 655.35, track->fadeIn * 1000);
|
||||
emit uiSliderChanged(track->audioLayer, Slider::Pan, (track->pan + 1) * 128);
|
||||
emit uiSliderChanged(track->audioLayer, Slider::Pitch, track->pitch * 128);
|
||||
emit uiSliderChanged(track->audioLayer, Slider::Bus1, track->bus1 * 255 * 2.55);
|
||||
emit uiSliderChanged(track->audioLayer, Slider::Bus2, track->bus2 * 255 * 2.55);
|
||||
if (prevCue[track->audioLayer] != nullptr) {
|
||||
if (prevCue[track->audioLayer]->pan != track->pan)
|
||||
fade(Slider::Pan, prevCue[track->audioLayer]->pan, track);
|
||||
if (prevCue[track->audioLayer]->pitch != track->pitch)
|
||||
fade(Slider::Pitch, prevCue[track->audioLayer]->pitch, track);
|
||||
if (prevCue[track->audioLayer]->bus1 != track->bus1)
|
||||
fade(Slider::Bus1, prevCue[track->audioLayer]->bus1, track);
|
||||
if (prevCue[track->audioLayer]->bus2 != track->bus2)
|
||||
fade(Slider::Bus2, prevCue[track->audioLayer]->bus2, track);
|
||||
} else {
|
||||
emit uiSliderChanged(track->audioLayer, Slider::Pan, (track->pan + 1) * 128);
|
||||
emit uiSliderChanged(track->audioLayer, Slider::Pitch, track->pitch * 128);
|
||||
emit uiSliderChanged(track->audioLayer, Slider::Bus1, track->bus1 * 255 * 2.55);
|
||||
emit uiSliderChanged(track->audioLayer, Slider::Bus2, track->bus2 * 255 * 2.55);
|
||||
}
|
||||
}
|
||||
|
||||
void ShowPlayer::loadCueTrackList()
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include "cuetrackwidget.h"
|
||||
#include "dialgroup.h"
|
||||
#include "settings.h"
|
||||
#include "audiofade.h"
|
||||
#include "ui_showplayer.h"
|
||||
|
||||
namespace Ui {
|
||||
|
@ -34,6 +35,7 @@ private:
|
|||
Status currentStatus = Status::Iddle;
|
||||
int layersUsed[MAX_LAYERS];
|
||||
CueTrack *current[MAX_LAYERS];
|
||||
CueTrack *prevCue[MAX_LAYERS];
|
||||
CueTrackWidget *cueTrackWidgetPlaying[MAX_LAYERS];
|
||||
CueTrackWidget *addCueTrackWidget(CueTrack *track);
|
||||
|
||||
|
@ -48,6 +50,7 @@ private slots:
|
|||
void playCueTrack(CueTrack *track);
|
||||
void goAction(int channel);
|
||||
void updateIndex(int index);
|
||||
void fade(Slider s, int start, CueTrack *track);
|
||||
|
||||
signals:
|
||||
void uiPlaybackChanged(int layer, Status s);
|
||||
|
|
Loading…
Add table
Reference in a new issue