diff options
-rw-r--r-- | src/client.cpp | 3 | ||||
-rw-r--r-- | src/soundmanager.cpp | 4 | ||||
-rw-r--r-- | src/soundmanager.h | 2 | ||||
-rw-r--r-- | src/touchmanager.cpp | 6 | ||||
-rw-r--r-- | src/touchmanager.h | 2 |
5 files changed, 16 insertions, 1 deletions
diff --git a/src/client.cpp b/src/client.cpp index 85a224b41..8180b22c1 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -809,6 +809,9 @@ void Client::gameClear() if (logger) logger->log1("Quitting10"); + sound.shutdown(); + touchManager.shutdown(); + #ifdef DEBUG_CONFIG config.enableKeyLogging(); #endif diff --git a/src/soundmanager.cpp b/src/soundmanager.cpp index d1a6a5d74..7ab66110a 100644 --- a/src/soundmanager.cpp +++ b/src/soundmanager.cpp @@ -66,6 +66,10 @@ SoundManager::SoundManager(): SoundManager::~SoundManager() { +} + +void SoundManager::shutdown() +{ config.removeListeners(this); // Unlink the callback function. diff --git a/src/soundmanager.h b/src/soundmanager.h index 4ea36c27e..d36cad92b 100644 --- a/src/soundmanager.h +++ b/src/soundmanager.h @@ -145,6 +145,8 @@ class SoundManager final : public ConfigListener */ void logic(); + void shutdown(); + private: /** Logs various info about sound device. */ void info() const; diff --git a/src/touchmanager.cpp b/src/touchmanager.cpp index 313337259..3dd9e64a9 100644 --- a/src/touchmanager.cpp +++ b/src/touchmanager.cpp @@ -54,12 +54,16 @@ TouchManager::TouchManager() : TouchManager::~TouchManager() { - config.removeListeners(this); clear(); delete mVertexes; mVertexes = nullptr; } +void TouchManager::shutdown() +{ + config.removeListeners(this); +} + void TouchManager::init() { config.addListener("showScreenJoystick", this); diff --git a/src/touchmanager.h b/src/touchmanager.h index c9f018b7f..05b062074 100644 --- a/src/touchmanager.h +++ b/src/touchmanager.h @@ -142,6 +142,8 @@ class TouchManager final : public ConfigListener void setTempHide(bool b); + void shutdown(); + private: TouchItem *mKeyboard; TouchItem *mPad; |