⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guiparser.h

📁 sigmadesign smp8623 gui source code ,bingo
💻 H
字号:
/***************************************** Copyright  2001-2003 Sigma Designs, Inc. All Rights Reserved Proprietary and Confidential *****************************************//**  @file   guiparser.h  @brief  gui xml parser  @author Raul Chirinos, Laurent Crinon  @date   2004-03-02*/#ifndef __RMCURACAOGUI_PARSER_H__#define __RMCURACAOGUI_PARSER_H__#include "rmdef/rmdef.h"#include "rmtinyxml/src/tinyxml/tinyxml.h"#include "guitypes.h"// xml KiSS addon#ifdef GUI_REFID_2#define DEFAULT_FONT		"KiSS_Cinea_18_8859_1"#ifdef GUI_REFID_3#define DEFAULT_FOREGROUNDCOLOR "0xe0ffffff"//#define DEFAULT_BACKGROUNDCOLOR "0xe0372b3d"#define DEFAULT_BACKGROUNDCOLOR "0xe0372b3d"#define DEFAULT_BUTTON_BACKGROUNDCOLOR "0xe0877b8d"#define DEFAULT_TRANSPERACY_COLOR  "0x80ff0000"#define DEFAULT_MENUITEM_COLOR  "0xe0ffffff"#define DEFAULT_MENU_COLOR  	"0xe0ffffff"#define DEFAULT_POPUP_FILE	"popupbox_small.png"#define BIG_POPUP_FILE		"popupbox_big.png"#define DEFAULT_POPUP_X		"200"#define DEFAULT_POPUP_Y		"150"#define DEFAULT_BIGPOPUP_X	"100"#define DEFAULT_BIGPOPUP_Y	"105"#define DEFAULT_MENU_X		"163"#define DEFAULT_MENU_Y		"102"#define DEFAULT_ICON_WIDTH	"26"#else#define DEFAULT_FOREGROUNDCOLOR "0xd0ffffff"#define DEFAULT_BACKGROUNDCOLOR "0xd0152747"#define DEFAULT_BUTTON_BACKGROUNDCOLOR "0xd07589A2"#define DEFAULT_TRANSPERACY_COLOR  "0x80ff0000"#define DEFAULT_MENUITEM_COLOR  "0x80fdcb1f"#define DEFAULT_MENU_COLOR  	"0xd0ffffff"#define DEFAULT_POPUP_FILE	"popupbox_small.png"#define BIG_POPUP_FILE		"popupbox_big.png"#define DEFAULT_POPUP_X		"200"#define DEFAULT_POPUP_Y		"150"#define DEFAULT_BIGPOPUP_X	"100"#define DEFAULT_BIGPOPUP_Y	"105"#define DEFAULT_MENU_X		"163"#define DEFAULT_MENU_Y		"128"#define DEFAULT_ICON_WIDTH	"26"#endif//10 subtracted#define DEFAULT_SLIDER_X	"110"#define DEFAULT_SLIDER_Y	"400"#define DEFAULT_MENU_HEIGHT	"360"#define DEFAULT_MENU_WIDTH	"485"#define DEFAULT_SLIDER_WIDTH	"500"#define DEFAULT_SLIDER_HEIGHT	"34"#define DEFAULT_STRING_WIDTH	"520"#define DEFAULT_STRING_HEIGHT	"20"#define KEYBOARD_WIDTH_REGULAR	48#define KEYBOARD_WIDTH_WIDE	96#define KEYBOARD_HEIGHT		44#define KEYBOARD_Y_OFFSET	156#define KEYBOARD_X_OFFSET	72#define KEYBOARD_X_MARGIN	0#define KEYBOARD_Y_MARGIN	0#else#define DEFAULT_FONT		"SigmaOSD118x23"#endif // GUI_REFID_2// xml identifiers#define XMLBUTTON_NODE		"button"#define XMLBITMAP_NODE		"bitmap"#define XMLMEDIACONTROL_NODE	"mediaControls"#define XMLPANEL_NODE		"panel"#define XMLSCREENFORMAT_NODE	"screenFormat"#define XMLMAINPAGE_NODE	"mainPage"#define XMLMESSAGEPOPUP_NODE	"messagePopup"#define XMLURL_NODE		"url"#define XMLOSDPAGELIST_NODE	"osdPageList"#define XMLWIDTH_NODE		"width"#define XMLHEIGHT_NODE		"height"#define XMLDEFAULT_NODE		"default"#define XMLOSDPAGE_NODE		"osdPage"#define XMLDYNPAGE_NODE		"dynamic"#define XMLNAME_NODE		"name"#define XMLSHADOW_NODE		"shadow"#define XMLFILE_NODE		"file"#define XMLORIENTATION_NODE	"orientation"#define XMLSELECTOVERLAY_NODE	"selectoverlay"#define XMLURL_NODE			"url"#define XMLSKIN_NODE		"skin"#define XMLSELECTEDFILE_NODE	"selectedFile"#define XMLITEMPATH_NODE	"path"#define XMLDIRECTOR_NODE	"director"#define XMLPRICE_NODE		"price"#define XMLDESCRIPTION_NODE "description"#define XMLACTORS_NODE		"actors"#define XMLCOMPANY_NODE		"company"#define XMLSUBTITLES_NODE	"subtitles"#define XMLTIME_NODE		"time"#define XMLYEAR_NODE		"year"#define XMLFILETYPE_NODE	"filetype"#define XMLX_NODE		"x"#define XMLY_NODE		"y"#define XMLITEMSPAGE_NODE	"itemsPage"#define XMLEXTENDEDLIST_NODE	"extended"#define XMLARROMUP_NODE		"fileArrowUp"#define XMLINFO_NODE		"info"#define XMLARROMUPINACTIVE_NODE		"fileArrowUpInactive"#define XMLARROMDOWN_NODE		"fileArrowDown"#define XMLARROMDOWNINACITVE_NODE		"fileArrowDownInactive"#define XMLVISIBLE_NODE		"visible"#define XMLEVENTLIST_NODE	"eventList"#define XMLBUTTONLIST_NODE	"buttonList"#define XMLBITMAPLIST_NODE	"bitmapList"#define XMLICONLIST_NODE	"iconList"#define XMLEVENT_NODE		"event"#define XMLBACKGROUNDCOLOR_NODE "backgroundcolor"#define XMLFOREGROUNDCOLOR_NODE "foregroundcolor"#define XMLBORDER_NODE			"border"#define XMLOUTLINECOLOR_NODE 	"outlinecolor"#define XMLSELECTIONCOLOR_NODE	"selectioncolor"#define XMLTRANSPARENTCOLOR_NODE "transparentcolor"#define XMLUSETRANSPARENTCOLOR_NODE "usetransparentcolor"#define XMLFONTFILE_NODE	"fontfile"#define XMLCHARWIDTH_NODE	"charwidth"#define XMLROUNDED_NODE		"rounded"#define XMLTEXT_NODE		"text"#define XMLSTATE_NODE		"state"#define XMLPREVPAGE_NODE	"previousPage"#define XMLKEYDOWN_NODE		"keydown"#define XMLKEYUP_NODE		"keyup"#define XMLKEYLEFT_NODE		"keyleft"#define XMLKEYRIGHT_NODE	"keyright"#define XMLCOMMAND_NODE		"command"#define XMLLINK_NODE		"link"#define XMLCOMMANDLIST_NODE	"commandList"#define XMLID_NODE		"id"#define XMLMENU_NODE		"menu"#define XMLMENUITEM_NODE	"menuitem"#define XMLMENULIST_NODE	"menuList"#define XMLMENUITEMLIST_NODE	"menuitemList"#define XMLINDEX_NODE		"index"#define XMLTEXTALIGN_NODE	"textalign"#define XMLTEXTVALUE_NODE	"textvalue"#define XMLPOPUP_NODE		"popup"#define XMLPOPUPLIST_NODE	"popupList"#define XMLTRANSPARENTBACKGROUND_NODE "transparentbackground"#define XMLSTRING_NODE		"string"#define XMLSTRINGLIST_NODE	"stringList"#define XMLPASSWORD_NODE	"password"#define XMLSTRINGITEMLIST_NODE	"stringItemList"#define XMLSTRINGITEM_NODE	"stringItem"#define XMLLIST_NODE		"list"#define XMLLISTS_NODE		"Lists"#define XMLLISTITEMS_NODE	"listItems"#define XMLITEM_NODE		"item"#define XMLICON_NODE		"icon"#define XMLICONLIST_NODE	"iconList"#define XMLTYPE_NODE		"type"#define XMLTHUMBFULL_NODE	"full"#define XMLTHUMB_NODE		"thumb"#define XMLTHUMBMID_NODE	"thumbMid"#define XMLTHUMBSTARTX_NODE	"thumbStartX"#define XMLTHUMBSTARTY_NODE	"thumbStartY"#define XMLTHUMBENDX_NODE	"thumbEndX"#define XMLTHUMBENDY_NODE	"thumbEndY"#define XMLEVENTBITMAPLIST_NODE "eventBitmapList"#define XMLSLIDERLIST_NODE	"sliderList"#define XMLSLIDER_NODE		"slider"#define XMLMIN_NODE		"min"#define XMLMAX_NODE		"max"#define XMLSTEPS_NODE		"steps"#define XMLVALUE_NODE		"value"#define XMLSELECTEDOBJECT_NODE	"selectedObject"#define XMLTEXTTABLELIST_NODE	"textTableList"#define XMLTEXTTABLE_NODE	"textTable"#define XMLTEXTITEMLIST_NODE	"textItemList"#define XMLTEXTITEM_NODE	"textItem"#define XMLCOLUMNS_NODE		"columns"#define XMLROW_NODE		"row"#define XMLCOLUMN_NODE		"column"#define XMLMERGECOLUMNS_NODE	"mergecolumns"#define XMLCOLUMNWIDTH_NODE	"columnWidth"#define XMLMEDIALIST_NODE	"mediaList"#define XMLMEDIA_NODE		"media"#define XMLDURATION_NODE	"duration"#define XMLWHENDONE_NODE	"whenDone"#define XMLCANSKIP_NODE		"canskip"#define XMLCHAPTER_NODE		"chapter"#define XMLCHAPTERLIST_NODE	"chapterList"#define XMLSTARTTIME_NODE	"startTime"#define XMLMENUOUTLINECOLOR_NODE "menuOutlineColor"#define XMLMINLENGTH_NODE     "minLength"#define XMLMAXLENGTH_NODE     "maxLength"#define XMLZINDEX_NODE		"zIndex"#define XMLINVERTDISPLAY_NODE	"invertDisplay"#define XMLICONWIDTH_NODE	"iconWidth"class RMcuracaoGuiParser{ public:	RMcuracaoGuiParser();	~RMcuracaoGuiParser();	RMstatus DoParsing(RMnonAscii *xmlFile);	guiOsdPageType* ParseWEBPage(guiOsdPageType **pages, RMuint8 pageId, RMuint8* buffer, RMuint16 size);	guiListType* ParseWEBList(guiOsdPageType **pages, RMuint32 pageId, RMuint8* buffer, RMuint16 size);	guiPopupType* ParseWEBPopup(guiPopupType** popups, RMuint16* nbPopups, RMuint8* buffer, RMuint16 size);	guiListItemType* RefreshListItem(RMuint32 pageId, RMuint16 listId, RMuint16 itemId, RMuint8* buffer, RMuint16 size);	RMstatus Close();	RMstatus GetPlayerParams(guiPlayerParams *params);	RMstatus GetPages(guiOsdPageType *pages[MAX_GUI_PAGES], RMuint16 *npages);	RMstatus GetMediaControls(guiMediaControls **controls);	RMstatus GetScreenFormat(guiScreenFormatType* screenFormat);	RMstatus GetCommands(guiCommandType *commands[MAX_GUI_COMMANDS], RMuint16 *ncommands);	RMstatus GetPopups(guiPopupType *popup[MAX_GUI_POPUPS], RMuint16 *npopups);	RMstatus GetIcons(guiIconType *icon[MAX_GUI_ICONS], RMuint16 *nicons);	RMstatus GetEventBitmaps(guiBitmapType *icon[MAX_GUI_EVENTBITMAPS], RMuint16 *nbitmaps);	RMstatus GetSliders(guiSliderType *slider[MAX_GUI_SLIDERS], RMuint16 *nsliders);	RMstatus GetTextTables(guiTextTableType *texttable[MAX_GUI_TEXTTABLES], RMuint16 *ntextTables);	RMstatus GetMediaFiles(guiMediaType *media[MAX_GUI_MEDIA], RMuint16 *nmediaFiles);	RMstatus GetEvents(guiEventType *events[MAX_GUI_EVENTS], RMuint16 *nevents);	RMstatus UpdateMenuLink(RMascii* menuItem, RMascii* menuName, RMuint32 pageId);	const RMascii* GetUrl() {return m_url;}	const RMascii* GetBitmapPath() {return m_bitmapsPath;}#ifdef GUI_REFID_2	RMstatus updateObjectTextByName(RMascii *name, RMascii *objectText, RMbool multibleObjects);#endif private:	guiScreenFormatType m_screenFormat;	guiMediaControls *m_mediaControls;	guiOsdPageType *m_osdPages[MAX_GUI_PAGES];	guiCommandType *m_Commands[MAX_GUI_COMMANDS];	guiPopupType *m_Popups[MAX_GUI_POPUPS];	guiIconType *m_Icons[MAX_GUI_ICONS];	guiBitmapType *m_EventBitmaps[MAX_GUI_EVENTBITMAPS];	guiSliderType *m_Sliders[MAX_GUI_SLIDERS];	guiTextTableType *m_TextTables[MAX_GUI_TEXTTABLES];	guiMediaType *m_MediaFiles[MAX_GUI_MEDIA];	guiEventType *m_Events[MAX_GUI_EVENTS];	guiPlayerParams m_playerParams;	RMascii* m_url;	RMascii* m_bitmapsPath;	RMuint16 m_nbOsdPages;	RMuint16 m_nbCommands;	RMuint16 m_nbPopups;	RMuint16 m_nbIcons;	RMuint16 m_nbEventBitmaps;	RMuint16 m_nbSliders;	RMuint16 m_nbTextTables;	RMuint16 m_nbMediaFiles;	RMuint16 m_nbEvents;	// these are used only to set ids. pages use their index number as id	RMuint32 m_nextButtonId;	RMuint32 m_nextBitmapId;	RMuint32 m_nextMenuId;	RMuint32 m_nextSubMenuButtonId;	RMuint32 m_nextListId;	RMuint32 m_nextStringId;	RMuint32 m_nextChapterId;	RMuint32 ConvertSMPTEtoSecs(const RMascii* str); private: 	RMstatus ParseScreenFormat(TiXmlElement *pnode);	RMstatus ParsePageList(TiXmlElement *pnode);	RMstatus ParseMediaControls(TiXmlElement *pnode);	guiPanelType* ParsePanels(TiXmlElement *pnode);	guiOsdPageType* ParseOsdPage(TiXmlElement *pnode);	RMstatus ParseEventList(TiXmlElement *pnode, guiEventType *events[MAX_GUI_EVENTS], RMuint16 *nbEvents);	guiEventType *ParseEvent(TiXmlElement *pnode);	RMstatus ParseEventList(TiXmlElement *pnode);	RMstatus ParseButtonList(TiXmlElement *pnode, guiButtonType *buttons[MAX_GUI_BUTTONS], RMuint16 *nbButtons, guiMenuType *pMenu);	guiButtonType *ParseButton(TiXmlElement *pnode, guiMenuType *pMenu);	RMstatus ParseBitmapList(TiXmlElement *pnode, guiBitmapType *bitmaps[MAX_GUI_BITMAPS], RMuint16 *nbBitmaps);	guiBitmapType *ParseBitmap(TiXmlElement *pnode);	RMstatus ParseCommandList(TiXmlElement *pnode);	guiCommandType *ParseCommand(TiXmlElement *pnode);	RMstatus ParseMenuList(TiXmlElement *pnode, guiMenuType *menus[MAX_GUI_MENUS], RMuint16 *nbMenus);	guiMenuType *ParseMenu(TiXmlElement *pnode);	RMstatus ParseMenuItemList(TiXmlElement *pnode, guiMenuItemType *items[MAX_GUI_MENUITEMS], RMuint16 *nbItems, guiMenuType *pMenu);	guiMenuItemType *ParseMenuItem(TiXmlElement *pnode, guiMenuType *pMenu);	RMstatus ParsePopupList(TiXmlElement *pnode);	guiPopupType *ParsePopup(TiXmlElement *pnode);	RMstatus ParseStringList(TiXmlElement *pnode, guiStringType *items[MAX_GUI_STRINGS], RMuint16 *nbStrings);	guiStringType *ParseString(TiXmlElement *pnode);	RMstatus ParseLists(TiXmlElement *pnode, guiListType *lists[MAX_GUI_LISTS], RMuint16 *nbLists);	guiListType *ParseList(TiXmlElement *pnode);	RMstatus ParseIconList(TiXmlElement *pnode);	guiIconType *ParseIcon(TiXmlElement *pnode);	RMstatus ParseEventBitmapList(TiXmlElement *pnode);	RMstatus ParseSliderList(TiXmlElement *pnode);	guiSliderType *ParseSlider(TiXmlElement *pnode);	RMstatus ParseTextTableList(TiXmlElement *pnode);	guiTextTableType *ParseTextTable(TiXmlElement *pnode);	RMstatus ParseTextItemList(TiXmlElement *pnode, guiTextItemType *items[MAX_GUI_TEXTITEMS], RMuint16 *nbItems);	guiTextItemType *ParseTextItem(TiXmlElement *pnode);	RMstatus ParseMediaList(TiXmlElement *pnode);	guiMediaType *ParseMediaFile(TiXmlElement *pnode);	RMstatus ParseChapterList(TiXmlElement *pnode, guiChapterType *chapters[MAX_GUI_CHAPTERS], RMuint16 *nbChapters);	guiChapterType *ParseChapter(TiXmlElement *pnode);	RMstatus ParseListItems(TiXmlElement *pnode, guiListItemType *items[MAX_GUI_LISTITEMS], RMuint16 *nbItems, guiListType *pList);	guiListItemType *ParseListItem(TiXmlElement *pnode, guiListType *pList);	void FreeOsdPage(guiOsdPageType *page);	void FreePanel(guiPanelType* panel);	void FreeMediaControls(guiMediaControls* media);	void FreeEvent(guiEventType *event);	void FreeButton(guiButtonType *button);	void FreeBitmap(guiBitmapType *bitmap);	void FreeCommand(guiCommandType *command);	void FreeMenu(guiMenuType *menu);	void FreeMenuItem(guiMenuItemType *menuitem);	void FreePopup(guiPopupType *popup);	void FreeString(guiStringType *string);	void FreeList(guiListType *list);	void FreeIcon(guiIconType *item);	void FreeSlider(guiSliderType *slider);	void FreeTextTable(guiTextTableType *table);	void FreeTextItem(guiTextItemType *textitem);	void FreeMediaFile(guiMediaType *media);	void FreeChapter(guiChapterType *chapter);	void FreePlayerParams();	void FreeListItem(guiListItemType *item);	// auto key navigation functions	RMstatus DoPageAutoKeyNavigation(guiOsdPageType *page);	RMstatus DoPopupAutoKeyNavigation(guiPopupType *popup);};#endif // __RMCURACAOGUI_PARSER_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -