broad.h 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. #ifndef __BROAD_OPEN_H__
  2. #define __BROAD_OPEN_H__
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #include "type.h"
  7. typedef enum AUDIO_STATE{
  8. AUDIO_IDLE,
  9. BND_SPEAK_START,
  10. BND_SPEAK_START_ACK,
  11. BND_SPEAKING,
  12. BND_SPEAK_STOP,
  13. BND_LISTEN_START,
  14. BND_LISTENING,
  15. BND_LISTEN_STOP,
  16. BND_TTS_START,
  17. BND_TTS_STOP,
  18. BND_TONE_START,
  19. BND_TONE_STOP,
  20. BND_REC_PLAY_START,
  21. BND_REC_PLAY_STOP,
  22. }AUDIO_STATE;
  23. typedef enum VOL_TYPE{
  24. BND_VOICE,
  25. BND_TTS,
  26. BND_TONE
  27. }VOL_TYPE;
  28. typedef void(*ui_notify_cb)(void* notify);
  29. void broad_register_ui_notify_cb(ui_notify_cb cb);
  30. /*
  31. FUN:login_state_cb 登录状态回调
  32. PARAM:
  33. online:USER_OFFLINE/USER_ONLINE
  34. */
  35. typedef void(*login_state_cb)(int online);
  36. /*
  37. FUN:join_group_cb 进组回调,触发源包括主动进组和被动进组
  38. PARAM:
  39. groupname:当前群组的名字
  40. gid:当前群组gid
  41. */
  42. typedef void(*join_group_cb)(const char* groupname, bnd_gid_t gid);
  43. /*
  44. FUN:audio_cb 音频的回调
  45. PARAM:
  46. state:当前语音状态:收听/讲话/TTS/TONE
  47. uid:当前操作用户uid,讲话/TTS/TONE时为0
  48. name:当前操作用户名字,讲话/TTS/TONE时为NULL
  49. flag:如果state为BND_LISTEN_START,flag==1表示本机可以打断对方讲话,flag==0表示本机不能打断对方讲话
  50. */
  51. typedef void(*audio_cb)(AUDIO_STATE state, bnd_uid_t uid, const char* name, int flag);
  52. /*
  53. FUN:callmember_cb 单呼的回调
  54. PARAM:
  55. ret:1->成功,0->失败,2->超时解散
  56. */
  57. typedef void(*callmember_cb)(int ret);
  58. /*
  59. FUN:listupdate_cb 数据变化的回调
  60. PARAM:
  61. flag:1:群组列表变化, 2:成员列表变化
  62. */
  63. typedef void(*listupdate_cb)(int flag);
  64. /*
  65. FUN:member_change_cb 数据变化的回调
  66. PARAM:
  67. flag:1 离组
  68. gid:变化的gid
  69. num:个数
  70. uids:uid集合
  71. */
  72. typedef void(*member_change_cb)(int flag, bnd_gid_t gid, int nun, bnd_uid_t* uids);
  73. /*
  74. FUN:error_cb 异常错误信息的回调
  75. PARAM:
  76. info: 异常信息
  77. */
  78. typedef void(*error_cb)(const char* info);
  79. /*
  80. FUN:poc_at_cb AT透传回调,用于接收POC处理后的返回AT数据
  81. PARAM:
  82. at: POC处理后的返回AT数据
  83. */
  84. typedef void(*poc_at_cb)(char* at);
  85. /*
  86. FUN:location_cb GPS定位信息变化通知
  87. PARAM:
  88. on: 定位开关, 1是开启,0是关闭
  89. interval: 定位上报间隔,单位秒
  90. */
  91. typedef void(*location_cb)(unsigned char on, int interval);
  92. typedef void(*upgrade_cb)(int ret);
  93. typedef void(*reminder_cb)(char* reminder, int day);
  94. typedef void(*write_account_cb)(int ret);
  95. int broad_set_thread_priority(int priority);
  96. void broad_set_notify_mode(int flags);
  97. void broad_init(void);
  98. void broad_free(void);
  99. void broad_log(boolean enable);
  100. int broad_login(login_state_cb cb);
  101. int broad_logout(void);
  102. int broad_joingroup(bnd_gid_t gid);
  103. int broad_leavegroup(void);
  104. //1:start 0:stop
  105. int broad_speak(boolean start);
  106. int broad_calluser(const bnd_uid_t uid ,callmember_cb cb);
  107. int broad_callusers( const bnd_uid_t* uids, int num, callmember_cb cb );
  108. //按索引查询群组信息
  109. int broad_group_getbyindex(int index,bnd_group_t* dst);
  110. //如果gid传入0,可查询当前群组信息
  111. int broad_group_getbyid(bnd_gid_t gid,bnd_group_t* dst);
  112. //如果uid传入0,可查询当前登录用户信息
  113. int broad_member_getbyid(bnd_uid_t uid,bnd_member_t* dst);
  114. int broad_get_loginstate(void);
  115. int broad_get_groupcount(void);
  116. /*
  117. FUN:broad_get_grouplist
  118. PARAM:
  119. dst和dst_size为调用者的数组空间及数组大小
  120. index_begin为查询的索引起始值
  121. count为计划查询的个数
  122. RETURN:
  123. 实际查询到的个数
  124. */
  125. int broad_get_grouplist(bnd_group_t* dst, int dst_size, int index_begin, int count);
  126. const int broad_get_membercount(bnd_gid_t gid );
  127. /*
  128. FUN:broad_get_memberlist
  129. PARAM:
  130. gid为群组id
  131. dst和dst_size为调用者的数组空间及数组大小
  132. index_begin为查询的索引起始值
  133. count为计划查询的个数
  134. RETURN:
  135. 实际查询到的个数
  136. */
  137. const int broad_get_memberlist(bnd_gid_t gid, bnd_member_t* dst, int dst_size, int index_begin, int count);
  138. AUDIO_STATE broad_get_audiostate(void);
  139. //boolean interrupt : true--interrupt current tts playing
  140. int broad_play_tts(const char* tts, boolean interrupt);
  141. int broad_send_ping(void);
  142. //lat:纬度, lon: 经度, time: 定位时间
  143. int broad_send_gpsinfo(double lon,double lat,bnd_time_t time);
  144. void broad_get_version(char* ver);
  145. void broad_get_upgrade_version(char* ver);
  146. int broad_current_zone_time(bnd_time_t* now, int zone);
  147. //success return 0, failed return -1
  148. int broad_set_tts_enable(boolean enable);
  149. int broad_set_tone_enable(boolean enable);
  150. int broad_set_vol(VOL_TYPE type, int vol);
  151. int broad_get_vol(VOL_TYPE type);
  152. //获取帐号可用天数
  153. int broad_get_account_day(void);
  154. //mode:1->open; 0->close; 2->clear all history
  155. int broad_set_rec_audio_mode(unsigned char mode);
  156. int broad_get_rec_audio_count(void);
  157. //index:录音列表索引, name:讲话的用户名utf8格式, delay:语音时长(单位秒), time:录制时间
  158. int broad_get_rec_audio_info(int index, char* name, unsigned char* delay, bnd_time_t* time);
  159. //index:录音列表索引
  160. int broad_play_rec_audio(int index);
  161. int broad_stop_play_rec_audio(void);
  162. //notify
  163. void broad_register_audio_cb(audio_cb cb);
  164. void broad_register_join_group_cb(join_group_cb cb);
  165. void broad_register_listupdate_cb(listupdate_cb cb);
  166. void broad_register_member_change_cb(member_change_cb cb);
  167. void broad_register_error_cb(error_cb cb);
  168. void broad_register_location_cb(location_cb cb);
  169. void broad_register_upgrade_cb(upgrade_cb cb);
  170. void broad_register_reminder_cb(reminder_cb cb);
  171. void broad_register_write_account_cb(write_account_cb cb);
  172. int broad_read_custom(BND_CUSTOM_TYPE type, const char* value);
  173. int broad_write_custom(BND_CUSTOM_TYPE type, const char* value);
  174. void broad_set_auto_end_temp_call_time(unsigned int t);
  175. void broad_set_is_destroy_temp_call(boolean flag);
  176. int broad_set_poc_uart_device(int open); //默认uart设备是打开的,如需关闭请设置为0
  177. //AT 透传接口
  178. int broad_send_at(char* at); //发送
  179. void broad_register_poc_at_cb(poc_at_cb cb);//注册接收回调
  180. int broad_set_solution(char *solution);
  181. int broad_set_solution_version(char *version);
  182. int broad_set_productInfo(char *productInfo);
  183. int broad_set_manufacturer(char *manufacturer);
  184. int broad_upgrade_init(void);
  185. int broad_request_upgrade();
  186. int broad_get_init_status();
  187. #ifdef __cplusplus
  188. }
  189. #endif
  190. #endif