diff --git a/src/cuetracklistwidget.cpp b/src/cuetracklistwidget.cpp index 0e2d6f6..c5595c2 100644 --- a/src/cuetracklistwidget.cpp +++ b/src/cuetracklistwidget.cpp @@ -270,6 +270,7 @@ void CueTrackListWidget::redrawCueTrackList() void CueTrackListWidget::loadCueTrackList(std::string filename) { + qDebug() << "loading cue list from " << filename.data(); QFile file(QString::fromStdString(filename)); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { @@ -389,6 +390,7 @@ void CueTrackListWidget::loadCueTrackList(std::string filename) void CueTrackListWidget::saveCueTrackList(std::string filename) { + qDebug() << "saving cue list to " << filename.data(); std::ofstream file(filename); if (!file.is_open()) { diff --git a/src/cuetrackwidget.cpp b/src/cuetrackwidget.cpp index 4e26b0c..0039a4f 100644 --- a/src/cuetrackwidget.cpp +++ b/src/cuetrackwidget.cpp @@ -17,9 +17,14 @@ CueTrackWidget::CueTrackWidget(QWidget *parent) : 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; @@ -34,9 +39,9 @@ void CueTrackWidget::loadCueTrack(CueTrack* track) ui->pitch->display(track->pitch); ui->bus1->display(track->bus1); ui->bus2->display(track->bus2); - ui->fade->setValue(track->fadeIn); - ui->waitIn->setValue(track->waitIn); - ui->waitOut->setValue(track->waitOut); + 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); @@ -44,6 +49,7 @@ void CueTrackWidget::loadCueTrack(CueTrack* track) ui->status->setText(statusToString(track->status)); ui->audioLayer->display(track->audioLayer); ui->multi->setChecked(track->multi); + ui->fadeOut->display(track->fadeOut); } void CueTrackWidget::go() @@ -95,4 +101,48 @@ 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; + } } diff --git a/src/cuetrackwidget.h b/src/cuetrackwidget.h index 87cd221..0915b84 100644 --- a/src/cuetrackwidget.h +++ b/src/cuetrackwidget.h @@ -19,26 +19,34 @@ public: explicit CueTrackWidget(QWidget *parent = nullptr); ~CueTrackWidget(); -private: - Ui::CueTrackWidget *ui; - QTimeLine tlFade; - QTimeLine tlWaitIn; - QTimeLine tlWaitOut; - public slots: void loadCueTrack(CueTrack* track); void go(); void setNextCue(); +private: + Ui::CueTrackWidget *ui; + QTimeLine tlFade; + QTimeLine tlWaitIn; + QTimeLine tlWaitOut; + bool muted = false; + private slots: void fadeSlot(); void waitInSlot(); void waitOutSlot(); + void play(); + void stop(); + void pause(); + void fadeIn(); + void fadeOut(); + void mute(); signals: void cueFinished(int layer); void goAction(int layer); - void NewFunction(CueTrack *track); + void changeStatus(int layer, Status status); + void changeVol(int layer, Slider s, int value, int fadein, int fadeout); }; #endif // CUETRACKWIDGET_H diff --git a/src/cuetrackwidget.ui b/src/cuetrackwidget.ui index 675d225..2d72fa9 100644 --- a/src/cuetrackwidget.ui +++ b/src/cuetrackwidget.ui @@ -6,8 +6,8 @@ 0 0 - 502 - 329 + 1000 + 740 @@ -58,7 +58,7 @@ - 16777215 + 734 16777215 @@ -87,13 +87,16 @@ 0 + + QFrame::StyledPanel + Qt::Horizontal - 0 + 2 0 @@ -116,14 +119,14 @@ - 1 + 0 0 - 48 - 48 + 24 + 24 @@ -161,7 +164,7 @@ - 2 + 0 0 @@ -214,12 +217,15 @@ 0 + + QFrame::StyledPanel + Qt::Horizontal - + - + 0 0 @@ -227,37 +233,208 @@ 0 - 24 + 12 - 16777215 - 24 + 26 + 16777215 + + + + Audio Channel + + + true + + + false + + + 1 + + + QLCDNumber::Flat + + + + + + 0 + 0 + + + + + 100 + 16777215 - 10 + 13 - Media FIle Name + Playback Status + + + true QFrame::StyledPanel - Media file name + Playback Status + + + Qt::PlainText + + + true - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignCenter true - - 3 + + + + + 0 + 0 + + + + + 130 + 16777215 + + + + + 75 + true + false + + + + Qt::NoFocus + + + <html><head/><body><p>PLay next cue at same time this cue, do not wait to finish the cue.</p></body></html> + + + Qt::LeftToRight + + + true + + + Multi Go + + + + :/buttons/resources/go_button.jpeg:/buttons/resources/go_button.jpeg + + + + 32 + 32 + + + + + + + 0 + 0 + + + + + 24 + 0 + + + + + 120 + 16777215 + + + + + 13 + 75 + true + + + + Qt::NoFocus + + + Do not play next cue if checked + + + If checked, do not play next cue. If checked, Go next cue when this cue has finished. + + + Halt + + + true + + + Halt + + + + :/buttons/resources/delete_button.png:/buttons/resources/delete_button.png + + + + 32 + 32 + + + + true + + + + + + 0 + 0 + + + + + 340 + 16777215 + + + + true + + + QFrame::StyledPanel + + + Media File Name + + + true + + + Qt::AlignJustify|Qt::AlignVCenter + + + true @@ -280,6 +457,9 @@ 16777215 + + QFrame::NoFrame + Qt::Horizontal @@ -318,117 +498,8 @@ 0 - - - - - 0 - 0 - - - - Qt::NoFocus - - - Wait in time in seconds - - - QAbstractSpinBox::NoButtons - - - - - - - - 0 - 0 - - - - Qt::NoFocus - - - Wait out time in secods - - - QAbstractSpinBox::NoButtons - - - - - - - - 0 - 0 - - - - Qt::NoFocus - - - Fade time in seconds - - - Fade In - - - Fade In Time in seconds - - - true - - - true - - - true - - - QAbstractSpinBox::NoButtons - - - - - - false - - - - - - - - - 99990000.000000000000000 - - - QAbstractSpinBox::AdaptiveDecimalStepType - - - - - - - - 0 - 0 - - - - Qt::NoFocus - - - Exit Point - - - QAbstractSpinBox::NoButtons - - - - - + + 0 @@ -437,23 +508,14 @@ - 13 + 10 - - Playback Status - QFrame::StyledPanel - Playback Status - - - Qt::PlainText - - - true + Wait In Qt::AlignCenter @@ -463,128 +525,54 @@ - - + + - 0 + 10 0 - - Qt::NoFocus - - - Entry Point - - - QAbstractSpinBox::NoButtons - - - - - - - - 0 - 0 - - - - - 0 - 24 - - - - Audio Channel + + QFrame::StyledPanel false - - 1 - QLCDNumber::Flat - - + + - - 0 + + 10 0 - - - 24 - 0 - - - - - 13 - 75 - true - - - - Qt::NoFocus - - Do not play next cue if checked + <html><head/><body><p>Volume</p></body></html> - - If checked, do not play next cue. If checked, Go next cue when this cue has finished. + + QFrame::StyledPanel - - Halt + + false - - true - - - Halt - - - - :/buttons/resources/delete_button.png:/buttons/resources/delete_button.png - - - - 32 - 32 - - - - true - - - - - - - - - QLayout::SetDefaultConstraint - - - 0 - - - 3 + + QLCDNumber::Flat + - - + + - + 0 0 @@ -594,6 +582,36 @@ 10 + + QFrame::StyledPanel + + + Fade In + + + Qt::AlignCenter + + + true + + + + + + + + 0 + 0 + + + + + 10 + + + + QFrame::StyledPanel + Bus 1 @@ -602,23 +620,41 @@ - - - - 3 + + + + + 10 + 0 + + + + QFrame::StyledPanel + + + false QLCDNumber::Flat - + + + + 0 + 0 + + 10 + + QFrame::StyledPanel + Volume @@ -627,55 +663,10 @@ - - - - - 10 - - - - Bus 2 - - - Qt::AlignCenter - - - - - - - <html><head/><body><p>Volume</p></body></html> - - - 3 - - - - - - - <html><head/><body><p>Bus 2 Volume</p></body></html> - - - 3 - - - - - - - <html><head/><body><p>Bus 1 Volume</p></body></html> - - - 3 - - - - - + + - + 0 0 @@ -685,21 +676,36 @@ 10 + + QFrame::StyledPanel + - Pan + Entry Point Qt::AlignCenter + + true + - + + + + 0 + 0 + + 10 + + QFrame::StyledPanel + Pitch @@ -708,23 +714,8 @@ - - - - - 10 - - - - MultiCue - - - Qt::AlignCenter - - - - - + + 0 @@ -733,29 +724,386 @@ - 50 - false - true + 10 - - <html><head/><body><p>PLay next cue at same time this cue, do not wait to finish the cue.</p></body></html> - - - Qt::LeftToRight + + QFrame::StyledPanel - + Pan - - - :/buttons/resources/go_button.jpeg:/buttons/resources/go_button.jpeg + + Qt::AlignCenter - - - 32 - 32 - + + + + + + + 0 + 0 + + + + + 10 + + + + QFrame::StyledPanel + + + Wait Out + + + Qt::AlignCenter + + + true + + + + + + + + 10 + 0 + + + + QFrame::StyledPanel + + + false + + + QLCDNumber::Flat + + + + + + + + 0 + 0 + + + + + 10 + + + + QFrame::StyledPanel + + + Exit Point + + + Qt::AlignCenter + + + true + + + + + + + + 0 + 0 + + + + + 10 + + + + QFrame::StyledPanel + + + Fade Out + + + Qt::AlignCenter + + + true + + + + + + + + 10 + 0 + + + + QFrame::StyledPanel + + + false + + + QLCDNumber::Flat + + + + + + + + 10 + 0 + + + + QFrame::StyledPanel + + + false + + + QLCDNumber::Flat + + + + + + + + 10 + 0 + + + + <html><head/><body><p>Bus 1 Volume</p></body></html> + + + QFrame::StyledPanel + + + false + + + 3 + + + QLCDNumber::Flat + + + + + + + + 10 + 0 + + + + QFrame::StyledPanel + + + false + + + 3 + + + QLCDNumber::Flat + + + + + + + + 0 + 0 + + + + + 10 + + + + QFrame::StyledPanel + + + Bus 2 + + + Qt::AlignCenter + + + + + + + + 10 + 0 + + + + QFrame::StyledPanel + + + false + + + 3 + + + QLCDNumber::Flat + + + + + + + + 10 + 0 + + + + <html><head/><body><p>Bus 2 Volume</p></body></html> + + + QFrame::StyledPanel + + + false + + + 3 + + + QLCDNumber::Flat + + + + + + + + 10 + 0 + + + + QFrame::StyledPanel + + + false + + + QLCDNumber::Flat + + + + + + + + + 0 + 0 + + + + + QLayout::SetDefaultConstraint + + + 0 + + + + + + 0 + 0 + + + + Play + + + + + + + + 0 + 0 + + + + Pause + + + + + + + + 0 + 0 + + + + Stop + + + + + + + + 0 + 0 + + + + Fade In + + + + + + + + 0 + 0 + + + + Mute + + + + + + + + 0 + 0 + + + + Fade Out @@ -766,13 +1114,6 @@ - - waitOut - fade - entryPoint - exitPoint - waitIn - diff --git a/src/settings.cpp b/src/settings.cpp index f900740..1f43582 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -52,6 +52,7 @@ Settings::~Settings() { void Settings::settingsLoader() { + qDebug() << "loading settings from system"; beginGroup("lmsAudio"); m_ui = value("ui", 0).toBool(); m_dmxActive = value("dmxActive", 0).toBool(); @@ -118,6 +119,7 @@ void Settings::settingsSaver() // - Audio device id // - Show Ui, showPlayer void Settings::readFromFile(QString file) { + qDebug() << "loading settings from xml file " << file; QFile* xmlFile = new QFile(file); if (!xmlFile->open(QIODevice::ReadOnly | QIODevice::Text)) { QMessageBox::critical(NULL,"Load XML File Problem", diff --git a/src/showplayer.cpp b/src/showplayer.cpp index 613017b..d8caba7 100644 --- a/src/showplayer.cpp +++ b/src/showplayer.cpp @@ -83,7 +83,7 @@ void ShowPlayer::fade(Slider s, int start, CueTrack *track) { void ShowPlayer::updateTrackStateInEngine(CueTrack *track) { emit uiSliderChangedFaded(track->audioLayer, Slider::Volume, track->volume * 655.35, track->fadeIn * 1000, track->fadeOut * 1000); - if (prevCue[track->audioLayer] != nullptr) { + if (track->fadeIn != 0 && 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) @@ -139,10 +139,12 @@ CueTrackWidget *ShowPlayer::addCueTrackWidget(CueTrack* track) { widget->loadCueTrack(track); connect(widget, SIGNAL(goAction(int)), this, SLOT(goAction(int))); connect(widget, SIGNAL(cueFinished(int)), this, SLOT(cueFinished(int))); + connect(widget, SIGNAL(changeStatus(int, Status)), this, SIGNAL(uiPlaybackChanged(int, Status))); + connect(widget, SIGNAL(changeVol(int, Slider, int, int, int)), this, SIGNAL(uiSliderChangedFaded(int, Slider, int, int, int))); cueTrackWidgetPlaying[track->audioLayer] = widget; item->setSizeHint(widget->sizeHint()); ui->activeCueList->setItemWidget(item, widget); - return (widget); + return (widget); } void ShowPlayer::playCueTrack(CueTrack* track) { diff --git a/src/showplayer.h b/src/showplayer.h index 6f82b4a..d3568ca 100644 --- a/src/showplayer.h +++ b/src/showplayer.h @@ -59,8 +59,8 @@ private slots: signals: void uiPlaybackChanged(int layer, Status s); - void uiSliderChanged(int layer, Slider s, int vol); - void uiSliderChangedFaded(int layer, Slider s, int vol, int fadeIn, int fadeOut); + void uiSliderChanged(int layer, Slider s, int value); + void uiSliderChangedFaded(int layer, Slider s, int value, int fadeIn, int fadeOut); void uiLoadMedia(int layer, QString s); };