?? fmanager.h
字號:
// Max length of TREE_INFO structure
#define TREE_INFO_LENGTH 3
//////////////////////////////////////////////////////////////
// ***** Extern Variable Area *****
// It keeps each directory's name stored.
// Use index 0 to access the 1st directory info,
// and index 1 to access the 2nd directory info, ... etc.
// LLY2.80, use "Directory Name structure"
//extern PFILENAMEINFO __pFMDirNameList; //__cMP3AlbumList;
extern PDIRNAMEINFO __pFMDirNameList;
// It keeps each file's name stored.
// Use index 0 to access the 1st file info,
// and index 1 to access the 2nd file info, ... etc.
extern PFILENAMEINFO __pFMFileNameList; //_cMP3SongList;
// Store the file number of each directory
extern WORD *__pwFMFilesOfDir;
// Total directories/ files within the playable CDROM
extern BYTE __bFMTotalDirs;
extern WORD __wFMTotalFiles;
// It indicate the first directory index/ or first file index
// which is used to be displayed in the current page.
// (1). While in directory menu selection state,
// use 1stID to access __pFMDirNameList[] to get the name information.
// (2) While in file menu selection state,
// use 1stID to access __pFMFileNameList to get the name information.
// use bAlbumIndex to access __pFMDirNameList[] to get current directory name information.
extern MENUPAGEINFO __wFMMenuPage;
// store current file manager menu stage
extern BYTE __bFMMenuID;
// Keep current active/open directory ID, index from '0' -- LLY2.80
extern BYTE __bFMActiveDir;
// Keep current playing directory ID, index from '0' -- LLY2.81
extern BYTE __bFMPlayingDir;
// a pointer to dir's name array or file's name array
extern PFILENAMEINFO __pFMNameList;
// A pointer to keep JPG status, ex rotate/ flip/ playable
extern BYTE __bFMJPGStatus;
// The FM_Trigger() stage -- LLY.274p-2
extern BYTE __bFMStage;
// Current JPEG active frame for decode/ display -- LLY.275
extern BIT __btActiveFrame;
// Keep the time while JPEG display ok -- LLY.275
extern DWORD __dwTimeJPEGDisplay;
// Keep JPEG decoding mode : 1st decode or re-decode -- LLY.276p-4
//extern BYTE __bDecodeMode;
// Keep selection/ active cursor information -- LLY2.80
// LLY2.81, support selection & active cursor while enable this define
// Otherwise, let selection same as active cursor
extern CURSOR_INFO __FMActiveCursor;
// wyc1.05, always support moving cursor in playing mode.
extern CURSOR_INFO __FMSelectCursor;
// wyc1.10, new variables to record the next pisition of select cursor when moving UP / DOWN / NEXT / PREV and across directories.
extern WORD __wNewCursorIndex;
// Keep directory tree information -- LLY2.81
extern PTREE_INFO __pFMDirTree;
// Keep the parent's ID of current active directory -- LLY0.83b-2
extern BYTE __bFMParentID;
// Keep the info. while exist "UP_DIR" or not -- LLY0.83b-2
extern BYTE __bFMExistUpDir;
// Keep control button information -- LLY0.83b-2
extern CTL_BUTTON __FMCtlBTNList[MAX_CTL_BTN_NO];
// Program list index array & content -- LLY0.83b-2
extern PFILENAMEINFO __pProgContent;
// wyc1.07, variable to toggle FM UI on / off.
#ifdef SUPPORT_FM_UI_ON_OFF
extern BYTE __bFMHide;
#endif //
/////////////////////////////////////////////////////////////////
// ***** Some define for Global Variable usage ****
// [1] Display menu ID Area -- __bFMMenuID
#define FM_MENU_NONE 0xff
// LLY0.83b-2, Split two group for CT9928AF & CT908 UI
#define FM_MENU_NORMAL 0x1
#define FM_MENU_EDITPROG 0x2
#define FM_MENU_PROGLIST 0x3
////////////////////////////////////////////////////////////////
// ***** Some define for function parameter usage
// [1-1] Use for FM_PreparePage() 1st parameter -- bPageID
#define FM_PREPARE_FILEPAGE 0
#define FM_PREPARE_PROGLIST 100
// [1-2] Use for FM_PreparePage() 2nd parameter -- wParam
// value == 0: it will draw some button automatically
#define DONT_DRAW_BUTTON 1
// [2-1] Use for _QueryInfo() 1st parameter -- bQueryID
#define FM_QUERY_DIR_INDEX 0
#define FM_QUERY_UNKNOWN_CHAR 1
// LLY0.83b-2, Splite into two groups for CT9928AF & CT908 UI
#define FM_QUERY_NEXTVALID_CTLBTN_INDEX 100
#define FM_QUERY_PREVVALID_CTLBTN_INDEX 101
#define FM_QUERY_CTLBTN_INDEX 102
// [2-2] Use for _FM_QueryInfo2() 1st parameter -- bQueryID
#define FM_QUERY2_NEXT_DIR_INDEX 1
#define FM_QUERY2_PREV_DIR_INDEX 2
// LLY0.83b-2, Splite into two groups for CT9928AF & CT908 UI
#define FM_QUERY2_TOTAL_ITEM_OF_FILEPAGE 100
#define FM_QUERY2_TOTAL_ITEM_OF_DIRPAGE 101
// [2-3] Use for _FM_QueryInfo3() 1st parameter -- bQueryID // LLY2.81
#define FM_QUERY3_1STITEM_OF_FILEPAGE 1
#define FM_QUERY3_LASTITEM_OF_FILEPAGE 2
// LLY0.83b-2, Splite into two groups for CT9928AF & CT908 UI
#define FM_QUERY3_EXIST_PROGRAM_CONTENT 100
// [3] Use for _FM_ConvertName() 1st parameter -- bType
#define FM_CONVERT_DIRNAME 1
#define FM_CONVERT_FILENAME 2
// [4] Use for _FM_AccessJPGStatus() parameter -- bMode
#define FM_GET_JPG_STATUS 1
#define FM_STORE_JPG_STATUS 2
// wyc2.39, for martking non-playable MP3 file in FM mode.
#define FM_STORE_MP3_STATUS 3
// [5] Use for FM_Trigger() stage -- LLY.275a
#define STAGE_NONE 0
#define STAGE_PREPAREINFO 1
#define STAGE_DECODE 2
//LLY.278, #define STAGE_POLLING_END 3
#define STAGE_PLAYEND 4
#define STAGE_DISPLAY 5
#define STAGE_POLLING_TIMEOUT 6
#define STAGE_NEXT_ITEM 7
#define STAGE_IDLE 8
// [6] Use for _FM_FileIndexConvert() 1st parameter: bMode -- LLY0.83b-2
// directory <--> disc coordinate index convert
#define FM_INDEX_CONVERT_GROUP0 0
#define FM_INDEX_CONVERT_DIR2DISC (FM_INDEX_CONVERT_GROUP0 + 0)
#define FM_INDEX_CONVERT_DISC2DIR (FM_INDEX_CONVERT_GROUP0 + 1)
// absolute <--> relative coordinate index convert
#define FM_INDEX_CONVERT_GROUP1 10
#define FM_INDEX_CONVERT_ABS2REL_DIR_LIST (FM_INDEX_CONVERT_GROUP1 + 0)
#define FM_INDEX_CONVERT_REL2ABS_DIR_LIST (FM_INDEX_CONVERT_GROUP1 + 1)
#define FM_INDEX_CONVERT_ABS2REL_FILE_LIST (FM_INDEX_CONVERT_GROUP1 + 2)
#define FM_INDEX_CONVERT_REL2ABS_FILE_LIST (FM_INDEX_CONVERT_GROUP1 + 3)
#define FM_INDEX_CONVERT_GROUP2 20
// [7] Use for directory ID -- LLY2.81
// Notice: 0x0 ~ 0xEF are used for real directory ID
#define UP_DIR 0xFE // up directory
#define UNEXIST_DIR 0xFF // unexist directory
// [8] Use for FM_Action() return value -- LLY0.83b-2
#define FM_ACTION_DONE 1
#define FM_ACTION_CONTINUE 2
#define FM_ACTION_INVALID 3
// [9] Use for FM_InitialBTNList() parameter -- LLY0.83b-2
#define NORMAL_BTN_LIST 1
#define PROG_BTN_LIST 2
#define PROGLIST_BTN_LIST 3
// [8] Use for FM_ProgAction() 1st parameter -- LLY0.83b-2
#define PROG_ACTION_ADD 1
#define PROG_ACTION_DELETE 2
// [9] Use for FM_RecoverMenu() parameter -- LLY0.84
#define FM_DEFAULT_MENU 0
#define FM_RESTORE_MENU 1
// [10] Use for _FM_InitialMenu() parameter -- LLY0.86
// Only use bit[7] to specify if clear background while draw File Manager UI
// Notice: bit[6:0] is same as __bFMMenuID
#define FM_CLEAR_BACKGROUND 0x80
#define FM_DISABLE_PLAY_BTN 0x40
// wyc1.07, add this define for _FM_InitialMenu is because when issuing BTN_PLAY in program list, we need to clear origianl active cursor color.
// Other case don't need to do it.
#define FM_CLEAR_ACTIVE_CURSOR 0x20
// wyc1.05, supporting two types of across dir boundary.
// [11] Type of across dir boundary.
#define FM_ACROSS_DIR_NONE 0x0
#define FM_NEXT_PREV_ACROSS_DIR 0x1
#define FM_UP_DOWN_ACROSS_DIR 0x2
// wyc1.10, add define to make code program easier when doing DAT / VOB files playing.
#define FM_UI_HIDE_NONE 0x0
#define FM_UI_HIDE_FROM_ISR 0x1
#define FM_UI_HIDE_FROM_FW 0x2
//CoCo2.37, Tune JPEG buffer for 3 frames, 4 frames for CT908B/CT908S-16M, CT908B-32M, CT908A-64M
#ifdef SUPPORT_JPEG_3_FRAMES
#ifdef SUPPORT_JPEG_KEEP_1X1_RATIO
#define FM_CD_JPEG_FRAME_WIDTH HAL_DISPLAY_CD_JPEG_FIRST_SCALING_WIDTH
#define FM_CD_JPEG_FRAME_HEIGHT HAL_DISPLAY_CD_JPEG_FIRST_SCALING_HEIGHT
#define FM_DVD_JPEG_FRAME_WIDTH HAL_DISPLAY_DVD_JPEG_FIRST_SCALING_WIDTH
#define FM_DVD_JPEG_FRAME_HEIGHT HAL_DISPLAY_DVD_JPEG_FIRST_SCALING_HEIGHT
#else //This case may do JPEG scaling two times.
#define FM_CD_JPEG_FRAME_WIDTH 640
#define FM_CD_JPEG_FRAME_HEIGHT 432
#define FM_DVD_JPEG_FRAME_WIDTH 624
#define FM_DVD_JPEG_FRAME_HEIGHT 416
#endif //SUPPORT_JPEG_KEEP_1X1_RATIO
#else
#ifdef JPEG_SMALL_BUFFER
#ifdef SUPPORT_JPEG_KEEP_1X1_RATIO
#define FM_CD_JPEG_FRAME_WIDTH HAL_DISPLAY_CD_JPEG_FIRST_SCALING_WIDTH
#define FM_CD_JPEG_FRAME_HEIGHT HAL_DISPLAY_CD_JPEG_FIRST_SCALING_HEIGHT
#define FM_DVD_JPEG_FRAME_WIDTH HAL_DISPLAY_DVD_JPEG_FIRST_SCALING_WIDTH
#define FM_DVD_JPEG_FRAME_HEIGHT HAL_DISPLAY_DVD_JPEG_FIRST_SCALING_HEIGHT
#else //This case may do JPEG scaling two times.
#define FM_CD_JPEG_FRAME_WIDTH 592
#define FM_CD_JPEG_FRAME_HEIGHT 400
#define FM_DVD_JPEG_FRAME_WIDTH 544
#define FM_DVD_JPEG_FRAME_HEIGHT 368
#endif //SUPPORT_JPEG_KEEP_1X1_RATIO
#else
#ifdef SUPPORT_JPEG_KEEP_1X1_RATIO
#define FM_CD_JPEG_FRAME_WIDTH HAL_DISPLAY_CD_JPEG_FIRST_SCALING_WIDTH
#define FM_CD_JPEG_FRAME_HEIGHT HAL_DISPLAY_CD_JPEG_FIRST_SCALING_HEIGHT
#define FM_DVD_JPEG_FRAME_WIDTH HAL_DISPLAY_DVD_JPEG_FIRST_SCALING_WIDTH
#define FM_DVD_JPEG_FRAME_HEIGHT HAL_DISPLAY_DVD_JPEG_FIRST_SCALING_HEIGHT
#else //This case may do JPEG scaling two times.
#if 0 //xuli1108, SUPPORT_JPEG_KEEP_1X1_RATIO is defined in HALJPEG.H, not be included before fmanager.h
#define FM_CD_JPEG_FRAME_WIDTH 672
#define FM_CD_JPEG_FRAME_HEIGHT 448
#define FM_DVD_JPEG_FRAME_WIDTH 672
#define FM_DVD_JPEG_FRAME_HEIGHT 448
#else
#define FM_CD_JPEG_FRAME_WIDTH 720
#define FM_CD_JPEG_FRAME_HEIGHT 480
#define FM_DVD_JPEG_FRAME_WIDTH 720
#define FM_DVD_JPEG_FRAME_HEIGHT 480
#endif
#endif //SUPPORT_JPEG_KEEP_1X1_RATIO
#endif //JPEG_SMALL_BUFFER
#endif //SUPPORT_JPEG_3_FRAMES
/////////////////////////////////////////////////////////////
// ***** Function Prototype Area ******
//BYTE FM_Trigger(void);
void FM_Trigger(void); //CoCo1.21, modify the function prototype.
BYTE FM_CheckPlayableCDROM(void);
//BYTE FM_Initial(void);
// wyc1.21, modify return type to void to reduce SRAM code.
void FM_Initial(void); //CoCo1.21, modify the function prototype
//BYTE FM_GetRange(WORD wIndex);
void FM_GetRange(WORD wIndex); //CoCo1.21, modify the function prototype
BYTE FM_GetFileType(WORD wIndex);
// LLY2.80, remove 2nd parameter because nobody reference it
BYTE FM_ProcessKey(BYTE bKey); //, WORD wTrackNO);
void FM_ProcessHighLight(WORD wTrackNO);
void FM_AccessJPGStatus(BYTE bMode, WORD wIdx);
WORD _GetDir1stID(BYTE bDirIdx); // LLY2.80
// LLY0.83b-2, new added APIs
BYTE FM_RepeatFolder(BYTE bKey);
BYTE FM_Action(BYTE bAction, WORD wParam);
#ifdef SUPPORT_FM_BUTTONS
BYTE FM_UpdateBTNStatus(BYTE bBTNID, BYTE bStatus);
void FM_InitialBTNList(BYTE bMode);
#endif //SUPPORT_FM_BUTTONS
//void FM_ProgAction(BYTE bAction, WORD wIndex); //--CoCo, remove emptry function declaraction.
void FM_RecoverMenu(BYTE bMode);
// wyc1.00, extern to Thumb to reference it.
void FM_PreparePage(BYTE bPageID, WORD wParam);
// wyc1.10, move to here to let outside module can call it.
void _FM_InitialMenu(BYTE bMode, BYTE bRecover); // LLY0.84
// wyc2.31, new function to initial variables.
void FM_InitialVariables(void);
// wyc2.39, for martking non-playable MP3 file in FM mode.
void _FM_MP3CANNOTPLAY(void);
#ifdef __cplusplus
}
#endif
#endif // __FMANAGER_H__
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -