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

📄 osdsm.c

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

/*****************************************************************
x.hu, 20050614
This file is for debuging firmware, so all the items may be removed 
to other files.
*****************************************************************/

#include "..\Header\Include.h"

#if(_VIDEO_SUPPORT == _ON)
#if (_CUSTOM_TYPE == _CUSTOM_HAOZHEN)
#if (_OSD_SM_ENABLE)


BYTE code tOSD_MU_BRIGHTNESS_STR[] =
{
    0x00,_B_,_R_,_I_,_G_,_H_,_T_,_N_,_E_,_S_,_S_,_END_,
    0x00,_B_,_R_,_I_,_G_,_H_,_T_,_N_,_E_,_S_,_S_,_END_,
    0x00,_B_,_R_,_I_,_G_,_H_,_T_,_N_,_E_,_S_,_S_,_END_,
    0x00,_B_,_R_,_I_,_G_,_H_,_T_,_N_,_E_,_S_,_S_,_END_,
    0x00,_B_,_R_,_I_,_G_,_H_,_T_,_N_,_E_,_S_,_S_,_END_,
    0x00,_B_,_R_,_I_,_G_,_H_,_T_,_N_,_E_,_S_,_S_,_END_,
    0x00,_B_,_R_,_I_,_G_,_H_,_T_,_N_,_E_,_S_,_S_,_END_,
    0x00,_B_,_R_,_I_,_G_,_H_,_T_,_N_,_E_,_S_,_S_,_END_,
};

BYTE code tOSD_MU_CONTRAST_STR[] =
{
    0x00,0x00,_C_,_O_,_N_,_T_,_R_,_A_,_S_,_T_,0x00,_END_,
    0x00,0x00,_C_,_O_,_N_,_T_,_R_,_A_,_S_,_T_,0x00,_END_,
    0x00,0x00,_C_,_O_,_N_,_T_,_R_,_A_,_S_,_T_,0x00,_END_,
    0x00,0x00,_C_,_O_,_N_,_T_,_R_,_A_,_S_,_T_,0x00,_END_,
    0x00,0x00,_C_,_O_,_N_,_T_,_R_,_A_,_S_,_T_,0x00,_END_,
    0x00,0x00,_C_,_O_,_N_,_T_,_R_,_A_,_S_,_T_,0x00,_END_,
    0x00,0x00,_C_,_O_,_N_,_T_,_R_,_A_,_S_,_T_,0x00,_END_,
    0x00,0x00,_C_,_O_,_N_,_T_,_R_,_A_,_S_,_T_,0x00,_END_,
};

BYTE code tOSD_MU_SHARPNESS_STR[] =
{
    0x00,_S_,_H_,_A_,_R_,_P_,_N_,_E_,_S_,_S_,0x00,_END_,
    0x00,_S_,_H_,_A_,_R_,_P_,_N_,_E_,_S_,_S_,0x00,_END_,
    0x00,_S_,_H_,_A_,_R_,_P_,_N_,_E_,_S_,_S_,0x00,_END_,
    0x00,_S_,_H_,_A_,_R_,_P_,_N_,_E_,_S_,_S_,0x00,_END_,
    0x00,_S_,_H_,_A_,_R_,_P_,_N_,_E_,_S_,_S_,0x00,_END_,
    0x00,_S_,_H_,_A_,_R_,_P_,_N_,_E_,_S_,_S_,0x00,_END_,
    0x00,_S_,_H_,_A_,_R_,_P_,_N_,_E_,_S_,_S_,0x00,_END_,
    0x00,_S_,_H_,_A_,_R_,_P_,_N_,_E_,_S_,_S_,0x00,_END_,
};

BYTE code tOSD_MU_HUE_STR[] =
{
    0x00,0x00,0x00,0x00,0x00,_H_,_U_,_E_,0x00,0x00,0x00,_END_,
    0x00,0x00,0x00,0x00,0x00,_H_,_U_,_E_,0x00,0x00,0x00,_END_,
    0x00,0x00,0x00,0x00,0x00,_H_,_U_,_E_,0x00,0x00,0x00,_END_,
    0x00,0x00,0x00,0x00,0x00,_H_,_U_,_E_,0x00,0x00,0x00,_END_,
    0x00,0x00,0x00,0x00,0x00,_H_,_U_,_E_,0x00,0x00,0x00,_END_,
    0x00,0x00,0x00,0x00,0x00,_H_,_U_,_E_,0x00,0x00,0x00,_END_,
    0x00,0x00,0x00,0x00,0x00,_H_,_U_,_E_,0x00,0x00,0x00,_END_,
    0x00,0x00,0x00,0x00,0x00,_H_,_U_,_E_,0x00,0x00,0x00,_END_,
};
BYTE code tOSD_MU_SATURATION_STR[] =
{
    0x00,_S_,_A_,_T_,_U_,_R_,_A_,_T_,_I_,_O_,_N_,_END_,
    0x00,_S_,_A_,_T_,_U_,_R_,_A_,_T_,_I_,_O_,_N_,_END_,
    0x00,_S_,_A_,_T_,_U_,_R_,_A_,_T_,_I_,_O_,_N_,_END_,
    0x00,_S_,_A_,_T_,_U_,_R_,_A_,_T_,_I_,_O_,_N_,_END_,
    0x00,_S_,_A_,_T_,_U_,_R_,_A_,_T_,_I_,_O_,_N_,_END_,
    0x00,_S_,_A_,_T_,_U_,_R_,_A_,_T_,_I_,_O_,_N_,_END_,
    0x00,_S_,_A_,_T_,_U_,_R_,_A_,_T_,_I_,_O_,_N_,_END_,
    0x00,_S_,_A_,_T_,_U_,_R_,_A_,_T_,_I_,_O_,_N_,_END_,
};

BYTE code tOSD_MU_MUTE_STR[] =
{
    _M_,_U_,_T_,_E_,_END_,
    _M_,_U_,_T_,_E_,_END_,
    _M_,_U_,_T_,_E_,_END_,
    _M_,_U_,_T_,_E_,_END_,
    _M_,_U_,_T_,_E_,_END_,
    _M_,_U_,_T_,_E_,_END_,
    _M_,_U_,_T_,_E_,_END_,
    _M_,_U_,_T_,_E_,_END_,
};

BYTE code tOSD_MU_MUTE_ONOFF_STR[][4] =
{
    {	_O_,_N_,0x00,_END_,	},
    {	_O_,_F_,_F_,_END_,	},
};


BYTE code tOSD_MU_VOLUME_STR[] =
{
    0x00,0x00,0x00,0x00,0x00,_V_,_O_,_L_,_U_,_M_,_E_,_END_,
    0x00,0x00,0x00,0x00,0x00,_V_,_O_,_L_,_U_,_M_,_E_,_END_,
    0x00,0x00,0x00,0x00,0x00,_V_,_O_,_L_,_U_,_M_,_E_,_END_,
    0x00,0x00,0x00,0x00,0x00,_V_,_O_,_L_,_U_,_M_,_E_,_END_,
    0x00,0x00,0x00,0x00,0x00,_V_,_O_,_L_,_U_,_M_,_E_,_END_,
    0x00,0x00,0x00,0x00,0x00,_V_,_O_,_L_,_U_,_M_,_E_,_END_,
    0x00,0x00,0x00,0x00,0x00,_V_,_O_,_L_,_U_,_M_,_E_,_END_,
    0x00,0x00,0x00,0x00,0x00,_V_,_O_,_L_,_U_,_M_,_E_,_END_,
};

#if (_PCB_RIGHTECH_A_USE_PV013BA1 == _TRUE)
#if (_INFRARED_ENABLE == _TRUE)
BYTE code tOSD_MU_IREMIT_STR[] =
{
    _I_,_R_,_END_,
    _I_,_R_,_END_,
    _I_,_R_,_END_,
    _I_,_R_,_END_,
    _I_,_R_,_END_,
    _I_,_R_,_END_,
    _I_,_R_,_END_,
    _I_,_R_,_END_,
};

BYTE code tOSD_MU_IREMIT_VALUE_STR[][9] =
{
    {	_3_,_DOT_,_3_,0x00,_3_,_DOT_,_8_,_END_,	},
    {	_2_,_DOT_,_3_,0x00,_2_,_DOT_,_8_,_END_,	},
};
#endif
#endif


BYTE code tOSD_MU_FM_STR[] =
{
    _F_,_M_,0x00,_F_,_R_,_E_,_Q_,_U_,_E_,_N_,_C_,_E_,_END_,
    _F_,_M_,0x00,_F_,_R_,_E_,_Q_,_U_,_E_,_N_,_C_,_E_,_END_,
    _F_,_M_,0x00,_F_,_R_,_E_,_Q_,_U_,_E_,_N_,_C_,_E_,_END_,
    _F_,_M_,0x00,_F_,_R_,_E_,_Q_,_U_,_E_,_N_,_C_,_E_,_END_,
    
    _F_,_M_,0x00,_F_,_R_,_E_,_Q_,_U_,_E_,_N_,_C_,_E_,_END_,
    _F_,_M_,0x00,_F_,_R_,_E_,_Q_,_U_,_E_,_N_,_C_,_E_,_END_,
    _F_,_M_,0x00,_F_,_R_,_E_,_Q_,_U_,_E_,_N_,_C_,_E_,_END_,
    _F_,_M_,0x00,_F_,_R_,_E_,_Q_,_U_,_E_,_N_,_C_,_E_,_END_,
};
BYTE code tOSD_MU_DEFAULT_STR[] =
{
    _D_,_E_,_F_,_A_,_U_,_L_,_T_,0x00,0x00,_V_,_E_,_R_,_END_,
    _D_,_E_,_F_,_A_,_U_,_L_,_T_,0x00,0x00,_V_,_E_,_R_,_END_,
    _D_,_E_,_F_,_A_,_U_,_L_,_T_,0x00,0x00,_V_,_E_,_R_,_END_,
    _D_,_E_,_F_,_A_,_U_,_L_,_T_,0x00,0x00,_V_,_E_,_R_,_END_,
    
    _D_,_E_,_F_,_A_,_U_,_L_,_T_,0x00,0x00,_V_,_E_,_R_,_END_,
    _D_,_E_,_F_,_A_,_U_,_L_,_T_,0x00,0x00,_V_,_E_,_R_,_END_,
    _D_,_E_,_F_,_A_,_U_,_L_,_T_,0x00,0x00,_V_,_E_,_R_,_END_,
    _D_,_E_,_F_,_A_,_U_,_L_,_T_,0x00,0x00,_V_,_E_,_R_,_END_,
};
BYTE code tOSD_MU_EXIT_STR[] =
{
    _S_,_A_,_V_,_E_,0x00,_A_,_N_,_D_,0x00,_E_,_X_,_I_,_T_,_END_,
    _S_,_A_,_V_,_E_,0x00,_A_,_N_,_D_,0x00,_E_,_X_,_I_,_T_,_END_,
    _S_,_A_,_V_,_E_,0x00,_A_,_N_,_D_,0x00,_E_,_X_,_I_,_T_,_END_,
    _S_,_A_,_V_,_E_,0x00,_A_,_N_,_D_,0x00,_E_,_X_,_I_,_T_,_END_,
    
    _S_,_A_,_V_,_E_,0x00,_A_,_N_,_D_,0x00,_E_,_X_,_I_,_T_,_END_,
    _S_,_A_,_V_,_E_,0x00,_A_,_N_,_D_,0x00,_E_,_X_,_I_,_T_,_END_,
    _S_,_A_,_V_,_E_,0x00,_A_,_N_,_D_,0x00,_E_,_X_,_I_,_T_,_END_,
    _S_,_A_,_V_,_E_,0x00,_A_,_N_,_D_,0x00,_E_,_X_,_I_,_T_,_END_,
};

//----------------------------------------------------------------------------------------------------
// OSD Operation
//----------------------------------------------------------------------------------------------------
void COsdMUMenuSetPosition(void)
{
	#if (_PANEL_TYPE == _PANEL_TD141TGCB1)
	//set osd position
	//if H double, set position as:
	COsdFxSetPosition(WIDTH(_OSD_MAIN_DH_END), HEIGHT(_OSD_HINT_DV_END), 80, 0, 0x01);  
	#elif (_PANEL_TYPE ==_PANEL_JIALUHUA ||_PANEL_TYPE == _PANEL_LQ104V1DG51)
	COsdFxSetPosition(WIDTH(_OSD_MAIN_DH_END), HEIGHT(36), 50, 0, 0x01);  
	#elif (_PANEL_TYPE == _PANEL_LQ092Y3DG01)
	COsdFxSetPosition(WIDTH(_OSD_MAIN_DH_END), HEIGHT(36), 55, 0, 0x01);  
	#else
	COsdFxSetPosition(WIDTH(_OSD_MAIN_DH_END), HEIGHT(_OSD_HINT_DV_END), 36, 0, 0x01);  
	#endif
}

void COsdMUMenuNone(void)
{
	if (ucCurrState != _ACTIVE_STATE)
		return;

	bVideoSharpness = 0;
	
	COsdFxDisableOsd();

	//apply osd map
	COsdFxApplyMapSetting(_OSD_MAP4);

	//clear original text, may not need
    COsdDispClearText(ROW(0), COL(0),WIDTH(_OSD_LINE_LEN), HEIGHT(_OSD_LINE_HEIGHT));
	
	//CLR_KEYREPEATENABLE();
    ////SET_KEYREPEATENABLE();
	
	//set text color
	COsdFxChange1bitColor(ROW(0), COL(0),WIDTH(_OSD_LINE_LEN), HEIGHT(1), _MUCP_TEXT, _MUCP_TEXTBG);
	//write text
    COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_ITEMNAME_COL), stOsdUserData.Language, tOSD_MU_BRIGHTNESS_STR);
	
	//write progress bar
	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), stVideoData.Brightness, _SLIDER_MAX_BRIGHTNESS, 0, _MUCP_BAR, _MUCP_BARBG);

	//border color
	COsdFxPWMCtlCommand(ADDRESS(3), _WRITE_BYTE1, (_OSD_BORDER_COLOR<<4));
	
	COsdMUMenuSetPosition();

	//change state
	COsdDispState(_MENU_MU_BRIGHT);

	COsdFxEnableOsd();
	
	
}

void COsdMUMenuBright(void)
{
	//CLR_KEYREPEATENABLE();
    ////SET_KEYREPEATENABLE();
    COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_ITEMNAME_COL), stOsdUserData.Language, tOSD_MU_CONTRAST_STR);
	COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stVideoData.Contrast, _SLIDER_MAX_CONTRAST, 0, _MUCP_BAR, _MUCP_BARBG);
	COsdDispState(_MENU_MU_CONTRAST);
}
void COsdMULeftBright(void)
{
    SET_KEYREPEATENABLE();
	stVideoData.Brightness = COsdFxDetOverRange(stVideoData.Brightness, _SLIDER_MAX_BRIGHTNESS, 0, _DET_OVERRANGE_MIN);
    CAdjustVideoBright();
	COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stVideoData.Brightness, _SLIDER_MAX_BRIGHTNESS, 0, _MUCP_BAR, _MUCP_BARBG);
	ucOsdEventMsg = _SAVE_EE_VIDEODATA_MSG;
}
void COsdMURightBright(void)
{
    SET_KEYREPEATENABLE();
	stVideoData.Brightness = COsdFxDetOverRange(stVideoData.Brightness, _SLIDER_MAX_BRIGHTNESS, 0, _DET_OVERRANGE_MAX);
    CAdjustVideoBright();
	COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stVideoData.Brightness, _SLIDER_MAX_BRIGHTNESS, 0, _MUCP_BAR, _MUCP_BARBG);
	ucOsdEventMsg = _SAVE_EE_VIDEODATA_MSG;
}

void COsdMUMenuContrast(void)
{
	//CLR_KEYREPEATENABLE();
    ////SET_KEYREPEATENABLE();
	bVideoSharpness = 1;
    COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_ITEMNAME_COL), stOsdUserData.Language, tOSD_MU_SHARPNESS_STR);
	COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stVideoData.VSharpness, _SLIDER_MAX_SHARPNESS, 0, _MUCP_BAR, _MUCP_BARBG);
	
	COsdDispState(_MENU_MU_SHARPNESS); 
}
void COsdMULeftContrast(void)
{
    SET_KEYREPEATENABLE();
	stVideoData.Contrast = COsdFxDetOverRange(stVideoData.Contrast, _SLIDER_MAX_CONTRAST, 0, _DET_OVERRANGE_MIN);
    CAdjustVideoContrast();
	COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stVideoData.Contrast, _SLIDER_MAX_CONTRAST, 0, _MUCP_BAR, _MUCP_BARBG);
	ucOsdEventMsg = _SAVE_EE_VIDEODATA_MSG;
}
void COsdMURightContrast(void)
{
    SET_KEYREPEATENABLE();
	stVideoData.Contrast = COsdFxDetOverRange(stVideoData.Contrast, _SLIDER_MAX_CONTRAST, 0, _DET_OVERRANGE_MAX);
    CAdjustVideoContrast();
	COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stVideoData.Contrast, _SLIDER_MAX_CONTRAST, 0, _MUCP_BAR, _MUCP_BARBG);
	ucOsdEventMsg = _SAVE_EE_VIDEODATA_MSG;
}
 
void COsdMUMenuSharpness(void)
{
    ////SET_KEYREPEATENABLE();
	
	bVideoSharpness = 0;
	
	//#if (_OSD_VHUE_ENABLE == _TRUE)	// x.hu, 20050902, update for 5key project
	#if (_OSD_VHUE_ENABLE == _TRUE || _CUSTOM_HAOZHEN_PRJ5K == _TRUE)	// x.hu, 20050902, update for 5key project
	// skip Hue for PAL has no hue item
	if (1){//(CHECK60HZ()) {	// We simulate the demo's action, so it is not checked of PAL or NTSC.
		COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_ITEMNAME_COL), stOsdUserData.Language, tOSD_MU_HUE_STR);
		COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stVideoData.Hue, _SLIDER_MAX_HUE, 0, _MUCP_BAR, _MUCP_BARBG);
		COsdDispState(_MENU_MU_HUE);
	}
	else {
	    COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_ITEMNAME_COL), stOsdUserData.Language, tOSD_MU_SATURATION_STR);
		COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stVideoData.Saturation, _SLIDER_MAX_HUE, 0, _MUCP_BAR, _MUCP_BARBG);
		COsdDispState(_MENU_MU_SATURATION);
	}
	#else
	// if HUE is masked according to the customer's request, it skips to SATURATION directly.
	COsdMUMenuHue();
	#endif
}

void COsdMULeftSharpness(void)
{
    SET_KEYREPEATENABLE();
	stVideoData.VSharpness = COsdFxDetOverRange(stVideoData.VSharpness, _SLIDER_MAX_SHARPNESS, 0, _DET_OVERRANGE_MIN);
    CAdjustVideoSharpness();
	COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stVideoData.VSharpness, _SLIDER_MAX_SHARPNESS, 0, _MUCP_BAR, _MUCP_BARBG);
	ucOsdEventMsg = _SAVE_EE_VIDEODATA_MSG;
}

void COsdMURightSharpness(void)
{
    SET_KEYREPEATENABLE();
	stVideoData.VSharpness = COsdFxDetOverRange(stVideoData.VSharpness, _SLIDER_MAX_SHARPNESS, 0, _DET_OVERRANGE_MAX);
    CAdjustVideoSharpness();
	COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stVideoData.VSharpness, _SLIDER_MAX_SHARPNESS, 0, _MUCP_BAR, _MUCP_BARBG);
	ucOsdEventMsg = _SAVE_EE_VIDEODATA_MSG;
}

void COsdMUMenuHue(void)
{
    ////SET_KEYREPEATENABLE();
    COsdFxLoadTextMU(ROW(0), COL(_OSD_POS_ITEMNAME_COL), stOsdUserData.Language, tOSD_MU_SATURATION_STR);
	COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stVideoData.Saturation, _SLIDER_MAX_SATURATION, 0, _MUCP_BAR, _MUCP_BARBG);
	COsdDispState(_MENU_MU_SATURATION);
}
void COsdMULeftHue(void)
{
    SET_KEYREPEATENABLE();
	stVideoData.Hue = COsdFxDetOverRange(stVideoData.Hue, _SLIDER_MAX_HUE, 0, _DET_OVERRANGE_MIN);
    CAdjustVideoHue();
	COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stVideoData.Hue, _SLIDER_MAX_HUE, 0, _MUCP_BAR, _MUCP_BARBG);
	ucOsdEventMsg = _SAVE_EE_VIDEODATA_MSG;
}
void COsdMURightHue(void)
{
    SET_KEYREPEATENABLE();
	stVideoData.Hue = COsdFxDetOverRange(stVideoData.Hue, _SLIDER_MAX_HUE, 0, _DET_OVERRANGE_MAX);
    CAdjustVideoHue();
	COsdDispFullSliderMU(ROW(0), COL(_OSD_POS_SLIDER_COL), LENGTH(_OSD_POS_SLIDER_LEN), stVideoData.Hue, _SLIDER_MAX_HUE, 0, _MUCP_BAR, _MUCP_BARBG);
	ucOsdEventMsg = _SAVE_EE_VIDEODATA_MSG;
}

⌨️ 快捷键说明

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