diff options
author | Martin Koch <martin.koch@ese.de> | 2020-07-01 14:46:52 +0200 |
---|---|---|
committer | Martin Koch <martin.koch@ese.de> | 2020-07-01 14:46:52 +0200 |
commit | efe087370361f5600e82243edfe4dcc64e0144b6 (patch) | |
tree | febe1ad11f1af9d0d66c525a855192d85df9ca7e /AudioManagerCore/src/CAmRoutingReceiver.cpp | |
parent | e592ea695ace7c5dc9dfac835c144b6b54ab8eb5 (diff) | |
download | audiomanager-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.cpp | 16 |
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: |