diff --git a/src/lib/tunes/tunes.cpp b/src/lib/tunes/tunes.cpp index ea81d0403397b43280c8d9f6254937d6c7a10ac8..4457ab8f2a12090fcd434f4a5a08a3137346a718 100644 --- a/src/lib/tunes/tunes.cpp +++ b/src/lib/tunes/tunes.cpp @@ -94,6 +94,12 @@ int Tunes::set_control(const tune_control_s &tune_control) tune_control.tune_override || // Override interrupts everything _default_tunes_interruptable[_current_tune_id]) { + // Check if this exact tune is already being played back + if (tune_control.tune_id != static_cast<int>(TuneID::CUSTOM) && + _tune == _default_tunes[tune_control.tune_id]) { + return OK; // Nothing to do + } + // Reset repeat flag. Can jump to true again while tune is being parsed later _repeat = false;