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

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

?? fakegui.cpp

?? sigmadesign smp8623 gui source code ,bingo
?? CPP
字號:
/***************************************** Copyright  2001-2003   Sigma Designs, Inc. All Rights Reserved Proprietary and Confidential *****************************************//**  @file   fakegui.cpp  @brief  file to link with when you don't want any gui    @author Laurent Crinon  @date   2004-05-12*/#ifndef ALLOW_OS_CODE#define ALLOW_OS_CODE 1#endif //ALLOW_OS_CODE#include "../common.h"#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include "gui.h"#if 1#define FAKEGUIDBG ENABLE#else#define FAKEGUIDBG DISABLE#endif#if 0#define FAKEGUINTFYDBG ENABLE#else#define FAKEGUINTFYDBG DISABLE#endifRMcuracaoGui::RMcuracaoGui(typeCuracaoContext *context)	: m_context (context){	RMDBGLOG((FAKEGUIDBG, "NO GUI AVAILABLE ...\n"));	m_crc_table_computed = FALSE;}RMcuracaoGui::~RMcuracaoGui(){}RMstatus RMcuracaoGui::Initialize(RMnonAscii *xmlFile){	RMMemset(&m_settings, 0, sizeof(guiPlayerSettingsType));	RMMemset(&m_loadsettings, 0, sizeof(guiPlayerSettingsType));	RetrievePlayerSettings();	return RM_OK;}RMstatus RMcuracaoGui::SendKey(RMremoteKey c){	return InterpretCommand(c);}RMstatus RMcuracaoGui::SendEvent(RMguiEvent event){	return RM_ERROR;}RMascii* RMcuracaoGui::GetFile(){	return (RMascii*)NULL;}RMstatus RMcuracaoGui::Close(){	SavePlayerSettings();	return RM_OK;}RMstatus RMcuracaoGui::Notify(typeCuracaoMessage message, void *val){	RMstatus status;	switch (message) {	case CURACAO_MESSAGE_INVALID_OP:		RMDBGLOG((ENABLE, "*** Invalid UOP ***\n"));		break;	case CURACAO_MESSAGE_PLAY_MODE:{		typePlayMode *playMode = (typePlayMode *)val;		switch(playMode->state){		case STATE_PLAY:			switch(m_context->discType){			case RM_DISC_TYPE_ISO9660:				break;			case RM_DISC_TYPE_CDDA:				break;			default:				break;			}								break;		case STATE_STOP:			RMDBGLOG((FAKEGUINTFYDBG, "** Received STOP MODE **\n"));						break;		case STATE_PAUSE:			RMDBGLOG((FAKEGUINTFYDBG, "** Received PAUSE MODE **\n"));						break;		case STATE_STEP:			RMDBGLOG((FAKEGUINTFYDBG, "** Received STEP MODE **\n"));						break;		case STATE_CLOSE:						RMDBGLOG((FAKEGUINTFYDBG, "** Received CLOSE MODE **\n"));			break;						case STATE_FAST_FORWARD:						break;					case STATE_FAST_REWIND:						break;		case STATE_SLOW_FORWARD:						break;		default:			return RM_ERROR;					}				m_playMode = playMode->state;	}		break;				case CURACAO_MESSAGE_UNSUPPORTED_MEDIA:		RMDBGLOG((FAKEGUINTFYDBG,"** Unsupported media **\n"));		break;	case CURACAO_MESSAGE_DVD_WRONG_REGION:		RMDBGLOG((FAKEGUINTFYDBG,"** Wrong DVD region **\n"));		break;	case CURACAO_MESSAGE_MEDIA_INFO:		if(m_context->discType == RM_DISC_TYPE_CDDA){			RMMemcpy(&m_cddaInfo, (typeCuracaoCddaInfo *)val, sizeof(typeCuracaoCddaInfo));			RMDBGLOG((ENABLE, 				  "** Track %hu/%hu, %lu/%lu secs, total %lu secs **\n",				  m_cddaInfo.nCurrentTrack,				  m_cddaInfo.nTracks,				  m_cddaInfo.trackTime,				  m_cddaInfo.currentTrackDuration,				  m_cddaInfo.totalDuration));		}		else if(m_context->discType == RM_DISC_TYPE_VCD || m_context->discType == RM_DISC_TYPE_SVCD){			RMMemcpy(&m_vcdInfo, (typeCuracaoVcdInfo *)val, sizeof(typeCuracaoVcdInfo));		}		else if(m_context->discType == RM_DISC_TYPE_DVD_VIDEO){			RMMemcpy(&m_dvdInfo, (typeCuracaoDvdInfo *)val, sizeof(typeCuracaoDvdInfo));			RMDBGLOG((FAKEGUINTFYDBG,				  "** ChapterTime : %lu secs **\n",				  m_dvdInfo.chapterTime));		}		break;	case CURACAO_MESSAGE_DVD_SUBTITLE_CHANGE:{		typeCuracaoDvdSubpicStreamAttr *attr = (typeCuracaoDvdSubpicStreamAttr *)val;		if(attr->subpicStreamNumber == 0)			RMDBGLOG((ENABLE, "** Subpicture : Off **\n"));		else {			if(attr->subpicStreamAttr.isLanguage)				RMDBGLOG((ENABLE,"** Subpicture : %c%c **\n", (RMascii)(HIBYTE(attr->subpicStreamAttr.languageCode) - 32), (RMascii)LOBYTE(attr->subpicStreamAttr.languageCode) - 32));			else				RMDBGLOG((ENABLE, "** Subpicture : stream #%d **\n", attr->subpicStreamNumber));		} 	}		break;		case CURACAO_MESSAGE_DVD_AUDIOSTREAM_CHANGE:{		typeCuracaoDvdAudioStreamAttr *attr = (typeCuracaoDvdAudioStreamAttr *)val;		if(attr->audioStreamAttr.isLanguage)			RMDBGLOG((ENABLE,"** Audio : %c%c **\n", (RMascii)(HIBYTE(attr->audioStreamAttr.languageCode) - 32), (RMascii)LOBYTE(attr->audioStreamAttr.languageCode) - 32));		else			RMDBGLOG((ENABLE,"** Audio : stream #%d **\n", attr->audioStreamNumber));	}		break;		case CURACAO_MESSAGE_DVD_ANGLE_CHANGE:		RMDBGLOG((ENABLE, "** Angle : #%d **\n", (RMascii)(*(RMuint8 *)val)));	 		break;			case CURACAO_MESSAGE_DVD_REPEAT_CHAPTER:		RMDBGLOG((ENABLE,"** Repeat Chapter is On **\n"));		break;	case CURACAO_MESSAGE_DVD_REPEAT_TITLE:		RMDBGLOG((ENABLE,"** Repeat Title is On **\n"));		break;	case CURACAO_MESSAGE_DVD_REPEAT_OFF:		RMDBGLOG((ENABLE,"** Repeat is Off **\n"));		break;	case CURACAO_MESSAGE_DVD_REPEAT_A_SET:		RMDBGLOG((ENABLE,"** Repeat A->B : A point is set **\n"));		break;	case CURACAO_MESSAGE_DVD_REPEAT_B_SET:		RMDBGLOG((ENABLE,"** Repeat A->B : B point is set **\n"));		break;	case CURACAO_MESSAGE_DVD_REPEAT_AB_CLEARED:		RMDBGLOG((ENABLE,"** Repeat A->B : Cleared **\n"));		break;	case CURACAO_MESSAGE_DVD_STOPPED:		RMDBGLOG((ENABLE,"** Saving bookmark **\n"));		m_settings.bookmarkCRC = 0;		status = m_context->player->GetBookmark(m_settings.bookmark, BOOKMARK_SIZE);		if(RMSUCCEEDED(status) && m_context->player)			m_settings.bookmarkCRC = m_context->player->GetDiscID();		m_settings.validBookmark = (m_settings.bookmarkCRC != 0);		break;			case CURACAO_MESSAGE_PLAYBACK_STARTED:{		RMDBGLOG((ENABLE,"** Retrieving bookmark **\n"));		RMuint32 discId = *((RMuint32*)val);		if(m_settings.validBookmark && discId != 0){			if(discId == m_settings.bookmarkCRC){				m_resumeOn = TRUE;			}		}			}		break;			case CURACAO_MESSAGE_DVD_MENU_STATE: {		RMbool menuOn = *((RMbool*)val);			if(menuOn) RMDBGLOG((FAKEGUINTFYDBG,"** Now navigating a Menu **\n"));	}		break;	default://		printf("message not implemented yet\n");		break;	}	return RM_ERROR;}RMstatus RMcuracaoGui::DiscState(){	return RM_ERROR;}RMstatus RMcuracaoGui::GetDvdParameters(typeCuracaoDvdParameters *params){	return RM_ERROR;}// this is the main interpreter for remote control commands// it interprets all dvd player specific commands (display, sound, on/off, ...)RMstatus RMcuracaoGui::InterpretCommand(RMremoteKey c){	RMstatus status = RM_ERROR;		switch(c){	case RM_HW_EJECT: // open/close command		if(m_context->disc != 0){			RMbool isOpen;						if(m_context->player != 0){				RMDBGLOG((FAKEGUIDBG, "Closing media player ...\n"));				m_context->player->Close();				RMDBGLOG((FAKEGUIDBG, "Deleting media player ...\n"));				delete (m_context->player);				m_context->player = 0;			}			status = RMFDiscIsTrayOpen (m_context->disc, &isOpen);			if (status != RM_OK) {				RMDBGLOG((FAKEGUIDBG, "Cannot determine whether drive is opened. Bad drive.\n"));				break;			} else {				if (isOpen) {					status = RMFDiscCloseTray (m_context->disc);					RMDBGLOG((FAKEGUIDBG, "Loading..."));					m_context->isDiscDetected = FALSE;				} else {					status = RMFDiscOpenTray (m_context->disc);					m_context->isDiscDetected = TRUE;					m_context->discType = RM_NO_DISC;									}			}							}		break;	case RM_HW_ON_OFF: // exit		RMDBGLOG((FAKEGUIDBG, "Exit ...\n"));		m_context->needToExit = TRUE; 		status = RM_OK;		break;	case RM_HW_OSD: 		break;	case RM_HW_VOL_PLUS:	case RM_HW_VOL_MINUS:	case RM_HW_MUTE:	case RM_HW_L_R:	case RM_HW_VGA_TV:		// to be implemented		status = RM_ERROR;		break;	case RM_HW_PLAY_PAUSE:		status = HandlePlay();		break;	case RM_HW_STOP:		m_resumeOn = TRUE;		status = RM_UNKNOWN_KEY;		break;			default:		RMDBGLOG((FAKEGUIDBG, "Unknown command for the main interpreter\n"));		status = RM_UNKNOWN_KEY;		break;	}	return status;}RMstatus RMcuracaoGui::HandlePlay(){	RMstatus status = RM_UNKNOWN_KEY;		// it tray open, close it and return	if(m_context->disc != 0){		RMbool isOpen;		if(RMFDiscIsTrayOpen (m_context->disc, &isOpen) == RM_OK) {			if(isOpen){				RMFDiscCloseTray (m_context->disc);				m_context->isDiscDetected = FALSE;				return status;			}		}	}		if(m_context->discType == RM_DISC_TYPE_DVD_VIDEO && m_resumeOn){		if(m_context->player){			m_settings.validBookmark = FALSE;			m_context->player->ResumeBookmark(m_settings.bookmark);			m_resumeOn = FALSE;		}		return status;	}		return status;}RMstatus RMcuracaoGui::GetParentalLevelClearance(RMuint8 discRating){	return RM_ERROR;}RMstatus RMcuracaoGui::SavePlayerSettings(){	int file;	ssize_t ret = -1;	RMstatus status = RM_OK;		if(RMMemcmp(&m_loadsettings, &m_settings, sizeof(m_settings)) != 0){		RMDBGLOG((FAKEGUIDBG, "Saving player settings, using %s file, size %d\n", SETTINGS_FILE, sizeof(m_settings)));		// PrintPlayerSettings(m_settings);				m_settings.crc = CalculateCRC((RMuint8*)&m_settings, sizeof(m_settings)/2);		RMDBGLOG((FAKEGUIDBG, "Calculated CRC = 0x%08X\n", m_settings.crc));			file = open(SETTINGS_FILE, O_RDWR | O_SYNC);		if(file != -1){			RMDBGLOG((FAKEGUIDBG, "Writting ...\n"));			ret = write(file, &m_settings, sizeof(m_settings));			RMDBGLOG((FAKEGUIDBG, "Fsync ...\n"));			fsync(file);			RMDBGLOG((FAKEGUIDBG, "Close ...\n"));			close(file);			RMDBGLOG((FAKEGUIDBG, "Finish saving settings\n"));		}		status = (ret != -1 ? RM_OK : RM_ERROR);				if(RMFAILED(status)){			RMDBGLOG((FAKEGUIDBG, "Error saving player settings!!\n"));		}			else{			// not to save again...			RMMemcpy(&m_loadsettings, &m_settings, sizeof(m_settings));			RMDBGLOG((FAKEGUIDBG, "Saved player settings succeeded!!\n"));		}	}	return status;}RMstatus RMcuracaoGui::RetrievePlayerSettings(){	int file;	ssize_t ret = -1;	RMuint32 current_crc;	RMuint32 calculated_crc;				RMDBGLOG((FAKEGUIDBG, "Retrieving player settings, using %s file\n", SETTINGS_FILE));	// read settings if already saved	file = open(SETTINGS_FILE, O_RDONLY | O_SYNC);	if(file != -1){		RMDBGLOG((FAKEGUIDBG, "Reading previous settings, size %u...\n", sizeof(m_settings)));		ret = read(file, &m_settings, sizeof(m_settings));		if(ret != sizeof(m_settings))			RMDBGLOG((FAKEGUIDBG, "Error reading player settings\n"));		close(file);		current_crc = m_settings.crc;		m_settings.crc = 0;		calculated_crc = CalculateCRC((RMuint8*)&m_settings, sizeof(m_settings)/2);				if(current_crc != calculated_crc){			RMDBGLOG((FAKEGUIDBG, "CRC mismatch ... resetting settings: found = 0x%08X, calculated = 0x%08X\n", current_crc, calculated_crc));				// SetDefaultPlayerSettings();			m_settings.crc = calculated_crc;			// need to open it in write mode ...			file = open(SETTINGS_FILE, O_WRONLY | O_SYNC);			ret = write(file, &m_settings, sizeof(m_settings));			if(ret != sizeof(m_settings))				RMDBGLOG((FAKEGUIDBG, "Error writting player settings\n"));			fsync(file);			close(file);		}		else			RMDBGLOG((FAKEGUIDBG, "CRC match ... found = 0x%08X, calculated = 0x%08X\n", current_crc, calculated_crc));			}	else{		// load default settings		// SetDefaultPlayerSettings();				RMDBGLOG((FAKEGUIDBG, "No previous Settings, creating the settings file...\n"));		file = open(SETTINGS_FILE, O_WRONLY | O_SYNC | O_CREAT, S_IRUSR | S_IWUSR);		if(file != -1){			ret = write(file, &m_settings, sizeof(m_settings));			if(ret != sizeof(m_settings))				RMDBGLOG((FAKEGUIDBG, "Error writting player settings\n"));			fsync(file);			close(file);		}	}		// save to compare before saving	RMMemcpy(&m_loadsettings, &m_settings, sizeof(m_settings));		// ApplyPlayerSettings();		return RM_OK;}void RMcuracaoGui::make_crc_table(void){     RMuint32 c;     RMuint16 n, k;        for (n = 0; n < 256; n++) {	     c = (RMuint32) n;	     for (k = 0; k < 8; k++) {		     if (c & 1)			     c = 0xedb88320L ^ (c >> 1);		     else			     c = c >> 1;	     }	     m_crc_table[n] = c;     }     m_crc_table_computed = TRUE;}   RMuint32 RMcuracaoGui::update_crc(RMuint32 crc, RMuint8 *buf, RMuint32 len){     RMuint32 c = crc;     RMuint32 n;        if (!m_crc_table_computed)	     make_crc_table();     for (n = 0; n < len; n++) {	     c = m_crc_table[(c ^ buf[n]) & 0xff] ^ (c >> 8);     }     return c;}   RMuint32 RMcuracaoGui::CalculateCRC(RMuint8 *buffer, RMuint32 size){	return update_crc(0xffffffffL, buffer, size) ^ 0xffffffffL;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人理论电影网| 欧美丰满美乳xxx高潮www| 久久99深爱久久99精品| 婷婷久久综合九色综合绿巨人 | 91精品国产欧美一区二区| 欧美日韩精品一区二区三区 | 国产午夜精品一区二区| 国产喂奶挤奶一区二区三区| 久久色.com| 日本一区二区三区四区在线视频| 国产三级三级三级精品8ⅰ区| 国产亚洲成年网址在线观看| 欧美国产激情一区二区三区蜜月| 日本一区二区三区在线观看| 国产精品美女久久久久av爽李琼| 国产精品伦一区二区三级视频| 中文字幕在线观看不卡| 亚洲欧美一区二区三区极速播放 | 18欧美亚洲精品| 亚洲精品亚洲人成人网 | 成人禁用看黄a在线| 成人ar影院免费观看视频| 99国产精品久久久久久久久久久| 97精品视频在线观看自产线路二| 色婷婷激情综合| 欧美男女性生活在线直播观看| 欧美一区二区三区四区久久| 久久亚洲一区二区三区明星换脸| 国产偷国产偷亚洲高清人白洁| 国产精品污www在线观看| 亚洲精品成人在线| 蜜臀国产一区二区三区在线播放| 韩国三级电影一区二区| bt7086福利一区国产| 欧美调教femdomvk| 26uuu亚洲| 亚洲免费观看高清在线观看| 日韩在线卡一卡二| 国产精品91xxx| 在线观看日韩高清av| 精品对白一区国产伦| 中文字幕在线不卡| 日本欧美大码aⅴ在线播放| 国产一区二区三区免费观看| 色欧美88888久久久久久影院| 日韩一区二区三区免费观看| 国产精品久久久久久久久免费相片| 亚洲自拍偷拍av| 国产精品91xxx| 欧美高清一级片在线| 国产农村妇女毛片精品久久麻豆| 亚洲一区二区精品久久av| 激情欧美一区二区三区在线观看| 99精品欧美一区二区三区综合在线| 91精品国产麻豆国产自产在线 | 日本三级亚洲精品| www.欧美日韩| 91精品国产麻豆| 亚洲乱码日产精品bd| 国产一区二区三区在线观看免费视频 | 欧美巨大另类极品videosbest| 久久久国产精品麻豆| 亚洲sss视频在线视频| 国产99久久久国产精品潘金| 欧美电影在线免费观看| 国产精品入口麻豆九色| 麻豆精品新av中文字幕| 日本道色综合久久| 久久久久久97三级| 日韩精品五月天| 在线一区二区三区做爰视频网站| 久久久久国产一区二区三区四区| 天堂蜜桃一区二区三区| 色8久久精品久久久久久蜜| 久久久久高清精品| 人妖欧美一区二区| 一本大道久久精品懂色aⅴ| 久久伊人中文字幕| 日本不卡的三区四区五区| 91国产福利在线| 亚洲视频一区在线观看| 丰满亚洲少妇av| 2017欧美狠狠色| 久久精品国产一区二区| 欧美老肥妇做.爰bbww视频| 亚洲男人都懂的| 91色综合久久久久婷婷| 中文字幕一区二区三中文字幕| 国产精品66部| 久久久电影一区二区三区| 精品亚洲aⅴ乱码一区二区三区| 欧美电影一区二区| 秋霞午夜av一区二区三区| 欧美色视频在线| 亚洲国产综合在线| 欧美视频一区二区三区| 亚洲国产日韩综合久久精品| 91理论电影在线观看| 亚洲欧洲精品一区二区精品久久久| 国产成人a级片| 国产精品毛片大码女人| 成人理论电影网| 亚洲四区在线观看| 色综合久久久久综合| 亚洲九九爱视频| 精品视频免费看| 亚洲777理论| 欧美一区二区三区在| 久久99久久99| 久久久久久97三级| 99免费精品在线观看| 亚洲欧洲日韩在线| 色婷婷综合久久久久中文 | 蜜臀av一区二区| 亚洲精品在线免费观看视频| 九一九一国产精品| 国产欧美一区二区三区在线看蜜臀| 国产乱妇无码大片在线观看| 国产三级精品在线| 91污在线观看| 亚洲国产精品麻豆| 日韩视频在线观看一区二区| 国产一区二区久久| 亚洲欧洲日韩在线| 欧美猛男男办公室激情| 久久丁香综合五月国产三级网站| 精品欧美乱码久久久久久| 国产成人综合视频| 亚洲欧美区自拍先锋| 欧美日韩国产片| 国产综合久久久久久鬼色| 国产精品久久久久影视| 欧美性videosxxxxx| 免费xxxx性欧美18vr| 欧美激情一区二区三区| 欧美午夜精品理论片a级按摩| 日本成人中文字幕在线视频| 久久亚洲精品国产精品紫薇| 99久久国产综合精品色伊 | 精品视频一区二区不卡| 久久 天天综合| 亚洲人成网站在线| 欧美一区永久视频免费观看| 粉嫩蜜臀av国产精品网站| 亚洲一卡二卡三卡四卡| 精品国产一区久久| 色久综合一二码| 国产一区不卡精品| 亚洲一区国产视频| 久久先锋资源网| 欧美视频第二页| 成人精品免费看| 天天免费综合色| 国产精品网曝门| 777久久久精品| av电影天堂一区二区在线| 视频一区在线视频| 国产精品久久久久久久午夜片| 这里只有精品99re| 99久久99精品久久久久久| 青椒成人免费视频| 亚洲日本在线视频观看| 欧美成人精品二区三区99精品| 99精品桃花视频在线观看| 久久99国产精品免费网站| 一区二区三区免费看视频| 久久久.com| 正在播放亚洲一区| 日本高清不卡视频| 成人免费毛片嘿嘿连载视频| 日本成人在线一区| 亚洲成人精品在线观看| 亚洲国产精品av| 久久中文字幕电影| 欧美一级日韩不卡播放免费| 91福利在线免费观看| 成人性生交大片免费看中文 | 成人app在线| 国产一区二区三区在线观看精品| 婷婷中文字幕综合| 亚洲自拍偷拍麻豆| 一区二区三区中文字幕在线观看| 国产亚洲欧美中文| 精品国产免费久久 | 亚洲综合图片区| 亚洲欧洲日韩一区二区三区| 久久精品一区二区| 日韩久久久精品| 91麻豆精品国产91| 欧美三区在线观看| 欧美午夜电影一区| 欧美午夜一区二区三区免费大片| 色综合欧美在线视频区| av不卡免费电影| 成人av在线资源| 成人精品小蝌蚪| 成人国产在线观看| 99热在这里有精品免费| av男人天堂一区| 色综合久久久久久久久久久|