📄 clips_menu_config.c
字号:
NBR_MENU_COUNT_ITEM_ACCESS,
#endif //D_GUI_ITEM_ACCESS
NBR_MENU_COUNT_PLAY_HDCD,
NBR_WINDOW_CONTENTS,
};
static CONST MS_DESCRIPTOR* CONST apWindowContents[NBR_WINDOW_CONTENTS] = {
#ifndef D_GUI_CLIPS_MULTIPAGE
(MS_DESCRIPTOR*)&oPlayStateDescriptor,
// TODO: NBR_WINDOW_CONTENTS this macro
#ifdef D_GUI_CLIPS_DISPLAY_OBJECT_PLAY_FILE
(MS_DESCRIPTOR*)&oPlayFileDescriptor,
#endif //D_GUI_CLIPS_DISPLAY_OBJECT_PLAY_FILE
(MS_DESCRIPTOR*)&oPlayTimeDescriptor,
#endif // D_GUI_CLIPS_MULTIPAGE
(MS_DESCRIPTOR*)&oBrowserVScrollListDescriptor,
(MS_DESCRIPTOR*)&oToolKitDescriptor,
(MS_DESCRIPTOR*)&oPreviewWindowDescriptor,
(MS_DESCRIPTOR*)&oFilePathDescriptor,
#ifdef D_GUI_ITEM_ACCESS
(MS_DESCRIPTOR*)&oBrowserItemAccessDescriptor,
#endif //D_GUI_ITEM_ACCESS
(MS_DESCRIPTOR*)&oSpecialMediaTypeDescriptor
};
static CONST MS_DESCRIPTOR_WINDOW oWindowDescriptor =
{// MS_DESCRIPTOR_CONTAINER
{// MS_DESCRIPTOR
sizeof(MSO_WINDOW),
MS_NAV_NULL,
MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
{
AREA_WINDOW_X, AREA_WINDOW_Y, AREA_WINDOW_W, AREA_WINDOW_H
},
OPAGE_WindowOperation,
OPAGE_WindowFillOSDSeg,
mpParamNull
},
(CONST MS_DESCRIPTOR**)apWindowContents,
NBR_WINDOW_CONTENTS,
};
/***************************************************************************************
* Descriptor : oBrowserPageDescriptor
*
* Purpose : The browser page object
****************************************************************************************/
static CONST MS_PARAM_BROWSER_PAGE_INIT oParamBrowserPageInit =
{
{
0 //mwPageIndex
},
{
0xFFFF, // mwDeviceId;
CLIPTYPE_FILTER_DEFAULT, // mwFileTypes; Show all files by default.
NULL, // mpSrcActionEngine;
},
};
static CONST MS_DESCRIPTOR_BROWSER_PAGE oBrowserPageDescriptor =
{
{// MS_DESCRIPTOR_CONTAINER
{// MS_DESCRIPTOR
sizeof(MSO_BROWSER_PAGE),
MS_NAV_CONTAINER_WRAP_LR,
MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
{
AREA_PAGE_X, AREA_PAGE_Y, AREA_PAGE_W, AREA_PAGE_H
},
_BrowserPageOperation,
mpfFillOsdSegNull,
(UINT8*)&oParamBrowserPageInit
},
maContentsNull,
mwNbrContentsNull,
},
#ifdef D_GUI_CLIPS_MULTIPAGE
(MS_DESCRIPTOR_TABBTN*)&oTabBtnDescriptor,
#else // D_GUI_CLIPS_MULTIPAGE
NULL, // No tab for a single page solution.
#endif // D_GUI_CLIPS_MULTIPAGE
(MS_DESCRIPTOR_WINDOW*)&oWindowDescriptor,
};
/***************************************************************************************
* Descriptor : oBrowserBookDescriptor
*
* Purpose : The browser book is the container for browser pages. Only one page is active
* at any time. Each page is composed of a tab button always visible and a window,
* which is visible when the page is active
****************************************************************************************/
static CONST MS_DESCRIPTOR_BROWSER_BOOK oBrowserBookDescriptor =
{// MS_DESCRIPTOR_CONTAINER
{// MS_DESCRIPTOR
sizeof(MSO_BROWSER_BOOK),
MS_NAV_NULL,
MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
{
AREA_BOOK_X, AREA_BOOK_Y, AREA_BOOK_W, AREA_BOOK_H
},
_BookOperation,
mpfFillOsdSegNull,
mpParamNull
},
maContentsNull,
mwNbrContentsNull,
};
/***************************************************************************************
* Descriptor : oDescriptorPopupContainer
*
* Purpose : The Pop up container descriptor.
****************************************************************************************/
static CONST MS_DESCRIPTOR_CONTAINER oDescriptorPopupContainer =
{
{
sizeof(MSO_CONTAINER),
MS_NAV_NULL,
MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
{
AREA_POPUP_X,
AREA_POPUP_Y,
AREA_POPUP_W,
AREA_POPUP_H,
},
_PopupContainerOperation,
mpfFillOsdSegNull,
mpParamNull,
},
maContentsNull,
mwNbrContentsNull,
};
/***************************************************************************************
* Descriptor : oBrowserDescriptor
*
* Purpose : The browser book is the container for browser pages. Only one page is active
* at any time. Each page is composed of a tab button always visible and a window,
* which is visible when the page is active
****************************************************************************************/
static CONST MS_DESCRIPTOR_CONTAINER oBrowserDescriptor =
{// MS_DESCRIPTOR_CONTAINER
{// MS_DESCRIPTOR
sizeof(MSO_BROWSER),
MS_NAV_NULL,
MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
{
AREA_BROWSER_X, AREA_BROWSER_Y, AREA_BROWSER_W, AREA_BROWSER_H
},
_BrowserOperation,
mpfFillOsdSegNull,
mpParamNull
},
maContentsNull,
mwNbrContentsNull,
};
/***************************************************************************************
* Descriptor : oDescriptorClipsDigest
*
* Purpose : Descriptor of digest component.
****************************************************************************************/
// TODO: remove this to clips or run time menu
#ifdef D_JPEG_DIGEST_SUPPORT
//This descriptor may be no need. which should put into clips menu or run time menu
static CONST MS_DESCRIPTOR_DIGEST_COMPONENT oDescriptorClipsDigest =
{
{//MS_DESCRIPTOR_CONTAINER
{//MS_DESCRIPTOR
sizeof(MSO_DIGEST_COMPONENT),
MS_NAV_NULL,
MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE |MS_ATTR_OSD_LAYER_1,
{
AREA_DIGEST_X,
AREA_DIGEST_Y,
AREA_DIGEST_W,
AREA_DIGEST_H,
},
_DigestOperation,
mpfFillOsdSegNull,
mpParamNull,
},
maContentsNull,
mwNbrContentsNull
},
NULL//(MS_DESCRIPTOR*)&oDescriptorDigestItem
};
#endif//#ifdef D_JPEG_DIGEST_SUPPORT
/***************************************************************************************
* Descriptor : oClipsMenuDescriptor
*
* Purpose : THE Clips Menu.
****************************************************************************************/
enum
{
#ifdef D_GUI_CLIPS_MULTIPAGE
NBR_MENU_COUNT_WINDOW_BUTTON,
#endif
#ifdef D_GUI_HOME_BUTTON
NBR_MENU_COUNT_HOME_BUTTON,
#endif
NBR_MENU_COUNT_HELP_TEXT,
NBR_MENU_COUNT_MESSAGE_HANDLER,
NBR_MENU_CONTENTS
};
static CONST MS_DESCRIPTOR* CONST apMenuContents[NBR_MENU_CONTENTS] = {
#ifdef D_GUI_CLIPS_MULTIPAGE
(MS_DESCRIPTOR*)&oOpenWindowButtonDescriptor,
#endif // D_GUI_CLIPS_MULTIPAGE
#ifdef D_GUI_HOME_BUTTON
(MS_DESCRIPTOR*)&oHomeButtonDescriptor,
#endif // D_GUI_HOME_BUTTON
(MS_DESCRIPTOR*)&oHelpTextDescriptor,
(MS_DESCRIPTOR*)&oDescriptorMessageHandler
};
#define MALLOC_BYTE_OVERHEAD 8
#define UI_HEAP_BYTE_SIZE ( (4 * (MALLOC_BYTE_OVERHEAD + MAX(sizeof(ProgramList),sizeof(DirectoryBrowser)))) \
+ (4 * (MALLOC_BYTE_OVERHEAD + sizeof(ListNavigator))) \
/*+ (1 * (MALLOC_BYTE_OVERHEAD + sizeof(ProgramList)))*/ \
+(MALLOC_BYTE_OVERHEAD + sizeof(ProgramListTable)) \
+ (2 * (MALLOC_BYTE_OVERHEAD + (ID3_INDEX_ARRAY_SIZE * sizeof(UINT16)))))
#define UI_HEAP_BYTE_SIZE_INACTIVE ( (4 * (MALLOC_BYTE_OVERHEAD + MAX(sizeof(ProgramList),sizeof(DirectoryBrowser)))) \
+(MALLOC_BYTE_OVERHEAD + sizeof(ProgramListTable)) \
+ (4 * (MALLOC_BYTE_OVERHEAD + sizeof(ListNavigator))) )
// TODO: Don't use this struct to init.
static CONST MS_PARAM_CLIPS_MENU oClipsMenuParam = {
FALSE, // mbJpegHasFinished
NULL_INDEX, // Requested clip number.
INVALID_TIME, // Requested time index.
FALSE, // mbPlayJPEGINdefinitely.
#ifdef D_GUI_TOOLKIT_ADD_RIPPING
FALSE, // mbIsRipping.
0, // _mcRippingDummy
#endif // D_GUI_TOOLKIT_ADD_RIPPING
};
CONST MS_DESCRIPTOR_CLIPS_MENU oClipsMenuDescriptor =
{
{// MS_DESCRIPTOR_CONTAINER
{// MS_DESCRIPTOR
sizeof(MSO_CLIPS_MENU),
MS_NAV_CONTAINER_WRAP_UD | MS_NAV_CONTAINER_WRAP_LR,
MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
{
AREA_MENU_X,AREA_MENU_Y,AREA_MENU_W,AREA_MENU_H,
},
_MenuOperation,
mpfFillOsdSegNull,
(UINT8*)&oClipsMenuParam,
},
(CONST MS_DESCRIPTOR**)apMenuContents,
NBR_MENU_CONTENTS,
},
#ifdef D_GUI_CLIPS_MULTIPAGE
(MS_DESCRIPTOR*)&oOpenWindowButtonDescriptor,
#else // D_GUI_CLIPS_MULTIPAGE
(MS_DESCRIPTOR*)&oBrowserVListDescriptor,
#endif // D_GUI_CLIPS_MULTIPAGE
_Layout,
{
GUI_MEMPOOL_BYTE_SIZE_LARGE,
UI_HEAP_BYTE_SIZE,
UI_HEAP_BYTE_SIZE_INACTIVE
},
eStartup
};
/***************************************************************************************
* Array : aTools
*
* Purpose : Contains an array of pointer to descriptors of the objects that would be
* added to the toolkit (oToolKitDescriptor).
****************************************************************************************/
static CONST MS_DESCRIPTOR* CONST aTools[] = {
(MS_DESCRIPTOR*)&oFilterChoiceDescriptor,
#ifdef D_GUI_TOOLKIT_ADD_INTRO
(MS_DESCRIPTOR*)&oIntroButtonDescriptor,
#endif // D_GUI_TOOLKIT_ADD_INTRO
#ifdef D_GUI_TOOLKIT_ADD_SHUFFLE
(MS_DESCRIPTOR*)&oShuffleChoiceDescriptor,
#endif // D_GUI_TOOLKIT_ADD_SHUFFLE
(MS_DESCRIPTOR*)&oRepeatChoiceDescriptor,
#ifdef D_GUI_TOOLKIT_ADD_REPEATAB
(MS_DESCRIPTOR*)&oRepeatABChoiceDescriptor,
#endif // D_GUI_TOOLKIT_ADD_REPEATAB
#ifdef D_GUI_TOOLKIT_ADD_RIPPING
(MS_DESCRIPTOR*)&oRippingButtonDescriptor,
#endif // D_GUI_TOOLKIT_ADD_RIPPING
#ifdef D_GUI_TOOLKIT_ADD_PROGRAM
(MS_DESCRIPTOR*)&oProgramButtonDescriptor,
#endif // D_GUI_TOOLKIT_ADD_PROGRAM
#ifdef D_GUI_CLIPS_PLAY_MODE
(MS_DESCRIPTOR*)&oPlayModeChoiceDescriptor,
#endif// D_GUI_CLIPS_PLAY_MODE
#ifdef D_GUI_CLIPS_EDIT_MODE
(MS_DESCRIPTOR*)&oEditModeButtonDescriptor,
#endif//D_GUI_CLIPS_EDIT_MODE
#ifdef D_GUI_CLIPS_PROGRAM_VIEW
(MS_DESCRIPTOR*)&oViewButtonDescriptor,
(MS_DESCRIPTOR*)&oAddClearProgramBtnDescriptor,
#endif//D_GUI_CLIPS_PROGRAM_VIEW
#if D_SUPPORT_SACD
(MS_DESCRIPTOR*)&oSwitchSACDLayerButtonDescriptor,
#endif // D_SUPPORT_SACD
NULL // IMPORTANT : Last item must always be NULL.
};
/***************************************************************************************
* Descriptor : oToolkitValueVListDescriptor
*
* Purpose : An MSO_VLIST that contains an array of tools.
****************************************************************************************/
static CONST MS_PARAM_VLIST oToolkitValueVListParam = {
0, // Total number of items in the list.
0,// Index of the first item.
NBR_MSO_LISTITEM_MAX_VISIBLE, // Number of visible items.
0, // mcItemOffset
0
};
static CONST MS_DESCRIPTOR_VLIST oToolkitValueVListDescriptor =
{ // Container descriptor start
{// Descriptor start
sizeof(MSO_VLIST),
MS_NAV_CONTAINER_WRAP_UD | MS_NAV_DISABLE_LR | MS_NAV_CONTAINER_GOTO_PREV_FOCUS | MS_NAV_CONTAINER_GOTO_TOP,
MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0 | MS_ATTR_VLIST_SCROLL_SINGLE_ITEM,
{
// This object is resized by it parent, so we don't care defining its position and dimensions
0,0,0,0
},
VListOperation,
mpfFillOsdSegNull,
(UINT8*)&oToolkitValueVListParam
},// Descriptor end
maContentsNull,
mwNbrContentsNull,
};
/***************************************************************************************
* Descriptor : oToolkitValueVScrollListDescriptor
*
* Purpose : An MSO_VSCROLL_LIST that contain the toolkit and displays the Up/Down arrows
* if there are more items in the toolkit then can be displayed.
****************************************************************************************/
static CONST MS_DESCRIPTOR_VSCROLL_LIST oToolkitValueVScrollListDescriptor =
{
{ // Container descriptor start
{ // Descriptor start
sizeof(MSO_VSCROLL_LIST),
MS_NAV_CONTAINER_GOTO_PREV_FOCUS,
MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_1 | MS_ATTR_INVISIBLE | MS_ATTR_VSLIST_DISPLAY_BG_BMP | MS_ATTR_VSLIST_SCROLL_ARROW,
{
AREA_TOOLKIT_VALUE_SCROLL_LIST_X,
AREA_TOOLKIT_VALUE_SCROLL_LIST_Y,
AREA_TOOLKIT_VALUE_SCROLL_LIST_W,
AREA_TOOLKIT_VALUE_SCROLL_LIST_H
},
_ToolkitValueVScrollListOperation,
VScrollListFillOSDSeg,
mpParamNull,
}, // Descriptor end
maContentsNull,
mwNbrContentsNull,
}, // Container descriptor end
(MS_DESCRIPTOR_VLIST*)&oToolkitValueVListDescriptor, // mpDescriptorVList
TOOLKIT_VALUE_SCROLL_LIST_XPADDING, // X Padding
TOOLKIT_VALUE_SCROLL_LIST_YPADDING, // Y Padding
CIDX_8, // Text color
BMP_BG_2, // Background bitmap
BMP_BG_PUSHED_1, // Scrollbar background bitmap
BMP_BG_3 // Scrollbar bitmap
};
#ifdef D_CD_GRAPHIC_ENABLED
static CONST MS_OP aMsOpAllowedInCDG[]=
{
MS_OP_POWER,
MS_OP_EJECT,
MS_OP_PLAY,
MS_OP_STOP,
MS_OP_PAUSE,
MS_OP_SKIPB,
MS_OP_SKIPF,
//MS_OP_FASTB,
//MS_OP_FASTF,
MS_OP_MUTE,
MS_OP_SETUP,
};
#define NUM_OP_IN_CDG (sizeof(aMsOpAllowedInCDG)/sizeof(MS_OP))
#endif//D_CD_GRAPHIC_ENABLED
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -