28 #ifndef OPAL_LIDS_LIDPLUGIN_H
29 #define OPAL_LIDS_LIDPLUGIN_H
38 # ifdef PLUGIN_DLL_EXPORTS
39 # define PLUGIN_DLL_API __declspec(dllexport)
41 # define PLUGIN_DLL_API __declspec(dllimport)
46 #define PLUGIN_DLL_API
50 #ifdef PWLIB_PLUGIN_API_VERSION
51 #undef PWLIB_PLUGIN_API_VERSION
53 #define PWLIB_PLUGIN_API_VERSION 1
59 #define PLUGIN_LID_VERSION 1 // initial version
205 unsigned lowFrequency,
206 unsigned highFrequency,
208 unsigned numCadences,
209 const unsigned * onTimes,
210 const unsigned * offTimes);
233 #define PLUGIN_LID_CTOR() \
234 static void * Create(const struct PluginLID_Definition * definition) { return new Context; } \
237 #define PLUGIN_LID_DTOR() \
238 static void Destroy(const struct PluginLID_Definition * definition, void * context) { delete (Context *)context; } \
241 #define PLUGIN_FUNCTION_ARG0(fn) \
242 static PluginLID_Errors fn(void * context) { return context == NULL ? PluginLID_BadContext : ((Context *)context)->fn(); } \
243 PluginLID_Errors fn( )
245 #define PLUGIN_FUNCTION_ARG0(fn) \
246 static PluginLID_Errors fn(void * context) { return context == NULL ? PluginLID_BadContext : ((Context *)context)->fn(); } \
247 PluginLID_Errors fn( )
249 #define PLUGIN_FUNCTION_ARG1(fn, type1,var1) \
250 static PluginLID_Errors fn(void * context, type1 var1) { return context == NULL ? PluginLID_BadContext : ((Context *)context)->fn(var1); } \
251 PluginLID_Errors fn( type1 var1)
253 #define PLUGIN_FUNCTION_ARG2(fn, type1,var1, type2,var2) \
254 static PluginLID_Errors fn(void * context, type1 var1, type2 var2) { return context == NULL ? PluginLID_BadContext : ((Context *)context)->fn(var1, var2); } \
255 PluginLID_Errors fn( type1 var1, type2 var2)
257 #define PLUGIN_FUNCTION_ARG3(fn, type1,var1, type2,var2, type3,var3) \
258 static PluginLID_Errors fn(void * context, type1 var1, type2 var2, type3 var3) { return context == NULL ? PluginLID_BadContext : ((Context *)context)->fn(var1, var2, var3); } \
259 PluginLID_Errors fn( type1 var1, type2 var2, type3 var3)
261 #define PLUGIN_FUNCTION_ARG4(fn, type1,var1, type2,var2, type3,var3, type4,var4) \
262 static PluginLID_Errors fn(void * context, type1 var1, type2 var2, type3 var3, type4 var4) { return context == NULL ? PluginLID_BadContext : ((Context *)context)->fn(var1, var2, var3, var4); } \
263 PluginLID_Errors fn( type1 var1, type2 var2, type3 var3, type4 var4)
265 #define PLUGIN_FUNCTION_ARG8(fn, type1,var1, type2,var2, type3,var3, type4,var4, type5,var5, type6,var6, type7,var7, type8,var8) \
266 static PluginLID_Errors fn(void * context, type1 var1, type2 var2, type3 var3, type4 var4, type5 var5, type6 var6, type7 var7, type8 var8) { return context == NULL ? PluginLID_BadContext : ((Context *)context)->fn(var1, var2, var3, var4, var5, var6, var7, var8); } \
267 PluginLID_Errors fn( type1 var1, type2 var2, type3 var3, type4 var4, type5 var5, type6 var6, type7 var7, type8 var8)
269 #endif // __cplusplus
272 #define PLUGIN_LID_API_VER_FN PWLibPlugin_GetAPIVersion
273 #define PLUGIN_LID_API_VER_FN_STR "PWLibPlugin_GetAPIVersion"
275 #define PLUGIN_LID_GET_LIDS_FN OpalPluginLID_GetDefinitions
276 #define PLUGIN_LID_GET_LIDS_FN_STR "OpalPluginLID_GetDefinitions"
279 typedef struct PluginLID_Definition * (* PluginLID_GetDefinitionsFunction)(
unsigned * ,
unsigned );
282 #define PLUGIN_LID_IMPLEMENTATION(defs) \
284 PLUGIN_DLL_API unsigned int PLUGIN_LID_API_VER_FN() { return PWLIB_PLUGIN_API_VERSION; } \
285 PLUGIN_DLL_API PluginLID_Definition * PLUGIN_LID_GET_LIDS_FN(unsigned * count, unsigned version) \
286 { *count = sizeof(defs)/sizeof(defs[0]); return defs; } \
294 #endif // OPAL_LIDS_LIDPLUGIN_H
PluginLID_Errors(* SendVisualMessageWaitingIndicator)(void *context, unsigned line, PluginLID_Boolean on)
Definition: lidplugin.h:192
PluginLID_Errors(* GetRemoveDTMF)(void *context, unsigned line, PluginLID_Boolean *removeTones)
Definition: lidplugin.h:196
PluginLID_Errors(* HookFlash)(void *context, unsigned line, unsigned flashTime)
Definition: lidplugin.h:153
const char * manufacturerURL
Definition: lidplugin.h:130
unsigned m_commaDelay
Time in msec to wait when a comma (',') is found in the dial string.
Definition: lidplugin.h:113
Definition: lidplugin.h:83
PluginLID_Errors(* SetLineOffHook)(void *context, unsigned line, PluginLID_Boolean newState)
Definition: lidplugin.h:152
Definition: lidplugin.h:76
const char * license
Definition: lidplugin.h:136
PluginLID_Errors(* IsAudioEnabled)(void *context, unsigned line, PluginLID_Boolean *enable)
Definition: lidplugin.h:178
PluginLID_Errors(* SetLineConnected)(void *context, unsigned line)
Definition: lidplugin.h:225
PluginLID_Errors(* SetWinkDuration)(void *context, unsigned line, unsigned winkDuration)
Definition: lidplugin.h:218
PluginLID_Errors(* PlayDTMF)(void *context, unsigned line, const char *digits, unsigned onTime, unsigned offTime)
Definition: lidplugin.h:194
time_t timestamp
Definition: lidplugin.h:122
PluginLID_Errors(* ReadFrame)(void *context, unsigned line, void *buffer, unsigned *count)
Definition: lidplugin.h:172
Definition: lidplugin.h:95
PluginLID_Errors(* GetReadFormat)(void *context, unsigned line, char *mediaFormat, unsigned size)
Definition: lidplugin.h:164
PluginLID_Errors(* GetWinkDuration)(void *context, unsigned line, unsigned *winkDuration)
Definition: lidplugin.h:217
PluginLID_Errors(* ReadDTMF)(void *context, unsigned line, char *digit)
Definition: lidplugin.h:195
unsigned m_dialStartDelay
Time in msec to wait between the dial tone detection and dialing the dtmf.
Definition: lidplugin.h:111
PluginLID_Errors(* GetSupportedCountry)(void *context, unsigned index, unsigned *countryCode)
Definition: lidplugin.h:222
int PluginLID_Boolean
Definition: lidplugin.h:61
const char * copyright
Definition: lidplugin.h:135
PluginLID_Errors(* WaitForTone)(void *context, unsigned line, int tone, unsigned timeout)
Definition: lidplugin.h:201
PluginLID_Errors(* IsLineToLineDirect)(void *context, unsigned line1, unsigned line2, PluginLID_Boolean *connected)
Definition: lidplugin.h:159
PluginLID_Errors(* SetCallerID)(void *context, unsigned line, const char *idString)
Definition: lidplugin.h:191
Definition: lidplugin.h:98
Definition: lidplugin.h:80
PluginLID_Errors(* GetLineCount)(void *context, unsigned *count)
Definition: lidplugin.h:148
PluginLID_Errors(* RingLine)(void *context, unsigned line, unsigned nCadence, const unsigned *pattern, unsigned frequency)
Definition: lidplugin.h:156
const char * version
Definition: lidplugin.h:137
Definition: lidplugin.h:88
PluginLID_Errors(* IsLineOffHook)(void *context, unsigned line, PluginLID_Boolean *offHook)
Definition: lidplugin.h:151
PluginLID_Errors(* SetRecordVolume)(void *context, unsigned line, unsigned volume)
Definition: lidplugin.h:179
void(* Destroy)(const struct PluginLID_Definition *definition, void *context)
Definition: lidplugin.h:142
PluginLID_Errors(* SetAEC)(void *context, unsigned line, unsigned level)
Definition: lidplugin.h:185
PluginLID_Errors(* IsLinePresent)(void *context, unsigned line, PluginLID_Boolean forceTest, PluginLID_Boolean *present)
Definition: lidplugin.h:150
const char * authorURL
Definition: lidplugin.h:134
PluginLID_Errors(* SetToneParameters)(void *context, unsigned line, unsigned tone, unsigned lowFrequency, unsigned highFrequency, unsigned mixingMode, unsigned numCadences, const unsigned *onTimes, const unsigned *offTimes)
Definition: lidplugin.h:203
const char * authorEmail
Definition: lidplugin.h:133
PluginLID_Errors(* GetSupportedFormat)(void *context, unsigned index, char *mediaFormat, unsigned size)
Definition: lidplugin.h:161
const char * name
Definition: lidplugin.h:124
Definition: lidplugin.h:73
PluginLID_Errors(* SetReadFrameSize)(void *context, unsigned line, unsigned frameSize)
Definition: lidplugin.h:168
bool m_requireTones
Require dial/ring tone to be detected.
Definition: lidplugin.h:109
Definition: lidplugin.h:75
Definition: lidplugin.h:100
unsigned m_progressTimeout
Time in msec to wait for a progress tone (ring, busy or connected) to be detected.
Definition: lidplugin.h:112
Definition: lidplugin.h:82
PluginLID_Errors(* EnableAudio)(void *context, unsigned line, PluginLID_Boolean enable)
Definition: lidplugin.h:177
Definition: lidplugin.h:96
PluginLID_Errors(* GetWriteFrameSize)(void *context, unsigned line, unsigned *frameSize)
Definition: lidplugin.h:171
const char * author
Definition: lidplugin.h:132
Definition: lidplugin.h:99
Definition: lidplugin.h:86
PluginLID_Errors(* Open)(void *context, const char *device)
Definition: lidplugin.h:145
unsigned int apiVersion
Definition: lidplugin.h:119
PluginLID_Errors(* IsLineRinging)(void *context, unsigned line, unsigned long *cadence)
Definition: lidplugin.h:155
const char * manufacturerEmail
Definition: lidplugin.h:129
Definition: lidplugin.h:72
Definition: lidplugin.h:79
PluginLID_Errors(* GetCallerID)(void *context, unsigned line, char *idString, unsigned size, PluginLID_Boolean full)
Definition: lidplugin.h:190
PluginLID_CallProgressTones
Definition: lidplugin.h:94
Definition: lidplugin.h:107
PluginLID_Errors(* GetReadFrameSize)(void *context, unsigned line, unsigned *frameSize)
Definition: lidplugin.h:170
Definition: lidplugin.h:87
PluginLID_Errors
Definition: lidplugin.h:71
PluginLID_Errors(* IsLineTerminal)(void *context, unsigned line, PluginLID_Boolean *isTerminal)
Definition: lidplugin.h:149
Definition: lidplugin.h:78
PluginLID_Errors(* WriteFrame)(void *context, unsigned line, const void *buffer, unsigned count, unsigned *written)
Definition: lidplugin.h:173
PluginLID_Errors(* SetCountryCode)(void *context, unsigned country)
Definition: lidplugin.h:220
PluginLID_Errors(* SetPlayVolume)(void *context, unsigned line, unsigned volume)
Definition: lidplugin.h:180
PluginLID_Errors(* PlayTone)(void *context, unsigned line, unsigned tone)
Definition: lidplugin.h:211
PluginLID_Errors(* StopWriting)(void *context, unsigned line)
Definition: lidplugin.h:167
Definition: lidplugin.h:84
PluginLID_Errors(* DialOut)(void *context, unsigned line, const char *number, struct PluginLID_DialParams *params)
Definition: lidplugin.h:215
PluginLID_Errors(* Close)(void *context)
Definition: lidplugin.h:146
PluginLID_Errors(* SetVAD)(void *context, unsigned line, PluginLID_Boolean enable)
Definition: lidplugin.h:188
Definition: lidplugin.h:81
Definition: lidplugin.h:89
PluginLID_Errors(* GetVAD)(void *context, unsigned line, PluginLID_Boolean *enable)
Definition: lidplugin.h:187
Definition: lidplugin.h:90
PluginLID_Errors(* GetAverageSignalLevel)(void *context, unsigned line, PluginLID_Boolean playback, unsigned *signal)
Definition: lidplugin.h:175
unsigned m_dialToneTimeout
Time in msec to wait for a dial tone to be detected.
Definition: lidplugin.h:110
PluginLID_Errors(* IsToneDetected)(void *context, unsigned line, int *tone)
Definition: lidplugin.h:199
PluginLID_Errors(* GetDeviceName)(void *context, unsigned index, char *name, unsigned size)
Definition: lidplugin.h:144
const char * manufacturer
Definition: lidplugin.h:126
Definition: lidplugin.h:103
PluginLID_Errors(* GetAEC)(void *context, unsigned line, unsigned *level)
Definition: lidplugin.h:184
Definition: lidplugin.h:102
PluginLID_Errors(* WaitForToneDetect)(void *context, unsigned line, unsigned timeout, int *tone)
Definition: lidplugin.h:200
Definition: lidplugin.h:97
Definition: lidplugin.h:117
Definition: lidplugin.h:77
PluginLID_Errors(* GetRecordVolume)(void *context, unsigned line, unsigned *volume)
Definition: lidplugin.h:181
PluginLID_Errors(* SetWriteFormat)(void *context, unsigned line, const char *mediaFormat)
Definition: lidplugin.h:163
PluginLID_Errors(* IsTonePlaying)(void *context, unsigned line, PluginLID_Boolean *playing)
Definition: lidplugin.h:212
Definition: lidplugin.h:85
PluginLID_Errors(* HasHookFlash)(void *context, unsigned line, PluginLID_Boolean *flashed)
Definition: lidplugin.h:154
const char * description
Definition: lidplugin.h:125
Definition: lidplugin.h:101
Definition: lidplugin.h:74
PluginLID_Errors(* GetPlayVolume)(void *context, unsigned line, unsigned *volume)
Definition: lidplugin.h:182
PluginLID_Errors(* SetRemoveDTMF)(void *context, unsigned line, PluginLID_Boolean removeTones)
Definition: lidplugin.h:197
const char * revision
Definition: lidplugin.h:128
PluginLID_Errors(* IsLineConnected)(void *context, unsigned line, PluginLID_Boolean *connected)
Definition: lidplugin.h:226
const void * userData
Definition: lidplugin.h:139
PluginLID_Errors(* StopTone)(void *context, unsigned line)
Definition: lidplugin.h:213
PluginLID_Errors(* SetLineToLineDirect)(void *context, unsigned line1, unsigned line2, PluginLID_Boolean connect)
Definition: lidplugin.h:158
PluginLID_Errors(* IsLineDisconnected)(void *context, unsigned line, PluginLID_Boolean checkForWink, PluginLID_Boolean *disconnected)
Definition: lidplugin.h:157
PluginLID_Errors(* SetReadFormat)(void *context, unsigned line, const char *mediaFormat)
Definition: lidplugin.h:162
PluginLID_Errors(* SetWriteFrameSize)(void *context, unsigned line, unsigned frameSize)
Definition: lidplugin.h:169
PluginLID_Errors(* StopReading)(void *context, unsigned line)
Definition: lidplugin.h:166
PluginLID_Errors(* GetWriteFormat)(void *context, unsigned line, char *mediaFormat, unsigned size)
Definition: lidplugin.h:165
const char * model
Definition: lidplugin.h:127