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'?>
<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" />
<layer1 dmx="21" 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(finished(int)), this, SLOT(restartAudio()));
if (!m_pd_audio->waitForFinished(1000))
// if (!m_pd_audio->waitForFinished(1000))
m_pd_audio->terminate();
@ -109,14 +109,14 @@ void AudioMotor::close()
// delete m_writePD;
// m_writePD = NULL;
}
/* if (m_readPD != NULL)
if (m_readPD != NULL)
{
disconnect(m_readPD, SIGNAL(newConnection()),this, SLOT(newPeer()));
m_readPD->close();
delete m_readPD;
m_readPD = NULL;
}
/*
QFile socket(SOCKET);
if (socket.exists())
{

View file

@ -57,22 +57,6 @@ libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
topWidget->setWidget(amw);
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
connect(ui.actionOpen_conf, SIGNAL(triggered()), this, SLOT(openFile()));
connect(ui.actionSave_conf, SIGNAL(triggered()), this, SLOT(saveFile()));
@ -96,11 +80,31 @@ libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
ola, SLOT( setDMXConf(dmxSetting) ) );
// Lee la configuración por defecto
while (!set->readDefaultFile()) {
if (!set->readDefaultFile()) {
// Dar la oportunidad de cargar otro fichero de configuración
// 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
connect(AudioMotor::getInstance(), SIGNAL(loadbang()),
this, SLOT (loadbang()));
AudioMotor::getInstance()->init();
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)),
aw, SLOT(volChanged(int, int)));
connect(AudioMotor::getInstance(), SIGNAL(loadbang()),
this, SLOT (loadbang()));
connect(ola, SIGNAL( dmxOutput(int, int, int) ),
this, SLOT( dmxInput(int, int, int) ) );
@ -128,13 +129,13 @@ libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
libreMediaServerAudio::~libreMediaServerAudio()
{
// save_finish();
delete MediaLibrary::getInstance();
// delete MediaLibrary::getInstance();
ola->stop();
AudioMotor::getInstance()->close();
// qDebug() << "PD Audio restarts: " << m_startaudio;
qDebug() << QDate::currentDate() << QTime::currentTime();
qDebug() << "********************************************************************************";
return;
// return;
}
///////////////////////////////////////////////////////////////////

View file

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