From 81d42b9880527097b4e23ba9350513383be5d409 Mon Sep 17 00:00:00 2001 From: emeric Date: Thu, 29 Jan 2026 22:32:49 +0100 Subject: [PATCH] Cleaned up code --- src/tools/CMakeLists.txt | 2 +- src/tools/audiodecode/CMakeLists.txt | 10 -------- src/tools/audioplay/CMakeLists.txt | 10 ++++++++ .../LmsAudioPlay.cpp} | 24 ++++++------------- 4 files changed, 18 insertions(+), 28 deletions(-) delete mode 100644 src/tools/audiodecode/CMakeLists.txt create mode 100644 src/tools/audioplay/CMakeLists.txt rename src/tools/{audiodecode/LmsAudioDecode.cpp => audioplay/LmsAudioPlay.cpp} (88%) diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt index 8b3a307b..0b1eeab8 100644 --- a/src/tools/CMakeLists.txt +++ b/src/tools/CMakeLists.txt @@ -1,4 +1,4 @@ add_subdirectory(audioinfo) -add_subdirectory(audiodecode) +add_subdirectory(audioplay) add_subdirectory(db-generator) add_subdirectory(recommendation) diff --git a/src/tools/audiodecode/CMakeLists.txt b/src/tools/audiodecode/CMakeLists.txt deleted file mode 100644 index 9a756106..00000000 --- a/src/tools/audiodecode/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ - -add_executable(lms-audiodecode - LmsAudioDecode.cpp - ) - -target_link_libraries(lms-audiodecode PRIVATE - lmsaudio - lmscore - Boost::program_options - ) diff --git a/src/tools/audioplay/CMakeLists.txt b/src/tools/audioplay/CMakeLists.txt new file mode 100644 index 00000000..701be783 --- /dev/null +++ b/src/tools/audioplay/CMakeLists.txt @@ -0,0 +1,10 @@ + +add_executable(lms-audioplay + LmsAudioPlay.cpp + ) + +target_link_libraries(lms-audioplay PRIVATE + lmsaudio + lmscore + Boost::program_options + ) diff --git a/src/tools/audiodecode/LmsAudioDecode.cpp b/src/tools/audioplay/LmsAudioPlay.cpp similarity index 88% rename from src/tools/audiodecode/LmsAudioDecode.cpp rename to src/tools/audioplay/LmsAudioPlay.cpp index faef2e2e..f5bcc205 100644 --- a/src/tools/audiodecode/LmsAudioDecode.cpp +++ b/src/tools/audioplay/LmsAudioPlay.cpp @@ -19,15 +19,11 @@ #include #include -#include #include #include +#include #include -#include -#include -#include -#include #include "core/ILogger.hpp" @@ -79,9 +75,8 @@ namespace lms const audio::PcmParameters& pcmParams{ getPcmParameters() }; _sampleCountPerBuffer = static_cast(std::chrono::duration_cast(bufferDuration).count() * pcmParams.sampleRate / std::chrono::microseconds::period::den); const std::size_t bufferSize{ sampleCountToByteCount(_sampleCountPerBuffer) }; - std::cout << "Using buffer size = " << bufferSize << ", " << _sampleCountPerBuffer << " samples per channel" << std::endl; - _buffers.resize(4); // TODO parametrize? + _buffers.resize(bufferCount); for (BufferDesc& bufferDesc : _buffers) bufferDesc.buffer.resize(bufferSize); } @@ -100,12 +95,10 @@ namespace lms std::span buffer{ bufferDesc.buffer }; const std::size_t sampleCount{ readSamples(buffer) }; - if (sampleCount == 0) + if (sampleCount == 0) // EOF { - // EOF - std::cout << "EOF: draining!" << std::endl; _draining = true; - _outputStream->asyncDrain([this] { std::cout << "Drain complete!!" << std::endl; }); + _outputStream->asyncDrain([this] {}); break; } @@ -116,9 +109,7 @@ namespace lms onBufferWriteComplete(bufferIndex); }); - std::cout << "Playback time = " << std::format("{:%T}", std::chrono::duration_cast(_outputStream->getPlaybackTime())) << std::endl; - - // TODO, reschedule instead of looping? + boost::asio::post(_ioContext, [this] { decodeSome(); }); } } @@ -167,6 +158,7 @@ namespace lms Buffer buffer; bool isInWrite{}; }; + static constexpr std::size_t bufferCount{ 4 }; std::vector _buffers; std::size_t _nextBufferIndex{}; std::size_t _sampleCountPerBuffer; @@ -204,7 +196,7 @@ int main(int argc, char* argv[]) if (!std::filesystem::exists(inputPath)) throw std::runtime_error{ "File '" + inputPath.string() + "' does not exist!" }; - core::Service logger{ core::logging::createLogger(core::logging::Severity::DEBUG) }; + core::Service logger{ core::logging::createLogger(core::logging::Severity::INFO) }; try { @@ -218,9 +210,7 @@ int main(int argc, char* argv[]) boost::asio::io_context context; FilePlayer filePlayer{ context, inputPath, decoderParams }; - std::cout << "Running..." << std::endl; context.run(); - std::cout << "Running DONE..." << std::endl; } catch (audio::Exception& e) {