diff --git a/radio/src/main_arm.cpp b/radio/src/main_arm.cpp index a2f712358..1508f0538 100644 --- a/radio/src/main_arm.cpp +++ b/radio/src/main_arm.cpp @@ -72,7 +72,9 @@ void checkSpeakerVolume() { if (currentSpeakerVolume != requiredSpeakerVolume) { currentSpeakerVolume = requiredSpeakerVolume; +#if !defined(SOFTWARE_VOLUME) setScaledVolume(currentSpeakerVolume); +#endif } } diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index b537261c0..e2564b959 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -2456,7 +2456,7 @@ void opentxInit(OPENTX_INIT_ARGS) } #endif -#if defined(VOICE) +#if defined(VOICE) && !defined(SOFTWARE_VOLUME) setScaledVolume(g_eeGeneral.speakerVolume+VOLUME_LEVEL_DEF); #endif diff --git a/radio/src/targets/sky9x/audio_driver.cpp b/radio/src/targets/sky9x/audio_driver.cpp index a7d0f74e4..c26b61237 100644 --- a/radio/src/targets/sky9x/audio_driver.cpp +++ b/radio/src/targets/sky9x/audio_driver.cpp @@ -161,17 +161,15 @@ void audioEnd() PMC->PMC_PCER0 &= ~0x40000000L ; // Disable peripheral clock to DAC } +#if !defined(SOFTWARE_VOLUME) void setScaledVolume(uint8_t volume) { -#if !defined(SOFTWARE_VOLUME) volumeRequired = volumeScale[min(volume, VOLUME_LEVEL_MAX)]; -#ifndef AR9X __disable_irq() ; i2cCheck() ; __enable_irq() ; -#endif -#endif } +#endif #endif // #if !defined(SIMU) diff --git a/radio/src/targets/taranis/CMakeLists.txt b/radio/src/targets/taranis/CMakeLists.txt index 0b8fe0036..81e3c783d 100644 --- a/radio/src/targets/taranis/CMakeLists.txt +++ b/radio/src/targets/taranis/CMakeLists.txt @@ -57,7 +57,7 @@ elseif(PCB STREQUAL X7D) set(HAPTIC YES) set(LUA_EXPORT lua_export_taranis) set(FLAVOUR x7d) - add_definitions(-DPCBX7D) + add_definitions(-DPCBX7D -DSOFTWARE_VOLUME) add_definitions(-DEEPROM_VARIANT=0) set(GUI_DIR 128x64) set(BITMAPS_TARGET 9x_bitmaps) diff --git a/radio/src/targets/taranis/board.h b/radio/src/targets/taranis/board.h index a5ace6f17..d95b0dbc0 100644 --- a/radio/src/targets/taranis/board.h +++ b/radio/src/targets/taranis/board.h @@ -454,9 +454,11 @@ void dacStop(void); void setSampleRate(uint32_t frequency); #define VOLUME_LEVEL_MAX 23 #define VOLUME_LEVEL_DEF 12 +#if !defined(SOFTWARE_VOLUME) void setScaledVolume(uint8_t volume); void setVolume(uint8_t volume); int32_t getVolume(void); +#endif #define audioConsumeCurrentBuffer() #define audioDisableIrq() __disable_irq() #define audioEnableIrq() __enable_irq() diff --git a/radio/src/targets/taranis/i2c_driver.cpp b/radio/src/targets/taranis/i2c_driver.cpp index df0b8873e..baf26b9f8 100644 --- a/radio/src/targets/taranis/i2c_driver.cpp +++ b/radio/src/targets/taranis/i2c_driver.cpp @@ -247,7 +247,7 @@ void eepromWaitEepromStandbyState(void) } } -#if !defined(BOOT) +#if !defined(BOOT) && !defined(SOFTWARE_VOLUME) const uint8_t volumeScale[VOLUME_LEVEL_MAX+1] = { 0, 1, 2, 3, 5, 9, 13, 17, 22, 27, 33, 40, 64, 82, 96, 105, 112, 117, 120, 122, 124, 125, 126, 127