wip edit cues
This commit is contained in:
parent
333d7c7b49
commit
bd9b07f000
10 changed files with 318 additions and 168 deletions
|
@ -5,13 +5,5 @@
|
|||
ClickableDoubleSpinBox::ClickableDoubleSpinBox(QWidget *parent)
|
||||
: QDoubleSpinBox(parent)
|
||||
{
|
||||
setFocusPolicy(Qt::NoFocus);
|
||||
setButtonSymbols(QAbstractSpinBox::NoButtons);
|
||||
setValue(-1);
|
||||
setDecimals(1);
|
||||
setAlignment(Qt::AlignHCenter);
|
||||
setContentsMargins(0, 0, 0, 0);
|
||||
setMaximumWidth(66);
|
||||
setMinimumWidth(25);
|
||||
}
|
||||
|
||||
|
|
|
@ -10,11 +10,20 @@ class ClickableDoubleSpinBox : public QDoubleSpinBox
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
bool active = false;
|
||||
|
||||
explicit ClickableDoubleSpinBox(QWidget *parent = nullptr);
|
||||
protected:
|
||||
void mousePressEvent ( QMouseEvent * event ) {
|
||||
if (event->button() == Qt::LeftButton) {
|
||||
emit click();
|
||||
active = true;
|
||||
//this->setBackgroundRole(QPalette::BrightText);
|
||||
|
||||
} else if (event->button() == Qt::RightButton) {
|
||||
emit click();
|
||||
active = false;
|
||||
//this->setBackgroundRole(QPalette::Shadow);
|
||||
}
|
||||
event->accept();
|
||||
}
|
||||
|
|
|
@ -38,7 +38,9 @@ public:
|
|||
void addCueTrackWidget(CueTrackWidget* widget) {
|
||||
widget->setParent(containerWidget);
|
||||
layout->addWidget(widget);
|
||||
widget->show();
|
||||
if (m_size == 0)
|
||||
widget->setStyle(true);
|
||||
widget->show();
|
||||
m_size++;
|
||||
containerWidget->update();
|
||||
containerWidget->adjustSize();
|
||||
|
@ -76,17 +78,17 @@ private:
|
|||
private slots:
|
||||
void key_up() {
|
||||
if (m_size > 0 && selectedIndex > 0) {
|
||||
getTrackAtIndex(selectedIndex)->highlight(false);
|
||||
getTrackAtIndex(selectedIndex)->setStyle(false);
|
||||
selectedIndex--;
|
||||
getTrackAtIndex(selectedIndex)->highlight(true);
|
||||
getTrackAtIndex(selectedIndex)->setStyle(true);
|
||||
}
|
||||
}
|
||||
|
||||
void key_down() {
|
||||
if (selectedIndex < m_size - 1 && m_size > 0) {
|
||||
getTrackAtIndex(selectedIndex)->highlight(false);
|
||||
getTrackAtIndex(selectedIndex)->setStyle(false);
|
||||
selectedIndex++;
|
||||
getTrackAtIndex(selectedIndex)->highlight(true);
|
||||
getTrackAtIndex(selectedIndex)->setStyle(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,152 +7,116 @@ CueTrackWidget::CueTrackWidget(QWidget *parent) : QWidget(parent) {
|
|||
|
||||
void CueTrackWidget::setupUi() {
|
||||
QVBoxLayout *layout = new QVBoxLayout(this);
|
||||
|
||||
QSplitter *row = new QSplitter(Qt::Horizontal);
|
||||
|
||||
active = new QCheckBox(this);
|
||||
row->addWidget(active);
|
||||
|
||||
userNumberSpin = new QSpinBox(this);
|
||||
userNumberSpin->setRange(0, 1000);
|
||||
userNumberSpin->setRange(0, 100000);
|
||||
userNumberSpin->setToolTip("Cue user number");
|
||||
row->addWidget(userNumberSpin);
|
||||
|
||||
audioLayer = new QSpinBox(this);
|
||||
audioLayer->setRange(0, MAX_LAYERS);
|
||||
audioLayer->setToolTip("Audio Layer");
|
||||
row->addWidget(audioLayer);
|
||||
|
||||
nameEdit = new QLineEdit(this);
|
||||
nameEdit->setToolTip("Cue Name");
|
||||
row->addWidget(nameEdit);
|
||||
|
||||
descriptionEdit = new QLineEdit(this);
|
||||
descriptionEdit->setToolTip("Cue Notes");
|
||||
row->addWidget(descriptionEdit);
|
||||
|
||||
|
||||
filePathEdit = new QLineEdit(this);
|
||||
filePathEdit->setToolTip("File name");
|
||||
row->addWidget(filePathEdit);
|
||||
|
||||
layout->addWidget(row);
|
||||
|
||||
row = new QSplitter(Qt::Horizontal);
|
||||
volumeSpin = new QSpinBox(this);
|
||||
volumeSpin->setRange(0, 65535);
|
||||
|
||||
volumeSpin = new ClickableDoubleSpinBox(this);
|
||||
volumeSpin->setRange(0.0f, 100.0f);
|
||||
volumeSpin->setToolTip("Volume");
|
||||
volumeSpin->setValue(100);
|
||||
row->addWidget(volumeSpin);
|
||||
|
||||
bus1Spin = new QSpinBox(this);
|
||||
bus1Spin->setRange(0, 255);
|
||||
volumeSpin->setSpecialValueText("-inf");
|
||||
volumeSpin->setValue(75.0f);
|
||||
|
||||
bus1Spin = new ClickableDoubleSpinBox(this);
|
||||
bus1Spin->setRange(0.0f, 100.0f);
|
||||
bus1Spin->setToolTip("Bus 1");
|
||||
bus1Spin->setValue(255);
|
||||
row->addWidget(bus1Spin);
|
||||
|
||||
bus2Spin = new QSpinBox(this);
|
||||
bus2Spin->setRange(0, 255);
|
||||
bus1Spin->setSpecialValueText("-inf");
|
||||
bus1Spin->setValue(100.0f);
|
||||
|
||||
bus2Spin = new ClickableDoubleSpinBox(this);
|
||||
bus2Spin->setRange(0.0f, 100.0f);
|
||||
bus2Spin->setToolTip("Bus 2");
|
||||
bus2Spin->setValue(255);
|
||||
row->addWidget(bus2Spin);
|
||||
|
||||
panSpin = new QSpinBox(this);
|
||||
panSpin->setRange(0, 255);
|
||||
bus2Spin->setSpecialValueText("-inf");
|
||||
bus2Spin->setValue(100.0f);
|
||||
|
||||
panSpin = new ClickableDoubleSpinBox(this);
|
||||
panSpin->setRange(-1, 1);
|
||||
panSpin->setToolTip("Pan");
|
||||
panSpin->setValue(128);
|
||||
row->addWidget(panSpin);
|
||||
|
||||
pitchSpin = new QSpinBox(this);
|
||||
pitchSpin->setRange(0, 255);
|
||||
panSpin->setValue(0);
|
||||
|
||||
pitchSpin = new ClickableDoubleSpinBox(this);
|
||||
pitchSpin->setRange(0, 2);
|
||||
pitchSpin->setSpecialValueText("Stop");
|
||||
pitchSpin->setToolTip("Pitch");
|
||||
pitchSpin->setValue(128);
|
||||
row->addWidget(pitchSpin);
|
||||
|
||||
pitchSpin->setValue(1);
|
||||
|
||||
entryPointSpin = new QSpinBox(this);
|
||||
entryPointSpin->setRange(0, 255);
|
||||
entryPointSpin->setToolTip("Entry Point");
|
||||
row->addWidget(entryPointSpin);
|
||||
|
||||
|
||||
exitPointSpin = new QSpinBox(this);
|
||||
exitPointSpin->setRange(0, 255);
|
||||
exitPointSpin->setToolTip("Exit Point");
|
||||
exitPointSpin->setValue(255);
|
||||
row->addWidget(exitPointSpin);
|
||||
|
||||
layout->addWidget(row);
|
||||
|
||||
row = new QSplitter(Qt::Horizontal);
|
||||
|
||||
setupStatusCombo();
|
||||
statusCombo->setToolTip("Playback Status");
|
||||
row->addWidget(statusCombo);
|
||||
|
||||
fadeInSpin = new QSpinBox(this);
|
||||
row->addWidget(userNumberSpin);
|
||||
|
||||
fadeInSpin = new QSpinBox(this);
|
||||
fadeInSpin->setRange(0, 10000);
|
||||
fadeInSpin->setToolTip("Fade In Time");
|
||||
fadeInSpin->setValue(3);
|
||||
row->addWidget(fadeInSpin);
|
||||
|
||||
fadeOutSpin = new QSpinBox(this);
|
||||
fadeOutSpin->setRange(0, 10000);
|
||||
fadeOutSpin->setToolTip("Fade Out Time");
|
||||
fadeOutSpin->setValue(3);
|
||||
row->addWidget(fadeOutSpin);
|
||||
|
||||
waitInSpin = new QSpinBox(this);
|
||||
waitInSpin->setRange(0, 10000);
|
||||
waitInSpin->setToolTip("Wait In Time");
|
||||
row->addWidget(waitInSpin);
|
||||
|
||||
waitOutSpin = new QSpinBox(this);
|
||||
waitOutSpin->setRange(0, 10000);
|
||||
waitOutSpin->setToolTip("Wait Out Time");
|
||||
row->addWidget(waitOutSpin);
|
||||
|
||||
stopAtEndCheck = new QCheckBox(this);
|
||||
stopAtEndCheck->setToolTip("Halt");
|
||||
stopAtEndCheck->setChecked("True");
|
||||
row->addWidget(stopAtEndCheck);
|
||||
|
||||
editButton = new QPushButton("Edit", this);
|
||||
editButton->setToolTip("Edit");
|
||||
row->addWidget(editButton);
|
||||
connect(editButton, &QPushButton::clicked, this, &CueTrackWidget::editButtonClicked);
|
||||
|
||||
layout->setSpacing(0);
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
layout->addWidget(row);
|
||||
|
||||
setLayout(layout);
|
||||
setStyle(false);
|
||||
}
|
||||
|
||||
QWidget *CueTrackWidget::createHeader()
|
||||
{
|
||||
QWidget *ret = new QWidget();
|
||||
void CueTrackWidget::setStyle(bool highlight) {
|
||||
QString style;
|
||||
|
||||
auto layout = new QHBoxLayout(this);
|
||||
QLabel *l = new QLabel("Cue Number");
|
||||
layout->addWidget(l);
|
||||
l = new QLabel("File Path");
|
||||
layout->addWidget(l);
|
||||
l = new QLabel("Volume");
|
||||
layout->addWidget(l);
|
||||
l = new QLabel("Bus 1");
|
||||
layout->addWidget(l);
|
||||
l = new QLabel("Bus 2");
|
||||
layout->addWidget(l);
|
||||
l = new QLabel("Pan");
|
||||
layout->addWidget(l);
|
||||
l = new QLabel("Pitch");
|
||||
layout->addWidget(l);
|
||||
l = new QLabel("Playback Status");
|
||||
layout->addWidget(l);
|
||||
l = new QLabel("Fade In");
|
||||
layout->addWidget(l);
|
||||
l = new QLabel("Fade Out");
|
||||
layout->addWidget(l);
|
||||
l = new QLabel("Wait In");
|
||||
layout->addWidget(l);
|
||||
l = new QLabel("Wait Out ");
|
||||
layout->addWidget(l);
|
||||
l = new QLabel("Halt");
|
||||
layout->addWidget(l);
|
||||
l = new QLabel("Name");
|
||||
layout->addWidget(l);
|
||||
l = new QLabel("Notes");
|
||||
layout->addWidget(l);
|
||||
l = new QLabel("Entry Point");
|
||||
layout->addWidget(l);
|
||||
l = new QLabel("Exit Point");
|
||||
layout->addWidget(l);
|
||||
ret->setLayout(layout);
|
||||
return ret;
|
||||
style.append("margin: 1px;");
|
||||
if (highlight)
|
||||
style.append("background-color: #e8e0f8;");
|
||||
else
|
||||
style.append("background-color: #b9b8a7;");
|
||||
this->setStyleSheet(style);
|
||||
}
|
||||
|
||||
void CueTrackWidget::setupStatusCombo() {
|
||||
|
@ -208,3 +172,11 @@ CueTrack CueTrackWidget::saveCueTrack() const {
|
|||
cueTrack.status = static_cast<Status>(statusCombo->currentData().toInt());
|
||||
return cueTrack;
|
||||
}
|
||||
|
||||
void CueTrackWidget::editButtonClicked() {
|
||||
EditCueTrackWidget editor;
|
||||
editor.loadCueTrack(saveCueTrack());
|
||||
if (editor.exec() == QDialog::Accepted) {
|
||||
loadCueTrack(editor.saveCueTrack());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,24 +8,23 @@
|
|||
#include <QFormLayout>
|
||||
#include <QCheckBox>
|
||||
#include <QLabel>
|
||||
#include <QPushButton>
|
||||
#include <QDialog>
|
||||
#include "defines.h"
|
||||
#include "clickabledoublespinbox.h"
|
||||
|
||||
class CueTrackWidget : public QWidget {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
int audioLayer = 0;
|
||||
|
||||
explicit CueTrackWidget(QWidget *parent = nullptr);
|
||||
CueTrack saveCueTrack() const;
|
||||
void loadCueTrack(const CueTrack &cueTrack);
|
||||
QWidget *createHeader();
|
||||
|
||||
int getVolume() const { return volumeSpin->value(); }
|
||||
int getPan() const { return panSpin->value(); }
|
||||
int getPitch() const { return pitchSpin->value(); }
|
||||
int getBus1() const { return bus1Spin->value(); }
|
||||
int getBus2() const { return bus2Spin->value(); }
|
||||
int getVolume() const { return volumeSpin->value() * 2.55f * 255.0f; }
|
||||
int getPan() const { return (panSpin->value() * 128) + 128; }
|
||||
int getPitch() const { return pitchSpin->value() * 128; }
|
||||
int getBus1() const { return bus1Spin->value() * 2.55f * 255.0f; }
|
||||
int getBus2() const { return bus2Spin->value() * 2.55f * 255.0f; }
|
||||
Status getStatus() const { return static_cast<Status>(statusCombo->currentIndex()); }
|
||||
QString getFilePath() const { return filePathEdit->text(); }
|
||||
void setFilePath(QString text) const { filePathEdit->setText(text);};
|
||||
|
@ -39,18 +38,16 @@ public:
|
|||
int getUserNumber() const { return userNumberSpin->value(); }
|
||||
int getEntryPoint() const { return entryPointSpin->value(); }
|
||||
int getExitPoint() const { return exitPointSpin->value(); }
|
||||
void highlight(bool highlight) {
|
||||
if (highlight) this->setStyleSheet("background-color: yellow;");
|
||||
else this->setStyleSheet("background-color: white;");
|
||||
}
|
||||
void setStyle(bool highlight);
|
||||
|
||||
QCheckBox* active;
|
||||
QSpinBox* audioLayer;
|
||||
QLineEdit* filePathEdit;
|
||||
QSpinBox* volumeSpin;
|
||||
QSpinBox* panSpin;
|
||||
QSpinBox* pitchSpin;
|
||||
QSpinBox* bus1Spin;
|
||||
QSpinBox* bus2Spin;
|
||||
ClickableDoubleSpinBox* volumeSpin;
|
||||
ClickableDoubleSpinBox* panSpin;
|
||||
ClickableDoubleSpinBox* pitchSpin;
|
||||
ClickableDoubleSpinBox* bus1Spin;
|
||||
ClickableDoubleSpinBox* bus2Spin;
|
||||
QComboBox* statusCombo;
|
||||
QSpinBox* fadeOutSpin;
|
||||
QSpinBox* fadeInSpin;
|
||||
|
@ -62,10 +59,171 @@ public:
|
|||
QSpinBox* userNumberSpin;
|
||||
QSpinBox* entryPointSpin;
|
||||
QSpinBox* exitPointSpin;
|
||||
QPushButton* editButton;
|
||||
|
||||
|
||||
private:
|
||||
void setupUi();
|
||||
void setupStatusCombo();
|
||||
|
||||
private slots:
|
||||
void editButtonClicked();
|
||||
};
|
||||
|
||||
// Definición de la clase EditCueTrackWidget
|
||||
#include <QFileDialog>
|
||||
#include "settings.h"
|
||||
|
||||
class EditCueTrackWidget : public QDialog {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit EditCueTrackWidget(QWidget *parent = nullptr);
|
||||
|
||||
void loadCueTrack(const CueTrack &cueTrack);
|
||||
CueTrack saveCueTrack() const;
|
||||
|
||||
private:
|
||||
void setupUi();
|
||||
void connectSignals();
|
||||
void onBrowseButtonClicked();
|
||||
|
||||
QLineEdit *filePathEdit;
|
||||
QDoubleSpinBox *volumeSpin;
|
||||
QDoubleSpinBox *panSpin;
|
||||
QDoubleSpinBox *pitchSpin;
|
||||
QDoubleSpinBox *bus1Spin;
|
||||
QDoubleSpinBox *bus2Spin;
|
||||
QSpinBox *fadeInSpin;
|
||||
QSpinBox *fadeOutSpin;
|
||||
QSpinBox *waitInSpin;
|
||||
QSpinBox *waitOutSpin;
|
||||
QCheckBox *stopAtEndCheck;
|
||||
QLineEdit *nameEdit;
|
||||
QLineEdit *descriptionEdit;
|
||||
QSpinBox *userNumberSpin;
|
||||
QSpinBox *entryPointSpin;
|
||||
QSpinBox *exitPointSpin;
|
||||
QComboBox *statusCombo;
|
||||
QPushButton *browseButton;
|
||||
QPushButton *saveButton;
|
||||
QPushButton *cancelButton;
|
||||
|
||||
CueTrack currentCueTrack;
|
||||
};
|
||||
|
||||
EditCueTrackWidget::EditCueTrackWidget(QWidget *parent) : QDialog(parent) {
|
||||
setupUi();
|
||||
connectSignals();
|
||||
}
|
||||
|
||||
void EditCueTrackWidget::setupUi() {
|
||||
filePathEdit = new QLineEdit(this);
|
||||
volumeSpin = new QDoubleSpinBox(this);
|
||||
panSpin = new QDoubleSpinBox(this);
|
||||
pitchSpin = new QDoubleSpinBox(this);
|
||||
bus1Spin = new QDoubleSpinBox(this);
|
||||
bus2Spin = new QDoubleSpinBox(this);
|
||||
fadeInSpin = new QSpinBox(this);
|
||||
fadeOutSpin = new QSpinBox(this);
|
||||
waitInSpin = new QSpinBox(this);
|
||||
waitOutSpin = new QSpinBox(this);
|
||||
stopAtEndCheck = new QCheckBox(this);
|
||||
nameEdit = new QLineEdit(this);
|
||||
descriptionEdit = new QLineEdit(this);
|
||||
userNumberSpin = new QSpinBox(this);
|
||||
entryPointSpin = new QSpinBox(this);
|
||||
exitPointSpin = new QSpinBox(this);
|
||||
statusCombo = new QComboBox(this);
|
||||
statusCombo->addItem("Stopped");
|
||||
statusCombo->addItem("Paused");
|
||||
statusCombo->addItem("PlayingOnce");
|
||||
statusCombo->addItem("PlayingLoop");
|
||||
statusCombo->addItem("Iddle");
|
||||
statusCombo->addItem("PlayingFolder");
|
||||
statusCombo->addItem("PlayingFolderLoop");
|
||||
statusCombo->addItem("PlayingFolderRandom");
|
||||
|
||||
browseButton = new QPushButton("Browse...", this);
|
||||
saveButton = new QPushButton("Save", this);
|
||||
cancelButton = new QPushButton("Cancel", this);
|
||||
|
||||
QFormLayout *layout = new QFormLayout(this);
|
||||
layout->addRow("User Number", userNumberSpin);
|
||||
layout->addRow("Name", nameEdit);
|
||||
layout->addRow("File Path", filePathEdit);
|
||||
layout->addRow(browseButton);
|
||||
layout->addRow("Status", statusCombo);
|
||||
layout->addRow("Fade In", fadeInSpin);
|
||||
layout->addRow("Fade Out", fadeOutSpin);
|
||||
layout->addRow("Wait In", waitInSpin);
|
||||
layout->addRow("Wait Out", waitOutSpin);
|
||||
layout->addRow("Stop At End", stopAtEndCheck);
|
||||
layout->addRow("Volume", volumeSpin);
|
||||
layout->addRow("Bus 1", bus1Spin);
|
||||
layout->addRow("Bus 2", bus2Spin);
|
||||
layout->addRow("Pan", panSpin);
|
||||
layout->addRow("Pitch", pitchSpin);
|
||||
layout->addRow("Entry Point", entryPointSpin);
|
||||
layout->addRow("Exit Point", exitPointSpin);
|
||||
layout->addRow("Description", descriptionEdit);
|
||||
layout->addRow(saveButton);
|
||||
layout->addRow(cancelButton);
|
||||
}
|
||||
|
||||
void EditCueTrackWidget::loadCueTrack(const CueTrack &cueTrack) {
|
||||
filePathEdit->setText(cueTrack.filePath.data());
|
||||
volumeSpin->setValue(cueTrack.volume);
|
||||
panSpin->setValue(cueTrack.pan);
|
||||
pitchSpin->setValue(cueTrack.pitch);
|
||||
bus1Spin->setValue(cueTrack.bus1);
|
||||
bus2Spin->setValue(cueTrack.bus2);
|
||||
fadeInSpin->setValue(cueTrack.fadeIn);
|
||||
fadeOutSpin->setValue(cueTrack.fadeOut);
|
||||
waitInSpin->setValue(cueTrack.waitIn);
|
||||
waitOutSpin->setValue(cueTrack.waitOut);
|
||||
stopAtEndCheck->setChecked(cueTrack.stopAtEnd);
|
||||
nameEdit->setText(cueTrack.name.data());
|
||||
descriptionEdit->setText(cueTrack.description.data());
|
||||
userNumberSpin->setValue(cueTrack.userNumber);
|
||||
entryPointSpin->setValue(cueTrack.entryPoint);
|
||||
exitPointSpin->setValue(cueTrack.exitPoint);
|
||||
statusCombo->setCurrentIndex(statusCombo->findText(statusToString(cueTrack.status)));
|
||||
}
|
||||
|
||||
CueTrack EditCueTrackWidget::saveCueTrack() const {
|
||||
CueTrack cueTrack;
|
||||
cueTrack.filePath.append(filePathEdit->text().toUtf8().constData());
|
||||
cueTrack.volume = volumeSpin->value();
|
||||
cueTrack.pan = panSpin->value();
|
||||
cueTrack.pitch = pitchSpin->value();
|
||||
cueTrack.name.append(nameEdit->text().toUtf8().constData());
|
||||
cueTrack.description.append(descriptionEdit->text().toUtf8().constData());
|
||||
cueTrack.status = static_cast<Status>(statusCombo->currentIndex());
|
||||
cueTrack.fadeIn = fadeInSpin->value();
|
||||
cueTrack.fadeOut = fadeOutSpin->value();
|
||||
cueTrack.waitIn = waitInSpin->value();
|
||||
cueTrack.waitOut = waitOutSpin->value();
|
||||
cueTrack.stopAtEnd = stopAtEndCheck->isChecked();
|
||||
cueTrack.userNumber = userNumberSpin->value();
|
||||
cueTrack.entryPoint = entryPointSpin->value();
|
||||
cueTrack.exitPoint = exitPointSpin->value();
|
||||
return cueTrack;
|
||||
}
|
||||
|
||||
void EditCueTrackWidget::connectSignals() {
|
||||
connect(saveButton, &QPushButton::clicked, this, &EditCueTrackWidget::accept);
|
||||
connect(cancelButton, &QPushButton::clicked, this, &EditCueTrackWidget::reject);
|
||||
connect(browseButton, &QPushButton::clicked, this, &EditCueTrackWidget::onBrowseButtonClicked);
|
||||
}
|
||||
|
||||
void EditCueTrackWidget::onBrowseButtonClicked() {
|
||||
QString filePath = QFileDialog::getOpenFileName(this, tr("Select File"), Settings::getInstance()->getPathMedia(), tr("Audio Files (*.mp3 *.wav *.flac)"));
|
||||
if (!filePath.isEmpty()) {
|
||||
filePathEdit->setText(filePath);
|
||||
QDir dir;
|
||||
Settings::getInstance()->setPathMedia(dir.absoluteFilePath(filePath));
|
||||
}
|
||||
}
|
||||
|
||||
#endif // CUETRACKWIDGET_H
|
||||
|
|
|
@ -47,6 +47,14 @@ FilterBankWidget::FilterBankWidget(QWidget *parent)
|
|||
} else {
|
||||
fb[j]->setRange(-50, 50);
|
||||
}
|
||||
fb[j]->setFocusPolicy(Qt::NoFocus);
|
||||
fb[j]->setButtonSymbols(QAbstractSpinBox::NoButtons);
|
||||
fb[j]->setValue(-1);
|
||||
fb[j]->setDecimals(1);
|
||||
fb[j]->setAlignment(Qt::AlignHCenter);
|
||||
fb[j]->setContentsMargins(0, 0, 0, 0);
|
||||
fb[j]->setMaximumWidth(66);
|
||||
fb[j]->setMinimumWidth(25);
|
||||
filterLayout->insertWidget(j, fb[j]);
|
||||
}
|
||||
filterLayout->setSpacing(0);
|
||||
|
|
|
@ -8,18 +8,21 @@ ShowPlayer::ShowPlayer(QWidget *parent) :
|
|||
ui->setupUi(this);
|
||||
connect(ui->addCueButton, SIGNAL(clicked()), this, SLOT(onAddTrack()));
|
||||
connect(ui->goButton, SIGNAL(clicked()), this, SLOT(go()));
|
||||
currentTrackIndex = 0;
|
||||
filesLoaded = 0;
|
||||
currentStatus = Status::Iddle;
|
||||
for(int i = 0; i < MAX_LAYERS; i++)
|
||||
layersUsed[i] = -1;
|
||||
}
|
||||
|
||||
ShowPlayer::~ShowPlayer() {}
|
||||
|
||||
void ShowPlayer::onAddTrack() {
|
||||
TrackDialog dialog;
|
||||
dialog.show();
|
||||
if (dialog.exec() == QDialog::Accepted) {
|
||||
ui->cueListWidget->addCueTrackWidget(dialog.track);
|
||||
CueTrackWidget* track = new CueTrackWidget();
|
||||
EditCueTrackWidget editor;
|
||||
editor.loadCueTrack(track->saveCueTrack());
|
||||
if (editor.exec() == QDialog::Accepted) {
|
||||
track->loadCueTrack(editor.saveCueTrack());
|
||||
ui->cueListWidget->addCueTrackWidget(track);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -28,15 +31,25 @@ void ShowPlayer::go()
|
|||
CueTrackWidget* current = ui->cueListWidget->getSelectedTrack();
|
||||
if (!current)
|
||||
return;
|
||||
for (int i = 0; i < MAX_LAYERS; i++) {
|
||||
if (layersUsed[i] == -1) {
|
||||
layersUsed[i] = currentTrackIndex;
|
||||
current->audioLayer = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
updateTrackStateInEngine(currentTrackIndex, current->audioLayer);
|
||||
emit uiLoadMedia(current->audioLayer, current->getFilePath());
|
||||
emit uiPlaybackChanged(current->audioLayer, current->getStatus());
|
||||
if (!current->getFilePath().isEmpty())
|
||||
{
|
||||
for (int i = 0; i < MAX_LAYERS; i++) {
|
||||
if (layersUsed[i] == -1) {
|
||||
layersUsed[i] = current->userNumberSpin->value();
|
||||
break;
|
||||
}
|
||||
}
|
||||
emit uiLoadMedia(current->audioLayer->value(), current->getFilePath());
|
||||
}
|
||||
updateTrackStateInEngine(current);
|
||||
emit uiPlaybackChanged(current->audioLayer->value(), current->getStatus());
|
||||
filesLoaded++;
|
||||
}
|
||||
|
||||
void ShowPlayer::updateTrackStateInEngine(CueTrackWidget *track) {
|
||||
emit uiSliderChanged(track->audioLayer->value(), Slider::Volume, track->getVolume());
|
||||
emit uiSliderChanged(track->audioLayer->value(), Slider::Pan, track->getPan());
|
||||
emit uiSliderChanged(track->audioLayer->value(), Slider::Pitch, track->getPitch());
|
||||
emit uiSliderChanged(track->audioLayer->value(), Slider::Bus1, track->getBus1());
|
||||
emit uiSliderChanged(track->audioLayer->value(), Slider::Bus2, track->getBus2());
|
||||
};
|
||||
|
|
|
@ -5,11 +5,13 @@
|
|||
#include <string>
|
||||
|
||||
#include <QDialog>
|
||||
#include <QFileDialog>
|
||||
|
||||
#include "defines.h"
|
||||
#include "cuetrackwidget.h"
|
||||
#include "cuetracklistwidget.h"
|
||||
#include "trackdialog.h"
|
||||
#include "settings.h"
|
||||
#include "ui_showplayer.h"
|
||||
|
||||
namespace Ui {
|
||||
|
@ -26,19 +28,11 @@ public:
|
|||
|
||||
private:
|
||||
Ui::ShowPlayer *ui;
|
||||
size_t currentTrackIndex;
|
||||
Status currentStatus = Status::Iddle;
|
||||
size_t filesLoaded = 0;
|
||||
int layersUsed[MAX_LAYERS] = { -1 };
|
||||
int layersUsed[MAX_LAYERS];
|
||||
|
||||
void updateTrackStateInEngine(size_t index, int layer) {
|
||||
CueTrackWidget *track = ui->cueListWidget->getTrackAtIndex(index);
|
||||
emit uiSliderChanged(layer, Slider::Volume, track->getVolume());
|
||||
emit uiSliderChanged(layer, Slider::Pan, track->getPan());
|
||||
emit uiSliderChanged(layer, Slider::Pitch, track->getPitch());
|
||||
emit uiSliderChanged(layer, Slider::Bus1, track->getBus1());
|
||||
emit uiSliderChanged(layer, Slider::Bus2, track->getBus2());
|
||||
};
|
||||
void updateTrackStateInEngine(CueTrackWidget *track);
|
||||
|
||||
private slots:
|
||||
void onAddTrack();
|
||||
|
|
|
@ -12,25 +12,27 @@ void TrackDialog::setupUi() {
|
|||
browseButton = new QPushButton(tr("Buscar..."), this);
|
||||
|
||||
QFormLayout *layout = new QFormLayout(this);
|
||||
track = new CueTrack();
|
||||
layout->addRow(tr("&User number"), track->userNumber);
|
||||
layout->addRow(tr("&Name"), track->name);
|
||||
layout->addRow(tr("&Description"), track->description);
|
||||
layout->addRow(tr("&File"), track->filePath);
|
||||
layout->addRow(tr("&Browse files"), browseButton);
|
||||
layout->addRow(tr("&Status"), track->status);
|
||||
layout->addRow(tr("&Fade in"), track->fadeIn);
|
||||
layout->addRow(tr("Fade &Out"), track->fadeOut);
|
||||
layout->addRow(tr("&Wait In"), track->waitIn);
|
||||
layout->addRow(tr("&Wait Ou&t"), track->waitOut);
|
||||
layout->addRow(tr("Sto&p at end"), track->stopAtEnd);
|
||||
layout->addRow(tr("&Volume"), track->volume);
|
||||
layout->addRow(tr("pan"), track->pan);
|
||||
layout->addRow(tr("pitch"), track->pitch);
|
||||
layout->addRow(tr("Bus&1"), track->bus1);
|
||||
layout->addRow(tr("Bus&2"), track->bus2);
|
||||
layout->addRow(tr("&Entry Point"), track->entryPoint);
|
||||
layout->addRow(tr("E&xit Point"), track->exitPoint);
|
||||
//track = new CueTrackWidget();
|
||||
//track->editButtonClicked();
|
||||
/* layout->addRow(tr("&User number"), track->userNumberSpin);
|
||||
layout->addRow(tr("&Name"), track->nameEdit);
|
||||
layout->addRow(tr("&Description"), track->descriptionEdit);
|
||||
layout->addRow(tr("&File"), track->filePathEdit);
|
||||
layout->addRow(tr("&Status"), track->statusCombo);
|
||||
layout->addRow(tr("&Fade in"), track->fadeInSpin);
|
||||
layout->addRow(tr("Fade &Out"), track->fadeOutSpin);
|
||||
layout->addRow(tr("&Wait In"), track->waitInSpin);
|
||||
layout->addRow(tr("&Wait Ou&t"), track->waitOutSpin);
|
||||
layout->addRow(tr("Sto&p at end"), track->stopAtEndCheck);
|
||||
layout->addRow(tr("&Volume"), track->volumeSpin);
|
||||
layout->addRow(tr("pan"), track->panSpin);
|
||||
layout->addRow(tr("pitch"), track->pitchSpin);
|
||||
layout->addRow(tr("Bus&1"), track->bus1Spin);
|
||||
layout->addRow(tr("Bus&2"), track->bus2Spin);
|
||||
layout->addRow(tr("&Entry Point"), track->entryPointSpin);
|
||||
layout->addRow(tr("E&xit Point"), track->exitPointSpin);*/
|
||||
//layout->addRow(tr("&Browse files"), browseButton);
|
||||
//layout->addWidget(track);
|
||||
layout->addWidget(okButton);
|
||||
layout->addWidget(cancelButton);
|
||||
setLayout(layout);
|
||||
|
@ -39,7 +41,7 @@ void TrackDialog::setupUi() {
|
|||
void TrackDialog::connectSignals() {
|
||||
connect(okButton, &QPushButton::clicked, this, &TrackDialog::accept);
|
||||
connect(cancelButton, &QPushButton::clicked, this, &TrackDialog::reject);
|
||||
connect(browseButton, &QPushButton::clicked, this, &TrackDialog::browseFiles);
|
||||
//connect(browseButton, &QPushButton::clicked, this, &TrackDialog::browseFiles);
|
||||
}
|
||||
|
||||
QString TrackDialog::browseFiles() const {
|
||||
|
@ -50,7 +52,7 @@ QString TrackDialog::browseFiles() const {
|
|||
tr("Archivos de audio (*.mp3 *.wav *.flac);;Todos los archivos (*)")
|
||||
);
|
||||
if (!filePath.isEmpty()) {
|
||||
track->setFilePath(filePath);
|
||||
track->setFilePath(filePath);
|
||||
QDir dir;
|
||||
Settings::getInstance()->setPathMedia(dir.absoluteFilePath(filePath));
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ class TrackDialog : public QDialog {
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
CueTrack *track;
|
||||
CueTrackWidget *track;
|
||||
|
||||
explicit TrackDialog(QWidget *parent = nullptr);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue