📄 osd_draw_setup.c
字号:
* By : changlina
* Description : D2 background highligt
* Revision : 1.0
******************************************************************************
*/ //clina 20060316
STATIC VOID OwGfxSetupSetD2HLBG(MenuDom2State_et d2_state, BOOL highlight)
{
UINT pos = 0;
pos=OwGfxGetD2PositonUsingD1D2( gOSD_state.etSetup_dsp.d1_list, d2_state);
if( highlight )
{
//background
SH_GfxChgAreaColor(SH_CANV1, SETUP_MENU_D2_ITEM_X,
SETUP_MENU_D2_ITEM_Y+SETUP_MENU_D2_ITEM_H*(BYTE2)pos,
SETUP_MENU_D2_ITEM_W, SETUP_MENU_D2_ITEM_SUB_H,
OSD_SETUP_COLOR_FONT_BG_DEFAULT, OSD_SETUP_COLOR_FONT_BG_HIGHLIGHT);
//font
SH_GfxChgAreaColor(SH_CANV1,SETUP_MENU_D2_ITEM_X+SETUP_ICON_W, SETUP_MENU_D2_ITEM_Y+2+SETUP_MENU_D2_ITEM_H*pos,
SETUP_MENU_D2_ITEM_W-SETUP_ICON_W, SETUP_MENU_D2_ITEM_SUB_H,OSD_SETUP_COLOR_FONT_SELECTED,OSD_SETUP_COLOR_FONT_HIGHLIGHT);
}
else
{
SH_GfxChgAreaColor(SH_CANV1, SETUP_MENU_D2_ITEM_X,
SETUP_MENU_D2_ITEM_Y+SETUP_MENU_D2_ITEM_H*(BYTE2)pos,
SETUP_MENU_D2_ITEM_W, SETUP_MENU_D2_ITEM_SUB_H,
OSD_SETUP_COLOR_FONT_BG_HIGHLIGHT,OSD_SETUP_COLOR_FONT_BG_DEFAULT);
SH_GfxChgAreaColor(SH_CANV1 ,SETUP_MENU_D2_TXT_X - SET_BG_X, SETUP_MENU_D2_ITEM_Y+2+SETUP_MENU_D2_ITEM_H*pos,
SETUP_MENU_D2_ITEM_W, SETUP_MENU_D2_ITEM_H,OSD_SETUP_COLOR_FONT_HIGHLIGHT,OSD_SETUP_COLOR_FONT_SELECTED);
}
}
/******************************************************************************
* Function name : OwGfxSetupShowD2UnderD1
* Arguments :
* IN
* MenuDom1State_et d1_state
* OUT
* I/O
* Return : VOID
*
* By : changlina 20060316
* Description :
* Revision : 1.0
******************************************************************************
*/ //clina 20060316
VOID OwGfxSetupShowD2UnderD1(MenuDom1State_et d1_state)
{
#if 0 //(weilf)20060726
SetupAdult_t adult;
#endif
SetupAudio_t audio;
MenuDom2State_et d2_state;
#if 0 //(weilf)20060726
#if _APP_CAP_OSD_CAPTURE_LOGO_IN_SETUP
UINT pos;
#endif
#endif
SetupInfoGetMenuAudio(&audio);
switch(d1_state)
{
case MENU_D1_SUB_LANG:
for(d2_state=MENU_D2_LANG_START+1;d2_state<MENU_D2_LANG_END;d2_state++)
OwGfxSetupShowD2(d1_state,d2_state);
break;
case MENU_D1_SUB_DISP:
#if _APP_CAP_OSD_CAPTURE_LOGO_IN_SETUP
if( GetDiscState() !=NO_DISC && GetDiscState() != DUMMY_DISC )
{
for(d2_state=MENU_D2_DISP_START+1;d2_state<MENU_D2_DISP_END-1;d2_state++)
{
OwGfxSetupShowD2(d1_state,d2_state);
}
}else
#endif
for(d2_state=MENU_D2_DISP_START+1;d2_state<MENU_D2_DISP_END;d2_state++)
{
OwGfxSetupShowD2(d1_state,d2_state);
}
break;
case MENU_D1_SUB_AUDIO:
#if !_COP_AUD_2CH_ONLY_OUT //clina 060425
#if !_APP_CAP_AUD_SPDIF_PCM_DOWNMIX
if(audio.channel==SPK_CHANNEL_5_1)
{
for(d2_state=MENU_D2_AUDIO_START+1;d2_state<MENU_D2_AUDIO_END;d2_state++)
OwGfxSetupShowD2(d1_state,d2_state);
}
else
{
for(d2_state=MENU_D2_AUDIO_START+1;d2_state<MENU_D2_AUDIO_END-1;d2_state++)
OwGfxSetupShowD2(d1_state,d2_state);
}
#else
for(d2_state=MENU_D2_AUDIO_START+1;d2_state<MENU_D2_AUDIO_END-1;d2_state++)
OwGfxSetupShowD2(d1_state,d2_state);
#endif
#else
for(d2_state=MENU_D2_AUDIO_START+1;d2_state<MENU_D2_AUDIO_END;d2_state++)
OwGfxSetupShowD2(d1_state,d2_state);
#endif
break;
#if _APP_CAP_AUD_KARAOKE
case MENU_D1_SUB_KARAOKE:
for(d2_state=MENU_D2_KARA_START+1;d2_state<MENU_D2_KARA_END;d2_state++)
OwGfxSetupShowD2(d1_state,d2_state);
break;
#endif
#if _APP_CAP_AUD_SETUP_SPEAKER
case MENU_D1_SUB_SPEAKER:
#if! _COP_AUD_2CH_ONLY_OUT //clina 060421
if(audio.channel==SPK_CHANNEL_5_1)
{
#if _APP_CAP_AUD_CALNOISE//clina 060405
if(GetDiscState() !=NO_DISC && GetDiscState() != DUMMY_DISC )
{
for(d2_state=MENU_D2_SPK_START+1;d2_state<MENU_D2_SPK_END-1;d2_state++)
OwGfxSetupShowD2(d1_state,d2_state);
}
else
#endif
{
for(d2_state=MENU_D2_SPK_START+1;d2_state<MENU_D2_SPK_END;d2_state++)
OwGfxSetupShowD2(d1_state,d2_state);
}
}
else
#endif /*#! _COP_AUD_2CH_ONLY_OUT //clina 060421*/
{
OwGfxSetupShowD2(d1_state,MENU_D2_SPK_START+1);
OwGfxSetupShowD2(d1_state,MENU_D2_SPK_START+2);
}
break;
#endif
case MENU_D1_SUB_PARENT:
for(d2_state=MENU_D2_LOCK_START+1;d2_state<MENU_D2_LOCK_END;d2_state++)
OwGfxSetupShowD2(d1_state,d2_state);
break;
}
}
/******************************************************************************
* Function name : OwGfxSetupShowD3UnderD2
* Arguments :
* IN
* MenuDom2State_et d2_state
* OUT
* I/O
* Return : VOID
*
* By : changlina
* Description :
* Revision : 1.0
******************************************************************************
*/ //clina 20060316
VOID OwGfxSetupShowD3UnderD2(MenuDom2State_et d2_state)
{
OwGfxSetupShowPageD3(NULL,d2_state,TRUE);
}
/******************************************************************************
* Function name : OwGfxSetupPartialCtrlD1
* Arguments :
* IN
* MenuDom1State_et d1_old,MenuDom1State_et d1_new
* OUT
* I/O
* Return : VOID
*
* By : changlina
* Description :
* Revision : 1.0
******************************************************************************
*/
VOID OwGfxSetupPartialCtrlD1(MenuDom1State_et d1_old,MenuDom1State_et d1_new)
{
OwGfxSetupShowD1(d1_old);
OwGfxSetupShowD1HL(d1_new);
OwGfxSetupHideAct();
OwGfxSetupShowD2UnderD1(d1_new);
}
//clina 060531
VOID OwGfxSetupCreateDrc(MenuDom2State_et d2_state,BOOL first_draw,BOOL hl)
{
BYTE1 i,height,max_cur;
BYTE1 old_color, new_color = COLOR_BLUE_NORM;
BYTE2 y2 = SETUP_MENU_D2_AUDIO_DYN_Y+20+34*0-SET_BG_Y, y3 = SETUP_MENU_D2_AUDIO_DYN_Y+20+17+34*0-SET_BG_Y;
height = 34;
max_cur = 4;
if(first_draw)
{
SH_GfxDrawRec(SH_CANV1, SETUP_MENU_D2_AUDIO_DYN_X - SET_BG_X, SETUP_MENU_D2_AUDIO_DYN_Y-SET_BG_Y,SETUP_MENU_D2_AUDIO_DYN_W, SETUP_MENU_D2_AUDIO_DYN_H, COLOR_DARK_WHITE);
SH_GfxDrawRec(SH_CANV1, SETUP_MENU_D2_AUDIO_DYN_X+4 - SET_BG_X, SETUP_MENU_D2_AUDIO_DYN_Y+4-SET_BG_Y, SETUP_MENU_D2_AUDIO_DYN_W-8, SETUP_MENU_D2_AUDIO_DYN_H-8, COLOR_BLUE_NORM);
for(i = 0; i < max_cur;i++)
{
y2 = SETUP_MENU_D2_AUDIO_DYN_MID_Y+height/2+i*height-SET_BG_Y;
SH_GfxDrawRec(SH_CANV1, SETUP_MENU_D2_AUDIO_DYN_X+19 - SET_BG_X, y2, 20, 5, COLOR_DARK_WHITE);
}
for(i = 0; i < (max_cur+1);i++)
{
y3 = SETUP_MENU_D2_AUDIO_DYN_MID_Y+i*height-SET_BG_Y;
SH_GfxDrawRec(SH_CANV1, SETUP_MENU_D2_AUDIO_DYN_X+79 - SET_BG_X, y3, 20, 5, COLOR_DARK_WHITE);
}
}else
{
if( hl )
{
old_color = COLOR_BLUE_NORM;
new_color = COLOR_DARK_BLUE;
}else
{
old_color = COLOR_DARK_BLUE;
new_color = COLOR_BLUE_NORM;
}
SH_GfxChgAreaColor(SH_CANV1, SETUP_MENU_D2_AUDIO_DYN_X+4 - SET_BG_X, SETUP_MENU_D2_AUDIO_DYN_Y+4-SET_BG_Y, SETUP_MENU_D2_AUDIO_DYN_W-8, SETUP_MENU_D2_AUDIO_DYN_H-8, old_color,new_color);
}
}
VOID OwGfxSetupDrcValueSetting(MenuDom2State_et d2_state,MenuDom3State_et d3_state, BOOL hl)
{
//SetupKaraoke_t karaoke;
SetupAudio_t audio;
//NCHAR help2_txt[4], kara_txt[4]; //(weilf)20060726
NCHAR kara_txt[4];
signed char help_val,kara_val;
BYTE1 color1 = COLOR_GREEN, color3 = COLOR_BLUE_NORM;
BYTE2 red_y_pos = SETUP_MENU_D2_AUDIO_DYN_MID_Y-SET_BG_Y,red_h;
//Mid rec
if(hl)
{
color1 = COLOR_YELLOW;
color3 = COLOR_DARK_BLUE;
}
SH_GfxDrawRec(SH_CANV1, SETUP_MENU_D2_AUDIO_DYN_X+39 - SET_BG_X, SETUP_MENU_D2_AUDIO_DYN_MID_Y -SET_BG_Y, 35, 190, color3);
SetupInfoGetMenuAudio( &audio );
if( d3_state == NULL )
{
d3_state= GuiSetupGetFirstDom3Item( d2_state );
}
if(d2_state==MENU_D2_AUDIO_DYN_COMP)
{
help_val = audio.dynamic; //help txt2
kara_val = d3_state-(MENU_D3_AUDIO_DRC_START+1); //kara txt
sprintf((char*)kara_txt,"%s",gDynamic_string[MENU_LANG][d3_state-(MENU_D3_AUDIO_DRC_START+1)]);
red_h = 4*34;
red_y_pos +=red_h-kara_val * 17 ;
}
SH_GfxDrawRec(SH_CANV1, SETUP_MENU_D2_AUDIO_DYN_X+55 - SET_BG_X , SETUP_MENU_D2_AUDIO_DYN_MID_Y-SET_BG_Y, 8, red_h, COLOR_RED);
SH_GfxDrawRec(SH_CANV1, SETUP_MENU_D2_AUDIO_DYN_X+44 - SET_BG_X, red_y_pos, 30, 5, color1);
SH_GfxDrawRec(SH_CANV1, SETUP_MENU_D2_AUDIO_DYN_X+30 - SET_BG_X, SETUP_MENU_D2_AUDIO_DYN_Y+4+180-SET_BG_Y, SETUP_MENU_D2_AUDIO_DYN_W-30-8, 30, color3);
SH_GfxDrawStr(SH_CANV1, kara_txt, SETUP_MENU_D2_AUDIO_DYN_X+30 - SET_BG_X, SETUP_MENU_D2_AUDIO_DYN_Y+4+180-SET_BG_Y, NULL);
}
/******************************************************************************
* Function name : OwGfxSetupPartialCtrlD2
* Arguments :
* IN
* MenuDom2State_et d2_old,MenuDom2State_et d2_new
* OUT
* I/O
* Return : VOID
*
* By : changlina 060310
* Description :
* Revision : 1.0
******************************************************************************
*/
VOID OwGfxSetupPartialCtrlD2(MenuDom2State_et d2_old,MenuDom2State_et d2_new)
{
OwGfxSetupShowD2HL(d2_old,d2_new);
OwGfxSetupHideD3();
//if( d2_new < MENU_D2_LOCK_LEVEL )
{
OwGfxSetupShowD3UnderD2(d2_new);
}
}
/******************************************************************************
* Function name : OwGfxSetupShowHelpStr
* Arguments :
* IN
* MenuDom3State_et d3
* OUT
* I/O
* Return : VOID
*
* By : changlina 060527
* Description : Show bottom help str
* Revision : 1.0
******************************************************************************
*/
//clina 20060324
VOID OwGfxSetupShowHelpStr(MenuDom2State_et d2, MenuDom3State_et d3)
{
UCHAR help1_string[MAX_SUPPORT_DYNAMIC_LENGTH], help2_string[MAX_SUPPORT_DYNAMIC_LENGTH],help_string[50];//clina 060725 fix the bug52.
//Caution:the help_string length(50) cannot be decrease because if
//the length is not enough for the content ,it will occupy the space of "help_string2"
MenuDom1State_et d1_state=Getdom1num();
CHAR* help3_string=OwGfxGetD3String(d2,d3);
switch(d1_state)
{
case MENU_D1_SUB_LANG:
strcpy((char*)help1_string, (char *)gMenu_d2_lang_help_str[MENU_LANG][d2-(MENU_D2_LANG_START+1)]);
sprintf((char*)help2_string, (char *)gMenu_d3_lang_help_str[MENU_LANG][d2-(MENU_D2_LANG_START+1)],help3_string);
break;
case MENU_D1_SUB_DISP:
strcpy((char*)help1_string,(char *)gMenu_d2_display_help_str[MENU_LANG][d2-(MENU_D2_DISP_START+1)]);
sprintf((char*)help2_string,(char *)gMenu_d3_display_help_str[MENU_LANG][d2-(MENU_D2_DISP_START+1)],help3_string);
break;
case MENU_D1_SUB_AUDIO:
strcpy((char*)help1_string, (char *)gMenu_d2_audio_help_str[MENU_LANG][d2-(MENU_D2_AUDIO_START+1)]);
sprintf((char*)help2_string, (char *)gMenu_d3_audio_help_str[MENU_LANG][d2-(MENU_D2_AUDIO_START+1)],help3_string);
break;
#if _APP_CAP_AUD_KARAOKE && (!_APP_CAP_MTK_ONLY_KARA_SCORING||_APP_CAP_AUD_KARAOKE_SCORING)//(weilf)20060711
case MENU_D1_SUB_KARAOKE:
strcpy((char*)help1_string, (char *)gMenu_d2_kara_str[MENU_LANG][d2-(MENU_D2_KARA_START+1)]);
sprintf((char*)help2_string, (char *)gMenu_d3_kara_help_str[MENU_LANG][d2-(MENU_D2_KARA_START+1)],help3_string);
break;
#endif
#if _APP_CAP_AUD_SETUP_SPEAKER
case MENU_D1_SUB_SPEAKER:
strcpy((char*)help1_string, (char *)gMenu_d2_spk_help_str[MENU_LANG][d2-(MENU_D2_SPK_START+1)]);
sprintf((char*)help2_string, (char *)gMenu_d3_spk_help_str[MENU_LANG][d2-(MENU_D2_SPK_START+1)],help3_string);
break;
#endif
case MENU_D1_SUB_PARENT:
strcpy((char*)help1_string,(char *)gMenu_d2_lock_help_str[MENU_LANG][d2-(MENU_D2_LOCK_START+1)]);
sprintf((char*)help2_string,(char *)gMenu_d3_lock_help_str[MENU_LANG][d2-(MENU_D2_LOCK_START+1)],help3_string);
break;
}
if(d1_state== MENU_D1_SUB_PARENT&&d2 !=MENU_D2_LOCK_LEVEL)
sprintf( (char*)help_string, "%s " ,help1_string);
else
sprintf( (char*)help_string, "%s %s" ,help1_string,help3_string);
if(gOSD_state.etSetup_dsp.depth==MENU_DOM_DEPTH_2)
OwGfxSetupDrawStringHelp((char*)help_string);
else if(gOSD_state.etSetup_dsp.depth==MENU_DOM_DEPTH_3)
OwGfxSetupDrawStringHelp((char*)help2_string);
}
/******************************************************************************
* Function name : OwGfxSetupPartialCtrlD3
* Arguments :
* IN
* MenuDom3State_et d3_old,MenuDom3State_et d3_new
* OUT
* I/O
* Return : VOID
*
* By :
* Description :
* Revision : 1.0
******************************************************************************
*/
//lina 20060314
VOID OwGfxSetupPartialCtrlD3(MenuDom3State_et d3_old,MenuDom3State_et d3_new)
{
MenuDom2State_et d2_state = Getdom2num();
OwGfxSetupSetD2HLBG(d2_state, FALSE);
#if _APP_CAP_AUD_KARAOKE // Qian liping 060329
#if !_APP_CAP_MTK_ONLY_KARA_SCORING
if ( d2_state == MENU_D2_KARA_VOL||
d2_state == MENU_D2_KARA_ECHO||
d2_state == MENU_D2_KARA_KEY )
{
OwGfxSetupCreateKara(d2_state, FALSE,TRUE);
OwGfxSetupKaraValueSetting( d2_state,d3_new, TRUE );
}
else
#endif
#endif
if(d2_state == MENU_D2_AUDIO_DYN_COMP)
{
OwGfxSetupCreateDrc(d2_state, FALSE,TRUE);
OwGfxSetupDrcValueSetting( d2_state,d3_new, TRUE );
}
else
OwGfxSetupShowD3HL(d3_old, d3_new);
OwGfxSetupShowHelpStr(d2_state,d3_new);
}
/******************************************************************************
* Function name : OwGfxSetupShowD1
* Arguments :
* IN
* MenuDom1State_et d1_state
* OUT
* I/O
* Return : VOID
*
* By :
* Description :
* Revision : 1.0
*******************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -