diff --git a/src/lib/tunes/tunes.cpp b/src/lib/tunes/tunes.cpp index a82d51e95c..726cdcee7b 100644 --- a/src/lib/tunes/tunes.cpp +++ b/src/lib/tunes/tunes.cpp @@ -110,7 +110,12 @@ int Tunes::set_control(const tune_control_s &tune_control) reset(_repeat); // Strength will remain valid for the entire tune, unless interrupted. - _strength = (unsigned)tune_control.strength; + if ((unsigned)tune_control.strength <= TUNE_MAX_STRENGTH) { + _strength = (unsigned)tune_control.strength; + + } else { + _strength = TUNE_MAX_STRENGTH; + } // Special treatment for custom tunes if (tune_control.tune_id == static_cast(TuneID::CUSTOM)) { @@ -138,7 +143,13 @@ void Tunes::set_string(const char *const string, uint8_t strength) _tune = string; _tune_start_ptr = string; _next = _tune; - _strength = strength; + + if (strength <= TUNE_MAX_STRENGTH) { + _strength = strength; + + } else { + _strength = TUNE_MAX_STRENGTH; + } } } diff --git a/src/lib/tunes/tunes.h b/src/lib/tunes/tunes.h index 360d6abe43..3b62553ebe 100644 --- a/src/lib/tunes/tunes.h +++ b/src/lib/tunes/tunes.h @@ -46,6 +46,8 @@ #define TUNE_DEFAULT_TEMPO 120 #define TUNE_DEFAULT_OCTAVE 4 #define TUNE_DEFAULT_NOTE_LENGTH 4 +#define TUNE_MAX_STRENGTH 100 + /** * Library for parsing tunes from melody-strings or dedicated tune messages.