From 284e2296caa460e7d91b185dea800b59881bc44b Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Tue, 22 Jul 2025 13:53:23 +0200 Subject: [PATCH] fix(simu): SDL sound init in libsimulator (#6456) Co-authored-by: raphaelcoeffic <1050031+raphaelcoeffic@users.noreply.github.com> --- companion/src/CMakeLists.txt | 2 +- radio/src/audio.cpp | 4 ++++ radio/src/targets/simu/CMakeLists.txt | 11 ++--------- radio/src/targets/simu/simuaudio.h | 5 +++++ 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt index 06a6c65df..eaecab5db 100644 --- a/companion/src/CMakeLists.txt +++ b/companion/src/CMakeLists.txt @@ -49,7 +49,7 @@ endif() if(SDL2_FOUND) include_directories(${SDL2_INCLUDE_DIRS}) - add_definitions(-DJOYSTICKS) + add_definitions(-DJOYSTICKS -DSIMU_AUDIO) if(TARGET SDL2::SDL2) set(SDL2_LIBRARIES SDL2::SDL2) endif() diff --git a/radio/src/audio.cpp b/radio/src/audio.cpp index 80efe3722..fbe3098e8 100644 --- a/radio/src/audio.cpp +++ b/radio/src/audio.cpp @@ -35,6 +35,10 @@ #include "model_audio.h" #include "hal/audio_driver.h" +#if defined(SIMU) && !defined(SIMU_AUDIO) +void audioConsumeCurrentBuffer() {} +#endif + extern mutex_handle_t audioMutex; // Only first quadrant values - other quadrants calulated taking advantage of symmetry in sine wave. diff --git a/radio/src/targets/simu/CMakeLists.txt b/radio/src/targets/simu/CMakeLists.txt index 7019e1a70..30f08e314 100644 --- a/radio/src/targets/simu/CMakeLists.txt +++ b/radio/src/targets/simu/CMakeLists.txt @@ -7,19 +7,11 @@ endif() target_compile_options(radiolib_native PUBLIC -DSIMU) -if(SDL2_FOUND) - option(SIMU_AUDIO "Enable simulator audio." ON) - if(SIMU_AUDIO) - target_compile_options(radiolib_native PUBLIC -DSIMU_AUDIO) - endif() -endif() - set(SIMU_DRIVERS simpgmspace.cpp simufatfs.cpp simudisk.cpp simulcd.cpp - simuaudio.cpp switch_driver.cpp adc_driver.cpp module_drivers.cpp @@ -47,7 +39,8 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}) if(SDL2_FOUND) include_directories(${SDL2_INCLUDE_DIRS}) - add_definitions(-DJOYSTICKS) + target_compile_options(radiolib_native PUBLIC -DSIMU_AUDIO) + list(APPEND SIMU_DRIVERS simuaudio.cpp) if(TARGET SDL2::SDL2) set(SDL2_LIBRARIES SDL2::SDL2) endif() diff --git a/radio/src/targets/simu/simuaudio.h b/radio/src/targets/simu/simuaudio.h index e9677443b..36de96f79 100644 --- a/radio/src/targets/simu/simuaudio.h +++ b/radio/src/targets/simu/simuaudio.h @@ -21,5 +21,10 @@ #pragma once +#if defined(SIMU_AUDIO) bool simuAudioInit(); void simuAudioDeInit(); +#else +static inline bool simuAudioInit() { return false; } +static inline void simuAudioDeInit() {} +#endif