SuperIC社区_
标题: Tvout保存关闭静音后开机无图标显示 [打印本页]
作者: charles 时间: 2016-12-6 19:45
标题: Tvout保存关闭静音后开机无图标显示
Tvout保存关闭静音后开机无图标显示
StateTVFunc.c
bMuteRecord =(MenuSettingConfig()->uiMOVSoundRecord ==MOVIE_SOUND_RECORD_ON)?(AHC_FALSE)

AHC_TRUE);
菜单保存
AHC_General_CarDV.c : Menu_WriteSetting à AHC_Parameter.c : AHC_PARAM_Menu_WriteEx
菜单读取
AHC_Main.c : AHC_Main_Task à AHC_Menu.c :uiCheckDefaultMenuExist(:useMenu = MenuSettingConfig(); ) à AHC_Parameter.c :AHC_PARAM_Menu_Read à MenuSetting.c : ParseMenuSet à (menu_atoms.sAtom.fnSet) à MenuSetting.c : ParamFun
新增菜单
MenuStateGeneralSettingsMenu.h中添加itemid枚举数
#if (MENU_GENERAL_AIRPLANE_MODE_EN)
ITEMID_AIRPLANE_MODE,
ITEMID_AIRPLANE_MODE_ON,
ITEMID_AIRPLANE_MODE_OFF,
#endif
MenuStateGeneralSettingsMenu.c中
声明
函数AHC_BOOL MenuItemAirplaneMode(PSMENUITEM pItem, AHC_BOOL bIsHover);
菜单结构体变量SMENUSTRUCT sSubAirplaneMode;
增加变量
SMENUITEM sItemAirplaneMode ={ ITEMID_AIRPLANE_MODE, &BMICON_MENU_WIFI,IDS_DS_AIRPLANE, &sSubAirplaneMode, 0, 0,AHC_TRUE, NULL };
子菜单变量
SMENUITEM sItemAirplaneMode_NO ={ ITEMID_AIRPLANE_MODE_OFF, &BMICON_OPTION_CLOSE, IDS_DS_OFF, NULL,MenuItemAirplaneMode, 0, AHC_TRUE, NULL };
SMENUITEM sItemAirplaneMode_YES = { ITEMID_AIRPLANE_MODE_ON, &BMICON_OPTION_OPEN, IDS_DS_ON, NULL,MenuItemAirplaneMode, 0, AHC_TRUE, NULL };
结构体数组
#if (MENU_GENERAL_AIRPLANE_MODE_EN)
PSMENUITEM sMenuListAirplaneMode[] =
{
&sItemAirplaneMode_YES,
&sItemAirplaneMode_NO,
};
#endif
MenuCommon.h中MENU_SUB枚举中增加
MENUID_SUB_MENU_AIRPLANE_MODE
MenuStateGeneralSettingsMenu.c中
定义结构体变量
#if (MENU_GENERAL_AIRPLANE_MODE_EN)
SMENUSTRUCT sSubAirplaneMode =
{
MENUID_SUB_MENU_AIRPLANE_MODE,
NULL,
IDS_DS_AIRPLANE,
NULL,
sizeof(sMenuListAirplaneMode)/sizeof(PSMENUITEM),
sMenuListAirplaneMode,
SubMenuEventHandler,
MenuGetDefault_GeneralSetting,
0,
IDS_DS_AIRPLANE,
AHC_FALSE,
0
};
#endif
函数
#if (MENU_GENERAL_AIRPLANE_MODE_EN)
AHC_BOOL MenuItemAirplaneMode(PSMENUITEMpItem, AHC_BOOL bIsHover)
{
printc("%s,%d\r\n",__func__,__LINE__);
//Setpf_AirplaneMode(pItem->iItemId- ITEMID_AIRPLANE_MODE-1);
MenuSettingConfig()->uiAirplaneMode= pItem->iItemId - ITEMID_AIRPLANE_MODE-1;
returnAHC_TRUE;
}
#endif
sMenuListMainGeneral中添加sItemAirplaneMode
保存菜单
两种方法
1、 MenuSetting.h的MenuInfo结构体中增加成员
需要增加到uiWNR前uiStatusLight后
MenuSetting.c中menu_atoms结构体变量sAtom数组添加元素到StatusLight后,
位置要与MenuInfo结构体中对应,如StatusLight在MenuInfo中是第67位成员,在menu_atoms中也应该对应第67个数组保存 StatusLight
{/* 068*/AIRPLANEMODE, 1,MENU_GENERAL_AIRPLANE_MODE_EN, 0, 1, ParamFun,Menu_Setting_Get_General, "0:On,1:Off"},
然后在MenuItemAirplaneMode函数中赋值给结构体变量的成员。MenuSettingConfig()->uiAirplaneMode= pItem->iItemId - ITEMID_AIRPLANE_MODE-1;
MenuStateGeneralGeneralSettingsMenu.c
MenuGetDefault_GeneralSetting函数中
#if(MENU_GENERAL_AIRPLANE_MODE_EN)
case MENUID_SUB_MENU_AIRPLANE_MODE:
DefaultValue=MenuSettingConfig()->uiAirplaneMode;//Getpf_AirplaneMode();
printc("#@@@@*****##########AirplaneModeDefaultValue=%d\r\n",DefaultValue);
break;
#endif
2、 不在MenuSetting.h的MenuInfo结构体中增加成员
MenuSetting.h中声明函数
int Setpf_AirplaneMode(intvalue);
int Getpf_AirplaneMode(void);
MenuSetting.c menu_atoms增加元素到比MenuInfo结构体成员个数大的位置后,
{/* 087*/AIRPLANEMODE, 1,MENU_GENERAL_AIRPLANE_MODE_EN, 0, 1, pf_General,Menu_Setting_Get_General, "0:On,1:Off"},
然后在MenuItemAirplaneMode函数中设置结构体成员值。
Setpf_AirplaneMode(pItem->iItemId - ITEMID_AIRPLANE_MODE-1);
MenuStateGeneralGeneralSettingsMenu.c
MenuGetDefault_GeneralSetting函数中
#if(MENU_GENERAL_AIRPLANE_MODE_EN)
case MENUID_SUB_MENU_AIRPLANE_MODE:
DefaultValue=Getpf_AirplaneMode();
printc("#@@@@*****##########AirplaneModeDefaultValue=%d\r\n",DefaultValue);
break;
#endif
函数Setpf_AirplaneMode:
intSetpf_AirplaneMode(int value)
{
UINT8 i;
extern c**t char txtSetFile[];
// menu_atoms.sAtom.szSRem
for (i = 0; menu_atoms.sAtom.szSKey != NULL;i++)
{
if (strcmpi(AIRPLANEMODE,menu_atoms.sAtom.szSKey) == 0)
{
if (IN_RANGE(value, &menu_atoms.sAtom)) {
menu_atoms.sAtom.nSVal= value;
}
}
}
AHC_PARAM_Menu_WriteEx((char*)txtSetFile);
return value;
}
函数Getpf_AirplaneMode:
int Getpf_AirplaneMode(void)
{
UINT8 i;
// menu_atoms.sAtom.szSRem
for (i = 0; menu_atoms.sAtom.szSKey != NULL;i++)
{
if (strcmpi(AIRPLANEMODE,menu_atoms.sAtom.szSKey) == 0)
{
returnmenu_atoms.sAtom.nSVal;
}
}
return 0;
}
欢迎光临 SuperIC社区_ (/) |
Powered by Discuz! X3.3 |