From aa93713377d28a8ce7821466ef828f79a18e982d Mon Sep 17 00:00:00 2001 From: christian mueller Date: Mon, 27 Feb 2012 10:11:08 +0100 Subject: * [GAM-4] updated interfaces * shifted mainpage doxygen from EA generated to mainpage.h * added logo to doxygen documentation * fixed compile bug in cmakelists when no plugins are build * [ GAM-23 ]fixed plugin version recognition in cmake * first working CAmSerializer with DatabaseObserver --- PluginCommandInterfaceDbus/CMakeLists.txt | 2 +- .../include/DBusCommandSender.h | 40 +++--- .../src/DBusCommandSender.cpp | 134 +++++++++------------ 3 files changed, 81 insertions(+), 95 deletions(-) (limited to 'PluginCommandInterfaceDbus') diff --git a/PluginCommandInterfaceDbus/CMakeLists.txt b/PluginCommandInterfaceDbus/CMakeLists.txt index 0c26e12..10d696c 100644 --- a/PluginCommandInterfaceDbus/CMakeLists.txt +++ b/PluginCommandInterfaceDbus/CMakeLists.txt @@ -8,7 +8,7 @@ set(INCLUDES_FOLDER "include") FILE(READ "${AUDIO_INCLUDES_FOLDER}/command/CommandSendInterface.h" VERSION_BUFFER LIMIT 6000) STRING(REGEX MATCH "CommandSendVersion*.[^0-9]*[0-9].[0-9]*[0-9]" LIB_INTERFACE_VERSION_STRING ${VERSION_BUFFER}) -STRING(REGEX REPLACE "CommandSendVersion*." "" LIB_INTERFACE_VERSION ${LIB_INTERFACE_VERSION_STRING}) +STRING(REGEX REPLACE "CommandSendVersion*.." "" LIB_INTERFACE_VERSION ${LIB_INTERFACE_VERSION_STRING}) MESSAGE(STATUS "Building against command interface version ${LIB_INTERFACE_VERSION}") FIND_PACKAGE(DBUS REQUIRED) diff --git a/PluginCommandInterfaceDbus/include/DBusCommandSender.h b/PluginCommandInterfaceDbus/include/DBusCommandSender.h index dbf6b04..e64e6f6 100644 --- a/PluginCommandInterfaceDbus/include/DBusCommandSender.h +++ b/PluginCommandInterfaceDbus/include/DBusCommandSender.h @@ -50,25 +50,27 @@ class DbusCommandSender: public CommandSendInterface public: DbusCommandSender(); virtual ~DbusCommandSender(); - am_Error_e startupInterface(CommandReceiveInterface* commandreceiveinterface); - am_Error_e stopInterface(); - am_Error_e cbCommunicationReady(); - am_Error_e cbCommunicationRundown(); - void cbNumberOfMainConnectionsChanged(); - void cbNumberOfSinksChanged(); - void cbNumberOfSourcesChanged(); - void cbNumberOfSinkClassesChanged(); - void cbNumberOfSourceClassesChanged(); - void cbMainConnectionStateChanged(const am_mainConnectionID_t connectionID, const am_ConnectionState_e connectionState); - void cbMainSinkSoundPropertyChanged(const am_sinkID_t sinkID, const am_MainSoundProperty_s SoundProperty); - void cbMainSourceSoundPropertyChanged(const am_sourceID_t sourceID, const am_MainSoundProperty_s& SoundProperty); - void cbSinkAvailabilityChanged(const am_sinkID_t sinkID, const am_Availability_s& availability); - void cbSourceAvailabilityChanged(const am_sourceID_t sourceID, const am_Availability_s& availability); - void cbVolumeChanged(const am_sinkID_t sinkID, const am_mainVolume_t volume); - void cbSinkMuteStateChanged(const am_sinkID_t sinkID, const am_MuteState_e muteState); - void cbSystemPropertyChanged(const am_SystemProperty_s& SystemProperty); - void cbTimingInformationChanged(const am_mainConnectionID_t mainConnectionID, const am_timeSync_t time); - uint16_t getInterfaceVersion() const; + am_Error_e startupInterface(CommandReceiveInterface* commandreceiveinterface) ; + void setCommandReady(const uint16_t handle) ; + void setCommandRundown(const uint16_t handle) ; + void cbNewMainConnection(const am_MainConnectionType_s mainConnection) ; + void cbRemovedMainConnection(const am_mainConnectionID_t mainConnection) ; + void cbNewSink(const am_SinkType_s& sink) ; + void cbRemovedSink(const am_sinkID_t sinkID) ; + void cbNewSource(const am_SourceType_s& source) ; + void cbRemovedSource(const am_sourceID_t source) ; + void cbNumberOfSinkClassesChanged() ; + void cbNumberOfSourceClassesChanged() ; + void cbMainConnectionStateChanged(const am_mainConnectionID_t connectionID, const am_ConnectionState_e connectionState) ; + void cbMainSinkSoundPropertyChanged(const am_sinkID_t sinkID, const am_MainSoundProperty_s& soundProperty) ; + void cbMainSourceSoundPropertyChanged(const am_sourceID_t sourceID, const am_MainSoundProperty_s& soundProperty) ; + void cbSinkAvailabilityChanged(const am_sinkID_t sinkID, const am_Availability_s& availability) ; + void cbSourceAvailabilityChanged(const am_sourceID_t sourceID, const am_Availability_s& availability) ; + void cbVolumeChanged(const am_sinkID_t sinkID, const am_mainVolume_t volume) ; + void cbSinkMuteStateChanged(const am_sinkID_t sinkID, const am_MuteState_e muteState) ; + void cbSystemPropertyChanged(const am_SystemProperty_s& systemProperty) ; + void cbTimingInformationChanged(const am_mainConnectionID_t mainConnectionID, const am_timeSync_t time) ; + void getInterfaceVersion(std::string& version) const ; #ifdef UNIT_TEST friend class DbusCommandInterfaceBackdoor; diff --git a/PluginCommandInterfaceDbus/src/DBusCommandSender.cpp b/PluginCommandInterfaceDbus/src/DBusCommandSender.cpp index 3bebdde..de577c9 100644 --- a/PluginCommandInterfaceDbus/src/DBusCommandSender.cpp +++ b/PluginCommandInterfaceDbus/src/DBusCommandSender.cpp @@ -86,38 +86,26 @@ am_Error_e DbusCommandSender::startupInterface(CommandReceiveInterface* commandr return (E_OK); } -am_Error_e DbusCommandSender::stopInterface() -{ - log(&commandDbus, DLT_LOG_INFO, "stopInterface called"); - mReady = false; - /** - * todo: finish DbusCommandSender::stopInterface(), what needs to be done? - */ - return (E_OK); -} - -am_Error_e DbusCommandSender::cbCommunicationReady() +void DbusCommandSender::setCommandReady(const uint16_t handle) { + //todo:implement handle handling log(&commandDbus, DLT_LOG_INFO, "cbCommunicationReady called"); mReady = true; - /** - * todo: implement DbusCommandSender::cbCommunicationReady() - */ - return E_NOT_USED; } -am_Error_e DbusCommandSender::cbCommunicationRundown() +void DbusCommandSender::setCommandRundown(const uint16_t handle) { log(&commandDbus, DLT_LOG_INFO, "cbCommunicationRundown called"); mReady = false; /** * todo: implement DbusCommandSender::cbCommunicationRundown() */ - return E_NOT_USED; } -void DbusCommandSender::cbNumberOfMainConnectionsChanged() +void DbusCommandSender::cbNewMainConnection(const am_MainConnectionType_s mainConnection) { + (void)mainConnection; + //todo: change xml and interface to differetiate between new connection and removed one log(&commandDbus, DLT_LOG_INFO, "cbNumberOfMainConnectionsChanged called"); if (mReady) @@ -127,76 +115,72 @@ void DbusCommandSender::cbNumberOfMainConnectionsChanged() } } -void DbusCommandSender::cbNumberOfSinksChanged() +void DbusCommandSender::cbRemovedMainConnection(const am_mainConnectionID_t mainConnection) { - log(&commandDbus, DLT_LOG_INFO, "cbNumberOfSinksChanged called"); +//todo: change xml and interface to differetiate between new connection and removed one + log(&commandDbus, DLT_LOG_INFO, "cbNumberOfMainConnectionsChanged called"); - std::vector newListSinks; - std::vector diffList; - mCommandReceiveInterface->getListMainSinks(newListSinks); - std::sort(newListSinks.begin(), newListSinks.end(), sortBySinkID()); - std::set_symmetric_difference(newListSinks.begin(), newListSinks.end(), mlistSinks.begin(), mlistSinks.end(), std::back_inserter(diffList), sortBySinkID()); if (mReady) { - if (newListSinks.size() > mlistSinks.size()) - { - std::vector::iterator iter(diffList.begin()); - for (;iter!=diffList.end();++iter) - { - mDBUSMessageHandler.initSignal(std::string(MY_NODE), "SinkAdded"); - mDBUSMessageHandler.append(*iter); - - log(&commandDbus, DLT_LOG_INFO, "send signal SinkAdded"); - mDBUSMessageHandler.sendMessage(); - } - } - else - { - std::vector::iterator iter(diffList.begin()); - for (;iter!=diffList.end();++iter) - { - mDBUSMessageHandler.initSignal(std::string(MY_NODE), "SinkAdded"); - mDBUSMessageHandler.append(*iter); - - log(&commandDbus, DLT_LOG_INFO, "send signal SinkAdded"); - mDBUSMessageHandler.sendMessage(); - } - } + mDBUSMessageHandler.initSignal(std::string(MY_NODE), std::string("NumberOfMainConnectionsChanged")); + mDBUSMessageHandler.sendMessage(); } - mlistSinks = newListSinks; +} + +void DbusCommandSender::cbNewSink(const am_SinkType_s& sink) +{ + log(&commandDbus, DLT_LOG_INFO, "cbNewSink called"); + if (mReady) + { + mDBUSMessageHandler.initSignal(std::string(MY_NODE), "SinkAdded"); + mDBUSMessageHandler.append(sink); + + log(&commandDbus, DLT_LOG_INFO, "send signal SinkAdded"); + mDBUSMessageHandler.sendMessage(); + } +} + +void DbusCommandSender::cbRemovedSink(const am_sinkID_t sinkID) +{ + //todo: check if this really works! + log(&commandDbus, DLT_LOG_INFO, "cbRemovedSink called"); + + if (mReady) + { + mDBUSMessageHandler.initSignal(std::string(MY_NODE), "SinkRemoved"); + mDBUSMessageHandler.append(sinkID); + + log(&commandDbus, DLT_LOG_INFO, "send signal SinkAdded"); + mDBUSMessageHandler.sendMessage(); + } } -void DbusCommandSender::cbNumberOfSourcesChanged() +void DbusCommandSender::cbNewSource(const am_SourceType_s& source) { log(&commandDbus, DLT_LOG_INFO, "cbNumberOfSourcesChanged called"); - std::vector newlistSources; - std::vector diffList; - mCommandReceiveInterface->getListMainSources(newlistSources); - std::sort(newlistSources.begin(), newlistSources.end(), sortBySourceID()); - std::set_symmetric_difference(newlistSources.begin(), newlistSources.end(), mlistSources.begin(), mlistSources.end(), std::back_inserter(diffList), sortBySourceID()); - assert(diffList.size()==1); if (mReady) { - if (newlistSources.size() > mlistSources.size()) - { - mDBUSMessageHandler.initSignal(std::string(MY_NODE), "SourceAdded"); - mDBUSMessageHandler.append(diffList[0]); + mDBUSMessageHandler.initSignal(std::string(MY_NODE), "SourceAdded"); + mDBUSMessageHandler.append(source); - log(&commandDbus, DLT_LOG_INFO, "send signal SourceAdded"); - } - else - { - mDBUSMessageHandler.initSignal(std::string(MY_NODE), "SourceRemoved"); - mDBUSMessageHandler.append((dbus_uint16_t) diffList.begin()->sourceID); + log(&commandDbus, DLT_LOG_INFO, "send signal SourceAdded"); + mDBUSMessageHandler.sendMessage(); + } +} - log(&commandDbus, DLT_LOG_INFO, "send signal SourceRemoved"); - } +void am::DbusCommandSender::cbRemovedSource(const am_sourceID_t source) +{ + if (mReady) + { + mDBUSMessageHandler.initSignal(std::string(MY_NODE), "SourceRemoved"); + mDBUSMessageHandler.append(source); + + log(&commandDbus, DLT_LOG_INFO, "send signal SourceRemoved"); mDBUSMessageHandler.sendMessage(); } - mlistSources = newlistSources; } void DbusCommandSender::cbNumberOfSinkClassesChanged() @@ -234,15 +218,15 @@ void DbusCommandSender::cbMainConnectionStateChanged(const am_mainConnectionID_t } } -void DbusCommandSender::cbMainSinkSoundPropertyChanged(const am_sinkID_t sinkID, const am_MainSoundProperty_s SoundProperty) +void DbusCommandSender::cbMainSinkSoundPropertyChanged(const am_sinkID_t sinkID, const am_MainSoundProperty_s & soundProperty) { - log(&commandDbus, DLT_LOG_INFO, "cbMainSinkSoundPropertyChanged called, sinkID", sinkID, "SoundProperty.type", SoundProperty.type, "SoundProperty.value", SoundProperty.value); + log(&commandDbus, DLT_LOG_INFO, "cbMainSinkSoundPropertyChanged called, sinkID", sinkID, "SoundProperty.type", soundProperty.type, "SoundProperty.value", soundProperty.value); if (mReady) { mDBUSMessageHandler.initSignal(std::string(MY_NODE), std::string("MainSinkSoundPropertyChanged")); mDBUSMessageHandler.append((dbus_uint16_t) sinkID); - mDBUSMessageHandler.append(SoundProperty); + mDBUSMessageHandler.append(soundProperty); mDBUSMessageHandler.sendMessage(); } } @@ -337,8 +321,8 @@ void am::DbusCommandSender::cbTimingInformationChanged(const am_mainConnectionID } } -uint16_t DbusCommandSender::getInterfaceVersion() const +void DbusCommandSender::getInterfaceVersion(std::string & version) const { - return (CommandSendVersion); + version = CommandSendVersion; } -- cgit v1.2.1