Fixed sigsev on exit

On AudioMotor destructor
This commit is contained in:
santi 2014-07-24 14:29:04 +02:00
parent 061f58aee4
commit 747f5d4af6
4 changed files with 30 additions and 29 deletions

View file

@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<dmxSettings fileVersion="1" layersNumber="3" path="/home/santi/lo_que_vio_el_mayordomo/sound" universeNumber="1"> <dmxSettings fileVersion="1" layersNumber="3" path="/home/santi/audio" universeNumber="1">
<layer0 dmx="1" universe="1" /> <layer0 dmx="1" universe="1" />
<layer1 dmx="21" universe="1" /> <layer1 dmx="21" universe="1" />
<layer2 dmx="41" universe="1" /> <layer2 dmx="41" universe="1" />

View file

@ -98,7 +98,7 @@ void AudioMotor::close()
// disconnect(m_pd_audio, SIGNAL(readyReadStandardError()), this, SLOT(stdout())); // disconnect(m_pd_audio, SIGNAL(readyReadStandardError()), this, SLOT(stdout()));
disconnect(m_pd_audio, SIGNAL(finished(int)), this, SLOT(restartAudio())); disconnect(m_pd_audio, SIGNAL(finished(int)), this, SLOT(restartAudio()));
if (!m_pd_audio->waitForFinished(1000)) // if (!m_pd_audio->waitForFinished(1000))
m_pd_audio->terminate(); m_pd_audio->terminate();
@ -109,14 +109,14 @@ void AudioMotor::close()
// delete m_writePD; // delete m_writePD;
// m_writePD = NULL; // m_writePD = NULL;
} }
/* if (m_readPD != NULL) if (m_readPD != NULL)
{ {
disconnect(m_readPD, SIGNAL(newConnection()),this, SLOT(newPeer())); disconnect(m_readPD, SIGNAL(newConnection()),this, SLOT(newPeer()));
m_readPD->close(); m_readPD->close();
delete m_readPD; delete m_readPD;
m_readPD = NULL; m_readPD = NULL;
} }
/*
QFile socket(SOCKET); QFile socket(SOCKET);
if (socket.exists()) if (socket.exists())
{ {

View file

@ -57,22 +57,6 @@ libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
topWidget->setWidget(amw); topWidget->setWidget(amw);
addDockWidget(Qt::TopDockWidgetArea, topWidget); addDockWidget(Qt::TopDockWidgetArea, topWidget);
// Parse the command line options
if (args.contains("-gui"))
{
qDebug()<< "libremediaserver Constructor option GUI detected";
AudioMotor::getInstance()->setGui(true);
textEdit->append("Pure Data GUI's will be shown");
} else { AudioMotor::getInstance()->setGui(false); }
connect(AudioMotor::getInstance(), SIGNAL(toTerminal(QString)),
this, SLOT(toTerminal(QString)));
if (args.contains("-log"))
{
textEdit->append("Logging to file");
}
// Conectamos los menus // Conectamos los menus
connect(ui.actionOpen_conf, SIGNAL(triggered()), this, SLOT(openFile())); connect(ui.actionOpen_conf, SIGNAL(triggered()), this, SLOT(openFile()));
connect(ui.actionSave_conf, SIGNAL(triggered()), this, SLOT(saveFile())); connect(ui.actionSave_conf, SIGNAL(triggered()), this, SLOT(saveFile()));
@ -96,11 +80,31 @@ libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
ola, SLOT( setDMXConf(dmxSetting) ) ); ola, SLOT( setDMXConf(dmxSetting) ) );
// Lee la configuración por defecto // Lee la configuración por defecto
while (!set->readDefaultFile()) { if (!set->readDefaultFile()) {
// Dar la oportunidad de cargar otro fichero de configuración // Dar la oportunidad de cargar otro fichero de configuración
// Crear el fichero por defecto. // Crear el fichero por defecto.
} }
// Parse the command line options
if (args.contains("-gui"))
{
qDebug()<< "libremediaserver Constructor option GUI detected";
AudioMotor::getInstance()->setGui(true);
textEdit->append("Pure Data GUI's will be shown");
} else { AudioMotor::getInstance()->setGui(false); }
connect(AudioMotor::getInstance(), SIGNAL(toTerminal(QString)),
this, SLOT(toTerminal(QString)));
if (args.contains("-log"))
{
textEdit->append("Logging to file");
}
// Iniciamos Pure Data // Iniciamos Pure Data
connect(AudioMotor::getInstance(), SIGNAL(loadbang()),
this, SLOT (loadbang()));
AudioMotor::getInstance()->init(); AudioMotor::getInstance()->init();
connect(AudioMotor::getInstance(), SIGNAL(mediaLoaded(int, QString, QString)), connect(AudioMotor::getInstance(), SIGNAL(mediaLoaded(int, QString, QString)),
@ -109,9 +113,6 @@ libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
connect(AudioMotor::getInstance(), SIGNAL(volChanged(int, int)), connect(AudioMotor::getInstance(), SIGNAL(volChanged(int, int)),
aw, SLOT(volChanged(int, int))); aw, SLOT(volChanged(int, int)));
connect(AudioMotor::getInstance(), SIGNAL(loadbang()),
this, SLOT (loadbang()));
connect(ola, SIGNAL( dmxOutput(int, int, int) ), connect(ola, SIGNAL( dmxOutput(int, int, int) ),
this, SLOT( dmxInput(int, int, int) ) ); this, SLOT( dmxInput(int, int, int) ) );
@ -128,13 +129,13 @@ libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
libreMediaServerAudio::~libreMediaServerAudio() libreMediaServerAudio::~libreMediaServerAudio()
{ {
// save_finish(); // save_finish();
delete MediaLibrary::getInstance(); // delete MediaLibrary::getInstance();
ola->stop(); ola->stop();
AudioMotor::getInstance()->close(); AudioMotor::getInstance()->close();
// qDebug() << "PD Audio restarts: " << m_startaudio; // qDebug() << "PD Audio restarts: " << m_startaudio;
qDebug() << QDate::currentDate() << QTime::currentTime(); qDebug() << QDate::currentDate() << QTime::currentTime();
qDebug() << "********************************************************************************"; qDebug() << "********************************************************************************";
return; // return;
} }
/////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////

View file

@ -14,10 +14,10 @@ MediaLibrary *MediaLibrary::getInstance() {
MediaLibrary::MediaLibrary(QObject *parent) : MediaLibrary::MediaLibrary(QObject *parent) :
QObject(parent) QObject(parent)
,m_media(new QList<MediaFolder>) // ,m_media(new QList<MediaFolder>)
, m_pathmedia() , m_pathmedia()
{ {
initMediaLibrary(); // initMediaLibrary();
qDebug("Init MediaLibrary"); qDebug("Init MediaLibrary");
} }
@ -32,7 +32,7 @@ void MediaLibrary::initMediaLibrary() {
qWarning(m_pathmedia.toAscii().constData()); qWarning(m_pathmedia.toAscii().constData());
return; return;
} }
// m_media = new QList<MediaFolder>; m_media = new QList<MediaFolder>;
dir.setFilter(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot); dir.setFilter(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot);
QFileInfoList filelist = dir.entryInfoList(); QFileInfoList filelist = dir.entryInfoList();
dir.setFilter(QDir::Files); dir.setFilter(QDir::Files);