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

📄 osd_draw_setup.c

📁 SAMSUNG 5009的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
/******************************************************************************
 *   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 + -