int CRecordSetup::exec(CMenuTarget* parent, const std::string &actionKey) { dprintf(DEBUG_DEBUG, "init record setup\n"); int res = menu_return::RETURN_REPAINT; std::string timeshiftDir; if (parent) { parent->hide(); } if(actionKey=="recording") { CNeutrinoApp::getInstance()->setupRecordingDevice(); return res; } else if(actionKey == "help_recording") { ShowMsg(LOCALE_SETTINGS_HELP, LOCALE_RECORDINGMENU_HELP, CMessageBox::mbrBack, CMessageBox::mbBack); return res; } else if(actionKey == "recordingdir") { //parent->hide(); const char *action_str = "recordingdir"; if(chooserDir(g_settings.network_nfs_recordingdir, true, action_str)){ printf("New recordingdir: %s (timeshift %s)\n", g_settings.network_nfs_recordingdir.c_str(), g_settings.timeshiftdir.c_str()); if(g_settings.timeshiftdir.empty()) { timeshiftDir = g_settings.network_nfs_recordingdir + "/.timeshift"; safe_mkdir(timeshiftDir.c_str()); printf("New timeshift dir: %s\n", timeshiftDir.c_str()); CRecordManager::getInstance()->SetTimeshiftDirectory(timeshiftDir); } cHddStat::getInstance()->setDir(g_settings.network_nfs_recordingdir); } return res; } else if(actionKey == "timeshiftdir") { //parent->hide(); CFileBrowser b; b.Dir_Mode=true; if (b.exec(g_settings.timeshiftdir.c_str())) { const char * newdir = b.getSelectedFile()->Name.c_str(); printf("New timeshift: selected %s\n", newdir); if(check_dir(newdir)) printf("Wrong/unsupported recording dir %s\n", newdir); else { printf("New timeshift dir: old %s (record %s)\n", g_settings.timeshiftdir.c_str(), g_settings.network_nfs_recordingdir.c_str()); if(newdir != g_settings.network_nfs_recordingdir) { printf("New timeshift != rec dir\n"); g_settings.timeshiftdir = b.getSelectedFile()->Name; timeshiftDir = g_settings.timeshiftdir; } else { timeshiftDir = g_settings.network_nfs_recordingdir + "/.timeshift"; g_settings.timeshiftdir = newdir; safe_mkdir(timeshiftDir.c_str()); printf("New timeshift == rec dir\n"); } printf("New timeshift dir: %s\n", timeshiftDir.c_str()); CRecordManager::getInstance()->SetTimeshiftDirectory(timeshiftDir); } } return res; } #if 0 if (CNeutrinoApp::getInstance()->recordingstatus) DisplayInfoMessage(g_Locale->getText(LOCALE_RECORDINGMENU_RECORD_IS_RUNNING)); else #endif res = showRecordSetup(); return res; }
int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey) { const char * key = actionKey.c_str(); if (strcmp(key, "modifytimer") == 0) { timerlist[selected].announceTime = timerlist[selected].alarmTime -60; if (timerlist[selected].eventRepeat >= CTimerd::TIMERREPEAT_WEEKDAYS) Timer->getWeekdaysFromStr(&timerlist[selected].eventRepeat, m_weekdaysStr); if (timerlist[selected].eventType == CTimerd::TIMER_RECORD) { timerlist[selected].announceTime -= 120; // 2 more mins for rec timer if (timer_apids_dflt) timerlist[selected].apids = TIMERD_APIDS_CONF; else timerlist[selected].apids = (unsigned char)((timer_apids_std * TIMERD_APIDS_STD) | (timer_apids_ac3 * TIMERD_APIDS_AC3) | (timer_apids_alt * TIMERD_APIDS_ALT)); Timer->modifyTimerAPid(timerlist[selected].eventID,timerlist[selected].apids); Timer->modifyRecordTimerEvent(timerlist[selected].eventID, timerlist[selected].announceTime, timerlist[selected].alarmTime, timerlist[selected].stopTime, timerlist[selected].eventRepeat, timerlist[selected].repeatCount,timerlist[selected].recordingDir); } else { Timer->modifyTimerEvent(timerlist[selected].eventID, timerlist[selected].announceTime, timerlist[selected].alarmTime, timerlist[selected].stopTime, timerlist[selected].eventRepeat, timerlist[selected].repeatCount); } return menu_return::RETURN_EXIT; } else if (strcmp(key, "newtimer") == 0) { timerNew.announceTime=timerNew.alarmTime-60; CTimerd::EventInfo eventinfo; CTimerd::RecordingInfo recinfo; eventinfo.epgID=0; eventinfo.epg_starttime=0; eventinfo.channel_id=timerNew.channel_id; eventinfo.apids = TIMERD_APIDS_CONF; eventinfo.recordingSafety = false; timerNew.standby_on = (timerNew_standby_on == 1); void *data=NULL; if (timerNew.eventType == CTimerd::TIMER_STANDBY) data=&(timerNew.standby_on); /* else if (timerNew.eventType==CTimerd::TIMER_NEXTPROGRAM || */ else if (timerNew.eventType == CTimerd::TIMER_ZAPTO || timerNew.eventType == CTimerd::TIMER_RECORD) { if (timerNew_channel_name == "---") return menu_return::RETURN_REPAINT; if (timerNew.eventType==CTimerd::TIMER_RECORD) { recinfo.epgID=0; recinfo.epg_starttime=0; recinfo.channel_id=timerNew.channel_id; recinfo.apids=TIMERD_APIDS_CONF; recinfo.recordingSafety = false; timerNew.announceTime-= 120; // 2 more mins for rec timer strncpy(recinfo.recordingDir,timerNew.recordingDir,sizeof(recinfo.recordingDir)-1); data = &recinfo; } else data= &eventinfo; } else if (timerNew.eventType==CTimerd::TIMER_REMIND) data = (void*)timerNew_message.c_str(); else if (timerNew.eventType==CTimerd::TIMER_EXEC_PLUGIN) { if (strcmp(timerNew.pluginName, "---") == 0) return menu_return::RETURN_REPAINT; data= timerNew.pluginName; } if (timerNew.eventRepeat >= CTimerd::TIMERREPEAT_WEEKDAYS) Timer->getWeekdaysFromStr(&timerNew.eventRepeat, m_weekdaysStr); if (Timer->addTimerEvent(timerNew.eventType,data,timerNew.announceTime,timerNew.alarmTime, timerNew.stopTime,timerNew.eventRepeat,timerNew.repeatCount,false) == -1) { bool forceAdd = askUserOnTimerConflict(timerNew.announceTime,timerNew.stopTime); if (forceAdd) { Timer->addTimerEvent(timerNew.eventType,data,timerNew.announceTime,timerNew.alarmTime, timerNew.stopTime, timerNew.eventRepeat,timerNew.repeatCount,true); } } return menu_return::RETURN_EXIT; } else if (strncmp(key, "SC:", 3) == 0) { int delta; sscanf(&(key[3]), SCANF_CHANNEL_ID_TYPE "%n", &timerNew.channel_id, &delta); timerNew_channel_name = std::string(key + 3 + delta + 1); g_RCInput->postMsg(CRCInput::RC_timeout, 0); // leave underlying menu also g_RCInput->postMsg(CRCInput::RC_timeout, 0); // leave underlying menu also return menu_return::RETURN_EXIT; } else if(actionKey == "rec_dir1") { parent->hide(); const char *action_str = "RecDir1"; if(chooserDir(timerlist[selected].recordingDir, true, action_str, sizeof(timerlist[selected].recordingDir)-1)) { printf("[timerlist] new %s dir %s\n", action_str, timerlist[selected].recordingDir); } return menu_return::RETURN_REPAINT; } else if(actionKey == "rec_dir2") { parent->hide(); const char *action_str = "RecDir2"; if(chooserDir(timerNew.recordingDir, true, action_str, sizeof(timerNew.recordingDir)-1)) { printf("[timerlist] new %s dir %s\n", action_str, timerNew.recordingDir); } return menu_return::RETURN_REPAINT; } if (parent) { parent->hide(); } int ret = show(); CVFD::getInstance()->setMode((CVFD::MODES)saved_dispmode); return ret; /* if( ret > -1) { return menu_return::RETURN_REPAINT; } else if( ret == -1) { // -1 bedeutet nur REPAINT return menu_return::RETURN_REPAINT; } else { // -2 bedeutet EXIT_ALL return menu_return::RETURN_EXIT_ALL; }*/ }
int CMiscMenue::exec(CMenuTarget* parent, const std::string &actionKey) { printf("init extended settings menu...\n"); if(parent != NULL) parent->hide(); if(actionKey == "epgdir") { const char *action_str = "epg"; if(chooserDir(g_settings.epg_dir, true, action_str)) CNeutrinoApp::getInstance()->SendSectionsdConfig(); return menu_return::RETURN_REPAINT; } else if(actionKey == "plugin_dir") { const char *action_str = "plugin"; if(chooserDir(g_settings.plugin_hdd_dir, false, action_str)) g_Plugins->loadPlugins(); return menu_return::RETURN_REPAINT; } else if(actionKey == "movieplayer_plugin") { CMenuWidget MoviePluginSelector(LOCALE_MOVIEPLAYER_PLUGIN, NEUTRINO_ICON_FEATURES); MoviePluginSelector.addItem(GenericMenuSeparator); MoviePluginSelector.addItem(new CMenuForwarder(LOCALE_PLUGINS_NO_PLUGIN, true, NULL, new CMoviePluginChangeExec(), "---", CRCInput::RC_red)); MoviePluginSelector.addItem(GenericMenuSeparatorLine); char id[5]; int enabled_count = 0; for(unsigned int count=0;count < (unsigned int) g_Plugins->getNumberOfPlugins();count++) { if (!g_Plugins->isHidden(count)) { sprintf(id, "%d", count); enabled_count++; MoviePluginSelector.addItem(new CMenuForwarder(g_Plugins->getName(count), true, NULL, new CMoviePluginChangeExec(), id, CRCInput::convertDigitToKey(count))); } } MoviePluginSelector.exec(NULL, ""); return menu_return::RETURN_REPAINT; } else if(actionKey == "info") { unsigned num = CEitManager::getInstance()->getEventsCount(); char str[128]; sprintf(str, "Event count: %d", num); ShowMsg(LOCALE_MESSAGEBOX_INFO, str, CMsgBox::mbrBack, CMsgBox::mbBack); return menu_return::RETURN_REPAINT; } else if(actionKey == "energy") { return showMiscSettingsMenuEnergy(); } else if(actionKey == "channellist") { return showMiscSettingsMenuChanlist(); } else if(actionKey == "filebrowserdir") { const char *action_str = "filebrowserdir"; chooserDir(g_settings.network_nfs_moviedir, true, action_str); return menu_return::RETURN_REPAINT; } else if(actionKey == "onlineservices") { return showMiscSettingsMenuOnlineServices(); } else if(actionKey == "epg_read_now") { printf("Reading epg cache from %s....\n", g_settings.epg_dir.c_str()); g_Sectionsd->readSIfromXML(g_settings.epg_dir.c_str()); return menu_return::RETURN_REPAINT; } return showMiscSettingsMenu(); }