亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wmvhdparser.cpp.svn-base

?? sigmadesign smp8623 gui source code ,bingo
?? SVN-BASE
?? 第 1 頁 / 共 3 頁
字號:
/***************************************** Copyright  2001-2003   Sigma Designs, Inc. All Rights Reserved Proprietary and Confidential *****************************************/#ifndef ALLOW_OS_CODE#define ALLOW_OS_CODE 1#endif //ALLOW_OS_CODE#include "../common.h"#include "wmvhdparser.h"#include "guicommands.h"#include <dirent.h>// for ascii manipulation ... to be changed#include "rmcore/include/rmcore.h"#if 0#define GUIPARSERDBG ENABLE#else#define GUIPARSERDBG DISABLE#endif#define WMVHD_ROOT	"disc"#define WMVHD_XML	"disc.xml"#define PAGE_START_ID	0#define WMVHD_WIDTH	1280#define WMVHD_HEIGHT	720// set lower case for comparison#define DISC_SETSUBTITLE	"setsubtitle"#define DISC_SETAUDIOTRACK	"setaudiotrack"#define DISC_SETMAINMENU	"setmainmenu"RMWmvHDParser::RMWmvHDParser(RMascii* mountPoint)	:  m_disc(NULL),	   m_nbOsdPages(0),	   m_nbMediaFiles(0),	   m_nbCommands(0),	   m_nextButtonId(0),	   m_nextBitmapId(0),	   m_nextChapterId(0){	RMMemset((void*)m_osdPages, 0, MAX_GUI_PAGES * sizeof(guiOsdPageType*));	RMMemset((void*)m_MediaFiles, 0, MAX_GUI_MEDIA * sizeof(guiMediaType*));	RMMemset((void*)m_Commands, 0, MAX_GUI_COMMANDS * sizeof(guiCommandType*));	RMMemset(&m_metadata, 0, sizeof(guiWmvHDMetadataType));	RMMemset(m_mountPoint, 0, sizeof(m_mountPoint));		m_screenFormat.width = WMVHD_WIDTH;	m_screenFormat.height = WMVHD_HEIGHT;		if(mountPoint != NULL)		RMCopyAscii(m_mountPoint, mountPoint);	}RMWmvHDParser::~RMWmvHDParser(){	Close();}RMstatus RMWmvHDParser::DoParsing(){ 	RMstatus status = RM_OK;	TiXmlElement* pnode = 0;		RMascii *xmlFile = RMCatAscii(m_mountPoint, WMVHD_XML, NULL);		TiXmlDocument doc(xmlFile);	if(doc.LoadFile() == FALSE){		fprintf(stderr, "Failed parsing %s in (row, col) (%d, %d)\n", xmlFile, doc.ErrorRow(), doc.ErrorCol());		RFREE(xmlFile);		return RM_ERROR;	}		pnode = doc.FirstChildElement("disc");		if(pnode == NULL){		RFREE(xmlFile);		RMDBGLOG((GUIPARSERDBG, "failed to get root element [%s]\n", WMVHD_ROOT));			return RM_ERROR;	}					m_disc = ParseDisc(pnode);	if(m_disc == NULL)		status = RM_ERROR;			RFREE(xmlFile);	return status;}RMstatus RMWmvHDParser::GetScreenFormat(guiScreenFormatType* screenFormat){	RMMemcpy(screenFormat, &m_screenFormat, sizeof(guiScreenFormatType));	return RM_OK;}RMstatus RMWmvHDParser::Close(){	if(m_disc != NULL){		FreeDisc(m_disc);		m_disc = NULL;	}		return RM_OK;}RMstatus RMWmvHDParser::GetPlayerParams(guiPlayerParams *params){	if(m_disc->mainmediaID == NULL)		return RM_ERROR;			params->mainPage = m_disc->mainmenuID;	return RM_OK;}////////////////////////////////////////////////////////////////////////////////// DISC////////////////////////////////////////////////////////////////////////////////RMstatus RMWmvHDParser::GetDiscInfo(guiWmvHDDiscType *discInfo){	RMMemcpy(discInfo, m_disc, sizeof(guiWmvHDDiscType));	return RM_OK;}guiWmvHDDiscType* RMWmvHDParser::ParseDisc(TiXmlElement *pnode){	guiWmvHDDiscType* disc;	const RMascii *str;	TiXmlElement *ptempNode;	RMuint64 region;	disc =(guiWmvHDDiscType*)CALLOC(1, sizeof(guiWmvHDDiscType));		str = pnode->Attribute(XMLID_NODE, true);	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read id (ParseDisc) ... error\n"));		goto invalidDisc;	}	else {		disc->name = STRDUP(str);	}	str = pnode->Attribute(XMLMAINMENUID_NODE, true);	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read mainmenuID (ParseDisc) ... error\n"));		goto invalidDisc;	}	else {		disc->mainmenuID = STRDUP(str);	}	str = pnode->Attribute(XMLMAINMEDIAID_NODE, true);	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read mainmediaID (ParseDisc) ... error\n"));		goto invalidDisc;	}	else {		disc->mainmediaID = STRDUP(str);			}	str = pnode->Attribute(XMLREGION_NODE, true);	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read region (ParseDisc) ... error\n"));		goto invalidDisc;	}	else {		if(str[0] == '0'){			// hexa			RMasciiHexToUint64(str+1, &region);			disc->region = (region >> 20);			if(disc->region > 8){				disc->region = (region >> 24);				if(disc->region > 8){					RMDBGLOG((GUIPARSERDBG, "Invalid region value default to region 1\n"));					goto invalidDisc;				}							}		}		else{			RMDBGLOG((GUIPARSERDBG, "Invalid region value default to region 1\n"));			disc->region = 1;		}		}	str = pnode->Attribute(XMLDEFAULTLANGUAGE_NODE, true);	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read defaultLanguage (ParseDisc) ... ignoring\n"));			}	else {		disc->defaultLanguage = STRDUP(str);	}			str = pnode->Attribute(XMLSTARTUPOBJECT_NODE, true);	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read startupObject ... error\n"));		goto invalidDisc;	}	else {		disc->startupObject = STRDUP(str);	}		for(ptempNode = pnode->FirstChildElement(); ptempNode != NULL; ptempNode = ptempNode->NextSiblingElement()) {       		str = ptempNode->Value();		if (str == (RMascii *)NULL)			continue;		RMDBGLOG((GUIPARSERDBG, "node : %s\n", (char*)str));		if (RMCompareAsciiCaseInsensitively (str, (RMascii *)XMLMENUOBJECT_NODE)) {			m_osdPages[m_nbOsdPages] = ParseOsdPage(ptempNode);			if(m_osdPages[m_nbOsdPages] != (guiOsdPageType*)NULL){				m_nbOsdPages++;			}		}		else if (RMCompareAsciiCaseInsensitively (str, (RMascii *)XMLMEDIAOBJECT_NODE)) {			m_MediaFiles[m_nbMediaFiles] = ParseMediaFile(ptempNode);			if(m_MediaFiles[m_nbMediaFiles] != (guiMediaType*)NULL){				m_nbMediaFiles++;			}		}		else if(RMCompareAsciiCaseInsensitively (str, (RMascii *)XMLSUPPORTTEXT_NODE)) {			SetMetadataValue(ptempNode, XMLSUPPORTTEXT_NODE);					}		else if(RMCompareAsciiCaseInsensitively (str, (RMascii *)XMLCONTENTDISTRIBUTOR_NODE)) {			SetMetadataValue(ptempNode, XMLCONTENTDISTRIBUTOR_NODE);					}		else if(RMCompareAsciiCaseInsensitively (str, (RMascii *)XMLCOPYRIGHT_NODE)) {			SetMetadataValue(ptempNode, XMLCOPYRIGHT_NODE);					}		else if(RMCompareAsciiCaseInsensitively (str, (RMascii *)XMLTITLE_NODE)) {			SetMetadataValue(ptempNode, XMLTITLE_NODE);					}		else if(RMCompareAsciiCaseInsensitively (str, (RMascii *)XMLGENRE_NODE)) {			SetMetadataValue(ptempNode, XMLGENRE_NODE);					}		else if(RMCompareAsciiCaseInsensitively (str, (RMascii *)XMLDIRECTOR_NODE)) {			SetMetadataValue(ptempNode, XMLDIRECTOR_NODE);					}		else {			RMDBGLOG((GUIPARSERDBG, "unknown node [%s] in disc\n", str));		}	}			RMDBGLOG((GUIPARSERDBG, "end disc\n"));	return disc; invalidDisc:	FreeDisc(disc);	return (guiWmvHDDiscType*)NULL;}void RMWmvHDParser::FreeDisc(guiWmvHDDiscType *disc){	if(disc == NULL)		return;			if(disc->name != (RMascii *)NULL){		RFREE(disc->name);		disc->name = NULL;	}				if(disc->mainmenuID != (RMascii *)NULL){		RFREE(disc->mainmenuID);		disc->mainmenuID = NULL;	}				if(disc->mainmediaID != (RMascii *)NULL){		RFREE(disc->mainmediaID);		disc->mainmediaID = NULL;	}		if(disc->defaultLanguage != (RMascii *)NULL){		RFREE(disc->defaultLanguage);		disc->defaultLanguage = NULL;	}	if(disc->startupObject != (RMascii *)NULL){		RFREE(disc->startupObject);		disc->startupObject = NULL;	}		for(RMuint16 i = 0; i < m_nbOsdPages; i++){		FreeOsdPage(m_osdPages[i]);		m_osdPages[i] = NULL;	}	for(RMuint16 i = 0; i < m_nbMediaFiles; i++){		FreeMediaFile(m_MediaFiles[i]);		m_MediaFiles[i] = NULL;	}	for(RMuint16 i = 0; i < m_nbCommands; i++){		FreeCommand(m_Commands[i]);		m_Commands[i] = NULL;	}		FreeMetadata();	RFREE(disc);}////////////////////////////////////////////////////////////////////////////////// METADATA////////////////////////////////////////////////////////////////////////////////RMstatus RMWmvHDParser::GetMetadata(guiWmvHDMetadataType *metadata){	RMMemcpy(metadata, &m_metadata, sizeof(m_metadata));	return RM_OK;	}RMstatus RMWmvHDParser::SetMetadataValue(TiXmlElement *pnode, RMascii *nodename){	const RMascii *str;	TiXmlNode *ptempNode;	ptempNode = pnode->FirstChild();	if(ptempNode == NULL)		return RM_ERROR;		str = ptempNode->Value();	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read metadata value... error\n"));		return RM_ERROR;	}		if(RMCompareAsciiCaseInsensitively (nodename, (RMascii *)XMLSUPPORTTEXT_NODE)) {		m_metadata.supportText = STRDUP(str);	}	else if(RMCompareAsciiCaseInsensitively (nodename, (RMascii *)XMLCONTENTDISTRIBUTOR_NODE)) {		m_metadata.contentDistributor = STRDUP(str);	}	else if(RMCompareAsciiCaseInsensitively (nodename, (RMascii *)XMLCOPYRIGHT_NODE)) {		m_metadata.copyright = STRDUP(str);	}	else if(RMCompareAsciiCaseInsensitively (nodename, (RMascii *)XMLTITLE_NODE)) {		m_metadata.title = STRDUP(str);	}	else if(RMCompareAsciiCaseInsensitively (nodename, (RMascii *)XMLGENRE_NODE)) {		m_metadata.genre = STRDUP(str);	}	else if(RMCompareAsciiCaseInsensitively (nodename, (RMascii *)XMLDIRECTOR_NODE)) {		m_metadata.director = STRDUP(str);	}	else		return RM_ERROR;			return RM_OK;}void RMWmvHDParser::FreeMetadata(){	if(m_metadata.supportText != (RMascii *)NULL){		RFREE(m_metadata.supportText);		m_metadata.supportText = NULL;	}	if(m_metadata.contentDistributor != (RMascii *)NULL){		RFREE(m_metadata.contentDistributor);		m_metadata.contentDistributor = NULL;	}	if(m_metadata.copyright != (RMascii *)NULL){		RFREE(m_metadata.copyright);		m_metadata.copyright = NULL;	}	if(m_metadata.title != (RMascii *)NULL){		RFREE(m_metadata.title);		m_metadata.title = NULL;	}	if(m_metadata.genre != (RMascii *)NULL){		RFREE(m_metadata.genre);		m_metadata.genre = NULL;	}	if(m_metadata.director != (RMascii *)NULL){		RFREE(m_metadata.director);		m_metadata.director = NULL;	}}////////////////////////////////////////////////////////////////////////////////// PAGE -- MENU OBJECT////////////////////////////////////////////////////////////////////////////////guiOsdPageType* RMWmvHDParser::ParseOsdPage(TiXmlElement *pnode){	const RMascii *str;	guiOsdPageType* page;	TiXmlElement *ptempNode;	RMuint8 index = 0;	RMuint8 zIndex = 0;			page =(guiOsdPageType*)CALLOC(1, sizeof(guiOsdPageType));		str = pnode->Attribute(XMLID_NODE, true);	if (str == (RMascii *)NULL) {		RMDBGLOG((GUIPARSERDBG, "Could not read id (ParseOsdPage) ... error\n"));		goto invalidPage;	}	else {		page->name = STRDUP(str);	}		// set visibility -- not defined in WMHD xml	page->object.visible = TRUE;		for(ptempNode = pnode->FirstChildElement(); ptempNode != NULL; ptempNode = ptempNode->NextSiblingElement()) {       		str = ptempNode->Value();		if (str == (RMascii *)NULL)			continue;		RMDBGLOG((GUIPARSERDBG, "node : %s\n", (char*)str));		if (RMCompareAsciiCaseInsensitively (str, XMLIMAGE_NODE)) {			page->bitmaps[page->nbBitmaps] = ParseBitmap(ptempNode);			if(page->bitmaps[page->nbBitmaps] != (guiBitmapType*)NULL){				page->nbBitmaps++;			}					}		else if (RMCompareAsciiCaseInsensitively (str, XMLBUTTON_NODE)) {			page->buttons[page->nbButtons] = ParseButton(ptempNode);			if(page->buttons[page->nbButtons] != (guiButtonType*)NULL){				page->nbButtons++;			}					}		else {			RMDBGLOG((GUIPARSERDBG, "unknown node [%s] in menuobject\n", str));		}	}			// find path	for(RMuint8 i = 0; i < page->nbBitmaps; i++){		if(i == 0)			zIndex = page->bitmaps[i]->object.zIndex;		if(page->bitmaps[i]->object.zIndex <= zIndex)			index = i;	}	RMASSERT(page->nbBitmaps);		if(page->nbBitmaps == 0)		goto invalidPage;		page->object.file = STRDUP(page->bitmaps[index]->object.file);	// mark bitmap as non-visible not to draw it twice	page->bitmaps[index]->object.visible = FALSE;		// set default button as the first in the list	if(page->nbButtons){		page->selectedObject = STRDUP(page->buttons[0]->name);		page->buttons[0]->object.state = STATE_SELECTED;	}			// set ids	page->id = m_nbOsdPages + PAGE_START_ID;	RMDBGLOG((GUIPARSERDBG, "end page\n"));	return page; invalidPage:	FreeOsdPage(page);	return (guiOsdPageType*)NULL;}void RMWmvHDParser::FreeOsdPage(guiOsdPageType *page){	RMuint16 i;		if(page == NULL)		return;			if(page->name != (RMascii *)NULL){		RFREE(page->name);		page->name = NULL;	}				if(page->selectedObject != (RMascii *)NULL){		RFREE(page->selectedObject);		page->selectedObject = NULL;	}				if(page->object.file != (RMascii *)NULL){		RFREE(page->object.file);		page->object.file = NULL;	}		for(i=0; i < page->nbButtons; i++){		FreeButton(page->buttons[i]);		page->buttons[i] = NULL;	}	for(i=0; i < page->nbBitmaps; i++){		FreeBitmap(page->bitmaps[i]);		page->bitmaps[i] = NULL;	}	RFREE(page);}RMstatus RMWmvHDParser::GetPages(guiOsdPageType *pages[MAX_GUI_PAGES], RMuint16 *nPages){	if(m_nbOsdPages){		RMMemcpy(pages, m_osdPages, sizeof(m_osdPages));		*nPages = m_nbOsdPages;		return RM_OK;	}	return RM_ERROR;}////////////////////////////////////////////////////////////////////////////////// EVENTS////////////////////////////////////////////////////////////////////////////////// These are allocated while the parent object is parsed

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产福利精品一区二区| 亚洲欧美一区二区三区国产精品 | 国产精品每日更新| 激情文学综合网| 久久九九久久九九| 粉嫩aⅴ一区二区三区四区五区| 欧美tickling挠脚心丨vk| 日韩高清电影一区| 国产亚洲va综合人人澡精品| 韩国精品主播一区二区在线观看 | 日韩三级视频在线看| 午夜电影一区二区三区| 欧美欧美欧美欧美| 奇米777欧美一区二区| 欧美日韩免费高清一区色橹橹 | 无吗不卡中文字幕| 欧美久久久久久蜜桃| 麻豆国产精品视频| 国产亚洲一区二区三区| 粉嫩绯色av一区二区在线观看| 国产婷婷色一区二区三区| 91女神在线视频| 午夜精品久久久久久久蜜桃app| 欧美日韩中文精品| 亚洲国产sm捆绑调教视频 | 国产老妇另类xxxxx| 国产日本欧美一区二区| 99久久精品免费| 日本一区二区高清| 在线亚洲人成电影网站色www| 偷拍一区二区三区| 国产亚洲精品超碰| 色婷婷精品大视频在线蜜桃视频| 亚洲欧美另类在线| 精品国产91乱码一区二区三区| 激情都市一区二区| |精品福利一区二区三区| 不卡视频一二三| 久久精品国产**网站演员| 亚洲国产精品高清| 精品污污网站免费看| 蜜臀国产一区二区三区在线播放| 国产午夜亚洲精品不卡| 欧美亚洲一区二区三区四区| 裸体歌舞表演一区二区| 亚洲人成网站精品片在线观看| 538在线一区二区精品国产| 国产 欧美在线| 日韩精品视频网站| 国产精品护士白丝一区av| 在线综合+亚洲+欧美中文字幕| 久久狠狠亚洲综合| 亚洲成人动漫一区| 国产亚洲成aⅴ人片在线观看| 在线观看中文字幕不卡| 成人精品免费看| 免播放器亚洲一区| 亚洲蜜桃精久久久久久久| 久久久www成人免费无遮挡大片| 欧美午夜理伦三级在线观看| 国产精品一区专区| 日韩国产精品久久| 亚洲一区二区视频在线观看| 久久蜜桃av一区精品变态类天堂 | 欧美天天综合网| 91同城在线观看| 国产99精品国产| 裸体健美xxxx欧美裸体表演| 亚洲久草在线视频| 久久精品一级爱片| 久久久国产精品麻豆| 欧美精品v日韩精品v韩国精品v| 成人福利在线看| 精品一区二区在线免费观看| 蜜臂av日日欢夜夜爽一区| 午夜激情久久久| 亚洲午夜免费电影| 久久精品在这里| 欧美极品aⅴ影院| 久久久久97国产精华液好用吗| 欧美高清www午色夜在线视频| 成人免费福利片| k8久久久一区二区三区| 国产91对白在线观看九色| 紧缚捆绑精品一区二区| 亚洲国产精品久久人人爱蜜臀| 亚洲精品乱码久久久久久| 中文字幕亚洲不卡| 亚洲婷婷国产精品电影人久久| 91精品欧美福利在线观看| 日韩午夜在线观看视频| 欧美一区二区三区在线观看| 欧美日韩一区二区三区不卡| 国产成人av一区二区三区在线 | 日本午夜精品一区二区三区电影| 亚洲自拍欧美精品| 洋洋av久久久久久久一区| 玉米视频成人免费看| 亚洲精品一卡二卡| 丝袜a∨在线一区二区三区不卡| 偷偷要91色婷婷| 美女视频黄免费的久久 | 国产成人福利片| 懂色中文一区二区在线播放| 国产99一区视频免费| 91在线视频免费91| 欧美精品 日韩| 日韩视频免费观看高清在线视频| 91精品国产91久久久久久最新毛片| 在线免费观看日韩欧美| 欧美一区二区免费| 欧美videofree性高清杂交| 精品国产免费久久| 亚洲人成7777| 日韩不卡一二三区| 国产精品一区在线观看你懂的| 成人免费视频caoporn| 99国产欧美久久久精品| 日本一区二区三区久久久久久久久不| 欧美videofree性高清杂交| 亚洲国产精品v| 视频一区中文字幕国产| 白白色亚洲国产精品| 欧美精品一二三区| 中文字幕亚洲视频| 久久aⅴ国产欧美74aaa| 99视频精品在线| 精品播放一区二区| 亚洲一二三区在线观看| 国产高清亚洲一区| 91精品国产综合久久精品app| 国产精品私人自拍| 七七婷婷婷婷精品国产| 色悠悠亚洲一区二区| 国产日韩欧美麻豆| 青草av.久久免费一区| 91麻豆福利精品推荐| 久久男人中文字幕资源站| 日韩精品电影在线观看| 在线免费一区三区| 国产精品对白交换视频| 国产一区二区三区四区五区美女| 欧美性受xxxx| 亚洲视频在线观看一区| 国产精品一区免费在线观看| 在线播放亚洲一区| 亚洲精品国产成人久久av盗摄| 成人在线视频首页| 久久久久久久久久电影| 日韩av电影天堂| 欧美日韩国产在线播放网站| 成人欧美一区二区三区白人 | 久久久久久免费毛片精品| 日韩国产在线一| 欧美亚洲愉拍一区二区| 一区二区三区久久久| 99精品久久99久久久久| 国产欧美精品国产国产专区| 美女视频黄免费的久久| 欧美一区二区在线视频| 天天影视色香欲综合网老头| 欧美性xxxxxxxx| 亚洲成人免费视| 欧美午夜精品久久久久久超碰| 亚洲精品一二三区| 欧洲av一区二区嗯嗯嗯啊| 一区二区三区在线播放| 在线观看网站黄不卡| 亚洲尤物视频在线| 欧美日韩不卡在线| 青青草97国产精品免费观看 | 色综合久久六月婷婷中文字幕| 欧美国产激情一区二区三区蜜月| 国产高清成人在线| 亚洲国产精品成人综合| 99久久婷婷国产综合精品电影| 中文字幕乱码日本亚洲一区二区 | 国产自产2019最新不卡| 久久久蜜桃精品| 国产精品亚洲人在线观看| 亚洲国产精品传媒在线观看| 99久久久免费精品国产一区二区 | 国产精品福利av | 欧美日韩国产影片| 免费观看久久久4p| 国产网站一区二区三区| 96av麻豆蜜桃一区二区| 午夜在线电影亚洲一区| 日韩一区二区精品在线观看| 久久国产日韩欧美精品| 中文字幕免费观看一区| 欧美怡红院视频| 久久成人久久爱| 中日韩免费视频中文字幕| 在线观看网站黄不卡| 久久精品999| 中文字幕一区二区三区四区不卡 | 成人免费观看视频| 亚洲图片欧美色图| 精品久久久久香蕉网|