cue controls in CueTrackWidget

This commit is contained in:
snt 2024-07-09 20:48:20 +02:00
parent eed68d1817
commit 8716004c5e
7 changed files with 751 additions and 346 deletions

View file

@ -270,6 +270,7 @@ void CueTrackListWidget::redrawCueTrackList()
void CueTrackListWidget::loadCueTrackList(std::string filename) void CueTrackListWidget::loadCueTrackList(std::string filename)
{ {
qDebug() << "loading cue list from " << filename.data();
QFile file(QString::fromStdString(filename)); QFile file(QString::fromStdString(filename));
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
{ {
@ -389,6 +390,7 @@ void CueTrackListWidget::loadCueTrackList(std::string filename)
void CueTrackListWidget::saveCueTrackList(std::string filename) void CueTrackListWidget::saveCueTrackList(std::string filename)
{ {
qDebug() << "saving cue list to " << filename.data();
std::ofstream file(filename); std::ofstream file(filename);
if (!file.is_open()) if (!file.is_open())
{ {

View file

@ -17,9 +17,14 @@ CueTrackWidget::CueTrackWidget(QWidget *parent) :
connect(&tlFade, SIGNAL(finished()), this, SLOT(fadeSlot())); connect(&tlFade, SIGNAL(finished()), this, SLOT(fadeSlot()));
connect(&tlWaitIn, SIGNAL(finished()), this, SLOT(waitInSlot())); connect(&tlWaitIn, SIGNAL(finished()), this, SLOT(waitInSlot()));
connect(&tlWaitOut, SIGNAL(finished()), this, SLOT(waitOutSlot())); 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() CueTrackWidget::~CueTrackWidget()
{ {
delete ui; delete ui;
@ -34,9 +39,9 @@ void CueTrackWidget::loadCueTrack(CueTrack* track)
ui->pitch->display(track->pitch); ui->pitch->display(track->pitch);
ui->bus1->display(track->bus1); ui->bus1->display(track->bus1);
ui->bus2->display(track->bus2); ui->bus2->display(track->bus2);
ui->fade->setValue(track->fadeIn); ui->fade->display(track->fadeIn);
ui->waitIn->setValue(track->waitIn); ui->waitIn->display(track->waitIn);
ui->waitOut->setValue(track->waitOut); ui->waitOut->display(track->waitOut);
ui->halt->setChecked(track->stopAtEnd); ui->halt->setChecked(track->stopAtEnd);
QFileInfo fileInfo(track->filePath.data()); QFileInfo fileInfo(track->filePath.data());
fileInfo.fileName().truncate(64); fileInfo.fileName().truncate(64);
@ -44,6 +49,7 @@ void CueTrackWidget::loadCueTrack(CueTrack* track)
ui->status->setText(statusToString(track->status)); ui->status->setText(statusToString(track->status));
ui->audioLayer->display(track->audioLayer); ui->audioLayer->display(track->audioLayer);
ui->multi->setChecked(track->multi); ui->multi->setChecked(track->multi);
ui->fadeOut->display(track->fadeOut);
} }
void CueTrackWidget::go() void CueTrackWidget::go()
@ -95,4 +101,48 @@ void CueTrackWidget::setNextCue()
{ {
ui->cueProgressBar->setDisabled(true); ui->cueProgressBar->setDisabled(true);
ui->cueProgressBar->hide(); 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;
}
} }

View file

@ -19,26 +19,34 @@ public:
explicit CueTrackWidget(QWidget *parent = nullptr); explicit CueTrackWidget(QWidget *parent = nullptr);
~CueTrackWidget(); ~CueTrackWidget();
private:
Ui::CueTrackWidget *ui;
QTimeLine tlFade;
QTimeLine tlWaitIn;
QTimeLine tlWaitOut;
public slots: public slots:
void loadCueTrack(CueTrack* track); void loadCueTrack(CueTrack* track);
void go(); void go();
void setNextCue(); void setNextCue();
private:
Ui::CueTrackWidget *ui;
QTimeLine tlFade;
QTimeLine tlWaitIn;
QTimeLine tlWaitOut;
bool muted = false;
private slots: private slots:
void fadeSlot(); void fadeSlot();
void waitInSlot(); void waitInSlot();
void waitOutSlot(); void waitOutSlot();
void play();
void stop();
void pause();
void fadeIn();
void fadeOut();
void mute();
signals: signals:
void cueFinished(int layer); void cueFinished(int layer);
void goAction(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 #endif // CUETRACKWIDGET_H

File diff suppressed because it is too large Load diff

View file

@ -52,6 +52,7 @@ Settings::~Settings() {
void Settings::settingsLoader() void Settings::settingsLoader()
{ {
qDebug() << "loading settings from system";
beginGroup("lmsAudio"); beginGroup("lmsAudio");
m_ui = value("ui", 0).toBool(); m_ui = value("ui", 0).toBool();
m_dmxActive = value("dmxActive", 0).toBool(); m_dmxActive = value("dmxActive", 0).toBool();
@ -118,6 +119,7 @@ void Settings::settingsSaver()
// - Audio device id // - Audio device id
// - Show Ui, showPlayer // - Show Ui, showPlayer
void Settings::readFromFile(QString file) { void Settings::readFromFile(QString file) {
qDebug() << "loading settings from xml file " << file;
QFile* xmlFile = new QFile(file); QFile* xmlFile = new QFile(file);
if (!xmlFile->open(QIODevice::ReadOnly | QIODevice::Text)) { if (!xmlFile->open(QIODevice::ReadOnly | QIODevice::Text)) {
QMessageBox::critical(NULL,"Load XML File Problem", QMessageBox::critical(NULL,"Load XML File Problem",

View file

@ -83,7 +83,7 @@ void ShowPlayer::fade(Slider s, int start, CueTrack *track) {
void ShowPlayer::updateTrackStateInEngine(CueTrack *track) { void ShowPlayer::updateTrackStateInEngine(CueTrack *track) {
emit uiSliderChangedFaded(track->audioLayer, Slider::Volume, track->volume * 655.35, track->fadeIn * 1000, track->fadeOut * 1000); 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) if (prevCue[track->audioLayer]->pan != track->pan)
fade(Slider::Pan, prevCue[track->audioLayer]->pan, track); fade(Slider::Pan, prevCue[track->audioLayer]->pan, track);
if (prevCue[track->audioLayer]->pitch != track->pitch) if (prevCue[track->audioLayer]->pitch != track->pitch)
@ -139,6 +139,8 @@ CueTrackWidget *ShowPlayer::addCueTrackWidget(CueTrack* track) {
widget->loadCueTrack(track); widget->loadCueTrack(track);
connect(widget, SIGNAL(goAction(int)), this, SLOT(goAction(int))); connect(widget, SIGNAL(goAction(int)), this, SLOT(goAction(int)));
connect(widget, SIGNAL(cueFinished(int)), this, SLOT(cueFinished(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; cueTrackWidgetPlaying[track->audioLayer] = widget;
item->setSizeHint(widget->sizeHint()); item->setSizeHint(widget->sizeHint());
ui->activeCueList->setItemWidget(item, widget); ui->activeCueList->setItemWidget(item, widget);

View file

@ -59,8 +59,8 @@ private slots:
signals: signals:
void uiPlaybackChanged(int layer, Status s); void uiPlaybackChanged(int layer, Status s);
void uiSliderChanged(int layer, Slider s, int vol); void uiSliderChanged(int layer, Slider s, int value);
void uiSliderChangedFaded(int layer, Slider s, int vol, int fadeIn, int fadeOut); void uiSliderChangedFaded(int layer, Slider s, int value, int fadeIn, int fadeOut);
void uiLoadMedia(int layer, QString s); void uiLoadMedia(int layer, QString s);
}; };