summaryrefslogtreecommitdiff
path: root/PluginRoutingInterfaceDbus/src/CAmDbusMessageHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'PluginRoutingInterfaceDbus/src/CAmDbusMessageHandler.cpp')
-rw-r--r--PluginRoutingInterfaceDbus/src/CAmDbusMessageHandler.cpp287
1 files changed, 180 insertions, 107 deletions
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;