2 * Copyright (C) 2012, BMW AG
4 * This file is part of GENIVI Project AudioManager.
6 * Contributions are licensed to the GENIVI Alliance under one or more
7 * Contribution License Agreements.
10 * This Source Code Form is subject to the terms of the
11 * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
12 * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
15 * \author Christian Mueller, christian.ei.mueller@bmw.de BMW 2011,2012
17 * \file CAmControlReceiver.cpp
18 * For further information see http://www.genivi.org/.
22 #include "CAmControlReceiver.h"
27 #include "IAmDatabaseHandler.h"
28 #include "CAmRoutingSender.h"
29 #include "CAmCommandSender.h"
30 #include "CAmRouter.h"
31 #include "shared/CAmDltWrapper.h"
32 #include "shared/CAmSocketHandler.h"
34 #include "CAmNodeStateCommunicator.h"
41 CAmControlReceiver::CAmControlReceiver(IAmDatabaseHandler *iDatabaseHandler, CAmRoutingSender *iRoutingSender, CAmCommandSender *iCommandSender, CAmSocketHandler *iSocketHandler, CAmRouter* iRouter, CAmNodeStateCommunicator* iNodeStateCommunicator) :
42 mDatabaseHandler(iDatabaseHandler), //
43 mRoutingSender(iRoutingSender), //
44 mCommandSender(iCommandSender), //
45 mSocketHandler(iSocketHandler), //
48 mNodeStateCommunicator(iNodeStateCommunicator)
50 assert(mDatabaseHandler!=NULL);
51 assert(mRoutingSender!=NULL);
52 assert(mCommandSender!=NULL);
53 assert(mSocketHandler!=NULL);
54 assert(mRouter!=NULL);
55 assert(iNodeStateCommunicator!=NULL);
58 CAmControlReceiver::CAmControlReceiver(IAmDatabaseHandler *iDatabaseHandler, CAmRoutingSender *iRoutingSender, CAmCommandSender *iCommandSender, CAmSocketHandler *iSocketHandler, CAmRouter* iRouter) :
59 mDatabaseHandler(iDatabaseHandler), //
60 mRoutingSender(iRoutingSender), //
61 mCommandSender(iCommandSender), //
62 mSocketHandler(iSocketHandler), //
65 mNodeStateCommunicator(NULL)
67 assert(mDatabaseHandler!=NULL);
68 assert(mRoutingSender!=NULL);
69 assert(mCommandSender!=NULL);
70 assert(mSocketHandler!=NULL);
71 assert(mRouter!=NULL);
74 CAmControlReceiver::CAmControlReceiver(IAmDatabaseHandler *iDatabaseHandler, CAmRoutingSender *iRoutingSender, CAmCommandSender *iCommandSender, CAmSocketHandler *iSocketHandler, CAmRouter* iRouter, CAmDbusWrapper *iDBusWrapper) :
75 mDatabaseHandler(iDatabaseHandler), //
76 mRoutingSender(iRoutingSender), //
77 mCommandSender(iCommandSender), //
78 mSocketHandler(iSocketHandler), //
80 mDBusWrapper(iDBusWrapper),
81 mNodeStateCommunicator(NULL)
83 assert(mDatabaseHandler!=NULL);
84 assert(mRoutingSender!=NULL);
85 assert(mCommandSender!=NULL);
86 assert(mSocketHandler!=NULL);
87 assert(mRouter!=NULL);
88 assert(mDBusWrapper!=NULL);
91 CAmControlReceiver::~CAmControlReceiver()
95 am_Error_e CAmControlReceiver::getRoute(const bool onlyfree, const am_sourceID_t sourceID, const am_sinkID_t sinkID, std::vector<am_Route_s> & returnList)
97 return (mRouter->getRoute(onlyfree, sourceID, sinkID, returnList));
100 am_Error_e CAmControlReceiver::connect(am_Handle_s & handle, am_connectionID_t & connectionID, const am_CustomConnectionFormat_t format, const am_sourceID_t sourceID, const am_sinkID_t sinkID)
102 logInfo("CAmControlReceiver::connect got called, connectionFormat=", format, "sourceID=", sourceID, "sinkID=", sinkID);
104 am_Connection_s tempConnection;
105 tempConnection.sinkID = sinkID;
106 tempConnection.sourceID = sourceID;
107 tempConnection.connectionFormat = format;
108 tempConnection.connectionID = 0;
109 tempConnection.delay=-1;
111 mDatabaseHandler->enterConnectionDB(tempConnection, connectionID);
112 return (mRoutingSender->asyncConnect(handle, connectionID, sourceID, sinkID, format));
115 am_Error_e CAmControlReceiver::disconnect(am_Handle_s & handle, const am_connectionID_t connectionID)
117 logInfo("CAmControlReceiver::disconnect got called, connectionID=", connectionID);
118 return (mRoutingSender->asyncDisconnect(handle, connectionID));
121 am_Error_e CAmControlReceiver::crossfade(am_Handle_s & handle, const am_HotSink_e hotSource, const am_crossfaderID_t crossfaderID, const am_CustomRampType_t rampType, const am_time_t rampTime)
123 logInfo("CAmControlReceiver::crossfade got called, hotSource=", hotSource, "crossfaderID=", crossfaderID, "rampType=", rampType, "rampTime=", rampTime);
124 return (mRoutingSender->asyncCrossFade(handle, crossfaderID, hotSource, rampType, rampTime));
127 am_Error_e CAmControlReceiver::setSourceState(am_Handle_s & handle, const am_sourceID_t sourceID, const am_SourceState_e state)
129 logInfo("CAmControlReceiver::setSourceState got called, sourceID=", sourceID, "state=", state);
130 return (mRoutingSender->asyncSetSourceState(handle, sourceID, state));
133 am_Error_e CAmControlReceiver::setSinkVolume(am_Handle_s & handle, const am_sinkID_t sinkID, const am_volume_t volume, const am_CustomRampType_t ramp, const am_time_t time)
135 logInfo("CAmControlReceiver::setSinkVolume got called, sinkID=", sinkID, "volume=", volume, "ramp=", ramp, "time=", time);
136 return (mRoutingSender->asyncSetSinkVolume(handle, sinkID, volume, ramp, time));
139 am_Error_e CAmControlReceiver::setSourceVolume(am_Handle_s & handle, const am_sourceID_t sourceID, const am_volume_t volume, const am_CustomRampType_t rampType, const am_time_t time)
141 logInfo("CAmControlReceiver::setSourceVolume got called, sourceID=", sourceID, "volume=", volume, "ramp=", rampType, "time=", time);
142 return (mRoutingSender->asyncSetSourceVolume(handle, sourceID, volume, rampType, time));
145 am_Error_e CAmControlReceiver::setSinkSoundProperty(am_Handle_s & handle, const am_sinkID_t sinkID, const am_SoundProperty_s & soundProperty)
147 logInfo("CAmControlReceiver::setSinkSoundProperty got called, sinkID=", sinkID, "soundProperty.Type=", soundProperty.type, "soundProperty.value=", soundProperty.value);
148 return (mRoutingSender->asyncSetSinkSoundProperty(handle, sinkID, soundProperty));
151 am_Error_e CAmControlReceiver::setSinkSoundProperties(am_Handle_s & handle, const am_sinkID_t sinkID, const std::vector<am_SoundProperty_s> & listSoundProperties)
153 logInfo("CAmControlReceiver::setSinkSoundProperties got called, sinkID=", sinkID);
154 return (mRoutingSender->asyncSetSinkSoundProperties(handle, listSoundProperties, sinkID));
157 am_Error_e CAmControlReceiver::setSourceSoundProperty(am_Handle_s & handle, const am_sourceID_t sourceID, const am_SoundProperty_s & soundProperty)
159 logInfo("CAmControlReceiver::setSourceSoundProperty got called, sourceID=", sourceID, "soundProperty.Type=", soundProperty.type, "soundProperty.value=", soundProperty.value);
160 return (mRoutingSender->asyncSetSourceSoundProperty(handle, sourceID, soundProperty));
163 am_Error_e CAmControlReceiver::setSourceSoundProperties(am_Handle_s & handle, const am_sourceID_t sourceID, const std::vector<am_SoundProperty_s> & listSoundProperties)
165 logInfo("CAmControlReceiver::setSourceSoundProperties got called, sourceID=", sourceID);
166 return (mRoutingSender->asyncSetSourceSoundProperties(handle, listSoundProperties, sourceID));
169 am_Error_e CAmControlReceiver::setDomainState(const am_domainID_t domainID, const am_DomainState_e domainState)
171 logInfo("CAmControlReceiver::setDomainState got called, domainID=", domainID, "domainState=", domainState);
172 return (mRoutingSender->setDomainState(domainID, domainState));
175 am_Error_e CAmControlReceiver::abortAction(const am_Handle_s handle)
177 logInfo("CAmControlReceiver::abortAction got called, handle.type=", handle.handle, "handle.handleType=", handle.handleType);
178 return (mRoutingSender->asyncAbort(handle));
181 am_Error_e CAmControlReceiver::enterDomainDB(const am_Domain_s & domainData, am_domainID_t & domainID)
183 return (mDatabaseHandler->enterDomainDB(domainData, domainID));
186 am_Error_e CAmControlReceiver::enterMainConnectionDB(const am_MainConnection_s & mainConnectionData, am_mainConnectionID_t & connectionID)
188 return (mDatabaseHandler->enterMainConnectionDB(mainConnectionData, connectionID));
191 am_Error_e CAmControlReceiver::enterSinkDB(const am_Sink_s & sinkData, am_sinkID_t & sinkID)
193 return (mDatabaseHandler->enterSinkDB(sinkData, sinkID));
196 am_Error_e CAmControlReceiver::enterCrossfaderDB(const am_Crossfader_s & crossfaderData, am_crossfaderID_t & crossfaderID)
198 return (mDatabaseHandler->enterCrossfaderDB(crossfaderData, crossfaderID));
201 am_Error_e CAmControlReceiver::enterGatewayDB(const am_Gateway_s & gatewayData, am_gatewayID_t & gatewayID)
203 return (mDatabaseHandler->enterGatewayDB(gatewayData, gatewayID));
206 am_Error_e CAmControlReceiver::enterSourceDB(const am_Source_s & sourceData, am_sourceID_t & sourceID)
208 return (mDatabaseHandler->enterSourceDB(sourceData, sourceID));
211 am_Error_e CAmControlReceiver::enterSinkClassDB(const am_SinkClass_s & sinkClass, am_sinkClass_t & sinkClassID)
213 return (mDatabaseHandler->enterSinkClassDB(sinkClass, sinkClassID));
216 am_Error_e CAmControlReceiver::enterSourceClassDB(am_sourceClass_t & sourceClassID, const am_SourceClass_s & sourceClass)
218 return (mDatabaseHandler->enterSourceClassDB(sourceClassID, sourceClass));
221 am_Error_e CAmControlReceiver::enterSystemPropertiesListDB(const std::vector<am_SystemProperty_s> & listSystemProperties)
223 return (mDatabaseHandler->enterSystemProperties(listSystemProperties));
226 am_Error_e CAmControlReceiver::changeMainConnectionRouteDB(const am_mainConnectionID_t mainconnectionID, const std::vector<am_connectionID_t>& listConnectionID)
228 return (mDatabaseHandler->changeMainConnectionRouteDB(mainconnectionID, listConnectionID));
231 am_Error_e CAmControlReceiver::changeMainConnectionStateDB(const am_mainConnectionID_t mainconnectionID, const am_ConnectionState_e connectionState)
233 return (mDatabaseHandler->changeMainConnectionStateDB(mainconnectionID, connectionState));
236 am_Error_e CAmControlReceiver::changeSinkMainVolumeDB(const am_mainVolume_t mainVolume, const am_sinkID_t sinkID)
238 return (mDatabaseHandler->changeSinkMainVolumeDB(mainVolume, sinkID));
241 am_Error_e CAmControlReceiver::changeSinkAvailabilityDB(const am_Availability_s & availability, const am_sinkID_t sinkID)
243 return (mDatabaseHandler->changeSinkAvailabilityDB(availability, sinkID));
246 am_Error_e CAmControlReceiver::changDomainStateDB(const am_DomainState_e domainState, const am_domainID_t domainID)
248 return (mDatabaseHandler->changDomainStateDB(domainState, domainID));
251 am_Error_e CAmControlReceiver::changeSinkMuteStateDB(const am_MuteState_e muteState, const am_sinkID_t sinkID)
253 return (mDatabaseHandler->changeSinkMuteStateDB(muteState, sinkID));
256 am_Error_e CAmControlReceiver::changeMainSinkSoundPropertyDB(const am_MainSoundProperty_s & soundProperty, const am_sinkID_t sinkID)
258 return (mDatabaseHandler->changeMainSinkSoundPropertyDB(soundProperty, sinkID));
261 am_Error_e CAmControlReceiver::changeMainSourceSoundPropertyDB(const am_MainSoundProperty_s & soundProperty, const am_sourceID_t sourceID)
263 return (mDatabaseHandler->changeMainSourceSoundPropertyDB(soundProperty, sourceID));
266 am_Error_e CAmControlReceiver::changeSourceAvailabilityDB(const am_Availability_s & availability, const am_sourceID_t sourceID)
268 return (mDatabaseHandler->changeSourceAvailabilityDB(availability, sourceID));
271 am_Error_e CAmControlReceiver::changeSystemPropertyDB(const am_SystemProperty_s & property)
273 return (mDatabaseHandler->changeSystemPropertyDB(property));
276 am_Error_e CAmControlReceiver::removeMainConnectionDB(const am_mainConnectionID_t mainConnectionID)
278 return (mDatabaseHandler->removeMainConnectionDB(mainConnectionID));
281 am_Error_e CAmControlReceiver::removeSinkDB(const am_sinkID_t sinkID)
283 return (mDatabaseHandler->removeSinkDB(sinkID));
286 am_Error_e CAmControlReceiver::removeSourceDB(const am_sourceID_t sourceID)
288 return (mDatabaseHandler->removeSourceDB(sourceID));
291 am_Error_e CAmControlReceiver::removeGatewayDB(const am_gatewayID_t gatewayID)
293 return (mDatabaseHandler->removeGatewayDB(gatewayID));
296 am_Error_e CAmControlReceiver::removeCrossfaderDB(const am_crossfaderID_t crossfaderID)
298 return (mDatabaseHandler->removeCrossfaderDB(crossfaderID));
301 am_Error_e CAmControlReceiver::removeDomainDB(const am_domainID_t domainID)
303 return (mDatabaseHandler->removeDomainDB(domainID));
306 am_Error_e CAmControlReceiver::getSourceClassInfoDB(const am_sourceID_t sourceID, am_SourceClass_s & classInfo) const
308 return (mDatabaseHandler->getSourceClassInfoDB(sourceID, classInfo));
311 am_Error_e CAmControlReceiver::getSinkClassInfoDB(const am_sinkID_t sinkID, am_SinkClass_s & sinkClass) const
313 return (mDatabaseHandler->getSinkClassInfoDB(sinkID, sinkClass));
316 am_Error_e CAmControlReceiver::getSinkInfoDB(const am_sinkID_t sinkID, am_Sink_s & sinkData) const
318 return (mDatabaseHandler->getSinkInfoDB(sinkID, sinkData));
321 am_Error_e CAmControlReceiver::getSourceInfoDB(const am_sourceID_t sourceID, am_Source_s & sourceData) const
323 return (mDatabaseHandler->getSourceInfoDB(sourceID, sourceData));
326 am_Error_e CAmControlReceiver::getMainConnectionInfoDB(const am_mainConnectionID_t mainConnectionID, am_MainConnection_s & mainConnectionData) const
328 return (mDatabaseHandler->getMainConnectionInfoDB(mainConnectionID, mainConnectionData));
331 am_Error_e CAmControlReceiver::getGatewayInfoDB(const am_gatewayID_t gatewayID, am_Gateway_s & gatewayData) const
333 return (mDatabaseHandler->getGatewayInfoDB(gatewayID, gatewayData));
336 am_Error_e CAmControlReceiver::getCrossfaderInfoDB(const am_crossfaderID_t crossfaderID, am_Crossfader_s & crossfaderData) const
338 return (mDatabaseHandler->getCrossfaderInfoDB(crossfaderID, crossfaderData));
341 am_Error_e CAmControlReceiver::getListSinksOfDomain(const am_domainID_t domainID, std::vector<am_sinkID_t> & listSinkID) const
343 return (mDatabaseHandler->getListSinksOfDomain(domainID, listSinkID));
346 am_Error_e CAmControlReceiver::getListSourcesOfDomain(const am_domainID_t domainID, std::vector<am_sourceID_t> & listSourceID) const
348 return (mDatabaseHandler->getListSourcesOfDomain(domainID, listSourceID));
351 am_Error_e CAmControlReceiver::getListCrossfadersOfDomain(const am_domainID_t domainID, std::vector<am_crossfaderID_t> & listGatewaysID) const
353 return (mDatabaseHandler->getListCrossfadersOfDomain(domainID, listGatewaysID));
356 am_Error_e CAmControlReceiver::getListGatewaysOfDomain(const am_domainID_t domainID, std::vector<am_gatewayID_t> & listGatewaysID) const
358 return (mDatabaseHandler->getListGatewaysOfDomain(domainID, listGatewaysID));
361 am_Error_e CAmControlReceiver::getListMainConnections(std::vector<am_MainConnection_s> & listMainConnections) const
363 return (mDatabaseHandler->getListMainConnections(listMainConnections));
366 am_Error_e CAmControlReceiver::getListDomains(std::vector<am_Domain_s> & listDomains) const
368 return (mDatabaseHandler->getListDomains(listDomains));
371 am_Error_e CAmControlReceiver::getListConnections(std::vector<am_Connection_s> & listConnections) const
373 return (mDatabaseHandler->getListConnections(listConnections));
376 am_Error_e CAmControlReceiver::getListSinks(std::vector<am_Sink_s> & listSinks) const
378 return (mDatabaseHandler->getListSinks(listSinks));
381 am_Error_e CAmControlReceiver::getListSources(std::vector<am_Source_s> & listSources) const
383 return (mDatabaseHandler->getListSources(listSources));
386 am_Error_e CAmControlReceiver::getListSourceClasses(std::vector<am_SourceClass_s> & listSourceClasses) const
388 return (mDatabaseHandler->getListSourceClasses(listSourceClasses));
391 am_Error_e CAmControlReceiver::getListHandles(std::vector<am_Handle_s> & listHandles) const
393 return (mRoutingSender->getListHandles(listHandles));
396 am_Error_e CAmControlReceiver::getListCrossfaders(std::vector<am_Crossfader_s> & listCrossfaders) const
398 return (mDatabaseHandler->getListCrossfaders(listCrossfaders));
401 am_Error_e CAmControlReceiver::getListGateways(std::vector<am_Gateway_s> & listGateways) const
403 return (mDatabaseHandler->getListGateways(listGateways));
406 am_Error_e CAmControlReceiver::getListSinkClasses(std::vector<am_SinkClass_s> & listSinkClasses) const
408 return (mDatabaseHandler->getListSinkClasses(listSinkClasses));
411 am_Error_e CAmControlReceiver::getListSystemProperties(std::vector<am_SystemProperty_s> & listSystemProperties) const
413 return (mDatabaseHandler->getListSystemProperties(listSystemProperties));
416 am_Error_e CAmControlReceiver::changeSinkClassInfoDB(const am_SinkClass_s & classInfo)
418 return (mDatabaseHandler->changeSinkClassInfoDB(classInfo));
421 am_Error_e CAmControlReceiver::changeSourceClassInfoDB(const am_SourceClass_s & classInfo)
423 return(mDatabaseHandler->changeSourceClassInfoDB(classInfo));
426 am_Error_e CAmControlReceiver::removeSinkClassDB(const am_sinkClass_t sinkClassID)
428 return (mDatabaseHandler->removeSinkClassDB(sinkClassID));
431 am_Error_e CAmControlReceiver::removeSourceClassDB(const am_sourceClass_t sourceClassID)
433 return (mDatabaseHandler->removeSourceClassDB(sourceClassID));
436 void CAmControlReceiver::setCommandReady()
438 logInfo("CAmControlReceiver::setCommandReady got called");
439 mCommandSender->setCommandReady();
442 void CAmControlReceiver::setRoutingReady()
444 logInfo("CAmControlReceiver::setRoutingReady got called");
445 mRoutingSender->setRoutingReady();
448 void CAmControlReceiver::confirmControllerReady(const am_Error_e error)
450 //todo: one time implement here system interaction with NSM
452 logError("CAmControlReceiver::confirmControllerReady controller reported error", error);
455 void CAmControlReceiver::confirmControllerRundown(const am_Error_e error)
459 logError("CAmControlReceiver::confirmControllerRundown() exited with error ",error);
460 //we might be blocked here -> so lets better exit right away
461 throw std::runtime_error("controller Confirmed with error");
464 logInfo ("CAmControlReceiver::confirmControllerRundown(), will exit now");
466 //end the mainloop here...
467 mSocketHandler->exit_mainloop();
470 am_Error_e CAmControlReceiver::getSocketHandler(CAmSocketHandler *& socketHandler)
472 socketHandler = mSocketHandler;
476 void CAmControlReceiver::setCommandRundown()
478 logInfo("CAmControlReceiver::setCommandRundown got called");
479 mCommandSender->setCommandRundown();
482 void CAmControlReceiver::setRoutingRundown()
484 logInfo("CAmControlReceiver::setRoutingRundown got called");
485 mRoutingSender->setRoutingRundown();
488 void CAmControlReceiver::getInterfaceVersion(std::string & version) const
490 version = ControlReceiveVersion;
493 am_Error_e CAmControlReceiver::changeSourceDB(const am_sourceID_t sourceID, const am_sourceClass_t sourceClassID, const std::vector<am_SoundProperty_s>& listSoundProperties, const std::vector<am_CustomConnectionFormat_t>& listConnectionFormats, const std::vector<am_MainSoundProperty_s>& listMainSoundProperties)
495 logInfo("CAmControlReceiver::changeSourceDB was called, sourceID", sourceID);
496 return (mDatabaseHandler->changeSourceDB(sourceID,sourceClassID,listSoundProperties,listConnectionFormats,listMainSoundProperties));
499 am_Error_e CAmControlReceiver::changeSinkDB(const am_sinkID_t sinkID, const am_sinkClass_t sinkClassID, const std::vector<am_SoundProperty_s>& listSoundProperties, const std::vector<am_CustomConnectionFormat_t>& listConnectionFormats, const std::vector<am_MainSoundProperty_s>& listMainSoundProperties)
501 logInfo("CAmControlReceiver::changeSinkDB was called with sinkID", sinkID);
502 return (mDatabaseHandler->changeSinkDB(sinkID,sinkClassID,listSoundProperties,listConnectionFormats,listMainSoundProperties));
505 am_Error_e CAmControlReceiver::changeGatewayDB(const am_gatewayID_t gatewayID, const std::vector<am_CustomConnectionFormat_t>& listSourceConnectionFormats, const std::vector<am_CustomConnectionFormat_t>& listSinkConnectionFormats, const std::vector<bool>& convertionMatrix)
507 logInfo("CAmControlReceiver::changeGatewayDB was called with gatewayID", gatewayID);
508 return (mDatabaseHandler->changeGatewayDB(gatewayID,listSourceConnectionFormats,listSinkConnectionFormats,convertionMatrix));
511 am_Error_e CAmControlReceiver::setVolumes(am_Handle_s& handle, const std::vector<am_Volumes_s>& listVolumes)
513 logInfo("CAmControlReceiver::setVolumes got called");
514 return (mRoutingSender->asyncSetVolumes(handle,listVolumes));
517 am_Error_e CAmControlReceiver::setSinkNotificationConfiguration(am_Handle_s& handle, const am_sinkID_t sinkID, const am_NotificationConfiguration_s& notificationConfiguration)
519 logInfo("CAmControlReceiver::setSinkNotificationConfiguration called, sinkID=",sinkID,"notificationConfiguration.type=",notificationConfiguration.type,"notificationConfiguration.status",notificationConfiguration.status,"notificationConfiguration.parameter",notificationConfiguration.parameter);
520 return (mRoutingSender->asyncSetSinkNotificationConfiguration(handle,sinkID,notificationConfiguration));
523 am_Error_e CAmControlReceiver::setSourceNotificationConfiguration(am_Handle_s& handle, const am_sourceID_t sourceID, const am_NotificationConfiguration_s& notificationConfiguration)
525 logInfo("CAmControlReceiver::setSourceNotificationConfiguration called, sourceID=",sourceID,"notificationConfiguration.type=",notificationConfiguration.type,"notificationConfiguration.status",notificationConfiguration.status,"notificationConfiguration.parameter",notificationConfiguration.parameter);
526 return (mRoutingSender->asyncSetSourceNotificationConfiguration(handle,sourceID,notificationConfiguration));
529 void CAmControlReceiver::sendMainSinkNotificationPayload(const am_sinkID_t sinkID, const am_NotificationPayload_s& notificationPayload)
531 logInfo("CAmControlReceiver::sendSinkMainNotificationPayload called, sinkID=",sinkID,"type=",notificationPayload.type,"value=",notificationPayload.value);
532 mCommandSender->cbSinkNotification(sinkID,notificationPayload);
535 void CAmControlReceiver::sendMainSourceNotificationPayload(const am_sourceID_t sourceID, const am_NotificationPayload_s& notificationPayload)
537 logInfo("CAmControlReceiver::sendSourceMainNotificationPayload called, sourceID=",sourceID,"type=",notificationPayload.type,"value=",notificationPayload.value);
538 mCommandSender->cbSourceNotification(sourceID,notificationPayload);
541 am_Error_e CAmControlReceiver::changeMainSinkNotificationConfigurationDB(const am_sinkID_t sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration)
543 logInfo("CAmControlReceiver::changeMainSinkNotificationConfigurationDB was called with sinkID", sinkID);
544 return (mDatabaseHandler->changeMainSinkNotificationConfigurationDB(sinkID,mainNotificationConfiguration));
547 am_Error_e CAmControlReceiver::changeMainSourceNotificationConfigurationDB(const am_sourceID_t sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration)
549 logInfo("CAmControlReceiver::changeMainSourceNotificationConfigurationDB was called with sourceID", sourceID);
550 return (mDatabaseHandler->changeMainSourceNotificationConfigurationDB(sourceID,mainNotificationConfiguration));
553 am_Error_e CAmControlReceiver::getRestartReasonPropertyNSM(NsmRestartReason_e& restartReason)
555 if (!mNodeStateCommunicator)
556 return (E_NON_EXISTENT);
558 return (mNodeStateCommunicator->nsmGetRestartReasonProperty(restartReason));
561 return (E_NON_EXISTENT);
565 am_Error_e CAmControlReceiver::getShutdownReasonPropertyNSM(NsmShutdownReason_e& ShutdownReason)
567 if (!mNodeStateCommunicator)
568 return (E_NON_EXISTENT);
570 return (mNodeStateCommunicator->nsmGetShutdownReasonProperty(ShutdownReason));
572 (void)ShutdownReason;
573 return (E_NON_EXISTENT);
578 am_Error_e CAmControlReceiver::getRunningReasonPropertyNSM(NsmRunningReason_e& nsmRunningReason)
580 if (!mNodeStateCommunicator)
581 return (E_NON_EXISTENT);
583 return (mNodeStateCommunicator->nsmGetRunningReasonProperty(nsmRunningReason));
585 (void)nsmRunningReason;
586 return (E_NON_EXISTENT);
591 NsmErrorStatus_e CAmControlReceiver::getNodeStateNSM(NsmNodeState_e& nsmNodeState)
593 if (!mNodeStateCommunicator)
594 return (NsmErrorStatus_Error);
596 return (mNodeStateCommunicator->nsmGetNodeState(nsmNodeState));
599 return (NsmErrorStatus_Error);
603 NsmErrorStatus_e CAmControlReceiver::getSessionStateNSM(const std::string& sessionName, const NsmSeat_e seatID, NsmSessionState_e& sessionState)
605 if (!mNodeStateCommunicator)
606 return (NsmErrorStatus_Error);
608 return (mNodeStateCommunicator->nsmGetSessionState(sessionName,seatID,sessionState));
613 return (NsmErrorStatus_Error);
618 NsmErrorStatus_e CAmControlReceiver::getApplicationModeNSM(NsmApplicationMode_e& applicationMode)
620 if (!mNodeStateCommunicator)
621 return (NsmErrorStatus_Error);
623 return (mNodeStateCommunicator->nsmGetApplicationMode(applicationMode));
625 (void) applicationMode;
626 return (NsmErrorStatus_Error);
631 NsmErrorStatus_e CAmControlReceiver::registerShutdownClientNSM(const uint32_t shutdownMode, const uint32_t timeoutMs)
633 if (!mNodeStateCommunicator)
634 return (NsmErrorStatus_Error);
636 return (mNodeStateCommunicator->nsmRegisterShutdownClient(shutdownMode,timeoutMs));
640 return (NsmErrorStatus_Error);
645 NsmErrorStatus_e CAmControlReceiver::unRegisterShutdownClientNSM(const uint32_t shutdownMode)
647 if (!mNodeStateCommunicator)
648 return (NsmErrorStatus_Error);
650 return (mNodeStateCommunicator->nsmUnRegisterShutdownClient(shutdownMode));
653 return (NsmErrorStatus_Error);
658 am_Error_e CAmControlReceiver::getInterfaceVersionNSM(uint32_t& version)
660 if (!mNodeStateCommunicator)
661 return (E_NON_EXISTENT);
663 return (mNodeStateCommunicator->nsmGetInterfaceVersion(version));
666 return (E_NON_EXISTENT);
671 NsmErrorStatus_e CAmControlReceiver::sendLifecycleRequestCompleteNSM(const uint32_t RequestId, const NsmErrorStatus_e status)
673 if (!mNodeStateCommunicator)
674 return (NsmErrorStatus_Error);
676 return (mNodeStateCommunicator->nsmSendLifecycleRequestComplete(RequestId,status));
680 return (NsmErrorStatus_Error);
685 am_Error_e CAmControlReceiver::getDBusConnectionWrapper(CAmDbusWrapper *& dbusConnectionWrapper) const
687 #ifdef WITH_DBUS_WRAPPER
688 dbusConnectionWrapper = mDBusWrapper;