kb_machblue_client.h
上传用户:fy98168
上传日期:2015-06-26
资源大小:13771k
文件大小:15k
源码类别:

DVD

开发平台:

C/C++

  1. //*****************************************************************************
  2. //FileName:kb_machblue_client.h
  3. //
  4. //Description:Machblue client.
  5. //
  6. //Author:steven
  7. //
  8. //Date: 2006.12.25
  9. //
  10. //Version: v1.0
  11. //*****************************************************************************
  12. #ifndef _KB_MACHBLUE_CLIENT_H_
  13. #define _KB_MACHBLUE_CLIENT_H_
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. #include "gendef.h"
  18. #include "machblue_defines.h"
  19. #include "kb_dc.h"
  20. #include "kb_machblue_client_task.h"
  21. #include "kb_machblue_client_lc.h"
  22. #include "rckeymap.h"
  23. #define MB_PLAYER_1_2  0
  24. typedef enum
  25. {
  26. kb_movie_menu_main,
  27. kb_movie_menu_video_list,
  28. kb_movie_menu_nvod,//无
  29. kb_movie_menu_epg,
  30. kb_movie_menu_search,
  31. kb_movie_menu_searchAll,
  32. kb_movie_menu_mail,//无
  33. kb_movie_menu_mail_popup,//无
  34. kb_movie_menu_sys_info,
  35. kb_movie_menu_help,
  36. kb_movie_menu_pf,
  37. kb_movie_menu_volume,
  38. kb_movie_menu_volumeMute,
  39. kb_movie_menu_popup,//无
  40. kb_movie_menu_channle_no,//无
  41. kb_movie_menu_otahint,//无
  42. kb_movie_ca_inform,//无
  43. kb_movie_dbc_weather,
  44. kb_movie_dbc_gov,
  45. kb_movie_adve_logo,
  46. kb_movie_adve_logoSound,
  47. //not menu follows
  48. kb_movie_vote_voteMenu,
  49. kb_movie_adve_realtime,
  50. kb_movie_adve_alter,
  51. kb_movie_swfUpdatePrompt,
  52. kb_movie_last
  53. }kb_movie_name;
  54. typedef enum
  55. {
  56. kb_movie_sound_cocacola,
  57. kb_movie_sound_last
  58. }kb_movie_sound;
  59. typedef struct
  60. {
  61. kb_movie_sound  type;
  62. unsigned char  *pData;
  63. unsigned long size;
  64. }kb_movie_soundStruct;
  65. typedef enum
  66. {
  67. kb_movie_playing,
  68. kb_movie_closed,
  69. kb_movie_processing
  70. };
  71. //--------------add by shriek
  72. /**
  73.  * define ota hint name
  74.  */
  75. #define MOVIE_NAME_MENU_OTA_HINT        "kb_ota_hint.swf"  //SHIEK
  76. #define MOVIE_MENU_OTA_HINT_CONNECTION   "_ota_connection"
  77. //define OTA type
  78. #define MOVIE_TYPE_MOVIE_OTA_QUERY            "ota_yes_no_query"
  79. #define MOVIE_TYPE_MOVIE_OTA_HINT               "ota_hint_only"
  80. #define EVENT_TYPE_MENU_OTA_HINT         "hint_query"
  81. #define MOVIE_MENU_OTA_HINT_FUNCTION  "_ota_receive"
  82. //--------------shriek end
  83. /**
  84.  * define movie name
  85.  */
  86.  //menu
  87. #define MOVIE_NAME_MENU_GAME          "menu_game"
  88. #define MOVIE_NAME_PGM_LIST_R "pgm_list_r.swf"
  89. #define MOVIE_NAME_MENU_MAIL "mail.swf"
  90. #define MOVIE_NAME_MENU_PROMPT "prompt.swf"
  91. #define MOVIE_NAME_MENU_NVOD "NVOD.swf"
  92. #define MOVIE_NAME_MENU_NAVIGATOR     "navigator.swf"
  93. #define MOVIE_NAME_MENU_CHANNEL_INFO      "channel_info.swf"
  94. #define MOVIE_NAME_MENU_CHANNEL_NO "channel_no.swf"
  95. #define MOVIE_NAME_LIST_KEY_TV        "list_key_tv.swf"
  96. #define MOVIE_NAME_LIST_KEY_RADIO  "list_key_radio.swf"
  97. //vote
  98. #define MOVIE_NAME_VOTE_SG "vote_supergirl"
  99. //advertisement
  100. #define MOVIE_NAME_ADVE_LOGO "adve_logo"
  101. #define MOVIE_NAME_ADVE_CHCARD "adve_christmascard"
  102. #define MOVIE_NAME_ADVE_SPCARD "adve_springcard"
  103. //data broadcast
  104. #define MOVIE_NAME_DBC_MAIN "dbc_main.swf"
  105. #define MOVIE_DBC_CONNECTION "_dbc_main"
  106. #define MOVIE_DBC_CON_FUNCTION "dbc_receive"
  107. #define MOVIE_DBC_WEATHER_EVENT "event_weather"
  108. //ca inform
  109. #define MOVIE_NAME_CA_INFORM "ca_inform.swf"
  110. #define MOVIE_CA_INFORM_CONNECTION "_ca_inform"
  111. #define MOVIE_CA_CON_INFORM_FUNCTION "ca_inform_receive"
  112. //game
  113. #define MOVIE_NAME_GAME_MAGNTRIX       "game_magntrix"
  114. #define MOVIE_NAME_GAME_INVADE            "game_invade"
  115. /**
  116.  * define local connection
  117.  */
  118. //local connection
  119. #define MOVIE_EPG_CONNECTION "_epgconnect"
  120. #define MOVIE_EPG_FUN_SELECTCH "get_epg_init_info"
  121. #define MOVIE_EPG_FUN_ORDER "get_order_init_info"
  122. #define MOVIE_EPG_FUN_ORDER_READ "get_order_init_info_read"
  123. #define MOVIE_MENU_PF_CONNECTION "_menupf_cur_service_id"
  124. #define MOVIE_MENU_PF_FUN_SERVICE_ID "get_cur_service_id"
  125. #define MOVIE_SOUND_CONNECTION "_sound_connection"
  126. #define MOVIE_SOUND_FUNCTION "sound_receive"
  127. #define MOVIE_MENU_PGM_LIST_CONNECTION "_pgm_connection"
  128. #define MOVIE_MENU_PGM_LIST_FUNCTION "_pgm_function"
  129. #define MOVIE_MENU_SEARCH_CONNECTION "_search_connection"
  130. #define MOVIE_MENU_SEARCH_FUNCTION "_search_result"
  131. #define MOVIE_MENU_MAIL_CONNECTION "_mail_connection"
  132. #define MOVIE_MENU_MAIL_FUNCTION "_mail_receive"
  133. #define MOVIE_MENU_PROMPT_CONNECTION "_prompt_connection"
  134. #define MOVIE_MENU_PROMPT_FUNCTION "_prompt_receive"
  135. #define MOVIE_NVOD_CONNECTION "_nvodconnect"
  136. #define MOVIE_NVOD_FUN_SELECTCH "nvod_init"
  137. #define MOVIE_CH_NO_CONNECTION "_ch_no_connect"
  138. #define MOVIE_CH_NO_FUNCTION "ch_no_receive"
  139. /**
  140. * define SYS_INFO_ type
  141. */
  142. #define MOVIE_MENU_SYS_INFO_CONNECTION "_sys_info_connection"
  143. #define MOVIE_MENU_SYS_INFO_FUNCTION "sys_info_receive"
  144. #define MOVIE_MENU_SYS_INFO_PASS_FUNCTION "sys_info_pass_receive"
  145. #define MOVIE_MENU_SYS_INFO_AUDIO_FUNCTION "sys_info_audio_receive"
  146. #define MOVIE_MENU_SYS_INFO_MENU_SET_FUNCTION "sys_info_menu_set_receive"
  147. #define MOVIE_MENU_SYS_INFO_POWER_ON_OFF_FUNCTION  "sys_info_power_receive"
  148. #define EVENT_SYS_INFO_TYPE_CHANNEL_INFO "channel_info"
  149. #define EVENT_SYS_INFO_TYPE_STB_INFO "STB_info"
  150. #define EVENT_SYS_INFO_TYPE_LOADER_INFO "loader_info"
  151. #define EVENT_SYS_INFO_TYPE_FACTORY_RESET "factory_reset"
  152. #define EVENT_SYS_INFO_TYPE_PARENT_SET "parent_set"
  153. #define EVENT_SYS_INFO_TYPE_AUDIO_SET "audio_set"
  154. #define EVENT_SYS_INFO_TYPE_AUDIO_SET_R "audio_set_r"
  155. #define EVENT_SYS_INFO_TYPE_AUDIO_SET_W "audio_set_w"
  156. #define EVENT_SYS_INFO_TYPE_PASSWORD_SET "password_set"
  157. #define EVENT_SYS_INFO_TYPE_MENU_SET "menu_set"
  158. #define EVENT_SYS_INFO_TYPE_MENU_SET_R "menu_set_r"
  159. #define EVENT_SYS_INFO_TYPE_MENU_SET_W "menu_set_w"
  160. #define EVENT_SYS_INFO_TYPE_ON_OFF_SET "power_on_off"
  161. #define EVENT_SYS_INFO_TYPE_OTA_SET                        "ota_set"
  162. /**
  163. * define movie type
  164. */
  165. #define MOVIE_TYPE_MOVIE_ADVER "movie_adver"
  166. #define MOVIE_TYPE_MOVIE_GAME        "movie_game"
  167. /**
  168.  * define event type
  169.  */
  170. #define EVENT_TYPE_QUERY "event_query"
  171. #define EVENT_TYPE_QUIT "event_quit"
  172. #define EVENT_TYPE_EPG "event_epg"
  173. #define EVENT_TYPE_SWITCH_CH "event_switchCh"
  174. #define EVENT_TYPE_SYS_RESET "factory_reset"
  175. #define EVENT_TYPE_PGM_LIST "pgm_list"
  176. #define EVENT_TYPE_SYS_INFO "sys_info"
  177. #define EVENT_TYPE_MAIL_MESSAGE "mail_message"
  178. #define EVENT_TYPE_MENU_PROMPT "event_prompt"
  179. #define EVENT_TYPE_NVOD "event_nvod"
  180. #define EVENT_TYPE_2_NVOD "nvod_2_movie"
  181. #define EVENT_TYPE_F_NVOD "nvod_F_movie"
  182. #define EVENT_TYPE_2_NVOD_S_F "nvod_2_movie_S_F"
  183. #define EVENT_TYPE_PLAY_NVOD "nvod_play"
  184. #define EVENT_TYPE_ORDER_NVOD "nvod_order"
  185. /**
  186. * define search type
  187. */
  188. #define EVENT_SEARCH_TYPE_MANUAL     "manual"
  189. #define EVENT_SEARCH_TYPE_AUTO "auto"
  190. #define EVENT_SEARCH_TYPE_ALL "all"
  191. #define EVENT_SEARCH_TYPE_CHA_EDIT "channel_edit"
  192. #define EVENT_SEARCH_TYPE_PROGRESS "process"
  193. #define EVENT_SEARCH_TYPE_SIGNAL        "signal"
  194. #define EVENT_SEARCH_TYPE_CLEAR_LIST "clear_list"
  195. #define EVENT_SEARCH_TYPE_RETURN_KEY "returnkey"
  196. /**
  197. * define EPG type
  198. */
  199. #define EVENT_EPG_TYPE_TV_EPG "tv_epg"
  200. #define EVENT_EPG_TYPE_RADIO_EPG "radio_epg"
  201. #define EVENT_EPG_TYPE_ADM_EPG_W "order_write"
  202. #define EVENT_EPG_TYPE_ADM_EPG_R "order_read"
  203. /**
  204. * define MAIL type
  205. */
  206. #define EVENT_MAIL_TYPE_LIST "mail_list"
  207. #define EVENT_MAIL_TYPE_READ "mail_read"
  208. #define EVENT_MAIL_TYPE_DELETE "mail_delete"
  209. /**
  210. * //about radio list and epg
  211. */
  212. #define MOVIE_MENU_R_CONNECTION "_radio_connection"
  213. #define MOVIE_MENU_R_FUNCTION "radio_receive"
  214. #define EVENT_TYPE_RADIO                     "event_radio"
  215. #define EVENT_TYPE_CH_NO                     "channel_no"
  216.   //频道编辑事件宏
  217.   #define EVENT_SEARCH_TYPE_CHA_EDIT_DEL "event_del"
  218.   #define EVENT_SEARCH_TYPE_CHA_EDIT_Fav "event_favor"
  219.   #define EVENT_SEARCH_TYPE_CHA_EDIT_MOVE "event_move"
  220.   #define EVENT_SEARCH_TYPE_CHA_EDIT_LOCK "event_lock"
  221.   #define EVENT_SEARCH_TYPE_CHA_EDIT_SAVE "event_save"
  222.   #define EVENT_SEARCH_TYPE_CHA_EDIT_NONE "event_none"
  223. /***
  224. 新代码用到的宏
  225. ***/
  226. /****************************Local Connection 公用宏定义****************************/
  227. //Local Connection 名称2个,一个是常用,另一个为备用
  228. #define KB_DTV_LC_NAME "_local_connection" //默认本地连接名称
  229. #define KB_DTV_LC_NAME_BAK "_local_connection_bak" //备用本地连接名称
  230. //Local Connection 接收函数名称6 个,常用一个,其他备用
  231. #define KB_DTV_LC_FUNCTION "receive_fun" //默认本地连接的接收函数名称
  232. #define KB_DTV_LC_FUNCTION_1 "receive_1" //第二选择本地连接的接收函数名称
  233. #define KB_DTV_LC_FUNCTION_2 "receive_2" //第三选择本地连接的接收函数名称
  234. #define KB_DTV_LC_FUNCTION_3 "receive_3" //第四选择本地连接的接收函数名称
  235. #define KB_DTV_LC_FUNCTION_4 "receive_4" //第五选择本地连接的接收函数名称
  236. #define KB_DTV_LC_FUNCTION_5 "receive_5" //第六选择本地连接的接收函数名称
  237. //影片类型
  238. #define MOVIE_TYPE_MOVIE_MENU "movie_menu"
  239. #define MOVIE_TYPE_MOVIE_VOTE "movie_vote"
  240. #define MOVIE_TYPE_MOVIE_DBC        "movie_dbc"
  241. #define MOVIE_TYPE_MOVIE_ADVER "movie_adver"
  242. /***
  243. 搜索
  244. ***/
  245. //影片名称
  246. #define MOVIE_NAME_MENU_SEARCH           "menu_search"
  247. #define MOVIE_NAME_MENU_SEARCHALL      "menu_searchAll"
  248. //搜索页面
  249. #define EVENT_TYPE_SEARCH                  "event_search"
  250. #define EVENT_SUB_TYPE_SEARCH_1 "search"
  251. #define EVENT_SUB_TYPE_SEARCH_2 "signalQuality"
  252. #define EVENT_SUB_TYPE_SEARCH_3 "progress"
  253. /***
  254. 投票
  255. ***/
  256. //影片名称
  257. #define MOVIE_NAME_MENU_VOTE "movie_vote"
  258. //投票页面
  259. #define EVENT_TYPE_VOTE                     "event_vote"
  260. #define EVENT_SUB_TYPE_VOTE_1                 "event_voteInfo"
  261. #define EVENT_SUB_TYPE_VOTE_2               "event_vote2Server"
  262. #define EVENT_SUB_TYPE_VOTE_3               "event_voteQuery"
  263. /***
  264. 主菜单
  265. ***/
  266. //影片名称
  267. #define MOVIE_NAME_MENU_MAIN "menu_main"
  268. //主菜单页面
  269. #define EVENT_TYPE_MENU_SWITCH      "menu_switch"
  270. /***
  271. 当前后续
  272. ***/
  273. //影片名称
  274. #define MOVIE_NAME_MENU_PF "menu_pf"
  275. //当前后续事件
  276. #define EVENT_TYPE_PF                     "event_pf"
  277. /***
  278. 系统设置
  279. ***/
  280. //影片名称
  281. #define MOVIE_NAME_SYS_INFO "sys_info.swf"
  282. #define MOVIE_NAME_SYS_INFO_HELP "sys_help.swf"
  283. //系统信息中的事件类型
  284. #define EVENT_SYS_INFO "event_sysInfo"
  285. /***
  286. 频道列表
  287. ***/
  288. //影片名称
  289. #define MOVIE_NAME_PGM_LIST "pgm_list.swf"
  290. /***
  291. 声音
  292. ***/
  293. #define MOVIE_NAME_SOUND "sound.swf"
  294. #define MOVIE_NAME_SOUND_MUTE "soundMute.swf"
  295. //声音事件
  296. #define EVENT_TYPE_MENU_SOUND "event_sound"
  297. #define EVENT_SOUND_SUBTYPE_1 "event_soundVolume"
  298. #define EVENT_SOUND_SUBTYPE_2 "event_soundMute"
  299. /***
  300. EPG影片
  301. ***/
  302. #define MOVIE_NAME_MENU_EPG "menu_epg"
  303. /***
  304. 帮助影片
  305. ***/
  306. #define MOVIE_NAME_MENU_HELP          "menu_help"
  307. /***
  308. 数据广播
  309. ***/
  310. //天气预报
  311. //影片名称
  312. #define MOVIE_NAME_DBC_WEATHER "dbc_weather.swf"
  313. //天气预报影片的事件类型
  314. #define EVENT_TYPE_WEATHER "weatherForecast"
  315. #define EVENT_TYPE_WEATHER_INIT "0"
  316. #define EVENT_TYPE_WEATHER_CITY "1"
  317. //政府公告
  318. //影片名称
  319. #define MOVIE_NAME_DBC_GOV_BULLETIN "dbc_gov.swf"
  320. //政府公告影片的事件类型
  321. #define EVENT_TYPE_GOV "eventGov"
  322. #define EVENT_SUB_TYPE_GOV_CATALOG "eventGovCatalog"
  323. #define EVENT_SUB_TYPE_GOV_CONTENT "eventGovContent"
  324. //互动广告影片
  325. //影片名称
  326. #define MOVIE_NAME_AD1 "adv_alter_01.swf"
  327. #define MOVIE_NAME_AD2 "adv_alter_02.swf"
  328. /***
  329. 影片更新提示框
  330. ***/
  331. #define MOVIE_NAME_MENU_PROMPT "prompt.swf"
  332. #define EVENT_TYPE_MENU_PROMPT "event_prompt"
  333. /**
  334.  * define mvie struction
  335.  
  336.  * movie < movie handle >
  337.  * info < movie information >
  338.  * valid < data valid flag >
  339.  
  340.  */
  341. typedef struct kb_movie_struct_s
  342. {
  343. mb_movie_t  movie;
  344. kb_movie_info_t info;
  345. unsigned char  *data;
  346. }kb_movie_struct_t;
  347. typedef struct kb_movie_data_s
  348. {
  349. unsigned char *data;
  350. unsigned long size;
  351. }kb_movie_data_t;
  352. typedef struct kb_movie_play_bak_s
  353. {
  354. BOOL  flag;
  355. kb_movie_name  name;
  356. }kb_movie_play_bak_t;
  357. /**
  358.  * init machblue client used by keybridge.
  359.  */
  360. extern void kb_machblue_client_init(void);
  361. /**
  362.  * remoter event manager.
  363.  * key < key pressed by remoter >
  364.  
  365.  * @return MB_SUCCESS, MB_FAILURE otherwise.
  366.  */
  367. extern mb_error_t kb_machblue_key(rc_navKeyStroke_t key);
  368. /**
  369.  * Get machblue client graphics context. 
  370.  * @return pointer of graphics context.
  371.  */
  372. extern mb_gfx_ctx_t *kb_machblue_getGraphicsContext(void);
  373. /**
  374.  * get current movie information. 
  375.  * @return None.
  376.  */
  377. extern void kb_machblue_getCurMovieInfo(kb_movie_struct_t *current_movie);
  378. /**
  379.  * init current movie data which will be played
  380.  * movie_name < name of movie which will be initialised >
  381.  *
  382.  * @return MB_SUCCESS, MB_FAILURE otherwise.
  383.  */
  384. /**
  385.  * switch different menu movie
  386.  * pAttribs < data of movie which will be switched >
  387.  *
  388.  * @return MB_SUCCESS, MB_FAILURE otherwise.
  389.  */
  390. extern mb_error_t kb_machblue_switchMenuMovie(kb_lc_attributes_t *pAttribs);
  391. /**
  392.  * movie manager which in ts stream 
  393.  * pInfo < information of movie which in ts stream >
  394.  
  395.  * @return TRUE, FALSE when failure.
  396.  */
  397. extern bool kb_machblue_TSMovie2(KB_MovieInfoNode *pInfo);
  398.  
  399. /**
  400.  * get current movie status
  401.  *
  402.  * @return current movie status.
  403.  */
  404. /**
  405.  * set current movie status
  406.  *
  407.  * status < value to set as current movie status >
  408.  *
  409.  * @return MB_SUCCESS, MB_FAILURE otherwise.
  410.  */
  411. /**
  412.  * create movie by machblue lib
  413.  * @return MB_SUCCESS, MB_FAILURE otherwise.
  414.  */
  415. /**
  416.  * attach movie by machblue lib
  417.  * @return MB_SUCCESS, MB_FAILURE otherwise.
  418.  */
  419. /**
  420.  * activate movie by machblue lib
  421.  * @return MB_SUCCESS, MB_FAILURE otherwise.
  422.  */
  423. /**
  424.  * suspend movie by machblue lib
  425.  * @return MB_SUCCESS, MB_FAILURE otherwise.
  426.  */
  427. /**
  428.  * detach movie by machblue lib
  429.  * @return MB_SUCCESS, MB_FAILURE otherwise.
  430.  */
  431. /**
  432.  * delete movie by machblue lib and reset movie information,clear screen
  433.  * @return MB_SUCCESS, MB_FAILURE otherwise.
  434.  */
  435. extern mb_error_t kb_machblue_movie_delete(BOOL Menu_Exit);
  436. extern void kb_movie_playStatusSet(unsigned char status);
  437. extern unsigned char kb_movie_playStatusGet(void);
  438. extern void kb_machblue_updatePlay(void);
  439. //for test
  440. extern void kb_machblue_create_schedule(unsigned long serviceID);
  441. //for test
  442. extern void kb_machblue_search_schedule(void);
  443. extern kb_movie_name kb_machblue_getMovieName(unsigned char *pName);
  444. extern kb_movie_struct_t *kb_machblue_getCurrentMovie(void);
  445. extern void kb_machblue_alterAdvPlay(unsigned char flag);
  446. //external func
  447. extern INT32 STB_StateSwitch(INT32 nApplet);
  448. extern INT32 KB_NVODGetEit(void);
  449. extern int mb_strcmp(mb_char_t *s0,mb_char_t *s1);
  450. extern void mb_surface_osd_clear(void);
  451. extern mb_error_t mb_surface_graphics_init(mb_gfx_ctx_t *p_gfx_ctx, void *client_data);
  452. extern void KB_MB_lc_2_movie_Post_Task(void);
  453. extern  mb_error_t kb_machblue_movie_play(kb_movie_name movie_name);
  454. #ifdef __cplusplus
  455. }
  456. #endif
  457. #endif
  458. /* EOF... */