XXXXX
C/C++
XXXXX
C#/.net
XXXXX
js
java
java
开发导航 开发导航 www.endv.cn
天云

AnyChatCoreSDK.h

  1 #ifndef ANYCHATCORESDK_H
  2 #define ANYCHATCORESDK_H
  3 
  4 #include <windows.h>
  5 #include <stdlib.h>
  6 #include <stdio.h>
  7 #include "BRAnyChatCoreSDK.h"
  8 
  9 // 初始化系统
 10 BRAC_API DWORD BRAC_InitSDK(HWND hWnd, DWORD dwFuncMode);
 11 typedef DWORD (_cdecl * BRAC_InitSDK_Func)(HWND hWnd, DWORD dwFuncMode);
 12 
 13 // 获取SDK版本信息
 14 BRAC_API DWORD BRAC_GetSDKVersion(DWORD& dwMainVer, DWORD& dwSubVer, LPSTR lpCompileTime, DWORD dwBufLen);
 15 typedef DWORD(_cdecl * BRAC_GetSDKVersion_Func)(DWORD& dwMainVer, DWORD& dwSubVer, LPSTR lpCompileTime, DWORD dwBufLen);
 16 
 17 // 激活(关闭)SDK调用日志
 18 BRAC_API DWORD BRAC_ActiveCallLog(BOOL bActive);
 19 typedef DWORD(_cdecl * BRAC_ActiveCallLog_Func)(BOOL bActive);
 20 
 21 // SDK内核参数设置
 22 BRAC_API DWORD BRAC_SetSDKOption(int optname, const char FAR* optval, int optlen);
 23 typedef DWORD(_cdecl * BRAC_SetSDKOption_Func)(int optname, const char FAR* optval, int optlen);
 24 
 25 // 设置服务器验证密码(可用于阻止非法用户用SDK连接服务器,合法用户可正常连接)
 26 BRAC_API DWORD BRAC_SetServerAuthPass(LPCTSTR lpPassword);
 27 typedef DWORD(_cdecl * BRAC_SetServerAuthPass_Func)(LPCTSTR lpPassword);
 28 
 29 
 30 // 设置视频数据回调函数
 31 BRAC_API DWORD BRAC_SetVideoDataCallBack(BRAC_PixelFormat pixFmt, BRAC_VideoData_CallBack lpFunction, LPVOID lpUserValue);
 32 typedef DWORD(_cdecl * BRAC_SetVideoDataCallBack_Func)(BRAC_PixelFormat pixFmt, BRAC_VideoData_CallBack lpFunction, LPVOID lpUserValue);
 33 // 设置音频数据回调函数
 34 BRAC_API DWORD BRAC_SetAudioDataCallBack(BRAC_AudioData_CallBack lpFunction, LPVOID lpUserValue);
 35 typedef DWORD(_cdecl * BRAC_SetAudioDataCallBack_Func)(BRAC_AudioData_CallBack lpFunction, LPVOID lpUserValue);
 36 // 设置音量变化回调函数
 37 BRAC_API DWORD BRAC_SetVolumeChangeCallBack(BRAC_VolumeChange_CallBack lpFunction, LPVOID lpUserValue);
 38 typedef DWORD(_cdecl * BRAC_SetVolumeChangeCallBack_Func)(BRAC_VolumeChange_CallBack lpFunction, LPVOID lpUserValue);
 39 // 设置透明通道数据扩展回调函数
 40 BRAC_API DWORD BRAC_SetTransBufferExCallBack(BRAC_TransBufferEx_CallBack lpFunction, LPVOID lpUserValue);
 41 typedef DWORD(_cdecl * BRAC_SetTransBufferExCallBack_Func)(BRAC_TransBufferEx_CallBack lpFunction, LPVOID lpUserValue);
 42 // 设置透明通道数据回调函数
 43 BRAC_API DWORD BRAC_SetTransBufferCallBack(BRAC_TransBuffer_CallBack lpFunction, LPVOID lpUserValue);
 44 typedef DWORD(_cdecl * BRAC_SetTransBufferCallBack_Func)(BRAC_TransBuffer_CallBack lpFunction, LPVOID lpUserValue);
 45 // 设置文件传输回调函数
 46 BRAC_API DWORD BRAC_SetTransFileCallBack(BRAC_TransFile_CallBack lpFunction, LPVOID lpUserValue);
 47 typedef DWORD(_cdecl * BRAC_SetTransFileCallBack_Func)(BRAC_TransFile_CallBack lpFunction, LPVOID lpUserValue);
 48 // 设置录像快照任务完成通知回调函数
 49 BRAC_API DWORD BRAC_SetRecordSnapShotCallBack(BRAC_RecordSnapShot_CallBack lpFunction, LPVOID lpUserValue);
 50 typedef DWORD(_cdecl * BRAC_SetRecordSnapShotCallBack_Func)(BRAC_RecordSnapShot_CallBack lpFunction, LPVOID lpUserValue);
 51 // 设置SDK Filter通信数据回调函数定义
 52 BRAC_API DWORD BRAC_SetSDKFilterDataCallBack(BRAC_SDKFilterData_CallBack lpFunction, LPVOID lpUserValue);
 53 typedef DWORD(_cdecl * BRAC_SetSDKFilterDataCallBack_Func)(BRAC_SDKFilterData_CallBack lpFunction, LPVOID lpUserValue);
 54 // 设置异步消息通知回调函数
 55 BRAC_API DWORD BRAC_SetNotifyMessageCallBack(BRAC_NotifyMessage_CallBack lpFunction, LPVOID lpUserValue);
 56 typedef DWORD(_cdecl * BRAC_SetNotifyMessageCallBack_Func)(BRAC_NotifyMessage_CallBack lpFunction, LPVOID lpUserValue);
 57 // 设置文字消息回调函数
 58 BRAC_API DWORD BRAC_SetTextMessageCallBack(BRAC_TextMessage_CallBack lpFunction, LPVOID lpUserValue);
 59 typedef DWORD(_cdecl * BRAC_SetTextMessageCallBack_Func)(BRAC_TextMessage_CallBack lpFunction, LPVOID lpUserValue);
 60 
 61 
 62 
 63 
 64 // 连接服务器
 65 BRAC_API DWORD BRAC_Connect(LPCTSTR lpServerAddr, DWORD dwPort);
 66 typedef DWORD(_cdecl * BRAC_Connect_Func)(LPCTSTR lpServerAddr, DWORD dwPort);
 67 // 登录系统
 68 BRAC_API DWORD BRAC_Login(LPCTSTR lpUserName, LPCTSTR lpPassword, DWORD dwPassEncType);
 69 typedef DWORD(_cdecl * BRAC_Login_Func)(LPCTSTR lpUserName, LPCTSTR lpPassword, DWORD dwPassEncType);
 70 // 进入房间
 71 BRAC_API DWORD BRAC_EnterRoom(DWORD dwRoomid, LPCTSTR lpRoomPass, DWORD dwPassEncType);
 72 typedef DWORD(_cdecl * BRAC_EnterRoom_Func)(DWORD dwRoomid, LPCTSTR lpRoomPass, DWORD dwPassEncType);
 73 // 进入房间
 74 BRAC_API DWORD BRAC_EnterRoomEx(LPCTSTR lpRoomName, LPCTSTR lpRoomPass);
 75 typedef DWORD(_cdecl * BRAC_EnterRoomEx_Func)(LPCTSTR lpRoomName, LPCTSTR lpRoomPass);
 76 // 离开房间
 77 BRAC_API DWORD BRAC_LeaveRoom(DWORD dwRoomid);
 78 typedef DWORD(_cdecl * BRAC_LeaveRoom_Func)(DWORD dwRoomid);
 79 // 注销系统
 80 BRAC_API DWORD BRAC_Logout(VOID);
 81 typedef DWORD(_cdecl * BRAC_Logout_Func)(VOID);
 82 
 83 
 84 // 操作用户视频
 85 BRAC_API DWORD BRAC_UserCameraControl(DWORD dwUserid, BOOL bOpen);
 86 typedef DWORD(_cdecl * BRAC_UserCameraControl_Func)(DWORD dwUserid, BOOL bOpen);
 87 // 操作用户语音
 88 BRAC_API DWORD BRAC_UserSpeakControl(DWORD dwUserid, BOOL bOpen);
 89 typedef DWORD(_cdecl * BRAC_UserSpeakControl_Func)(DWORD dwUserid, BOOL bOpen);
 90 // 设置视频显示位置
 91 BRAC_API DWORD BRAC_SetVideoPos(DWORD dwUserid, HWND hWnd, DWORD dwLeft, DWORD dwTop, DWORD dwRight, DWORD dwBottom);
 92 typedef DWORD(_cdecl * BRAC_SetVideoPos_Func)(DWORD dwUserid, HWND hWnd, DWORD dwLeft, DWORD dwTop, DWORD dwRight, DWORD dwBottom);
 93 // 获取指定音频设备的当前音量
 94 BRAC_API DWORD BRAC_AudioGetVolume(BRAC_AudioDevice device, DWORD& dwVolume);
 95 typedef DWORD(_cdecl * BRAC_AudioGetVolume_Func)(BRAC_AudioDevice device, DWORD& dwVolume);
 96 // 设置指定音频设备的音量
 97 BRAC_API DWORD BRAC_AudioSetVolume(BRAC_AudioDevice device, DWORD dwVolume);
 98 typedef DWORD(_cdecl * BRAC_AudioSetVolume_Func)(BRAC_AudioDevice device, DWORD dwVolume);
 99 
100 // 获取当前房间在线用户列表
101 BRAC_API DWORD BRAC_GetOnlineUser(LPDWORD lpUserIDArray, DWORD& dwUserNum);
102 typedef DWORD(_cdecl * BRAC_GetOnlineUser_Func)(LPDWORD lpUserIDArray, DWORD& dwUserNum);
103 // 查询用户摄像头的状态
104 BRAC_API DWORD BRAC_GetCameraState(DWORD dwUserid, DWORD& dwState);
105 typedef DWORD(_cdecl * BRAC_GetCameraState_Func)(DWORD dwUserid, DWORD& dwState);
106 // 查询用户名称
107 BRAC_API DWORD BRAC_GetUserName(DWORD dwUserid, CHAR* lpUserName, DWORD dwLen);
108 typedef DWORD(_cdecl * BRAC_GetUserName_Func)(DWORD dwUserid, CHAR* lpUserName, DWORD dwLen);
109 // 查询房间名称
110 BRAC_API DWORD BRAC_GetRoomName(DWORD dwRoomId, CHAR* lpRoomName, DWORD dwLen);
111 typedef DWORD(_cdecl * BRAC_GetRoomName_Func)(DWORD dwRoomId, CHAR* lpRoomName, DWORD dwLen);
112 // 显示本地视频画面调节对话框
113 BRAC_API DWORD BRAC_ShowLVProperty(HWND hParent, LPCTSTR szCaption, DWORD dwX ,DWORD dwY);
114 typedef DWORD(_cdecl * BRAC_ShowLVProperty_Func)(HWND hParent, LPCTSTR szCaption, DWORD dwX ,DWORD dwY);
115 
116 // 枚举本地视频采集设备
117 BRAC_API DWORD BRAC_EnumVideoCapture(CHAR** lpDeviceName, DWORD& dwDeviceNum);
118 typedef DWORD(_cdecl * BRAC_EnumVideoCapture_Func)(CHAR** lpDeviceName, DWORD& dwDeviceNum);
119 // 枚举本地音频采集设备
120 BRAC_API DWORD BRAC_EnumAudioCapture(CHAR** lpDeviceName, DWORD& dwDeviceNum);
121 typedef DWORD(_cdecl * BRAC_EnumAudioCapture_Func)(CHAR** lpDeviceName, DWORD& dwDeviceNum);
122 // 选择指定的视频采集设备
123 BRAC_API DWORD BRAC_SelectVideoCapture(LPCTSTR szCaptureName);
124 typedef DWORD(_cdecl *BRAC_SelectVideoCapture_Func)(LPCTSTR szCaptureName);
125 // 选择指定的音频采集设备
126 BRAC_API DWORD BRAC_SelectAudioCapture(LPCTSTR szCaptureName);
127 typedef DWORD(_cdecl * BRAC_SelectAudioCapture_Func)(LPCTSTR szCaptureName);
128 // 获取当前使用的视频采集设备
129 BRAC_API DWORD BRAC_GetCurVideoCapture(CHAR* lpDeviceName, DWORD dwLen);
130 typedef DWORD(_cdecl * BRAC_GetCurVideoCapture_Func)(CHAR* lpDeviceName, DWORD dwLen);
131 // 获取当前使用的音频采集设备
132 BRAC_API DWORD BRAC_GetCurAudioCapture(CHAR* lpDeviceName, DWORD dwLen);
133 typedef DWORD(_cdecl * BRAC_GetCurAudioCapture_Func)(CHAR* lpDeviceName, DWORD dwLen);
134 
135 // 用户音、视频录制
136 BRAC_API DWORD BRAC_StreamRecordCtrl(DWORD dwUserId, BOOL bStartRecord, DWORD dwFlags, DWORD dwParam);
137 typedef DWORD(_cdecl* BRAC_StreamRecordCtrl_Func)(DWORD dwUserId, BOOL bStartRecord, DWORD dwFlags, DWORD dwParam);
138 // 对用户的视频进行抓拍(快照)
139 BRAC_API DWORD BRAC_SnapShot(DWORD dwUserId, DWORD dwFlags, DWORD dwParam);
140 typedef DWORD(_cdecl* BRAC_SnapShot_Func)(DWORD dwUserId, DWORD dwFlags, DWORD dwParam);
141 
142 // 透明通道传送缓冲区
143 BRAC_API DWORD BRAC_TransBuffer(DWORD dwUserid, LPBYTE lpBuf, DWORD dwLen);
144 typedef DWORD(_cdecl * BRAC_TransBuffer_Func)(DWORD dwUserid, LPBYTE lpBuf, DWORD dwLen);
145 // 透明通道传送缓冲区扩展
146 BRAC_API DWORD BRAC_TransBufferEx(DWORD dwUserid, LPBYTE lpBuf, DWORD dwLen, DWORD wParam, DWORD lParam, DWORD dwFlags, DWORD& dwTaskId);
147 typedef DWORD(_cdecl * BRAC_TransBufferEx_Func)(DWORD dwUserid, LPBYTE lpBuf, DWORD dwLen, DWORD wParam, DWORD lParam, DWORD dwFlags, DWORD& dwTaskId);
148 // 传送文件
149 BRAC_API DWORD BRAC_TransFile(DWORD dwUserid, LPCTSTR lpLocalPathName, DWORD wParam, DWORD lParam, DWORD dwFlags, DWORD& dwTaskId);
150 typedef DWORD(_cdecl * BRAC_TransFile_Func)(DWORD dwUserid, LPCTSTR lpLocalPathName, DWORD wParam, DWORD lParam, DWORD dwFlags, DWORD& dwTaskId);
151 // 取消传输任务
152 BRAC_API DWORD BRAC_CancelTransTask(DWORD dwUserid, DWORD dwTaskId);
153 typedef DWORD(_cdecl * BRAC_CancelTransTask_Func)(DWORD dwUserid, DWORD dwTaskId);
154 // 传送文本消息
155 BRAC_API DWORD BRAC_SendTextMessage(DWORD dwUserid, BOOL bSecret, LPCTSTR lpMsgBuf, DWORD dwLen);
156 typedef DWORD(_cdecl * BRAC_SendTextMessage_Func)(DWORD dwUserid, BOOL bSecret, LPCTSTR lpMsgBuf, DWORD dwLen);
157 // 查询传输任务相关信息
158 BRAC_API DWORD BRAC_QueryTransTaskInfo(DWORD dwUserid, DWORD dwTaskId, int infoname, char FAR* infoval, int infolen);
159 typedef DWORD(_cdecl * BRAC_QueryTransTaskInfo_Func)(DWORD dwUserid, DWORD dwTaskId, int infoname, char FAR* infoval, int infolen);
160 // 发送SDK Filter 通信数据
161 BRAC_API DWORD BRAC_SendSDKFilterData(LPBYTE lpBuf, DWORD dwLen);
162 typedef DWORD(_cdecl * BRAC_SendSDKFilterData_Func)(LPBYTE lpBuf, DWORD dwLen);
163 
164 // 查询指定用户相关状态
165 BRAC_API DWORD BRAC_QueryUserState(DWORD dwUserId, int infoname, char FAR* infoval, int infolen);
166 typedef DWORD(_cdecl * BRAC_QueryUserState_Func)(DWORD dwUserId, int infoname, char FAR* infoval, int infolen);
167 
168 // 释放所有资源
169 BRAC_API DWORD BRAC_Release(VOID);
170 typedef DWORD(_cdecl * BRAC_Release_Func)(VOID);
171 
172 
173 #ifdef __cplusplus
174 extern "C"
175 {
176 #endif /* __cplusplus */
177 
178         static HINSTANCE  g_BRACModule=NULL;
179         static DWORD    g_dwBRACModule_Count = 0;
180 
181         static BRAC_InitSDK_Func                    g_BRAC_InitSDK_Func = NULL;
182         static BRAC_GetSDKVersion_Func                g_BRAC_GetSDKVersion_Func = NULL;
183         static BRAC_ActiveCallLog_Func                g_BRAC_ActiveCallLog_Func = NULL;
184         static BRAC_SetSDKOption_Func                g_BRAC_SetSDKOption_Func = NULL;
185         static BRAC_SetVideoDataCallBack_Func        g_BRAC_SetVideoDataCallBack_Func = NULL;
186         static BRAC_SetAudioDataCallBack_Func        g_BRAC_SetAudioDataCallBack_Func = NULL;
187         static BRAC_SetVolumeChangeCallBack_Func    g_BRAC_SetVolumeChangeCallBack_Func = NULL;
188         static BRAC_SetTransBufferExCallBack_Func    g_BRAC_SetTransBufferExCallBack_Func = NULL;
189         static BRAC_SetTransBufferCallBack_Func        g_BRAC_SetTransBufferCallBack_Func = NULL;
190         static BRAC_SetTransFileCallBack_Func        g_BRAC_SetTransFileCallBack_Func = NULL;
191         static BRAC_SetRecordSnapShotCallBack_Func  g_BRAC_SetRecordSnapShotCallBack_Func = NULL;
192         static BRAC_SetSDKFilterDataCallBack_Func   g_BRAC_SetSDKFilterDataCallBack_Func = NULL;
193         static BRAC_AudioGetVolume_Func                g_BRAC_AudioGetVolume_Func = NULL;
194         static BRAC_SetServerAuthPass_Func            g_BRAC_SetServerAuthPass_Func = NULL;
195         static BRAC_Connect_Func                    g_BRAC_Connect_Func = NULL;
196         static BRAC_Login_Func                        g_BRAC_Login_Func = NULL;
197         static BRAC_SetNotifyMessageCallBack_Func    g_BRAC_SetNotifyMessageCallBack_Func = NULL;
198         static BRAC_SetTextMessageCallBack_Func        g_BRAC_SetTextMessageCallBack_Func = NULL;
199         static BRAC_GetUserName_Func                g_BRAC_GetUserName_Func = NULL;
200         static BRAC_GetRoomName_Func                g_BRAC_GetRoomName_Func = NULL;
201         static BRAC_EnterRoom_Func                    g_BRAC_EnterRoom_Func = NULL;
202         static BRAC_SetVideoPos_Func                g_BRAC_SetVideoPos_Func = NULL;
203         static BRAC_UserCameraControl_Func            g_BRAC_UserCameraControl_Func = NULL;
204         static BRAC_UserSpeakControl_Func            g_BRAC_UserSpeakControl_Func = NULL;
205         static BRAC_AudioSetVolume_Func                g_BRAC_AudioSetVolume_Func = NULL;
206         static BRAC_Release_Func                    g_BRAC_Release_Func = NULL;
207         static BRAC_EnterRoomEx_Func                g_BRAC_EnterRoomEx_Func = NULL;
208         static BRAC_LeaveRoom_Func                    g_BRAC_LeaveRoom_Func = NULL;
209         static BRAC_GetOnlineUser_Func                g_BRAC_GetOnlineUser_Func = NULL;
210         static BRAC_GetCameraState_Func                g_BRAC_GetCameraState_Func = NULL;
211         static BRAC_Logout_Func                        g_BRAC_Logout_Func = NULL;
212         static BRAC_TransFile_Func                    g_BRAC_TransFile_Func = NULL;
213         static BRAC_QueryTransTaskInfo_Func            g_BRAC_QueryTransTaskInfo_Func = NULL;
214         static BRAC_QueryUserState_Func                g_BRAC_QueryUserState_Func = NULL;
215         static BRAC_TransBufferEx_Func                g_BRAC_TransBufferEx_Func = NULL;
216         static BRAC_TransBuffer_Func                g_BRAC_TransBuffer_Func = NULL;
217         static BRAC_CancelTransTask_Func            g_BRAC_CancelTransTask_Func = NULL;
218         static BRAC_SendTextMessage_Func            g_BRAC_SendTextMessage_Func = NULL;
219         static BRAC_ShowLVProperty_Func                g_BRAC_ShowLVProperty_Func = NULL;
220         static BRAC_SelectVideoCapture_Func            g_BRAC_SelectVideoCapture_Func = NULL;
221         static BRAC_SelectAudioCapture_Func            g_BRAC_SelectAudioCapture_Func = NULL;
222         static BRAC_EnumVideoCapture_Func            g_BRAC_EnumVideoCapture_Func = NULL;
223         static BRAC_GetCurVideoCapture_Func            g_BRAC_GetCurVideoCapture_Func = NULL;
224         static BRAC_EnumAudioCapture_Func            g_BRAC_EnumAudioCapture_Func = NULL;
225         static BRAC_GetCurAudioCapture_Func            g_BRAC_GetCurAudioCapture_Func = NULL;
226         static BRAC_SendSDKFilterData_Func            g_BRAC_SendSDKFilterData_Func = NULL;
227         static BRAC_StreamRecordCtrl_Func            g_BRAC_StreamRecordCtrl_Func = NULL;
228         static BRAC_SnapShot_Func                    g_BRAC_SnapShot_Func = NULL;
229 
230 
231 
232 #ifdef WIN32
233     #define BRAC_DLL_ASSIGN(_Name) \
234     g_BRAC_##_Name##_Func = (BRAC_##_Name##_Func)GetProcAddress(g_BRACModule,"BRAC_"#_Name); \
235         if (g_BRAC_##_Name##_Func == NULL) Errors++;
236 #else
237     #define BRAC_DLL_ASSIGN(_Name) \
238     g_BRAC_##_Name##_Func = (BRAC_##_Name##_Func)dlsym(g_BRACModule,"BRAC_"#_Name); \
239         if (g_BRAC_##_Name##_Func == NULL) Errors++;
240 #endif
241 
242         static BOOL BRAC_DLL_Load(LPCTSTR szPathName)
243         {
244                 if (g_dwBRACModule_Count > 0)
245                 {
246                         g_dwBRACModule_Count++;
247                         return TRUE;
248                 }
249 
250                 /* Load library */
251 #ifdef WIN32
252                 g_BRACModule = LoadLibraryEx(szPathName,NULL,LOAD_WITH_ALTERED_SEARCH_PATH);
253 #else
254         g_BRACModule = dlopen(szPathName,RTLD_NOW);
255 #endif
256                 if (!g_BRACModule)
257                 {
258                         CHAR szErrorMsg[1024] = {0};
259 #ifdef WIN32
260                         _snprintf(szErrorMsg,sizeof(szErrorMsg),"LoadLibrary %s Error:%d",szPathName,GetLastError());
261 #else
262                         _snprintf(szErrorMsg,sizeof(szErrorMsg),"LoadLibrary %s Error:%s",szPathName,dlerror());
263 #endif
264 //...            TRACE(szErrorMsg);
265                         return FALSE;
266                 }
267 
268                 DWORD Errors=0;
269                 BRAC_DLL_ASSIGN(InitSDK);
270                 BRAC_DLL_ASSIGN(GetSDKVersion);
271                 BRAC_DLL_ASSIGN(ActiveCallLog);
272                 BRAC_DLL_ASSIGN(SetSDKOption);
273                 BRAC_DLL_ASSIGN(SetVideoDataCallBack);
274                 BRAC_DLL_ASSIGN(SetAudioDataCallBack);
275                 BRAC_DLL_ASSIGN(SetVolumeChangeCallBack);
276                 BRAC_DLL_ASSIGN(SetTransBufferExCallBack);
277                 BRAC_DLL_ASSIGN(SetTransBufferCallBack);
278                 BRAC_DLL_ASSIGN(SetTransFileCallBack);
279                 BRAC_DLL_ASSIGN(SetRecordSnapShotCallBack);
280                 BRAC_DLL_ASSIGN(SetSDKFilterDataCallBack);
281                 BRAC_DLL_ASSIGN(AudioGetVolume);
282                 BRAC_DLL_ASSIGN(SetServerAuthPass);
283                 BRAC_DLL_ASSIGN(Connect);
284                 BRAC_DLL_ASSIGN(Login);
285                 BRAC_DLL_ASSIGN(SetNotifyMessageCallBack);
286                 BRAC_DLL_ASSIGN(SetTextMessageCallBack);
287                 BRAC_DLL_ASSIGN(GetUserName);
288                 BRAC_DLL_ASSIGN(GetRoomName);
289                 BRAC_DLL_ASSIGN(EnterRoom);
290                 BRAC_DLL_ASSIGN(SetVideoPos);
291                 BRAC_DLL_ASSIGN(UserCameraControl);
292                 BRAC_DLL_ASSIGN(UserSpeakControl);
293                 BRAC_DLL_ASSIGN(AudioSetVolume);
294                 BRAC_DLL_ASSIGN(Release);
295                 BRAC_DLL_ASSIGN(EnterRoomEx);
296                 BRAC_DLL_ASSIGN(LeaveRoom);
297                 BRAC_DLL_ASSIGN(GetOnlineUser);
298                 BRAC_DLL_ASSIGN(GetCameraState);
299                 BRAC_DLL_ASSIGN(Logout);
300                 BRAC_DLL_ASSIGN(TransFile);
301                 BRAC_DLL_ASSIGN(QueryTransTaskInfo);
302                 BRAC_DLL_ASSIGN(QueryUserState);
303                 BRAC_DLL_ASSIGN(TransBufferEx);
304                 BRAC_DLL_ASSIGN(TransBuffer);
305                 BRAC_DLL_ASSIGN(CancelTransTask);
306                 BRAC_DLL_ASSIGN(SendTextMessage);
307                 BRAC_DLL_ASSIGN(ShowLVProperty);
308                 BRAC_DLL_ASSIGN(SelectVideoCapture);
309                 BRAC_DLL_ASSIGN(SelectAudioCapture);
310                 BRAC_DLL_ASSIGN(EnumVideoCapture);
311                 BRAC_DLL_ASSIGN(GetCurVideoCapture);
312                 BRAC_DLL_ASSIGN(EnumAudioCapture);
313                 BRAC_DLL_ASSIGN(GetCurAudioCapture);
314                 BRAC_DLL_ASSIGN(SendSDKFilterData);
315                 BRAC_DLL_ASSIGN(StreamRecordCtrl);
316                 BRAC_DLL_ASSIGN(SnapShot);
317 
318                 if(Errors>0)
319                     return FALSE;
320 
321                 g_dwBRACModule_Count++;
322                 return TRUE;
323         }
324 
325         static BOOL BRAC_DLL_IsLoaded()
326         {
327                 return g_BRACModule ? TRUE : FALSE;
328         }
329 
330         static void BRAC_DLL_UnLoad()
331         {
332                 g_dwBRACModule_Count--;
333                 if (g_dwBRACModule_Count > 0)
334                         return;
335 #ifdef WIN32
336                 FreeLibrary(g_BRACModule);
337 #else
338                 dlclose(g_BRACModule);
339 #endif
340                 g_BRACModule=NULL;
341         }
342 
343 #ifdef __cplusplus
344 }
345 #endif /*__cplusplus*/
346 
347 
348 #ifdef __cplusplus
349 
350 
351 #define BRAC_TEST_VOID \
352         if (!IsReady()) return
353 #define BRAC_TEST_INT \
354         if (!IsReady()) return -1
355 #define BRAC_TEST_BOOL \
356         if (!IsReady()) return FALSE
357 
358 
359 class CAnyChatCoreSDK
360 {
361 public:
362         CAnyChatCoreSDK()
363         {
364             m_bSuccessLoadDll = FALSE;
365         }
366         CAnyChatCoreSDK(LPCTSTR szPathName)
367         {
368             m_bSuccessLoadDll = BRAC_DLL_Load(szPathName);
369         }
370         ~CAnyChatCoreSDK()
371         {
372             BRAC_TEST_VOID;
373             BRAC_DLL_UnLoad();
374             m_bSuccessLoadDll = FALSE;
375         }
376         BOOL LoadFilterDll(LPCTSTR szPathName)
377         {
378             return (m_bSuccessLoadDll = BRAC_DLL_Load(szPathName));
379         }
380         BOOL IsReady()
381         {
382             return m_bSuccessLoadDll;
383         }
384 
385         // 初始化系统
386         DWORD InitSDK(HWND hWnd, DWORD dwFuncMode)
387         {
388             BRAC_TEST_INT;
389             return g_BRAC_InitSDK_Func(hWnd, dwFuncMode);
390         }
391         // 获取版本信息
392         DWORD GetSDKVersion(DWORD& dwMainVer, DWORD& dwSubVer, LPSTR lpCompileTime, DWORD dwBufLen)
393         {
394             BRAC_TEST_INT;
395             return g_BRAC_GetSDKVersion_Func(dwMainVer, dwSubVer, lpCompileTime, dwBufLen);
396         }
397         // 激活(关闭)SDK调用日志
398         DWORD ActiveCallLog(BOOL bActive)
399         {
400             BRAC_TEST_INT;
401             return g_BRAC_ActiveCallLog_Func(bActive);
402         }
403         // SDK内核参数设置
404         DWORD SetSDKOption(int optname, const char FAR* optval, int optlen)
405         {
406             BRAC_TEST_INT;
407             return g_BRAC_SetSDKOption_Func(optname, optval, optlen);
408         }
409         // 设置服务器验证密码(可用于阻止非法用户用SDK连接服务器,合法用户可正常连接)
410         DWORD SetServerAuthPass(LPCTSTR lpPassword)
411         {
412             BRAC_TEST_INT;
413             return g_BRAC_SetServerAuthPass_Func(lpPassword);
414         }
415 
416         // 设置视频数据回调函数
417         DWORD SetVideoDataCallBack(BRAC_PixelFormat pixFmt, BRAC_VideoData_CallBack lpFunction, LPVOID lpUserValue)
418         {
419             BRAC_TEST_INT;
420             return g_BRAC_SetVideoDataCallBack_Func(pixFmt, lpFunction, lpUserValue);
421         }
422         // 设置音频数据回调函数
423         DWORD SetAudioDataCallBack(BRAC_AudioData_CallBack lpFunction, LPVOID lpUserValue)
424         {
425             BRAC_TEST_INT;
426             return g_BRAC_SetAudioDataCallBack_Func(lpFunction, lpUserValue);
427         }
428         // 设置音量变化回调函数
429         DWORD SetVolumeChangeCallBack(BRAC_VolumeChange_CallBack lpFunction, LPVOID lpUserValue)
430         {
431             BRAC_TEST_INT;
432             return g_BRAC_SetVolumeChangeCallBack_Func(lpFunction, lpUserValue);
433         }
434         // 设置透明通道数据扩展回调函数
435        DWORD SetTransBufferExCallBack(BRAC_TransBufferEx_CallBack lpFunction, LPVOID lpUserValue)
436        {
437            BRAC_TEST_INT;
438            return g_BRAC_SetTransBufferExCallBack_Func(lpFunction, lpUserValue);
439        }
440        //设置透明通道数据回调函数
441        DWORD SetTransBufferCallBack(BRAC_TransBuffer_CallBack lpFunction, LPVOID lpUserValue)
442        {
443            BRAC_TEST_INT;
444            return g_BRAC_SetTransBufferCallBack_Func(lpFunction, lpUserValue);
445        }
446        // 设置文件传输回调函数
447        DWORD SetTransFileCallBack(BRAC_TransFile_CallBack lpFunction, LPVOID lpUserValue)
448        {
449            BRAC_TEST_INT;
450            return g_BRAC_SetTransFileCallBack_Func(lpFunction, lpUserValue);
451        }
452        // 设置录像快照任务完成通知回调函数
453        DWORD SetRecordSnapShotCallBack(BRAC_RecordSnapShot_CallBack lpFunction, LPVOID lpUserValue)
454        {
455            BRAC_TEST_INT;
456            return g_BRAC_SetRecordSnapShotCallBack_Func(lpFunction, lpUserValue);
457        }
458        // 设置SDK Filter通信数据回调函数定义
459        DWORD SetSDKFilterDataCallBack(BRAC_SDKFilterData_CallBack lpFunction, LPVOID lpUserValue)
460        {
461            BRAC_TEST_INT;
462            return g_BRAC_SetSDKFilterDataCallBack_Func(lpFunction, lpUserValue);
463        }
464        // 设置异步消息通知回调函数
465        DWORD SetNotifyMessageCallBack(BRAC_NotifyMessage_CallBack lpFunction, LPVOID lpUserValue)
466        {
467            BRAC_TEST_INT;
468            return g_BRAC_SetNotifyMessageCallBack_Func(lpFunction, lpUserValue);
469        }
470        // 设置文字消息回调函数
471        DWORD SetTextMessageCallBack(BRAC_TextMessage_CallBack lpFunction, LPVOID lpUserValue)
472        {
473            BRAC_TEST_INT;
474            return g_BRAC_SetTextMessageCallBack_Func(lpFunction, lpUserValue);
475        }
476 
477 
478        // 连接服务器
479        DWORD Connect(LPCTSTR lpServerAddr, DWORD dwPort)
480        {
481            BRAC_TEST_INT;
482            return g_BRAC_Connect_Func(lpServerAddr, dwPort);
483        }
484        // 登录系统
485        DWORD Login(LPCTSTR lpUserName, LPCTSTR lpPassword, DWORD dwPassEncType)
486        {
487            BRAC_TEST_INT;
488            return g_BRAC_Login_Func(lpUserName, lpPassword, dwPassEncType);
489        }
490        // 进入房间
491        DWORD EnterRoom(DWORD dwRoomid, LPCTSTR lpRoomPass, DWORD dwPassEncType)
492        {
493            BRAC_TEST_INT;
494            return g_BRAC_EnterRoom_Func(dwRoomid, lpRoomPass, dwPassEncType);
495        }
496        // 进入房间
497        DWORD EnterRoomEx(LPCTSTR lpRoomName, LPCTSTR lpRoomPass)
498        {
499            BRAC_TEST_INT;
500            return g_BRAC_EnterRoomEx_Func(lpRoomName, lpRoomPass);
501        }
502        // 离开房间
503        DWORD LeaveRoom(DWORD dwRoomid)
504        {
505            BRAC_TEST_INT;
506            return g_BRAC_LeaveRoom_Func(dwRoomid);
507        }
508        // 注销系统
509        DWORD Logout(VOID)
510        {
511            BRAC_TEST_INT;
512            return g_BRAC_Logout_Func();
513        }
514 
515        // 操作用户视频
516        DWORD UserCameraControl(DWORD dwUserid, BOOL bOpen)
517        {
518            BRAC_TEST_INT;
519            return g_BRAC_UserCameraControl_Func(dwUserid, bOpen);
520        }
521        // 操作用户语音
522        DWORD UserSpeakControl(DWORD dwUserid, BOOL bOpen)
523        {
524            BRAC_TEST_INT;
525            return g_BRAC_UserSpeakControl_Func(dwUserid, bOpen);
526        }
527        // 设置视频显示位置
528        DWORD SetVideoPos(DWORD dwUserid, HWND hWnd, DWORD dwLeft, DWORD dwTop, DWORD dwRight, DWORD dwBottom)
529        {
530            BRAC_TEST_INT;
531            return g_BRAC_SetVideoPos_Func(dwUserid, hWnd, dwLeft, dwTop, dwRight,dwBottom);
532        }
533        // 获取指定音频设备的当前音量
534        DWORD AudioGetVolume(BRAC_AudioDevice device, DWORD& dwVolume)
535        {
536            BRAC_TEST_INT;
537            return g_BRAC_AudioGetVolume_Func(device, dwVolume);
538        }
539        // 设置指定音频设备的音量
540        DWORD AudioSetVolume(BRAC_AudioDevice device, DWORD dwVolume)
541        {
542            BRAC_TEST_INT;
543            return g_BRAC_AudioSetVolume_Func(device,dwVolume);
544        }
545 
546        // 枚举本地视频采集设备
547        DWORD EnumVideoCapture(CHAR** lpDeviceName, DWORD& dwDeviceNum)
548        {
549            BRAC_TEST_INT;
550            return g_BRAC_EnumVideoCapture_Func(lpDeviceName, dwDeviceNum);
551        }
552        // 枚举本地音频采集设备
553        DWORD EnumAudioCapture(CHAR** lpDeviceName, DWORD& dwDeviceNum)
554        {
555            BRAC_TEST_INT;
556            return g_BRAC_EnumAudioCapture_Func(lpDeviceName, dwDeviceNum);
557        }
558        // 选择指定的视频采集设备
559        DWORD SelectVideoCapture(LPCTSTR szCaptureName)
560        {
561            BRAC_TEST_INT;
562            return g_BRAC_SelectVideoCapture_Func(szCaptureName);
563        }
564        // 选择指定的音频采集设备
565        DWORD SelectAudioCapture(LPCTSTR szCaptureName)
566        {
567            BRAC_TEST_INT;
568            return g_BRAC_SelectAudioCapture_Func(szCaptureName);
569        }
570        // 获取当前使用的视频采集设备
571        DWORD GetCurVideoCapture(CHAR* lpDeviceName, DWORD dwLen)
572        {
573            BRAC_TEST_INT;
574            return g_BRAC_GetCurVideoCapture_Func(lpDeviceName, dwLen);
575        }
576        // 获取当前使用的音频采集设备
577        DWORD GetCurAudioCapture(CHAR* lpDeviceName, DWORD dwLen)
578        {
579            BRAC_TEST_INT;
580            return g_BRAC_GetCurAudioCapture_Func(lpDeviceName, dwLen);
581        }
582 
583        // 获取当前房间在线用户列表
584        DWORD GetOnlineUser(LPDWORD lpUserIDArray, DWORD& dwUserNum)
585        {
586            BRAC_TEST_INT;
587            return g_BRAC_GetOnlineUser_Func(lpUserIDArray, dwUserNum);
588        }
589        // 查询用户摄像头的状态
590        DWORD GetCameraState(DWORD dwUserid, DWORD& dwState)
591        {
592            BRAC_TEST_INT;
593            return g_BRAC_GetCameraState_Func(dwUserid, dwState);
594        }
595        // 查询用户名称
596        DWORD GetUserName(DWORD dwUserid, CHAR* lpUserName, DWORD dwLen)
597        {
598            BRAC_TEST_INT;
599            return g_BRAC_GetUserName_Func(dwUserid, lpUserName, dwLen);
600        }
601        // 查询房间名称
602        DWORD GetRoomName(DWORD dwRoomId, CHAR* lpRoomName, DWORD dwLen)
603        {
604            BRAC_TEST_INT;
605            return g_BRAC_GetRoomName_Func(dwRoomId, lpRoomName, dwLen);
606        }
607        // 显示本地视频画面调节对话框
608        DWORD ShowLVProperty(HWND hParent, LPCTSTR szCaption, DWORD dwX ,DWORD dwY)
609        {
610            BRAC_TEST_INT;
611            return g_BRAC_ShowLVProperty_Func(hParent, szCaption, dwX, dwY);
612        }
613 
614        // 用户音、视频录制
615        DWORD StreamRecordCtrl(DWORD dwUserId, BOOL bStartRecord, DWORD dwFlags, DWORD dwParam)
616        {
617            BRAC_TEST_INT;
618            return g_BRAC_StreamRecordCtrl_Func(dwUserId, bStartRecord, dwFlags, dwParam);
619        }
620        // 对用户的视频进行抓拍(快照)
621        DWORD SnapShot(DWORD dwUserId, DWORD dwFlags, DWORD dwParam)
622        {
623            BRAC_TEST_INT;
624            return g_BRAC_SnapShot_Func(dwUserId, dwFlags, dwParam);
625        }
626 
627        // 透明通道传送缓冲区
628        DWORD TransBuffer(DWORD dwUserid, LPBYTE lpBuf, DWORD dwLen)
629        {
630            BRAC_TEST_INT;
631            return g_BRAC_TransBuffer_Func(dwUserid, lpBuf, dwLen);
632        }
633        // 透明通道传送缓冲区扩展
634        DWORD TransBufferEx(DWORD dwUserid, LPBYTE lpBuf, DWORD dwLen, DWORD wParam, DWORD lParam, DWORD dwFlags, DWORD& dwTaskId)
635        {
636            BRAC_TEST_INT;
637            return g_BRAC_TransBufferEx_Func(dwUserid, lpBuf, dwLen, wParam, lParam, dwFlags, dwTaskId);
638        }
639        // 传送文件
640        DWORD TransFile(DWORD dwUserid, LPCTSTR lpLocalPathName, DWORD wParam, DWORD lParam, DWORD dwFlags, DWORD& dwTaskId)
641        {
642            BRAC_TEST_INT;
643            return g_BRAC_TransFile_Func(dwUserid, lpLocalPathName, wParam, lParam, dwFlags, dwTaskId);
644        }
645        // 取消传输任务
646        DWORD  CancelTransTask(DWORD dwUserid, DWORD dwTaskId)
647        {
648            BRAC_TEST_INT;
649            return g_BRAC_CancelTransTask_Func(dwUserid, dwTaskId);
650        }
651        // 传送文本消息
652        DWORD SendTextMessage(DWORD dwUserid, BOOL bSecret, LPCTSTR lpMsgBuf, DWORD dwLen)
653        {
654            BRAC_TEST_INT;
655            return g_BRAC_SendTextMessage_Func(dwUserid, bSecret, lpMsgBuf, dwLen);
656        }
657        // 查询传输任务相关信息
658        DWORD QueryTransTaskInfo(DWORD dwUserid, DWORD dwTaskId, int infoname, char FAR* infoval, int infolen)
659        {
660            BRAC_TEST_INT;
661            return g_BRAC_QueryTransTaskInfo_Func(dwUserid, dwTaskId, infoname, infoval, infolen);
662        }
663        // 发送SDK Filter 通信数据
664        DWORD SendSDKFilterData(LPBYTE lpBuf, DWORD dwLen)
665        {
666            BRAC_TEST_INT;
667            return g_BRAC_SendSDKFilterData_Func(lpBuf, dwLen);
668        }
669 
670        // 查询指定用户相关状态
671        DWORD QueryUserState(DWORD dwUserId, int infoname, char FAR* infoval, int infolen)
672        {
673            BRAC_TEST_INT;
674            return g_BRAC_QueryUserState_Func(dwUserId, infoname, infoval, infolen);
675        }
676 
677        // 释放所有资源
678        DWORD Release(VOID)
679        {
680            BRAC_TEST_INT;
681            return g_BRAC_Release_Func();
682        }
683 
684 private:
685         BOOL    m_bSuccessLoadDll;
686 };
687 
688 
689 
690 
691 #endif /*__cplusplus*/
692 
693 
694 
695 
696 
697 
698 #endif // ANYCHATCORESDK_H

http://newalitest.csdn.net/99263/anychat/blob/master/client/windows/qt/AnyChatQt/AnyChatCoreSDK.h

 

posted @ 2016-10-09 04:43  Endv  阅读(715)  评论(0)    收藏  举报