📄 paradj.c
字号:
switch (SysPar.ColorTemp & 0x03) {
case COLOR_9300:
OsdShowStr(SubMenuWin.He - 2, SubMenuWin.Vs + row++, Icon_9300, 2);
break;
case COLOR_6500:
OsdShowStr(SubMenuWin.He - 2, SubMenuWin.Vs + row++, Icon_6500, 2);
break;
case COLOR_USER:
OsdShowStr(SubMenuWin.He - 2, SubMenuWin.Vs + row++, Icon_User, 2);
break;
}
if (SysPar.ColorTemp == COLOR_USER || Flg_Factory) {
color = SubStrColor;
cp = SubPctColor;
MaxSubMenuItem = row + 2;
}
else {
color = DARKGRAY;
cp = DARKGRAY;
MaxSubMenuItem = row - 1;
}
MenuShowStr(SubMenuWin.Hs + 1, SubMenuWin.Vs + row++, StrRed, RED);
MenuShowStr(SubMenuWin.Hs + 1, SubMenuWin.Vs + row++, StrGreen, GREEN);
MenuShowStr(SubMenuWin.Hs + 1, SubMenuWin.Vs + row++, StrBlue, BLUE);
AdjRgain(SHOWONLY, cp);
AdjGgain(SHOWONLY, cp);
AdjBgain(SHOWONLY, cp);
MenuShowSysState();
#endif
}
/*
********************************************************************************
* 函 数 名: AdjColor
* 功能描述: 调节色温,有三个选项,9300K,6500K和USER
* 输 入: step : 高四位是选项,低四位是调节的步长
* color : 显示的颜色
* 返 回: 无
********************************************************************************
*/
void AdjColor(uint8 step, uint8 color)
{
uint8 Option;
Option = step & 0xF0;
step &= 0x0F;
if (Option & SHOWONLY) {
AdjDispColor(color);
return;
}
if (step) {
if (Option & INC) {
if (SysPar.ColorTemp == 2) SysPar.ColorTemp = 0;
else SysPar.ColorTemp++;
}
else {
if (SysPar.ColorTemp == 0) SysPar.ColorTemp = 2;
else SysPar.ColorTemp--;
}
LoadColorPar();
ActiveSave_SYSPAR();
AdjCon(HIDE, 0);
if (Option & SHOW) AdjDispColor(color);
}
else AdjCon(HIDE, 0);
}
#if EN_ACEROSD //暂时新增加的函数,可以加进AdjDispColor(),但代码繁琐08-04-21
static void AdjDispColorTemp(uint8 color)
{
OsdAttrib(OSD_1BITFONT, color);
switch (SysPar.ColorTemp & 0x03) {
case COLOR_9300:
OsdShowStr(VALROLL_POSX + 5, SubMenuWin.Vs + MENU_Y_COLORTEMP, Icon_9300, 2);
break;
case COLOR_6500:
OsdShowStr(VALROLL_POSX + 5, SubMenuWin.Vs + MENU_Y_COLORTEMP, Icon_6500, 2);
break;
case COLOR_USER:
OsdShowStr(VALROLL_POSX + 5, SubMenuWin.Vs + MENU_Y_COLORTEMP, Icon_User, 2);
break;
}
OsdShowStr(VALROLL_POSX + 1, SubMenuWin.Vs + MENU_Y_COLORTEMP, Icon_Move, 1);
OsdShowStr(VALROLL_POSX + 10, SubMenuWin.Vs + MENU_Y_COLORTEMP, Icon_MoveR, 1);
}
void AdjColorTemp(uint8 step, uint8 color)
{
uint8 Option;
Option = step & 0xF0;
step &= 0x0F;
if (Option & SHOWONLY) {
AdjDispColorTemp(color);
return;
}
if (step) {
if (Option & INC) {
if (SysPar.ColorTemp == 2) SysPar.ColorTemp = 0;
else SysPar.ColorTemp++;
}
else {
if (SysPar.ColorTemp == 0) SysPar.ColorTemp = 2;
else SysPar.ColorTemp--;
}
LoadColorPar();
ActiveSave_SYSPAR();
AdjCon(HIDE, 0);
if (Option & SHOW) AdjDispColorTemp(color);
}
else AdjCon(HIDE, 0);
}
#endif
static void SetLanguageFontArray(void)
{
switch (Language) {
case CHS:
FontArrayPtr = Osd1bitFont_Chs;
break;
case CHT:
FontArrayPtr = Osd1bitFont_Cht;
break;
case KOREAN:
FontArrayPtr = Osd1bitFont_Korean;
break;
case JAPANESE:
FontArrayPtr = Osd1bitFont_Japanese;
break;
case RUSSIAN:
FontArrayPtr = Osd1bitFont_Russian;
break;
default:
FontArrayPtr = Osd1bitFont_Chs;
break;
}
}
static void AdjDispLanguage(uint8 color)
{
#if EN_ACEROSD
SetLanguageFontArray();
Alignment = CENTER;
StringWidth = 10;
OsdAttrib(OSD_1BITFONT, color);
OsdSpecPrint(VALROLL_POSX+1, SubMenuWin.Vs + 11, StrLanguageIdx[Language]);
OsdShowStr(VALROLL_POSX + 1, SubMenuWin.Vs + 11, Icon_Move, 1);
OsdShowStr(VALROLL_POSX + 10, SubMenuWin.Vs + 11, Icon_MoveR, 1);
#else
SetLanguageFontArray();
Alignment = RIGHT;
StringWidth = 10;
OsdAttrib(OSD_1BITFONT, color);
OsdSpecPrint(SubMenuWin.He - 10, SubMenuWin.Vs + 2, StrLanguageIdx[Language]);
#endif
}
/*
********************************************************************************
* 函 数 名: AdjMute
* 功能描述: 调节音频输出是静音还是正常
* 输 入: step : 高四位是选项,低四位是调节的步长
* color : 显示的颜色
* 返 回: 无
********************************************************************************
*/
void AdjLanguage(uint8 step, uint8 color)
{
#if EN_ACEROSD
uint8 Option, buf;
Option = step & 0xF0;
step &= 0x0F;
if (Option & SHOWONLY) {
AdjDispLanguage(color);
return;
}
if (step) {
if (Option & INC)
{
if (Language == RUSSIAN) Language = ENGLISH;
else Language++;
}
if(Option & DEC)
{
if (Language == ENGLISH) Language = RUSSIAN;
else Language--;
}
if (Option & SHOW) {
buf = FontIndex;
AdjDispLanguage(color);
FontIndex = buf;
}
}
else {
SetLanguageFontArray();
}
#else
uint8 Option, buf;
Option = step & 0xF0;
step &= 0x0F;
if (Option & SHOWONLY) {
AdjDispLanguage(color);
return;
}
if (step) {
if (Option & INC) {
if (Language == RUSSIAN) Language = ENGLISH;
else Language++;
}
else {
if (Language == ENGLISH) Language = RUSSIAN;
else Language--;
}
if (Option & SHOW) {
buf = FontIndex;
AdjDispLanguage(color);
FontIndex = buf;
}
}
else {
SetLanguageFontArray();
}
#endif
}
#if USE_AUDIO
static void AdjDispMute(uint8 color)
{
#if EN_ACEROSD
OsdAttrib(OSD_1BITFONT, color);
if (SysPar.Flag & FLAG_AUDIOMUTE)
OsdShowStr(SubMenuWin.He - 2, SubMenuWin.Vs + 3, Icon_MuteOn, 2);
else
OsdShowStr(SubMenuWin.He - 2, SubMenuWin.Vs + 3, Icon_MuteOff, 2);
#else
OsdAttrib(OSD_1BITFONT, color);
if (SysPar.Flag & FLAG_AUDIOMUTE)
OsdShowStr(SubMenuWin.He - 2, SubMenuWin.Vs + 2, Icon_MuteOn, 2);
else
OsdShowStr(SubMenuWin.He - 2, SubMenuWin.Vs + 2, Icon_MuteOff, 2);
MenuShowSysState();
#endif
}
/*
********************************************************************************
* 函 数 名: AdjMute
* 功能描述: 调节音频输出是静音还是正常
* 输 入: step : 高四位是选项,低四位是调节的步长
* color : 显示的颜色
* 返 回: 无
********************************************************************************
*/
void AdjMute(uint8 step, uint8 color)
{
uint8 Option;
Option = step & 0xF0;
step &= 0x0F;
if (Option & SHOWONLY) {
AdjDispMute(color);
return;
}
if (step) {
SysPar.Flag ^= FLAG_AUDIOMUTE;
if (SysPar.Flag & FLAG_AUDIOMUTE) AudioMute(ON);
else AudioMute(OFF);
if (Option & SHOW) AdjDispMute(color);
ActiveSave_SYSPAR();
}
else {
if (SysPar.Flag & FLAG_AUDIOMUTE) AudioMute(ON);
else AudioMute(OFF);
}
}
static void AdjDispVolume(uint8 color)
{
#if EN_ACEROSD
if (MenuState == MENU_SHORT_VOL) {
OsdAttrib(OSD_1BITFONT, GREEN);
OsdShowScroll(5, ShortMenuWin.Vs + 1, SysPar.Volume, 25);
OsdAttrib(OSD_1BITFONT, LIGHTRED);
OsdShowPercent(ShortMenuWin.He - 9, ShortMenuWin.Vs, SysPar.Volume);
}
else {
OsdAttrib(OSD_1BITFONT, color);
OsdShowPercent(SubMenuWin.He - 3, SubMenuWin.Vs + 5, SysPar.Volume);
OsdShowValScroll(VALROLL_POSX, SubMenuWin.Vs + 5, SysPar.Volume);
}
#else
if (MenuState == MENU_SHORT_VOL) {
OsdAttrib(OSD_1BITFONT, GREEN);
OsdShowScroll(1, ShortMenuWin.Vs + 1, SysPar.Volume, 25);
OsdAttrib(OSD_1BITFONT, LIGHTRED);
OsdShowPercent(ShortMenuWin.He - 3, ShortMenuWin.Vs, SysPar.Volume);
}
else {
OsdAttrib(OSD_1BITFONT, color);
OsdShowPercent(SubMenuWin.He - 3, SubMenuWin.Vs + 3, SysPar.Volume);
}
#endif
}
/*
********************************************************************************
* 函 数 名: AdjVolume
* 功能描述: 调节音量
* 输 入: step : 高四位是选项,低四位是调节的步长
* color : 显示的颜色
* 返 回: 无
********************************************************************************
*/
void AdjVolume(uint8 step, uint8 color)
{
uint8 i;
uint8 Option;
Option = step & 0xF0;
step &= 0x0F;
if (SysPar.Volume > 100) SysPar.Volume = 100;
if (Option & SHOWONLY) {
AdjDispVolume(color);
return;
}
for (i = 0; i< step; i++) {
if (Option & INC) {
if (SysPar.Volume < 100) SysPar.Volume++;
}
else {
if (SysPar.Volume > 0) SysPar.Volume--;
}
if (SysPar.Flag & FLAG_AUDIOMUTE) {
if (MenuState == MENU_SUB) AdjMute(SHOW+INC+1, DISADJ_COLOR);
else AdjMute(HIDE+INC+1, 0);
}
AudioVolume(SysPar.Volume);
ActiveSave_SYSPAR();
if (Option & SHOW) AdjDispVolume(color);
}
if (!step) AudioVolume(SysPar.Volume);
}
#endif
#if EN_ACEROSD
static void AdjDispColorManagement(uint8 color)
{
OsdAttrib(OSD_1BITFONT, color);
OsdShowStr(VALROLL_POSX+10, SubMenuWin.Vs + 3, Icon_MoveR, 1);
}
void AdjColorManagement(uint8 step, uint8 color)
{
uint8 Option; //, buf;
Option = step & 0xF0;
step &= 0x0F;
if (Option & SHOWONLY)
{
AdjDispColorManagement(color);
return;
}
if (step)
{
if (Option & INC)
{
}
else
{
}
if (Option & SHOW)
{
AdjDispColorManagement(color);
}
}
else
{
}
}
#endif
//#if 0
uint8 code StrCMWinIdx[][5] = {
{_O,_F,_F},
{__,__,_1},
{__,__,_2},
{__,__,_3},
{__,__,_4},
{__,__,_5},
{__,__,_6},
{__,__,_7},
{__,__,_8},
{__,__,_9},
{_A,_L,_L},
};
static void AdjDispCMWindow(uint8 color)
{
OsdAttrib(OSD_1BITFONT, color);
OsdShowStr(SubMenuWin.He - 3, SubMenuWin.Vs + 7,
StrCMWinIdx[(SysPar.ImageMode >> 4) & 0x0F], 3);
}
/*
********************************************************************************
* 函 数 名: AdjCMWindow
* 功能描述: 调整颜色管理窗口的显示位置以及大小,当然其大小和位置都是归一化处理
* 的。
* 输 入: step : 高四位是选项,低四位是调节的步长
* color : 显示的颜色
* 返 回: 无
********************************************************************************
*/
void AdjCMWindow(uint8 step, uint8 color)
{
uint8 Option, CM_Win;
Option = step & 0xF0;
step &= 0x0F;
CM_Win = (SysPar.ImageMode >> 4) & 0x0F;
if (Option & SHOWONLY) {
AdjDispCMWindow(color);
return;
}
if (CM_Win > BF_ALL) CM_Win = BF_ALL;
if (step) {
if (Option & INC) {
if (CM_Win == BF_ALL) CM_Win = BF_OFF;
else CM_Win++;
}
else {
if (CM_Win == BF_OFF) CM_Win = BF_ALL;
else CM_Win--;
}
SarSetBrightFrame(0, CM_Win);
SysPar.ImageMode = (SysPar.ImageMode & 0x0F) | (CM_Win << 4);
ActiveSave_SYSPAR();
if (Option & SHOW) AdjDispCMWindow(color);
}
#if !EN_CMWIN
else SarSetBrightFrame(0, BF_ALL);
#else
else SarSetBrightFrame(0, SysPar.CM_Win);
#endif
}
uint8 code Str_16_9[] = {0x06, __,_1,_6,_MAOHAO,_1,_0};
uint8 code Str_4_3[] = {0x06, __,__,__,_4,_MAOHAO,_3};
static void AdjDisp4B3Disp(uint8 color)
{
#if EN_ACEROSD
Alignment = LEFT;
StringWidth = 10;
OsdAttrib(OSD_1BITFONT, color);
if (IsWidthPanel())
{
if (SysPar.Flag & FLAG_4B3DISP) OsdSpecPrint(VALROLL_POSX + 4, SubMenuWin.Vs + 3, Str_4_3);
else OsdSpecPrint(VALROLL_POSX + 4, SubMenuWin.Vs + 3, Str_16_9);
}
else OsdSpecPrint(VALROLL_POSX + 4, SubMenuWin.Vs + 3, Str_4_3);
OsdShowStr(VALROLL_POSX + 1, SubMenuWin.Vs + 3, Icon_Move, 1);
OsdShowStr(VALROLL_POSX + 10, SubMenuWin.Vs + 3, Icon_MoveR, 1);
#else
Alignment = RIGHT;
StringWidth = 4;
OsdAttrib(OSD_1BITFONT, color);
if (SysPar.Flag & FLAG_4B3DISP)
OsdSpecPrint(SubMenuWin.He - 4, SubMenuWin.Vs + 6, StrON);
else
OsdSpecPrint(SubMenuWin.He - 4, SubMenuWin.Vs + 6, StrOFF);
#endif
}
/*
********************************************************************************
* 函 数 名: Adj4B3Disp
* 功能描述: 调节显示的方式是正常还是4:3
* 输 入: step : 高四位是选项,低四位是调节的步长
* color : 显示的颜色
* 返 回: 无
********************************************************************************
*/
void Adj4B3Disp(uint8 step, uint8 color)
{
uint8 Option, buf;
Option = step & 0xF0;
step &= 0x0F;
if (Option & SHOWONLY) {
AdjDisp4B3Disp(color);
return;
}
if (step) {
if(Option & INC)
{
SysPar.Flag ^= FLAG_4B3DISP;
if (SysPar.Flag & FLAG_4B3DISP) SarDispMode_4B3();
else SarDispMode_Normal();
}
else if(Option & DEC)
{
SysPar.Flag ^= FLAG_4B3DISP;
if (SysPar.Flag & FLAG_4B3DISP) SarDispMode_4B3();
else SarDispMode_Normal();
}
if (Option & SHOW) {
buf = FontIndex;
AdjDisp4B3Disp(color);
FontIndex = buf;
}
ActiveSave_SYSPAR();
}
else {
if (SysPar.Flag & FLAG_4B3DISP) SarDispMode_4B3();
else SarDispMode_Normal();
}
}
/*
********************************************************************************
* 文 件 结 束 *
********************************************************************************
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -