summaryrefslogtreecommitdiff
path: root/AudioManagerDaemon/src/ControlSender.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'AudioManagerDaemon/src/ControlSender.cpp')
-rw-r--r--AudioManagerDaemon/src/ControlSender.cpp62
1 files changed, 48 insertions, 14 deletions
diff --git a/AudioManagerDaemon/src/ControlSender.cpp b/AudioManagerDaemon/src/ControlSender.cpp
index a334475..492244e 100644
--- a/AudioManagerDaemon/src/ControlSender.cpp
+++ b/AudioManagerDaemon/src/ControlSender.cpp
@@ -27,10 +27,14 @@
#include "DLTWrapper.h"
#include <cassert>
#include <fstream>
+#include <iostream>
+#include <sstream>
+#include <stdexcept>
using namespace am;
-#define REQUIRED_MIN_INTERFACE_VERSION 1
+#define REQUIRED_INTERFACE_VERSION_MAJOR 1
+#define REQUIRED_INTERFACE_VERSION_MINOR 0
ControlSender::ControlSender(std::string controlPluginFile) :
mlibHandle(NULL), //
@@ -49,7 +53,17 @@ ControlSender::ControlSender(std::string controlPluginFile) :
mController = createFunc();
//check libversion
- assert(REQUIRED_MIN_INTERFACE_VERSION<=mController->getInterfaceVersion());
+ std::string version;
+ mController->getInterfaceVersion(version);
+ uint16_t minorVersion, majorVersion;
+ std::istringstream(version.substr(0, 1)) >> majorVersion;
+ std::istringstream(version.substr(2, 1)) >> minorVersion;
+
+ if (majorVersion < REQUIRED_INTERFACE_VERSION_MAJOR || ((majorVersion == REQUIRED_INTERFACE_VERSION_MAJOR) && (minorVersion > REQUIRED_INTERFACE_VERSION_MINOR)))
+ {
+ logError("ControlSender::ControlSender: Interface Version of Controller too old, exiting now");
+ throw std::runtime_error("Interface Version of Controller too old");
+ }
}
else
{
@@ -63,11 +77,6 @@ ControlSender::~ControlSender()
dlclose(mlibHandle);
}
-void ControlSender::hookAllPluginsLoaded()
-{
- mController->hookAllPluginsLoaded();
-}
-
am_Error_e ControlSender::hookUserConnectionRequest(const am_sourceID_t sourceID, const am_sinkID_t sinkID, am_mainConnectionID_t & mainConnectionID)
{
return mController->hookUserConnectionRequest(sourceID, sinkID, mainConnectionID);
@@ -248,11 +257,6 @@ am_Error_e ControlSender::startupController(ControlReceiveInterface *controlrece
return mController->startupController(controlreceiveinterface);
}
-am_Error_e ControlSender::stopController()
-{
- return mController->stopController();
-}
-
void ControlSender::cbAckSetSinkSoundProperty(const am_Handle_s handle, const am_Error_e error)
{
mController->cbAckSetSinkSoundProperty(handle, error);
@@ -268,13 +272,43 @@ void ControlSender::cbAckSetSourceSoundProperties(const am_Handle_s handle, cons
mController->cbAckSetSourceSoundProperties(handle, error);
}
+void ControlSender::setControllerReady()
+{
+ mController->setControllerReady();
+}
+
+void ControlSender::setControllerRundown()
+{
+ mController->setControllerRundown();
+}
+
am_Error_e am::ControlSender::getConnectionFormatChoice(const am_sourceID_t sourceID, const am_sinkID_t sinkID, const am_Route_s listRoute, const std::vector<am_ConnectionFormat_e> listPossibleConnectionFormats, std::vector<am_ConnectionFormat_e> & listPrioConnectionFormats)
{
return mController->getConnectionFormatChoice(sourceID, sinkID, listRoute, listPossibleConnectionFormats, listPrioConnectionFormats);
}
-uint16_t ControlSender::getInterfaceVersion() const
+void ControlSender::getInterfaceVersion(std::string & version) const
+{
+ version = ControlSendVersion;
+}
+
+void ControlSender::confirmCommandReady()
+{
+ mController->confirmCommandReady();
+}
+
+void ControlSender::confirmRoutingReady()
+{
+ mController->confirmRoutingReady();
+}
+
+void ControlSender::confirmCommandRundown()
+{
+ mController->confirmCommandRundown();
+}
+
+void ControlSender::confirmRoutingRundown()
{
- return ControlSendVersion;
+ mController->confirmRoutingRundown();
}