32 #ifndef OPAL_LIDS_LIDPLUGIN_H 33 #define OPAL_LIDS_LIDPLUGIN_H 42 # ifdef PLUGIN_DLL_EXPORTS 43 # define PLUGIN_DLL_API __declspec(dllexport) 45 # define PLUGIN_DLL_API __declspec(dllimport) 50 #define PLUGIN_DLL_API 54 #ifdef PWLIB_PLUGIN_API_VERSION 55 #undef PWLIB_PLUGIN_API_VERSION 57 #define PWLIB_PLUGIN_API_VERSION 1 63 #define PLUGIN_LID_VERSION 1 // initial version 209 unsigned lowFrequency,
210 unsigned highFrequency,
212 unsigned numCadences,
213 const unsigned * onTimes,
214 const unsigned * offTimes);
221 PluginLID_Errors (*GetWinkDuration)(
void * context,
unsigned line,
unsigned * winkDuration);
226 PluginLID_Errors (*GetSupportedCountry)(
void * context,
unsigned index,
unsigned * countryCode);
230 PluginLID_Errors (*IsLineConnected)(
void * context,
unsigned line, PluginLID_Boolean * connected);
237 #define PLUGIN_LID_CTOR() \ 238 static void * Create(const struct PluginLID_Definition * definition) { return new Context; } \ 241 #define PLUGIN_LID_DTOR() \ 242 static void Destroy(const struct PluginLID_Definition * definition, void * context) { delete (Context *)context; } \ 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_ARG0(fn) \ 250 static PluginLID_Errors fn(void * context) { return context == NULL ? PluginLID_BadContext : ((Context *)context)->fn(); } \ 251 PluginLID_Errors fn( ) 253 #define PLUGIN_FUNCTION_ARG1(fn, type1,var1) \ 254 static PluginLID_Errors fn(void * context, type1 var1) { return context == NULL ? PluginLID_BadContext : ((Context *)context)->fn(var1); } \ 255 PluginLID_Errors fn( type1 var1) 257 #define PLUGIN_FUNCTION_ARG2(fn, type1,var1, type2,var2) \ 258 static PluginLID_Errors fn(void * context, type1 var1, type2 var2) { return context == NULL ? PluginLID_BadContext : ((Context *)context)->fn(var1, var2); } \ 259 PluginLID_Errors fn( type1 var1, type2 var2) 261 #define PLUGIN_FUNCTION_ARG3(fn, type1,var1, type2,var2, type3,var3) \ 262 static PluginLID_Errors fn(void * context, type1 var1, type2 var2, type3 var3) { return context == NULL ? PluginLID_BadContext : ((Context *)context)->fn(var1, var2, var3); } \ 263 PluginLID_Errors fn( type1 var1, type2 var2, type3 var3) 265 #define PLUGIN_FUNCTION_ARG4(fn, type1,var1, type2,var2, type3,var3, type4,var4) \ 266 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); } \ 267 PluginLID_Errors fn( type1 var1, type2 var2, type3 var3, type4 var4) 269 #define PLUGIN_FUNCTION_ARG8(fn, type1,var1, type2,var2, type3,var3, type4,var4, type5,var5, type6,var6, type7,var7, type8,var8) \ 270 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); } \ 271 PluginLID_Errors fn( type1 var1, type2 var2, type3 var3, type4 var4, type5 var5, type6 var6, type7 var7, type8 var8) 273 #endif // __cplusplus 276 #define PLUGIN_LID_API_VER_FN PWLibPlugin_GetAPIVersion 277 #define PLUGIN_LID_API_VER_FN_STR "PWLibPlugin_GetAPIVersion" 279 #define PLUGIN_LID_GET_LIDS_FN OpalPluginLID_GetDefinitions 280 #define PLUGIN_LID_GET_LIDS_FN_STR "OpalPluginLID_GetDefinitions" 283 typedef struct PluginLID_Definition * (* PluginLID_GetDefinitionsFunction)(
unsigned * ,
unsigned );
286 #define PLUGIN_LID_IMPLEMENTATION(defs) \ 288 PLUGIN_DLL_API unsigned int PLUGIN_LID_API_VER_FN() { return PWLIB_PLUGIN_API_VERSION; } \ 289 PLUGIN_DLL_API PluginLID_Definition * PLUGIN_LID_GET_LIDS_FN(unsigned * count, unsigned version) \ 290 { *count = sizeof(defs)/sizeof(defs[0]); return defs; } \ 298 #endif // OPAL_LIDS_LIDPLUGIN_H PluginLID_Errors(* IsLineDisconnected)(void *context, unsigned line, PluginLID_Boolean checkForWink, PluginLID_Boolean *disconnected)
Definition: lidplugin.h:161
const char * manufacturerURL
Definition: lidplugin.h:134
unsigned m_commaDelay
Time in msec to wait when a comma (',') is found in the dial string.
Definition: lidplugin.h:117
PluginLID_Errors(* GetPlayVolume)(void *context, unsigned line, unsigned *volume)
Definition: lidplugin.h:186
Definition: lidplugin.h:87
PluginLID_Errors(* IsLineTerminal)(void *context, unsigned line, PluginLID_Boolean *isTerminal)
Definition: lidplugin.h:153
PluginLID_Errors(* GetLineCount)(void *context, unsigned *count)
Definition: lidplugin.h:152
Definition: lidplugin.h:80
const char * license
Definition: lidplugin.h:140
PluginLID_Errors(* DialOut)(void *context, unsigned line, const char *number, struct PluginLID_DialParams *params)
Definition: lidplugin.h:219
PluginLID_Errors(* SetReadFrameSize)(void *context, unsigned line, unsigned frameSize)
Definition: lidplugin.h:172
PluginLID_Errors(* RingLine)(void *context, unsigned line, unsigned nCadence, const unsigned *pattern, unsigned frequency)
Definition: lidplugin.h:160
time_t timestamp
Definition: lidplugin.h:126
PluginLID_Errors(* SetAEC)(void *context, unsigned line, unsigned level)
Definition: lidplugin.h:189
PluginLID_Errors(* GetWriteFrameSize)(void *context, unsigned line, unsigned *frameSize)
Definition: lidplugin.h:175
Definition: lidplugin.h:99
PluginLID_Errors(* SetRemoveDTMF)(void *context, unsigned line, PluginLID_Boolean removeTones)
Definition: lidplugin.h:201
unsigned m_dialStartDelay
Time in msec to wait between the dial tone detection and dialing the dtmf.
Definition: lidplugin.h:115
PluginLID_Errors(* IsLineRinging)(void *context, unsigned line, unsigned long *cadence)
Definition: lidplugin.h:159
PluginLID_Errors(* StopTone)(void *context, unsigned line)
Definition: lidplugin.h:217
int PluginLID_Boolean
Definition: lidplugin.h:65
const char * copyright
Definition: lidplugin.h:139
Definition: lidplugin.h:102
PluginLID_Errors(* HasHookFlash)(void *context, unsigned line, PluginLID_Boolean *flashed)
Definition: lidplugin.h:158
PluginLID_Errors(* Open)(void *context, const char *device)
Definition: lidplugin.h:149
PluginLID_Errors(* GetRecordVolume)(void *context, unsigned line, unsigned *volume)
Definition: lidplugin.h:185
Definition: lidplugin.h:84
PluginLID_Errors(* SetLineToLineDirect)(void *context, unsigned line1, unsigned line2, PluginLID_Boolean connect)
Definition: lidplugin.h:162
const char * version
Definition: lidplugin.h:141
PluginLID_Errors(* SetVAD)(void *context, unsigned line, PluginLID_Boolean enable)
Definition: lidplugin.h:192
Definition: lidplugin.h:92
PluginLID_Errors(* WriteFrame)(void *context, unsigned line, const void *buffer, unsigned count, unsigned *written)
Definition: lidplugin.h:177
PluginLID_Errors(* GetAEC)(void *context, unsigned line, unsigned *level)
Definition: lidplugin.h:188
PluginLID_Errors(* ReadFrame)(void *context, unsigned line, void *buffer, unsigned *count)
Definition: lidplugin.h:176
PluginLID_Errors(* Close)(void *context)
Definition: lidplugin.h:150
const char * authorURL
Definition: lidplugin.h:138
PluginLID_Errors(* PlayDTMF)(void *context, unsigned line, const char *digits, unsigned onTime, unsigned offTime)
Definition: lidplugin.h:198
PluginLID_Errors(* SetWriteFrameSize)(void *context, unsigned line, unsigned frameSize)
Definition: lidplugin.h:173
PluginLID_Errors(* IsLineOffHook)(void *context, unsigned line, PluginLID_Boolean *offHook)
Definition: lidplugin.h:155
const char * authorEmail
Definition: lidplugin.h:137
PluginLID_Errors(* SetCallerID)(void *context, unsigned line, const char *idString)
Definition: lidplugin.h:195
const char * name
Definition: lidplugin.h:128
PluginLID_Errors(* ReadDTMF)(void *context, unsigned line, char *digit)
Definition: lidplugin.h:199
PluginLID_Errors(* GetAverageSignalLevel)(void *context, unsigned line, PluginLID_Boolean playback, unsigned *signal)
Definition: lidplugin.h:179
Definition: lidplugin.h:77
bool m_requireTones
Require dial/ring tone to be detected.
Definition: lidplugin.h:113
Definition: lidplugin.h:79
Definition: lidplugin.h:104
unsigned m_progressTimeout
Time in msec to wait for a progress tone (ring, busy or connected) to be detected.
Definition: lidplugin.h:116
Definition: lidplugin.h:86
Definition: lidplugin.h:100
PluginLID_Errors(* SetRecordVolume)(void *context, unsigned line, unsigned volume)
Definition: lidplugin.h:183
PluginLID_Errors(* GetRemoveDTMF)(void *context, unsigned line, PluginLID_Boolean *removeTones)
Definition: lidplugin.h:200
const char * author
Definition: lidplugin.h:136
PluginLID_Errors(* GetCallerID)(void *context, unsigned line, char *idString, unsigned size, PluginLID_Boolean full)
Definition: lidplugin.h:194
Definition: lidplugin.h:103
Definition: lidplugin.h:90
void(* Destroy)(const struct PluginLID_Definition *definition, void *context)
Definition: lidplugin.h:146
unsigned int apiVersion
Definition: lidplugin.h:123
PluginLID_Errors(* StopReading)(void *context, unsigned line)
Definition: lidplugin.h:170
const char * manufacturerEmail
Definition: lidplugin.h:133
Definition: lidplugin.h:76
Definition: lidplugin.h:83
PluginLID_CallProgressTones
Definition: lidplugin.h:98
Definition: lidplugin.h:111
PluginLID_Errors(* WaitForTone)(void *context, unsigned line, int tone, unsigned timeout)
Definition: lidplugin.h:205
Definition: lidplugin.h:91
PluginLID_Errors(* SendVisualMessageWaitingIndicator)(void *context, unsigned line, PluginLID_Boolean on)
Definition: lidplugin.h:196
PluginLID_Errors
Definition: lidplugin.h:75
Definition: lidplugin.h:82
PluginLID_Errors(* SetLineOffHook)(void *context, unsigned line, PluginLID_Boolean newState)
Definition: lidplugin.h:156
PluginLID_Errors(* SetWriteFormat)(void *context, unsigned line, const char *mediaFormat)
Definition: lidplugin.h:167
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:207
PluginLID_Errors(* GetReadFormat)(void *context, unsigned line, char *mediaFormat, unsigned size)
Definition: lidplugin.h:168
Definition: lidplugin.h:88
Definition: lidplugin.h:85
PluginLID_Errors(* IsAudioEnabled)(void *context, unsigned line, PluginLID_Boolean *enable)
Definition: lidplugin.h:182
Definition: lidplugin.h:93
Definition: lidplugin.h:94
PluginLID_Errors(* IsToneDetected)(void *context, unsigned line, int *tone)
Definition: lidplugin.h:203
PluginLID_Errors(* GetSupportedFormat)(void *context, unsigned index, char *mediaFormat, unsigned size)
Definition: lidplugin.h:165
PluginLID_Errors(* GetDeviceName)(void *context, unsigned index, char *name, unsigned size)
Definition: lidplugin.h:148
PluginLID_Errors(* GetVAD)(void *context, unsigned line, PluginLID_Boolean *enable)
Definition: lidplugin.h:191
unsigned m_dialToneTimeout
Time in msec to wait for a dial tone to be detected.
Definition: lidplugin.h:114
PluginLID_Errors(* IsTonePlaying)(void *context, unsigned line, PluginLID_Boolean *playing)
Definition: lidplugin.h:216
PluginLID_Errors(* GetWriteFormat)(void *context, unsigned line, char *mediaFormat, unsigned size)
Definition: lidplugin.h:169
PluginLID_Errors(* SetPlayVolume)(void *context, unsigned line, unsigned volume)
Definition: lidplugin.h:184
PluginLID_Errors(* IsLineToLineDirect)(void *context, unsigned line1, unsigned line2, PluginLID_Boolean *connected)
Definition: lidplugin.h:163
const char * manufacturer
Definition: lidplugin.h:130
PluginLID_Errors(* SetReadFormat)(void *context, unsigned line, const char *mediaFormat)
Definition: lidplugin.h:166
PluginLID_Errors(* HookFlash)(void *context, unsigned line, unsigned flashTime)
Definition: lidplugin.h:157
PluginLID_Errors(* StopWriting)(void *context, unsigned line)
Definition: lidplugin.h:171
Definition: lidplugin.h:107
PluginLID_Errors(* PlayTone)(void *context, unsigned line, unsigned tone)
Definition: lidplugin.h:215
Definition: lidplugin.h:106
PluginLID_Errors(* WaitForToneDetect)(void *context, unsigned line, unsigned timeout, int *tone)
Definition: lidplugin.h:204
Definition: lidplugin.h:101
Definition: lidplugin.h:121
Definition: lidplugin.h:81
Definition: lidplugin.h:89
PluginLID_Errors(* GetReadFrameSize)(void *context, unsigned line, unsigned *frameSize)
Definition: lidplugin.h:174
const char * description
Definition: lidplugin.h:129
Definition: lidplugin.h:105
Definition: lidplugin.h:78
const char * revision
Definition: lidplugin.h:132
const void * userData
Definition: lidplugin.h:143
PluginLID_Errors(* EnableAudio)(void *context, unsigned line, PluginLID_Boolean enable)
Definition: lidplugin.h:181
const char * model
Definition: lidplugin.h:131
PluginLID_Errors(* IsLinePresent)(void *context, unsigned line, PluginLID_Boolean forceTest, PluginLID_Boolean *present)
Definition: lidplugin.h:154