fix sigsev cuando se pincha en el botón de play/pause
This commit is contained in:
parent
7bc339dfe3
commit
8f321b9d69
4 changed files with 24 additions and 6 deletions
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "clickablelabel.h"
|
||||
#include "settings.h"
|
||||
|
||||
|
||||
class AudioLayerWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue