global.h
上传用户:poi891205
上传日期:2013-07-15
资源大小:9745k
文件大小:16k
源码类别:

DVD

开发平台:

C/C++

  1. //=============================================================================
  2. // FILE
  3. // global.h
  4. // Creat by potatooo
  5. // Maintain by terry , 2002
  6. // History
  7. // 2003.3.20  terry spilt global.h to
  8. //                  a.define struct
  9. //                  b.global define
  10. //                  c.kernel global var.
  11. //                  d.navigation global var.
  12. //                  e.io var.
  13. //                  f.Aviq system designer
  14. //
  15. //==============================================================================
  16. #ifndef __GLOBAL_H
  17. #define __GLOBAL_H
  18. #include "bufloc.h"
  19. #include "config.h"
  20. #include "user_init.h"
  21. #include "types.h"
  22. #include "regmap.h"
  23. #include "func.h"
  24. #include "gb_def.h"
  25. #include "gb_struct.h"
  26. #include "gb_knl.h"
  27. #include "gb_nav.h"
  28. #include "gb_io.h"
  29. #include "gb_aviq.h"
  30. /*
  31. *  System global var.
  32. */
  33. //=============================================================== system state
  34. #ifdef IR_TOOL
  35. int watch_ir_value;
  36. int watch_ir_id_value;
  37. UINT16 IRAddr;
  38. #endif
  39. EXTERN  BYTE    pe_run;
  40. EXTERN  BYTE    system_state;
  41. EXTERN  ifunc   browser;
  42. EXTERN  BYTE    play_state;
  43. EXTERN  BYTE    old_play_state;
  44. EXTERN  UINT16  sys_cmd;
  45. EXTERN  BYTE    source_end;
  46. EXTERN  BYTE    program_end;
  47. EXTERN  BYTE    show_logo;
  48. EXTERN  BYTE    bInitPlayTrk;
  49. EXTERN  UINT8   no_disk_cnt;
  50. EXTERN  int     monflg;
  51. //================================================================ function pointer
  52. //
  53. // srv_kernel   : top level server
  54. // do_cd    : cd-format parser
  55. // do_system    : system-level parser
  56. // do_video : video elementary parser
  57. // do_audio : audio parser
  58. // do_sup   : ogt/sup parser
  59. //
  60. EXTERN  ifunc   srv_kernel;
  61. EXTERN  ifunc   do_cd;
  62. EXTERN  ifunc   do_system;
  63. EXTERN  ifunc   do_system_init;
  64. EXTERN  ifunc   do_video;
  65. EXTERN  ifunc   do_video_init;
  66. EXTERN  ifunc   do_audio;
  67. #ifdef  AVI_INTERNAL_SUP
  68. EXTERN  ifunc   do_avi_sup;
  69. #endif
  70. /*
  71. *  Application global var.
  72. */
  73. //================================================================ SDRAM 16Mb
  74. #ifdef SDRAM_16Mb_Mode
  75. EXTERN  BYTE    prog_state;
  76. #endif
  77. #ifdef NEW_STYLE_SETUP
  78. EXTERN  BYTE    setup_state;
  79. #endif
  80. //================================================================ IDE
  81. #ifdef USE_HDD
  82. EXTERN  char    hd_play;
  83. #endif
  84. EXTERN  BYTE    read_error_flag;
  85. EXTERN  BYTE    dev_status_flag;
  86. #ifdef BAD_DISC_AUTO_STOP //terry,2003/8/31 12:00AM
  87. EXTERN  BYTE    bad_disc_auto_stop;
  88. #endif
  89. //#ifdef SUPPORT_SPG_GAME//nono add 20041228 //axel mark 20041230
  90. EXTERN  int     spg_game_pad;
  91. //#endif
  92. //================================================================ USB Reader
  93. //================================================================ Graph
  94. EXTERN  UINT16  line_offset;
  95. #ifdef SPHE1000
  96. EXTERN  BYTE    media_type;
  97. #endif
  98. //================================================================ Card Reader
  99. #if defined(SUPPORT_CARD_STORAGE)||defined(SUPPORT_USB)||defined(SPHE8202_CARD_STORAGE)
  100. #ifndef SPHE1000
  101. EXTERN  BYTE    media_type;
  102. #endif
  103. EXTERN  BYTE    card_plug_state;
  104. EXTERN  BYTE    storage_type; //1:exist 0:Not exist
  105.                               //Bit0:USB Bit1:CF Bit2:SD_MMC Bit3:MS Bit4:SMC
  106. EXTERN  BYTE    detect_type;  //liweihua 2004-6-7 16:52
  107.                               //use to set flag for all pluged media types
  108. #endif
  109. //================================================================ resume
  110. //#ifdef POWER_RESUME   //maoyong marked 2004.02.20 22:12
  111. EXTERN  UINT16  resume_fsnav_trk; // for receiving resume data
  112. EXTERN  UINT16  resume_fsnav_dir;
  113. EXTERN  UINT16  same_disc_flag;
  114. EXTERN  UINT32  same_disc_vob11_pos;    //store "VTS_01_1.VOB" positon
  115. //#endif
  116. #if defined(IR_PLAY_RESUME) && defined(POWER_RESUME)
  117. EXTERN  BYTE    power_resumeflag;
  118. #endif
  119. EXTERN  BYTE    resumeTRK;
  120. EXTERN  UINT32  resumeMSF;
  121. //================================================================ UI
  122. EXTERN  INT8    counter_down;
  123. EXTERN  BYTE    shuffle_track;
  124. EXTERN  BYTE    shuffle_flag;
  125. EXTERN  INT8    video_slow;
  126. EXTERN  INT16   adv_search_time, play_dir;
  127. EXTERN  BYTE    rep_run_this_menu;
  128. EXTERN  int     nOldFst;    //Maoyong 2004.05.25 move from lbaif.c
  129. #if ALL==BIT16MODE
  130. EXTERN  UINT16    full_scrn;
  131. #else
  132. EXTERN  BYTE    full_scrn;
  133. #endif
  134. EXTERN  BYTE    bIntro;
  135. #ifdef NEXT_FORWARD_IN_A_KEY
  136. EXTERN  BYTE    bIrSkipState;
  137. EXTERN  BYTE    bIrSkipCnt;
  138. #endif
  139. #ifdef ANGLE_GOTO_IN_A_KEY  // add by Tom eastech
  140. EXTERN  BYTE    bIrSkipState1;
  141. EXTERN  BYTE    bIrSkipCnt1;
  142. #endif
  143. //================================================================ Repeat
  144. EXTERN  BYTE    rep_mode;
  145. EXTERN  BYTE    rep_ab_mode;
  146. EXTERN  BYTE    rep_track;
  147. EXTERN  UINT32  repStart;
  148. EXTERN  UINT32  repEnd;
  149. //================================================================ Display
  150. EXTERN  BYTE    remain;
  151. EXTERN  INT16   t_disp;
  152. EXTERN  INT16   old_t_disp;
  153. EXTERN  INT16   disp_mode;
  154. EXTERN  INT16   index_x;
  155. EXTERN  BYTE    index_y;
  156. EXTERN  BYTE    show_time_hh;
  157. EXTERN  BYTE    show_time_mm;
  158. EXTERN  BYTE    show_time_ss;
  159. EXTERN  UINT32  disc_time;
  160. EXTERN  UINT32  disc_st_time;
  161. EXTERN  int     disp_time;
  162. EXTERN  int     old_disp_time;
  163. EXTERN  int     fore_disp_time;
  164. EXTERN  UINT32  dNx_pg_tm;
  165. EXTERN  UINT32  dPg_tm;
  166. EXTERN  INT16   dvd_chapter;
  167. EXTERN  INT16   dvd_title;
  168. #ifdef  JUST_SHOW_CD_TYPE       //Maoyong 2004.02.25
  169. EXTERN  int     track_play_diff_time;
  170. #endif
  171. //================================================================  time search
  172. EXTERN  BYTE    goto_active;
  173. EXTERN  UINT32  goto_time;
  174. EXTERN  BYTE    goto_hour;
  175. EXTERN  BYTE    goto_min;
  176. EXTERN  BYTE    goto_sec;
  177. //================================================================  book
  178. #ifdef  SUPPORT_BOOK
  179. EXTERN  BYTE    book[BOOK_MAX_ITEM][BOOK_MAX_RECORD];//vcd: track //dvd: title,chapter
  180. EXTERN  UINT32  book_tm[BOOK_MAX_ITEM];
  181. #endif
  182. //================================================================  setup
  183. t_USER_SET UserSet;
  184. //================================================================  program
  185. EXTERN  BYTE    digit_cnt;
  186. EXTERN  BYTE    prog_cnt;
  187. EXTERN  BYTE    mark_cnt;
  188. EXTERN  BYTE    prog_index;
  189. EXTERN  UINT16  prog[SHOW_PROG_NO+1][2];
  190. #ifdef NEWSTYLE_WINDOW
  191. //================================================================  new stytle window func
  192. EXTERN  BYTE    info_index;
  193. EXTERN  BYTE    HL_index;
  194. //EXTERN  BYTE    bBrowse_state;
  195. #ifdef MODIFY_OSD_SHOW_NEW_STYLE_WINDOW//zhaoyanhua add 2003-12-18 16:51
  196. EXTERN  BYTE    show_window_info;
  197. #endif
  198. //maoyong add OR condition for NINTAUS HDCD/CD division VFD display 2004.02.23
  199. #if defined (DISP_TIME_NOT_CHANGE_WINDOW_PROGESS) || defined(JUST_SHOW_CD_TYPE)//zhaoyanhua add 2004-2-5 13:58
  200. EXTERN  int     track_play_time;//time track has played.
  201. #endif//DISP_TIME_NOT_CHANGE_WINDOW_PROGESS
  202. //================================================================ Zoom in/out
  203. #endif
  204. //================================================================ Zoom in/out
  205. EXTERN  UINT8   vpp_zoom;
  206. EXTERN  UINT8   vpp_zoom_max;
  207. EXTERN  UINT8   vpp_zoom_offset_mode;
  208. EXTERN  INT16   vpp_zoom_x;
  209. EXTERN  INT16   vpp_zoom_y;
  210. //================================================================ 3d sound
  211. #ifdef SUPPORT_3DSOUND
  212. EXTERN  BYTE    bEqEnergyMax[13];    //jackie
  213. EXTERN  UINT32  unEqMaxRef;          //jackie
  214. #endif
  215. EXTERN  BYTE    bEqDisplay;          //jackie
  216. //================================================================ IR
  217. EXTERN  UINT8   old_key;
  218. EXTERN  UINT8   action_click;
  219. EXTERN  int     ir_select_number;
  220. EXTERN  int     mp3_user_select;
  221. EXTERN  INT8    now_num_ns;
  222. EXTERN  UINT8   keep_cmd_code;
  223. EXTERN  INT16   ir_10p;
  224. EXTERN  UINT32  (*ircmd_callback_check)(UINT32);
  225. //================================================================ Audio
  226. EXTERN  UINT8   audio_chan_num;
  227. EXTERN  BYTE    user_mute;
  228. EXTERN  BYTE    audio_only;
  229. EXTERN  BYTE    audio_volume;
  230. #ifdef CNTR_5SPK_VOLUME
  231. //EXTERN  BYTE    volume_5SPK[6];
  232. //EXTERN  BYTE    idVolume_5SPK[6];
  233. EXTERN  BYTE    volume_5SPK[7];
  234. EXTERN  BYTE    idVolume_5SPK[7];
  235. EXTERN  BYTE    volume_Switch;
  236. #endif
  237. EXTERN  BYTE    audio_effect;
  238. EXTERN  BYTE    audio_channel;
  239. EXTERN  INT8    audio_key;
  240. EXTERN  INT8    echo_level;
  241. EXTERN  INT8    echo_decay;
  242. EXTERN  INT8    mic_volume;
  243. EXTERN  INT8    ac3_dynarange;
  244. EXTERN  INT8    mic_on;
  245. EXTERN UINT32 coding_mode_now;
  246. EXTERN  UINT16  smp_rate_now;
  247. EXTERN  UINT16  smp_rate_down;
  248. EXTERN  UINT16  frequency_mask;
  249. EXTERN  UINT8   frequency_multiple;
  250. EXTERN  BYTE    isSPDIFBitstream;
  251. EXTERN  UINT16  buf_barrier_size;
  252. EXTERN  UINT16  mpeg_audio;
  253. EXTERN  UINT16  Mp3_kbitrate;
  254. #if defined( REMAIN_TIME ) || defined( SUPPORT_PRECALCULATE_VIDEOBITRATE_FOR_FILE_MODE )    // 2004/08/11 yltseng
  255. EXTERN  UINT16  Mp3_kbitrate_PreCalc;
  256. #endif
  257. EXTERN  int     dspWatchDog;
  258. EXTERN  BYTE    *bpcm_ya_ptr;
  259. EXTERN  BYTE    auto_download_audio_chn;
  260. //================================================================ CD
  261. EXTERN  BYTE    bDiscType;
  262. EXTERN  BYTE    cd_state;
  263. EXTERN  BYTE    cd_subtype;
  264. EXTERN  BYTE    cd_type;
  265. EXTERN  BYTE    cd_type_loaded;
  266. EXTERN  BYTE    mp3_cd_end_trk;
  267. EXTERN  BYTE    cd_trk_now;
  268. EXTERN  int     disp_trk_now;
  269. EXTERN  BYTE    cd_trk_lo;
  270. EXTERN  BYTE    cd_trk_lo_now;
  271. EXTERN  BYTE    cd_trk_hi;
  272. //EXTERN  BYTE    bad_disc_seq_play;//terry,2003/8/29 02:32AM//4-6-14 12:22
  273. #ifdef MICO_DVD
  274. EXTERN  BYTE    power_off_state; //chen0627
  275. EXTERN  BYTE    bCharTemp01[12]; //chen0627
  276. #endif
  277. //=============================================================== cd layer parser
  278. EXTERN  INT16   cd_len;         /* cd-payload length        */
  279. //================================================================ Video output
  280. EXTERN  UINT8   p_scan;
  281. EXTERN  UINT8   tv_out_id;
  282. EXTERN  UINT8   tv_format;
  283. EXTERN  UINT8   output_aspect;  // defined in aspect.h
  284. EXTERN  UINT8   mode_aspect;
  285. #ifdef IR_KEY_SET_VIDEO_MODE
  286. EXTERN  BYTE    video_mode_val;
  287. #endif
  288. //================================================================ Timer
  289. EXTERN  UINT16  timeout_playback;
  290. EXTERN  UINT16  rtc_10ms;
  291. EXTERN  UINT16  rtc_100ms;
  292. EXTERN  UINT16  rtc_500ms;
  293. #ifdef DVB1000_NON_OS
  294. EXTERN  UINT16  rtc_1s; //eric add 2004-12-27 10:43
  295. #endif
  296. #ifdef OSDISP
  297. EXTERN  UINT16  rtc_1s; //wjzhang 2004/09/25 for osd display&vfd display
  298. #endif
  299. #ifdef TURN_OFF_POWER_RESUME //wangap 2004/4/21
  300. EXTERN  UINT16  rtc_60s;
  301. #endif
  302. EXTERN  UINT16  stc_polling;
  303. EXTERN  UINT16  timestamp_key;
  304. EXTERN  UINT16  timestamp_cderr;
  305. //================================================================ CD FIFO control
  306. EXTERN  UINT32  p_msf;
  307. EXTERN  UINT32  s_msf;
  308. EXTERN  UINT32  e_msf;
  309. EXTERN  INT32   s_len;
  310. EXTERN  UINT32  st_msf;
  311. EXTERN  UINT16  dvddsp_vx;
  312. //================================================================ rom ptr
  313. EXTERN  BYTE    *romimage_ptr;
  314. //================================================================ OSD
  315. #include "osd_drv.h"
  316. EXTERN  BYTE    osd_font_mode;
  317. EXTERN  BYTE    PatternMode;
  318. EXTERN  BYTE    ir_osd_post_show;
  319. EXTERN  BYTE    sw_region_len;
  320. EXTERN  BYTE    RegionValStr[MAX_REGION][14];
  321. EXTERN  BYTE    RegionStr[MAX_REGION][MAX_SW_REGION][MAX_SW_R_LEN+1];
  322. EXTERN  BYTE    RegionOnOff[MAX_REGION][4];
  323. //================================================================ global line buffer var
  324. EXTERN_MEM BYTE linebuf[100];
  325. #ifdef OSD_BMP_DISPLAY
  326. EXTERN_MEM BYTE linebuf_oriCh[100];
  327. EXTERN  UINT8 disp_region;
  328. EXTERN  UINT8 temp_region;
  329. UINT32  *temp_region_top_buf;
  330. UINT32  *temp_region_bottom_buf; 
  331. #endif
  332. #ifdef DOUBLE_TITLE//susu 2003-8-26 13:54
  333. EXTERN_MEM BYTE linebuf_0[100];
  334. EXTERN_MEM BYTE linebuf_1[100];
  335. #endif
  336. #ifdef SUPPORT_ANGLE_MARK //liweihua add 20031118
  337. EXTERN BYTE  angleflag;
  338. #endif
  339. //================================================================ JPEG
  340. EXTERN UINT32 jpg_slide_time;
  341. #ifdef NO_BLACK_for_PIC_CD
  342. UINT8 pic_cd_first_play;
  343. #endif
  344. //================================================================ karaoke
  345. #ifdef KARAOKE_MENU
  346. EXTERN BYTE KARAOKE_MENU_FLAG;
  347. #endif
  348. #if defined(GBM_PORTABLE_DVD)||defined(SUNPLUS_8202P_DEMOBOARD)   //rbhung for GBM Portable DVD
  349. #ifdef HOLD_KEY_DETECT
  350. EXTERN BYTE hold_state;
  351. #endif
  352. EXTERN UINT32   lowbat_timer;
  353. EXTERN UINT32   powerdown_timer;
  354. #endif
  355. #ifdef EASTWIN
  356. EXTERN UINT32   lowbat_timer;
  357. EXTERN UINT32   powerdown_timer;
  358. EXTERN UINT32   blink_timer;
  359. EXTERN BYTE     POWER_FLAG;
  360. EXTERN UINT32   power_led_flash_timer;
  361. EXTERN UINT32   power_on_mute_timer;
  362. #endif
  363. #ifdef VGA_CTRL_FORMAT//wangfeng 2003-12-18 16:12
  364. EXTERN BYTE temp_format;
  365. #endif
  366. #ifdef TONIC_DVD
  367. EXTERN BYTE KeyLockStatus;
  368. #endif
  369. //=================================================================standby timer
  370. #ifdef SHOW_STANDBY_TIMER//suqiaoli add
  371. EXTERN  UINT32  standby_time;
  372. EXTERN  UINT32  counter_10ms;
  373. EXTERN  BYTE  standby_hour;
  374. EXTERN  BYTE  standby_min;
  375. EXTERN  BYTE  standby_sec;
  376. EXTERN  BYTE  show_standby_hour;
  377. EXTERN  BYTE  show_standby_min;
  378. EXTERN  BYTE  show_standby_sec;
  379. EXTERN  BYTE  flag_standby_timer;
  380. #endif
  381. #ifdef AD_TCL
  382. EXTERN BYTE jpg_ps;
  383. EXTERN BYTE spk_dm_on;
  384. EXTERN BYTE spk_sb_on;
  385. EXTERN BYTE menu_id;
  386. #endif
  387. //==================Han Yang PDVD setup menu plus use
  388. #ifdef SUPPORT_FUNCTION_MENU
  389. EXTERN  BYTE  setup_menu_plus_timer;
  390. #endif //end #ifdef SUPPORT_FUNCTION_MENU
  391. #ifdef SUPPORT_DISPLAY_MENU
  392. EXTERN  BYTE  in_display_function;
  393. EXTERN  BYTE  goto_edit_state;
  394. #endif
  395. #ifdef ARGUS_PORTABLE_DVD
  396. #ifdef SUPPORT_SPI
  397. EXTERN  BYTE  pdvd_mode; //Portable DVD MODE,define in spi.h
  398. EXTERN  BYTE  scommand;  //the special commands send to MCU
  399. EXTERN  BYTE  check_sum;
  400. EXTERN  BYTE  pdvd_timer;
  401. #endif
  402. #endif
  403. #ifdef ADD_DVI311_SETUP
  404. EXTERN BYTE dvi311_mode;
  405. EXTERN BYTE dvi311_format;
  406. EXTERN BYTE dvi311_tv_mode;
  407. EXTERN BYTE Power_off_311;
  408.  #endif
  409. #ifdef BRIGHTNESS_COLOR_KEY
  410. EXTERN BYTE BriCol_timer;
  411. EXTERN BYTE BriCol_state;
  412. EXTERN BYTE brightness_value;
  413. EXTERN BYTE color_value;
  414. #endif
  415. //==============================================
  416. //for QSI source switch     //added by JS   //20040726
  417. #ifdef SUPPORT_QSI_SOURCE_SWITCH
  418. EXTERN UINT8 source_type_now;
  419. EXTERN UINT8 source_type_old;
  420. EXTERN UINT8 source_switch_flag;
  421. #endif
  422. //==============================================
  423. // for periher device
  424. #define DVD_LOADER_EXIST    (1<<0)
  425. EXTERN BYTE bDev;
  426. //===============================================
  427. #ifdef QSI_SHOW_ERR_RATE
  428. EXTERN UINT8 QSI_PIPO_TEST;
  429. EXTERN UINT8 QSI_PIPO_FLAG;
  430. EXTERN UINT32 QSI_PIPO_MSF;
  431. #endif
  432. #ifdef SUPPORT_INSIDE_GAME
  433. EXTERN UINT8 play_inside_game;
  434. #endif
  435. //===============================================
  436. #ifdef SUPPORT_CD_TEXT        //lizhx add  2004/09/06
  437. EXTERN  int flicker_flag;
  438. #endif
  439. #ifdef  SUPPORT_USB//lijd 20041008
  440. EXTERN BYTE usb_card_setup_flag;
  441. EXTERN BYTE usb_card_pause_flag;
  442. EXTERN BYTE usb_plug_out_flag;
  443. #endif
  444. //================================================
  445. // for support SWD related
  446. #ifdef SUPPORT_PLAY_SWD
  447. EXTERN BYTE START_POLLING_SWD;
  448. #endif
  449. #ifdef SUPPORT_PS2
  450. EXTERN int   mouse_pos_x;
  451. EXTERN int   mouse_pos_y;
  452. EXTERN BYTE      mouse_btn_status;
  453. EXTERN BYTE      START_POLLING_PS2;
  454. EXTERN BYTE      PS2_INIT_DONE;
  455. #endif
  456. #ifdef SUPPORT_16BIT_OSD
  457. EXTERN BYTE OSD_buffer_16bit;
  458. #endif
  459. //================================================
  460. // media flags, especially used for file playback
  461. EXTERN UINT32 file_media_flag;
  462. EXTERN UINT32 file_media_support;
  463. #ifdef CONTINUOUS_NUM_KEY_SELECT
  464. EXTERN BYTE ir_num1;
  465. EXTERN BYTE ir_num2;
  466. EXTERN BYTE ir_num3;
  467. EXTERN BYTE ir_num4;
  468. EXTERN BYTE ir_num_timer;
  469. EXTERN BYTE ir_num_state;
  470. #endif
  471. #ifdef SOLVE_VBR_SVCD_FOR_STARLITE
  472. EXTERN BYTE  SVCD_Bad_Disc;
  473. #endif
  474. #ifdef SHOW_SPECIAL_DISC_TYPE
  475. EXTERN BYTE read_disc_state;
  476. #endif
  477. #ifdef HDMI//Modifed by chenzhao on 2004-11-26 9:43   
  478. EXTERN UINT16 NewRTC;
  479. #endif
  480. #ifdef HDCP_CUSTOM//Modifed by chenzhao on 2004-12-1 11:36   
  481. EXTERN BYTE hdcp_mode;
  482. #endif
  483. EXTERN  BYTE    user_mute; //WSLEE for switching audio channel and mute mode 2005-01-14
  484. #endif/*__GLOBAL_H*/