int COsdLangSetup::showSetup() { CMenuWidget *osdl_setup = new CMenuWidget(menue_title, menue_icon, width); osdl_setup->setPreselected(selected); //intros osdl_setup->addIntroItems(menue_title != LOCALE_LANGUAGESETUP_HEAD ? LOCALE_LANGUAGESETUP_HEAD : NONEXISTANT_LOCALE); //search available languages.... struct dirent **namelist; int n; // printf("scanning locale dir now....(perhaps)\n"); const char *pfad[] = {DATADIR "/neutrino/locale", CONFIGDIR "/locale"}; std::string locales = "|"; for(int p = 0;p < 2;p++) { n = scandir(pfad[p], &namelist, 0, alphasort); if(n < 0) { perror("loading locales: scandir"); } else { for(int count=0;count<n;count++) { char * locale = namelist[count]->d_name; char * pos = strstr(locale, ".locale"); if(pos != NULL) { *pos = '\0'; if(locales.find("|" + std::string(locale) + "|") == std::string::npos) { locales += locale; locales += "|"; CMenuForwarder* oj = new CMenuForwarder(locale, true, NULL, this, locale); oj->setItemButton(NEUTRINO_ICON_BUTTON_OKAY, true); osdl_setup->addItem(oj, strcmp(g_settings.language, locale) == 0); } } free(namelist[count]); } free(namelist); } } int res = osdl_setup->exec(NULL, ""); selected = osdl_setup->getSelected(); delete osdl_setup; return res; }
void CRecDirChooser::initMenu(void) /**********************************************************************/ { char indexStr[10]; //************************************************/ addIntroItems(NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, BTN_TYPE_CANCEL); for(int i=0 ; i < MAX_RECORDING_DIR ; i++) { if(!g_settings.recording_dir[i].empty()) { bool get_size = true; dirOptionText[i]=""; nfsIndex[i] = getNFSIDOfDir(g_settings.recording_dir[i].c_str()); //printf("dir %d = nfs: %d\n",i,nfsIndex[i]); if( nfsIndex[i] != -1) { int retvalue = pingthost(g_settings.network_nfs[nfsIndex[i]].ip.c_str(),60); // send ping and wait 60ms if (retvalue == 0)//LOCALE_PING_UNREACHABLE { dirOptionText[i] = g_Locale->getText(LOCALE_RECDIRCHOOSER_SERVER_DOWN); get_size = false; } #ifdef ENABLE_GUI_MOUNT else if (retvalue == 1)//LOCALE_PING_OK { // check if we can get more dir informations if (CFSMounter::isMounted (g_settings.network_nfs[nfsIndex[i]].local_dir)) { dirOptionText[i] = g_Locale->getText(LOCALE_RECDIRCHOOSER_NOT_MOUNTED); get_size = false; } } #endif } if(get_size) { // in any other case we can show the free space int drivefree; drivefree = getFreeDiscSpaceGB(g_settings.recording_dir[i].c_str()); char tmp[20]; snprintf(tmp, 19,g_Locale->getText(LOCALE_RECDIRCHOOSER_FREE),drivefree); tmp[19]=0; dirOptionText[i]=tmp; } snprintf(indexStr,10,"MID:%d",i); CMenuForwarder* fw = new CMenuForwarder(g_settings.recording_dir[i].c_str(), true, dirOptionText[i], this, indexStr); fw->setItemButton(NEUTRINO_ICON_BUTTON_OKAY, true); addItem(fw, i == 0); // select first item } } addItem(GenericMenuSeparatorLine); addItem(new CMenuForwarder(LOCALE_RECDIRCHOOSER_USER_DIR, true, NULL, this, "dirChooser")); }
int CNetworkSetup::showWlanList() { int res = menu_return::RETURN_REPAINT; CHintBox hintBox(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_NETWORKMENU_SSID_SCAN_WAIT)); hintBox.paint(); std::vector<wlan_network> networks; bool found = get_wlan_list(g_settings.ifname, networks); hintBox.hide(); if (!found) { ShowMsg(LOCALE_MESSAGEBOX_ERROR, g_Locale->getText(LOCALE_NETWORKMENU_SSID_SCAN_ERROR), CMessageBox::mbrBack, CMessageBox::mbBack); // UTF-8 return res; } CMenuWidget wlist(LOCALE_MAINSETTINGS_NETWORK, NEUTRINO_ICON_SETTINGS, width); wlist.addIntroItems(LOCALE_NETWORKMENU_SSID_SCAN); //intros char cnt[5]; int select = -1; CMenuSelectorTarget * selector = new CMenuSelectorTarget(&select); std::string option[networks.size()]; for (unsigned i = 0; i < networks.size(); ++i) { sprintf(cnt, "%d", i); option[i] = networks[i].qual; option[i] += ", "; option[i] += networks[i].channel; const char * icon = NULL; if (networks[i].encrypted) icon = NEUTRINO_ICON_LOCK; CMenuForwarder * net = new CMenuForwarder(networks[i].ssid.c_str(), true, option[i], selector, cnt, CRCInput::RC_nokey, NULL, icon); net->setItemButton(NEUTRINO_ICON_BUTTON_OKAY, true); wlist.addItem(net, networks[i].ssid == network_ssid); } res = wlist.exec(NULL, ""); delete selector; printf("CNetworkSetup::showWlanList: selected: %d\n", select); if (select >= 0) { network_ssid = networks[select].ssid; } return res; }
void CThemes::readThemes(CMenuWidget &themes) { struct dirent **themelist; int n; const char *pfade[] = {THEMEDIR, USERDIR}; bool hasCVSThemes, hasUserThemes; hasCVSThemes = hasUserThemes = false; std::string userThemeFile = ""; CMenuForwarder* oj; for(int p = 0;p < 2;p++) { n = scandir(pfade[p], &themelist, 0, alphasort); if(n < 0) perror("loading themes: scandir"); else { for(int count=0;count<n;count++) { char *file = themelist[count]->d_name; char *pos = strstr(file, ".theme"); if(pos != NULL) { if ( p == 0 && hasCVSThemes == false ) { themes.addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_COLORTHEMEMENU_SELECT2)); hasCVSThemes = true; } else if ( p == 1 && hasUserThemes == false ) { themes.addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_COLORTHEMEMENU_SELECT1)); hasUserThemes = true; } *pos = '\0'; if ( p == 1 ) { userThemeFile = "{U}" + (std::string)file; oj = new CMenuForwarderNonLocalized(file, true, "", this, userThemeFile.c_str()); } else oj = new CMenuForwarderNonLocalized(file, true, "", this, file); oj->setItemButton(NEUTRINO_ICON_BUTTON_OKAY, true); themes.addItem( oj ); } free(themelist[count]); } free(themelist); } } }
int CAudioSelectMenuHandler::doMenu () { int mode = CNeutrinoApp::getInstance()->getMode(); if (mode == NeutrinoMessages::mode_webtv) { CMoviePlayerGui::getInstance(true).selectAudioPid(); return menu_return::RETURN_EXIT; } CMenuWidget AudioSelector(LOCALE_AUDIOSELECTMENUE_HEAD, NEUTRINO_ICON_AUDIO, width); CSubtitleChangeExec SubtitleChanger; //show cancel button if configured in usermenu settings if (g_settings.personalize[SNeutrinoSettings::P_UMENU_SHOW_CANCEL]) AudioSelector.addIntroItems(NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, CMenuWidget::BTN_TYPE_CANCEL); else AudioSelector.addItem(GenericMenuSeparator); unsigned int shortcut_num = 1; uint p_count = g_RemoteControl->current_PIDs.APIDs.size(); // -- setup menue due to Audio PIDs for( uint i=0; i < p_count; i++ ) { char apid[5]; sprintf(apid, "%d", i); CMenuForwarder *fw = new CMenuForwarder(g_RemoteControl->current_PIDs.APIDs[i].desc, true, NULL, this, apid, CRCInput::convertDigitToKey(i + 1)); fw->setItemButton(NEUTRINO_ICON_BUTTON_OKAY, true); AudioSelector.addItem(fw, (i == g_RemoteControl->current_PIDs.PIDs.selected_apid)); shortcut_num = i+1; } if (p_count) AudioSelector.addItem(GenericMenuSeparatorLine); // -- setup menue for to Dual Channel Stereo CMenuOptionChooser* oj = new CMenuOptionChooser(LOCALE_AUDIOMENU_ANALOG_MODE, &g_settings.audio_AnalogMode, AUDIOMENU_ANALOGOUT_OPTIONS, AUDIOMENU_ANALOGOUT_OPTION_COUNT, true, audioSetupNotifier, CRCInput::RC_red); AudioSelector.addItem( oj ); if (!g_settings.easymenu) { oj = new CMenuOptionChooser(LOCALE_AUDIOMENU_ANALOG_OUT, &g_settings.analog_out, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, audioSetupNotifier, CRCInput::RC_green); AudioSelector.addItem( oj ); } CChannelList *channelList = CNeutrinoApp::getInstance ()->channelList; int curnum = channelList->getActiveChannelNumber(); CZapitChannel * cc = channelList->getChannel(curnum); bool sep_added = false; if(cc) { for (int i = 0 ; i < (int)cc->getSubtitleCount() ; ++i) { CZapitAbsSub* s = cc->getChannelSub(i); if (s->thisSubType == CZapitAbsSub::DVB) { CZapitDVBSub* sd = reinterpret_cast<CZapitDVBSub*>(s); printf("[neutrino] adding DVB subtitle %s pid %x\n", sd->ISO639_language_code.c_str(), sd->pId); if(!sep_added) { sep_added = true; AudioSelector.addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SUBTITLES_HEAD)); } char spid[10]; snprintf(spid,sizeof(spid), "DVB:%d", sd->pId); char item[64]; snprintf(item,sizeof(item), "DVB: %s (pid %x)", sd->ISO639_language_code.c_str(), sd->pId); AudioSelector.addItem(new CMenuForwarder(item /*sd->ISO639_language_code.c_str()*/, sd->pId != dvbsub_getpid(), NULL, &SubtitleChanger, spid, CRCInput::convertDigitToKey(++shortcut_num))); } if (s->thisSubType == CZapitAbsSub::TTX) { CZapitTTXSub* sd = reinterpret_cast<CZapitTTXSub*>(s); printf("[neutrino] adding TTX subtitle %s pid %x mag %X page %x\n", sd->ISO639_language_code.c_str(), sd->pId, sd->teletext_magazine_number, sd->teletext_page_number); if(!sep_added) { sep_added = true; AudioSelector.addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SUBTITLES_HEAD)); } char spid[64]; int page = ((sd->teletext_magazine_number & 0xFF) << 8) | sd->teletext_page_number; int pid = sd->pId; snprintf(spid,sizeof(spid), "TTX:%d:%03X:%s", sd->pId, page, sd->ISO639_language_code.c_str()); char item[64]; snprintf(item,sizeof(item), "TTX: %s (pid %x page %03X)", sd->ISO639_language_code.c_str(), sd->pId, page); AudioSelector.addItem(new CMenuForwarder(item /*sd->ISO639_language_code.c_str()*/, !tuxtx_subtitle_running(&pid, &page, NULL), NULL, &SubtitleChanger, spid, CRCInput::convertDigitToKey(++shortcut_num))); } } if(sep_added) { CMenuForwarder * item = new CMenuForwarder(LOCALE_SUBTITLES_STOP, true, NULL, &SubtitleChanger, "off", CRCInput::RC_stop); item->setItemButton(NEUTRINO_ICON_BUTTON_STOP, false); AudioSelector.addItem(item); } } AudioSelector.addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_AUDIOMENU_VOLUME_ADJUST)); /* setting volume percent to zapit with channel_id/apid = 0 means current channel and pid */ CVolume::getInstance()->SetCurrentChannel(0); CVolume::getInstance()->SetCurrentPid(0); int percent[p_count]; for (uint i=0; i < p_count; i++) { percent[i] = CZapit::getInstance()->GetPidVolume(0, g_RemoteControl->current_PIDs.APIDs[i].pid, g_RemoteControl->current_PIDs.APIDs[i].is_ac3); AudioSelector.addItem(new CMenuOptionNumberChooser(g_RemoteControl->current_PIDs.APIDs[i].desc, &percent[i], i == g_RemoteControl->current_PIDs.PIDs.selected_apid, 0, 999, CVolume::getInstance())); } return AudioSelector.exec(NULL, ""); }
int CAudioSelectMenuHandler::doMenu () { AudioSelector = new CMenuWidget(LOCALE_AUDIOSELECTMENUE_HEAD, NEUTRINO_ICON_AUDIO, width); CSubtitleChangeExec SubtitleChanger(playback); //show cancel button if configured in usermenu settings if (g_settings.personalize[SNeutrinoSettings::P_UMENU_SHOW_CANCEL]) AudioSelector->addIntroItems(NONEXISTANT_LOCALE, LOCALE_AUDIOSELECTMENUE_VOLUME, CMenuWidget::BTN_TYPE_CANCEL); else AudioSelector->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_AUDIOSELECTMENUE_VOLUME)); apid_offset = AudioSelector->getItemsCount(); AudioSelector->addKey(CRCInput::RC_right, this, "+"); AudioSelector->addKey(CRCInput::RC_left, this, "-"); AudioSelector->addKey(CRCInput::RC_red, this, "x"); AudioSelector->addKey(CRCInput::RC_green, this, "x"); AudioSelector->addKey(CRCInput::RC_yellow, this, "x"); AudioSelector->addKey(CRCInput::RC_blue, this, "x"); bool is_mp = mp->Playing(); p_count = is_mp ? mp->getAPIDCount() : g_RemoteControl->current_PIDs.APIDs.size(); sel_apid = is_mp ? mp->getAPID() : g_RemoteControl->current_PIDs.PIDs.selected_apid; int _apid[p_count]; int _perc_val[p_count]; unsigned int _is_ac3[p_count]; std::string _perc_str[p_count]; perc_val = _perc_val; perc_str = _perc_str; is_ac3 = _is_ac3; apid = _apid; chan = is_mp ? mp->getChannelId() : 0; // -- setup menue due to Audio PIDs for (int i = 0; i < p_count; i++) { if (is_mp) { mp->getAPID(i, apid[i], is_ac3[i]); } else { apid[i] = g_RemoteControl->current_PIDs.APIDs[i].pid; is_ac3[i] = g_RemoteControl->current_PIDs.APIDs[i].is_ac3; } perc_val[i] = CZapit::getInstance()->GetPidVolume(chan, apid[i], is_ac3[i]); perc_str[i] = to_string(perc_val[i]) + "%"; CMenuForwarder *fw = new CMenuForwarder(is_mp ? mp->getAPIDDesc(i).c_str() : g_RemoteControl->current_PIDs.APIDs[i].desc, true, perc_str[i], this, "s", CRCInput::convertDigitToKey(i + 1)); fw->setItemButton(NEUTRINO_ICON_BUTTON_OKAY, true); fw->setMarked(sel_apid == i); AudioSelector->addItem(fw, sel_apid == i); } unsigned int shortcut_num = p_count; #if !HAVE_SPARK_HARDWARE && !HAVE_DUCKBOX_HARDWARE if (p_count) AudioSelector->addItem(GenericMenuSeparatorLine); // -- setup menue for to Dual Channel Stereo CMenuOptionChooser* oj = new CMenuOptionChooser(LOCALE_AUDIOMENU_ANALOG_MODE, &g_settings.audio_AnalogMode, AUDIOMENU_ANALOGOUT_OPTIONS, AUDIOMENU_ANALOGOUT_OPTION_COUNT, true, audioSetupNotifier, CRCInput::RC_red); AudioSelector->addItem( oj ); oj = new CMenuOptionChooser(LOCALE_AUDIOMENU_ANALOG_OUT, &g_settings.analog_out, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, audioSetupNotifier, CRCInput::RC_green); AudioSelector->addItem( oj ); #endif CZapitChannel * cc = NULL; int subtitleCount = 0; if (is_mp) { subtitleCount = mp->getSubtitleCount(); } else { CChannelList *channelList = CNeutrinoApp::getInstance ()->channelList; int curnum = channelList->getActiveChannelNumber(); cc = channelList->getChannel(curnum); subtitleCount = (int)cc->getSubtitleCount(); } bool sep_added = false; if (subtitleCount > 0) { bool sub_active = false; for (int i = 0 ; i < subtitleCount ; ++i) { CZapitAbsSub* s = is_mp ? mp->getChannelSub(i, &s) : cc->getChannelSub(i); if (!s) continue; if (!sep_added) { sep_added = true; AudioSelector->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SUBTITLES_HEAD)); } bool ena = false; bool add = true; char spid[64]; char item[64]; if (s->thisSubType == CZapitAbsSub::DVB) { CZapitDVBSub* sd = reinterpret_cast<CZapitDVBSub*>(s); // printf("[neutrino] adding DVB subtitle %s pid %x\n", sd->ISO639_language_code.c_str(), sd->pId); snprintf(spid,sizeof(spid), "DVB:%d", sd->pId); snprintf(item,sizeof(item), "DVB: %s (pid %x)", sd->ISO639_language_code.c_str(), sd->pId); ena = sd->pId != (is_mp ? mp->getCurrentSubPid(CZapitAbsSub::DVB) : dvbsub_getpid()); } else if (s->thisSubType == CZapitAbsSub::TTX) { CZapitTTXSub* sd = reinterpret_cast<CZapitTTXSub*>(s); // printf("[neutrino] adding TTX subtitle %s pid %x mag %X page %x\n", sd->ISO639_language_code.c_str(), sd->pId, sd->teletext_magazine_number, sd->teletext_page_number); int page = ((sd->teletext_magazine_number & 0xFF) << 8) | sd->teletext_page_number; int pid = sd->pId; snprintf(spid,sizeof(spid), "TTX:%d:%03X:%s", sd->pId, page, sd->ISO639_language_code.c_str()); snprintf(item,sizeof(item), "TTX: %s (pid %x page %03X)", sd->ISO639_language_code.c_str(), sd->pId, page); ena = !tuxtx_subtitle_running(&pid, &page, NULL); } else if (is_mp && s->thisSubType == CZapitAbsSub::SUB) { // printf("[neutrino] adding SUB subtitle %s pid %x\n", s->ISO639_language_code.c_str(), s->pId); snprintf(spid,sizeof(spid), "SUB:%d", s->pId); snprintf(item,sizeof(item), "SUB: %s (pid %x)", s->ISO639_language_code.c_str(), s->pId); ena = s->pId != mp->getCurrentSubPid(CZapitAbsSub::SUB); } else add = false; if (add) AudioSelector->addItem(new CMenuForwarder(item, ena, NULL, &SubtitleChanger, spid, CRCInput::convertDigitToKey(++shortcut_num))); if (is_mp) delete s; sub_active |= !ena; } if (sub_active) { CMenuForwarder * item = new CMenuForwarder(LOCALE_SUBTITLES_STOP, true, NULL, &SubtitleChanger, "off", CRCInput::RC_stop); item->setItemButton(NEUTRINO_ICON_BUTTON_STOP, false); AudioSelector->addItem(item); } } #if 0 AudioSelector.addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_AUDIOMENU_VOLUME_ADJUST)); /* setting volume percent to zapit with channel_id/apid = 0 means current channel and pid */ CVolume::getInstance()->SetCurrentChannel(0); CVolume::getInstance()->SetCurrentPid(0); int percent[p_count+1];//+1 avoid zero size for (uint i=0; i < p_count; i++) { percent[i] = CZapit::getInstance()->GetPidVolume(0, g_RemoteControl->current_PIDs.APIDs[i].pid, g_RemoteControl->current_PIDs.APIDs[i].is_ac3); AudioSelector.addItem(new CMenuOptionNumberChooser(g_RemoteControl->current_PIDs.APIDs[i].desc, &percent[i], i == g_RemoteControl->current_PIDs.PIDs.selected_apid, 0, 999, CVolume::getInstance())); } #endif int res = AudioSelector->exec(NULL, ""); delete AudioSelector; AudioSelector = NULL; return res; }
int CVfdSetup::showBrightnessSetup() { CMenuOptionNumberChooser * nc; CMenuForwarder * mf; CMenuWidget *mn_widget = new CMenuWidget(LOCALE_LCDMENU_HEAD, NEUTRINO_ICON_LCD,width, MN_WIDGET_ID_VFDSETUP_LCD_SLIDERS); mn_widget->addItem(new CMenuSeparator(CMenuSeparator::ALIGN_LEFT | CMenuSeparator::SUB_HEAD | CMenuSeparator::STRING, LOCALE_LCDMENU_LCDCONTROLER)); mn_widget->addItem(GenericMenuSeparator); mf = new CMenuForwarder(LOCALE_MENU_BACK, true); mf->setItemButton(!g_settings.menu_left_exit ? NEUTRINO_ICON_BUTTON_HOME : NEUTRINO_ICON_BUTTON_LEFT); mf->setActivateObserver(this); mn_widget->addItem(mf); mn_widget->addItem(GenericMenuSeparatorLine); brightness = CVFD::getInstance()->getBrightness(); brightnessstandby = CVFD::getInstance()->getBrightnessStandby(); brightnessdeepstandby = CVFD::getInstance()->getBrightnessDeepStandby(); nc = new CMenuOptionNumberChooser(LOCALE_LCDCONTROLER_BRIGHTNESS, &brightness, true, 0, 15, this, CRCInput::RC_nokey, NULL, 0, 0, NONEXISTANT_LOCALE, true); nc->setHint("", LOCALE_MENU_HINT_VFD_BRIGHTNESS); nc->setActivateObserver(this); mn_widget->addItem(nc); nc = new CMenuOptionNumberChooser(LOCALE_LCDCONTROLER_BRIGHTNESSSTANDBY, &brightnessstandby, true, 0, 15, this, CRCInput::RC_nokey, NULL, 0, 0, NONEXISTANT_LOCALE, true); nc->setHint("", LOCALE_MENU_HINT_VFD_BRIGHTNESSSTANDBY); nc->setActivateObserver(this); mn_widget->addItem(nc); if(cs_get_revision() > 7) { nc = new CMenuOptionNumberChooser(LOCALE_LCDCONTROLER_BRIGHTNESSDEEPSTANDBY, &brightnessdeepstandby, true, 0, 15, this, CRCInput::RC_nokey, NULL, 0, 0, NONEXISTANT_LOCALE, true); nc->setHint("", LOCALE_MENU_HINT_VFD_BRIGHTNESSDEEPSTANDBY); nc->setActivateObserver(this); mn_widget->addItem(nc); } nc = new CMenuOptionNumberChooser(LOCALE_LCDMENU_DIM_BRIGHTNESS, &g_settings.lcd_setting_dim_brightness, vfd_enabled, -1, 15, NULL, CRCInput::RC_nokey, NULL, 0, -1, LOCALE_OPTIONS_OFF, true); nc->setHint("", LOCALE_MENU_HINT_VFD_BRIGHTNESSDIM); nc->setActivateObserver(this); mn_widget->addItem(nc); mn_widget->addItem(GenericMenuSeparatorLine); CStringInput *dim_time = new CStringInput(LOCALE_LCDMENU_DIM_TIME, &g_settings.lcd_setting_dim_time, 3, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE,"0123456789 "); mf = new CMenuForwarder(LOCALE_LCDMENU_DIM_TIME, vfd_enabled, g_settings.lcd_setting_dim_time, dim_time); mf->setHint("", LOCALE_MENU_HINT_VFD_DIMTIME); mf->setActivateObserver(this); mn_widget->addItem(mf); mn_widget->addItem(GenericMenuSeparatorLine); mf = new CMenuForwarder(LOCALE_OPTIONS_DEFAULT, true, NULL, this, "def", CRCInput::RC_red); mf->setHint("", LOCALE_MENU_HINT_VFD_DEFAULTS); mf->setActivateObserver(this); mn_widget->addItem(mf); int res = mn_widget->exec(this, ""); delete mn_widget; g_settings.lcd_setting[SNeutrinoSettings::LCD_BRIGHTNESS] = brightness; g_settings.lcd_setting[SNeutrinoSettings::LCD_STANDBY_BRIGHTNESS] = brightnessstandby; return res; }