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

📄 gui.cpp.svn-base

📁 sigmadesign smp8623 gui source code ,bingo
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
			status = HandleTrickMode(c);		break;	case RM_HW_SHUFFLE:		status = HandleShuffle();		break;	case RM_HW_LANGUAGE:		status = HandleLanguage();		break;	case RM_HW_PBC:		if (m_pnav->ActivePageId() == 0)			status = HandlePBC();		break;#ifdef WITH_WMVHD_SUPPORT	case RM_HW_MENU:	case RM_HW_TITLE:	//case RM_HW_SETUP://		ShowPopup(m_pnav->SelectedObjectId(), FALSE);//		status = HandleMenu();		break;	case RM_HW_SETUP:		if ((m_playMode != STATE_STOP) && (m_playMode != STATE_CLOSE))		{			HandleReturn();		}		{			HandleSetup();		}		break;	case RM_HW_SC1:	case RM_HW_SC2:	case RM_HW_SC3:	case RM_HW_SC4:	case RM_HW_SC5:	case RM_HW_SC6:	case RM_HW_SC7:	case RM_HW_SC8:		if ((m_playMode != STATE_STOP) && (m_playMode != STATE_CLOSE))		{	HandleReturn();		}		{			typeCommandInfo cmdInfo;			// for cdda with osd on to accept activation;			// secret menu keys can never use HW_SELECT/_ENTER anyway			RMuint16 index = c - RM_HW_SC1;			RMMemset(&cmdInfo, 0, sizeof(cmdInfo));			cmdInfo.id = shortcuts[index].command;			cmdInfo.nValue = shortcuts[index].submenu;			if (shortcuts[index].link[0])			{				cmdInfo.validLink = TRUE;				m_pnav->GetObjectIdByName(shortcuts[index].link, &cmdInfo.linkId);			}			else				break;			return CommandHandler(&cmdInfo);		}		break;#endif	default:		//		printf("Unknown command for the main interpreter\n");		status = RM_UNKNOWN_KEY;		break;	}	}	else		status = RM_OK;#ifdef GUI_REFID_2	CheckForSecretCode(c);#endif	return status;}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RMstatus RMcuracaoGui::Notify(typeCuracaoMessage message, void *val){	RMstatus status;	RMint8 speed;	RMascii txt[20];	typeCommandInfo cmdInfo;	switch (message)	{	case CURACAO_MESSAGE_DECODER_INITIALIZED:		if (m_MediaList.active && m_pnav->WMVHDOn())		{#ifdef WITH_MONO			InitPlayingMedia(m_MediaList.id[m_MediaList.numCurrentItem]);#endif		}		break;	case CURACAO_MESSAGE_EOS:		m_isNeroMP4 = FALSE;#ifdef WITH_WMVHD_SUPPORT		if (m_MediaList.repeat != REPEAT_OFF)			return CheckWMVHDRepeat();#endif		break;	case CURACAO_MESSAGE_CREATED_MEDIA_PLAYER:	{#ifdef WITH_WMVHD_SUPPORT		if (m_wmvHDRegionError)			return Notify(CURACAO_MESSAGE_DVD_WRONG_REGION, &m_settings.dvdRegion);		if (m_pnav->WMVHDOn())		{			status = InitializeWMVHD();			if (RMFAILED(status))			{				ReInitialize((RMnonAscii *) GUI_XML);				ShowPage(m_pnav->MediaLibraryPageId());			}			break;		}#endif //WMV		break;	}	case CURACAO_MESSAGE_DRM_ERROR:		if (val != NULL)			m_wmvHDDRMError = (*(RMuint32 *) val);		else			m_DRMError = 1; // no codes, just signal there was an error		break;#ifdef WITH_WMVHD_SUPPORT	case CURACAO_MESSAGE_DRM_OPL:		m_protectType = RMWmvProtect;		HandleDRMOPL((*(RMuint32 *) val));		break;#endif	case CURACAO_MESSAGE_CSS_PROTECTION:		m_protectType = RMCssProtect;		HandleCSSProtection();		break;	case CURACAO_MESSAGE_INVALID_OP:		m_pnav->DisplayEvent(INVALIDOP_EVENT, TRUE, TIMER_EVENT, m_eventText, INVALIDOP_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40);		break;	case CURACAO_MESSAGE_DISC_BLANK:		m_pnav->DisplayEvent(GENERIC_EVENT, TRUE, TIMER_EVENT, TRUE, DISC_BLANK_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40);		//		HandleEject(FALSE);	// eject may redetects the disc...		break;	case CURACAO_MESSAGE_UNKNOWN_MEDIA:		m_pnav->DisplayEvent(GENERIC_EVENT, TRUE, TIMER_EVENT, TRUE, UNKNOWN_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40);		//		HandleEject(FALSE);	// eject may redetects the disc...		break;	case CURACAO_MESSAGE_DRIVE_REGION:		m_pnav->DisplayEvent(GENERIC_EVENT, TRUE, TIMER_EVENT, TRUE, DRIVE_REGION_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40);		//		HandleEject(FALSE);		break;	case CURACAO_MESSAGE_FILE_ERROR:		//m_pnav->DisplayEvent(GENERIC_EVENT, TRUE, TIMER_EVENT, TRUE, FILE_ERROR_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40);		//		if(val != NULL && *(RMbool *)val)		//			HandleEject(FALSE);		if(m_bTV)		{			printf("MISSING CHANNEL OR SERVER ERROR\n");			RMascii channel_name[256];			sprintf(channel_name, "No Signal");			m_pnav->DisplayEvent(GENERIC_EVENT, TRUE, TIMER_EVENT, TRUE, channel_name, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40,					TRUE, PLAYER_NUMERICINPUT_TIMEOUT * 3);			m_bMissingChannel = TRUE;			//m_pnav->m_tvList.up = TRUE;			//m_userSkipped = FALSE;			//sleep(2);			printf("bad channel %d current %d \n", m_pnav->m_tvList.badchannel, m_pnav->m_tvList.current);			if(m_pnav->m_tvList.badchannel == -1)				m_pnav->m_tvList.badchannel = m_pnav->m_tvList.current;			//printf("bad channel %d\n", m_pnav->m_tvList.badchannel);		//	if(m_pnav->m_tvList.current == 0)		//		m_pnav->m_tvList.current = m_pnav->m_tvList.nbItems - 1;		//	else		//		m_pnav->m_tvList.current --;		}		break;	case CURACAO_MESSAGE_FATAL_RESET:		m_pnav->DisplayEvent(GENERIC_EVENT, TRUE, TIMER_EVENT, TRUE, FATALRESET_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40);		break;	case CURACAO_MESSAGE_PLAY_MODE:	{		typePlayMode *playMode = (typePlayMode *) val;		typeMediaPlayerSate prevplayMode;//		if(BlockedKEY() && playMode->state != STATE_PLAY)//			break;		prevplayMode = m_playMode;		m_playMode = playMode->state;		switch (m_playMode)		{		case STATE_PLAY:			//		m_infoOn = FALSE;			RMDBGLOG((GUIDBG, "Received PLAY MODE\n"));			// make sure there's no popup left open			if (ISPOPUP(m_pnav->SelectedObjectId()))				ShowPopup(m_pnav->SelectedObjectId(), FALSE);			if ((m_isoPlayList.active == TRUE /*&& m_isoPlayList.filetype != FILETYPE_AUDIO*/)					|| (m_pnav->WMVHDOn() && m_MediaList.active))				m_pnav->ShowOsd(FALSE);			if (m_MediaList.active)			{				EndWaitCursor();				// skip Play event if first media in list and beginning playback				if (m_MediaList.numCurrentItem != 0 && (prevplayMode == STATE_CLOSE || prevplayMode == STATE_STOP))					break;			}			//		m_pnav->DisplayEvent(PLAY_EVENT, TRUE, TIMER_EVENT, m_eventText, PLAY_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40);			m_infoShow = m_infoOn;			if (!m_bTV)			{				m_infoOn = 1;				DisplayFileInfo(PROGRESS_CONTROL, m_infoOn);				if(m_isoPlayList.filetype != FILETYPE_AUDIO)					SetTimer(TIMER_SLIDER);			}			else			{				RMascii channel_name[256];				sprintf(channel_name, "%.2d %s", (RMuint8) (m_pnav->m_tvList.items[m_pnav->m_tvList.current].number),						m_pnav->m_tvList.items[m_pnav->m_tvList.current].name);				m_pnav->DisplayEvent(GENERIC_EVENT, TRUE, TIMER_EVENT, TRUE, channel_name, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40,						TRUE, PLAYER_NUMERICINPUT_TIMEOUT);			}			RestoreNonTimedEvent();			EndWaitCursor();			break;		case STATE_STOP:			RMDBGLOG((GUIDBG, "Received STOP MODE\n"));			m_infoShow = m_infoOn;			m_infoOn = 0;			if(!m_bTV)				DisplayFileInfo(PROGRESS_CONTROL, m_infoOn);			break;		case STATE_PAUSE:			if (!m_bTV)			{				RMDBGLOG((GUIDBG, "Received PAUSE MODE\n"));				m_infoShow = m_infoOn;				m_infoOn = 1;				DisplayFileInfo(PROGRESS_CONTROL, m_infoOn);				m_gui.gui->KillTimer(TIMER_SLIDER, FALSE);			}			//		m_pnav->DisplayEvent(PAUSE_EVENT, TRUE, TIMER_NONE, m_eventText, PAUSE_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40);			break;		case STATE_STEP:			if (!m_bTV)			{				RMDBGLOG((GUIDBG, "Received STEP MODE\n"));				m_infoShow = m_infoOn;				m_infoOn = 1;				DisplayFileInfo(PROGRESS_CONTROL, m_infoOn);				m_gui.gui->KillTimer(TIMER_SLIDER, FALSE);			}			//	m_pnav->DisplayEvent(STEP_EVENT, TRUE, TIMER_NONE, m_eventText, STEP_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40);			break;		case STATE_CLOSE:			RMDBGLOG((GUIDBG, "Received CLOSE MODE\n"));			if (m_zoomOn)			{				ZoomVideo(FALSE);			}			//			HandleMute();			if (m_context->needToExit == TRUE)				break;			if (m_infoOn)			{				m_gui.gui->KillTimer(TIMER_SLIDER, FALSE);				m_infoShow = m_infoOn;				m_infoOn = 0;				DisplayFileInfo(PROGRESS_CONTROL, m_infoOn);				//	HandleInfo();			}			if (m_pnav->WMVHDOn())			{				if (m_MediaList.active == TRUE)				{					return PlayNextMediaFile();				}			}			else			{				printf("close state\n");				if (m_isoPlayList.active == TRUE)				{					printf("no tv\n");					if (m_isoPlayList.previous == TRUE)						status = PlayPreviousFile(m_userSkipped);					else					{						status = PlayNextFile(m_userSkipped);					}					m_userSkipped = FALSE;					return status;				}				else if (m_bTV)				{					printf("tv\n");					if (m_pnav->m_tvList.up)						status = PlayNextFile(m_userSkipped);					else						status = PlayPreviousFile(m_userSkipped);					m_userSkipped = FALSE;					m_pnav->m_tvList.up = TRUE;				}				else				{					printf("real close\n");					RestoreOsd();					//			m_pnav->DisplayEvent(STOP_EVENT, TRUE, TIMER_EVENT, m_eventText, STOP_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40);				}			}			break;		case STATE_FAST_FORWARD:			if (!m_bTV)			{				speed = *((RMint8*) playMode->val);				sprintf(txt, "FWD %dX", speed);				//		m_pnav->DisplayEvent(FWD_EVENT, TRUE, TIMER_NONE, TRUE, txt, DISPLAY_TEXT_ON_EVENT_ARG, 8, 200, 40);				m_infoOn = 1;				DisplayFileInfo(PROGRESS_CONTROL, m_infoOn);				m_gui.gui->KillTimer(TIMER_SLIDER, FALSE);			}			break;		case STATE_FAST_REWIND:			if (!m_bTV)			{				speed = *((RMint8*) playMode->val);				sprintf(txt, "REV %dX", speed);				m_infoShow = m_infoOn;				m_infoOn = 1;				DisplayFileInfo(PROGRESS_CONTROL, m_infoOn);				m_gui.gui->KillTimer(TIMER_SLIDER, FALSE);			}			//		m_pnav->DisplayEvent(REVERSE_EVENT, TRUE, TIMER_NONE, TRUE, txt, DISPLAY_TEXT_ON_EVENT_ARG, 8, 200, 40);			break;		case STATE_SLOW_FORWARD:			if (!m_bTV)			{				speed = *((RMint8*) playMode->val);				sprintf(txt, "SLOW 1/%dX", speed);				m_infoShow = m_infoOn;				m_infoOn = 1;				DisplayFileInfo(PROGRESS_CONTROL, m_infoOn);				m_gui.gui->KillTimer(TIMER_SLIDER, FALSE);			}			//		m_pnav->DisplayEvent(SLOWFWD_EVENT, TRUE, TIMER_NONE, TRUE, txt, DISPLAY_TEXT_ON_EVENT_ARG, 8, 200, 40);			break;		default:			return RM_ERROR;		}		SetfipPlayMode();		break;	}	case CURACAO_MESSAGE_UNSUPPORTED_MEDIA:		status = m_pnav->GetCommandInfo(m_pnav->ActivePageId(), UNSUPPORTED_MEDIA_EVENT, &cmdInfo);		if (RMSUCCEEDED(status))		{			if (cmdInfo.validLink)				m_pnav->ShowMessage(cmdInfo.linkId, TIMER_ERRORMESSAGE);		}		HandleEject(FALSE);		break;	case CURACAO_MESSAGE_DVD_WRONG_REGION:#ifdef GUI_REFID_2		HandleEject(FALSE);		fprintf(stderr, "CURACAO_MESSAGE_DVD_WRONG_REGION\n");		ShowPage(m_pnav->MainPageId());		status = m_pnav->GetCommandInfo(m_pnav->ActivePageId(), INVALID_REGION_EVENT, &cmdInfo);		if(RMSUCCEEDED(status))		{			if(cmdInfo.validLink)			{				m_pnav->ShowMessage(cmdInfo.linkId, TIMER_NONE);			}		}#else		status = m_pnav->GetCommandInfo(m_pnav->ActivePageId(), INVALID_REGION_EVENT, &cmdInfo);		if (RMSUCCEEDED(status))		{			if (cmdInfo.validLink)			{				m_pnav->ShowMessage(cmdInfo.linkId, TIMER_ERRORMESSAGE);			}		}		HandleEject(FALSE);#endif		break;	case CURACAO_MESSAGE_DISPLAY_INFO:	{		if (m_isNeroMP4 && g_timer[TIMER_GENERIC])		{			break;		}		// stop scrolling strings because they'll interfere with time display!!		m_scrollOn = FALSE;	}		break;	case CURACAO_MESSAGE_MEDIA_INFO:		// stop scrolling strings because they'll interfere with time display!!		m_scrollOn = FALSE;		//		printf("bfore update\n");		//			RMMemcpy(&m_fileInfo, (typeCuracaoFileInfo *)val, sizeof(typeCuracaoFileInfo));		m_fileInfo.time = ((typeCuracaoFileInfo *) (val))->time;#ifdef WITH_WMVHD_SUPPORT		// check wmvhd chapter repeat		if (m_pnav->WMVHDOn() && m_MediaList.repeat == REPEAT_CHAPTER)		{			CheckWMVHDChapterRepeat();		}#endif		if (m_infoOn == FALSE)			break;#ifdef WITH_WMVHD_SUPPORT		if (m_pnav->WMVHDOn())		{			UpdateWMVHDInfo();			break;		}#endif		//			printf("update\n");		UpdateFileInfo(&m_fileInfo);		break;	case CURACAO_MESSAGE_NERO_MPEG4:		m_isNeroMP4 = TRUE;		fipWriteScrollText("Nero Digital <tm>");		SetTimer(TIMER_GENERIC, 50); // 5 secs.		break;	case CURACAO_MESSAGE_DVD_SUBTITLE_CHANGE:	{		typeCuracaoDvdSubpicStreamAttr *attr = (typeCuracaoDvdSubpicStreamAttr *) val;		RMascii lang[MAX_GUI_TEXT_VALUE];		if (attr->subpicStreamNumber == 0)			RMCopyAscii(lang, OFF_STR);		else		{			if (attr->subpicStreamAttr.isLanguage)#ifdef GUI_REFID_3				sprintf(lang, "%d - %c%c", attr->subpicStreamNumber, (RMascii)(HIBYTE(attr->subpicStreamAttr.languageCode) - 32), (RMascii)LOBYTE(attr->subpicStreamAttr.languageCode) - 32);#else				sprintf(lang, "%c%c", (RMascii) (HIBYTE(attr->subpicStreamAttr.languageCode) - 32), (RMascii) LOBYTE(attr->subpicStreamAttr.languageCode) - 32);#endif			else				sprintf(lang, "%02d", attr->subpicStreamNumber);		}		m_pnav->DisplayEvent(SUBTITLECHANGE_EVENT, TRUE, TIMER_EVENT, TRUE, lang, DISPLAY_TEXT_ON_EVENT_ARG2, 8, 90, 40);		break;	}	case CURACAO_MESSAGE_DVD_AUDIOSTREAM_CHANGE:	{		typeCuracaoDvdAudioStreamAttr *attr = (typeCuracaoDvdAudioStreamAttr *) val;		RMascii lang[MAX_GUI_TEXT_VALUE], dircomm[MAX_GUI_TEXT_VALUE];		RMuint8 channels, sub;		RMMemset(dircomm, 0, sizeof(dircomm));		channels = attr->audioStreamAttr.numberOfChannels;		channels = (channels == 0 || channels == 1) ? channels + 1 : channels;		sub = (RMuint8) (channels == attr->audioStreamAttr.numberOfChannels);		// see if there are director comments		if (attr->audioStreamAttr.languageCodeExtension == 3 || attr->audioStreamAttr.languageCodeExtension == 4)			RMCopyAscii(dircomm, "Com.");		if (attr->audioStreamAttr.isLanguage)#ifdef GUI_REFID_3			sprintf(lang, "%d - %c%c %d.%d %s", attr->audioStreamNumber, (RMascii)(HIBYTE(attr->audioStreamAttr.languageCode) - 32), (RMascii)LOBYTE(attr->audioStreamAttr.languageCode) - 32, channels, sub, dircomm);#else			sprintf(lang, "%c%c %d.%d %s", (RMascii) (HIBYTE(attr->audioStreamAttr.languageCode) - 32), (RMascii) LOBYTE(attr->audioStreamAttr.languageCode) - 32, channels, sub, dircomm);#endif		else			sprintf(lang, "%02d %d.%d %s", attr->audioStreamNumber, channels, sub, dircomm);		m_pnav->DisplayEvent(AUDIOCHANGE_EVENT, TRUE, TIMER_EVENT, TRUE, lang, DISPLAY_TEXT_ON_EVENT_ARG3, 8, 130, 40, FALSE);		break;	}	case CURACAO_MESSAGE_DVD_ANGLE_CHANGE:	{		RMascii angle[2];		sprintf(angle, "%d", (RMascii) (*(RMuint8 *) val));		m_pnav->DisplayEvent(ANGLECHANGE_EVENT, TRUE, TIMER_EVENT, TRUE, angle, DISPLAY_TEXT_ON_EVENT_ARG2, 8, 90, 40);		break;	}	case CURACAO_MESSAGE_REPEAT_RANDOM:		m_pnav->DisplayEvent(REPEATRANDOM_EVENT, TRUE, TIMER_EVENT, m_eventText, REPEAT_RANDOM_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180,

⌨️ 快捷键说明

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