summaryrefslogtreecommitdiff
path: root/AudioManagerDaemon/src
diff options
context:
space:
mode:
authorChristian Linke <christian.linke@bmw.de>2015-09-22 17:32:01 +0100
committerChristian Linke <christian.linke@bmw.de>2015-09-22 17:32:01 +0100
commitbd7ec24a2abe47ae4398b23282e8288e00eaec47 (patch)
tree778cf5ffa440b44752bb1cbcfd4c75d950bd48c4 /AudioManagerDaemon/src
parenta9f86b94f3cc83a9474e8a0d7e21de4c8e452526 (diff)
downloadaudiomanager-bd7ec24a2abe47ae4398b23282e8288e00eaec47.tar.gz
Remove nodestatemanager7.2
Make audiomanager compile with Dbus and CommonAPI Wrapper at the same time Signed-off-by: Christian Linke <christian.linke@bmw.de>
Diffstat (limited to 'AudioManagerDaemon/src')
-rw-r--r--AudioManagerDaemon/src/CAmControlReceiver.cpp154
-rw-r--r--AudioManagerDaemon/src/CAmControlSender.cpp24
-rw-r--r--AudioManagerDaemon/src/CAmNodeStateCommunicatorCAPI.cpp386
-rw-r--r--AudioManagerDaemon/src/CAmNodeStateCommunicatorDBus.cpp778
-rwxr-xr-xAudioManagerDaemon/src/main.cpp27
5 files changed, 4 insertions, 1365 deletions
diff --git a/AudioManagerDaemon/src/CAmControlReceiver.cpp b/AudioManagerDaemon/src/CAmControlReceiver.cpp
index 2915f5e..198109d 100644
--- a/AudioManagerDaemon/src/CAmControlReceiver.cpp
+++ b/AudioManagerDaemon/src/CAmControlReceiver.cpp
@@ -32,30 +32,9 @@
#include "CAmRouter.h"
#include "CAmDltWrapper.h"
#include "CAmSocketHandler.h"
-#ifdef WITH_NSM
- #include "CAmNodeStateCommunicator.h"
-#endif
-
-
namespace am {
-CAmControlReceiver::CAmControlReceiver(IAmDatabaseHandler *iDatabaseHandler, CAmRoutingSender *iRoutingSender, CAmCommandSender *iCommandSender, CAmSocketHandler *iSocketHandler, CAmRouter* iRouter, CAmNodeStateCommunicator* iNodeStateCommunicator) :
- mDatabaseHandler(iDatabaseHandler), //
- mRoutingSender(iRoutingSender), //
- mCommandSender(iCommandSender), //
- mSocketHandler(iSocketHandler), //
- mRouter(iRouter), //
- mNodeStateCommunicator(iNodeStateCommunicator)
-{
- assert(mDatabaseHandler!=NULL);
- assert(mRoutingSender!=NULL);
- assert(mCommandSender!=NULL);
- assert(mSocketHandler!=NULL);
- assert(mRouter!=NULL);
- assert(iNodeStateCommunicator!=NULL);
-}
-
CAmControlReceiver::CAmControlReceiver(IAmDatabaseHandler *iDatabaseHandler, CAmRoutingSender *iRoutingSender, CAmCommandSender *iCommandSender, CAmSocketHandler *iSocketHandler, CAmRouter* iRouter) :
mDatabaseHandler(iDatabaseHandler), //
mRoutingSender(iRoutingSender), //
@@ -456,7 +435,6 @@ void CAmControlReceiver::setRoutingReady()
void CAmControlReceiver::confirmControllerReady(const am_Error_e error)
{
- //todo: one time implement here system interaction with NSM
if (error!=E_OK)
logError("CAmControlReceiver::confirmControllerReady controller reported error", error);
}
@@ -565,138 +543,6 @@ am_Error_e CAmControlReceiver::changeMainSourceNotificationConfigurationDB(const
return (mDatabaseHandler->changeMainSourceNotificationConfigurationDB(sourceID,mainNotificationConfiguration));
}
-am_Error_e CAmControlReceiver::getRestartReasonPropertyNSM(NsmRestartReason_e& restartReason)
-{
- if (!mNodeStateCommunicator)
- return (E_NON_EXISTENT);
-#ifdef WITH_NSM
- return (mNodeStateCommunicator->nsmGetRestartReasonProperty(restartReason));
-#else
- (void)restartReason;
- return (E_NON_EXISTENT);
-#endif
-}
-
-am_Error_e CAmControlReceiver::getShutdownReasonPropertyNSM(NsmShutdownReason_e& ShutdownReason)
-{
- if (!mNodeStateCommunicator)
- return (E_NON_EXISTENT);
-#ifdef WITH_NSM
- return (mNodeStateCommunicator->nsmGetShutdownReasonProperty(ShutdownReason));
-#else
- (void)ShutdownReason;
- return (E_NON_EXISTENT);
-#endif
-
-}
-
-am_Error_e CAmControlReceiver::getRunningReasonPropertyNSM(NsmRunningReason_e& nsmRunningReason)
-{
- if (!mNodeStateCommunicator)
- return (E_NON_EXISTENT);
-#ifdef WITH_NSM
- return (mNodeStateCommunicator->nsmGetRunningReasonProperty(nsmRunningReason));
-#else
- (void)nsmRunningReason;
- return (E_NON_EXISTENT);
-#endif
-
-}
-
-NsmErrorStatus_e CAmControlReceiver::getNodeStateNSM(NsmNodeState_e& nsmNodeState)
-{
- if (!mNodeStateCommunicator)
- return (NsmErrorStatus_Error);
-#ifdef WITH_NSM
- return (mNodeStateCommunicator->nsmGetNodeState(nsmNodeState));
-#else
- (void) nsmNodeState;
- return (NsmErrorStatus_Error);
-#endif
-}
-
-NsmErrorStatus_e CAmControlReceiver::getSessionStateNSM(const std::string& sessionName, const NsmSeat_e seatID, NsmSessionState_e& sessionState)
-{
- if (!mNodeStateCommunicator)
- return (NsmErrorStatus_Error);
-#ifdef WITH_NSM
- return (mNodeStateCommunicator->nsmGetSessionState(sessionName,seatID,sessionState));
-#else
- (void) sessionName;
- (void) seatID;
- (void) sessionState;
- return (NsmErrorStatus_Error);
-#endif
-
-}
-
-NsmErrorStatus_e CAmControlReceiver::getApplicationModeNSM(NsmApplicationMode_e& applicationMode)
-{
- if (!mNodeStateCommunicator)
- return (NsmErrorStatus_Error);
-#ifdef WITH_NSM
- return (mNodeStateCommunicator->nsmGetApplicationMode(applicationMode));
-#else
- (void) applicationMode;
- return (NsmErrorStatus_Error);
-#endif
-
-}
-
-NsmErrorStatus_e CAmControlReceiver::registerShutdownClientNSM(const uint32_t shutdownMode, const uint32_t timeoutMs)
-{
- if (!mNodeStateCommunicator)
- return (NsmErrorStatus_Error);
-#ifdef WITH_NSM
- return (mNodeStateCommunicator->nsmRegisterShutdownClient(shutdownMode,timeoutMs));
-#else
- (void) shutdownMode;
- (void) timeoutMs;
- return (NsmErrorStatus_Error);
-#endif
-
-}
-
-NsmErrorStatus_e CAmControlReceiver::unRegisterShutdownClientNSM(const uint32_t shutdownMode)
-{
- if (!mNodeStateCommunicator)
- return (NsmErrorStatus_Error);
-#ifdef WITH_NSM
- return (mNodeStateCommunicator->nsmUnRegisterShutdownClient(shutdownMode));
-#else
- (void) shutdownMode;
- return (NsmErrorStatus_Error);
-#endif
-
-}
-
-am_Error_e CAmControlReceiver::getInterfaceVersionNSM(uint32_t& version)
-{
- if (!mNodeStateCommunicator)
- return (E_NON_EXISTENT);
-#ifdef WITH_NSM
- return (mNodeStateCommunicator->nsmGetInterfaceVersion(version));
-#else
- (void) version;
- return (E_NON_EXISTENT);
-#endif
-
-}
-
-NsmErrorStatus_e CAmControlReceiver::sendLifecycleRequestCompleteNSM(const uint32_t RequestId, const NsmErrorStatus_e status)
-{
- if (!mNodeStateCommunicator)
- return (NsmErrorStatus_Error);
-#ifdef WITH_NSM
- return (mNodeStateCommunicator->nsmSendLifecycleRequestComplete(RequestId,status));
-#else
- (void) RequestId;
- (void) status;
- return (NsmErrorStatus_Error);
-#endif
-
-}
-
am_Error_e CAmControlReceiver::getListMainSinkSoundProperties(const am_sinkID_t sinkID, std::vector<am_MainSoundProperty_s>& listSoundproperties) const
{
logInfo("CAmControlReceiver::getListMainSinkSoundProperties was called, sinkID", sinkID);
diff --git a/AudioManagerDaemon/src/CAmControlSender.cpp b/AudioManagerDaemon/src/CAmControlSender.cpp
index c85bd57..672c2d5 100644
--- a/AudioManagerDaemon/src/CAmControlSender.cpp
+++ b/AudioManagerDaemon/src/CAmControlSender.cpp
@@ -398,18 +398,6 @@ void CAmControlSender::confirmRoutingRundown(const am_Error_e error)
mController->confirmRoutingRundown(error);
}
-void CAmControlSender::hookSystemNodeStateChanged(const NsmNodeState_e NodeStateId)
-{
- assert(mController);
- mController->hookSystemNodeStateChanged(NodeStateId);
-}
-
-void CAmControlSender::hookSystemNodeApplicationModeChanged(const NsmApplicationMode_e ApplicationModeId)
-{
- assert(mController);
- mController->hookSystemNodeApplicationModeChanged(ApplicationModeId);
-}
-
am_Error_e CAmControlSender::hookSystemUpdateSink(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)
{
assert(mController);
@@ -491,18 +479,6 @@ bool CAmControlSender::checkerCallback(const sh_pollHandle_t handle, void* userD
return (true);
}
-void CAmControlSender::hookSystemSessionStateChanged(const std::string& sessionName, const NsmSeat_e seatID, const NsmSessionState_e sessionStateID)
-{
- assert(mController);
- mController->hookSystemSessionStateChanged(sessionName,seatID,sessionStateID);
-}
-
-NsmErrorStatus_e CAmControlSender::hookSystemLifecycleRequest(const uint32_t Request, const uint32_t RequestId)
-{
- assert(mController);
- return (mController->hookSystemLifecycleRequest(Request,RequestId));
-}
-
void CAmControlSender::hookSystemSingleTimingInformationChanged(const am_connectionID_t connectionID, const am_timeSync_t time)
{
assert(mController);
diff --git a/AudioManagerDaemon/src/CAmNodeStateCommunicatorCAPI.cpp b/AudioManagerDaemon/src/CAmNodeStateCommunicatorCAPI.cpp
deleted file mode 100644
index 07c8b1f..0000000
--- a/AudioManagerDaemon/src/CAmNodeStateCommunicatorCAPI.cpp
+++ /dev/null
@@ -1,386 +0,0 @@
-/**
- * SPDX license identifier: MPL-2.0
- *
- * Copyright (C) 2012, BMW AG
- *
- * This file is part of GENIVI Project AudioManager.
- *
- * Contributions are licensed to the GENIVI Alliance under one or more
- * Contribution License Agreements.
- *
- * \copyright
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
- * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- *
- * \author Aleksandar Donchev, aleksander.donchev@partner.bmw.de BMW 2013
- *
- * \file CAmNodeStateCommunicatorCAPI.cpp
- * For further information see http://www.genivi.org/.
- *
- */
-
-#include <assert.h>
-#include <string>
-#include <fstream>
-#include <sstream>
-#include <stdexcept>
-#include <functional>
-#include <memory>
-#include "audiomanagerconfig.h"
-#include "CAmDltWrapper.h"
-#include "CAmNodeStateCommunicatorCAPI.h"
-#include "CAmControlSender.h"
-#include <v1_0/org/genivi/NodeStateManager/LifeCycleConsumerProxy.hpp>
-
-
-namespace am
-{
-
-#define LIFECYCLE_SERVICE_INTERFACE NSM_BUS_INTERFACE ".LifeCycleConsumer"
-
-const char * CAmNodeStateCommunicatorCAPI::DEFAULT_DOMAIN_STRING = "local";
-
-const char * CAmNodeStateCommunicatorCAPI::CLIENT_INSTANCE_STRING = NSM_BUS_INTERFACE;
-const char * CAmNodeStateCommunicatorCAPI::CLIENT_INTERFACE_STRING = NSM_INTERFACE;
-
-const char * CAmNodeStateCommunicatorCAPI::LIFECYCLE_SERVICE_INSTANCE_STRING = DBUS_SERVICE_PREFIX;
-const char * CAmNodeStateCommunicatorCAPI::LIFECYCLE_SERVICE_INTERFACE_STRING = LIFECYCLE_SERVICE_INTERFACE;
-
-const char * CAmNodeStateCommunicatorCAPI::OBJECT_NAME = DBUS_SERVICE_OBJECT_PATH;
-const char * CAmNodeStateCommunicatorCAPI::BUS_NAME = LIFECYCLE_SERVICE_INTERFACE "_" DBUS_SERVICE_PREFIX;
-
-
-#define IF_NOT_AVAILABLE_RETURN(error) \
-if(!mIsServiceAvailable) { logError(__PRETTY_FUNCTION__, "Node State Manager not available yet"); return error; }
-
-/**
- * Retrieves the value from given attribute wrapper.
- */
-template <typename TValueReturnType, class TValueClass> am_Error_e getAttributeValue(CommonAPI::Attribute<TValueClass>* attribute, TValueReturnType & resultValue)
-{
- CommonAPI::CallStatus status;
- typename CommonAPI::Attribute<TValueClass>::ValueType value;
- attribute->getValue(status, value);
- std::cout << std::endl << "CallStatus : " << static_cast<int>(status) << std::endl;
- if( CommonAPI::CallStatus::SUCCESS == status)
- {
- resultValue = static_cast<TValueReturnType>(value);
- return E_OK;
- }
- return E_UNKNOWN;
-}
-
-
-CAmNodeStateCommunicatorCAPI::CAmNodeStateCommunicatorCAPI(CAmCommonAPIWrapper* iCAPIWrapper) :
- CAmNodeStateCommunicator(),
- mpCAPIWrapper(iCAPIWrapper),
- mIsServiceAvailable(false)
-{
- assert(mpCAPIWrapper);
- logInfo("CAmNodeStateCommunicatorCAPI::CAmNodeStateCommunicatorCAPI started");
-
- //Gets the factory pointer and build a proxy object
- mNSMProxy = iCAPIWrapper->buildProxy<am_nodestatemanager::ConsumerProxy>( CAmNodeStateCommunicatorCAPI::DEFAULT_DOMAIN_STRING,
- CAmNodeStateCommunicatorCAPI::CLIENT_INSTANCE_STRING);
- //Makes subscriptions to the following 3 events
- mNSMProxy->getNodeStateEvent().subscribe(
- std::bind(&CAmNodeStateCommunicatorCAPI::onNodeStateEvent, this, std::placeholders::_1)
- );
- mNSMProxy->getNodeApplicationModeEvent().subscribe(
- std::bind(&CAmNodeStateCommunicatorCAPI::onNodeApplicationModeEvent, this, std::placeholders::_1)
- );
- mNSMProxy->getSessionStateChangedEvent().subscribe(
- std::bind(&CAmNodeStateCommunicatorCAPI::onSessionStateChangedEvent, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)
- );
- mNSMProxy->getProxyStatusEvent().subscribe(std::bind(&CAmNodeStateCommunicatorCAPI::onServiceStatusEvent,this,std::placeholders::_1));
- //Instantiates the concrete stub implementation
- mNSMStub = std::make_shared<CAmNodeStateCommunicatorCAPI::CAmNodeStateCommunicatorServiceImpl>(this);
-
- //Registers the service
- if(!iCAPIWrapper->registerService(mNSMStub,CAmNodeStateCommunicatorCAPI::DEFAULT_DOMAIN_STRING,CAmNodeStateCommunicatorCAPI::LIFECYCLE_SERVICE_INSTANCE_STRING))
- logError("AudioManager can't register service");
-}
-
-CAmNodeStateCommunicatorCAPI::~CAmNodeStateCommunicatorCAPI()
-{
- mNSMProxy.reset();
- mpCAPIWrapper->unregisterService(CAmNodeStateCommunicatorCAPI::DEFAULT_DOMAIN_STRING,
- CAmNodeStateCommunicatorCAPI::LIFECYCLE_SERVICE_INTERFACE_STRING,
- CAmNodeStateCommunicatorCAPI::LIFECYCLE_SERVICE_INSTANCE_STRING);
- mNSMStub->setDelegate(NULL);
- mNSMStub.reset();
- mpCAPIWrapper = NULL;
-}
-
-bool CAmNodeStateCommunicatorCAPI::isServiceAvailable()
-{
- return mIsServiceAvailable;
-}
-
-/** retrieves the actual restart reason
- *
- * @param restartReason
- * @return E_OK on success
- */
-am_Error_e CAmNodeStateCommunicatorCAPI::nsmGetRestartReasonProperty(NsmRestartReason_e& restartReason)
-{
- //Check the service via the proxy object is available
- IF_NOT_AVAILABLE_RETURN(E_NOT_POSSIBLE)
- //Get the attribute
- int32_t value;
- CommonAPI::CallStatus status;
- mNSMProxy->getRestartReasonAttribute().getValue(status,value);
- if (status!=CommonAPI::CallStatus::SUCCESS)
- return (E_UNKNOWN);
- restartReason=static_cast<NsmRestartReason_e>(value);
- return (E_OK);
-}
-
-/** retrieves the actual shutdown reason
- *
- * @param ShutdownReason
- * @return E_OK on success
- */
-am_Error_e CAmNodeStateCommunicatorCAPI::nsmGetShutdownReasonProperty(NsmShutdownReason_e& ShutdownReason)
-{
- //Check the service via the proxy object is available
- IF_NOT_AVAILABLE_RETURN(E_NOT_POSSIBLE)
- //Get the attribute
- int32_t value;
- CommonAPI::CallStatus status;
- mNSMProxy->getShutdownReasonAttribute().getValue(status,value);
- if (status!=CommonAPI::CallStatus::SUCCESS)
- return (E_UNKNOWN);
- ShutdownReason=static_cast<NsmShutdownReason_e>(value);
- return (E_OK);
-}
-
-/** retrieves the actual running reason
- *
- * @param nsmRunningReason
- * @return E_OK on success
- */
-am_Error_e CAmNodeStateCommunicatorCAPI::nsmGetRunningReasonProperty(NsmRunningReason_e& nsmRunningReason)
-{
- //Check the service via the proxy object is available
- IF_NOT_AVAILABLE_RETURN(E_NOT_POSSIBLE)
- //Get the attribute
- int32_t value;
- CommonAPI::CallStatus status;
- mNSMProxy->getWakeUpReasonAttribute().getValue(status,value);
- if (status!=CommonAPI::CallStatus::SUCCESS)
- return (E_UNKNOWN);
- nsmRunningReason=static_cast<NsmRunningReason_e>(value);
- return (E_OK);
-}
-
-/** gets the node state
- *
- * @param nsmNodeState
- * @return NsmErrorStatus_Ok on success
- */
-NsmErrorStatus_e CAmNodeStateCommunicatorCAPI::nsmGetNodeState(NsmNodeState_e& nsmNodeState)
-{
- //Check the service via the proxy object is available
- IF_NOT_AVAILABLE_RETURN(NsmErrorStatus_Error)
-
- CommonAPI::CallStatus callStatus;
- int32_t tmpNodeState = 0, errorCode = 0;
- mNSMProxy->GetNodeState(callStatus, tmpNodeState, errorCode);
- if( CommonAPI::CallStatus::SUCCESS == callStatus )
- {
- nsmNodeState = static_cast<NsmNodeState_e>(tmpNodeState);
- return (static_cast<NsmErrorStatus_e>(errorCode));
- }
- return NsmErrorStatus_Error;
-}
-
-/** gets the session state for a session and seatID
- *
- * @param sessionName the name of the session
- * @param seatID the seatID
- * @param sessionState
- * @return NsmErrorStatus_Ok on success
- */
-NsmErrorStatus_e CAmNodeStateCommunicatorCAPI::nsmGetSessionState(const std::string& sessionName, const NsmSeat_e& seatID, NsmSessionState_e& sessionState)
-{
- //Check the service via the proxy object is available
- IF_NOT_AVAILABLE_RETURN(NsmErrorStatus_Error)
-
- CommonAPI::CallStatus callStatus;
- int32_t tmpSessionState = 0 , errorCode = 0;
- mNSMProxy->GetSessionState(sessionName,seatID,callStatus, tmpSessionState, errorCode);
-
- if( CommonAPI::CallStatus::SUCCESS == callStatus)
- {
- sessionState = static_cast<NsmSessionState_e>(tmpSessionState);
- return (static_cast<NsmErrorStatus_e>(errorCode));
- }
- return NsmErrorStatus_Error;
-}
-
-/** gets the application mode
- *
- * @param applicationMode
- * @return NsmErrorStatus_Ok on success
- */
-NsmErrorStatus_e CAmNodeStateCommunicatorCAPI::nsmGetApplicationMode(NsmApplicationMode_e& applicationMode)
-{
- //Check the service via the proxy object is available
- IF_NOT_AVAILABLE_RETURN(NsmErrorStatus_Error)
-
- CommonAPI::CallStatus callStatus;
- int32_t tmpAppMode = 0 , errorCode = 0;
- mNSMProxy->GetApplicationMode(callStatus, tmpAppMode, errorCode);
- if( CommonAPI::CallStatus::SUCCESS == callStatus)
- {
- applicationMode = static_cast<NsmApplicationMode_e>(tmpAppMode);
- return (static_cast<NsmErrorStatus_e>(errorCode));
- }
- return NsmErrorStatus_Dbus;
-}
-
-/** this function registers the AudioManager as shutdown client at the NSM
- * for more information check the Nodestatemanager
- * @param shutdownMode the shutdownmode you wish to set
- * @param timeoutMs the timeout you need to have
- * @return NsmErrorStatus_Ok on success
- */
-NsmErrorStatus_e CAmNodeStateCommunicatorCAPI::nsmRegisterShutdownClient(const uint32_t shutdownMode, const uint32_t timeoutMs)
-{
- //Check the service via the proxy object is available
- IF_NOT_AVAILABLE_RETURN(NsmErrorStatus_Error)
-
- CommonAPI::CallStatus callStatus;
- int32_t errorCode = 0;
- std::string objName = std::string(CAmNodeStateCommunicatorCAPI::OBJECT_NAME);
- std::string busName = std::string(CAmNodeStateCommunicatorCAPI::BUS_NAME);
- mNSMProxy->RegisterShutdownClient(busName, objName, shutdownMode, timeoutMs, callStatus, errorCode);
- if( CommonAPI::CallStatus::SUCCESS == callStatus)
- return (static_cast<NsmErrorStatus_e>(errorCode));
- return NsmErrorStatus_Dbus;
-
-}
-
-/** this function unregisters the AudioManager as shutdown client at the NSM
- *
- * @param shutdownMode
- * @return NsmErrorStatus_Ok on success
- */
-NsmErrorStatus_e CAmNodeStateCommunicatorCAPI::nsmUnRegisterShutdownClient(const uint32_t shutdownMode)
-{
- //Check the service via the proxy object is available
- IF_NOT_AVAILABLE_RETURN(NsmErrorStatus_Error)
-
- CommonAPI::CallStatus callStatus;
- int32_t errorCode = 0;
- std::string objName = std::string(CAmNodeStateCommunicatorCAPI::OBJECT_NAME);
- std::string busName = std::string(CAmNodeStateCommunicatorCAPI::BUS_NAME);
- mNSMProxy->UnRegisterShutdownClient(busName, objName, shutdownMode, callStatus, errorCode);
- if( CommonAPI::CallStatus::SUCCESS == callStatus)
- return (static_cast<NsmErrorStatus_e>(errorCode));
- return NsmErrorStatus_Dbus;
-}
-
-/** returns the interface version
- *
- * @param version
- * @return E_OK on success
- */
-am_Error_e CAmNodeStateCommunicatorCAPI::nsmGetInterfaceVersion(uint32_t& version)
-{
- //Check the service via the proxy object is available
- IF_NOT_AVAILABLE_RETURN(E_NOT_POSSIBLE)
-
- CommonAPI::CallStatus callStatus;
- mNSMProxy->GetInterfaceVersion(callStatus, version);
- if( CommonAPI::CallStatus::SUCCESS == callStatus)
- return E_OK;
- return E_UNKNOWN;
-}
-
-/** sends out the Lifecycle request complete message
- *
- * @param RequestId
- * @param status
- * @return NsmErrorStatus_Ok on success
- */
-NsmErrorStatus_e CAmNodeStateCommunicatorCAPI::nsmSendLifecycleRequestComplete(const uint32_t RequestId, const NsmErrorStatus_e status)
-{
- //Check the service via the proxy object is available
- IF_NOT_AVAILABLE_RETURN(NsmErrorStatus_Error)
-
- CommonAPI::CallStatus callStatus;
- int32_t errorCode = 0;
- mNSMProxy->LifecycleRequestComplete(RequestId, status, callStatus, errorCode);
- if( CommonAPI::CallStatus::SUCCESS == callStatus)
- {
- return (static_cast<NsmErrorStatus_e>(errorCode));
- }
- return NsmErrorStatus_Dbus;
-}
-
-/** notification handler for changed node state
- *
- * @param nodeState
- * @return none
- */
-void CAmNodeStateCommunicatorCAPI::onNodeStateEvent(const int32_t nodeState)
-{
- logInfo(__PRETTY_FUNCTION__, " got signal NodeState, with nodeState",nodeState);
- assert(mpControlSender);
- mpControlSender->hookSystemNodeStateChanged(static_cast<NsmNodeState_e>(nodeState));
-}
-
-/** notification handler for changed node application mode
- *
- * @param nodeApplicationMode
- * @return none
- */
-void CAmNodeStateCommunicatorCAPI::onNodeApplicationModeEvent(const int32_t nodeApplicationMode)
-{
- logInfo(__PRETTY_FUNCTION__, " got signal nodeApplicationMode, with applicationMode",nodeApplicationMode);
- assert(mpControlSender);
- mpControlSender->hookSystemNodeApplicationModeChanged(static_cast<NsmApplicationMode_e>(nodeApplicationMode));
-}
-
-/** notification handler for changed session state
- *
- * @param sessionName
- * @param seatID
- * @param sessionState
- * @return none
- */
-void CAmNodeStateCommunicatorCAPI::onSessionStateChangedEvent(const std::string & sessionName, const int32_t seatID, const int32_t sessionState)
-{
- logInfo(__PRETTY_FUNCTION__, " got signal sessionStateChanged, with session",sessionName,"seatID=",seatID,"sessionState",sessionState);
- assert(mpControlSender);
- mpControlSender->hookSystemSessionStateChanged(sessionName, static_cast<NsmSeat_e>(seatID), static_cast<NsmSessionState_e>(sessionState));
-}
-
-void CAmNodeStateCommunicatorCAPI::onServiceStatusEvent(const CommonAPI::AvailabilityStatus& serviceStatus)
-{
- std::stringstream avail;
- avail << "(" << static_cast<int>(serviceStatus) << ")";
-
- logInfo("Service Status of the NSM changed to ", avail.str());
- std::cout << std::endl << "Service Status of the NSM changed to " << avail.str();
- mIsServiceAvailable = (serviceStatus==CommonAPI::AvailabilityStatus::AVAILABLE);
-}
-
-/** implements the service part, which is invoked from the node state manager
- *
- * @param sessionName
- * @param seatID
- * @param sessionState
- * @return none
- */
-void CAmNodeStateCommunicatorCAPI::cbReceivedLifecycleRequest(uint32_t Request, uint32_t RequestId, int32_t& ErrorCode)
-{
- assert(mpControlSender);
- ErrorCode = mpControlSender->hookSystemLifecycleRequest(Request, RequestId);
-}
-
-} /* namespace am */
diff --git a/AudioManagerDaemon/src/CAmNodeStateCommunicatorDBus.cpp b/AudioManagerDaemon/src/CAmNodeStateCommunicatorDBus.cpp
deleted file mode 100644
index 501dfd8..0000000
--- a/AudioManagerDaemon/src/CAmNodeStateCommunicatorDBus.cpp
+++ /dev/null
@@ -1,778 +0,0 @@
-/**
- * SPDX license identifier: MPL-2.0
- *
- * Copyright (C) 2012, BMW AG
- *
- * This file is part of GENIVI Project AudioManager.
- *
- * Contributions are licensed to the GENIVI Alliance under one or more
- * Contribution License Agreements.
- *
- * \copyright
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
- * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- *
- * \author Christian Linke, christian.linke@bmw.de BMW 2012
- *
- * \file CAmNodeStateCommunicatorDBus.cpp
- * For further information see http://www.genivi.org/.
- *
- */
-
-#include "CAmNodeStateCommunicatorDBus.h"
-#include <assert.h>
-#include <string>
-#include <fstream>
-#include <sstream>
-#include <stdexcept>
-#include "CAmControlSender.h"
-#include "CAmDltWrapper.h"
-#include "audiomanagerconfig.h"
-
-namespace am
-{
-
-static DBusObjectPathVTable gObjectPathVTable;
-
-CAmNodeStateCommunicatorDBus::CAmNodeStateCommunicatorDBus(CAmDbusWrapper* iDbusWrapper) : CAmNodeStateCommunicator(),
- mpDbusWrapper(iDbusWrapper), //
- mpDBusConnection(NULL)
-{
- assert(mpDbusWrapper);
- logInfo("CAmNodeStateCommunicator::CAmNodeStateCommunicator started");
-
- //save the DBusConnection
- mpDbusWrapper->getDBusConnection(mpDBusConnection);
- assert(mpDBusConnection!=NULL);
-
- //register the path and the callback for receiving messages
- std::string path("LifeCycleConsumer");
- gObjectPathVTable.message_function=CAmNodeStateCommunicatorDBus::receiveCallback;
- mpDbusWrapper->registerCallback(&gObjectPathVTable, path, this);
-
- //now we need to make sure we catch the signals from the NSM:
- dbus_bus_add_match(mpDBusConnection, "type=\'signal\',path=\'/org/genivi/NodeStateManager\'", NULL);
- if (!dbus_connection_add_filter(mpDBusConnection, CAmNodeStateCommunicatorDBus::signalCallback, this, NULL))
- {
- logError("CAmNodeStateCommunicator::CAmNodeStateCommunicator not enought memory!");
- throw std::runtime_error("CAmNodeStateCommunicator::CAmNodeStateCommunicator not enought memory!");
- }
- dbus_connection_flush(mpDBusConnection);
-}
-
-CAmNodeStateCommunicatorDBus::~CAmNodeStateCommunicatorDBus()
-{}
-
-/** retrieves the actual restartReason
- *
- * @param restartReason
- * @return E_OK on success
- */
-am_Error_e CAmNodeStateCommunicatorDBus::nsmGetRestartReasonProperty(NsmRestartReason_e& restartReason)
-{
- int32_t answer(0);
- am_Error_e error=readIntegerProperty("RestartReason",answer);
- restartReason=static_cast<NsmRestartReason_e>(answer);
- return(error);
-}
-
-/** retrieves the actual shutdownreason
- *
- * @param ShutdownReason
- * @return E_OK on success
- */
-am_Error_e CAmNodeStateCommunicatorDBus::nsmGetShutdownReasonProperty(NsmShutdownReason_e& ShutdownReason)
-{
- int32_t answer(0);
- am_Error_e error=readIntegerProperty("ShutdownReason",answer);
- ShutdownReason=static_cast<NsmShutdownReason_e>(answer);
- return(error);
-}
-
-/** retrieves the actual runnuing reason
- *
- * @param nsmRunningReason
- * @return E_OK on success
- */
-am_Error_e CAmNodeStateCommunicatorDBus::nsmGetRunningReasonProperty(NsmRunningReason_e& nsmRunningReason)
-{
- int32_t answer(0);
- am_Error_e error=readIntegerProperty("WakeUpReason",answer);
- nsmRunningReason=static_cast<NsmRunningReason_e>(answer);
- return(error);
-}
-
-/** gets the node state
- *
- * @param nsmNodeState
- * @return NsmErrorStatus_Ok on success
- */
-NsmErrorStatus_e CAmNodeStateCommunicatorDBus::nsmGetNodeState(NsmNodeState_e& nsmNodeState)
-{
- DBusError error;
- dbus_error_init(&error);
-
- uint32_t nodeStateID;
- uint32_t returnedError;
-
- DBusMessage * message = dbus_message_new_method_call(NSM_BUS_INTERFACE, NSM_PATH, NSM_INTERFACE, "GetNodeState");
-
- if (!message)
- {
- logError("CAmNodeStateCommunicatorDBus::nsmGetNodeState dbus error:", error.message);
- return (NsmErrorStatus_Dbus);
- }
-
- DBusMessage* reply(dbus_connection_send_with_reply_and_block(mpDBusConnection, message, -1, &error));
- if (!reply)
- {
- logError("CAmNodeStateCommunicatorDBus::nsmGetNodeState failed, dbus error", error.message);
- return (NsmErrorStatus_Dbus);
- }
-
- if(!dbus_message_get_args(reply, &error, DBUS_TYPE_INT32, &nodeStateID, DBUS_TYPE_INT32, &returnedError, DBUS_TYPE_INVALID))
- return (NsmErrorStatus_Dbus);
-
- dbus_message_unref(reply);
-
- nsmNodeState=static_cast<NsmNodeState_e>(nodeStateID);
- return (static_cast<NsmErrorStatus_e>(returnedError));
-}
-
-/** gets the session state for a session and seatID
- *
- * @param sessionName the name of the session
- * @param seatID the seatID
- * @param sessionState
- * @return NsmErrorStatus_Ok on success
- */
-NsmErrorStatus_e CAmNodeStateCommunicatorDBus::nsmGetSessionState(const std::string& sessionName, const NsmSeat_e& seatID, NsmSessionState_e& sessionState)
-{
- DBusError error;
- dbus_error_init(&error);
- DBusMessageIter iter;
-
- uint32_t returnedError;
- int32_t BsessionState(0);
-
- DBusMessage * message = dbus_message_new_method_call(NSM_BUS_INTERFACE, NSM_PATH, NSM_INTERFACE, "GetSessionState");
-
- if (!message)
- {
- logError("CAmNodeStateCommunicatorDBus::nsmGetSessionState dbus error:", error.message);
- return (NsmErrorStatus_Dbus);
- }
-
- dbus_message_iter_init_append(message, &iter);
-
- if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &sessionName))
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmGetSessionState no more memory");
- return (NsmErrorStatus_Dbus);
- }
-
- if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_INT32, &seatID))
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmGetSessionState no more memory");
- return (NsmErrorStatus_Dbus);
- }
-
- DBusMessage* reply(dbus_connection_send_with_reply_and_block(mpDBusConnection, message, -1, &error));
- if (!reply)
- {
- logError("CAmNodeStateCommunicatorDBus::nsmGetSessionState failed, dbus error", error.message);
- return (NsmErrorStatus_Dbus);
- }
-
- if(!dbus_message_get_args(reply, &error,
- DBUS_TYPE_INT32, &BsessionState,
- DBUS_TYPE_INT32, &returnedError,DBUS_TYPE_INVALID))
- return (NsmErrorStatus_Dbus);
-
- dbus_message_unref(reply);
-
- sessionState=static_cast<NsmSessionState_e>(BsessionState);
- return (static_cast<NsmErrorStatus_e>(returnedError));
-}
-
-/** gets the application mode
- *
- * @param applicationMode
- * @return NsmErrorStatus_Ok on success
- */
-NsmErrorStatus_e CAmNodeStateCommunicatorDBus::nsmGetApplicationMode(NsmApplicationMode_e& applicationMode)
-{
- DBusError error;
- dbus_error_init(&error);
-
- uint32_t BapplicationMode(0),returnedError(0);
-
- DBusMessage * message = dbus_message_new_method_call(NSM_BUS_INTERFACE, NSM_PATH, NSM_INTERFACE, "GetApplicationMode");
-
- if (!message)
- {
- logError("CAmNodeStateCommunicatorDBus::nsmGetApplicationMode dbus error:", error.message);
- return (NsmErrorStatus_Dbus);
- }
-
- DBusMessage* reply(dbus_connection_send_with_reply_and_block(mpDBusConnection, message, -1, &error));
- if (!reply)
- {
- logError("CAmNodeStateCommunicatorDBus::nsmGetApplicationMode failed, dbus error", error.message);
- return (NsmErrorStatus_Dbus);
- }
-
- if(!dbus_message_get_args(reply, &error, DBUS_TYPE_INT32, &BapplicationMode, DBUS_TYPE_INT32, &returnedError, DBUS_TYPE_INVALID))
- return (NsmErrorStatus_Dbus);
-
- dbus_message_unref(reply);
-
- applicationMode=static_cast<NsmApplicationMode_e>(BapplicationMode);
- return (static_cast<NsmErrorStatus_e>(returnedError));
-}
-
-/** this function registers the AudioManager as shutdown client at the NSM
- * for more information check the Nodestatemanager
- * @param shutdownMode the shutdownmode you wish to set
- * @param timeoutMs the timeout you need to have
- * @return NsmErrorStatus_Ok on success
- */
-NsmErrorStatus_e CAmNodeStateCommunicatorDBus::nsmRegisterShutdownClient(const uint32_t shutdownMode, const uint32_t timeoutMs)
-{
- DBusError error;
- DBusMessageIter iter;
- dbus_error_init(&error);
- int32_t returnError(0);
- std::string path = std::string(DBUS_SERVICE_OBJECT_PATH) + "/LifeCycleConsumer";
- const char* charPath = path.c_str();
- const char* service =DBUS_SERVICE_PREFIX;
- DBusMessage * message = dbus_message_new_method_call(NSM_BUS_INTERFACE, NSM_PATH, NSM_INTERFACE, "RegisterShutdownClient");
-
- if (!message)
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmRegisterShutdownClient dbus error:", error.message);
- return (NsmErrorStatus_Dbus);
- }
- dbus_message_iter_init_append(message, &iter);
-
- if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &service))
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmRegisterShutdownClient no more memory");
- return (NsmErrorStatus_Dbus);
- }
-
- if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &charPath))
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmRegisterShutdownClient no more memory");
- return (NsmErrorStatus_Dbus);
- }
-
- if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_UINT32, &shutdownMode))
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmRegisterShutdownClient no more memory");
- return (NsmErrorStatus_Dbus);
- }
-
- if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_UINT32, &timeoutMs))
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmRegisterShutdownClient no more memory");
- return (NsmErrorStatus_Dbus);
- }
-
- DBusMessage* reply(dbus_connection_send_with_reply_and_block(mpDBusConnection, message, -1, &error));
- dbus_message_unref(message);
-
- if (!reply)
- {
- logError( "CAmRoutingDbusSend::send failed, dbus error", error.message);
- return (NsmErrorStatus_Dbus);
- }
-
- if(!dbus_message_get_args(reply, &error, DBUS_TYPE_INT32, &returnError,DBUS_TYPE_INVALID))
- {
- logError( "CAmRoutingDbusSend::send failed, dbus error", error.message);
- return (NsmErrorStatus_Dbus);
- }
- dbus_message_unref(reply);
-
- return (static_cast<NsmErrorStatus_e>(returnError));
-
-}
-
-/** this function unregisters the AudioManager as shutdown client at the NSM
- *
- * @param shutdownMode
- * @return NsmErrorStatus_Ok on success
- */
-NsmErrorStatus_e CAmNodeStateCommunicatorDBus::nsmUnRegisterShutdownClient(const uint32_t shutdownMode)
-{
- DBusError error;
- DBusMessageIter iter;
- dbus_error_init(&error);
- int32_t returnError(0);
- std::string path = std::string(DBUS_SERVICE_OBJECT_PATH) + "/LifeCycleConsumer";
- const char* charPath = path.c_str();
- const char* service =DBUS_SERVICE_PREFIX;
- DBusMessage * message = dbus_message_new_method_call(NSM_BUS_INTERFACE, NSM_PATH, NSM_INTERFACE, "UnRegisterShutdownClient");
-
- if (!message)
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmUnRegisterShutdownClient dbus error:", error.message);
- return (NsmErrorStatus_Dbus);
- }
- dbus_message_iter_init_append(message, &iter);
-
- if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &service))
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmUnRegisterShutdownClient no more memory");
- return (NsmErrorStatus_Dbus);
- }
-
- if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &charPath))
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmUnRegisterShutdownClient no more memory");
- return (NsmErrorStatus_Dbus);
- }
-
- if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_UINT32, &shutdownMode))
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmUnRegisterShutdownClient no more memory");
- return (NsmErrorStatus_Dbus);
- }
-
- DBusMessage* reply(dbus_connection_send_with_reply_and_block(mpDBusConnection, message, -1, &error));
- dbus_message_unref(message);
-
- if (!reply)
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmUnRegisterShutdownClient failed, dbus error", error.message);
- return (NsmErrorStatus_Dbus);
- }
-
- if(!dbus_message_get_args(reply, &error, DBUS_TYPE_INT32, &returnError, DBUS_TYPE_INVALID))
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmUnRegisterShutdownClient failed, dbus error", error.message);
- return (NsmErrorStatus_Dbus);
- }
- dbus_message_unref(reply);
-
- return (static_cast<NsmErrorStatus_e>(returnError));
-}
-
-/** returns the interface version
- *
- * @param version
- * @return E_OK on success
- */
-am_Error_e CAmNodeStateCommunicatorDBus::nsmGetInterfaceVersion(uint32_t& version)
-{
- DBusError error;
- dbus_error_init(&error);
-
- DBusMessage * message = dbus_message_new_method_call(NSM_BUS_INTERFACE, NSM_PATH, NSM_INTERFACE, "GetInterfaceVersion");
-
- if (!message)
- {
- logError("CAmNodeStateCommunicatorDBus::nsmGetInterfaceVersion dbus error:", error.message);
- return (E_UNKNOWN);
- }
-
- DBusMessage* reply(dbus_connection_send_with_reply_and_block(mpDBusConnection, message, -1, &error));
-
- dbus_message_unref(message);
-
- if (!reply)
- {
- logError("CAmNodeStateCommunicatorDBus::nsmGetInterfaceVersion failed, dbus error", error.message);
- return (E_UNKNOWN);
- }
-
- if(!dbus_message_get_args(reply, &error, DBUS_TYPE_UINT32, &version, DBUS_TYPE_INVALID))
- {
- logError("CAmNodeStateCommunicatorDBus::nsmGetInterfaceVersion failed, dbus error", error.message);
- return (E_UNKNOWN);
- }
-
- dbus_message_unref(reply);
-
- return (E_OK);
-}
-
-/** sends out the Lifecycle request complete message
- *
- * @param RequestId
- * @param status
- * @return NsmErrorStatus_Ok on success
- */
-NsmErrorStatus_e CAmNodeStateCommunicatorDBus::nsmSendLifecycleRequestComplete(const uint32_t RequestId, const NsmErrorStatus_e status)
-{
- DBusError error;
- DBusMessageIter iter;
- dbus_error_init(&error);
- int32_t returnError(0);
- DBusMessage * message = dbus_message_new_method_call(NSM_BUS_INTERFACE, NSM_PATH, NSM_INTERFACE, "LifecycleRequestComplete");
-
- if (!message)
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmSendLifecycleRequestComplete dbus error:", error.message);
- return (NsmErrorStatus_Dbus);
- }
- dbus_message_iter_init_append(message, &iter);
-
- if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_UINT32, &RequestId))
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmSendLifecycleRequestComplete no more memory");
- return (NsmErrorStatus_Dbus);
- }
-
- if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_INT32,&status))
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmSendLifecycleRequestComplete no more memory");
- return (NsmErrorStatus_Dbus);
- }
-
- DBusMessage* reply(dbus_connection_send_with_reply_and_block(mpDBusConnection, message, -1, &error));
- dbus_message_unref(message);
-
- if (!reply)
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmSendLifecycleRequestComplete failed, dbus error", error.message);
- return (NsmErrorStatus_Dbus);
- }
-
- if(!dbus_message_get_args(reply, &error,DBUS_TYPE_INT32, &returnError, DBUS_TYPE_INVALID))
- {
- logError( "CAmNodeStateCommunicatorDBus::nsmSendLifecycleRequestComplete failed, dbus error", error.message);
- return (NsmErrorStatus_Dbus);
- }
- dbus_message_unref(reply);
-
- return (static_cast<NsmErrorStatus_e>(returnError));
-}
-
-DBusHandlerResult CAmNodeStateCommunicatorDBus::receiveCallback(DBusConnection* conn, DBusMessage* msg, void* user_data)
-{
- CAmNodeStateCommunicatorDBus* instance = static_cast<CAmNodeStateCommunicatorDBus*>(user_data);
- assert(instance);
- return (instance->receiveCallbackDelegate(conn,msg));
-}
-
-DBusHandlerResult CAmNodeStateCommunicatorDBus::receiveCallbackDelegate(DBusConnection* conn, DBusMessage* msg)
-{
- if (dbus_message_is_method_call(msg, DBUS_INTERFACE_INTROSPECTABLE, "Introspect"))
- {
- sendIntrospection(conn, msg);
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
- else
- {
- DBusMessage * returnMessage;
- dbus_uint32_t Request(0),RequestId(0);
- //no introspection - ok. So we are only interested in out LifecycleRequest message...
- std::string method(dbus_message_get_member(msg));
- if (method=="LifecycleRequest")
- {
- DBusMessageIter iter,replyIter;
- if (!dbus_message_iter_init(msg, &iter))
- {
- logError("CAmNodeStateCommunicatorDBus::receiveCallbackDelegate DBus Message has no arguments!");
- returnMessage = dbus_message_new_error(msg,DBUS_ERROR_INVALID_ARGS, "DBUS Message has no arguments!");
- sendMessage(returnMessage,msg);
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
-
- if (dbus_message_iter_get_arg_type(&iter)!=DBUS_TYPE_UINT32)
- {
- logError("CAmNodeStateCommunicatorDBus::receiveCallbackDelegate DBus Message has invalid arguments!");
- returnMessage = dbus_message_new_error(msg,DBUS_ERROR_INVALID_ARGS,"DBus argument is not uint32_t!");
- sendMessage(returnMessage,msg);
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
-
- dbus_message_iter_get_basic(&iter, &Request);
- dbus_message_iter_next(&iter);
-
- if (dbus_message_iter_get_arg_type(&iter)!=DBUS_TYPE_UINT32)
- {
- logError("CAmNodeStateCommunicatorDBus::receiveCallbackDelegate DBus Message has invalid arguments!");
- returnMessage = dbus_message_new_error(msg,DBUS_ERROR_INVALID_ARGS,"DBus argument is not uint32_t!");
- sendMessage(returnMessage,msg);
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
-
- dbus_message_iter_get_basic(&iter, &RequestId);
-
- assert(mpControlSender);
- NsmErrorStatus_e returnError = mpControlSender->hookSystemLifecycleRequest(static_cast<uint32_t>(Request),static_cast<uint32_t>(RequestId));
-
- returnMessage = dbus_message_new_method_return(msg);
-
- if (returnMessage == NULL)
- {
- logError("CAmNodeStateCommunicatorDBus::receiveCallbackDelegate Cannot allocate DBus message!");
- returnMessage = dbus_message_new_error(msg,DBUS_ERROR_NO_MEMORY,"Cannot create reply!");
- sendMessage(returnMessage,msg);
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
-
- dbus_message_iter_init_append(returnMessage, &replyIter);
-
- if (!dbus_message_iter_append_basic(&replyIter, DBUS_TYPE_INT32, &returnError))
- {
- logError("CAmNodeStateCommunicatorDBus::receiveCallbackDelegate Cannot allocate DBus message!");
- returnMessage = dbus_message_new_error(msg,DBUS_ERROR_NO_MEMORY,"Cannot create reply!");
- }
- sendMessage(returnMessage,msg);
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
- }
- return (DBUS_HANDLER_RESULT_NOT_YET_HANDLED);
-}
-
-void CAmNodeStateCommunicatorDBus::sendIntrospection(DBusConnection* conn, DBusMessage* msg)
-{
- assert(conn != NULL);
- assert(msg != NULL);
- DBusMessage* reply;
- DBusMessageIter args;
- dbus_uint32_t serial = 0;
-
- // create a reply from the message
- reply = dbus_message_new_method_return(msg);
- std::string fullpath(NSM_INTROSPECTION_FILE);
- std::ifstream in(fullpath.c_str(), std::ifstream::in);
- if (!in)
- {
- logError("IAmCommandReceiverShadow::sendIntrospection could not load xml file ",fullpath);
- throw std::runtime_error("IAmCommandReceiverShadow::sendIntrospection Could not load introspecton XML");
- }
- std::stringstream buffer;
- buffer << in.rdbuf();
- std::string introspect = buffer.str();
- const char* string = introspect.c_str();
-
- // add the arguments to the reply
- dbus_message_iter_init_append(reply, &args);
- if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &string))
- {
- logError( "CAmNodeStateCommunicatorDBus::sendIntrospection DBUS handler Out Of Memory!");
- }
-
- // send the reply && flush the connection
- if (!dbus_connection_send(conn, reply, &serial))
- {
- logError( "CAmNodeStateCommunicatorDBus::sendIntrospection DBUS handler Out Of Memory!");
- }
- dbus_connection_flush(conn);
-
- // free the reply
- dbus_message_unref(reply);
-}
-
-void CAmNodeStateCommunicatorDBus::sendMessage(DBusMessage* message, DBusMessage* origMessage)
-{
- dbus_uint32_t serial = dbus_message_get_serial(origMessage);
-
- if(!dbus_connection_send(mpDBusConnection, message, &serial))
- {
- logError( "CAmNodeStateCommunicatorDBus::sendMessage DBUS handler Out Of Memory!");
- }
- dbus_connection_flush(mpDBusConnection);
- dbus_message_unref(message);
-}
-
-DBusHandlerResult CAmNodeStateCommunicatorDBus::signalCallback(DBusConnection* conn, DBusMessage* msg, void* user_data)
-{
- (void) conn;
- CAmNodeStateCommunicatorDBus* instance(static_cast<CAmNodeStateCommunicatorDBus*>(user_data));
-
- const char* iface = dbus_message_get_interface(msg);
- if (iface==NULL)
- return (DBUS_HANDLER_RESULT_NOT_YET_HANDLED);
- std::string interface(iface);
- std::string member = dbus_message_get_member(msg);
-
- if (interface=="org.genivi.NodeStateManager.Consumer")
- {
- if (member=="NodeState")
- {
- int32_t nodeState;
- DBusMessageIter iter;
- if (!dbus_message_iter_init(msg, &iter))
- {
- logError("CAmNodeStateCommunicatorDBus::signalCallback NodeState DBus Message has no arguments!");
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
-
- if (dbus_message_iter_get_arg_type(&iter)!=DBUS_TYPE_INT32)
- {
- logError("CAmNodeStateCommunicatorDBus::signalCallback NodeState DBus Message has invalid arguments!");
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
-
- dbus_message_iter_get_basic(&iter, &nodeState);
-
- logInfo("CAmNodeStateCommunicatorDBus::signalCallback got signal NodeState, with nodeState",nodeState);
-
- assert(instance->mpControlSender);
- instance->mpControlSender->hookSystemNodeStateChanged(static_cast<NsmNodeState_e>(nodeState));
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
-
- else if (member=="NodeApplicationMode")
- {
- int32_t nodeApplicationMode;
- DBusMessageIter iter;
- if (!dbus_message_iter_init(msg, &iter))
- {
- logError("CAmNodeStateCommunicatorDBus::signalCallback nodeApplicationMode DBus Message has no arguments!");
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
-
- if (dbus_message_iter_get_arg_type(&iter)!=DBUS_TYPE_INT32)
- {
- logError("CAmNodeStateCommunicatorDBus::signalCallback nodeApplicationMode DBus Message has invalid arguments!");
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
-
- dbus_message_iter_get_basic(&iter, &nodeApplicationMode);
-
- logInfo("CAmNodeStateCommunicatorDBus::signalCallback got signal nodeApplicationMode, with applicationMode",nodeApplicationMode);
-
- assert(instance->mpControlSender);
- instance->mpControlSender->hookSystemNodeApplicationModeChanged(static_cast<NsmApplicationMode_e>(nodeApplicationMode));
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
-
- else if (member=="SessionStateChanged")
- {
- std::string sessionName;
- NsmSeat_e seatID;
- NsmSessionState_e sessionState;
- DBusMessageIter iter;
- if (!dbus_message_iter_init(msg, &iter))
- {
- logError("CAmNodeStateCommunicatorDBus::signalCallback nodeApplicationMode DBus Message has no arguments!");
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
-
- if (dbus_message_iter_get_arg_type(&iter)!=DBUS_TYPE_STRING)
- {
- logError("CAmNodeStateCommunicatorDBus::signalCallback nodeApplicationMode DBus Message has invalid arguments!");
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
-
- char * sessionNameChar;
- dbus_message_iter_get_basic(&iter, &sessionNameChar);
- sessionName=std::string(sessionNameChar);
- dbus_message_iter_next(&iter);
-
- if (dbus_message_iter_get_arg_type(&iter)!=DBUS_TYPE_INT32)
- {
- logError("CAmNodeStateCommunicatorDBus::signalCallback nodeApplicationMode DBus Message has invalid arguments!");
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
-
- dbus_message_iter_get_basic(&iter, &seatID);
- dbus_message_iter_next(&iter);
-
- if (dbus_message_iter_get_arg_type(&iter)!=DBUS_TYPE_INT32)
- {
- logError("CAmNodeStateCommunicatorDBus::signalCallback nodeApplicationMode DBus Message has invalid arguments!");
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
-
- dbus_message_iter_get_basic(&iter, &sessionState);
-
-
- logInfo("CAmNodeStateCommunicatorDBus::signalCallback got signal sessionStateChanged, with session",sessionName,"seatID=",seatID,"sessionState",sessionState);
-
- assert(instance->mpControlSender);
- instance->mpControlSender->hookSystemSessionStateChanged(sessionName,seatID,sessionState);
- return (DBUS_HANDLER_RESULT_HANDLED);
- }
-
- else
- {
- return (DBUS_HANDLER_RESULT_NOT_YET_HANDLED);
- }
- }
-
- return (DBUS_HANDLER_RESULT_NOT_YET_HANDLED);
-}
-
-am_Error_e CAmNodeStateCommunicatorDBus::readIntegerProperty(const std::string property, int32_t& value)
-{
- DBusError error;
- dbus_error_init(&error);
- DBusMessageIter iter,iterVariant;
-
- DBusMessage * message = dbus_message_new_method_call(NSM_BUS_INTERFACE, NSM_PATH, "org.freedesktop.DBus.Properties", "Get");
-
- if (!message)
- {
- logError("CAmNodeStateCommunicatorDBus::readIntegerProperty dbus error:", error.message);
- dbus_message_unref(message);
- return (E_UNKNOWN);
- }
-
-
- dbus_message_iter_init_append(message, &iter);
- const char *interface=NSM_INTERFACE;
- const char *propertyChar=property.c_str();
- if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &interface))
- {
- logError("CAmNodeStateCommunicatorDBus::readIntegerProperty append error");
- dbus_message_unref(message);
- return (E_UNKNOWN);
- }
-
- if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &propertyChar))
- {
- logError("CAmNodeStateCommunicatorDBus::readIntegerProperty append error");
- dbus_message_unref(message);
- return (E_UNKNOWN);
- }
-
- DBusMessage* reply(dbus_connection_send_with_reply_and_block(mpDBusConnection, message, -1, &error));
- if (!reply)
- {
- logError("CAmNodeStateCommunicatorDBus::readIntegerProperty failed, dbus error", error.message);
- dbus_message_unref(message);
- return (E_UNKNOWN);
- }
-
- if(!dbus_message_iter_init(reply,&iterVariant))
- {
- logError("CAmNodeStateCommunicatorDBus::readIntegerProperty failed, dbus error", error.message);
- dbus_message_unref(message);
- dbus_message_unref(reply);
- return (E_UNKNOWN);
- }
- if (dbus_message_iter_get_arg_type (&iterVariant)!= DBUS_TYPE_VARIANT)
- {
- logError("CAmNodeStateCommunicatorDBus::readIntegerProperty failed, dbus return type wrong");
- dbus_message_unref(reply);
- dbus_message_unref(message);
- return (E_UNKNOWN);
- }
- DBusMessageIter subiter;
- dbus_message_iter_recurse (&iterVariant, &subiter);
- if (dbus_message_iter_get_arg_type (&subiter)!= DBUS_TYPE_INT32)
- {
- logError("CAmNodeStateCommunicatorDBus::readIntegerProperty failed, dbus return type wrong");
- dbus_message_unref(reply);
- dbus_message_unref(message);
- return (E_UNKNOWN);
- }
-
- dbus_message_iter_get_basic(&subiter,&value);
- dbus_message_unref(reply);
- dbus_message_unref(message);
-
- return (E_OK);
-}
-
-} /* namespace am */
diff --git a/AudioManagerDaemon/src/main.cpp b/AudioManagerDaemon/src/main.cpp
index 6db7715..5942e18 100755
--- a/AudioManagerDaemon/src/main.cpp
+++ b/AudioManagerDaemon/src/main.cpp
@@ -30,20 +30,13 @@
#ifdef WITH_CAPI_WRAPPER
#include "CAmCommonAPIWrapper.h"
-#else
- #ifdef WITH_DBUS_WRAPPER
- #include "CAmDbusWrapper.h"
- #endif
#endif
-#ifdef WITH_NSM
- #ifdef WITH_DBUS_WRAPPER
- #include "CAmNodeStateCommunicatorDBus.h"
- #else
- #include "CAmNodeStateCommunicatorCAPI.h"
- #endif
+#ifdef WITH_DBUS_WRAPPER
+ #include "CAmDbusWrapper.h"
#endif
+
#ifdef WITH_DATABASE_STORAGE
#include "CAmDatabaseHandlerSQLite.h"
#else
@@ -336,19 +329,12 @@ void mainProgram(int argc, char *argv[])
#ifdef WITH_CAPI_WRAPPER
//We instantiate a singleton with the current socket handler, which loads the common-api runtime.
CAmCommonAPIWrapper *pCAPIWrapper = CAmCommonAPIWrapper::instantiateOnce(&iSocketHandler, "AudioManager");
- CAmCommonAPIWrapper iDBusWrapper = *pCAPIWrapper;
-#ifdef WITH_NSM
- CAmNodeStateCommunicatorCAPI iNodeStateCommunicator(&iDBusWrapper);
-#endif /*WITH_NSM*/
#endif /*WITH_CAPI_WRAPPER */
#ifdef WITH_DBUS_WRAPPER
if (dbusWrapperTypeBool.getValue())
dbusWrapperType=DBUS_BUS_SYSTEM;
CAmDbusWrapper iDBusWrapper(&iSocketHandler,dbusWrapperType);
-#ifdef WITH_NSM
- CAmNodeStateCommunicatorDBus iNodeStateCommunicator(&iDBusWrapper);
-#endif /*WITH_NSM*/
#endif /*WITH_DBUS_WRAPPER */
#ifdef WITH_SYSTEMD_WATCHDOG
@@ -371,12 +357,7 @@ void mainProgram(int argc, char *argv[])
CAmRoutingReceiver iRoutingReceiver(pDatabaseHandler,&iRoutingSender,&iControlSender,&iSocketHandler);
#endif /*WITH_DBUS_WRAPPER*/
-#ifdef WITH_NSM
- CAmControlReceiver iControlReceiver(pDatabaseHandler,&iRoutingSender,&iCommandSender,&iSocketHandler, &iRouter, &iNodeStateCommunicator);
- iNodeStateCommunicator.registerControlSender(&iControlSender);
-#else /*WITH_NSM*/
- CAmControlReceiver iControlReceiver(pDatabaseHandler,&iRoutingSender,&iCommandSender,&iSocketHandler, &iRouter);
-#endif /*WITH_NSM*/
+CAmControlReceiver iControlReceiver(pDatabaseHandler,&iRoutingSender,&iCommandSender,&iSocketHandler, &iRouter);
#ifdef WITH_TELNET
CAmTelnetServer iTelnetServer(&iSocketHandler, &iCommandSender, &iCommandReceiver, &iRoutingSender, &iRoutingReceiver, &iControlSender, &iControlReceiver, pDatabaseHandler, &iRouter, telnetPort.getValue(), maxConnections.getValue());