funcionando con dmx, controles Ui muestran info pero no actúan sobre el
sonido. Refactorizado todos lo métodos que interactúan con el sonido a miniaudioengine
This commit is contained in:
parent
7aea8f6cf1
commit
521f1fc6d7
12 changed files with 516 additions and 501 deletions
|
|
@ -30,6 +30,7 @@ libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
|
|||
|
||||
Settings *set = Settings::getInstance();
|
||||
set->readFile();
|
||||
connect(set, SIGNAL(audioDeviceChanged(int)), this, SLOT(audioDeviceChanged(int)));
|
||||
/*
|
||||
if (args.contains("-log")) {
|
||||
// Inicia el widget Terminal
|
||||
|
|
@ -57,7 +58,8 @@ libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
|
|||
|
||||
// start audio engine
|
||||
MediaLibrary::getInstance()->initMediaLibrary();
|
||||
setCentralWidget(AudioWidget::getInstance());
|
||||
aw = new AudioWidget;
|
||||
setCentralWidget(aw);
|
||||
amw = new AudioMasterWidget(this);
|
||||
QDockWidget *topWidget = new QDockWidget(tr("Master"), this);
|
||||
topWidget->setAllowedAreas(Qt::TopDockWidgetArea);
|
||||
|
|
@ -66,20 +68,20 @@ libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
|
|||
// ola setup
|
||||
ola = new olaThread();
|
||||
Q_CHECK_PTR(ola);
|
||||
connect(set, SIGNAL(registerUniverse(int)), ola, SLOT(registerUniverse(int)));
|
||||
ola->registerUniverse(); // register now all the universes
|
||||
ola->blockSignals(true);
|
||||
connect(set, SIGNAL(registerUniverse(int)), ola, SLOT(registerUniverse(int)));
|
||||
connect(ola, SIGNAL (layerReceived()), amw, SLOT(updateWatchDMX()));
|
||||
connect(ola, SIGNAL(dmxOutput(int, int, int)), this, SLOT(dmxInput(int, int, int)));
|
||||
connect(ui.actionLaunch_OLA_Setup, SIGNAL(triggered()), this, SLOT(olasetup()));
|
||||
ola->registerUniverse();
|
||||
ola->start(QThread::TimeCriticalPriority );
|
||||
ola->blockSignals(false);
|
||||
// menus
|
||||
connect(ui.actionOpen_conf, SIGNAL(triggered()), this, SLOT(openFile()));
|
||||
connect(ui.actionSave_conf, SIGNAL(triggered()), this, SLOT(saveFile()));
|
||||
connect(ui.action_Settings, SIGNAL(triggered()), this, SLOT(settings()));
|
||||
connect(set, SIGNAL(audioDeviceChanged(int)), this, SLOT(audioDeviceChanged(int)));
|
||||
qDebug("Init Complete");
|
||||
aw->startEngine();
|
||||
qDebug("Init Complete.");
|
||||
ola->blockSignals(false);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
|
@ -89,7 +91,7 @@ libreMediaServerAudio::libreMediaServerAudio(QStringList args, QWidget *parent)
|
|||
libreMediaServerAudio::~libreMediaServerAudio()
|
||||
{
|
||||
ola->stop();
|
||||
AudioWidget::getInstance()->stopEngine();
|
||||
aw->stopEngine();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
|
@ -151,27 +153,27 @@ void libreMediaServerAudio::dmxInput(int layer, int channel, int value)
|
|||
aux = ola->getValue(layer, DMX_FILE);
|
||||
mediaFile = MediaLibrary::getInstance()->requestNewFile(value, aux);
|
||||
if (QFile::exists(mediaFile))
|
||||
AudioWidget::getInstance()->mediaLoaded(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))
|
||||
AudioWidget::getInstance()->mediaLoaded(layer, mediaFile);
|
||||
aw->mediaLoaded(layer, mediaFile);
|
||||
break;
|
||||
case VOLUME_COARSE:
|
||||
f = ( value * 0x100 ) + ola->getValue(layer, VOLUME_FINE);
|
||||
AudioWidget::getInstance()->volChanged(layer, (f / 655.35));
|
||||
aw->volChanged(layer, (f / 655.35));
|
||||
break;
|
||||
case VOLUME_FINE:
|
||||
f = ( ola->getValue(layer, VOLUME_COARSE) * 0x100 ) + value;
|
||||
AudioWidget::getInstance()->volChanged(layer, (f / 655.35));
|
||||
aw->volChanged(layer, (f / 655.35));
|
||||
break;
|
||||
case PAN:
|
||||
AudioWidget::getInstance()->panChanged(layer, value);
|
||||
aw->panChanged(layer, value);
|
||||
break;
|
||||
case PITCH:
|
||||
AudioWidget::getInstance()->pitchChanged(layer, value);
|
||||
aw->pitchChanged(layer, value);
|
||||
break;
|
||||
case PLAYBACK:
|
||||
if (value == 0)
|
||||
|
|
@ -179,16 +181,16 @@ void libreMediaServerAudio::dmxInput(int layer, int channel, int value)
|
|||
aux = value / 25;
|
||||
switch (aux) {
|
||||
case 0 :
|
||||
AudioWidget::getInstance()->playbackChanged(layer, PlayingOnce);
|
||||
aw->playbackChanged(layer, PlayingOnce);
|
||||
break;
|
||||
case 1 :
|
||||
AudioWidget::getInstance()->playbackChanged(layer, Stopped);
|
||||
aw->playbackChanged(layer, Stopped);
|
||||
break;
|
||||
case 2 :
|
||||
AudioWidget::getInstance()->playbackChanged(layer, Paused);
|
||||
aw->playbackChanged(layer, Paused);
|
||||
break;
|
||||
case 3 :
|
||||
AudioWidget::getInstance()->playbackChanged(layer, PlayingLoop);
|
||||
aw->playbackChanged(layer, PlayingLoop);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
|
@ -198,6 +200,6 @@ void libreMediaServerAudio::dmxInput(int layer, int channel, int value)
|
|||
|
||||
void libreMediaServerAudio::audioDeviceChanged(int id)
|
||||
{
|
||||
AudioWidget::getInstance()->stopEngine();
|
||||
AudioWidget::getInstance()->startEngine(id);
|
||||
aw->stopEngine();
|
||||
aw->startEngine(id);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue