summaryrefslogtreecommitdiff
path: root/AudioManagerCore/src/CAmRoutingReceiver.cpp
diff options
context:
space:
mode:
authorMartin Koch <martin.koch@ese.de>2020-07-01 14:46:52 +0200
committerMartin Koch <martin.koch@ese.de>2020-07-01 14:46:52 +0200
commitefe087370361f5600e82243edfe4dcc64e0144b6 (patch)
treefebe1ad11f1af9d0d66c525a855192d85df9ca7e /AudioManagerCore/src/CAmRoutingReceiver.cpp
parente592ea695ace7c5dc9dfac835c144b6b54ab8eb5 (diff)
downloadaudiomanager-efe087370361f5600e82243edfe4dcc64e0144b6.tar.gz
AMCore: correct behavior regarding registration of early connections
- modify enterConnectionDB() and enterMainConnectionDB() to accept also connections using reserved (peeked-only) sources and/or sinks Signed-off-by: Martin Koch <martin.koch@ese.de>
Diffstat (limited to 'AudioManagerCore/src/CAmRoutingReceiver.cpp')
-rw-r--r--AudioManagerCore/src/CAmRoutingReceiver.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/AudioManagerCore/src/CAmRoutingReceiver.cpp b/AudioManagerCore/src/CAmRoutingReceiver.cpp
index 29aea65..56fb5e2 100644
--- a/AudioManagerCore/src/CAmRoutingReceiver.cpp
+++ b/AudioManagerCore/src/CAmRoutingReceiver.cpp
@@ -132,9 +132,18 @@ void CAmRoutingReceiver::ackDisconnect(const am_Handle_s handle, const am_connec
* E_NOT_POSSIBLE if the routing adapter is not prepared to take over
* full responsibility for all involved sources and sinks)
*/
-void CAmRoutingReceiver::ackTransferConnection(const am_Handle_s handle, const am_Error_e errorID)
+void CAmRoutingReceiver::ackTransferConnection(const am_Handle_s handle, const am_Error_e error)
{
+ if (error == E_OK)
+ {
+ mpRoutingSender->writeToDatabaseAndRemove(handle);
+ }
+ else
+ {
+ mpRoutingSender->removeHandle(handle);
+ }
+ mpControlSender->cbAckTransferConnection(handle, error);
}
void CAmRoutingReceiver::ackSetSinkVolumeChange(const am_Handle_s handle, const am_volume_t volume, const am_Error_e error)
@@ -257,6 +266,7 @@ am_Error_e CAmRoutingReceiver::registerEarlyConnection(am_domainID_t domainID
}
am_MainConnection_s mainConnectionData;
+ mainConnectionData.mainConnectionID = 0;
mainConnectionData.sourceID = segmentList.front().sourceID;
mainConnectionData.sinkID = segmentList.back().sinkID;
mainConnectionData.connectionState = state;
@@ -268,7 +278,7 @@ am_Error_e CAmRoutingReceiver::registerEarlyConnection(am_domainID_t domainID
conn.sinkID = segment.sinkID;
conn.connectionFormat = segment.connectionFormat;
conn.connectionID = 0;
- am_Error_e success = mpDatabaseHandler->enterConnectionDB(conn, conn.connectionID);
+ am_Error_e success = mpDatabaseHandler->enterConnectionDB(conn, conn.connectionID, true);
switch (success)
{
case E_OK:
@@ -284,7 +294,7 @@ am_Error_e CAmRoutingReceiver::registerEarlyConnection(am_domainID_t domainID
}
}
- am_Error_e success = mpDatabaseHandler->enterMainConnectionDB(mainConnectionData, mainConnectionData.mainConnectionID);
+ am_Error_e success = mpDatabaseHandler->enterMainConnectionDB(mainConnectionData, mainConnectionData.mainConnectionID, true);
switch (success)
{
case E_OK: