From 2997d9599a7f90527983e42bf8a0bb9f2e4c7d09 Mon Sep 17 00:00:00 2001 From: Gerald Begumisa Date: Wed, 3 Jun 2009 13:26:35 +0000 Subject: Added methods SetOnHold and SetOffHold to orkaudio API for capture plugins. Implemented this change in VoIp plugin. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@618 09dcff7a-b715-0410-9601-b79a96267cd0 --- orkaudio/audiocaptureplugins/voip/VoIp.cpp | 20 ++++++++++++++++++++ orkbasecxx/AudioCapturePlugin.h | 3 ++- orkbasecxx/CapturePluginProxy.cpp | 29 +++++++++++++++++++++++++++-- orkbasecxx/CapturePluginProxy.h | 4 ++++ 4 files changed, 53 insertions(+), 3 deletions(-) diff --git a/orkaudio/audiocaptureplugins/voip/VoIp.cpp b/orkaudio/audiocaptureplugins/voip/VoIp.cpp index 0e85bae..bb22b7d 100644 --- a/orkaudio/audiocaptureplugins/voip/VoIp.cpp +++ b/orkaudio/audiocaptureplugins/voip/VoIp.cpp @@ -86,6 +86,8 @@ public: void StartCapture(CStdString& port, CStdString& orkuid); void StopCapture(CStdString& port); void PauseCapture(CStdString& port, CStdString& orkuid); + void SetOnHold(CStdString& port, CStdString& orkuid); + void SetOffHold(CStdString& port, CStdString& orkuid); void ReportPcapStats(); pcap_t* OpenDevice(CStdString& name); void AddPcapDeviceToMap(CStdString& deviceName, pcap_t* pcapHandle); @@ -3384,6 +3386,15 @@ void VoIp::StopCapture(CStdString& port) ; } +void VoIp::SetOnHold(CStdString& port, CStdString& orkuid) +{ + ; +} + +void VoIp::SetOffHold(CStdString& port, CStdString& orkuid) +{ + ; +} void __CDECL__ Initialize() { @@ -3443,4 +3454,13 @@ void __CDECL__ StopCapture(CStdString& party) ; } +void __CDECL__ SetOnHold(CStdString& port, CStdString& orkuid) +{ + ; +} + +void __CDECL__ SetOffHold(CStdString& port, CStdString& orkuid) +{ + ; +} diff --git a/orkbasecxx/AudioCapturePlugin.h b/orkbasecxx/AudioCapturePlugin.h index c7fc38c..ede2ea0 100644 --- a/orkbasecxx/AudioCapturePlugin.h +++ b/orkbasecxx/AudioCapturePlugin.h @@ -44,7 +44,8 @@ typedef void (__CDECL__* ConfigureFunction)(DOMNode*); typedef void (__CDECL__* StartCaptureFunction)(CStdString& port, CStdString& orkUid); typedef void (__CDECL__* StopCaptureFunction)(CStdString& port); typedef void (__CDECL__* PauseCaptureFunction)(CStdString& port, CStdString& orkUid); - +typedef void (__CDECL__* SetOnHoldFunction)(CStdString& port, CStdString& orkUid); +typedef void (__CDECL__* SetOffHoldFunction)(CStdString& port, CStdString& orkUid); #endif diff --git a/orkbasecxx/CapturePluginProxy.cpp b/orkbasecxx/CapturePluginProxy.cpp index f5db16c..67c8395 100644 --- a/orkbasecxx/CapturePluginProxy.cpp +++ b/orkbasecxx/CapturePluginProxy.cpp @@ -90,9 +90,18 @@ bool CapturePluginProxy::Init() { m_dll.open((PCSTR)pluginPath); ACE_TCHAR* error = m_dll.error(); +#ifndef WIN32 + char *errorstr; +#endif if(error) { +#ifndef WIN32 + errorstr = dlerror(); + CStdString errorcstds(errorstr); + LOG4CXX_ERROR(LOG.rootLog, CStdString("Failed to load the following plugin: ") + pluginPath + " " + errorcstds); +#else LOG4CXX_ERROR(LOG.rootLog, CStdString("Failed to load the following plugin: ") + pluginPath); +#endif } else { @@ -123,9 +132,25 @@ bool CapturePluginProxy::Init() if (m_stopCaptureFunction) { m_pauseCaptureFunction = (PauseCaptureFunction)m_dll.symbol("PauseCapture"); - if(m_stopCaptureFunction) + if(m_pauseCaptureFunction) { - m_loaded = true; + m_setOnHoldFunction = (SetOnHoldFunction)m_dll.symbol("SetOnHold"); + if(m_setOnHoldFunction) + { + m_setOffHoldFunction = (SetOnHoldFunction)m_dll.symbol("SetOffHold"); + if(m_setOffHoldFunction) + { + m_loaded = true; + } + else + { + LOG4CXX_ERROR(LOG.rootLog, CStdString("Could not find SetOffHold function in ") + pluginPath); + } + } + else + { + LOG4CXX_ERROR(LOG.rootLog, CStdString("Could not find SetOnHold function in ") + pluginPath); + } } else { diff --git a/orkbasecxx/CapturePluginProxy.h b/orkbasecxx/CapturePluginProxy.h index a3d4257..3ce7e46 100644 --- a/orkbasecxx/CapturePluginProxy.h +++ b/orkbasecxx/CapturePluginProxy.h @@ -31,6 +31,8 @@ public: void StartCapture(CStdString& party, CStdString& orkuid); void PauseCapture(CStdString& party, CStdString& orkuid); void StopCapture(CStdString& party); + void SetOnHold(CStdString& party, CStdString& orkuid); + void SetOffHold(CStdString& party, CStdString& orkuid); static void __CDECL__ AudioChunkCallBack(AudioChunkRef chunkRef, CStdString& capturePort); static void __CDECL__ CaptureEventCallBack(CaptureEventRef eventRef, CStdString& capturePort); @@ -46,6 +48,8 @@ private: StartCaptureFunction m_startCaptureFunction; StopCaptureFunction m_stopCaptureFunction; PauseCaptureFunction m_pauseCaptureFunction; + SetOnHoldFunction m_setOnHoldFunction; + SetOffHoldFunction m_setOffHoldFunction; ACE_DLL m_dll; bool m_loaded; -- cgit v1.2.3