📄 osd_draw_setup.c
字号:
/******************************************************************************
* Filename : OSD_draw_setup_BASIC.c
* Start : 2003. 8. 25
* By : Hongsik Park
* Contact : hongsik7.park@samsung.com
* Description :
* For another scheme of OSD resource manageent.
*
******************************************************************************
*/
#ifndef _OSD_DRAW_SETUP_BASIC_C_
#define _OSD_DRAW_SETUP_BASIC_C_
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Basic_typedefs.h"
#include "CUSTOM/Custom_option.h"
#include "OS/OS_abstract.h"
#include "API/SH_types.h"
#include "API/SH_api.h"
#include "COMMON/Common.h"
#include "MAIN/Global_state.h"
#include "MAIN/Appl_types.h"
#include "MAIN/Uop_msg.h"
#include "DRIVER/FS/Fs_api.h"
#include "CUSTOM/Osd_types.h"
#include "CUSTOM/Osd_if.h"
#include "CUSTOM/Key_handler_setup.h"
#include "MAIN/DVD/Dvd_predef.h"
#include "MAIN/DVD/Dvd_common.h"
#include "MAIN/SVCD/Svcd_types.h"
#include "MAIN/SVCD/Svcd_ext.h"
#include "MAIN/SVCD/Svcd_show.h"
#include "CUSTOM/Firm_update.h"
#include "MAIN/MMP/Mmp_common.h"
#include "Osd_util.h"
#include "Osd_draw.h"
#include "Osd_data.h"
#include "CUSTOM/Strings_ext.h"
#include "Osd_draw_setup.h"
extern MenuDom3State_et GuiSetupGetFirstDom3Item(MenuDom2State_et d2_state );
extern BOOL gOsd_onoff;
extern ONOFF gScr_saver_onoff;
MenuLang_et gSetupOSDLangOrderMap[] =
{
/* The languade order can be changed freely,
And the number of language can be added or deduce freely,
*/
LANG_ENG,
LANG_FRA,
LANG_DEU,
LANG_SPA,
LANG_ITA,
#if _APP_CAP_OSD_LANG_CHINESE
LANG_CHINA,
#endif
#if _APP_CAP_OSD_LANG_JAPANESE
LANG_JAPAN,
#endif
#if _APP_CAP_OSD_LANG_PORTUGUESE
LANG_PORTUGUES,
#endif
#if _APP_CAP_OSD_LANG_RUSSIAN
LANG_RUSSIAN,
#endif
};
#if _HJL_NEW_SETUP_SCHEME
extern BOOL gPasswd_passed;
/*hanjl, setup structure test*/
//SetupItem_st Dom1Lang;
SetupItem_st *FocusedItem;
SetupItem_st Dom1Display;
SetupItem_st Dom1Lang;
SetupItem_st Dom1Audio;
SetupItem_st Dom1Kara;
SetupItem_st Dom1Speaker;
SetupItem_st Dom1Passwd;
SetupItem_st SetupItem[SETUP_ITEM_NODE_MAX];
SETUP_ITEM_FUNC_CALL SetupEventHandler[] =
{
OwGfxOnDom1Event,
OwGfxOnDom2Event,
OwGfxOnDom3Event,
OwGfxOnDom4Event,
};
OsdControl_et OwGfxMessageTransfer(OsdControl_et message)
{
BOOL fVertical = FALSE;
OsdControl_et ret;
if(FocusedItem->id > SETUP_D1_SUB_START && FocusedItem->id < SETUP_D1_SUB_END)
{
fVertical = FALSE;
}
else if(FocusedItem->id > SETUP_D2_START && FocusedItem->id < SETUP_D2_END)
{
fVertical = TRUE;
}
else if(FocusedItem->id > SETUP_D3_START && FocusedItem->id < SETUP_D3_END)
{
fVertical = TRUE;
}
else if(FocusedItem->id > SETUP_D4_LANG_OTH_START && FocusedItem->id < SETUP_D4_LANG_OTH_START) //(weilf)20060817
{
fVertical = TRUE;
}
switch(message)
{
case OSD_CTRL_SETUP_MOVE_LEFT:
ret = OSD_CTRL_SETUP_LEVEL_UP*fVertical + OSD_CTRL_SETUP_PREV_SIBLING*(!fVertical);
break;
case OSD_CTRL_SETUP_MOVE_RIGHT:
ret = OSD_CTRL_SETUP_LEVEL_DOWN*fVertical + OSD_CTRL_SETUP_NEXT_SIBLING*(!fVertical);
break;
case OSD_CTRL_SETUP_MOVE_UP:
ret = OSD_CTRL_SETUP_PREV_SIBLING*fVertical + OSD_CTRL_SETUP_LEVEL_UP*(!fVertical);
break;
case OSD_CTRL_SETUP_MOVE_DOWN:
ret = OSD_CTRL_SETUP_NEXT_SIBLING*fVertical + OSD_CTRL_SETUP_LEVEL_DOWN*(!fVertical);
break;
case OSD_CTRL_SETUP_ENTER:
ret = OSD_CTRL_SETUP_LEVEL_DOWN;
break;
case OSD_CTRL_SETUP_RETURN:
ret = OSD_CTRL_SETUP_LEVEL_UP;
break;
default:
ret = message;
break;
}
return ret;
}
VOID OwGfxSetupDom1Init(VOID)
{
FocusedItem = &Dom1Lang;
//LANG
InitSetupItemID(&Dom1Lang, SETUP_D1_SUB_LANG);
InitSetupItemDisplayAttr(&Dom1Lang, IMG_TOP_LANG, NULL, 0, 0);
InitSetupItemRelationAttr(&Dom1Lang, NULL, &Dom1Passwd, &Dom1Display, NULL);
InitSetupItemEventFunc(&Dom1Lang, 0);
//DISP
InitSetupItemID(&Dom1Display, SETUP_D1_SUB_DISP);
InitSetupItemDisplayAttr(&Dom1Display, IMG_TOP_DISP, NULL, 1, 0);
InitSetupItemRelationAttr(&Dom1Display, NULL, &Dom1Lang, &Dom1Audio, NULL);
InitSetupItemEventFunc(&Dom1Display, 0);
#if _APP_CAP_AUD_KARAOKE //(weilf)20060808
//AUDIO
InitSetupItemID(&Dom1Audio, SETUP_D1_SUB_AUDIO);
InitSetupItemDisplayAttr(&Dom1Audio, IMG_TOP_AUDIO, NULL, 2, 0);
InitSetupItemRelationAttr(&Dom1Audio, NULL, &Dom1Display, &Dom1Kara, NULL);
InitSetupItemEventFunc(&Dom1Audio, 0);
#if _APP_CAP_AUD_SETUP_SPEAKER //(weilf)20060808
//KARA
InitSetupItemID(&Dom1Kara, SETUP_D1_SUB_KARAOKE);
InitSetupItemDisplayAttr(&Dom1Kara, IMG_TOP_KARAOKE, NULL, 3, 0);
InitSetupItemRelationAttr(&Dom1Kara, NULL, &Dom1Audio, &Dom1Speaker, NULL);
InitSetupItemEventFunc(&Dom1Kara, 0);
//SPEAKER
InitSetupItemID(&Dom1Speaker, SETUP_D1_SUB_SPEAKER);
InitSetupItemDisplayAttr(&Dom1Speaker, IMG_TOP_SPK, NULL, 4, 0);
InitSetupItemRelationAttr(&Dom1Speaker, NULL, &Dom1Kara, &Dom1Passwd, NULL);
InitSetupItemEventFunc(&Dom1Speaker, 0);
//PARENTAL
InitSetupItemID(&Dom1Passwd, SETUP_D1_SUB_PARENT);
InitSetupItemDisplayAttr(&Dom1Passwd, IMG_TOP_PARENT, NULL, 5, 0);
InitSetupItemRelationAttr(&Dom1Passwd, NULL, &Dom1Speaker, &Dom1Lang, NULL);
InitSetupItemEventFunc(&Dom1Passwd, 0);
#else //_APP_CAP_AUD_SETUP_SPEAKER
//KARA
InitSetupItemID(&Dom1Kara, SETUP_D1_SUB_KARAOKE);
InitSetupItemDisplayAttr(&Dom1Kara, IMG_TOP_KARAOKE, NULL, 3, 0);
InitSetupItemRelationAttr(&Dom1Kara, NULL, &Dom1Audio, &Dom1Passwd, NULL);
InitSetupItemEventFunc(&Dom1Kara, 0);
//PARENTAL
InitSetupItemID(&Dom1Passwd, SETUP_D1_SUB_PARENT);
InitSetupItemDisplayAttr(&Dom1Passwd, IMG_TOP_PARENT, NULL, 4, 0);
InitSetupItemRelationAttr(&Dom1Passwd, NULL, &Dom1Kara, &Dom1Lang, NULL);
InitSetupItemEventFunc(&Dom1Passwd, 0);
#endif //_APP_CAP_AUD_SETUP_SPEAKER
#else //_APP_CAP_AUD_KARAOKE
#if _APP_CAP_AUD_SETUP_SPEAKER //(weilf)20060808
//AUDIO
InitSetupItemID(&Dom1Audio, SETUP_D1_SUB_AUDIO);
InitSetupItemDisplayAttr(&Dom1Audio, IMG_TOP_AUDIO, NULL, 2, 0);
InitSetupItemRelationAttr(&Dom1Audio, NULL, &Dom1Display, &Dom1Speaker, NULL);
InitSetupItemEventFunc(&Dom1Audio, 0);
//SPEAKER
InitSetupItemID(&Dom1Speaker, SETUP_D1_SUB_SPEAKER);
InitSetupItemDisplayAttr(&Dom1Speaker, IMG_TOP_SPK, NULL, 3, 0);
InitSetupItemRelationAttr(&Dom1Speaker, NULL, &Dom1Audio, &Dom1Passwd, NULL);
InitSetupItemEventFunc(&Dom1Speaker, 0);
//PARENTAL
InitSetupItemID(&Dom1Passwd, SETUP_D1_SUB_PARENT);
InitSetupItemDisplayAttr(&Dom1Passwd, IMG_TOP_PARENT, NULL, 4, 0);
InitSetupItemRelationAttr(&Dom1Passwd, NULL, &Dom1Speaker, &Dom1Lang, NULL);
InitSetupItemEventFunc(&Dom1Passwd, 0);
#else //_APP_CAP_AUD_SETUP_SPEAKER
//AUDIO
InitSetupItemID(&Dom1Audio, SETUP_D1_SUB_AUDIO);
InitSetupItemDisplayAttr(&Dom1Audio, IMG_TOP_AUDIO, NULL, 2, 0);
InitSetupItemRelationAttr(&Dom1Audio, NULL, &Dom1Display, &Dom1Passwd, NULL);
InitSetupItemEventFunc(&Dom1Audio, 0);
//PARENTAL
InitSetupItemID(&Dom1Passwd, SETUP_D1_SUB_PARENT);
InitSetupItemDisplayAttr(&Dom1Passwd, IMG_TOP_PARENT, NULL, 3, 0);
InitSetupItemRelationAttr(&Dom1Passwd, NULL, &Dom1Audio, &Dom1Lang, NULL);
InitSetupItemEventFunc(&Dom1Passwd, 0);
#endif //_APP_CAP_AUD_SETUP_SPEAKER
#endif //_APP_CAP_AUD_KARAOKE
}
VOID OwGfxDom2ItemCreate(MenuState_et d1_id)
{
SetupItem_st *item[7];
int i;
SetupAdult_t adult;
if(d1_id == SETUP_D1_SUB_LANG)
{
for(i=0;i<7;i++)
{
item[i] = GetOneSetupItemNode();
item[i]->id = SETUP_D2_LANG_START; //modify id to indicate this node is occupied
if(item[i] == NULL)
return;
#if 0 //(weilf020060804
InitSetupItemID(item[i], SETUP_D2_LANG_START+1);
InitSetupItemDisplayAttr(item[i], IMG_ICON_DEFAULT,(char **)gMenu_d2_lang_str[i], 0, i);
InitSetupItemRelationAttr(item[i], &Dom1Lang, item[2], item[1], NULL);
InitSetupItemEventFunc(item[i], 1);
#endif
}
//MENU
InitSetupItemID(item[0], SETUP_D2_LANG_OSDSETUP);
//InitSetupItemDisplayAttr(item[0], IMG_ICON_DEFAULT,(char **)gMenu_d2_lang_str[0], 0, 0);
InitSetupItemDisplayAttr(item[0], IMG_ICON_DEFAULT,(char *)gMenu_d2_lang_str[MENU_LANG][0], 0, 0); //(weilf)20060808
InitSetupItemRelationAttr(item[0], &Dom1Lang, item[6], item[1], NULL);
InitSetupItemEventFunc(item[0], 1);
//DISC
InitSetupItemID(item[1], SETUP_D2_LANG_DISCSETUP);
//InitSetupItemDisplayAttr(item[1], IMG_ICON_DEFAULT, (char **)gMenu_d2_lang_str[1], 0, 1);
InitSetupItemDisplayAttr(item[1], IMG_ICON_DEFAULT, (char *)gMenu_d2_lang_str[MENU_LANG][1], 0, 1); //(weilf)20060808
InitSetupItemRelationAttr(item[1], &Dom1Lang, item[0], item[2], NULL);
InitSetupItemEventFunc(item[1], 1);
//AUDIO
InitSetupItemID(item[2], SETUP_D2_LANG_AUDIO);
//InitSetupItemDisplayAttr(item[2], IMG_ICON_DEFAULT, (char **)gMenu_d2_lang_str[2], 0, 2);
InitSetupItemDisplayAttr(item[2], IMG_ICON_DEFAULT, (char *)gMenu_d2_lang_str[MENU_LANG][2], 0, 2); //(weilf)20060808
InitSetupItemRelationAttr(item[2], &Dom1Lang, item[1], item[3], NULL);
InitSetupItemEventFunc(item[2], 1);
//SUBTITLE
InitSetupItemID(item[3], SETUP_D2_LANG_SUBTITLE);
InitSetupItemDisplayAttr(item[3], IMG_ICON_DEFAULT, (char *)gMenu_d2_lang_str[MENU_LANG][3], 0, 3); //(weilf)20060808
InitSetupItemRelationAttr(item[3], &Dom1Lang, item[2], item[4], NULL);
InitSetupItemEventFunc(item[3], 1);
//VERSION
InitSetupItemID(item[4], SETUP_D2_LANG_VERSION);
InitSetupItemDisplayAttr(item[4], IMG_ICON_DEFAULT, (char *)gMenu_d2_lang_str[MENU_LANG][4], 0, 4); //(weilf)20060808
InitSetupItemRelationAttr(item[4], &Dom1Lang, item[3], item[5], NULL);
InitSetupItemEventFunc(item[4], 1);
//SCREENSV
InitSetupItemID(item[5], SETUP_D2_LANG_SAVER);
InitSetupItemDisplayAttr(item[5], IMG_ICON_DEFAULT, (char *)gMenu_d2_lang_str[MENU_LANG][5], 0, 5); //(weilf)20060808
InitSetupItemRelationAttr(item[5], &Dom1Lang, item[4], item[6], NULL);
InitSetupItemEventFunc(item[5], 1);
//RESET
InitSetupItemID(item[6], SETUP_D2_LANG_RESET);
InitSetupItemDisplayAttr(item[6], IMG_ICON_DEFAULT, (char *)gMenu_d2_lang_str[MENU_LANG][6], 0, 6); //(weilf)20060808
InitSetupItemRelationAttr(item[6], &Dom1Lang, item[5], item[0], NULL);
InitSetupItemEventFunc(item[6], 1);
Dom1Lang.child = item[0];
return;
}
if(d1_id == SETUP_D1_SUB_DISP) //(weilf)20060808
{
for(i=0;i<6;i++)
{
item[i] = GetOneSetupItemNode();
item[i]->id = SETUP_D2_DISP_START; //modify id to indicate this node is occupied
if(item[i] == NULL)
return;
}
//Aspect Ratio
InitSetupItemID(item[0], SETUP_D2_DISP_ASPECT);
InitSetupItemDisplayAttr(item[0], IMG_ICON_DEFAULT,(char *)gMenu_d2_disp_str[MENU_LANG][0], 0, 0); //(weilf)20060808
InitSetupItemRelationAttr(item[0], &Dom1Display, item[5], item[1], NULL);
InitSetupItemEventFunc(item[0], 1);
//Message
InitSetupItemID(item[1], SETUP_D2_DISP_MESSAGE);
InitSetupItemDisplayAttr(item[1], IMG_ICON_DEFAULT, (char *)gMenu_d2_disp_str[MENU_LANG][1], 0, 1); //(weilf)20060808
InitSetupItemRelationAttr(item[1], &Dom1Display, item[0], item[2], NULL);
InitSetupItemEventFunc(item[1], 1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -