summaryrefslogtreecommitdiff
path: root/AudioManagerCore
diff options
context:
space:
mode:
Diffstat (limited to 'AudioManagerCore')
-rw-r--r--AudioManagerCore/include/CAmControlReceiver.h1
-rw-r--r--AudioManagerCore/include/CAmControlSender.h2
-rw-r--r--AudioManagerCore/include/CAmRoutingReceiver.h2
-rw-r--r--AudioManagerCore/src/CAmControlReceiver.cpp5
-rw-r--r--AudioManagerCore/src/CAmControlSender.cpp4
-rw-r--r--AudioManagerCore/src/CAmRoutingReceiver.cpp43
6 files changed, 42 insertions, 15 deletions
diff --git a/AudioManagerCore/include/CAmControlReceiver.h b/AudioManagerCore/include/CAmControlReceiver.h
index a7cb394..73aac03 100644
--- a/AudioManagerCore/include/CAmControlReceiver.h
+++ b/AudioManagerCore/include/CAmControlReceiver.h
@@ -103,6 +103,7 @@ public:
am_Error_e getGatewayInfoDB(const am_gatewayID_t gatewayID, am_Gateway_s &gatewayData) const;
am_Error_e getConverterInfoDB(const am_converterID_t converterID, am_Converter_s &converterData) const;
am_Error_e getCrossfaderInfoDB(const am_crossfaderID_t crossfaderID, am_Crossfader_s &crossfaderData) const;
+ am_Error_e getConnectionInfoDB(const am_connectionID_t connectionID, am_Connection_s &connectionData) const;
am_Error_e getMainConnectionInfoDB(const am_mainConnectionID_t mainConnectionID, am_MainConnection_s &mainConnectionData) const;
am_Error_e getListSinksOfDomain(const am_domainID_t domainID, std::vector<am_sinkID_t> &listSinkID) const;
am_Error_e getListSourcesOfDomain(const am_domainID_t domainID, std::vector<am_sourceID_t> &listSourceID) const;
diff --git a/AudioManagerCore/include/CAmControlSender.h b/AudioManagerCore/include/CAmControlSender.h
index 494f7f3..f90116d 100644
--- a/AudioManagerCore/include/CAmControlSender.h
+++ b/AudioManagerCore/include/CAmControlSender.h
@@ -72,7 +72,7 @@ public:
am_Error_e hookSystemRegisterCrossfader(const am_Crossfader_s &crossfaderData, am_crossfaderID_t &crossfaderID);
am_Error_e hookSystemDeregisterCrossfader(const am_crossfaderID_t crossfaderID);
am_Error_e hookSystemRegisterEarlyConnection(am_domainID_t domainID
- , const am_MainConnection_s &mainConnectionData);
+ , const am_MainConnection_s &mainConnectionData, const am_Route_s &route);
void hookSystemSinkVolumeTick(const am_Handle_s handle, const am_sinkID_t sinkID, const am_volume_t volume);
void hookSystemSourceVolumeTick(const am_Handle_s handle, const am_sourceID_t sourceID, const am_volume_t volume);
void hookSystemInterruptStateChange(const am_sourceID_t sourceID, const am_InterruptState_e interruptState);
diff --git a/AudioManagerCore/include/CAmRoutingReceiver.h b/AudioManagerCore/include/CAmRoutingReceiver.h
index 3f85ba7..fe12ccd 100644
--- a/AudioManagerCore/include/CAmRoutingReceiver.h
+++ b/AudioManagerCore/include/CAmRoutingReceiver.h
@@ -60,7 +60,7 @@ public:
am_Error_e peekDomain(const std::string &name, am_domainID_t &domainID);
am_Error_e registerDomain(const am_Domain_s &domainData, am_domainID_t &domainID);
am_Error_e deregisterDomain(const am_domainID_t domainID);
- am_Error_e registerEarlyConnection(am_domainID_t domainID, const std::vector< am_Connection_s > &route
+ am_Error_e registerEarlyConnection(am_domainID_t domainID, const am_Route_s &route
, am_ConnectionState_e state);
am_Error_e registerGateway(const am_Gateway_s &gatewayData, am_gatewayID_t &gatewayID);
am_Error_e registerConverter(const am_Converter_s &converterData, am_converterID_t &converterID);
diff --git a/AudioManagerCore/src/CAmControlReceiver.cpp b/AudioManagerCore/src/CAmControlReceiver.cpp
index bbd1116..737e659 100644
--- a/AudioManagerCore/src/CAmControlReceiver.cpp
+++ b/AudioManagerCore/src/CAmControlReceiver.cpp
@@ -291,6 +291,11 @@ am_Error_e CAmControlReceiver::getSourceInfoDB(const am_sourceID_t sourceID, am_
return (mDatabaseHandler->getSourceInfoDB(sourceID, sourceData));
}
+am_Error_e CAmControlReceiver::getConnectionInfoDB(const am_connectionID_t connectionID, am_Connection_s &connectionData) const
+{
+ return (mDatabaseHandler->getConnectionInfoDB(connectionID, connectionData));
+}
+
am_Error_e CAmControlReceiver::getMainConnectionInfoDB(const am_mainConnectionID_t mainConnectionID, am_MainConnection_s &mainConnectionData) const
{
return (mDatabaseHandler->getMainConnectionInfoDB(mainConnectionID, mainConnectionData));
diff --git a/AudioManagerCore/src/CAmControlSender.cpp b/AudioManagerCore/src/CAmControlSender.cpp
index 0d28dfb..6bd4f07 100644
--- a/AudioManagerCore/src/CAmControlSender.cpp
+++ b/AudioManagerCore/src/CAmControlSender.cpp
@@ -320,10 +320,10 @@ am_Error_e CAmControlSender::hookSystemDeregisterCrossfader(const am_crossfaderI
}
am_Error_e CAmControlSender::hookSystemRegisterEarlyConnection(am_domainID_t domainID
- , const am_MainConnection_s &mainConnectionData)
+ , const am_MainConnection_s &mainConnectionData, const am_Route_s &route)
{
assert(mController);
- return mController->hookSystemRegisterEarlyMainConnection(domainID, mainConnectionData);
+ return mController->hookSystemRegisterEarlyMainConnection(domainID, mainConnectionData, route);
}
void CAmControlSender::hookSystemSinkVolumeTick(const am_Handle_s handle, const am_sinkID_t sinkID, const am_volume_t volume)
diff --git a/AudioManagerCore/src/CAmRoutingReceiver.cpp b/AudioManagerCore/src/CAmRoutingReceiver.cpp
index 8f4d1ba..29aea65 100644
--- a/AudioManagerCore/src/CAmRoutingReceiver.cpp
+++ b/AudioManagerCore/src/CAmRoutingReceiver.cpp
@@ -247,37 +247,58 @@ am_Error_e CAmRoutingReceiver::deregisterDomain(const am_domainID_t domainID)
}
am_Error_e CAmRoutingReceiver::registerEarlyConnection(am_domainID_t domainID
- , const std::vector< am_Connection_s > &route, am_ConnectionState_e state)
+ , const am_Route_s &route, am_ConnectionState_e state)
{
- if (route.size() < 1)
+ const auto &segmentList = route.route;
+ if (segmentList.size() < 1)
{
- logWarning(__METHOD_NAME__, "route empty");
+ logError(__METHOD_NAME__, "empty route from domain", domainID);
return E_NOT_POSSIBLE;
}
am_MainConnection_s mainConnectionData;
- mainConnectionData.sourceID = route.front().sourceID;
- mainConnectionData.sinkID = route.back().sinkID;
+ mainConnectionData.sourceID = segmentList.front().sourceID;
+ mainConnectionData.sinkID = segmentList.back().sinkID;
mainConnectionData.connectionState = state;
- mainConnectionData.listConnectionID.reserve(route.size());
- for (auto & conn : route)
+ mainConnectionData.listConnectionID.reserve(segmentList.size());
+ for (const auto &segment : segmentList)
{
- am_connectionID_t connectionID;
- am_Error_e success = mpDatabaseHandler->enterConnectionDB(conn, connectionID);
+ am_Connection_s conn;
+ conn.sourceID = segment.sourceID;
+ conn.sinkID = segment.sinkID;
+ conn.connectionFormat = segment.connectionFormat;
+ conn.connectionID = 0;
+ am_Error_e success = mpDatabaseHandler->enterConnectionDB(conn, conn.connectionID);
switch (success)
{
case E_OK:
case E_ALREADY_EXISTS:
case E_NO_CHANGE:
- mainConnectionData.listConnectionID.push_back(connectionID);
+ mainConnectionData.listConnectionID.push_back(conn.connectionID);
break;
default:
+ logError(__METHOD_NAME__, "failed to enter connection segment", conn.sourceID
+ , "to", conn.sinkID, "from domain", domainID, "error=", success);
return success;
}
}
- return mpControlSender->hookSystemRegisterEarlyConnection(domainID, mainConnectionData);
+ am_Error_e success = mpDatabaseHandler->enterMainConnectionDB(mainConnectionData, mainConnectionData.mainConnectionID);
+ switch (success)
+ {
+ case E_OK:
+ case E_ALREADY_EXISTS:
+ case E_NO_CHANGE:
+ break;
+
+ default:
+ logError(__METHOD_NAME__, "failed to enter main connection", mainConnectionData.sourceID
+ , "to", mainConnectionData.sinkID, "from domain", domainID, "error=", success);
+ return success;
+ }
+
+ return mpControlSender->hookSystemRegisterEarlyConnection(domainID, mainConnectionData, route);
}
am_Error_e CAmRoutingReceiver::registerGateway(const am_Gateway_s &gatewayData, am_gatewayID_t &gatewayID)