summaryrefslogtreecommitdiff
path: root/PluginCommandInterfaceDbus
diff options
context:
space:
mode:
authorchristian mueller <christian.ei.mueller@bmw.de>2012-02-27 10:11:08 +0100
committerchristian mueller <christian.ei.mueller@bmw.de>2012-02-27 19:10:59 +0100
commitaa93713377d28a8ce7821466ef828f79a18e982d (patch)
treef1efc6d524ef4656f93977e746d75428e06ac236 /PluginCommandInterfaceDbus
parent02b17a992e900ad82df8edf02e5e51e750ece36b (diff)
downloadaudiomanager-aa93713377d28a8ce7821466ef828f79a18e982d.tar.gz
* [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
Diffstat (limited to 'PluginCommandInterfaceDbus')
-rw-r--r--PluginCommandInterfaceDbus/CMakeLists.txt2
-rw-r--r--PluginCommandInterfaceDbus/include/DBusCommandSender.h40
-rw-r--r--PluginCommandInterfaceDbus/src/DBusCommandSender.cpp134
3 files changed, 81 insertions, 95 deletions
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<am_SinkType_s> newListSinks;
- std::vector<am_SinkType_s> 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<am_SinkType_s>::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<am_SinkType_s>::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<am_SourceType_s> newlistSources;
- std::vector<am_SourceType_s> 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;
}