working UI controls

This commit is contained in:
snt 2024-05-04 16:45:05 +02:00
parent 88704cd726
commit 5a7a82736f
10 changed files with 58 additions and 54 deletions

View file

@ -24,7 +24,6 @@ AudioLayerWidget::AudioLayerWidget(QWidget *parent, int layer):
"color: white;" "color: white;"
"background-color: black;" "background-color: black;"
); );
playback->addWidget(m_fileValue); playback->addWidget(m_fileValue);
playback->setSpacing(0); playback->setSpacing(0);
playback->setContentsMargins(0, 0, 0, 0); playback->setContentsMargins(0, 0, 0, 0);
@ -33,7 +32,7 @@ AudioLayerWidget::AudioLayerWidget(QWidget *parent, int layer):
m_suspendResumeButton = new QPushButton(this); m_suspendResumeButton = new QPushButton(this);
m_suspendResumeButton->setText(StatusStr[Status::Iddle]); m_suspendResumeButton->setText(StatusStr[Status::Iddle]);
//m_suspendResumeButton->setMaximumWidth(180); //m_suspendResumeButton->setMaximumWidth(180);
//connect(m_suspendResumeButton, SIGNAL(clicked()), SLOT(toggleSuspendResume())); connect(m_suspendResumeButton, SIGNAL(clicked()), SLOT(toggleSuspendResume()));
layout->addWidget(m_suspendResumeButton); layout->addWidget(m_suspendResumeButton);
m_progress = new QProgressBar(this); m_progress = new QProgressBar(this);
@ -47,19 +46,21 @@ AudioLayerWidget::AudioLayerWidget(QWidget *parent, int layer):
m_progressTime = new QTimeEdit; m_progressTime = new QTimeEdit;
m_progressTime->setToolTip("Current Time"); m_progressTime->setToolTip("Current Time");
m_progressTime->setObjectName("Current Time"); m_progressTime->setObjectName("Current Time");
m_progressTime->setDisplayFormat("h:mm:ss:zzz"); m_progressTime->setDisplayFormat("mm:ss:zz");
m_progressTime->setReadOnly(true); m_progressTime->setReadOnly(true);
m_progressTime->setButtonSymbols(QAbstractSpinBox::NoButtons); m_progressTime->setButtonSymbols(QAbstractSpinBox::NoButtons);
//m_progressTime->setMaximumWidth(80); m_progressTime->setMaximumWidth(75);
m_progressTime->setFocusPolicy(Qt::NoFocus); m_progressTime->setFocusPolicy(Qt::NoFocus);
m_progressTime->setAlignment(Qt::AlignHCenter);
m_totalTimeValue = new QTimeEdit; m_totalTimeValue = new QTimeEdit;
m_totalTimeValue->setObjectName("Track Length"); m_totalTimeValue->setObjectName("Track Length");
m_totalTimeValue->setToolTip("Track Length"); m_totalTimeValue->setToolTip("Track Length");
m_totalTimeValue->setDisplayFormat("h:mm:ss:zzz"); m_totalTimeValue->setDisplayFormat("mm:ss:zz");
m_totalTimeValue->setReadOnly(true); m_totalTimeValue->setReadOnly(true);
m_totalTimeValue->setButtonSymbols(QAbstractSpinBox::NoButtons); m_totalTimeValue->setButtonSymbols(QAbstractSpinBox::NoButtons);
//m_totalTimeValue->setMaximumWidth(80); m_totalTimeValue->setMaximumWidth(75);
m_totalTimeValue->setFocusPolicy(Qt::NoFocus); m_totalTimeValue->setFocusPolicy(Qt::NoFocus);
m_totalTimeValue->setAlignment(Qt::AlignHCenter);
QHBoxLayout *status = new QHBoxLayout; QHBoxLayout *status = new QHBoxLayout;
status->addWidget(m_progressTime); status->addWidget(m_progressTime);
status->addWidget(m_totalTimeValue); status->addWidget(m_totalTimeValue);
@ -67,15 +68,15 @@ AudioLayerWidget::AudioLayerWidget(QWidget *parent, int layer):
QHBoxLayout *volumeBox = new QHBoxLayout; QHBoxLayout *volumeBox = new QHBoxLayout;
m_volume = new SliderGroup("Vol", 0 , 100, 2, NULL); m_volume = new SliderGroup("Vol", 0 , 100, 2, NULL);
volumeBox->addWidget(m_volume); volumeBox->addWidget(m_volume);
connect(m_volume, SIGNAL(valueChanged(float)), this, SLOT(volumeChanged(float))); connect(m_volume, SIGNAL(valueChanged(int)), this, SLOT(volumeChanged(int)));
m_pan = new SliderGroup("Pan", 0 , 255, 0, NULL); m_pan = new SliderGroup("Pan", 0 , 255, 0, NULL);
volumeBox->addWidget(m_pan); volumeBox->addWidget(m_pan);
connect(m_pan, SIGNAL(valueChanged(float)), this, SLOT(panChanged(float))); connect(m_pan, SIGNAL(valueChanged(int)), this, SLOT(panChanged(int)));
m_pitch = new SliderGroup("Pitch", 0 , 255, 0, NULL); m_pitch = new SliderGroup("Pitch", 0 , 255, 0, NULL);
volumeBox->addWidget(m_pitch); volumeBox->addWidget(m_pitch);
volumeBox->setSpacing(0); volumeBox->setSpacing(0);
volumeBox->setContentsMargins(0, 0, 0, 0); volumeBox->setContentsMargins(0, 0, 0, 0);
connect(m_pitch, SIGNAL(valueChanged(float)), this, SLOT(pitchChanged(float))); connect(m_pitch, SIGNAL(valueChanged(int)), this, SLOT(pitchChanged(int)));
layout->addLayout(volumeBox); layout->addLayout(volumeBox);
layout->setAlignment(Qt::AlignHCenter); layout->setAlignment(Qt::AlignHCenter);
layout->setSpacing(0); layout->setSpacing(0);
@ -89,17 +90,17 @@ AudioLayerWidget::~AudioLayerWidget()
} }
// From UI. // From UI.
void AudioLayerWidget::volumeChanged(float value) void AudioLayerWidget::volumeChanged(int value)
{ {
emit(uiSliderChanged(m_layer, Slider::Volume, value)); emit(uiSliderChanged(m_layer, Slider::Volume, value));
} }
void AudioLayerWidget::panChanged(float value) void AudioLayerWidget::panChanged(int value)
{ {
emit(uiSliderChanged(m_layer, Slider::Pan, value)); emit(uiSliderChanged(m_layer, Slider::Pan, value));
} }
void AudioLayerWidget::pitchChanged(float value) void AudioLayerWidget::pitchChanged(int value)
{ {
emit(uiSliderChanged(m_layer, Slider::Pitch, value)); emit(uiSliderChanged(m_layer, Slider::Pitch, value));
} }

View file

@ -39,9 +39,9 @@ private:
public slots: public slots:
void toggleSuspendResume(); void toggleSuspendResume();
void volumeChanged(float vol); void volumeChanged(int vol);
void panChanged(float pan); void panChanged(int pan);
void pitchChanged(float pitch); void pitchChanged(int pitch);
void fileLoaded(QString file); void fileLoaded(QString file);
void durationChanged(float dur); void durationChanged(float dur);
void refreshUi(float progress); void refreshUi(float progress);

View file

@ -1,17 +1,18 @@
#include "audiowidget.h" #include "audiowidget.h"
AudioWidget::AudioWidget() : AudioWidget::AudioWidget(QWidget *parent) :
m_layout(new QHBoxLayout()) QWidget(parent)
, m_layout(new QHBoxLayout())
{ {
for (int i= 0; i < Settings::getInstance()->getLayersNumber(); i++ ) { for (int i= 0; i < Settings::getInstance()->getLayersNumber(); i++ ) {
AudioLayerWidget *alw = new AudioLayerWidget(this, i); AudioLayerWidget *alw = new AudioLayerWidget(this, i);
m_layout->insertWidget(i, alw); m_layout->insertWidget(i, alw);
connect(alw, SIGNAL(uiSliderChanged(int, Slider, int)), this, SLOT(uiSliderAction(int, Slider, int))); connect(alw, SIGNAL(uiSliderChanged(int, Slider, int)), this, SIGNAL(uiSliderChanged(int, Slider, int)));
connect(alw, SIGNAL(uiPlaybackChanged(int, Status)), this, SLOT(uiChangePlaybackStatus(int, Status))); connect(alw, SIGNAL(uiPlaybackChanged(int, Status)), this, SIGNAL(uiPlaybackChanged(int, Status)));
} }
m_layout->setSpacing(0); m_layout->setSpacing(0);
m_layout->setContentsMargins(0, 0, 0, 0); m_layout->setContentsMargins(1, 1, 1, 1);
setLayout(m_layout); setLayout(m_layout);
} }
@ -49,22 +50,12 @@ void AudioWidget::cursorChanged(int layer, float cursor)
AudioLayerWidget *alw = dynamic_cast<AudioLayerWidget *>(item->widget()); AudioLayerWidget *alw = dynamic_cast<AudioLayerWidget *>(item->widget());
alw->refreshUi(cursor); alw->refreshUi(cursor);
} }
/*
void AudioWidget::uiSliderAction(int layer, Slider s, int value) void AudioWidget::uiSliderAction(int layer, Slider s, float value)
{ {
switch (s){ emit uiSliderChanged(layer, s, value);
case Slider::Volume:
emit uiVolChanged(layer, value);
break;
case Slider::Pan:
emit uiPanChanged(layer, value);
break;
case Slider::Pitch:
emit uiPitchChanged(layer, value);
break;
}
} }
void AudioWidget::uiChangePlaybackStatus(int layer, Status s) { void AudioWidget::uiChangePlaybackStatus(int layer, Status s) {
emit uiPlaybackChanged(layer, s); emit uiPlaybackChanged(layer, s);
} }*/

View file

@ -13,7 +13,7 @@ class AudioWidget : public QWidget
Q_OBJECT Q_OBJECT
public: public:
AudioWidget(); AudioWidget(QWidget *parent = nullptr);
void mediaLoaded(int layer, QString media, float duration); void mediaLoaded(int layer, QString media, float duration);
void volChanged(int layer, float vol); void volChanged(int layer, float vol);
void panChanged(int layer, int pan); void panChanged(int layer, int pan);
@ -21,18 +21,14 @@ public:
void playbackChanged(int layer, Status status); void playbackChanged(int layer, Status status);
void cursorChanged(int layer, float cursor); void cursorChanged(int layer, float cursor);
QHBoxLayout *m_layout; QHBoxLayout *m_layout;
/*
public slots: public slots:
void uiSliderAction(int layer, Slider s, int value); void uiSliderAction(int layer, Slider s, float value);
void uiChangePlaybackStatus(int layer, Status s); void uiChangePlaybackStatus(int layer, Status s);
*/
signals: signals:
void uiMediaLoaded(int layer, QString media ); void uiPlaybackChanged(int layer, Status s);
void uiVolChanged(int layer, float vol); void uiSliderChanged(int layer, Slider s, int vol);
void uiPanChanged(int layer, int pan);
void uiPitchChanged(int layer, int pitch);
void uiPlaybackChanged(int layer, Status status);
void uiEntryPointChanged(int layer, int cursor);
}; };
#endif // AUDIOWIDGET_H #endif // AUDIOWIDGET_H

View file

@ -26,7 +26,7 @@ libreMediaServerAudioUi::libreMediaServerAudioUi(QWidget *parent)
{ {
ui.setupUi(this); ui.setupUi(this);
this->setWindowTitle(VERSION); this->setWindowTitle(VERSION);
m_aw = new AudioWidget; m_aw = new AudioWidget(this);
setCentralWidget(m_aw); setCentralWidget(m_aw);
m_dmxWidget = new dmxWidget(this); m_dmxWidget = new dmxWidget(this);
QDockWidget *topWidget = new QDockWidget(tr("Master"), this); QDockWidget *topWidget = new QDockWidget(tr("Master"), this);

View file

@ -134,6 +134,28 @@ void libreMediaServerAudio::setUi(libreMediaServerAudioUi *lmsUi)
{ {
m_lmsUi = lmsUi; m_lmsUi = lmsUi;
connect(m_ola, SIGNAL(universeReceived(int)), m_lmsUi->m_dmxWidget, SLOT(updateWatchDMX(int))); connect(m_ola, SIGNAL(universeReceived(int)), m_lmsUi->m_dmxWidget, SLOT(updateWatchDMX(int)));
connect(m_lmsUi->m_aw, SIGNAL(uiSliderChanged(int, Slider, int)), this, SLOT(uiSliderChanged(int, Slider, int)));
connect(m_lmsUi->m_aw, SIGNAL(uiPlaybackChanged(int, Status)), this, SLOT(uiPlaybackChanged(int, Status)));
}; };
void libreMediaServerAudio::uiSliderChanged(int layer, Slider s, int value)
{
switch (s){
case Slider::Volume:
m_mae.volChanged(layer, float((value / 100.0f)));
break;
case Slider::Pan:
m_mae.panChanged(layer, value);
break;
case Slider::Pitch:
m_mae.pitchChanged(layer, value);
break;
}
}
void libreMediaServerAudio::uiPlaybackChanged(int layer, Status s)
{
m_mae.playbackChanged(layer, s);
}
#endif #endif

View file

@ -54,6 +54,8 @@ private slots:
void dmxInput(int layer, int channel, int value); void dmxInput(int layer, int channel, int value);
#ifndef NOGUI #ifndef NOGUI
void refreshUi(); void refreshUi();
void uiSliderChanged(int layer, Slider s, int value);
void uiPlaybackChanged(int layer, Status s);
#endif #endif
}; };

View file

@ -27,12 +27,6 @@ class MediaLibrary : public QObject
public: public:
MediaLibrary(QObject *parent = 0); MediaLibrary(QObject *parent = 0);
/**
* @brief request a new file from the media library
* @param int folder - the folder required
* @param int layer - file required
* @return QString the file required with full path
*/
QString requestNewFile(int folder, int layer); QString requestNewFile(int folder, int layer);
void initMediaLibrary(); void initMediaLibrary();

View file

@ -52,8 +52,6 @@ SliderGroup::SliderGroup(QString name,
void SliderGroup::sliderValueChanged(int value) void SliderGroup::sliderValueChanged(int value)
{ {
valueBox->setValue(value); valueBox->setValue(value);
if (valueBox->decimals() > 1)
value /= 100.0f;
emit valueChanged(value); emit valueChanged(value);
}; };

View file

@ -18,7 +18,7 @@ public:
QWidget *parent = nullptr); QWidget *parent = nullptr);
signals: signals:
void valueChanged(float value); void valueChanged(int value);
public slots: public slots:
void setValue(float value); void setValue(float value);