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

📄 guicommands.cpp.svn-base

📁 sigmadesign smp8623 gui source code ,bingo
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
/***************************************** Copyright (c) 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 <unistd.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include "gui.h"#include "guicommands.h"#include "guinavigation.h"#include "rmasfdemux/include/wmdrmopl.h"#include "rmlibhttp/include/rmlibhttp.h"#include <mntent.h>#include <fcntl.h>#include <sys/stat.h>#include <sys/time.h>#include <sys/mount.h>#include "../rmgfx_library/include/subreader.h"extern sub_context subs;RMuint32 VolumeLevels[MAX_VOLUME_LEVELS] ={ 0, // mute		0x00200000, 0x00285145, 0x0032cbfc, // -42dB ... -38dB		0x00400000, 0x0050a28b, 0x006597fa, // -36dB ... -32dB		0x00800000, 0x00a14518, 0x00cb2ff5, // -30dB ... -26dB		0x01000000, 0x01428a2f, 0x01965fea, // -24dB ... -20dB		0x02000000, 0x0285145f, 0x032cbfd5, // -18dB ... -14dB		0x04000000, 0x050a28be, 0x06597fa9, // -12dB ...  -8dB		0x08000000, 0x0a14517d, 0x0cb2ff53, //  -6dB ...  -2dB		0x10000000, 0x1428a2fa, 0x1965fea6, //   0dB ...   4dB		0x20000000, 0x285145f5, 0x32cbfd4c, //   6dB ...  10dB		0x40000000, 0x50a28be7, 0x6597fa95, //  12dB ...  16dB		0x80000000 //  18dB		};#if 1#define GUIDBG ENABLE#else#define GUIDBG DISABLE#endifextern RMuint8 g_timer[MAX_GUI_TIMERS];extern RMuint8 animate;extern RMcriticalsection cs;RMstatus RMcuracaoGui::SavePlayerSettings(){	int file;	ssize_t ret = -1;	RMstatus status = RM_OK;	if (RMMemcmp(&m_loadsettings, &m_settings, sizeof(m_settings)) != 0)	{		RMDBGLOG((GUIDBG, "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((GUIDBG, "Calculated CRC = 0x%08X\n", m_settings.crc));		file = open(SETTINGS_FILE, O_RDWR | O_SYNC);		if (file != -1)		{			RMDBGLOG((GUIDBG, "Writting ...\n"));			ret = write(file, &m_settings, sizeof(m_settings));			RMDBGLOG((GUIDBG, "Fsync ...\n"));			fsync(file);			RMDBGLOG((GUIDBG, "Close ...\n"));			close(file);			RMDBGLOG((GUIDBG, "Finish saving settings\n"));		}		status = (ret != -1 ? RM_OK : RM_ERROR);		if (RMFAILED(status))		{			RMDBGLOG((GUIDBG, "Error saving player settings!!\n"));		}		else		{			// not to save again...			RMMemcpy(&m_loadsettings, &m_settings, sizeof(m_settings));			RMDBGLOG((GUIDBG, "Saved player settings succeeded!!\n"));		}	}	return status;}RMstatus RMcuracaoGui::RetrievePlayerSettings(){	int file;	ssize_t ret = -1;	RMuint32 current_crc;	RMuint32 calculated_crc;	RMDBGLOG((GUIDBG, "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((GUIDBG, "Reading previous settings, size %u...\n", sizeof(m_settings)));		ret = read(file, &m_settings, sizeof(m_settings));		if (ret != sizeof(m_settings))			RMDBGLOG((GUIDBG, "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((GUIDBG, "CRC mismatch ... resetting settings: found = 0x%08X, calculated = 0x%08X\n", current_crc, calculated_crc));			SetDefaultPlayerSettings();#ifdef GUI_REFID_3			// an upgrade may be going on,merge previous settings			if(RMSUCCEEDED(MergePreviousPlayerSettings()))			calculated_crc = CalculateCRC((RMuint8*)&m_settings, sizeof(m_settings)/2);#endif			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((GUIDBG, "Error writting player settings\n"));			fsync(file);			close(file);		}		else		{			RMDBGLOG((GUIDBG, "CRC match ... found = 0x%08X, calculated = 0x%08X\n", current_crc, calculated_crc));		}	}	else	{		// Set default settings		SetDefaultPlayerSettings();		RMDBGLOG((GUIDBG, "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((GUIDBG, "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;}RMstatus RMcuracaoGui::ApplyPlayerSettings(){	//	RMuint32 videoOut;	RMDBGLOG((GUIDBG, "Applying player settings : \n"));	SetVolume(m_settings.volume);	SetBrightness(m_settings.brightness);	SetContrast(m_settings.contrast);	SetSaturation(m_settings.saturation);	SetAudioOut(m_settings.audioOut);	SetAudioChannels(m_settings.audioChannels);	SetVCDPBC(m_settings.vcdPBC);	SetTVType(m_settings.tvType);#ifdef GUI_REFID_2	SetTVStandard(m_settings.tvStandard, 1111, NULL);#else	SetTVStandard(m_settings.tvStandard, 0, NULL);#endif	SetParentalLevel(m_settings.dvdParentalLevel);	m_screenSaverSpeed = m_settings.screenSaverDelay;	// video out settings	m_videoOut = GetActiveVideoOutput(m_settings.activeVideoOutput);	SetDVIHDMIAutoEDID(m_videoOut, FALSE);	// First, check auto-dvi connection if forceNoHMDI is FALSE	if (m_settings.forceNoHDMI == FALSE)	{ // auto HDMI ON		RMDBGLOG((ENABLE, "************ Testing player output on DVI/HDMI\n"));		if (m_context->decoder->GetHDMIConnected())		{			m_videoOut = SET_HDMI_AUTO_ON_COMMAND;			m_settings.hdDVIHdmi = m_videoOut;			SetActiveVideoOutput(m_videoOut);			SetDVIHDMIAutoEDID(m_videoOut, TRUE);		}		else		{			if (m_videoOut == m_settings.hdDVIOut || m_videoOut == m_settings.hdDVIHdmi)			{				// set dvi/hdmi default				GetActiveVideoOutput(m_settings.activeVideoOutput, TRUE);				// set new default to CSVideo				SetActiveVideoOutput(m_settings.tvOut);				m_videoOut = GetActiveVideoOutput(m_settings.activeVideoOutput, TRUE);			}		}	}	else	{ // auto HDMI OFF		// get connection status even if forcing non-digital output		RMbool connected = m_context->decoder->GetHDMIConnected();		if (m_videoOut == m_settings.hdDVIOut || m_videoOut == m_settings.hdDVIHdmi)		{			if (connected == FALSE)			{				// set dvi/hdmi default				GetActiveVideoOutput(m_settings.activeVideoOutput, TRUE);				// set new default to CSVideo				SetActiveVideoOutput(m_settings.tvOut);				m_videoOut = GetActiveVideoOutput(m_settings.activeVideoOutput, TRUE);			}		}	}	fprintf(stderr, "Applying saved tv settings. \nactive: %ld\ntvout: %ld\ncomponent: %ld\nDVI: %ld\nHDMI: %ld\nScart: %ld\n",			m_videoOut, m_settings.tvOut, m_settings.hdYbPrOut, m_settings.hdDVIOut, m_settings.hdDVIHdmi, m_settings.scart);	SetTVOut(m_videoOut);	// reset bookmark since we don't resume across sessions	m_settings.validBookmark = 0;	//PrintPlayerSettings(m_settings);	printf("PLAYER REGION %d\n", m_settings.dvdRegion);	// update all gui related items	UpdatePlayerInterface();	return RM_OK;}RMstatus RMcuracaoGui::UpdatePlayerInterface(){	// slider	m_pnav->SetSliderThumb(VOLUME_CONTROL, m_settings.volume);	// audio settings	m_pnav->SetMenuItemText(m_settings.audioOut);	m_pnav->SetMenuItemText(m_settings.audioChannels);	// media related	m_pnav->SetMenuItemText(m_settings.vcdPBC);	m_pnav->SetMenuItemText(m_settings.dvdParentalLevel);#ifdef GUI_REFID_2	m_pnav->SetMenuItemTextByValue(SET_SCREENSAVER_TIMOUT, m_screenSaverSpeed);#ifdef GUI_REFID_3	m_pnav->UpdateMenuState("TvHdmiAutoMenuItem", TRUE, FALSE);#else	m_pnav->SetMenuItemText(m_settings.dhcp);	//UpdateAllMenuStates();	m_pnav->SetMenuItemText(m_settings.audioMixMode);#endif // Ref3#endif // Ref2	// display related	m_pnav->SetMenuItemText(m_settings.tvType);	m_pnav->SetMenuItemText(m_settings.tvStandard);	m_pnav->SetMenuItemText(m_settings.tvOut);	m_pnav->SetMenuItemText(m_settings.hdYbPrOut);	m_pnav->SetMenuItemText(m_settings.hdDVIOut);	m_pnav->SetMenuItemText(m_settings.hdDVIHdmi);	m_pnav->SetMenuItemText(m_settings.scart);	m_pnav->SetMenuItemText(m_videoOut);	m_pnav->SetMenuItemText(m_settings.activeVideoOutput);	if (m_settings.forceNoHDMI == FALSE)		m_pnav->SetMenuItemText(SET_HDMI_AUTO_ON_COMMAND);	else		m_pnav->SetMenuItemText(SET_HDMI_AUTO_OFF_COMMAND);	// misc	m_pnav->SetMenuItemText(m_settings.warningMode);	return RM_OK;}// read volume and BCS from XML!!!!!!!!!!!!!!!!!!!!RMstatus RMcuracaoGui::SetDefaultPlayerSettings(){	RMDBGLOG((GUIDBG, "applying default player settings\n"));	// set volume to max (+0dB) by default.	m_settings.volume = GUI_DEFAULT_VOLUME;	m_settings.brightness = GUI_DEFAULT_BRIGHTNESS;	m_settings.contrast = GUI_DEFAULT_CONTRAST;	m_settings.saturation = GUI_DEFAULT_SATURATION;	m_settings.audioOut = SET_ANALOG_DPCM_COMMAND;	m_settings.hdDVIHdmi = SET_HDMI_AUTO_ON_COMMAND; // Includes auto DVI/HDMI plug-in	m_settings.hdDVIOut = SET_HDDVI_480P_COMMAND;	m_settings.hdYbPrOut = SET_HDCOMPONENT_480P60_COMMAND;	m_settings.tvOut = SET_TV_NTSC_CSVIDEO_COMMAND;	m_settings.scart = SET_TV_NTSC_RGBSCART_COMMAND;	m_settings.vcdPBC = VCD_PBC_ON_COMMAND;	m_settings.tvType = TV_4_3LETTERBOX_COMMAND;	m_settings.tvStandard = TV_NTSC_COMMAND;	m_settings.dvdParentalLevel = PARENTAL_LEVELOFF_COMMAND;	m_settings.forceNoHDMI = FALSE;#ifdef GUI_REFID_3	m_settings.audioChannels = SET_AUDIO_2CHANNELS_COMMAND;#else	m_settings.audioChannels = SET_AUDIO_6CHANNELS_COMMAND;#endif	m_settings.screenSaverDelay = 30 * 60;	RMCopyAscii(m_settings.dvdParentalPassw, GUI_DEFAULT_PASSWORD_STR);#ifdef GUI_REFID_2	m_settings.activeVideoOutput = AC_DEFAULT_VIDEO_OUTPUT;	m_settings.dhcp = ENABLE_DHCP;	m_settings.ip = 0x0;	m_settings.subnet = 0xffff0000;	m_settings.gateway = 0x0;	m_settings.dns = 0x0;	m_settings.dnsAlt = 0x0;	m_settings.networkConfig = DHCP_MASK | WIRED_MASK | NTP_MASK;	m_settings.quickSetupStatus = NUMBER_OF_QUICK_SETUP_PAGES;	m_settings.audioMixMode = SET_AUDIO_DOWNMIX_COMMAND;	m_settings.timezone = 0;	m_settings.menuLanguage = RM_LANGUAGE_ENGLISH;	m_settings.myKmlPage[0] = '\0';	m_settings.dvdMenuLanguage = RM_LANGUAGE_ENGLISH;	m_settings.dvdSubtitleLanguage = RM_LANGUAGE_ENGLISH;	m_settings.dvdSpokenLanguage = RM_LANGUAGE_ENGLISH;	m_settings.dvdRegion = AC_DEFAULT_DVD_REGION;#ifdef GUI_REFID_3	m_settings.country = RM_COUNTRY_UNITED_STATES;	m_settings.warningMode = STANDARD_WARNING_MODE_COMMAND;#else	m_settings.country = RM_COUNTRY_DENMARK;#endif#else	m_settings.activeVideoOutput = SET_NTSCSD_MODE_COMMAND;	m_settings.dvdRegion = GUI_DEFAULT_DVDREGION;#endif	// 'secret' settings	m_settings.macrovisionOn = GUI_DEFAULT_MACROVISION;	return RM_OK;}void RMcuracaoGui::PrintPlayerSettings(guiPlayerSettingsType settings){	RMDBGLOG((GUIDBG, "volume 0x%lx\n", settings.volume));	RMDBGLOG((GUIDBG, "brightness 0x%lx\n", settings.brightness));	RMDBGLOG((GUIDBG, "contrast 0x%lx\n", settings.contrast));	RMDBGLOG((GUIDBG, "saturation 0x%lx\n", settings.saturation));	switch (settings.audioOut)	{	case SET_ANALOG_DPCM_COMMAND:		RMDBGLOG((GUIDBG, "audio out = analog\n"));		break;	case SET_ENCODED_DIGITAL_COMMAND:		RMDBGLOG((GUIDBG, "audio out = digital \n"));		break;	default:		RMDBGLOG((GUIDBG, "audio out = UNKNOWN \n"));		break;	}	switch (settings.hdDVIOut)	{	case SET_HDDVI_480P_COMMAND:		RMDBGLOG((GUIDBG, "HD DVI out = 480P\n"));		break;	case SET_HDDVI_720P_COMMAND:		RMDBGLOG((GUIDBG, "HD DVI out = 720P\n"));		break;	case SET_HDDVI_1080I_COMMAND:		RMDBGLOG((GUIDBG, "HD DVI out = 1080I\n"));		break;	case SET_HDDVI_768_60HZ_COMMAND:		RMDBGLOG((GUIDBG, "HD DVI out = 768 60Hz\n"));		break;	case SET_HDDVI_1024_60HZ_COMMAND:		RMDBGLOG((GUIDBG, "HD DVI out = 1024 60Hz\n"));		break;	case SET_HDDVI_OFF_COMMAND:		RMDBGLOG((GUIDBG, "HD DVI out = OFF\n"));		break;	default:		RMDBGLOG((GUIDBG, "HD DVI out = UNKNOWN\n"));		break;	}	switch (settings.hdYbPrOut)	{	case SET_HDCOMPONENT_480P60_COMMAND:		RMDBGLOG((GUIDBG, "HD Component out = 480P 60\n"));		break;	case SET_HDCOMPONENT_720P60_COMMAND:		RMDBGLOG((GUIDBG, "HD Component out = 720P 60\n"));		break;	case SET_HDCOMPONENT_1080I60_COMMAND:		RMDBGLOG((GUIDBG, "HD Component out = 1080I 60\n"));		break;	case SET_HDCOMPONENT_OFF_COMMAND:		RMDBGLOG((GUIDBG, "HD Component out = OFF\n"));		break;	case SET_HDCOMPONENT_576P50_COMMAND:		RMDBGLOG((GUIDBG, "HD Component out = 576P 50\n"));		break;	case SET_HDCOMPONENT_720P50_COMMAND:		RMDBGLOG((GUIDBG, "HD Component out = 720P 50\n"));		break;	case SET_HDCOMPONENT_1080I50_COMMAND:		RMDBGLOG((GUIDBG, "HD Component out = 1080I 50\n"));		break;	default:		RMDBGLOG((GUIDBG, "HD Component out = UNKNOWN\n"));		break;	}	switch (settings.tvOut)	{	case SET_TV_NTSC_CSVIDEO_COMMAND:		RMDBGLOG((GUIDBG, "TV out = NTSC S-Video\n"));		break;	case SET_TV_NTSC_CYPBPR_COMMAND:		RMDBGLOG((GUIDBG, "TV out = NTSC YPBPR\n"));		break;	case SET_TV_NTSC_CRGB_COMMAND:		RMDBGLOG((GUIDBG, "TV out = NTSC RGB\n"));		break;	case SET_TV_PAL_CSVIDEO_COMMAND:		RMDBGLOG((GUIDBG, "TV out = PAL S-Video\n"));		break;	case SET_TV_PAL_CYPBPR_COMMAND:		RMDBGLOG((GUIDBG, "TV out = PAL YPBPR\n"));		break;	case SET_TV_PAL_CRGB_COMMAND:		RMDBGLOG((GUIDBG, "TV out = PAL RGB\n"));		break;	default:		RMDBGLOG((GUIDBG, "TV out = UNKNOWN\n"));		break;	}	switch (settings.tvStandard)

⌨️ 快捷键说明

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