diff --git a/docs/changelog.txt b/docs/changelog.txt index a69017b..5c7e0b6 100644 --- a/docs/changelog.txt +++ b/docs/changelog.txt @@ -6,12 +6,7 @@ https://git.criptomart.net/libremediaserver Libre Media Server ChangeLog - - - - - -v 0.2.0 Antígona (24/04/2024) +v 0.2.0 Antígona (26/05/2024) + Change audio engine to miniaudio because is imposible pan in SFML and it has not access to low API and audio processing. + Refactor all audio methods to MiniAudioEngine class. + Select sound device output. @@ -29,6 +24,7 @@ v 0.2.0 Antígona (24/04/2024) + New DMX personality version, better sort for audio needs (first load media, set vol, pan, etc, last playback order); + Refresh layer values when it loads a new sound file. + No QtSignals for sending data, better performance about 20% in my machine. Now, libremediaserver only updates values in AudioWidget, ui refresh is doing with a timer in audiowidget, so there is not problems between graphical and ola thread (the callback). ++ Load media files from ui clicking in the media labels. v 0.1.3 Leúcade (19/04/2024) diff --git a/docs/roadmap.txt b/docs/roadmap.txt index bd98089..153c596 100644 --- a/docs/roadmap.txt +++ b/docs/roadmap.txt @@ -41,17 +41,13 @@ v 0.2.1 - audio device linked, outputs will be redirected there. - dmx address + universe settings. - Rose noise and sine generator in menu to test system. -- Ui/Ux; Keyboards strokes, load media files from ui. +- Ui/Ux; Keyboards strokes. - Ui/Ux: Dar la opción clickeando en el widget de tiempo de poner una cuenta atrás en vez de hacia delante. - Logs, verbosity, timestamp. - New play mode without pitch control, it saves resources. MA_SOUND_FLAG_NO_PITCH - Vumeter or indicator about audio output in layer and master, add to sliderGroup. -- QSlider can not accept floats and it can no manage high frequency updates. - SettingsDialog. - Load/save conf file. - ¿Exit Point? is it needed? - Hardening: check return errors, try/catch exceptions, i'm too happy.... - Tests: errors on wrong conf file. -- BUGFIX: there are some small clicks when changing volume and play/stop/pause. vol 24 bits? microfades in engine? setVol 0 before changing playback state? -- refactorize dmxInput: loadMedia, changePlayBack, -- BUGFIX: in nogui mode we need more info print at terminal (load media, change playback status). diff --git a/src/audiolayerwidget.cpp b/src/audiolayerwidget.cpp index a22b2cc..4a07451 100644 --- a/src/audiolayerwidget.cpp +++ b/src/audiolayerwidget.cpp @@ -172,7 +172,6 @@ void AudioLayerWidget::setMediaFile(QString file) m_folderValue->setText(list.at(size - 2)); m_fileValue->setText(list.at(size - 1)); } - this->setPlaybackStatus(Status::Stopped); } void AudioLayerWidget::setPlaybackStatus(Status s) @@ -180,8 +179,6 @@ void AudioLayerWidget::setPlaybackStatus(Status s) Status status = static_cast(s); m_suspendResumeButton->blockSignals(true); m_status = status; - //if (status == Status::Stopped) - // refreshCurrentTime(0); m_suspendResumeButton->setText(StatusStr[status]); m_suspendResumeButton->blockSignals(false); } diff --git a/src/libremediaserver-audio.cpp b/src/libremediaserver-audio.cpp index cb18dc2..ab12820 100644 --- a/src/libremediaserver-audio.cpp +++ b/src/libremediaserver-audio.cpp @@ -104,6 +104,7 @@ void libreMediaServerAudio::dmxInput(int layer, int channel, int value) s = Status::PlayingLoop; m_mae.playbackChanged(layer, s); m_currentStatus[layer] = s; + qInfo() << "Layer" << layer << StatusStr[s]; #ifndef NOGUI if (m_ui) { m_lmsUi->m_aw->playbackChanged(layer, s); diff --git a/src/miniaudioengine.cpp b/src/miniaudioengine.cpp index c2d9a6d..fa58464 100644 --- a/src/miniaudioengine.cpp +++ b/src/miniaudioengine.cpp @@ -192,7 +192,7 @@ ma_result MiniAudioEngine::printFormatInfo(int layer) qWarning("Failed to get data format %i\n", layer); return MA_INVALID_DATA; } - qInfo() << "name:" << m_currentLayerValues[layer].media << "samples/sec:" << sampleRate << "format:" << format << "channels:" << channels; + qInfo() << "Layer:" << layer << m_currentLayerValues[layer].media << "samples/sec:" << sampleRate << "format:" << format << "channels:" << channels; return result; }