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

📄 osdsm.c

📁 车载 液晶显示器的主控程序(主要使用芯片为 MYSON MTV512 单片机、RealTek 2323 Scare 芯片、TVP5147(视频解码)。配Sharp 8寸液晶显示器 )。
💻 C
📖 第 1 页 / 共 3 页
字号:

void COsdMUMenuSaturation(void)
{
	#if (_CUSTOM_HAOZHEN_PRJ5K == _TRUE)
	#if (_CUSTOM_HAOZHEN_PRJ5K_HIDE_FM_MUTE==_TRUE)
    ////SET_KEYREPEATENABLE();
    COsdDispClearText(ROW(0), COL(0),WIDTH(_OSD_LINE_LEN), HEIGHT(1));
	COsdFxChange1bitColor(ROW(0), COL(0),WIDTH(_OSD_LINE_LEN), HEIGHT(1), _MUCP_BAR, _MUCP_BARBG);
    COsdMULoadDefault_DefaultStr();
	COsdMUShowVersion();
	COsdDispState(_MENU_MU_DEFAULT);
	#endif
	#else
	//clear original text because the mute string is very short.
    COsdDispClearText(ROW(0), COL(0),WIDTH(_OSD_LINE_LEN), HEIGHT(_OSD_LINE_HEIGHT));
	
	COsdFxChange1bitColor(ROW(0), COL(_OSD_POS_ITEMNAME_COL+19-3),WIDTH(8), HEIGHT(1), _MUCP_BAR, _MUCP_TEXTBG);
    COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_ITEMNAME_COL+19-3), stOsdUserData.Language, tOSD_MU_MUTE_STR);	
	COsdMULoadMuteValueImage();
	COsdDispState(_MENU_MU_MUTE);
	#endif

}

void COsdMULeftSaturation(void)
{
    SET_KEYREPEATENABLE();
	stVideoData.Saturation = COsdFxDetOverRange(stVideoData.Saturation, _SLIDER_MAX_SATURATION, 0, _DET_OVERRANGE_MIN);
    CAdjustVideoSaturation();
	COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stVideoData.Saturation, _SLIDER_MAX_SATURATION, 0, _MUCP_BAR, _MUCP_BARBG);
		
	ucOsdEventMsg = _SAVE_EE_VIDEODATA_MSG;
}
void COsdMURightSaturation(void)
{
    SET_KEYREPEATENABLE();
	stVideoData.Saturation = COsdFxDetOverRange(stVideoData.Saturation, _SLIDER_MAX_SATURATION, 0, _DET_OVERRANGE_MAX);
    CAdjustVideoSaturation();
	COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stVideoData.Saturation, _SLIDER_MAX_SATURATION, 0, _MUCP_BAR, _MUCP_BARBG);
	ucOsdEventMsg = _SAVE_EE_VIDEODATA_MSG;
}

void COsdMUMenuMute(void)
{
    ////SET_KEYREPEATENABLE();
	#if (_AUDIO_DEVICE != _AUDIO_NONE)
	COsdFxChange1bitColor(ROW(0), COL(0),WIDTH(_OSD_LINE_LEN), HEIGHT(1), _MUCP_TEXT, _MUCP_TEXTBG);
    COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_ITEMNAME_COL), stOsdUserData.Language, tOSD_MU_VOLUME_STR);

	COsdFxChange1bitColor(ROW(0), COL(_OSD_POS_SLIDER_COL),LENGTH(_OSD_POS_SLIDER_LEN), HEIGHT(1), _MUCP_BAR, _MUCP_BARBG);
	COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stAudioData.audioVolume, 100, 0, _MUCP_BAR, _MUCP_BARBG);

	COsdDispState(_MENU_MU_VOLUME);
	#else
		//#if (_PCB_TYPE == _PCB_RIGHTECH_A && _INFRARED_ENABLE == _TRUE)
	#if (_PCB_RIGHTECH_A_USE_PV013BA1 == _TRUE)
			#if (_INFRARED_ENABLE == _TRUE)
    COsdDispClearText(ROW(0), COL(0),WIDTH(_OSD_LINE_LEN), HEIGHT(1));
	COsdFxChange1bitColor(ROW(0), COL(_OSD_POS_SLIDER_COL+3),WIDTH(_OSD_POS_SLIDER_LEN+2), HEIGHT(1), _MUCP_BAR, _MUCP_BARBG);
    COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_SLIDER_COL+3), stOsdUserData.Language, tOSD_MU_IREMIT_STR);
	
	COsdMULoadIrEmitValueImage();
	COsdDispState(_MENU_MU_IREMIT);
			#else
    COsdDispClearText(ROW(0), COL(0),WIDTH(_OSD_LINE_LEN), HEIGHT(1));
	COsdFxChange1bitColor(ROW(0), COL(_OSD_POS_SLIDER_COL-2),WIDTH(_OSD_POS_SLIDER_LEN+2), HEIGHT(1), _MUCP_BAR, _MUCP_BARBG);
    COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_SLIDER_COL-2), stOsdUserData.Language, tOSD_MU_FM_STR);
	
	CAudioShowFMFreq();
	COsdDispState(_MENU_MU_FMFREQ);
			#endif
		#else
    COsdDispClearText(ROW(0), COL(0),WIDTH(_OSD_LINE_LEN), HEIGHT(1));
	COsdFxChange1bitColor(ROW(0), COL(_OSD_POS_SLIDER_COL-2),WIDTH(_OSD_POS_SLIDER_LEN+2), HEIGHT(1), _MUCP_BAR, _MUCP_BARBG);
    COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_SLIDER_COL-2), stOsdUserData.Language, tOSD_MU_FM_STR);
	
	CAudioShowFMFreq();
	COsdDispState(_MENU_MU_FMFREQ);
		#endif
	#endif
}
void COsdMULeftMute(void)
{
	CAdjustMute();
	COsdMULoadMuteValueImage();
}

void COsdMURightMute(void)
{
	CAdjustMute();
	COsdMULoadMuteValueImage();
}

//#if (_PCB_TYPE == _PCB_RIGHTECH_A)
	#if (_PCB_RIGHTECH_A_USE_PV013BA1 == _TRUE)
#if (_INFRARED_ENABLE == _TRUE)
void COsdMULoadIrEmitValueImage(void)
{
	COsdFxChange1bitColor(ROW(0), COL(_OSD_POS_ITEMNAME_COL+19+2),WIDTH(8), HEIGHT(1), _MUCP_BAR, _MUCP_TEXTBG);
	if (stAudioData.audioFlag & _BIT6) {
		COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_ITEMNAME_COL+19+2), 0, &tOSD_MU_IREMIT_VALUE_STR[1][0]); 
	}
	else {
		COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_ITEMNAME_COL+19+2), 0, &tOSD_MU_IREMIT_VALUE_STR[0][0]);
	}
}

void COsdMUMenuIrEmit(void)
{
    ////SET_KEYREPEATENABLE();
	
    COsdDispClearText(ROW(0), COL(0),WIDTH(_OSD_LINE_LEN), HEIGHT(1));
	COsdFxChange1bitColor(ROW(0), COL(_OSD_POS_SLIDER_COL-2),WIDTH(_OSD_POS_SLIDER_LEN+2), HEIGHT(1), _MUCP_BAR, _MUCP_BARBG);
    COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_SLIDER_COL-2), stOsdUserData.Language, tOSD_MU_FM_STR);
	
	CAudioShowFMFreq();
	COsdDispState(_MENU_MU_FMFREQ);
}
void CAdjustInfraredEmitter(void)
{
	CLR_KEYREPEATENABLE();
	stAudioData.audioFlag ^= _BIT6;
	if (stAudioData.audioFlag & _BIT6) {
		InfraredEmitter_23_28();
	}
	else {
		InfraredEmitter_33_38();
	}
}
void COsdMULeftIrEmit(void)
{
	CAdjustInfraredEmitter();
	COsdMULoadIrEmitValueImage();
	ucOsdEventMsg = _SAVE_EE_AUDIODATA_MSG;
}

void COsdMURightIrEmit(void)
{
	COsdMULeftIrEmit();
}
#endif
#endif

#if (_AUDIO_DEVICE != _AUDIO_NONE)
void COsdMUMenuVolume(void)
{
    COsdDispClearText(ROW(0), COL(0),WIDTH(_OSD_LINE_LEN), HEIGHT(1));
	COsdFxChange1bitColor(ROW(0), COL(_OSD_POS_SLIDER_COL-2-1),WIDTH(_OSD_POS_SLIDER_LEN+2), HEIGHT(1), _MUCP_BAR, _MUCP_BARBG);
    COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_SLIDER_COL-2-1), stOsdUserData.Language, tOSD_MU_FM_STR);
	
	CAudioShowFMFreq();
	
	COsdDispState(_MENU_MU_FMFREQ);
}

void COsdMULeftVolume(void)
{
    SET_KEYREPEATENABLE();
	stAudioData.audioVolume = COsdFxDetOverRange(stAudioData.audioVolume, 100, 0, _DET_OVERRANGE_MIN);

	if (stAudioData.audioFlag&_BIT7) {
		//cancel mute status
		CAudioFmMuteClear();
		//fm mute mothed cancel:
		//...
	}
	
    CAdjustVolume();
	
	COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stAudioData.audioVolume, 100, 0, _MUCP_BAR, _MUCP_BARBG);
		
	ucOsdEventMsg = _SAVE_EE_AUDIODATA_MSG;
}
void COsdMURightVolume(void)
{
    SET_KEYREPEATENABLE();
	stAudioData.audioVolume = COsdFxDetOverRange(stAudioData.audioVolume, 100, 0, _DET_OVERRANGE_MAX);
	if (stAudioData.audioFlag&_BIT7) {
		//cancel mute status
		CAudioFmMuteClear();
		//fm mute mothed cancel:
		//...
	}
	
    CAdjustVolume();
	COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stAudioData.audioVolume, 100, 0, _MUCP_BAR, _MUCP_BARBG);
	ucOsdEventMsg = _SAVE_EE_AUDIODATA_MSG;
}
#endif

void COsdMULoadDefault_DefaultStr(void)
{
	COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_ITEMNAME_COL+13-2), stOsdUserData.Language, &tOSD_MU_DEFAULT_STR);
}

void COsdMULoadMuteValueImage(void)
{
	if (stAudioData.audioFlag & _BIT7) {
		COsdFxChange1bitColor(ROW(0), COL(_OSD_POS_ITEMNAME_COL+19+5-3),WIDTH(3), HEIGHT(1), _MUCP_BAR, _MUCP_TEXTBG);
		COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_ITEMNAME_COL+19+5-3), 0, &tOSD_MU_MUTE_ONOFF_STR[0][0]); 
	}
	else {
		COsdFxChange1bitColor(ROW(0), COL(_OSD_POS_ITEMNAME_COL+19+5-3),WIDTH(3), HEIGHT(1), _MUCP_BAR, _MUCP_TEXTBG);
		COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_ITEMNAME_COL+19+5-3), 0, &tOSD_MU_MUTE_ONOFF_STR[1][0]);
	}
}

//--------------------------------------------------
// show Version
//--------------------------------------------------
void COsdMUShowVersion(void)
{
	#define _VER_COL	(25-2)
	
	if (stAudioData.audioFmOffset > _AUDIO_FM_OFFSET_MAX) {
		stAudioData.audioFmOffset = 0;
	}
	COsdFxHLine(ROW(0), COL(_VER_COL + 0), LENGTH(1), _2_, _WRITE_BYTE1);
	COsdFxHLine(ROW(0), COL(_VER_COL + 1), LENGTH(1), _0_, _WRITE_BYTE1);
	COsdFxHLine(ROW(0), COL(_VER_COL + 2), LENGTH(1), _0_, _WRITE_BYTE1);
	COsdFxHLine(ROW(0), COL(_VER_COL + 3), LENGTH(1), _REALTEK_VER, _WRITE_BYTE1);
	COsdFxHLine(ROW(0), COL(_VER_COL + 4), LENGTH(1), _DOT_, _WRITE_BYTE1);
	//COsdFxHLine(ROW(0), COL(_VER_COL + 5), LENGTH(1), _0_, _WRITE_BYTE1);
	//COsdFxHLine(ROW(0), COL(_VER_COL + 6), LENGTH(1), _1_, _WRITE_BYTE1);

	if (_VERSION_CODE<=9) {
		COsdFxHLine(ROW(0), COL(_VER_COL + 5), LENGTH(1), _0_, _WRITE_BYTE1);
		COsdFxHLine(ROW(0), COL(_VER_COL + 6), LENGTH(1), _VERSION_CODE+_0_, _WRITE_BYTE1);
	}
	else if (_VERSION_CODE>9){
		COsdFxHLine(ROW(0), COL(_VER_COL + 5), LENGTH(1), _1_, _WRITE_BYTE1);
		COsdFxHLine(ROW(0), COL(_VER_COL + 6), LENGTH(1), _VERSION_CODE- 10 +_0_, _WRITE_BYTE1);
	}
	#undef _VER_COL
}

void COsdMUMenuFMFreq(void)
{
    ////SET_KEYREPEATENABLE();
    COsdDispClearText(ROW(0), COL(0),WIDTH(_OSD_LINE_LEN), HEIGHT(1));
	COsdFxChange1bitColor(ROW(0), COL(0),WIDTH(_OSD_LINE_LEN), HEIGHT(1), _MUCP_BAR, _MUCP_BARBG);
    COsdMULoadDefault_DefaultStr();
	COsdMUShowVersion();
	COsdDispState(_MENU_MU_DEFAULT);
}

void COsdMULeftFMFreq(void)
{
    SET_KEYREPEATENABLE();
    //CAudioFmMuteClear();					//adjust frequency lead to cancel mute status.
    CAdjustFMFreq(_FM_STEP_DOWN);			//decrease
	CAudioShowFMFreq();
	ucOsdEventMsg = _SAVE_EE_AUDIODATA_MSG;
}
void COsdMURightFMFreq(void)
{
    SET_KEYREPEATENABLE();
    //CAudioFmMuteClear();					//adjust frequency lead to cancel mute status.
    CAdjustFMFreq(_FM_STEP_UP);				//increase
	CAudioShowFMFreq();
	ucOsdEventMsg = _SAVE_EE_AUDIODATA_MSG;
}


void COsdMUMenuDefault(void)
{
    ////SET_KEYREPEATENABLE();
    COsdDispClearText(ROW(0), COL(0),WIDTH(_OSD_LINE_LEN), HEIGHT(1));
	COsdFxChange1bitColor(ROW(0), COL(0), WIDTH(_OSD_LINE_LEN),1, _MUCP_BAR, _MUCP_BARBG);
    COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_ITEMNAME_COL+14), stOsdUserData.Language, tOSD_MU_EXIT_STR);
	COsdDispState(_MENU_MU_EXIT);
}
void COsdMULeftDefault(void)
{
	BYTE ucAudioFlagTemp;
	
    CLR_KEYREPEATENABLE();
    //COsdDispClearText(ROW(0), COL(0),WIDTH(34), HEIGHT(1));
	//COsdFxChange1bitColor(ROW(0), COL(0),WIDTH(34), HEIGHT(1), _MUCP_TEXT, _MUCP_TEXTBG);

	//restore video data:
	CEepromLoadVideoDataDefault();
	//set video decoder:
	CAdjustVideoBright();
	CAdjustVideoContrast();
	CAdjustVideoHue();
	CAdjustVideoSaturation();
	CAdjustVideoSharpness();

	//backup Mute:
	ucAudioFlagTemp = stAudioData.audioFlag;
	//restore audio data:
	CEepromLoadAudioDataDefault();
	
	//set audio FM:
	//CAdjustFMFreq(_FM_STEP_NONE);
	//clear mute
	//CAudioFmMuteClear();
	
	//Not reset Mute/FM freqency:
	stAudioData.audioFlag = ucAudioFlagTemp;
	CEepromSaveAudioData();
	//set volume:
	#if (_AUDIO_DEVICE != _AUDIO_NONE)
	CAdjustVolume();
	#endif
	
	//other default data...
	//CTimerDelayXms(500);
	
    //COsdDispClearText(ROW(0), COL(0),WIDTH(34), HEIGHT(1));
	//COsdFxChange1bitColor(ROW(0), COL(0),WIDTH(34), HEIGHT(1), _MUCP_TEXT, _MUCP_TEXTBG);
    //COsdMULoadDefault_DefaultStr();

}
void COsdMURightDefault(void)
{
	COsdMULeftDefault();
}
void COsdMUMenuExit(void)
{
    CLR_KEYREPEATENABLE();
	COsdDispState(_MENU_NONE);
	COsdFxDisableOsd();
}

void COsdMULeftExit(void)
{
	COsdMUMenuExit();
}
void COsdMURightExit(void)
{
	COsdMUMenuExit();
}

void COsdDispState(BYTE ucState)
{
	ucOsdState = ucState;
}
void COsdDispFullSliderMU(BYTE ucRow, BYTE ucCol, BYTE ucLength, BYTE usValue, BYTE usRange, BYTE usMin, BYTE ucColor, BYTE ucNumColor)

⌨️ 快捷键说明

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