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; }
|