osdutil.c
上传用户:caisangzi8
上传日期:2013-10-25
资源大小:15756k
文件大小:18k
源码类别:

DVD

开发平台:

C/C++

  1. #include "config.h"
  2. #include "regmap.h"
  3. #include "global.h"
  4. #include "func.h"
  5. #include "cfont.h"
  6. #include "epp.h"
  7. #include "macro.h"
  8. #include "user_init.h"
  9. #include "osd.h"
  10. #include "vfdfunc.h"
  11. #include "util.h"
  12. #include "func.h"
  13. #include "stdlib.h"
  14. #include "jpegeffect.h"
  15. //#define     OSDUTIL_DBG     1
  16. #ifdef SUPPORT_MIDI
  17. #include "fsmidi.h"
  18. #ifdef SUPPORT_MIDI_MENU_SEL
  19. #include "fsMidiUI.h"
  20. #endif
  21. #endif
  22. extern  BYTE bin2asc(BYTE pp);  /*jhuang 2000/11/27 reduce warning*/ 
  23. extern  void osd_init4(void);
  24. void    region_update_empty(BYTE ,BYTE ,BYTE);
  25. void    region_clear_arrow(BYTE,BYTE);
  26. void    region_update_item(BYTE ,BYTE,BYTE);
  27. #ifdef VIDEO_SETUP_NEW_GUI//zhaoyanhua add 2004-1-8 18:15
  28. extern int GetVideoSetValue(int id);
  29. #endif//VIDEO_SETUP_NEW_GUI
  30. #ifdef MIC_FUNCTION_KEY
  31. extern BYTE bFuncStep;//nono 20040107
  32. #endif//MIC_FUNCTION_KEY
  33. #include "osd_jpg_rotate.c" //Maoyong 2004.06.30
  34. //
  35. // show_level
  36. //
  37. void show_level(int id,INT8 level,BYTE total_level) 
  38. BYTE i;
  39. int pos;
  40.     PatternMode=id;
  41. if (id==Echo_Font_ID) {
  42. linebuf[0] = ' ';
  43. linebuf[1] = '[';
  44. pos = 2;
  45. for(i=pos;i<level+pos;i++) {
  46. linebuf[i] = N_longbar; //long bar 
  47. }
  48. for(i=level+pos;i<total_level-1+pos;i++) {
  49. linebuf[i] = N_shortbar; //short bar  
  50. }
  51. linebuf[total_level-1+pos] = 0;
  52. psprintf(RegionValStr[REGION1],"] %02d",level);
  53. strcat1(linebuf,RegionValStr[REGION1]);
  54. strcpy(RegionValStr[REGION1], linebuf);
  55. PrintOsdMsg(STR_OS_ECHO, REGION1, 1, 1);
  56. } else if (id==Mic_Font_ID) {
  57. linebuf[0] = ' ';
  58. linebuf[1] = '[';
  59. pos = 2;
  60. for(i=pos;i<level+pos;i++) {
  61. linebuf[i] = N_longbar; //long bar 
  62. }
  63. for(i=level+pos;i<total_level-1+pos;i++) {
  64. linebuf[i] = N_shortbar; //short bar  
  65. }
  66. linebuf[total_level-1+pos] = 0;
  67. psprintf(RegionValStr[REGION1],"] %02d",level);
  68. strcat1(linebuf,RegionValStr[REGION1]);
  69. strcpy(RegionValStr[REGION1], linebuf);
  70. #if defined(MIC_2CHANNEL)&&defined(MIC_FUNCTION_KEY)
  71. if(bFuncStep==1)
  72. PrintOsdMsg(STR_OS_MIC_VOL_1, REGION1, 1, 1);
  73. else
  74. PrintOsdMsg(STR_OS_MIC_VOL_2, REGION1, 1, 1);
  75. #else//MIC_2CHANNEL
  76. PrintOsdMsg(STR_OS_MIC_VOL, REGION1, 1, 1);
  77. #endif//MIC_2CHANNEL
  78. }
  79. /*        // jason ych mark it 2-9-30 15:36
  80. else if (id==Volume_Font_ID) {
  81. linebuf[0] = ' ';
  82. linebuf[1] = '[';
  83. pos = 2;
  84.   for(i=pos;i<level+pos;i++) {
  85.   linebuf[i] = N_longbar; //long bar 
  86.   }
  87.   
  88. for(i=level+pos;i<total_level-1+pos;i++) {
  89. linebuf[i] = N_shortbar; //short bar  
  90. }
  91.   linebuf[total_level-1+pos] = 0;
  92.   
  93. psprintf(RegionValStr[REGION1],"] %02d",level);
  94. strcat1(linebuf,RegionValStr[REGION1]);
  95.   strcpy(RegionValStr[REGION1], linebuf);
  96.   PrintOsdMsg(STR_OS_VOL, REGION1, 1, 1);
  97.   } 
  98. */
  99. #if defined(Ti3001_OSD_UI_1)||defined(Ti5026_OSD_UI_1)
  100. else if (id==Volume_Font_ID||id==VOL_DRC_ID||id==AMP_F_VOL_ID 
  101.         ||id==AMP_S_VOL_ID||id==AMP_C_VOL_ID||id==AMP_SW_VOL_ID)
  102. #else 
  103.         else if ( (id==Volume_Font_ID) 
  104.                 #ifdef CNTR_5SPK_VOLUME
  105.                 ||(id==VOL_FL_ID)||(id==VOL_FR_ID) ||(id==VOL_SL_ID) ||(id==VOL_SR_ID) ||(id==VOL_C_ID) ||(id==VOL_SW_ID) //Jeff 20031028
  106.                 #endif //CNTR_5SPK_VOLUME
  107.                 )
  108. #endif
  109. {
  110.         #ifdef CNTR_5SPK_VOLUME//wangfeng 2003-11-12 13:54
  111.         {
  112.             int i;
  113.             linebuf[0] = ' ';
  114.             pos = 2+5;
  115.             for (i=1; i<5; i++) {
  116.                 linebuf[i] = ' ';
  117.             }
  118.             if (id==VOL_FL_ID) {
  119.                 linebuf[2] = 'F';
  120.                 linebuf[4] = 'L';
  121.             } else if (id==VOL_FR_ID) {
  122.                 linebuf[2] = 'F';
  123.                 linebuf[4] = 'R';
  124.             } else if (id==VOL_SL_ID) {
  125.                 linebuf[2] = 'S';
  126.                 linebuf[4] = 'L';
  127.             } else if (id==VOL_SR_ID) {
  128.                 linebuf[2] = 'S';
  129.                 linebuf[4] = 'R';
  130.             } else if (id==VOL_C_ID) {
  131.                 linebuf[2] = 'C';
  132.             } else if (id==VOL_SW_ID) {
  133.                 linebuf[2] = 'S';
  134.                 linebuf[4] = 'W';
  135.             } else {
  136.                 linebuf[1] = 'M';
  137.                 linebuf[2] = 'A';
  138.                 linebuf[3] = 'I';
  139.                 linebuf[4] = 'N';
  140.             }
  141.         }
  142.         #elif defined(OSD_BMP_REGION1)
  143.             pos = 1;
  144.         #else
  145.     pos = 2;
  146.         #endif
  147.     //#ifndef CNTR_5SPK_VOLUME    
  148. #ifdef NEW_VOL_DISP_MODE
  149. linebuf[pos-2] = ':';
  150. linebuf[pos-1] = ' ';
  151. linebuf[pos] = 0;
  152. #else
  153.         #ifdef OSD_BMP_REGION1
  154.          linebuf[pos-1] = ' ';
  155.         #else
  156.         linebuf[pos-2] = ' ';
  157. linebuf[pos-1] = '[';
  158.         #endif
  159. for(i=pos;i<level+pos;i++) {
  160. linebuf[i] = N_longbar; //long bar 
  161. }
  162. for(i=level+pos;i<total_level-1+pos;i++) {
  163. linebuf[i] = N_shortbar; //short bar  
  164. }
  165. linebuf[total_level-1+pos] = 0;
  166. #endif //NEW_VOL_DISP_MODE
  167.     //#endif
  168. #ifdef Ti3001_OSD_UI_1
  169. if (id==Volume_Font_ID)
  170. psprintf(RegionValStr[REGION1],"] %02d DB",(level*4-60)); // MAX vol==0db and level=15
  171. else if(id==VOL_DRC_ID)
  172. psprintf(RegionValStr[REGION1],"] %02d DB",(level*2-36)); 
  173. else
  174. psprintf(RegionValStr[REGION1],"]%02dDB",level-10); 
  175. #elif defined(Ti5026_OSD_UI_1)
  176. if (id==Volume_Font_ID)
  177. psprintf(RegionValStr[REGION1],"] %02d DB",(level-10)*2); // MAX vol==0db and level=15
  178. if( (id==AMP_F_VOL_ID)||(id==AMP_S_VOL_ID)||(id==AMP_SW_VOL_ID)||(id==AMP_C_VOL_ID))
  179. psprintf(RegionValStr[REGION1],"] %02d DB",(level-10)*2); // MAX vol==0db and level=15
  180. else if(id==VOL_DRC_ID)
  181. psprintf(RegionValStr[REGION1],"] %02d DB",(level*2-36)); 
  182. else
  183. psprintf(RegionValStr[REGION1],"]%02dDB",level-10); 
  184. #else
  185. #ifdef NEW_VOL_DISP_MODE
  186.     if (id==VOL_FL_ID) {
  187.             psprintf(RegionValStr[REGION1],"FRONT_L VOL: %02d",level); 
  188.         } else if (id==VOL_FR_ID) {
  189.          psprintf(RegionValStr[REGION1],"FRONT_R VOL: %02d",level); 
  190.                
  191.             } else if (id==VOL_SL_ID) {
  192.                psprintf(RegionValStr[REGION1],"REAR_L VOL: %02d",level); 
  193.                 
  194.             } else if (id==VOL_SR_ID) {
  195.               
  196.               psprintf(RegionValStr[REGION1],"REAR_R VOL: %02d",level);
  197.             } else if (id==VOL_C_ID) {
  198.                 psprintf(RegionValStr[REGION1],"CENTER VOL: %02d",level);
  199.             } else if (id==VOL_SW_ID) { //Jeff 20031028
  200.                 psprintf(RegionValStr[REGION1],"SUBWOOFER VOL: %02d",level);
  201.             } else
  202.             psprintf(RegionValStr[REGION1],"MAIN VOL: %02d",level);
  203. #else
  204.     #ifdef OSD_BMP_REGION1
  205.                 psprintf(RegionValStr[REGION1]," %02d",level);
  206.         #else
  207. psprintf(RegionValStr[REGION1],"] %02d",level);
  208. #endif
  209. #endif
  210. #endif
  211. #ifndef NEW_VOL_DISP_MODE//CNTR_5SPK_VOLUME
  212. strcat1(linebuf,RegionValStr[REGION1]);
  213. strcpy(RegionValStr[REGION1], linebuf);
  214. #endif
  215. #if defined(Ti3001_OSD_UI_1)||defined(Ti5026_OSD_UI_1)
  216. if (id==Volume_Font_ID)
  217. PrintOsdMsg(STR_OS_AMP_MAINVOLUME, REGION1, 2, 1); // jason change t=2 2-9-30 15:12
  218. else  if(id==VOL_DRC_ID)
  219. PrintOsdMsg(STR_OS_AMP_DYNAMICRANGE, REGION1, 2, 1);
  220. else  if(id==AMP_F_VOL_ID)
  221. PrintOsdMsg(STR_OS_AMP_FSPK, REGION1, 2, 1);
  222. else  if(id==AMP_S_VOL_ID)
  223. PrintOsdMsg(STR_OS_AMP_SSPK, REGION1, 2, 1);
  224. else  if(id==AMP_C_VOL_ID)
  225. PrintOsdMsg(STR_OS_AMP_CSPK, REGION1, 2, 1);
  226. else  if(id==AMP_SW_VOL_ID)
  227. PrintOsdMsg(STR_OS_AMP_SUBWOOFER, REGION1, 2, 1);                                                                         
  228. #else
  229. //avoid twinkling when adjust volume, wangfeng 2003-09-29 14:01
  230. #ifdef NEW_VOL_DISP_MODE
  231. PrintOsdMsg(STR_OS_SPACE, REGION1, 2, 1);
  232. #else
  233. PrintOsdMsg(STR_OS_VOL, REGION1, 1, 1);
  234. #endif
  235. #endif
  236. }  else if (id==AudKey_Font_ID) {
  237. linebuf[0] = ' ';
  238. linebuf[1] = '[';
  239. linebuf[2] = N_dkey; //b 
  240. pos = 2;
  241. for(i=pos+1;i<pos+6;i++) {
  242. linebuf[i] = N_dot; //.
  243. }
  244. linebuf[pos+6] = N_rkey; //key reset
  245. for(i=pos+7;i<pos+12;i++) {
  246. linebuf[i] = N_dot; //.
  247. }
  248. linebuf[pos+12] = N_ukey; //#
  249. linebuf[pos+level+6] = N_music; //music key
  250. linebuf[total_level+pos] = 0;
  251. psprintf(RegionValStr[REGION1],"] %02d",level);
  252. strcat1(linebuf,RegionValStr[REGION1]);
  253. strcpy(RegionValStr[REGION1], linebuf);
  254. PrintOsdMsg(STR_OS_KEY, REGION1, 1, 1);
  255. } else if (id==Score_Font_ID) { //Jeff 20020416
  256. linebuf[0] = ' ';
  257. linebuf[1] = '[';
  258. pos = 2;
  259. for(i=pos;i<(level/10+pos);i++) {
  260. linebuf[i] = N_longbar; //long bar 
  261. }
  262. for(i=(level/10+pos);i<total_level-1+pos;i++) {
  263. linebuf[i] = N_shortbar; //short bar  
  264. }
  265. linebuf[total_level-1+pos] = 0;
  266. #ifdef MIDI_SCORE_TEST
  267.                 extern BYTE gb_showScore;
  268.                 if (gb_showScore)
  269.                 {
  270.                     psprintf(RegionValStr[REGION1],"] %d",level);
  271.                     strcat1(linebuf,RegionValStr[REGION1]);
  272.                     strcpy(RegionValStr[REGION1], linebuf);
  273.                     PrintOsdMsg(STR_OS_SCORE, REGION1, 0, 1);
  274.                 }else    
  275. #endif        
  276.                 {
  277. psprintf(RegionValStr[REGION2],"] %d",level);
  278. strcat1(linebuf,RegionValStr[REGION2]);
  279. strcpy(RegionValStr[REGION2], linebuf);
  280. PrintOsdMsg(STR_OS_SCORE, REGION2, 0, 1);
  281. }
  282. }//else if (id==Score_Font_ID) { //Jeff 20020416
  283. /* freyman marked 2004-3-23 15:10 for no use
  284. #ifdef SVA_SAMPLE
  285. else if (id==AMP_VOL_ID) {
  286. linebuf[0] = ' ';
  287. linebuf[1] = '[';
  288. pos = 2;
  289. for(i=pos;i<level+pos;i++) {
  290. linebuf[i] = N_longbar; //long bar 
  291. }
  292. for(i=level+pos;i<total_level-1+pos;i++) {
  293. linebuf[i] = N_shortbar; //short bar  
  294. }
  295. linebuf[total_level-1+pos] = 0;
  296. psprintf(RegionValStr[REGION1+3],"] %02d",level);
  297. strcat1(linebuf,RegionValStr[REGION1+3]);
  298. strcpy(RegionValStr[REGION1+3], linebuf);
  299. PrintOsdMsg(STR_OS_AMPVOL, REGION1+3, 0, 1);
  300. //PrintOsdMsg(STR_OS_VOL, REGION1+3, 0, 1);
  301. }
  302. #endif*/
  303. #ifdef VIDEO_SETUP_NEW_GUI//zhaoyanhua add 2004-1-8 13:59
  304. else if((id == VIDEO_BIGHT_ID) ||
  305. (id == VIDEO_CONTRAST_ID) ||
  306. (id == VIDEO_HUE_ID) ||
  307. (id == VIDEO_SATURATION_ID)
  308. #ifdef DIP_CFG_ENABLE
  309. ||(id == VIDEO_DEINTERLACE_ID)
  310. #endif//#ifdef DIP_CFG_ENABLE
  311. {
  312. //only SETUP valid.
  313. if(!(full_scrn & SETUP))
  314. return;
  315. int region = 0;//SETUP use reigon 0
  316. BYTE TempStr[20];
  317. int iValue = 0;
  318. int str_id = 0;
  319. //printf("#### ----AAAAAAAAAAAAAAAAAAa  id :%d -n",id);
  320. //linebuf[0] = ' ';
  321. linebuf[0] = '[';
  322. pos = 1;
  323. for(i=pos;i<level+pos;i++) 
  324. {
  325. linebuf[i] = N_longbar; //long bar 
  326. }
  327. for(i=level+pos;i<total_level-1+pos;i++) 
  328. {
  329. linebuf[i] = N_shortbar; //short bar  
  330. }
  331. linebuf[total_level-1+pos] = 0;
  332. switch(id)
  333. {
  334.     case VIDEO_BIGHT_ID:
  335.         str_id = STR_OS_BRIGHTNESS;
  336.         break;
  337.     case VIDEO_CONTRAST_ID:
  338.         str_id = STR_OS_CONTRAST;
  339.         break;
  340.     case VIDEO_HUE_ID:
  341.         str_id = STR_OS_HUE;
  342.         break;
  343.     case VIDEO_SATURATION_ID:
  344.         str_id = STR_OS_SATURATION;
  345.         break;
  346. #ifdef  DIP_CFG_ENABLE     
  347.     case VIDEO_DEINTERLACE_ID:
  348.         str_id = STR_OS_DEINTLC;
  349.         break;
  350. #endif//DIP_CFG_ENABLE             
  351.         default: break;
  352.     }
  353. //get video value.
  354. psprintf(RegionValStr[region],"] %02d",GetVideoSetValue(str_id));
  355. strcat1(linebuf,RegionValStr[region]);
  356. strcpy(TempStr, linebuf);
  357. //get video string
  358. strcpy(linebuf,_OsdMessegeFont1[osd_font_mode][str_id]);
  359. strcat1(linebuf, TempStr);
  360. //linebuf value will be shown in SETUP OSD in setup_ShowVideoGUI (setup_tab_ui.c)
  361. }
  362. #endif//VIDEO_SETUP_NEW_GUI
  363. #if defined(Ti3001_OSD_UI_1)||defined(Ti5026_OSD_UI_1)
  364. else if(id==VOL_TREBLE_ID||id==VOL_BASS_ID)
  365. {
  366. linebuf[0] = ' ';
  367. linebuf[1] = '[';
  368. pos = 2;
  369. for(i=pos;i<level/2+pos;i++) {      //clead 20020911
  370. linebuf[i] = N_shortbar; //short bar 
  371. }
  372. linebuf[i] = N_longbar; //long bar 
  373. for(i=level/2+pos+1;i<total_level/2+pos;i++) {      //clead 20020911
  374. linebuf[i] = N_shortbar; //short bar  
  375. }
  376. linebuf[total_level/2-1+pos] = 0;
  377. psprintf(RegionValStr[REGION1],"] %02d DB",level-18);
  378. strcat1(linebuf,RegionValStr[REGION1]);
  379. strcpy(RegionValStr[REGION1], linebuf);
  380. if(id==VOL_BASS_ID)
  381. PrintOsdMsg(STR_OS_AMP_BASS, REGION1, 2, 1);
  382. else
  383. PrintOsdMsg(STR_OS_AMP_TREMBLE, REGION1, 2, 1);
  384. }
  385. else if(id==AMP_F_BAL_ID||id==AMP_S_BAL_ID)
  386.     {
  387.         //linebuf[0] = ' ';
  388.         //linebuf[1] = '[';
  389.         linebuf[0] = '[';
  390.         pos = 1;  //2
  391.         for(i=pos;i<total_level+pos-1;i++) 
  392. linebuf[i] = N_shortbar; //short bar  
  393.         if(level >total_level/2)
  394.         {
  395. for(i=pos+(total_level/2);i<=level+pos;i++) 
  396. linebuf[i] = N_longbar; //long bar 
  397. }   
  398.         else
  399.         {
  400. for(i=level+pos;i<=total_level/2+pos;i++) 
  401. linebuf[i] = N_longbar; //short bar  
  402.         }
  403. linebuf[total_level-1+pos] = 0;
  404. psprintf(RegionValStr[REGION1],"]%02dDB",level-10);
  405. strcat1(linebuf,RegionValStr[REGION1]);
  406. strcpy(RegionValStr[REGION1], linebuf);
  407. if(id==AMP_F_BAL_ID)
  408. PrintOsdMsg(STR_OS_AMP_FSPK_BALANCE, REGION1, 2, 1); 
  409. else
  410. PrintOsdMsg(STR_OS_AMP_SSPK_BALANCE, REGION1, 2, 1); 
  411.     }
  412.     
  413. #endif
  414. #ifdef BRIGHTNESS_COLOR_KEY
  415. else if(id==BRIGHTNESS_PLUS_ID)
  416. {
  417. BYTE i;                                                                         
  418.                                                                                 
  419.      linebuf[0] = '[';                                                    
  420.                                                                            
  421.         for(i=1;i<=level;i++)                                                   
  422.   linebuf[i] = N_longbar;                                                  
  423.      for(i=level+1;i<=total_level;i++)                                          
  424.        linebuf[i] = N_shortbar;                                                 
  425.                                                                                 
  426.         linebuf[total_level+1] = 0;                                             
  427.                                                                            
  428.      psprintf(RegionValStr[REGION1],"]%d",level);                               
  429.                                                                                 
  430.      strcat1(linebuf,RegionValStr[REGION1]);                                    
  431.                                                                                 
  432.      strcpy(RegionValStr[REGION1], linebuf);                                    
  433.                                                                                 
  434.      PrintOsdMsg(STR_OS_BRIGHTNESS, REGION1, 6, 1); //10 seconds to close osd   
  435. }
  436. else if(id==COLOR_PLUS_ID)
  437. {
  438. BYTE i;                                                                     
  439.                                                                             
  440.      linebuf[0] = '[';                                                
  441.                                                                        
  442.         for(i=1;i<=total_level;i++)                                         
  443.   linebuf[i] = N_shortbar;                                        
  444. linebuf[level] = N_longbar;                                            
  445.      linebuf[total_level+1] = 0;                                            
  446. if(level > 8)
  447.      psprintf(RegionValStr[REGION1],"]+%d",level-8);
  448.      else if (level < 8) 
  449.      psprintf(RegionValStr[REGION1],"]-%d",8-level);
  450.      else 
  451.      psprintf(RegionValStr[REGION1],"]%d",0);
  452.                                                                             
  453.      strcat1(linebuf,RegionValStr[REGION1]);                                
  454.                                                                             
  455.      strcpy(RegionValStr[REGION1], linebuf);                                
  456.                                                                             
  457.      PrintOsdMsg(STR_OS_COLOR, REGION1, 6, 1); //10 seconds to close osd    
  458. }
  459. #endif //end #ifdef BRIGHTNESS_COLOR_KEY
  460. #ifdef SUPPORT_FUNCTION_MENU
  461. else if(id == BRIGHTNESS_PLUS_ID)
  462. {
  463. //if(full_scrn&SETUP_PLUS)
  464.         {
  465.         BYTE i;
  466.         
  467.         #ifdef DEBUG_FUNCTION_MENU
  468.    printf("show brightness,:%dn",level);
  469.    #endif
  470.    
  471.    linebuf[0] = '[';    
  472.    for(i=1;i<=level;i++)
  473.           linebuf[i] = N_longbar;
  474.         
  475.         for(i=level+1;i<=total_level;i++)
  476.           linebuf[i] = N_shortbar;
  477.         
  478.         linebuf[total_level+1] = 0;
  479.         
  480.         if(level<7)
  481.           psprintf(RegionValStr[REGION1],"]-%d",(total_level/2-level));
  482.         else
  483.           psprintf(RegionValStr[REGION1],"]%d",(level-total_level/2));
  484.         
  485.         strcat1(linebuf,RegionValStr[REGION1]);   
  486.         
  487.         strcpy(RegionValStr[REGION1], linebuf);
  488.         PrintOsdMsg(STR_OS_BRIGHTNESS, REGION1, 5, 1); //10 seconds to close osd   
  489.      }
  490. }
  491. #endif //end #ifdef SUPPORT_FUNCTION_MENU
  492. /*
  493. switch(id)
  494. {    
  495. case  Echo_Font_ID:
  496. case  Volume_Font_ID:
  497. if(id==Echo_Font_ID) {
  498. if (osd_font_mode==1) { //Chinese
  499. strcpy(linebuf,OS_ECHO);
  500. strcat1(linebuf," [");
  501. } else {
  502. strcpy(linebuf,"ECHO [" );        
  503. }
  504. } else {
  505. if(osd_font_mode==1) {
  506. strcpy(linebuf,OS_VOL);
  507. strcat1(linebuf," [");
  508. } else 
  509. strcpy(linebuf,"VOL [");
  510. }
  511.   pos = strlen(linebuf);
  512.   
  513. for(i=pos;i<level+pos;i++) {
  514. linebuf[i] = N_longbar; //long bar 
  515. }
  516.   for(i=level+pos;i<total_level-1+pos;i++) {
  517.   linebuf[i] = N_shortbar; //short bar  
  518.   }
  519.   
  520. linebuf[total_level-1+pos] = 0;  
  521. break;
  522.   case  AudKey_Font_ID:
  523.   if(osd_font_mode==1) {
  524.   strcpy(linebuf,OS_KEY);
  525.   strcat1(linebuf," [");
  526.   } else
  527.   strcpy(linebuf,"KEY [");
  528.   
  529. pos = strlen(linebuf);
  530.   linebuf[pos] = N_dkey; //b 
  531.   
  532. for(i=pos+1;i<pos+6;i++) {
  533. linebuf[i] = N_dot; //.
  534. }
  535.   linebuf[pos+6] = N_rkey; //key reset
  536.   
  537.                         for(i=pos+7;i<pos+12;i++) {
  538. linebuf[i] = N_dot; //.
  539.                         }
  540.   linebuf[pos+12] = N_ukey; //#
  541.   linebuf[pos+level+6] = N_music; //music key
  542.   
  543. linebuf[total_level+pos] = 0;
  544. break;
  545. }
  546.   psprintf(RegionValStr[REGION1],"] %02d",level);
  547.   strcat1(linebuf,RegionValStr[REGION1]);
  548.   
  549. strcpy(RegionValStr[REGION1], linebuf);
  550. PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1); 
  551. */
  552. }