📄 fsmidiui.h
字号:
#ifndef __FS_MIDI_UI__
#define __FS_MIDI_UI__
#include "memmap.h"
#include "memmap0.h"
#include "user_init.h"
#include "fsmidi.h"
#ifdef SUPPORT_MIDI_MENU_SEL
#ifdef EXTERN_MIDIUI_HERE
#define EXTERN_FSMIDI_UI
#else
#define EXTERN_FSMIDI_UI extern
#endif //end #ifdef EXTERN_MIDIUI_HERE
#define SUPPORT_DISPQXQ_STOP
#define SUPPORT_SCANMODE_SWITCH //xlluo add 04-6-14
#ifdef SUPPORT_SCANMODE_SWITCH
#define MENU_REGION_PAL_X (20)
#define MENU_REGION_PAL_Y (36)
#define LYRIC_REGION_PAL_X (20)
#define LYRIC_REGION_PAL_Y (280)
#define MENU_REGION_PAL_W (MIDI_MENU_REGION)
#define MENU_REGION_PAL_H (MIDI_MENU_HEIGHT)
#define LYRIC_REGION_PAL_W (MIDI_LYRIC_REGION)
#define LYRIC_REGION_PAL_H (MIDI_LYRIC_HEIGHT)
EXTERN_FSMIDI_UI void SwitchRegionTVformat();
#endif//SUPPORT_SCANMODE_SWITCH
#define SUPPORT_VFD_SONGCODE
#ifdef SUPPORT_VFD_SONGCODE
typedef struct _stCurPlaySong{
BYTE bIsNeedRefresh;//1//1: need reflesh 0:no need
BYTE songCode[6];
}stCurPlaySong;
EXTERN_FSMIDI_UI void CleanCurplaySongCode(void);
EXTERN_FSMIDI_UI stCurPlaySong curPlayingSong;
EXTERN_FSMIDI_UI void GetCurplaySongCode(void); //wsf 20040603
#endif
// *****************************************************************
// *** Define the discontiguous serial number FUNCTION for the midi songcode
// *****************************************************************
#define MIDI_SONGCODE_DISCON_NO
// *****************************************************************
// ***user for play sequence songs for none discontiguous serial number
// *****************************************************************
#ifdef MIDI_SONGCODE_DISCON_NO
#define MIDI_SEQUENCE_SEARCHLIST
UINT32 filecode2int(BYTE * );
#endif
#ifdef MIDI_MENU_FONT
// *************************************************************
// *** if dont support the Menu Font , mark the Multi Menu Code
// *** if dont need the Multi Index to search the song, mark it
// *************************************************************
#define MIDI_MULTI_MENU
#endif //#ifdef MIDI_MENU_FONT
//as parament of Menu_Draw_Attentiontip(BYTE AttentionType)
enum
{
MENU_TOPTIP_TYPE_SONGNAME =0,
MENU_TOPTIP_TYPE_SELECTSONG,
MENU_TOPTIP_TYPE_NOMENUINFO,
MENU_TOPTIP_TYPE_NOPREVPAGE,
MENU_TOPTIP_TYPE_NONEXTPAGE,
MENU_TOPTIP_TYPE_SELECTPLAY,
MENU_TOPTIP_TYPE_SONGLISTFULL,
MENU_TOPTIP_TYPE_DELITEM,
MENU_TOPTIP_TYPE_MOVEITEM,
MENU_TOPTIP_TYPE_DONTDEL,
MENU_TOPTIP_TYPE_PROGRAM,
};
// define Menu state
enum
{
MENU_INIT = 0,
MENU_SEL,
MENU_SEL_QXQ,
MENU_SEL_PROG,
MENU_SEL_PROGLIST,
MENU_MULTI_INDEX_SEL,
MENU_MULTI_INDEX_SEL_PLAYLIST,
#ifdef SUPPORT_MIDIUI_IME
MENU_MULTI_INDEX_SEL_IME_SEARCH,
#endif
MENU_OTHER,
};
#ifdef SUPPORT_MIDIUI_IME
enum
{
IME_SEL_INIT = 0,
IME_SEL_INPUT ,
IME_SEL_ENTER,
};
#endif
// define the special play state
enum
{
MIDI_NOMAL_PLAY = 0,
MIDI_RANDOM_PLAY = 9, //set up the value acording to the variable MainMenuTitle
MIDI_SEQUENCE_PLAY = 10, //set up the value acording to the variable MainMenuTitle
};
EXTERN_FSMIDI_UI BYTE MenuState; // menu state
EXTERN_FSMIDI_UI BYTE SpecialPlayState; // special play state
//fsmidi UI osd Color
EXTERN_FSMIDI_UI BYTE LyricFontcolor, LyricBgcolor;
EXTERN_FSMIDI_UI BYTE LyricRevcolour, LyricFigureColor;//osd disp color
EXTERN_FSMIDI_UI BYTE MenuFontcolor, MenuBgcolor, MenuFigureColor;
#define MIDIUI_SEL_QXQ_COLOR 6
#define MIDIUI_SEL_QXQNUM_COLOR 6
#define MIDIUI_SEL_QXQCUE_COLOR 6
#define MIDIUI_SEL_PROGRAM_COLOR 5
#ifdef SANJING_MIDI_DVD //ouyang 2004-12-8 14:44
#define MIDIUI_SEL_PRGNUM_NEXTPLAY_COLOR 4//2
#define MIDIUI_SEL_PRGNUM_WILLING_COLOR 12//7
#define MIDIUI_SEL_PY_BOTTOMTIP_COLOR 7
#define MIDIUI_SEL_PRGNUM_PERV_COLOR 2//6
#else
#define MIDIUI_SEL_PRGNUM_NEXTPLAY_COLOR 2
#define MIDIUI_SEL_PRGNUM_WILLING_COLOR 7
#define MIDIUI_SEL_PRGNUM_PERV_COLOR 6
#endif
#define MIDIUI_SEL_MOVE_BGCOLOR 4
#define MIDIUI_SEL_MOVE_FONTCOLOR 2
#define MIDIUI_SEL_BGCOLOR 0
#ifdef SANJING_MIDI_DVD //ouyang 2004-12-8 14:44
#define MIDIUI_SEL_TOPTIPCOLOUR 6// 7
#define MIDIUI_SEL_PROGRAMNUM 6//7
#else
#define MIDIUI_SEL_TOPTIPCOLOUR 7
#define MIDIUI_SEL_PROGRAMNUM 7
#endif
#define MIDIMULTIUI_SEL_PALYEDFILE 3
//for menu color
#define MENU_BACKGROUND_COLOR (13)
#define MENU_LINE_COLOR (1)
#define MAX_SEL_LIST (6)
#define MAX_SEARCH_PAGE (50) //equal to the total num of SongInfo record
/*#ifdef SUPPORT_MIDIUI_IME
#define MENU_ITEM_NUM (13-1)
#else
#define MENU_ITEM_NUM (12)
#endif
*/
/*
#ifdef SANJING_MIDI_DVD
//#undef MENU_ITEM_NUM
//#ifdef SUPPORT_MIDIUI_IME
#define MENU_ITEM_NUM (14)
#else
#define MENU_ITEM_NUM (12)
#endif
//#endif
*/
#define MIDINDEX_SONGINFO_FLAG (0x01)
#define MIDINDEX_SONGNAMEWORDSUM_FLAG (0x02)
#define MIDINDEX_SINGERNAMEWORDSUM_FLAG (0x03)
#define MIDINDEX_SONGTYPE_FLAG (0x04)
#define MIDINDEX_SINGERCODE_FLAG (0x05)
#define MIDINDEX_SINGERTYPE_FLAG (0x06)
#define MIDINDEX_LANGUAGE_FLAG (0x07)
//for disp menu
//This is the header of the midi index file
typedef struct
{
BYTE* pSingerType;
BYTE* pLonguageType;
BYTE* pSongType;
BYTE* pSingerCode;
BYTE* pSongInfo;
BYTE* pSongWord; //new
BYTE* pSingerWord; //new
UINT16 SingerNum;
UINT16 SongNum;
UINT16 SongWordNum; //new
UINT16 SingerWordNum; //new
UINT16 SongNameNumFlag;
UINT16 SingerNameNumFlag;
BYTE* pSingerPos;
BYTE* pSongPos;
#ifdef MIDI_SONGCODE_DISCON_NO
BYTE *pNumIndexPos ;
#endif
BYTE* pIndexStart; //index start
}MidiIndexTable_S;
//Midi index song info record
typedef struct
{
BYTE recordFlag;
BYTE recordLen;
unsigned songType : 8;
unsigned languageType : 7;
unsigned bIsMP3 : 1;
unsigned songerNo : 12;
unsigned wordNum : 4;
UINT16 MidiFileSize;
UINT32 MidiMsfPos;
union
{
struct
{
UINT32 Mp3MsfPos;
UINT16 Mp3FileSize;
char Mp3SongName[58];
}Mp3Info;
char MidiSongName[64];
}SongName;
}SongInfo_S;
typedef struct
{
BYTE sign;
BYTE recordlen;
BYTE wordNum;//
BYTE c;//
UINT16 TheSongNum;
char TypeName[8]; //"(x字歌曲)"(8BYTE)
}WordSel_A;
//singer code record
typedef struct
{
BYTE recordFlag;
BYTE recordLen;
UINT16 SingerSum:12;
UINT16 wordNum:4;
BYTE singerType;
char singerName[1];
}SingerCode_S;
//singer type record
typedef struct
{
BYTE recordFlag;
BYTE recordLen;
UINT16 TypeSum;
char singerType[1];
}SingerType_S;
//language type record
typedef struct
{
BYTE recordFlag;
BYTE recordLen;
UINT16 TypeSum;
char languageType[1];
}LanguageType_S;
//song type record
typedef struct
{
BYTE recordFlag;
BYTE recordLen;
BYTE songTypeCode;
UINT16 TypeSum;
char songTypeName[1];
}SongType_S;
//The following is data struct for search
//************************************************
//***The following struct must keep data structure size = 4N
//************************************************
typedef struct
{
BYTE *pStackBottom ; //align at the edge of memory addr == 4n
BYTE *pStackTop ;
BYTE *pStackEnd ;
}SearchStack_S;
typedef struct
{
UINT16 cPageSum;
UINT16 cPageNum;
// the current term for search list
unsigned TermSongType : 8;
unsigned TermLanguageType : 7;
unsigned TermbIsMP3 : 1;
unsigned TermSongerNo : 12;
unsigned TermWordNum : 4;
BYTE TermSingerType;
BYTE TermSingerWordNum;
BYTE TermValidate; // d0:TermSongType d1:TermLanguageType d2: TermbIsMP3 d3: TermSongerNo
// d4: TermWordNum d5:TermSingerType d6: TermSingerWordNum
BYTE bAdvanceItem; //dummy element
}SearchTerm_S;
typedef struct
{
UINT32 *pPageStart; //the bottom stack of the current menu,and is the first pos of menu state ;
BYTE uMaxPage;//*pPageEnd;
BYTE uOutputQueue;
BYTE uInputQueue;
BYTE uRecordType; //d0: SongInfo d1:songWord d2:singerWord d3:SongType d4: SingerCode d5:SingerType d6:LanguageType d7:Menu
BYTE uMenuDegree; //when uRecordType->d5==1 : validate-->d0~d7:the degree of the current menu state
BYTE uCurPage; //the current page
BYTE uCurPos; //the current pos in the current list
BYTE uCurPageItemNum;
UINT16 cPageSum;
UINT16 cPageNum;
// the current term for search list
unsigned TermSongType : 8;
unsigned TermLanguageType : 7;
unsigned TermbIsMP3 : 1;
unsigned TermSongerNo : 12;
unsigned TermWordNum : 4;
BYTE TermSingerType;
BYTE TermSingerWordNum;
BYTE TermValidate; // d0:TermSongType d1:TermLanguageType d2: TermbIsMP3 d3: TermSongerNo
// d4: TermWordNum d5:TermSingerType d6: TermSingerWordNum
BYTE bAdvanceItem; //see enum emMidiMULTIMenuADVItem //xlluo 04-1-21
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -