cambida señal dmx por llamada directa al método, reduce un 20% de cpu en
mi ordenador. Restringida actualización de entry point como volumen, sigue cascando la búsqueda en mp3, wav va fino.
This commit is contained in:
parent
d34b972a54
commit
5915d4898e
6 changed files with 45 additions and 37 deletions
|
|
@ -29,10 +29,14 @@ libreMediaServerAudio::libreMediaServerAudio(bool gui)
|
|||
m_mediaLibrary = new MediaLibrary;
|
||||
m_mediaLibrary->initMediaLibrary();
|
||||
for (int i = 0; i < MAX_LAYERS; i++) {
|
||||
m_currentMedia[i] = Status::Iddle;
|
||||
m_currentMedia[i] = "";
|
||||
m_currentStatus[i] = Status::Iddle;
|
||||
#ifdef NOGUI
|
||||
m_updateUi[i][0] = -1;
|
||||
m_updateUi[i][1] = -1;
|
||||
m_updateUi[i][2] = -1;
|
||||
m_updateUi[i][3] = -1;
|
||||
#endif
|
||||
}
|
||||
m_ola = new olaThread(this, set->getLayersNumber());
|
||||
Q_CHECK_PTR(m_ola);
|
||||
|
|
@ -42,7 +46,9 @@ libreMediaServerAudio::libreMediaServerAudio(bool gui)
|
|||
m_mae.startEngine(set->getAudioDeviceId());
|
||||
qDebug("Core init Complete. Start reading DMX.");
|
||||
m_ola->blockSignals(false);
|
||||
#ifdef NOGUI
|
||||
m_ola->start(QThread::TimeCriticalPriority );
|
||||
#endif
|
||||
}
|
||||
|
||||
libreMediaServerAudio::~libreMediaServerAudio()
|
||||
|
|
@ -71,7 +77,6 @@ void libreMediaServerAudio::dmxInput(int layer, int channel, int value)
|
|||
m_lmsUi->m_aw->mediaLoaded(layer, mediaFile, m_mae.getDuration(layer));
|
||||
#endif
|
||||
}
|
||||
return;
|
||||
} else if (channel == VOLUME_COARSE || channel == VOLUME_FINE) {
|
||||
float tmp = value / 65025.0f;
|
||||
m_mae.volChanged(layer, tmp);
|
||||
|
|
@ -84,10 +89,7 @@ void libreMediaServerAudio::dmxInput(int layer, int channel, int value)
|
|||
m_updateUi[layer][2] = value;
|
||||
} else if (channel == ENTRY_POINT_COARSE || channel == ENTRY_POINT_FINE) {
|
||||
m_mae.setCursor(layer, value);
|
||||
#ifndef NOGUI
|
||||
m_lmsUi->m_aw->cursorChanged(layer, m_mae.getCursor(layer));
|
||||
#endif
|
||||
return;
|
||||
m_updateUi[layer][3] = value;
|
||||
} else if (channel == PLAYBACK && value > 0) {
|
||||
aux = value / 25;
|
||||
Status s = m_currentStatus[layer];
|
||||
|
|
@ -111,10 +113,6 @@ void libreMediaServerAudio::dmxInput(int layer, int channel, int value)
|
|||
void libreMediaServerAudio::refreshUi() {
|
||||
if (!m_ui) return;
|
||||
for (int i= 0; i < Settings::getInstance()->getLayersNumber(); i++ ) {
|
||||
Status s = m_currentStatus[i];
|
||||
if (s == Status::PlayingOnce || s == Status::PlayingLoop) {
|
||||
m_lmsUi->m_aw->cursorChanged(i, m_mae.getCursor(i));
|
||||
}
|
||||
if (m_updateUi[i][0] >= 0) {
|
||||
m_lmsUi->m_aw->volChanged(i, m_updateUi[i][0]);
|
||||
m_updateUi[i][0] = -1;
|
||||
|
|
@ -127,7 +125,10 @@ void libreMediaServerAudio::refreshUi() {
|
|||
m_lmsUi->m_aw->pitchChanged(i, m_updateUi[i][2]);
|
||||
m_updateUi[i][2] = -1;
|
||||
}
|
||||
//m_lmsUi->m_aw->playbackChanged(i, m_currentStatus[i]);
|
||||
if (m_updateUi[i][3] >= 0) {
|
||||
m_lmsUi->m_aw->cursorChanged(i, m_mae.getCursor(i));
|
||||
m_updateUi[i][3] = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -141,6 +142,7 @@ void libreMediaServerAudio::setUi(libreMediaServerAudioUi *lmsUi)
|
|||
m_refreshUi = new QTimer(this);
|
||||
connect(m_refreshUi, SIGNAL(timeout()), this, SLOT(refreshUi()));
|
||||
m_refreshUi->start(UI_REFRESH_TIME);
|
||||
m_ola->start(QThread::TimeCriticalPriority );
|
||||
};
|
||||
|
||||
void libreMediaServerAudio::uiSliderChanged(int layer, Slider s, int value)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue