summaryrefslogtreecommitdiff
path: root/PluginRoutingInterfaceDbus
diff options
context:
space:
mode:
authorNrusingh Dash <ndash@jp.adit-jv.com>2013-02-26 23:56:44 +0900
committerChristian Linke <christian.linke@bmw.de>2013-02-27 12:32:41 +0100
commitc25c9b1947474153ff34d8363b2c9e28cad78857 (patch)
tree6eb2ec71f19eb14f42cfc9cea2637d8850608d23 /PluginRoutingInterfaceDbus
parent52a7016213c39ec4ffdb79826ab407ce40ba5749 (diff)
downloadaudiomanager-c25c9b1947474153ff34d8363b2c9e28cad78857.tar.gz
- changed domainData, sourceData, sinkData, gatewayData, crossfaderData to D-Bus Struct - confirmRoutingReady, confirmRoutingRundown, hookDomainRegistrationComplete should reply even return type on D-Bus is void - to parse domainID "getUInt" is used instead of "getInt"
Signed-off-by: Nrusingh Dash <ndash@jp.adit-jv.com>
Diffstat (limited to 'PluginRoutingInterfaceDbus')
-rw-r--r--PluginRoutingInterfaceDbus/include/CAmDbusMessageHandler.h1
-rw-r--r--PluginRoutingInterfaceDbus/include/RoutingReceiver.xml10
-rw-r--r--PluginRoutingInterfaceDbus/src/CAmDbusMessageHandler.cpp287
-rw-r--r--PluginRoutingInterfaceDbus/src/IAmRoutingReceiverShadow.cpp26
4 files changed, 198 insertions, 126 deletions
diff --git a/PluginRoutingInterfaceDbus/include/CAmDbusMessageHandler.h b/PluginRoutingInterfaceDbus/include/CAmDbusMessageHandler.h
index 03d9eca..62ad421 100644
--- a/PluginRoutingInterfaceDbus/include/CAmDbusMessageHandler.h
+++ b/PluginRoutingInterfaceDbus/include/CAmDbusMessageHandler.h
@@ -93,6 +93,7 @@ public:
am_Source_s getSourceData();
am_Sink_s getSinkData();
am_Gateway_s getGatewayData();
+ am_Crossfader_s getCrossfaderData();
am_MainSoundProperty_s getMainSoundProperty();
/**
diff --git a/PluginRoutingInterfaceDbus/include/RoutingReceiver.xml b/PluginRoutingInterfaceDbus/include/RoutingReceiver.xml
index 76f998d..5fb390a 100644
--- a/PluginRoutingInterfaceDbus/include/RoutingReceiver.xml
+++ b/PluginRoutingInterfaceDbus/include/RoutingReceiver.xml
@@ -66,7 +66,7 @@
<arg name="error" type="q" direction="out" />
</method>
<method name="registerDomain">
- <arg name="domaindata" type="qsssbbq" direction="in" /> <!-- am_domainID_t domainID; std::string name; std::string busname; std::string nodename; bool early; bool complete; am_DomainState_e state; -->
+ <arg name="domaindata" type="(qsssbbq)" direction="in" /> <!-- am_domainID_t domainID; std::string name; std::string busname; std::string nodename; bool early; bool complete; am_DomainState_e state; -->
<arg name="returnBusname" type="s" direction="in" /> <!-- the busname for all communication to this domain -->
<arg name="returnPath" type="s" direction="in" /> <!-- the path for all communication to this domain -->
<arg name="returnInterface" type="s" direction="in" /> <!-- the interface for all communication to this domain -->
@@ -78,7 +78,7 @@
<arg name="error" type="q" direction="out" />
</method>
<method name="registerGateway">
- <arg name="gatewayData" type="qsqqqqqa(q)a(q)a(b)" direction="in" /> <!-- am_gatewayID_t gatewayID; std::string name; am_sinkID_t sinkID; am_sourceID_t sourceID; am_domainID_t domainSinkID; am_domainID_t domainSourceID; am_domainID_t controlDomainID; std::vector<am_ConnectionFormat_e> listSourceFormats; std::vector<am_ConnectionFormat_e> listSinkFormats; std::vector<bool> convertionMatrix; -->
+ <arg name="gatewayData" type="(qsqqqqqa(q)a(q)a(b))" direction="in" /> <!-- am_gatewayID_t gatewayID; std::string name; am_sinkID_t sinkID; am_sourceID_t sourceID; am_domainID_t domainSinkID; am_domainID_t domainSourceID; am_domainID_t controlDomainID; std::vector<am_ConnectionFormat_e> listSourceFormats; std::vector<am_ConnectionFormat_e> listSinkFormats; std::vector<bool> convertionMatrix; -->
<arg name="gatewayID" type="q" direction="out" />
<arg name="error" type="q" direction="out" />
</method>
@@ -92,7 +92,7 @@
<arg name="error" type="q" direction="out" />
</method>
<method name="registerSink">
- <arg name="sinkData" type="qsqqnb(nn)nna(nn)ana(nn)" direction="in" /> <!-- am_sinkID_t sinkID; std::string name; am_domainID_t domainID; am_sinkClass_t sinkClassID; am_volume_t volume; bool visible; am_Availability_s available; am_MuteState_e muteState;am_mainVolume_t mainVolume; std::vector<am_SoundProperty_s> listSoundProperties; std::vector<am_ConnectionFormat_e> listConnectionFormats; std::vector<am_MainSoundProperty_s> listMainSoundProperties; -->
+ <arg name="sinkData" type="(qsqqnb(nn)nna(nn)ana(nn))" direction="in" /> <!-- am_sinkID_t sinkID; std::string name; am_domainID_t domainID; am_sinkClass_t sinkClassID; am_volume_t volume; bool visible; am_Availability_s available; am_MuteState_e muteState;am_mainVolume_t mainVolume; std::vector<am_SoundProperty_s> listSoundProperties; std::vector<am_ConnectionFormat_e> listConnectionFormats; std::vector<am_MainSoundProperty_s> listMainSoundProperties; -->
<arg name="sinkID" type="q" direction="out" />
<arg name="error" type="q" direction="out" />
</method>
@@ -106,7 +106,7 @@
<arg name="error" type="i" direction="out" />
</method>
<method name="registerSource">
- <arg name="sourceData" type="qqsqqnb(nn)qa(nn)ana(nn)" direction="in" /> <!-- am_sourceID_t sourceID; am_domainID_t domainID; std::string name; am_sourceClass_t sourceClassID; am_SourceState_e sourceState; am_volume_t volume; bool visible; am_Availability_s available; am_InterruptState_e interruptState; std::vector<am_SoundProperty_s> listSoundProperties; std::vector<am_ConnectionFormat_e> listConnectionFormats; std::vector<am_MainSoundProperty_s> listMainSoundProperties; -->
+ <arg name="sourceData" type="(qqsqqnb(nn)qa(nn)ana(nn))" direction="in" /> <!-- am_sourceID_t sourceID; am_domainID_t domainID; std::string name; am_sourceClass_t sourceClassID; am_SourceState_e sourceState; am_volume_t volume; bool visible; am_Availability_s available; am_InterruptState_e interruptState; std::vector<am_SoundProperty_s> listSoundProperties; std::vector<am_ConnectionFormat_e> listConnectionFormats; std::vector<am_MainSoundProperty_s> listMainSoundProperties; -->
<arg name="sourceID" type="q" direction="out" />
<arg name="error" type="i" direction="out" />
</method>
@@ -115,7 +115,7 @@
<arg name="error" type="i" direction="out" />
</method>
<method name="registerCrossfader">
- <arg name="crossfaderData" type="qsqqqq" direction="in" /> <!-- am_crossfaderID_t crossfaderID; std::string name; am_sinkID_t sinkID_A; am_sinkID_t sinkID_B; am_sourceID_t sourceID; am_HotSink_e hotSink; -->
+ <arg name="crossfaderData" type="(qsqqqq)" direction="in" /> <!-- am_crossfaderID_t crossfaderID; std::string name; am_sinkID_t sinkID_A; am_sinkID_t sinkID_B; am_sourceID_t sourceID; am_HotSink_e hotSink; -->
<arg name="crossfaderID" type="q" direction="out" />
<arg name="error" type="i" direction="out" />
</method>
diff --git a/PluginRoutingInterfaceDbus/src/CAmDbusMessageHandler.cpp b/PluginRoutingInterfaceDbus/src/CAmDbusMessageHandler.cpp
index 82f912a..2591012 100644
--- a/PluginRoutingInterfaceDbus/src/CAmDbusMessageHandler.cpp
+++ b/PluginRoutingInterfaceDbus/src/CAmDbusMessageHandler.cpp
@@ -335,149 +335,222 @@ std::vector<am_EarlyData_s> CAmRoutingDbusMessageHandler::getEarlyData()
am_Domain_s CAmRoutingDbusMessageHandler::getDomainData()
{
am_Domain_s domainData;
- domainData.domainID = static_cast<am_domainID_t>(getUInt());
- domainData.name = getString();
- domainData.busname = getString();
- domainData.nodename = getString();
- domainData.early = getBool();
- domainData.complete = getBool();
- domainData.state = static_cast<am_DomainState_e>(getUInt());
+ DBusMessageIter domainDataIter;
+
+ if (DBUS_TYPE_STRUCT != dbus_message_iter_get_arg_type(&mDBusMessageIter))
+ {
+ log(&routingDbus, DLT_LOG_ERROR, "CAmRoutingDbusMessageHandler::getDomainData DBUS handler argument is no struct!");
+ mErrorName = std::string(DBUS_ERROR_INVALID_ARGS);
+ mErrorMsg = "DBus argument is no struct";
+ }
+ else
+ {
+ dbus_message_iter_recurse(&mDBusMessageIter, &domainDataIter);
+ domainData.domainID = static_cast<am_domainID_t>(getUInt(domainDataIter, true));
+ domainData.name = getString(domainDataIter, true);
+ domainData.busname = getString(domainDataIter, true);
+ domainData.nodename = getString(domainDataIter, true);
+ domainData.early = getBool(domainDataIter, true);
+ domainData.complete = getBool(domainDataIter, true);
+ domainData.state = static_cast<am_DomainState_e>(getUInt(domainDataIter, false));
+ dbus_message_iter_next(&mDBusMessageIter);
+ }
return (domainData);
}
am_Source_s CAmRoutingDbusMessageHandler::getSourceData()
{
am_Source_s sourceData;
- DBusMessageIter availIter, arrayIter, structIter;
+ DBusMessageIter sourceDataIter, availIter, arrayIter, structIter;
am_SoundProperty_s soundProperty;
am_ConnectionFormat_e connectionFormat;
am_MainSoundProperty_s mainSoundProperty;
- sourceData.sourceID = static_cast<am_sourceID_t>(getUInt());
- sourceData.domainID = static_cast<am_domainID_t>(getUInt());
- sourceData.name = getString();
- sourceData.sourceClassID = static_cast<am_sourceClass_t>(getUInt());
- sourceData.sourceState = static_cast<am_SourceState_e>(getUInt());
- sourceData.volume = static_cast<am_volume_t>(getInt());
- sourceData.visible = getBool();
- dbus_message_iter_recurse(&mDBusMessageIter, &availIter);
- sourceData.available.availability = static_cast<am_Availability_e>(getInt(availIter, true));
- sourceData.available.availabilityReason = static_cast<am_AvailabilityReason_e>(getInt(availIter, false));
- dbus_message_iter_next(&mDBusMessageIter);
- sourceData.interruptState = static_cast<am_InterruptState_e>(getUInt());
- dbus_message_iter_recurse(&mDBusMessageIter, &arrayIter);
- do
- {
- dbus_message_iter_recurse(&arrayIter, &structIter);
- soundProperty.type = static_cast<am_SoundPropertyType_e>(getInt(structIter, true));
- soundProperty.value = static_cast<int16_t>(getInt(structIter, false));
- sourceData.listSoundProperties.push_back(soundProperty);
- } while (dbus_message_iter_next(&arrayIter));
- dbus_message_iter_next(&mDBusMessageIter);
- dbus_message_iter_recurse(&mDBusMessageIter, &arrayIter);
- do
- {
- connectionFormat = static_cast<am_ConnectionFormat_e>(getInt(arrayIter, false));
- sourceData.listConnectionFormats.push_back(connectionFormat);
- } while (dbus_message_iter_next(&arrayIter));
- dbus_message_iter_next(&mDBusMessageIter);
- dbus_message_iter_recurse(&mDBusMessageIter, &arrayIter);
- do
+ if (DBUS_TYPE_STRUCT != dbus_message_iter_get_arg_type(&mDBusMessageIter))
{
- dbus_message_iter_recurse(&arrayIter, &structIter);
- mainSoundProperty.type = static_cast<am_MainSoundPropertyType_e>(getInt(structIter, true));
- mainSoundProperty.value = static_cast<int16_t>(getInt(structIter, false));
- sourceData.listMainSoundProperties.push_back(mainSoundProperty);
- } while (dbus_message_iter_next(&arrayIter));
+ log(&routingDbus, DLT_LOG_ERROR, "CAmRoutingDbusMessageHandler::getSourceData DBUS handler argument is no struct!");
+ mErrorName = std::string(DBUS_ERROR_INVALID_ARGS);
+ mErrorMsg = "DBus argument is no struct";
+ }
+ else
+ {
+ dbus_message_iter_recurse(&mDBusMessageIter, &sourceDataIter);
+ sourceData.sourceID = static_cast<am_sourceID_t>(getUInt(sourceDataIter, true));
+ sourceData.domainID = static_cast<am_domainID_t>(getUInt(sourceDataIter, true));
+ sourceData.name = getString(sourceDataIter, true);
+ sourceData.sourceClassID = static_cast<am_sourceClass_t>(getUInt(sourceDataIter, true));
+ sourceData.sourceState = static_cast<am_SourceState_e>(getUInt(sourceDataIter, true));
+ sourceData.volume = static_cast<am_volume_t>(getInt(sourceDataIter, true));
+ sourceData.visible = getBool(sourceDataIter, true);
+ dbus_message_iter_recurse(&sourceDataIter, &availIter);
+ sourceData.available.availability = static_cast<am_Availability_e>(getInt(availIter, true));
+ sourceData.available.availabilityReason = static_cast<am_AvailabilityReason_e>(getInt(availIter, false));
+ dbus_message_iter_next(&sourceDataIter);
+ sourceData.interruptState = static_cast<am_InterruptState_e>(getUInt(sourceDataIter, true));
+ dbus_message_iter_recurse(&sourceDataIter, &arrayIter);
+ do
+ {
+ dbus_message_iter_recurse(&arrayIter, &structIter);
+ soundProperty.type = static_cast<am_SoundPropertyType_e>(getInt(structIter, true));
+ soundProperty.value = static_cast<int16_t>(getInt(structIter, false));
+ sourceData.listSoundProperties.push_back(soundProperty);
+ } while (dbus_message_iter_next(&arrayIter));
+ dbus_message_iter_next(&sourceDataIter);
+ dbus_message_iter_recurse(&sourceDataIter, &arrayIter);
+ do
+ {
+ connectionFormat = static_cast<am_ConnectionFormat_e>(getInt(arrayIter, false));
+ sourceData.listConnectionFormats.push_back(connectionFormat);
+ } while (dbus_message_iter_next(&arrayIter));
+ dbus_message_iter_next(&sourceDataIter);
+
+ dbus_message_iter_recurse(&sourceDataIter, &arrayIter);
+ do
+ {
+ dbus_message_iter_recurse(&arrayIter, &structIter);
+ mainSoundProperty.type = static_cast<am_MainSoundPropertyType_e>(getInt(structIter, true));
+ mainSoundProperty.value = static_cast<int16_t>(getInt(structIter, false));
+ sourceData.listMainSoundProperties.push_back(mainSoundProperty);
+ } while (dbus_message_iter_next(&arrayIter));
+ dbus_message_iter_next(&mDBusMessageIter);
+ }
return (sourceData);
}
am_Sink_s CAmRoutingDbusMessageHandler::getSinkData()
{
am_Sink_s sinkData;
- DBusMessageIter structIter, availIter, arrayIter;
+ DBusMessageIter sinkDataIter, structIter, availIter, arrayIter;
am_SoundProperty_s soundProperty;
am_ConnectionFormat_e connectionFormat;
am_MainSoundProperty_s mainSoundProperty;
- sinkData.sinkID = static_cast<am_sinkID_t>(getUInt());
- sinkData.name = getString();
- sinkData.domainID = static_cast<am_domainID_t>(getUInt());
- sinkData.sinkClassID = static_cast<am_sinkClass_t>(getUInt());
- sinkData.volume = static_cast<am_volume_t>(getInt());
- sinkData.visible = getBool();
- dbus_message_iter_recurse(&mDBusMessageIter, &availIter);
- sinkData.available.availability = static_cast<am_Availability_e>(getInt(availIter, true));
- sinkData.available.availabilityReason = static_cast<am_AvailabilityReason_e>(getInt(availIter, false));
- dbus_message_iter_next(&mDBusMessageIter);
- sinkData.muteState = static_cast<am_MuteState_e>(getInt());
- sinkData.mainVolume = static_cast<am_mainVolume_t>(getInt());
- dbus_message_iter_recurse(&mDBusMessageIter, &arrayIter);
- do
- {
- dbus_message_iter_recurse(&arrayIter, &structIter);
- soundProperty.type = static_cast<am_SoundPropertyType_e>(getInt(structIter, true));
- soundProperty.value = static_cast<int16_t>(getInt(structIter, false));
- sinkData.listSoundProperties.push_back(soundProperty);
- } while (dbus_message_iter_next(&arrayIter));
-
- dbus_message_iter_next(&mDBusMessageIter);
-
- dbus_message_iter_recurse(&mDBusMessageIter, &arrayIter);
- do
+ if (DBUS_TYPE_STRUCT != dbus_message_iter_get_arg_type(&mDBusMessageIter))
{
- connectionFormat = static_cast<am_ConnectionFormat_e>(getInt(arrayIter, false));
- sinkData.listConnectionFormats.push_back(connectionFormat);
- } while (dbus_message_iter_next(&arrayIter));
- dbus_message_iter_next(&mDBusMessageIter);
-
- dbus_message_iter_recurse(&mDBusMessageIter, &arrayIter);
- do
+ log(&routingDbus, DLT_LOG_ERROR, "CAmRoutingDbusMessageHandler::getSinkData DBUS handler argument is no struct!");
+ mErrorName = std::string(DBUS_ERROR_INVALID_ARGS);
+ mErrorMsg = "DBus argument is no struct";
+ }
+ else
{
- dbus_message_iter_recurse(&arrayIter, &structIter);
- mainSoundProperty.type = static_cast<am_MainSoundPropertyType_e>(getInt(structIter, true));
- mainSoundProperty.value = static_cast<int16_t>(getInt(structIter, false));
- sinkData.listMainSoundProperties.push_back(mainSoundProperty);
- } while (dbus_message_iter_next(&arrayIter));
+ dbus_message_iter_recurse(&mDBusMessageIter, &sinkDataIter);
+ sinkData.sinkID = static_cast<am_sinkID_t>(getUInt(sinkDataIter, true));
+ sinkData.name = getString(sinkDataIter, true);
+ sinkData.domainID = static_cast<am_domainID_t>(getUInt(sinkDataIter, true));
+ sinkData.sinkClassID = static_cast<am_sinkClass_t>(getUInt(sinkDataIter, true));
+ sinkData.volume = static_cast<am_volume_t>(getInt(sinkDataIter, true));
+ sinkData.visible = getBool(sinkDataIter, true);
+ dbus_message_iter_recurse(&sinkDataIter, &availIter);
+ sinkData.available.availability = static_cast<am_Availability_e>(getInt(availIter, true));
+ sinkData.available.availabilityReason = static_cast<am_AvailabilityReason_e>(getInt(availIter, false));
+ dbus_message_iter_next(&sinkDataIter);
+ sinkData.muteState = static_cast<am_MuteState_e>(getInt(sinkDataIter, true));
+ sinkData.mainVolume = static_cast<am_mainVolume_t>(getInt(sinkDataIter, true));
+
+ dbus_message_iter_recurse(&sinkDataIter, &arrayIter);
+ do
+ {
+ dbus_message_iter_recurse(&arrayIter, &structIter);
+ soundProperty.type = static_cast<am_SoundPropertyType_e>(getInt(structIter, true));
+ soundProperty.value = static_cast<int16_t>(getInt(structIter, false));
+ sinkData.listSoundProperties.push_back(soundProperty);
+ } while (dbus_message_iter_next(&arrayIter));
+
+ dbus_message_iter_next(&sinkDataIter);
+
+ dbus_message_iter_recurse(&sinkDataIter, &arrayIter);
+ do
+ {
+ connectionFormat = static_cast<am_ConnectionFormat_e>(getInt(arrayIter, false));
+ sinkData.listConnectionFormats.push_back(connectionFormat);
+ } while (dbus_message_iter_next(&arrayIter));
+ dbus_message_iter_next(&sinkDataIter);
+
+ dbus_message_iter_recurse(&sinkDataIter, &arrayIter);
+ do
+ {
+ dbus_message_iter_recurse(&arrayIter, &structIter);
+ mainSoundProperty.type = static_cast<am_MainSoundPropertyType_e>(getInt(structIter, true));
+ mainSoundProperty.value = static_cast<int16_t>(getInt(structIter, false));
+ sinkData.listMainSoundProperties.push_back(mainSoundProperty);
+ } while (dbus_message_iter_next(&arrayIter));
+ dbus_message_iter_next(&mDBusMessageIter);
+ }
return (sinkData);
}
am_Gateway_s CAmRoutingDbusMessageHandler::getGatewayData()
{
am_Gateway_s gatewayData;
- DBusMessageIter arrayIter;
+ DBusMessageIter gatewayDataIter, arrayIter;
am_ConnectionFormat_e connectionFormat;
bool convertion;
- gatewayData.gatewayID = static_cast<am_gatewayID_t>(getUInt());
- gatewayData.name = getString();
- gatewayData.sinkID = static_cast<am_sinkID_t>(getUInt());
- gatewayData.sourceID = static_cast<am_sourceID_t>(getUInt());
- gatewayData.domainSinkID = static_cast<am_domainID_t>(getUInt());
- gatewayData.domainSourceID = static_cast<am_domainID_t>(getUInt());
- gatewayData.controlDomainID = static_cast<am_domainID_t>(getUInt());
- do
- {
- dbus_message_iter_recurse(&mDBusMessageIter, &arrayIter);
- connectionFormat = static_cast<am_ConnectionFormat_e>(getUInt(arrayIter, false));
- gatewayData.listSourceFormats.push_back(connectionFormat);
- } while (dbus_message_iter_next(&arrayIter));
- dbus_message_iter_next(&mDBusMessageIter);
- do
+ if (DBUS_TYPE_STRUCT != dbus_message_iter_get_arg_type(&mDBusMessageIter))
{
- dbus_message_iter_recurse(&mDBusMessageIter, &arrayIter);
- connectionFormat = static_cast<am_ConnectionFormat_e>(getUInt(arrayIter, false));
- gatewayData.listSinkFormats.push_back(connectionFormat);
- } while (dbus_message_iter_next(&arrayIter));
- dbus_message_iter_next(&mDBusMessageIter);
- do
+ log(&routingDbus, DLT_LOG_ERROR, "CAmRoutingDbusMessageHandler::getDomainData DBUS handler argument is no struct!");
+ mErrorName = std::string(DBUS_ERROR_INVALID_ARGS);
+ mErrorMsg = "DBus argument is no struct";
+ }
+ else
{
- dbus_message_iter_recurse(&mDBusMessageIter, &arrayIter);
- convertion = getBool(arrayIter, false);
- gatewayData.convertionMatrix.push_back(convertion);
- } while (dbus_message_iter_next(&arrayIter));
+ dbus_message_iter_recurse(&mDBusMessageIter, &gatewayDataIter);
+ gatewayData.gatewayID = static_cast<am_gatewayID_t>(getUInt(gatewayDataIter, true));
+ gatewayData.name = getString(gatewayDataIter, true);
+ gatewayData.sinkID = static_cast<am_sinkID_t>(getUInt(gatewayDataIter, true));
+ gatewayData.sourceID = static_cast<am_sourceID_t>(getUInt(gatewayDataIter, true));
+ gatewayData.domainSinkID = static_cast<am_domainID_t>(getUInt(gatewayDataIter, true));
+ gatewayData.domainSourceID = static_cast<am_domainID_t>(getUInt(gatewayDataIter, true));
+ gatewayData.controlDomainID = static_cast<am_domainID_t>(getUInt(gatewayDataIter, true));
+ do
+ {
+ dbus_message_iter_recurse(&gatewayDataIter, &arrayIter);
+ connectionFormat = static_cast<am_ConnectionFormat_e>(getUInt(arrayIter, false));
+ gatewayData.listSourceFormats.push_back(connectionFormat);
+ } while (dbus_message_iter_next(&arrayIter));
+ dbus_message_iter_next(&gatewayDataIter);
+ do
+ {
+ dbus_message_iter_recurse(&gatewayDataIter, &arrayIter);
+ connectionFormat = static_cast<am_ConnectionFormat_e>(getUInt(arrayIter, false));
+ gatewayData.listSinkFormats.push_back(connectionFormat);
+ } while (dbus_message_iter_next(&arrayIter));
+ dbus_message_iter_next(&gatewayDataIter);
+ do
+ {
+ dbus_message_iter_recurse(&gatewayDataIter, &arrayIter);
+ convertion = getBool(arrayIter, false);
+ gatewayData.convertionMatrix.push_back(convertion);
+ } while (dbus_message_iter_next(&arrayIter));
+ dbus_message_iter_next(&mDBusMessageIter);
+ }
return (gatewayData);
}
+am_Crossfader_s CAmRoutingDbusMessageHandler::getCrossfaderData()
+{
+ am_Crossfader_s crossfaderData;
+ DBusMessageIter crossfaderDataIter;
+
+ if (DBUS_TYPE_STRUCT != dbus_message_iter_get_arg_type(&mDBusMessageIter))
+ {
+ log(&routingDbus, DLT_LOG_ERROR, "CAmRoutingDbusMessageHandler::getCrossfaderData DBUS handler argument is no struct!");
+ mErrorName = std::string(DBUS_ERROR_INVALID_ARGS);
+ mErrorMsg = "DBus argument is no struct";
+ }
+ else
+ {
+ dbus_message_iter_recurse(&mDBusMessageIter, &crossfaderDataIter);
+ crossfaderData.crossfaderID = static_cast<am_crossfaderID_t> (getInt(crossfaderDataIter, true));
+ crossfaderData.name = static_cast<std::string> (getString(crossfaderDataIter, true));
+ crossfaderData.sinkID_A = static_cast<am_sinkID_t> (getInt(crossfaderDataIter, true));
+ crossfaderData.sinkID_B = static_cast<am_sinkID_t> (getInt(crossfaderDataIter, true));
+ crossfaderData.sourceID = static_cast<am_sourceID_t> (getInt(crossfaderDataIter, true));
+ crossfaderData.hotSink = static_cast<am_HotSink_e> (getInt(crossfaderDataIter, false));
+ dbus_message_iter_next(&mDBusMessageIter);
+ }
+ return (crossfaderData);
+}
+
am_MainSoundProperty_s CAmRoutingDbusMessageHandler::getMainSoundProperty()
{
am_MainSoundProperty_s mainSoundProperty;
diff --git a/PluginRoutingInterfaceDbus/src/IAmRoutingReceiverShadow.cpp b/PluginRoutingInterfaceDbus/src/IAmRoutingReceiverShadow.cpp
index 4115a21..b07065e 100644
--- a/PluginRoutingInterfaceDbus/src/IAmRoutingReceiverShadow.cpp
+++ b/PluginRoutingInterfaceDbus/src/IAmRoutingReceiverShadow.cpp
@@ -146,9 +146,11 @@ void IAmRoutingReceiverShadowDbus::hookDomainRegistrationComplete(DBusConnection
(void) ((conn));
assert(mRoutingReceiveInterface != NULL);
mDBUSMessageHandler.initReceive(msg);
- am_domainID_t domainID(mDBUSMessageHandler.getInt());
+ am_domainID_t domainID(mDBUSMessageHandler.getUInt());
log(&routingDbus, DLT_LOG_INFO, "IAmRoutingReceiverShadow::hookDomainRegistrationComplete called, domainID", domainID);
mRoutingReceiveInterface->hookDomainRegistrationComplete((am_domainID_t)((domainID)));
+ mDBUSMessageHandler.initReply(msg);
+ mDBUSMessageHandler.sendMessage();
}
void IAmRoutingReceiverShadowDbus::ackConnect(DBusConnection* conn, DBusMessage* msg)
@@ -441,13 +443,7 @@ void IAmRoutingReceiverShadowDbus::registerCrossfader(DBusConnection* conn, DBus
(void) ((conn));
assert(mRoutingReceiveInterface != NULL);
mDBUSMessageHandler.initReceive(msg);
- am_Crossfader_s crossfader;
- crossfader.crossfaderID = mDBUSMessageHandler.getInt();
- crossfader.name = std::string(mDBUSMessageHandler.getString());
- crossfader.sinkID_A = mDBUSMessageHandler.getInt();
- crossfader.sinkID_B = mDBUSMessageHandler.getInt();
- crossfader.sourceID = mDBUSMessageHandler.getInt();
- crossfader.hotSink = (am_HotSink_e)((mDBUSMessageHandler.getInt()));
+ am_Crossfader_s crossfader (mDBUSMessageHandler.getCrossfaderData());
log(&routingDbus, DLT_LOG_INFO, "IAmRoutingReceiverShadow::registerCrossfader called, name", crossfader.name);
am_Error_e returnCode = mRoutingReceiveInterface->registerCrossfader(crossfader, crossfader.crossfaderID);
mDBUSMessageHandler.initReply(msg);
@@ -546,7 +542,7 @@ void IAmRoutingReceiverShadowDbus::hookDomainStateChange(DBusConnection* conn, D
(void) ((conn));
assert(mRoutingReceiveInterface != NULL);
mDBUSMessageHandler.initReceive(msg);
- am_domainID_t domainID = mDBUSMessageHandler.getInt();
+ am_domainID_t domainID = mDBUSMessageHandler.getUInt();
am_DomainState_e domainState = (am_DomainState_e)((mDBUSMessageHandler.getInt()));
log(&routingDbus, DLT_LOG_INFO, "IAmRoutingReceiverShadow::hookDomainStateChange called, hookDomainStateChange", domainID);
mRoutingReceiveInterface->hookDomainStateChange(domainID, domainState);
@@ -664,12 +660,14 @@ void IAmRoutingReceiverShadowDbus::confirmRoutingReady(DBusConnection* conn, DBu
(void) ((conn));
assert(mRoutingReceiveInterface != NULL);
mDBUSMessageHandler.initReceive(msg);
- am_domainID_t domainID(mDBUSMessageHandler.getInt());
+ am_domainID_t domainID(mDBUSMessageHandler.getUInt());
log(&routingDbus, DLT_LOG_INFO, "IAmRoutingReceiverShadowDbus::confirmRoutingReady called, domainID", domainID);
- mNumberDomains--;
- if(mNumberDomains==0)
- mRoutingReceiveInterface->confirmRoutingRundown(mHandle,E_OK);
+ mRoutingReceiveInterface->confirmRoutingReady(mHandle, E_OK);
+ mNumberDomains++;
+
+ mDBUSMessageHandler.initReply(msg);
+ mDBUSMessageHandler.sendMessage();
}
void IAmRoutingReceiverShadowDbus::confirmRoutingRundown(DBusConnection* conn, DBusMessage* msg)
@@ -677,7 +675,7 @@ void IAmRoutingReceiverShadowDbus::confirmRoutingRundown(DBusConnection* conn, D
(void) ((conn));
assert(mRoutingReceiveInterface != NULL);
mDBUSMessageHandler.initReceive(msg);
- am_domainID_t domainID(mDBUSMessageHandler.getInt());
+ am_domainID_t domainID(mDBUSMessageHandler.getUInt());
log(&routingDbus, DLT_LOG_INFO, "IAmRoutingReceiverShadowDbus::confirmRoutingRundown called, domainID", domainID);
mNumberDomains--;