diff --git a/Appli/Core/Inc/audio_effects.h b/Appli/Core/Inc/audio_effects.h index 5b01c57..d5264be 100644 --- a/Appli/Core/Inc/audio_effects.h +++ b/Appli/Core/Inc/audio_effects.h @@ -1,6 +1,7 @@ #ifndef AUDIO_EFFECTS_H #define AUDIO_EFFECTS_H +#include #include "fx_equalizer.h" #include "fx_overdrive.h" #include "fx_saturation.h" @@ -16,6 +17,7 @@ extern "C" { * egaliseur -> overdrive -> saturation -> echo -> reverberation. */ typedef struct { + bool audio_on_off; FxEqualizerParams equalizer; FxOverdriveParams overdrive; FxSaturationParams saturation; diff --git a/Appli/Core/Src/audio_effects.c b/Appli/Core/Src/audio_effects.c index b876e9e..4df9a24 100644 --- a/Appli/Core/Src/audio_effects.c +++ b/Appli/Core/Src/audio_effects.c @@ -10,6 +10,7 @@ static FxReverbState g_reverbState; void AudioEffects_Init(void) { + g_params.audio_on_off = false; FxEqualizer_Init(&g_eqState, &g_params.equalizer); FxOverdrive_Init(&g_overdriveState, &g_params.overdrive); FxSaturation_Init(&g_saturationState, &g_params.saturation); @@ -25,6 +26,14 @@ float AudioEffects_Process(float input) sample = FxSaturation_Process(&g_saturationState, &g_params.saturation, sample); sample = FxEcho_Process(&g_echoState, &g_params.echo, sample); sample = FxReverb_Process(&g_reverbState, &g_params.reverb, sample); + + /* Coupure de sortie : les effets continuent de tourner (pas de discontinuite + * d'etat au reactivation), seule la sortie audible est reduite au silence. */ + if (!g_params.audio_on_off) + { + return 0.0f; + } + return sample; } diff --git a/Appli/TouchGFX/gui/include/gui/overview_screen/OverviewView.hpp b/Appli/TouchGFX/gui/include/gui/overview_screen/OverviewView.hpp index 73a5ad2..ce74378 100644 --- a/Appli/TouchGFX/gui/include/gui/overview_screen/OverviewView.hpp +++ b/Appli/TouchGFX/gui/include/gui/overview_screen/OverviewView.hpp @@ -11,6 +11,8 @@ public: virtual ~OverviewView() {} virtual void setupScreen(); virtual void tearDownScreen(); + + virtual void toggleAudioOnOFF(); protected: }; diff --git a/Appli/TouchGFX/gui/src/overview_screen/OverviewView.cpp b/Appli/TouchGFX/gui/src/overview_screen/OverviewView.cpp index 9a16638..3e6d5da 100644 --- a/Appli/TouchGFX/gui/src/overview_screen/OverviewView.cpp +++ b/Appli/TouchGFX/gui/src/overview_screen/OverviewView.cpp @@ -1,16 +1,23 @@ -#include - -OverviewView::OverviewView() -{ - -} - -void OverviewView::setupScreen() -{ - OverviewViewBase::setupScreen(); -} - -void OverviewView::tearDownScreen() -{ - OverviewViewBase::tearDownScreen(); -} +#include +#include + +OverviewView::OverviewView() +{ + +} + +void OverviewView::setupScreen() +{ + OverviewViewBase::setupScreen(); + toggleButton1.forceState(AudioEffects_GetParams()->audio_on_off); +} + +void OverviewView::tearDownScreen() +{ + OverviewViewBase::tearDownScreen(); +} + +void OverviewView::toggleAudioOnOFF() +{ + AudioEffects_GetParams()->audio_on_off = toggleButton1.getState(); +}