From b0196808d2164d282c434b92fe5db34078f1a80e Mon Sep 17 00:00:00 2001 From: Jens Lorenz Date: Mon, 20 Mar 2017 20:23:02 +0100 Subject: AMCore: Fix connection state notification on remove connection The CS_DISCONNECTED was notified even in case WITH_DATABASE_CHANGE_CHECK flag was activated and the main connection was already disconnected by controller. Signed-off-by: Jens Lorenz --- AudioManagerCore/src/CAmDatabaseHandlerMap.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/AudioManagerCore/src/CAmDatabaseHandlerMap.cpp b/AudioManagerCore/src/CAmDatabaseHandlerMap.cpp index 2427630..48ef37b 100644 --- a/AudioManagerCore/src/CAmDatabaseHandlerMap.cpp +++ b/AudioManagerCore/src/CAmDatabaseHandlerMap.cpp @@ -55,6 +55,7 @@ (true) #endif + #define NOTIFY_OBSERVERS(CALL)\ for(AmDatabaseObserverCallbacks * nextObserver: mDatabaseObservers)\ if(nextObserver->CALL)\ @@ -1505,12 +1506,14 @@ am_Error_e CAmDatabaseHandlerMap::removeMainConnectionDB(const am_mainConnection return (E_NON_EXISTENT); } - mMappedData.mMainConnectionMap.erase(mainConnectionID); + DB_COND_UPDATE_INIT; + DB_COND_UPDATE(mMappedData.mMainConnectionMap[mainConnectionID].mainConnectionID, CS_DISCONNECTED); + if (DB_COND_ISMODIFIED) + NOTIFY_OBSERVERS2(dboMainConnectionStateChanged, mainConnectionID, CS_DISCONNECTED) + mMappedData.mMainConnectionMap.erase(mainConnectionID); logVerbose("DatabaseHandler::removeMainConnectionDB removed:", mainConnectionID); - - NOTIFY_OBSERVERS2(dboMainConnectionStateChanged, mainConnectionID, CS_DISCONNECTED) - NOTIFY_OBSERVERS1(dboRemovedMainConnection, mainConnectionID) + NOTIFY_OBSERVERS1(dboRemovedMainConnection, mainConnectionID) return (E_OK); } -- cgit v1.2.1