Fix BGEffectHandler destruction

This commit is contained in:
LordGrey
2023-12-28 20:31:46 +01:00
parent dad1d8b4b4
commit 6aacac7924
2 changed files with 15 additions and 2 deletions

View File

@@ -43,6 +43,16 @@ public:
handleSettingsUpdate(settings::BGEFFECT, _hyperion->getSetting(settings::BGEFFECT));
}
///
/// @brief Disconnect from connected signals
/// Disconnect should be done before other priorities invoke methods during shutdown
///
void disconnect()
{
QObject::disconnect(_prioMuxer, &PriorityMuxer::prioritiesChanged, nullptr, nullptr);
QObject::disconnect(_hyperion, nullptr, nullptr, nullptr);
}
///
/// @brief Check, if background effect processing is enabled.
/// @return True, background effect processing is enabled.

View File

@@ -200,13 +200,16 @@ void Hyperion::stop()
void Hyperion::freeObjects()
{
//delete Background effect first that it does not kick in when other priorities are stopped
delete _BGEffectHandler;
//Disconnect Background effect first that it does not kick in when other priorities are stopped
_BGEffectHandler->disconnect();
//Remove all priorities to switch off all leds
clear(-1,true);
// delete components on exit of hyperion core
delete _BGEffectHandler;
#if defined(ENABLE_BOBLIGHT_SERVER)
delete _boblightServer;
#endif