148 lines
4.4 KiB
C++
148 lines
4.4 KiB
C++
#include <QFileInfo>
|
|
|
|
#include "cuetrackwidget.h"
|
|
#include "ui_cuetrackwidget.h"
|
|
|
|
CueTrackWidget::CueTrackWidget(QWidget *parent) :
|
|
QWidget(parent),
|
|
ui(new Ui::CueTrackWidget)
|
|
{
|
|
ui->setupUi(this);
|
|
tlFade.setFrameRange(0, 100);
|
|
tlWaitIn.setFrameRange(0, 100);
|
|
tlWaitOut.setFrameRange(0, 100);
|
|
connect(&tlFade, &QTimeLine::frameChanged, ui->cueProgressBar, &QProgressBar::setValue);
|
|
connect(&tlWaitIn, &QTimeLine::frameChanged, ui->cueProgressBar, &QProgressBar::setValue);
|
|
connect(&tlWaitOut, &QTimeLine::frameChanged, ui->cueProgressBar, &QProgressBar::setValue);
|
|
connect(&tlFade, SIGNAL(finished()), this, SLOT(fadeSlot()));
|
|
connect(&tlWaitIn, SIGNAL(finished()), this, SLOT(waitInSlot()));
|
|
connect(&tlWaitOut, SIGNAL(finished()), this, SLOT(waitOutSlot()));
|
|
connect(ui->playButton, SIGNAL(clicked()), this, SLOT(play()));
|
|
connect(ui->stopButton, SIGNAL(clicked()), this, SLOT(stop()));
|
|
connect(ui->pauseButton, SIGNAL(clicked()), this, SLOT(pause()));
|
|
connect(ui->fadeInButton, SIGNAL(clicked()), this, SLOT(fadeIn()));
|
|
connect(ui->fadeOutButton, SIGNAL(clicked()), this, SLOT(fadeOut()));
|
|
connect(ui->muteButton, SIGNAL(clicked()), this, SLOT(mute()));
|
|
}
|
|
|
|
CueTrackWidget::~CueTrackWidget()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void CueTrackWidget::loadCueTrack(CueTrack* track)
|
|
{
|
|
ui->cueName->setText(track->name.data());
|
|
ui->cueNumber->display(track->userNumber);
|
|
ui->vol->display(track->volume);
|
|
ui->pan->display(track->pan);
|
|
ui->pitch->display(track->pitch);
|
|
ui->bus1->display(track->bus1);
|
|
ui->bus2->display(track->bus2);
|
|
ui->fade->display(track->fadeIn);
|
|
ui->waitIn->display(track->waitIn);
|
|
ui->waitOut->display(track->waitOut);
|
|
ui->halt->setChecked(track->stopAtEnd);
|
|
QFileInfo fileInfo(track->filePath.data());
|
|
fileInfo.fileName().truncate(64);
|
|
ui->mediaFileName->setText(fileInfo.fileName());
|
|
ui->status->setText(statusToString(track->status));
|
|
ui->audioLayer->display(track->audioLayer);
|
|
ui->multi->setChecked(track->multi);
|
|
ui->fadeOut->display(track->fadeOut);
|
|
}
|
|
|
|
void CueTrackWidget::go()
|
|
{
|
|
tlFade.stop();
|
|
tlWaitIn.stop();
|
|
tlWaitOut.stop();
|
|
ui->cueProgressBar->setValue(0);
|
|
if (ui->waitIn->value() > 0)
|
|
{
|
|
tlWaitIn.setDuration(ui->waitIn->value() * 1000);
|
|
tlWaitIn.start();
|
|
ui->cueProgressBar->setStyleSheet("QProgressBar::chunk { background-color: #FF0000; }");
|
|
} else {
|
|
waitInSlot();
|
|
}
|
|
}
|
|
|
|
void CueTrackWidget::waitInSlot()
|
|
{
|
|
emit goAction(ui->audioLayer->intValue());
|
|
if (ui->fade->value() > 0) {
|
|
tlFade.setDuration(ui->fade->value() * 1000);
|
|
tlFade.start();
|
|
ui->cueProgressBar->setStyleSheet("QProgressBar::chunk { background-color: #00FF00; }");
|
|
} else {
|
|
fadeSlot();
|
|
}
|
|
}
|
|
|
|
void CueTrackWidget::fadeSlot()
|
|
{
|
|
if (ui->waitOut->value() > 0) {
|
|
tlWaitOut.setDuration(ui->waitOut->value() * 1000);
|
|
tlWaitOut.start();
|
|
ui->cueProgressBar->setStyleSheet("QProgressBar::chunk { background-color: #FF0000; }");
|
|
} else {
|
|
waitOutSlot();
|
|
}
|
|
}
|
|
|
|
void CueTrackWidget::waitOutSlot()
|
|
{
|
|
ui->cueProgressBar->setStyleSheet("QProgressBar::chunk { background-color: #0000FF; }");
|
|
emit cueFinished(ui->audioLayer->intValue());
|
|
}
|
|
|
|
void CueTrackWidget::setNextCue()
|
|
{
|
|
ui->cueProgressBar->setDisabled(true);
|
|
ui->cueProgressBar->hide();
|
|
ui->audioControlLayout->setEnabled(false);
|
|
QList<int> list = { 1, 0 };
|
|
ui->cueValues->setSizes(list);
|
|
}
|
|
|
|
void CueTrackWidget::play()
|
|
{
|
|
QString t = ui->status->text();
|
|
emit changeStatus(ui->audioLayer->intValue(), stringToStatus(&t));
|
|
}
|
|
|
|
void CueTrackWidget::stop()
|
|
{
|
|
emit changeStatus(ui->audioLayer->intValue(), Status::Stopped);
|
|
}
|
|
|
|
void CueTrackWidget::pause()
|
|
{
|
|
emit changeStatus(ui->audioLayer->intValue(), Status::Paused);
|
|
}
|
|
|
|
void CueTrackWidget::fadeIn()
|
|
{
|
|
emit changeVol(ui->audioLayer->intValue(), Slider::Volume, ui->vol->value() * 655.35, ui->fade->value() * 1000, ui->fadeOut->value() * 1000);
|
|
muted = false;
|
|
}
|
|
|
|
void CueTrackWidget::fadeOut()
|
|
{
|
|
emit changeVol(ui->audioLayer->intValue(), Slider::Volume, 0, ui->fade->value() * 1000, ui->fadeOut->value() * 1000);
|
|
muted = true;
|
|
}
|
|
|
|
void CueTrackWidget::mute()
|
|
{
|
|
if (muted)
|
|
{
|
|
emit changeVol(ui->audioLayer->intValue(), Slider::Volume, ui->vol->value() * 655.35, 0, 0);
|
|
muted = false;
|
|
}
|
|
else {
|
|
emit changeVol(ui->audioLayer->intValue(), Slider::Volume, 0, 0, 0);
|
|
muted = true;
|
|
}
|
|
}
|