summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Linke <Christian.Linke@bmw.de>2016-08-30 09:47:30 -0700
committerChristian Linke <Christian.Linke@bmw.de>2016-08-30 09:47:30 -0700
commit84d0506d308be29b257fd80071d288e229789115 (patch)
treed402ea075691bd64443516836ba7f0221659b55a
parentcd57dcef3c36812bb8981871df60d83b3ba51d44 (diff)
downloadaudiomanager-84d0506d308be29b257fd80071d288e229789115.tar.gz
Improved the changes. Cleared wrongly issued errors.
Signed-off-by: Christian Linke <Christian.Linke@bmw.de>
-rw-r--r--AudioManagerCore/include/CAmRoutingSender.h16
-rw-r--r--AudioManagerCore/src/CAmControlSender.cpp4
-rw-r--r--AudioManagerCore/src/CAmRoutingReceiver.cpp15
-rw-r--r--AudioManagerCore/src/CAmRoutingSender.cpp22
4 files changed, 39 insertions, 18 deletions
diff --git a/AudioManagerCore/include/CAmRoutingSender.h b/AudioManagerCore/include/CAmRoutingSender.h
index 7bced64..8804d90 100644
--- a/AudioManagerCore/include/CAmRoutingSender.h
+++ b/AudioManagerCore/include/CAmRoutingSender.h
@@ -223,25 +223,29 @@ public:
class handleConnect : public handleDataBase
{
public:
- handleConnect(IAmRoutingSend* interface, const am_connectionID_t connectionID, IAmDatabaseHandler* databaseHandler) :
+ handleConnect(IAmRoutingSend* interface, const am_connectionID_t connectionID, IAmDatabaseHandler* databaseHandler) :
handleDataBase(interface,databaseHandler)
- ,mConnectionID(connectionID) {}
- ~handleConnect() {}
+ ,mConnectionID(connectionID)
+ ,mConnectionPending(true) {}
+ ~handleConnect();
am_Error_e writeDataToDatabase();
private:
am_connectionID_t mConnectionID;
+ bool mConnectionPending;
};
class handleDisconnect : public handleDataBase
{
public:
- handleDisconnect(IAmRoutingSend* interface, const am_connectionID_t connectionID, IAmDatabaseHandler* databaseHandler) :
+ handleDisconnect(IAmRoutingSend* interface, const am_connectionID_t connectionID, IAmDatabaseHandler* databaseHandler,CAmRoutingSender* routingSender) :
handleDataBase(interface,databaseHandler)
- ,mConnectionID(connectionID) {}
- ~handleDisconnect() {}
+ ,mConnectionID(connectionID)
+ ,mRoutingSender(routingSender){}
+ ~handleDisconnect();
am_Error_e writeDataToDatabase();
private:
am_connectionID_t mConnectionID;
+ CAmRoutingSender* mRoutingSender;
};
class handleSetVolumes : public handleDataBase
diff --git a/AudioManagerCore/src/CAmControlSender.cpp b/AudioManagerCore/src/CAmControlSender.cpp
index 1ca4500..a12373c 100644
--- a/AudioManagerCore/src/CAmControlSender.cpp
+++ b/AudioManagerCore/src/CAmControlSender.cpp
@@ -127,9 +127,9 @@ CAmControlSender::CAmControlSender(std::string controlPluginFile,CAmSocketHandle
- if (majorVersion < cMajorVersion || ((majorVersion == cMajorVersion) && (minorVersion > cMinorVersion)))
+ if (majorVersion < cMajorVersion || ((majorVersion == cMajorVersion) && (minorVersion < cMinorVersion)))
{
- logError("ControlSender::ControlSender: Interface Version of Controller too old, exiting now");
+ logError("ControlSender::ControlSender: Interface Version of Controller too old, required version:",ControlVersion," Controller Version:",version,"exiting now");
throw std::runtime_error("Interface Version of Controller too old");
}
}
diff --git a/AudioManagerCore/src/CAmRoutingReceiver.cpp b/AudioManagerCore/src/CAmRoutingReceiver.cpp
index 15b0f6a..103d35c 100644
--- a/AudioManagerCore/src/CAmRoutingReceiver.cpp
+++ b/AudioManagerCore/src/CAmRoutingReceiver.cpp
@@ -113,9 +113,8 @@ void CAmRoutingReceiver::ackDisconnect(const am_Handle_s handle, const am_connec
{
logInfo(__func__,"handle=",handle,"connectionID=",connectionID,"error=",error);
//only remove connection of handle was found
- if(mpRoutingSender->removeHandle(handle)==0)
+ if(mpRoutingSender->removeHandle(handle) == 0)
{
- mpDatabaseHandler->removeConnection(connectionID);
mpRoutingSender->removeConnectionLookup(connectionID);
}
mpControlSender->cbAckDisconnect(handle, error);
@@ -133,8 +132,10 @@ void CAmRoutingReceiver::ackSetSinkVolumeChange(const am_Handle_s handle, const
{
mpRoutingSender->writeToDatabaseAndRemove(handle);
}
-
- mpRoutingSender->removeHandle(handle);
+ else
+ {
+ mpRoutingSender->removeHandle(handle);
+ }
mpControlSender->cbAckSetSinkVolumeChange(handle, volume, error);
}
@@ -150,8 +151,10 @@ void CAmRoutingReceiver::ackSetSourceVolumeChange(const am_Handle_s handle, cons
{
mpRoutingSender->writeToDatabaseAndRemove(handle);
}
-
- mpRoutingSender->removeHandle(handle);
+ else
+ {
+ mpRoutingSender->removeHandle(handle);
+ }
mpControlSender->cbAckSetSourceVolumeChange(handle, volume, error);
}
diff --git a/AudioManagerCore/src/CAmRoutingSender.cpp b/AudioManagerCore/src/CAmRoutingSender.cpp
index 6dfc00a..93d5894 100644
--- a/AudioManagerCore/src/CAmRoutingSender.cpp
+++ b/AudioManagerCore/src/CAmRoutingSender.cpp
@@ -289,7 +289,7 @@ am_Error_e CAmRoutingSender::asyncDisconnect(am_Handle_s& handle, const am_conne
}
else
{
- auto handleData = std::make_shared<handleDisconnect>(iter->second,connectionID,mpDatabaseHandler);
+ auto handleData = std::make_shared<handleDisconnect>(iter->second,connectionID,mpDatabaseHandler,this);
handle = createHandle(handleData, am_Handle_e::H_DISCONNECT);
}
@@ -1076,7 +1076,6 @@ am_Error_e CAmRoutingSender::handleSinkVolume::writeDataToDatabase()
return (mpDatabaseHandler->changeSinkVolume(mSinkID,returnVolume()));
}
-
am_Error_e CAmRoutingSender::handleCrossFader::writeDataToDatabase()
{
return (mpDatabaseHandler->changeCrossFaderHotSink(mCrossfaderID, mHotSink));
@@ -1084,6 +1083,7 @@ am_Error_e CAmRoutingSender::handleCrossFader::writeDataToDatabase()
am_Error_e CAmRoutingSender::handleConnect::writeDataToDatabase()
{
+ mConnectionPending = false;
return (mpDatabaseHandler->changeConnectionFinal(mConnectionID));
}
@@ -1100,13 +1100,14 @@ am_Error_e CAmRoutingSender::handleSetVolumes::writeDataToDatabase()
{
if (iterator->volumeType==VT_SINK)
{
- mpDatabaseHandler->changeSinkVolume(iterator->volumeID.sink,iterator->volume);
+ return (mpDatabaseHandler->changeSinkVolume(iterator->volumeID.sink,iterator->volume));
}
else if (iterator->volumeType==VT_SOURCE)
{
- mpDatabaseHandler->changeSourceVolume(iterator->volumeID.source,iterator->volume);
+ return (mpDatabaseHandler->changeSourceVolume(iterator->volumeID.source,iterator->volume));
}
}
+ return (am_Error_e::E_WRONG_FORMAT);
}
am_Error_e CAmRoutingSender::handleSetSinkNotificationConfiguration::writeDataToDatabase()
@@ -1131,5 +1132,18 @@ am_Error_e CAmRoutingSender::removeConnectionLookup(const am_connectionID_t conn
return (E_UNKNOWN);
}
+CAmRoutingSender::handleConnect::~handleConnect()
+{
+ if (mConnectionPending)
+ {
+ mpDatabaseHandler->removeConnection(mConnectionID);
+ }
+}
+
+CAmRoutingSender::handleDisconnect::~handleDisconnect()
+{
+ mRoutingSender->removeConnectionLookup(mConnectionID);
+}
+
}