diff options
author | Kapildev Patel <kpatel@jp.adit-jv.com> | 2017-04-24 18:58:31 +0900 |
---|---|---|
committer | Jens Lorenz <jlorenz@de.adit-jv.com> | 2017-09-29 11:42:01 +0200 |
commit | 3e9f7977dc599b6a91e875c8239480f212a4cd3a (patch) | |
tree | 072aeba3a6245eaa6470d7cd21c58afe93d5d051 /AudioManagerCore/src/CAmControlSender.cpp | |
parent | f620be8a774f966fbd76ca8892a39ce28037a213 (diff) | |
download | audiomanager-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.cpp | 16 |
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) |