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

DVD

开发平台:

C/C++

  1. //
  2. // fsmidi.h
  3. //
  4. // notes:
  5. //
  6. // history:
  7. //  2003/04/09  : create(Jeff)
  8. //
  9. #ifndef __FS_MIDI_H
  10. #define __FS_MIDI_H
  11. #include "memmap.h"
  12. #include "memmap0.h"
  13. #include "user_init.h"
  14. #include "jpegeffect.h"
  15. //*************************************************************************
  16. //*****                  BEGIN :       The following is main function define                    ******
  17. //*************************************************************************
  18. //***********************************************
  19. //**Load Midi Multi Index Menu Font
  20. //**define : the font base size 
  21. //**define : download the 30*30 font fot the menu font
  22. //***********************************************
  23. #define MIDI_MENU_FONT
  24. //***********************************************
  25. //**extend the second region for variable index
  26. //***********************************************
  27. #define SUPPORT_REGION2_DOT
  28. //*************************************************************************
  29. //***                                  END   :    main function define                                      ****
  30. //*************************************************************************
  31. //added by dtb in 200307022
  32. #ifdef EXTERN_MIDI_HERE
  33.     #define EXTERN_FSMIDI
  34. #else
  35.     #define EXTERN_FSMIDI extern 
  36. #endif
  37. //xlluo 04-9-2
  38. #define SUPPORT_DISPQXQ_STOP
  39. #define SUPPORT_ONTIME_CAPTIONCLEAR
  40. #ifdef SUPPORT_ONTIME_CAPTIONCLEAR
  41. #define CLEAR_DELAYTIMES    (90000<<3)
  42. #define CLEAR_DELAYTIMES_MP3    (90000<<3)
  43. EXTERN_FSMIDI BYTE bIsCaptionDisp;
  44. #endif
  45. //xlluo add 060514
  46. //forbid ir control when read mp3
  47. //for pure music play
  48. EXTERN_FSMIDI BYTE bIsPureMusic;
  49. EXTERN_FSMIDI int cCntClsMusicTitle;
  50. extern void ClsPureMUCaption(void);
  51. //xlluo add for 8202 to read from cardreader midi file
  52. #ifdef SPHE8202_CARD_STORAGE
  53. #define SUPPORT_CARDREADER_TEST
  54. #endif//SPHE8202_CARD_STORAGE
  55. #ifdef SUPPORT_CARDREADER_TEST
  56. EXTERN_FSMIDI BYTE    bIsCardFile;//xlluo add only for test 04-1-21
  57. #endif//SUPPORT_CARDREADER_TEST
  58. // for the midi state for midi player
  59. enum {
  60.     MIDI_STATE_INIT=0,
  61.     MIDI_STATE_PREPARSE,
  62.     MIDI_STATE_PAYLOAD,
  63.     MIDI_STATE_DONE, 
  64.     MIDI_STATE_PLAY_ONLYVIDEO,
  65. };
  66. // recording the location and size of the fs9660 file
  67. typedef struct
  68. {
  69.     UINT32  loc;    // mmssff 
  70.     UINT32  size;   // in Bytes
  71. } PLF_REC;
  72. //midi module variables for external reference
  73. extern UINT32   iByteRemain;
  74. extern UINT32   iMidiPos;
  75. extern BYTE     *pMidi;
  76. extern PLF_REC  *melody, *rhythm;           //melody[128], rhythm[47]
  77. extern PLF_REC  midiMovie[10]; //midiMovie[10]
  78. extern PLF_REC  allPLF;
  79. #ifdef SUPPORT_MIDI_VOCAL
  80. EXTERN_FSMIDI BYTE      bIsMp3LyricSyn;
  81. EXTERN_FSMIDI PLF_REC   *pMidiVocal; //Jeff 20031015
  82. #endif
  83. EXTERN_FSMIDI UINT32    midi_timenow,midi_polling_time;
  84. EXTERN_FSMIDI UINT8     Midi_pause_flag;
  85. EXTERN_FSMIDI BYTE      midiState;
  86. //xlluo add for disable the irinput when load disk
  87. //will crash                                                            //04-11-23
  88. EXTERN_FSMIDI BYTE      bHoldInput;
  89. //**********************************************************************
  90. //******define the interface buffer between the MIDI RISC and MIDI DSP
  91. //**********************************************************************
  92. #define MIDIDSP_INTERFACE_SIZE ((AUDSIZE)-12)
  93. #define MIDIDSP_INTERFACE_BUFFER_ADDR   (SDRAM_BASE + A_AUDYA*1024 + 12*1024)   //put .mid file content, with AUDYA-offset 12KBytes
  94. //**********************************************************************************
  95. //****** define the read buffer on reading the midi file and converting the format1 into format0 
  96. //****** Use the JPEG Buffer as the temporary buffer
  97. //**********************************************************************************
  98. #define MIDIREAD_BUFFER                 (SDRAM_BASE + 1024*(JPEG_YA))
  99. #define MIDIREAD_BUFFER_SIZE            (1024*(JPEG_CDBUF_SIZE))
  100. #ifdef SUPPORT_OSDLYRIC
  101. //define Menu&Lyric Region X and Y
  102. #define MENU_REGION_X   (20)
  103. #define MENU_REGION_Y   (60)
  104. #define LYRIC_REGION_X  (20)
  105. #define LYRIC_REGION_Y  (180)
  106. //define the font base NO. 0: the Lyric font  (40*48)
  107. //                                    1: the Menu font (30*30)
  108. #define MIDI_LYRIC_FONTDEBASE (0)
  109. #define MIDI_MENU_FONTDEBASE (1)
  110. //define the Lyric font Para for OSD
  111. #define OTHER_FONT_WIDTH                (20)
  112. #define LYRIC_FONT_HIGHT                (40)
  113. #define LYRIC_FONT_WIDTH                (48)
  114. #define LYRIC_FONT_MARGIN               (2)
  115. #define LYRIC_ABC_WIDTH                 (30)
  116. #define LYRIC_NUMFONT_WIDTH             (30)
  117. #define LYRIC_ABC_CAP_WIDTH             (28)
  118. #define MIDI_LYRIC_REGION               (640)
  119. //define these parameter including the OSD region partition
  120. #ifdef SUPPORT_REGION2_DOT
  121. #define MIDI_LYRIC_HEIGHT               (140-50)
  122. #define MIDI_MENU_REGION                (640)
  123. #define MIDI_MENU_HEIGHT                (190+50)
  124. #define LYRIC_YY_LINE0                  (0) 
  125. #define LYRIC_YY_LINE1                  (LYRIC_YY_LINE0+LYRIC_FONT_HIGHT+4)
  126. #define DISP_DOT_REGION                 (REGION2)
  127. #define DISP_DOT_XPOS                   (20)
  128. #define DISP_DOT_LINE                   (200)
  129. #define DISP_LYRIC_REGION               (REGION3)
  130. #else
  131. #define MIDI_LYRIC_HEIGHT               (140)
  132. #define MIDI_MENU_REGION                (512)
  133. #define MIDI_MENU_HEIGHT                (190)
  134. #define LYRIC_YY_LINE0                  (4+LYRIC_FONT_HIGHT)
  135. #define LYRIC_YY_LINE1                  (LYRIC_YY_LINE0+LYRIC_FONT_HIGHT+4)
  136. #define DISP_DOT_REGION                 (REGION3)
  137. #define DISP_DOT_LINE                   (0)
  138. #define DISP_LYRIC_REGION               (REGION3)
  139. #endif
  140. #define DISP_CAPTION_REGION             (REGION2)
  141. //define midi lyric osd colour table
  142. //----------------------lyric colour--------------------
  143. #define LYRIC_INIT_COLOUR                 2         //white
  144. #define MAN_REV_COLOUR                       6          //blue
  145. #define WOMAN_REV_COLOUR                10        //red
  146. #define CHROUS_REV_COLOUR               8           //green
  147. //----------------------lyric colour end-----------------
  148. #define TITLE_COLOUR                    10
  149. #define FONT_FIGURE_COLOUR              11
  150. #define FONT_FIGURE_REV_COLOUR          2
  151. #define FONT_BACKGROUND_COLOUR          0
  152. #define DOT_CUE_COLOUR                  2
  153. #define DOT_CUE_REV_COLOUR              10
  154. //xlluo add for gray back on region0
  155. #define SUPPORT_REPREGIONCOL
  156. #ifdef SUPPORT_REPREGIONCOL
  157. void osd_updataRegion_Color(BYTE R,BYTE G,BYTE B,BYTE A,BYTE code,BYTE regNum);
  158. #endif
  159. //the following is the memory allocation for the Midi Player
  160. //should be 4N for memory allocation
  161. #define MAXLYRICDATALEN                 (5120)
  162. //define the max ff05 event number
  163. #define MAXLYRICEVENT                   (2500)
  164. //sizeof(LyricPos)
  165. #define LYRIC_DATA_BUFFER_SIZE          (((MAXLYRICEVENT)*(sizeof(LyricPos)))+(MAXLYRICDATALEN)+1024)               //1000*20+2048+1024
  166. #define MIDI_INDEX_BUFFER_SIZE          ((500)<<(10))
  167. #ifdef SUPPORT_MIDI_VOCAL
  168. #define MIDI_MAX_MP3_FILES              (1)
  169. #else // for other schemes in future
  170. #define MIDI_MAX_MP3_FILES              (1)
  171. #endif
  172. //#define MIDI_VOCAL_INDEX_ADDR           (SDRAM_BASE+0x800000) //store vocal file, Jeff 20031015
  173. #define MIDI_VOCAL_INDEX_ADDR           (SDRAM_BASE+(A_PCMYA+PCMSIZE)*1024) //2004/01/04 yltseng
  174. //Jeff 20040916
  175. //#define MIDI_VOCAL_INDEX_ADDR           (SDRAM_BASE+0x8c0000) //store vocal file, Jeff 20031015
  176. //#define MIDI_VOCAL_INDEX_ADDR           (SDRAM_BASE+0x8b0000) //store vocal file, Jeff 20031015
  177. //#ifdef SUPPORT_CARDREADER_TEST
  178. //#define MIDICARD_INDEXBUFFERADDR (MIDI_VOCAL_INDEX_ADDR+MIDICARD_INDEXBUFFER*1024)
  179. //#define MIDI_OSDFONT_ADDR               (MIDICARD_INDEXBUFFERADDR+sizeof(PLF_REC)*MIDI_MAX_MP3_FILES)
  180. //#else
  181. #define MIDI_OSDFONT_ADDR               (MIDI_VOCAL_INDEX_ADDR+sizeof(PLF_REC)*MIDI_MAX_MP3_FILES)
  182. //#endif
  183. #ifdef MIDI_MENU_FONT
  184. #define SUPPORT_GB_FONTBASE3
  185. // 1039837
  186. #define MIDI_INDEX_SEARCH_STACK_SIZE    (4096)
  187. #define MIDI_LYRIC_FONT_GB1SIZE         (2208490) 
  188. #define MIDI_LYRIC_FONT_GB2SIZE         (1443850)
  189. #define MIDI_MENU_FONT_GB1SIZE          (519916)
  190. #define MIDI_MENU_FONT_GB2SIZE          (339907)
  191. #ifdef SUPPORT_GB_FONTBASE3
  192. //Jeff 20040916
  193. #define MIDI_FONT_GB3SIZE                    (50000)        //xlluo redefine 04-10-21 for some midifiles play error
  194. //#define MIDI_FONT_GB3SIZE                    (200000)
  195. #else
  196. #define MIDI_FONT_GB3SIZE                    (0)
  197. #endif
  198. #define MIDI_OSDFONT_LYRIC_SIZE         ((((MIDI_LYRIC_FONT_GB1SIZE+MIDI_LYRIC_FONT_GB2SIZE+MIDI_FONT_GB3SIZE+MIDI_MENU_FONT_GB1SIZE+MIDI_MENU_FONT_GB2SIZE)+3)>>2)<<2)
  199. #define MIDI_OSDFONT_ADDR_SIZE          (MIDI_OSDFONT_LYRIC_SIZE+MIDI_INDEX_SEARCH_STACK_SIZE)  
  200. #define MIDI_INDEX_SEARCH_STACK_ADDR    (MIDI_OSDFONT_ADDR+MIDI_OSDFONT_LYRIC_SIZE)
  201. #define MIDI_INDEX_SEARCH_STACK_ADDR_END (MIDI_INDEX_SEARCH_STACK_ADDR+MIDI_INDEX_SEARCH_STACK_SIZE)
  202. #else
  203. #define MIDI_LYRIC_FONT_GB1SIZE         (2208490) 
  204. #define MIDI_LYRIC_FONT_GB2SIZE         (1443850)
  205. #define MIDI_OSDFONT_ADDR_SIZE          (3652340)  
  206. #endif
  207.  
  208. #define LYRIC_DATA_BUFFER_ADDR          (MIDI_OSDFONT_ADDR + MIDI_OSDFONT_ADDR_SIZE)   //3652340
  209. #define MIDI_INDEX_BUFFER_ADDR          ((LYRIC_DATA_BUFFER_ADDR)+(LYRIC_DATA_BUFFER_SIZE))
  210. #define MIDI_INDEX_BUFFER_ADDR_END      ((MIDI_INDEX_BUFFER_ADDR)+(MIDI_INDEX_BUFFER_SIZE))
  211. #define MIDI_MP3_FILE_ADDR              (((MIDI_INDEX_BUFFER_ADDR_END+1023)>>10)<<10)
  212. //#define MIDI_MP3_PREBUFFER_SIZE         (3072)
  213. #define MIDI_MP3_PREBUFFER_SIZE         (((SDRAM_BASE+0x1000000-MIDI_MP3_FILE_ADDR)>>10)&0xfff0)
  214. //#define MIDI_MP3_PREBUFFER_SIZE         (16)
  215. #ifdef MIDI_EJECT_PASSWORD    //ouyang add for eject password 2004-11-20 15:10
  216. EXTERN_FSMIDI UINT8 midi_open_pwd_start;    
  217. EXTERN_FSMIDI UINT8 midi_open_pwd_finished; 
  218. #endif
  219. // these variable for external reference
  220. EXTERN_FSMIDI BYTE      bMidiPlayerBoolean;
  221. EXTERN_FSMIDI BYTE      cIsCHSSong;      //is chinese song?
  222. EXTERN_FSMIDI UINT8     *upMidiGB2FontAddr; 
  223. #ifdef SUPPORT_GB_FONTBASE3
  224. EXTERN_FSMIDI BYTE     *upGB3FontAddr; 
  225. EXTERN_FSMIDI BYTE     *upGB3FontEndPtr; 
  226. #endif
  227. EXTERN_FSMIDI PLF_REC   MidiFont[1]; //  4
  228. #ifdef MIDI_MENU_FONT
  229. EXTERN_FSMIDI UINT8     *upMenuGB2FontAddr,*upMenuGB1FontAddr;
  230. #endif
  231. //define the struct to OSD the Midi Title
  232. typedef struct
  233. {
  234.     BYTE    *pInfoStar;
  235.     UINT32  uInfoLen;
  236. } MidiSongInfo_S;
  237. EXTERN_FSMIDI MidiSongInfo_S stMidiTitleInfo;
  238. //Lyric player state
  239. enum
  240. {
  241.     MIDI_STATE_LYRICINIT = 0,
  242.     MIDI_STATE_OSDLYRIC,
  243.     MIDI_STATE_SYNSTART,
  244.     MIDI_STATE_SYNING,
  245.     MIDI_STATE_NOLYRIC,
  246. };  
  247. //The english alphabet and number width in pixel
  248. extern BYTE abc_width[26];
  249. extern BYTE ABC_width[26];
  250. extern BYTE num_width[10];
  251. extern BYTE midiState;
  252. extern BYTE bMidiSynSate;
  253. extern BYTE dotnum,cDotRev,cEnLyric;
  254. typedef struct
  255. {
  256.     UINT32  DeltaLyricSTCno;
  257.     UINT32  LyricDiplaySTCno; //use it in order to better scheme in future
  258.     BYTE    *RealTimeLyricData;
  259. //    BYTE    *iPMidi; //use it in order to better scheme in future
  260.     BYTE    LyricEventLen;
  261.     BYTE    c[3]; //dummy data to keep data structure size = 4N
  262. }LyricPos;
  263. extern void MidiSetLyricStopState(void);
  264. extern void MidiOSDLyricPolling(void);
  265. extern UINT16   GetStrColumns(BYTE *tmpbuff);
  266. extern void MidiDispCaption(BYTE * CaptionStr,UINT16 len);
  267. extern void DotSwitch(BYTE Type);
  268. #endif  // end #ifdef SUPPORT_OSDLYRIC
  269. extern void MidiServMP3(void);
  270. extern void MidiUI_Sel_Clear_OSD(void);    //ouyang  2004.08.13 take apart the function of "up" key
  271. //midi module functions for external reference
  272. extern void     MidiInit();
  273. extern void     MidiCreate();
  274. extern int      MidiPolling();
  275. extern void     MidiPlaySet(UINT32 msf, UINT32 iLBA);
  276. extern int      MidiPreParse(UINT32 msf, UINT32 len);
  277. #ifdef HDD_INDEX_TEST
  278. //UINT16 Hdd_fsnav_trk_now;
  279. extern  int HDD_ReadSec(UINT8 *buff,UINT32 lba,int seccnt);
  280. extern int wb_init(UINT32 lsn);
  281. #if defined(SUPPORT_CARD_STORAGE)||defined(SUPPORT_USB)//liweihua mod 20031219
  282. #include "cardfs.h"
  283. extern CARD_FILE       cardFile;
  284. extern CARD_INFO       cardP;
  285. #if defined(CF_CARD_WRITE) ||defined(SPHE8202_FAT_Write_Function) //|| defined(WRITE_USB)
  286. extern BYTE read_card_sign,flag_cf2cd,flag_cd2cf;
  287. #endif //#if defined(CF_CARD_WRITE) ||defined(SPHE8202_FAT_Write_Function) //|| defined(WRITE_USB)
  288. #endif //#if defined(SUPPORT_CARD_STORAGE)||defined(SUPPORT_USB)
  289. #endif //end #ifdef HDD_INDEX_TEST
  290. //modify xlluo 2004-5-27 for two Men or two Women singing together
  291. #define CHORUS_TWO_HOMOMAN
  292. #ifdef CHORUS_TWO_HOMOMAN
  293. EXTERN_FSMIDI   BYTE ca_Singer1Name[2];
  294. EXTERN_FSMIDI   BYTE ca_Singer2Name[2];
  295. EXTERN_FSMIDI   BYTE bIsExterSingerTip;
  296. #endif
  297. #ifdef  SUPPORT_MIDIDISK_TITLE
  298. int MidiPlayTitle(void);
  299. EXTERN_FSMIDI   BYTE bIsPlayMidiTitle;
  300. #endif
  301. #define SUPPORT_SANJING_SCORE //ouyang 204.11.12
  302. #ifdef SUPPORT_SANJING_SCORE                 //xlluo for sanjin score system   2004-10-15
  303. extern const char *Score_Str_LTS[3];
  304. extern const char *Score_Str_DKS[3];
  305. extern int ScoreDelay(void);
  306. extern char * SetScoreGalaStr(int score);
  307. EXTERN_FSMIDI int SJScoreLine[10];
  308. EXTERN_FSMIDI BYTE bIsSJScoreInvaild;     //False: close score show    True: show scroe system
  309. EXTERN_FSMIDI BYTE cScoreStatus;            // 0~4:score low limit   5:close human voice ON(0)/OFF(1)
  310.                                                                     //   6/7: 00: normal  01:dks 11:lts
  311.                                                                     //+-------------------------------+
  312.                                                                     //+ bit       0  1    2    3    4      5      6    7    +
  313.                                                                     //+  score 0  20  40  60  80  voice  lts  dks +
  314.                                                                     //+-------------------------------+
  315.                                                                     //init code is 0x01 if is 0x00 will be set to 0x01 
  316.                                                                     //when use macro GETSCORELIMITENUM
  317. enum{
  318.             SANJINSCORE_START0 =0X01,                //lowlimit is zero
  319.             SANJINSCORE_START1 =0X02,                //lowlimit is 20
  320.             SANJINSCORE_START2 =0X04,                //lowlimit is 40
  321.             SANJINSCORE_START3 =0X08,                //lowlimit is 60
  322.             SANJINSCORE_START4 =0X10,                //lowlimit is 80
  323.             SANJINSCORE_DISABLEVOICE =0X20,    //is close human voice
  324.             SANJINSCORE_MODE_DKS =0x80,          //is dks
  325.             SANJINSCORE_MODE_LTS =0xc0,            //is lts
  326.             SANJINSCORE_MODE_NML =0x00,          //normal status
  327.          }emSjScrBitTest;
  328. #define BITTEST(x,y)                   ((x & (0x01 << y)) && 1)       
  329. #define MOVESCORELIMITERIGHT() (cScoreStatus =(cScoreStatus&0xe0)|((cScoreStatus&0x1f)<<1))
  330. #define MOVESCORELIMITELEFT()   (cScoreStatus =(cScoreStatus&0xe0)|((cScoreStatus&0x1f)>>1))
  331. #define SETSCOREMODE(x)         (cScoreStatus =((cScoreStatus&0x3f)^(x)))   
  332. #define GETSCOREMODE( )          (cScoreStatus&0xc0)                                                                     
  333. #define SETSCORELIMITE(x)        (cScoreStatus = ((cScoreStatus&0xe0)^(x)))
  334. #define GETSCORELIMITE( )         (cScoreStatus&0x1f)
  335. /*#define GETSCORELIMITECODE(x)  do{   
  336.                                                                 int sjmarco_limitnum_i; 
  337.                                                                if (cScoreStatus&0x1f)   
  338.                                                                 {   
  339.                                                                     for (sjmarco_limitnum_i =0;sjmarco_limitnum_i<4;sjmarco_limitnum_i++)  
  340.                                                                     {   
  341.                                                                         BITTEST((cScoreStatus&0x1f),sjmarco_limitnum_i)   
  342.                                                                     }   
  343.                                                                     x =sjmarco_limitnum_i;    
  344.                                                                 }else   
  345.                                                                 {   
  346.                                                                     SETSCORELIMITE(SANJINSCORE_START0); 
  347.                                                                     x =0;   
  348.                                                                 }   
  349.                                                             }while(0)
  350.                                                             
  351.  #define GETSCORELIMITENUM(x)       do {    
  352.                                                                     GETSCORELIMITECODE(x);  
  353.                                                                     x *=20; 
  354.                                                             }while(0)
  355.                                                             */
  356. #define ISCLOSEHUMANVOICE()          (cScoreStatus&SANJINSCORE_DISABLEVOICE)                                                   
  357. #define DISABLE_HUMANVOICE()        (cScoreStatus =cScoreStatus|SANJINSCORE_DISABLEVOICE)     
  358. #define ENABLE_HUMANVOICE()         (cScoreStatus =cScoreStatus&0xdf)
  359. #define SWITCH_HUMANVOICE()        (cScoreStatus =(cScoreStatus&0xdf)|(cScoreStatus^SANJINSCORE_DISABLEVOICE))
  360. #endif
  361. #define SUPPORT_MIDI_STAUSTEST                              //xlluo 04-12-09
  362. #ifdef SUPPORT_MIDI_STAUSTEST
  363. typedef enum {
  364.                         MIDI_STATUS_ISPROGRAM =0,                  //program
  365.                         MIDI_STATUS_ISFIRSTPAGE,                //firstpage
  366.                         MIDI_STATUS_ISSCORE,                      //score
  367.                         MIDI_STATUS_ISRANDOM,                   //random
  368.                         //please add more status here
  369.                         
  370.                     }statusType;
  371. EXTERN_FSMIDI   BYTE Midi_PlayStatusTest(statusType type);
  372. #endif
  373. #ifdef SUPPORT_MIDIUI_IME                       //xlluo add for customer
  374. #define SUPPORT_PINYINGDELAY
  375. #endif
  376. #ifdef SUPPORT_PINYINGDELAY
  377. #define MIDI_PINYINGINPUT_DELAY             (3)         //about 1.5 s
  378. #endif
  379. // ************************************************************************
  380. // ***  Define the Midi data conveted from the Custom Lyric Spec Data
  381. // ************************************************************************
  382. /*ouyang move to cfg_sunplus_midi4fsloader.h 2005-1-21 15:20*/
  383. #ifdef SUPPORT_YUXING_LYRIC_SPEC
  384. #define SUPPORT_JKDISKSTATUS        //xlluo for jieke score 04-12-25
  385. #if (defined(SUPPORT_JKDISKSTATUS)&defined(MIDI_EJECT_PASSWORD))
  386. #include "IOP.h"
  387. #define DISK_STATUS    255          
  388. #endif
  389. #endif
  390. #ifdef SUPPORT_SANJING_LYRIC_SPEC
  391. #ifdef SUPPORT_SANJING_DISPLAY
  392. EXTERN_FSMIDI BYTE bIsDispTitleEnable;
  393. #endif
  394. BYTE bIsSanJingMidi;
  395. #endif
  396. #endif //#ifndef __FS_MIDI_H