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