Qt5 upgrade and new audio engine based in QtMultimedia.

New GUI.
This commit is contained in:
santi 2014-07-10 01:51:29 +02:00
parent 6e268323d2
commit cccd987bdd
23 changed files with 724 additions and 983 deletions

View file

@ -26,25 +26,28 @@ libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
: QMainWindow(parent)
{
qDebug() << "********************************************************************************";
qDebug() << QDate::currentDate() << QTime::currentTime();
qDebug() << QDate::currentDate().toString() << " "<< QTime::currentTime().toString();
qDebug() << VERSION;
qDebug() << COPYRIGHT;
qDebug() << LICENSE;
// Inicia el User Interface
ui.setupUi(this);
this->setWindowTitle(VERSION);
// Inicia el widget Terminal
textEdit = new QTextEdit(this);
textEdit->append(QString::fromAscii(VERSION));
textEdit->append(QString::fromAscii(LICENSE));
textEdit->append(QString::fromAscii(COPYRIGHT));
textEdit->append(QString::fromLatin1(VERSION));
textEdit->append(QString::fromLatin1(LICENSE));
textEdit->append(QString::fromLatin1(COPYRIGHT));
QDockWidget *bottomWidget = new QDockWidget(tr("Terminal"), this);
bottomWidget->setAllowedAreas(Qt::BottomDockWidgetArea);
bottomWidget->setWidget(textEdit);
addDockWidget(Qt::BottomDockWidgetArea, bottomWidget);
// Inicia el widget central de audio
aw = new AudioWidget(this);
setCentralWidget(aw);
// Inicia la lectura de dmx a través de ola
ola = new olaThread();
Q_CHECK_PTR(ola);
@ -53,11 +56,6 @@ libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
ola->start(QThread::TimeCriticalPriority );
ola->blockSignals(true);
// Inicia el widget central de audio
aw = new AudioWidget(this);
setCentralWidget(aw);
// Inicia el widget Master. No implementado todavía
/*
amw = new AudioMasterWidget(this);
@ -66,17 +64,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("Log to file");
@ -90,30 +77,18 @@ libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
Settings *set = new Settings();
// Iniciamos Pure Data
AudioMotor::getInstance()->init();
connect(set, SIGNAL( layersNumber(int)),
ola, SLOT( setLayersNumber(int)));
connect(set, SIGNAL( DMXConf(dmxSetting ) ),
ola, SLOT( setDMXConf(dmxSetting) ) );
connect(AudioMotor::getInstance(), SIGNAL(mediaLoaded(int, QString, QString)),
aw, SLOT(mediaLoaded(int, QString, QString)));
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) ) );
// Lee la configuración por defecto
set->readDefaultFile();
ola->blockSignals(false);
ola->resendDmx();
}
///////////////////////////////////////////////////////////////////
@ -125,9 +100,7 @@ libreMediaServerAudio::~libreMediaServerAudio()
// save_finish();
delete MediaLibrary::getInstance();
ola->stop();
AudioMotor::getInstance()->close();
// qDebug() << "PD Audio restarts: " << m_startaudio;
qDebug() << QDate::currentDate() << QTime::currentTime();
qDebug() << QDate::currentDate().toString() << " " << QTime::currentTime().toString();
qDebug() << "********************************************************************************";
return;
}
@ -171,7 +144,7 @@ void libreMediaServerAudio::ChangeMediaPath()
QString file = fileNames.at(0);
MediaLibrary::getInstance()->setPath(file);
QString desc = tr("Media Path Changed to: %1").arg(m_pathmedia);
textEdit->append(desc.toAscii());
textEdit->append(desc);
}
@ -195,47 +168,45 @@ void libreMediaServerAudio::dmxInput(int layer, int channel, int value)
// qDebug() << tr("olaInterface|") << "newdmx layer" << layer << "channel" << channel << "value" << value;
QString mediaFile = NULL;
int aux;
float f;
qreal f;
switch(channel){
case DMX_FOLDER:// Folder
aux = ola->getValue(layer, DMX_FILE);
mediaFile = MediaLibrary::getInstance()->requestNewFile(value, aux);
if (QFile::exists(mediaFile))
AudioMotor::getInstance()->load(layer, mediaFile);
aw->mediaLoaded(layer, mediaFile);
break;
case DMX_FILE:// File
aux = ola->getValue(layer, DMX_FOLDER);
mediaFile = MediaLibrary::getInstance()->requestNewFile(aux, value);
if (QFile::exists(mediaFile))
AudioMotor::getInstance()->load(layer, mediaFile);
aw->mediaLoaded(layer, mediaFile);
break;
case VOLUME_COARSE:
f = ( value * 0x100 ) + ola->getValue(layer, VOLUME_FINE);
AudioMotor::getInstance()->setLayerVolume(layer, f/65535);
aw->volChanged(layer, f / 65535);
break;
case VOLUME_FINE:
f = ( ola->getValue(layer, VOLUME_COARSE) * 0x100 ) + value;
AudioMotor::getInstance()->setLayerVolume(layer, f/65535);
aw->volChanged(layer, f / 655.35);
break;
case PAN:
f = (float)value / 255;
AudioMotor::getInstance()->setLayerPan(layer, f );
break;
case PLAYBACK:
aux = value / 25;
switch (aux) {
case 0 :
AudioMotor::getInstance()->play(layer);
aw->playbackChanged(layer, QAudio::ActiveState);
break;
case 1 :
AudioMotor::getInstance()->stop(layer);
aw->playbackChanged(layer, QAudio::StoppedState);
break;
case 2 :
AudioMotor::getInstance()->pause(layer);
aw->playbackChanged(layer, QAudio::SuspendedState);
break;
}
default:
// emit dmxInput(layer, channel, value);
break;
}
}