From 8f321b9d6949cf111792c95242bbf0aca7fd0c47 Mon Sep 17 00:00:00 2001 From: snt Date: Wed, 15 May 2024 02:21:30 +0200 Subject: [PATCH] =?UTF-8?q?fix=20sigsev=20cuando=20se=20pincha=20en=20el?= =?UTF-8?q?=20bot=C3=B3n=20de=20play/pause?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/audiolayerwidget.cpp | 5 +++-- src/audiolayerwidget.h | 1 + src/defines.h | 20 ++++++++++++++++++-- src/libremediaserver-audio.cpp | 4 ++-- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/audiolayerwidget.cpp b/src/audiolayerwidget.cpp index 2655938..bd9d371 100644 --- a/src/audiolayerwidget.cpp +++ b/src/audiolayerwidget.cpp @@ -3,6 +3,7 @@ AudioLayerWidget::AudioLayerWidget(QWidget *parent, int layer): QWidget(parent) + , m_oldStatus(Status::PlayingLoop) , m_layer(layer) , m_suspendResumeButton(0) { @@ -32,7 +33,7 @@ AudioLayerWidget::AudioLayerWidget(QWidget *parent, int layer): layout->addLayout(playback); m_suspendResumeButton = new QPushButton(this); - m_suspendResumeButton->setText(StatusStr[Status::Iddle]); + m_suspendResumeButton->setText(statusToString(Status::Iddle)); connect(m_suspendResumeButton, SIGNAL(clicked()), SLOT(toggleSuspendResume())); layout->addWidget(m_suspendResumeButton); @@ -180,7 +181,7 @@ void AudioLayerWidget::setPlaybackStatus(Status s) { m_suspendResumeButton->blockSignals(true); m_status = s; - m_suspendResumeButton->setText(StatusStr[s]); + m_suspendResumeButton->setText(statusToString(s)); m_suspendResumeButton->blockSignals(false); } diff --git a/src/audiolayerwidget.h b/src/audiolayerwidget.h index cae18d4..51c1203 100644 --- a/src/audiolayerwidget.h +++ b/src/audiolayerwidget.h @@ -11,6 +11,7 @@ #include "clickablelabel.h" #include "settings.h" + class AudioLayerWidget : public QWidget { Q_OBJECT diff --git a/src/defines.h b/src/defines.h index a885485..b4560a8 100644 --- a/src/defines.h +++ b/src/defines.h @@ -17,7 +17,7 @@ struct dmxSetting { int audioDevice; }; -enum Status +enum class Status { Stopped, Paused, @@ -29,6 +29,22 @@ enum Status PlayingFolderRandom }; +constexpr const char* statusToString(Status e) noexcept +{ + switch (e) + { + case Status::Stopped: return "Stop"; + case Status::Paused: return "Paused"; + case Status::PlayingOnce: return "Play 1"; + case Status::PlayingLoop: return "Play Loop"; + case Status::Iddle: return "Iddle"; + case Status::PlayingFolder: return "Play Folder"; + case Status::PlayingFolderLoop: return "Play Folder Loop"; + case Status::PlayingFolderRandom: return "Playing Folder Random"; + default: return "--++--"; + } +} +/* static const char* StatusStr[] = { "Stop", @@ -40,7 +56,7 @@ static const char* StatusStr[] = "Play Folder Loop", "Play Folder Rand", 0x0 -}; +};*/ enum Slider { diff --git a/src/libremediaserver-audio.cpp b/src/libremediaserver-audio.cpp index 07ab9a8..9366935 100644 --- a/src/libremediaserver-audio.cpp +++ b/src/libremediaserver-audio.cpp @@ -132,7 +132,7 @@ void libreMediaServerAudio::dmxInput(int layer, int channel, int value) s = Status::PlayingFolderRandom; m_mae.playbackChanged(layer, s); m_currentStatus[layer] = s; - qInfo() << "Layer" << layer << StatusStr[s]; + qInfo() << "Layer" << layer << statusToString(s); #ifndef NOGUI if (m_ui) { m_lmsUi->m_aw->playbackChanged(layer, s); @@ -253,7 +253,7 @@ void libreMediaServerAudio::uiPlaybackChanged(int layer, Status s) if (result == MA_SUCCESS) { m_currentStatus[layer] = s; } else { - qWarning() << "ui playback change error" << result << "status" << s << "layer" << layer; + qWarning() << "ui playback change error " << result << " status " << statusToString(s) << "layer" << layer; } }