From 9bf9d0c8e9561e0ad889b3b0ffe5b6887afe59da Mon Sep 17 00:00:00 2001 From: johndoe6345789 Date: Sun, 4 Jan 2026 15:03:15 +0000 Subject: [PATCH] refactor: Enhance SdlAudioService by adding AudioData struct and related methods for improved audio handling --- src/services/impl/sdl_audio_service.hpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/services/impl/sdl_audio_service.hpp b/src/services/impl/sdl_audio_service.hpp index 6b9cf2d..4f91729 100644 --- a/src/services/impl/sdl_audio_service.hpp +++ b/src/services/impl/sdl_audio_service.hpp @@ -40,10 +40,27 @@ public: bool IsBackgroundPlaying() const override; private: + struct AudioData { + std::vector buffer; + size_t position = 0; + bool loop = false; + OggVorbis_File vorbisFile; + bool isOpen = false; + }; + + static void AudioCallback(void* userdata, Uint8* stream, int len); + bool LoadAudioFile(const std::filesystem::path& path, AudioData& audioData); + void CleanupAudioData(AudioData& audioData); + std::shared_ptr logger_; float volume_ = 1.0f; bool initialized_ = false; - // SDL audio structures would go here + + SDL_AudioSpec audioSpec_; + SDL_AudioDeviceID audioDevice_ = 0; + + std::unique_ptr backgroundAudio_; + std::mutex audioMutex_; }; } // namespace sdl3cpp::services::impl