From f76be2d4e2c9ca5a23a215b2b83d1b1af1f95dd6 Mon Sep 17 00:00:00 2001 From: johndoe6345789 Date: Sun, 4 Jan 2026 14:58:27 +0000 Subject: [PATCH] refactor: Remove AudioPlayer references and transition to service-based audio management --- CMakeLists.txt | 2 -- src/main.cpp | 9 +++--- src/script/audio_manager.hpp | 6 +--- src/script/script_engine.cpp | 4 +-- src/script/script_engine.hpp | 5 ++-- src/services/impl/sdl_audio_service.cpp | 40 +++++++++++-------------- src/services/impl/sdl_audio_service.hpp | 4 +-- 7 files changed, 29 insertions(+), 41 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fa79bcf..a55a503 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -142,7 +142,6 @@ if(BUILD_SDL3_APP) src/controllers/application_controller.cpp src/controllers/render_controller.cpp src/controllers/lifecycle_controller.cpp - src/app/audio_player.cpp src/app/service_based_app.cpp src/gui/gui_renderer.cpp src/core/vulkan_utils.cpp @@ -189,7 +188,6 @@ add_executable(script_engine_tests src/script/lua_helpers.cpp src/script/lua_bindings.cpp src/script/mesh_loader.cpp - src/app/audio_player.cpp ) target_include_directories(script_engine_tests PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src") target_link_libraries(script_engine_tests PRIVATE ${SDL_TARGET} lua::lua assimp::assimp Bullet::Bullet glm::glm Vorbis::vorbisfile Vorbis::vorbis) diff --git a/src/main.cpp b/src/main.cpp index fd1bf70..f462713 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -21,9 +21,10 @@ #include "app/service_based_app.hpp" #include #include "services/interfaces/i_logger.hpp" -#include "logging/string_utils.hpp" #include "core/platform.hpp" +using namespace sdl3cpp::services; + namespace sdl3cpp::app { std::atomic g_signalReceived{false}; @@ -78,8 +79,6 @@ RuntimeConfig GenerateDefaultRuntimeConfig(const char* argv0) { } RuntimeConfig LoadRuntimeConfigFromJson(const std::filesystem::path& configPath, bool dumpConfig) { - using sdl3cpp::logging::ToString; - sdl3cpp::logging::Logger::GetInstance().TraceFunctionWithArgs("LoadRuntimeConfigFromJson", configPath.string() + " " + ToString(dumpConfig)); std::ifstream configStream(configPath); if (!configStream) { throw std::runtime_error("Failed to open config file: " + configPath.string()); @@ -245,8 +244,8 @@ AppOptions ParseCommandLine(int argc, char** argv) { void LogRuntimeConfig(const RuntimeConfig& config, std::shared_ptr logger) { if (logger) { - logger->TraceVariable("config.width", static_cast(config.width)); - logger->TraceVariable("config.height", static_cast(config.height)); + logger->TraceVariable("config.width", config.width); + logger->TraceVariable("config.height", config.height); logger->TraceVariable("config.scriptPath", config.scriptPath.string()); } } diff --git a/src/script/audio_manager.hpp b/src/script/audio_manager.hpp index b95bb5c..a93974f 100644 --- a/src/script/audio_manager.hpp +++ b/src/script/audio_manager.hpp @@ -6,10 +6,6 @@ #include #include -namespace sdl3cpp::app { -class AudioPlayer; -} - namespace sdl3cpp::script { class AudioManager { @@ -27,7 +23,7 @@ public: explicit AudioManager(const std::filesystem::path& scriptDirectory); - void SetAudioPlayer(app::AudioPlayer* audioPlayer); + // void SetAudioPlayer(app::AudioPlayer* audioPlayer); // Removed - using services now bool QueueAudioCommand(AudioCommandType type, std::string path, bool loop, std::string& error); private: diff --git a/src/script/script_engine.cpp b/src/script/script_engine.cpp index 02e98dd..5c68366 100644 --- a/src/script/script_engine.cpp +++ b/src/script/script_engine.cpp @@ -4,7 +4,6 @@ #include "script/gui_manager.hpp" #include "script/audio_manager.hpp" #include "script/lua_bindings.hpp" -#include "app/audio_player.hpp" #include "logging/logger.hpp" #include @@ -111,7 +110,8 @@ std::filesystem::path ScriptEngine::GetScriptDirectory() const { } void ScriptEngine::SetAudioPlayer(app::AudioPlayer* audioPlayer) { - audioManager_->SetAudioPlayer(audioPlayer); + // Stub - audio functionality now handled through services + sdl3cpp::logging::Logger::GetInstance().Trace("ScriptEngine::SetAudioPlayer: Stub implementation - using services now"); } bool ScriptEngine::QueueAudioCommand(AudioManager::AudioCommandType type, std::string path, bool loop, std::string& error) { diff --git a/src/script/script_engine.hpp b/src/script/script_engine.hpp index 2e6e905..90690a1 100644 --- a/src/script/script_engine.hpp +++ b/src/script/script_engine.hpp @@ -41,13 +41,12 @@ public: bool HasGuiCommands() const; std::filesystem::path GetScriptDirectory() const; PhysicsBridge& GetPhysicsBridge(); - void SetAudioPlayer(app::AudioPlayer* audioPlayer); + // void SetAudioPlayer(app::AudioPlayer* audioPlayer); // Removed - using services now bool QueueAudioCommand(AudioManager::AudioCommandType type, std::string path, bool loop, std::string& error); std::string GetLuaError(); private: -private: - void ExecuteAudioCommand(app::AudioPlayer* player, const AudioManager::AudioCommand& command); + void ExecuteAudioCommand(const AudioManager::AudioCommand& command); // Updated to not take AudioPlayer std::filesystem::path ResolveScriptPath(const std::string& requested) const; static std::vector ReadVertexArray(lua_State* L, int index); diff --git a/src/services/impl/sdl_audio_service.cpp b/src/services/impl/sdl_audio_service.cpp index 45f0e21..e5a8116 100644 --- a/src/services/impl/sdl_audio_service.cpp +++ b/src/services/impl/sdl_audio_service.cpp @@ -19,10 +19,9 @@ void SdlAudioService::Initialize() { return; } - audioPlayer_ = std::make_unique(); + // TODO: Initialize SDL audio subsystem + logger_->Info("Audio service initialized (stub implementation)"); initialized_ = true; - - logger_->Info("Audio service initialized"); } void SdlAudioService::Shutdown() noexcept { @@ -32,55 +31,53 @@ void SdlAudioService::Shutdown() noexcept { return; } - audioPlayer_.reset(); + // TODO: Shutdown SDL audio subsystem initialized_ = false; - - logger_->Info("Audio service shutdown"); + logger_->Info("Audio service shutdown (stub implementation)"); } void SdlAudioService::PlayBackground(const std::filesystem::path& path, bool loop) { logger_->TraceFunction(__func__); - if (!audioPlayer_) { + if (!initialized_) { throw std::runtime_error("Audio service not initialized"); } - audioPlayer_->PlayBackground(path, loop); + // TODO: Implement background music playback using SDL_mixer or similar + logger_->Info("Playing background audio: " + path.string() + " (loop: " + std::to_string(loop) + ") - STUB"); } void SdlAudioService::PlayEffect(const std::filesystem::path& path, bool loop) { logger_->TraceFunction(__func__); - if (!audioPlayer_) { + if (!initialized_) { throw std::runtime_error("Audio service not initialized"); } - audioPlayer_->PlayEffect(path, loop); + // TODO: Implement sound effect playback + logger_->Info("Playing effect audio: " + path.string() + " (loop: " + std::to_string(loop) + ") - STUB"); } void SdlAudioService::StopBackground() { logger_->TraceFunction(__func__); - if (!audioPlayer_) { + if (!initialized_) { return; } - // AudioPlayer doesn't have StopBackground(), so recreate to stop - auto oldPlayer = std::move(audioPlayer_); - oldPlayer.reset(); - audioPlayer_ = std::make_unique(); + // TODO: Stop background music + logger_->Info("Stopping background audio - STUB"); } void SdlAudioService::StopAll() { logger_->TraceFunction(__func__); - if (!audioPlayer_) { + if (!initialized_) { return; } - // Recreate player to stop all audio - audioPlayer_.reset(); - audioPlayer_ = std::make_unique(); + // TODO: Stop all audio + logger_->Info("Stopping all audio - STUB"); } void SdlAudioService::SetVolume(float volume) { @@ -94,9 +91,8 @@ float SdlAudioService::GetVolume() const { } bool SdlAudioService::IsBackgroundPlaying() const { - // AudioPlayer doesn't expose this state, - // would need to be added to AudioPlayer implementation - return false; + // TODO: Check if background music is currently playing + return false; // Stub implementation } } // namespace sdl3cpp::services::impl diff --git a/src/services/impl/sdl_audio_service.hpp b/src/services/impl/sdl_audio_service.hpp index 017fdb1..778935e 100644 --- a/src/services/impl/sdl_audio_service.hpp +++ b/src/services/impl/sdl_audio_service.hpp @@ -2,9 +2,9 @@ #include "../interfaces/i_audio_service.hpp" #include "../interfaces/i_logger.hpp" -#include "../../app/audio_player.hpp" #include "../../di/lifecycle.hpp" #include +#include namespace sdl3cpp::services::impl { @@ -36,9 +36,9 @@ public: private: std::shared_ptr logger_; - std::unique_ptr audioPlayer_; float volume_ = 1.0f; bool initialized_ = false; + // SDL audio structures would go here }; } // namespace sdl3cpp::services::impl