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

DVD

开发平台:

C/C++

  1. /*
  2. ** FILE
  3. ** vfd.c
  4. **
  5. ** DESCRIPTION
  6. ** handle VFD functions.
  7. */
  8. #include "user_init.h"
  9. #include "config.h"
  10. #include "global.h"
  11. #include "memmap.h"
  12. #include "sio.h"
  13. #include "vfdfunc.h"
  14. #include "ircode.h"
  15. #include "ircmd.h"
  16. #include "func.h"
  17. #include "osd.h"
  18. #include "avd.h"
  19. #include "gpio.h"
  20. #include "iop.h"
  21. #include "cd.h"
  22. #ifdef USE_VFDPORT_TRANDATA         //add by linrc 2004-3-24 21:56 for minidvd receive
  23.     #include "8200_51MCU.c"     //program introduce in the /IR_VFD/8200_51MCU.c file
  24. #endif    
  25. UINT32 get_rtc_val();
  26. //#ifdef P9c9_Panel //jacky 2003/10/23 07:35PM
  27. #ifdef USE_VFD_CONTROL_P9C9_LED_ON_OFF      //gerry,2004-1-30 18:11
  28. int led_flash_interval=0;
  29. int led_flash_time=0;
  30. #endif 
  31. #ifdef  BBK_DVD   //fengjl add  4-2-3 20:22
  32. extern tv_output_vfd_time;  
  33. #endif
  34. static UINT16  counter, index;
  35. BYTE    vfd_state = 0;
  36. extern UINT32 save_srn_start_t;
  37. #include "vfd_mod.c"
  38. #ifdef HT1621_PANNEL//nono 4-5-9 23:56
  39.     const BYTE vfd_keycode[]={};
  40. #endif
  41. #ifdef NEW_JPEG
  42.     extern BYTE bJpgVFDPause;
  43. #else
  44.     #ifndef SHARE_NAV_VAR
  45.         extern BYTE bJpgVFDPause; //Jeff 20020523
  46.     #else
  47.         #define bJpgVFDPause (pFsJpeg->bJpgVFDPause)
  48.     #endif
  49. #endif
  50. extern UINT16 Is_JPEG_SlideMode(void);
  51. #if defined(SLEEP_WHEN_POWER_ON)&&defined(TONIC_DVD)//20040206
  52. extern int power_on_flag; //zhg 2004-1-4 15:46
  53. #endif
  54. #ifdef EASTWIN
  55. UINT8 bINVERTER_POWER = 0, bEARPHONE_IN = 0,bAMP_IS_ON = 0,bLOWBAT_DISP = 0,bPOWER_LED_FLASH = 0;
  56. UINT8 bIS_LOWBAT = 0, bPOWER_ON_MUTE_EXE = 0; // Kevin Sep 10,04 
  57. #endif
  58. #ifdef NEXT_FORWARD_IN_A_KEY //gerry move it here,3-10-29 17:50
  59. BYTE key_data_flag=0;
  60. #endif
  61. //#define     VFD_DBG     1
  62. //#define VFD_KEY_TEST
  63. #ifdef TEST_VFD //shawn add at 910131
  64. UINT8   SC_1 = 15;
  65. UINT8   COMMAND_MODE = 2;
  66. void update_vfd_dot_inc(void) //shawn add at 910131
  67. {
  68. if(SC_1 < 40)
  69. SC_1++;
  70. printf("n SC_1(BYTE_INC)=%dnn", SC_1);
  71. #ifdef VFD2OSD_DBG_TXD
  72. psprintf(RegionValStr[REGION1], "SC_1 BYTE_INC: %d", SC_1);
  73. PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
  74. #endif
  75. }
  76. void update_vfd_dot_dec(void) //shawn add at 910131
  77. {
  78. UINT8   a;
  79. for(a = SC_1; a <= 25; a++)
  80. vfd_mem[a] = 0x00;
  81. if(SC_1 > 0)
  82. SC_1--;
  83. printf("n SC_1(BYTE_DEC)=%dnn", SC_1);
  84. #ifdef VFD2OSD_DBG_TXD //nono 2-8-9 14:39
  85. psprintf(RegionValStr[REGION1], "SC_1 BYTE_DEC: %d", SC_1);
  86. PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
  87. #endif
  88. }
  89. void update_vfd_mod_inc(void) //shawn add at 910131
  90. {
  91. //counter++;
  92. if(COMMAND_MODE < 16)
  93. COMMAND_MODE++;
  94. printf("n COMMAND_MODE(INC)=%dnn", COMMAND_MODE);
  95. #ifdef VFD2OSD_DBG_TXD //nono 2-8-9 14:40
  96. psprintf(RegionValStr[REGION3], "COMMAND_MODE INC: %d", COMMAND_MODE);
  97. PrintOsdMsg(STR_OS_SPACE, REGION3, 1, 1);
  98. #endif
  99. reset_vfd();
  100. }
  101. void update_vfd_mod_dec(void) //shawn add at 910131
  102. {
  103. //counter--;
  104. if(COMMAND_MODE > 0)
  105. COMMAND_MODE--;
  106. printf("n COMMAND_MODE(DEC)=%dnn", COMMAND_MODE);
  107. #ifdef VFD2OSD_DBG_TXD //nono 2-8-9 14:40
  108. psprintf(RegionValStr[REGION1], "COMMAND_MODE DEC: %d", COMMAND_MODE);
  109. PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
  110. #endif
  111. reset_vfd();
  112. }
  113. void update_vfd_inc(void) //shawn modify at 910131
  114. {
  115. counter++;
  116. }
  117. void update_vfd_dec(void) //shawn modify at 910131
  118. {
  119. counter--;
  120. }
  121. #endif //TEST_VFD
  122. #ifdef SHOW_VOL_ON_VFD //huziqin 2004-4-29.if setting channel volume.
  123. extern BYTE subvol_time_out;
  124. #endif
  125. void update_vfd_data(void)
  126. {
  127. #if defined(SUPPORT_VFD)&&defined(SUPPORT_VFD_PANEL)//nono 20031124//lijd 2004-12-4 11:14
  128. #ifdef VFD_SHOW_LOAD_TOGGLE//nono 2003-10-17 18:23
  129.     static BYTE load_toggle_flag;
  130. #endif
  131. #ifdef SHOW_VOL_ON_VFD
  132. if(subvol_time_out)
  133.     {
  134.         show_amp_vol_on_vfd();
  135.         return;
  136.     }
  137. #endif
  138. #ifdef TEST_VFD
  139. UINT8   by, bit, i; //,j;            //shawn modify at 910131
  140. index++;
  141. if(index % 10)
  142. return;
  143. by = counter / 8;
  144. bit = counter % 8;
  145. #ifdef YADAI_PT6554_PANNEL
  146.      for(i = 0; i < SC_1; i++)
  147.      {
  148.      if((i==5)||(i==11)||(i==17)||(i==23))
  149.      {
  150.      vfd_mem[i] = 0x00;
  151.      }
  152.      else
  153.      {
  154. vfd_mem[i] = 0xff;
  155.      }
  156.      }
  157. #else
  158.     for(i = 0; i < SC_1; i++)
  159. vfd_mem[i] = 0xff;
  160. #endif
  161. vfd_mem[by] = ~(0x01 << bit);
  162. //vfd_set_str(STR_OS_CLOSE,"");
  163. printf("BYTE:%d BIT:%dn", by, bit);
  164. //psprintf(linebuf,"BYTE:%d BIT:%d",by,bit);
  165. #ifdef VFD2OSD_DBG_TXD //nono 2-8-9 14:40
  166. psprintf(RegionValStr[REGION1], "BYTE:%d BIT:%d", by, bit);
  167. PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
  168. #endif
  169. //ShowOsdMsg(linebuf,0);
  170. return;
  171. #endif
  172. #ifdef BBK_DV961_DVD//zhaoyanhua add to show VFD Message for VGA/INTERLACE/P_SCAN  3-11-27 9:50
  173.     if(tv_output_vfd_time != 0)
  174.     {
  175.         tv_output_vfd_time--; 
  176.         switch(tv_out_id)
  177.         {
  178.             case INTERLACE:
  179.                 vfd_set_str(0,"1-    ");
  180.                 break;
  181.             case PC_VGA:
  182.                 vfd_set_str(0,"2-    ");
  183.                 break;
  184.             case P_SCAN:
  185.                 vfd_set_str(0,"3-    ");
  186.                 break;
  187.         
  188.         }
  189.         
  190.         //turn off ":"(min)":"(sec)
  191.         vfd_reset_dot(VFD_DOT_MINSEC);
  192. vfd_reset_dot(VFD_DOT_MIN);
  193.         return;
  194.     }
  195. #endif //#ifdef BBK_DV961_DVD
  196. if(play_state != VCD_STATE_TUNER)
  197. {
  198. //===========================================
  199. #ifdef HUAJIA_DVD
  200. #define INTV_TM 20
  201. #else
  202. #define INTV_TM 10
  203. #endif
  204. counter++;
  205. if(adv_search_time > 0)
  206. {
  207. if(counter % (INTV_TM / adv_search_time))
  208. return;
  209. }
  210. else if(adv_search_time < 0)
  211. {
  212. if(counter % (INTV_TM / (-adv_search_time)))
  213. return;
  214. }
  215. else if(video_slow)
  216. {
  217. {
  218. UINT8   rate = (UINT8) video_slow;
  219. if(counter % (INTV_TM * rate))
  220. return;
  221. }
  222. }
  223. else if(play_state != VCD_STATE_CLOSE)
  224. {
  225. if(counter % INTV_TM)
  226. return;
  227. }
  228. else if(counter % (INTV_TM / 2))
  229. return;
  230. counter = 0;
  231. }
  232. /********************************************************/
  233. // try the function by chichang 2001 6/5
  234. /********************************************************/
  235. /*
  236. vfd_mem[36]=0xff;
  237. vfd_mem[37]=0xff;
  238.   vfd_set_dot(VFD_DOT_PLAY);
  239.   vfd_set_dot(vfd_disc[index]);
  240.   //vfd_set_str(0,"WELCOME");
  241.   
  242.   if(index>=11)
  243.   {
  244.   index=0;
  245.   }else
  246.   index++;
  247.   vfd_reset_dot(vfd_disc[index]);
  248. */
  249. //===========================================================//
  250. // process the vfd display of volume and tone   2002-07-03 freyman
  251. /************************************************************/
  252. #ifdef VFD_VOLUME_DISPLAY
  253. //  if(vfd_mode_state != DVD_NORMAL_MODE)
  254. if(timeout_vfd != 0)
  255. return;
  256. #endif
  257. /************************************************************/
  258. // start the vfd program
  259. /************************************************************/
  260. #ifdef USE_VFD_LED_AS_IO //xyy add for Oritron
  261. write_vfd_led(0x00);
  262. #endif
  263. #ifdef VOL_LED
  264. write_vfd_led(0xff);
  265. #endif
  266. #ifdef GBM_USE_VFD_CONTROL_LED //GERRY,2004/2/12 04:14