summaryrefslogtreecommitdiff
path: root/orkbasecxx
diff options
context:
space:
mode:
authorGerald Begumisa <ben_g@users.sourceforge.net>2009-06-03 13:26:35 +0000
committerGerald Begumisa <ben_g@users.sourceforge.net>2009-06-03 13:26:35 +0000
commit2997d9599a7f90527983e42bf8a0bb9f2e4c7d09 (patch)
tree4868baffed8d76c150aa1d91fedf2fc4de7c2f8a /orkbasecxx
parent49bd54fee4e12d32b73b851e093048d87b01b88d (diff)
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
Diffstat (limited to 'orkbasecxx')
-rw-r--r--orkbasecxx/AudioCapturePlugin.h3
-rw-r--r--orkbasecxx/CapturePluginProxy.cpp29
-rw-r--r--orkbasecxx/CapturePluginProxy.h4
3 files changed, 33 insertions, 3 deletions
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;