#include #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 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; } }