Merge branch 'sfml'
Added Singleton to AudioWidget Conflicts: lms-audio.xlm puredata/layer_audio.pd src/audiolayerwidget.cpp src/audiolayerwidget.h src/audiomasterwidget.cpp src/audiomasterwidget.h src/audiomotor.cpp src/audiomotor.h src/audiowidget.cpp src/defines.h src/libremediaserver-audio.cpp src/libremediaserver-audio.h src/libremediaserver-audio.pro src/libremediaserver-audio.ui src/medialibrary.cpp src/medialibrary.h src/olathread.cpp src/olathread.h src/settings.cpp src/settings.h
This commit is contained in:
commit
2d16fb6af7
31 changed files with 1112 additions and 1296 deletions
|
|
@ -18,6 +18,8 @@
|
|||
*/
|
||||
#include "libremediaserver-audio.h"
|
||||
|
||||
// QTextEdit * libreMediaServerAudio::textEdit = 0;
|
||||
|
||||
/**
|
||||
/ Constructor
|
||||
*/
|
||||
|
|
@ -25,30 +27,44 @@
|
|||
libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
|
||||
: QMainWindow(parent)
|
||||
{
|
||||
qDebug() << "********************************************************************************";
|
||||
qDebug() << QDate::currentDate() << QTime::currentTime();
|
||||
Q_UNUSED(args);
|
||||
ui.setupUi(this);
|
||||
this->setWindowTitle(VERSION);
|
||||
|
||||
// Lee la configuración por defecto
|
||||
Settings::getInstance()->readFile();
|
||||
|
||||
// Inicia el objeto de conexión a ola
|
||||
ola = new olaThread();
|
||||
Q_CHECK_PTR(ola);
|
||||
/*
|
||||
if (args.contains("-log")) {
|
||||
// Inicia el widget Terminal
|
||||
textEdit = new QTextEdit;
|
||||
textEdit->setReadOnly(true);
|
||||
QDockWidget *bottomWidget = new QDockWidget(tr("Terminal"), this);
|
||||
bottomWidget->setAllowedAreas(Qt::BottomDockWidgetArea);
|
||||
bottomWidget->setWidget(textEdit);
|
||||
addDockWidget(Qt::BottomDockWidgetArea, bottomWidget);
|
||||
connect(ola, SIGNAL(toTerminal(QString)),
|
||||
textEdit, SLOT(append(QString)), Qt::QueuedConnection);
|
||||
}*/
|
||||
|
||||
/* connect(MediaLibrary::getInstance(), SIGNAL(debug(QString)),
|
||||
textEdit, SLOT(append(QString)), Qt::QueuedConnection);
|
||||
|
||||
connect(MediaLibrary::getInstance(), SIGNAL(warning(QString)),
|
||||
textEdit, SLOT(append(QString)), Qt::QueuedConnection);
|
||||
*/
|
||||
|
||||
this->setWindowTitle(VERSION);
|
||||
|
||||
// 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));
|
||||
|
||||
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);
|
||||
setCentralWidget(AudioWidget::getInstance());
|
||||
|
||||
// Inicia el widget Master.
|
||||
amw = new AudioMasterWidget(this);
|
||||
|
|
@ -63,63 +79,23 @@ libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
|
|||
connect(ui.actionChange_Media_Path, SIGNAL(triggered()), this, SLOT(ChangeMediaPath()));
|
||||
connect(ui.actionLaunch_OLA_Setup, SIGNAL(triggered()), this, SLOT(olasetup()));
|
||||
|
||||
Settings *set = new Settings();
|
||||
|
||||
// Inicia la lectura de dmx a través de ola
|
||||
ola = new olaThread();
|
||||
Q_CHECK_PTR(ola);
|
||||
connect(ola, SIGNAL(toTerminal(QString)),
|
||||
this, SLOT(toTerminal(QString)));
|
||||
ola->start(QThread::TimeCriticalPriority );
|
||||
connect(Settings::getInstance(), SIGNAL( registerUniverse(int) ),
|
||||
ola, SLOT( registerUniverse(int) ) );
|
||||
ola->registerUniverse(); // register now all the universes
|
||||
ola->blockSignals(true);
|
||||
|
||||
connect(set, SIGNAL( layersNumber(int)),
|
||||
ola, SLOT( setLayersNumber(int)));
|
||||
|
||||
connect(set, SIGNAL( DMXConf(dmxSetting ) ),
|
||||
ola, SLOT( setDMXConf(dmxSetting) ) );
|
||||
|
||||
// Lee la configuración por defecto
|
||||
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)),
|
||||
aw, SLOT(mediaLoaded(int, QString, QString)));
|
||||
|
||||
connect(AudioMotor::getInstance(), SIGNAL(volChanged(int, int)),
|
||||
aw, SLOT(volChanged(int, int)));
|
||||
|
||||
connect(ola, SIGNAL( dmxOutput(int, int, int) ),
|
||||
this, SLOT( dmxInput(int, int, int) ) );
|
||||
|
||||
connect(ola, SIGNAL(universeReceived(uint)),
|
||||
connect(ola, SIGNAL (layerReceived()),
|
||||
amw, SLOT(updateWatchDMX()));
|
||||
|
||||
// Inicia la media Library
|
||||
MediaLibrary::getInstance()->initMediaLibrary();
|
||||
|
||||
// Inicia la lectura de datos DMX
|
||||
ola->start(QThread::TimeCriticalPriority );
|
||||
ola->blockSignals(false);
|
||||
connect(ola, SIGNAL( dmxOutput(int, int, int) ),
|
||||
this, SLOT( dmxInput(int, int, int) ) );
|
||||
ola->resendDmx();
|
||||
qDebug("Init Complete");
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
|
@ -128,14 +104,9 @@ libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
|
|||
|
||||
libreMediaServerAudio::~libreMediaServerAudio()
|
||||
{
|
||||
// save_finish();
|
||||
// delete MediaLibrary::getInstance();
|
||||
ola->stop();
|
||||
AudioMotor::getInstance()->close();
|
||||
// qDebug() << "PD Audio restarts: " << m_startaudio;
|
||||
qDebug() << QDate::currentDate() << QTime::currentTime();
|
||||
qDebug() << "********************************************************************************";
|
||||
// return;
|
||||
// qDebug() << QDate::currentDate() << QTime::currentTime();
|
||||
// qDebug() << "********************************************************************************";
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
|
@ -175,9 +146,9 @@ void libreMediaServerAudio::ChangeMediaPath()
|
|||
return;
|
||||
fileNames = dialog.selectedFiles();
|
||||
QString file = fileNames.at(0);
|
||||
MediaLibrary::getInstance()->setPath(file);
|
||||
QString desc = tr("Media Path Changed to: %1").arg(m_pathmedia);
|
||||
textEdit->append(desc.toAscii());
|
||||
Settings::getInstance()->setPathMedia(file);
|
||||
QString desc = tr("Media Path Changed to: %1").arg(file);
|
||||
qDebug(desc.toLatin1().constData());
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -199,57 +170,51 @@ void libreMediaServerAudio::dmxInput(int layer, int channel, int value)
|
|||
{
|
||||
// This qDebug slows all the program. Uncomment only for debugging purpouse and comment again in normal use
|
||||
// qDebug() << tr("olaInterface|") << "newdmx layer" << layer << "channel" << channel << "value" << value;
|
||||
if (layer > LAYER_CHANNELS)
|
||||
return;
|
||||
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);
|
||||
AudioWidget::getInstance()->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);
|
||||
AudioWidget::getInstance()->mediaLoaded(layer, mediaFile);
|
||||
break;
|
||||
case VOLUME_COARSE:
|
||||
f = ( value * 0x100 ) + ola->getValue(layer, VOLUME_FINE);
|
||||
AudioMotor::getInstance()->setLayerVolume(layer, f/655.35);
|
||||
AudioWidget::getInstance()->volChanged(layer, f / 655.35);
|
||||
break;
|
||||
case VOLUME_FINE:
|
||||
f = ( ola->getValue(layer, VOLUME_COARSE) * 0x100 ) + value;
|
||||
AudioMotor::getInstance()->setLayerVolume(layer, f/655.35);
|
||||
AudioWidget::getInstance()->volChanged(layer, f / 655.35);
|
||||
break;
|
||||
case PAN:
|
||||
f = (float)value / 255;
|
||||
AudioMotor::getInstance()->setLayerPan(layer, f );
|
||||
break;
|
||||
case PLAYBACK:
|
||||
if (value == 0)
|
||||
break;
|
||||
aux = value / 25;
|
||||
switch (aux) {
|
||||
case 0 :
|
||||
AudioMotor::getInstance()->play(layer);
|
||||
AudioWidget::getInstance()->playbackChanged(layer, Playing);
|
||||
break;
|
||||
case 1 :
|
||||
AudioMotor::getInstance()->stop(layer);
|
||||
AudioWidget::getInstance()->playbackChanged(layer, Stopped);
|
||||
break;
|
||||
case 2 :
|
||||
AudioMotor::getInstance()->pause(layer);
|
||||
AudioWidget::getInstance()->playbackChanged(layer, Paused);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
// emit dmxInput(layer, channel, value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Send the DMX info to Pure Data in init
|
||||
*
|
||||
*/
|
||||
void libreMediaServerAudio::loadbang() {
|
||||
ola->resendDmx();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue