summaryrefslogtreecommitdiff
path: root/AudioManagerCore/src/CAmControlSender.cpp
diff options
context:
space:
mode:
authorKapildev Patel <kpatel@jp.adit-jv.com>2017-04-24 18:58:31 +0900
committerJens Lorenz <jlorenz@de.adit-jv.com>2017-09-29 11:42:01 +0200
commit3e9f7977dc599b6a91e875c8239480f212a4cd3a (patch)
tree072aeba3a6245eaa6470d7cd21c58afe93d5d051 /AudioManagerCore/src/CAmControlSender.cpp
parentf620be8a774f966fbd76ca8892a39ce28037a213 (diff)
downloadaudiomanager-3e9f7977dc599b6a91e875c8239480f212a4cd3a.tar.gz
AM: Destroy plugin implementation.
With these changes AudioManager would call destroy function of the controller plugin at the time of shutdown. Signed-off-by: Kapildev Patel <kpatel@jp.adit-jv.com>
Diffstat (limited to 'AudioManagerCore/src/CAmControlSender.cpp')
-rw-r--r--AudioManagerCore/src/CAmControlSender.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/AudioManagerCore/src/CAmControlSender.cpp b/AudioManagerCore/src/CAmControlSender.cpp
index a12373c..ce5d132 100644
--- a/AudioManagerCore/src/CAmControlSender.cpp
+++ b/AudioManagerCore/src/CAmControlSender.cpp
@@ -115,7 +115,7 @@ CAmControlSender::CAmControlSender(std::string controlPluginFile,CAmSocketHandle
createFunc = getCreateFunction<IAmControlSend*()>(controlPluginFile, mlibHandle);
assert(createFunc!=NULL);
mController = createFunc();
-
+ mControlPluginFile = controlPluginFile;
//check libversion
std::string version, cVersion(ControlVersion);
mController->getInterfaceVersion(version);
@@ -155,8 +155,18 @@ CAmControlSender::~CAmControlSender()
{
close(mPipe[0]);
close(mPipe[1]);
- //if (mlibHandle)
- // dlclose(mlibHandle);
+ void (*destroyFunc)(IAmControlSend*);
+ destroyFunc = getDestroyFunction<void(IAmControlSend*)>(mControlPluginFile,mlibHandle);
+ assert(destroyFunc!=NULL);
+ destroyFunc(mController);
+ if(mlibHandle)
+ {
+ dlclose(mlibHandle);
+ }
+ else
+ {
+ logError("CAmControlSender Dtor: mlibHandle is invalid");
+ }
}
am_Error_e CAmControlSender::hookUserConnectionRequest(const am_sourceID_t sourceID, const am_sinkID_t sinkID, am_mainConnectionID_t & mainConnectionID)