diff --git a/src/timerd/doku.html b/doc/timerd.html similarity index 100% rename from src/timerd/doku.html rename to doc/timerd.html diff --git a/src/driver/neutrinofonts.cpp b/src/driver/neutrinofonts.cpp index 3f35a75ca..16fa1de89 100644 --- a/src/driver/neutrinofonts.cpp +++ b/src/driver/neutrinofonts.cpp @@ -272,10 +272,12 @@ int CNeutrinoFonts::getDynFontSize(int dx, int dy, std::string text, int style) if (text.empty()) tmpText = "x"; _width = dynFont->getRenderWidth(tmpText); if ((_height > dy) || (_width > dx)) { - if (dynFlag) + if (dynFlag){ dynSize--; - else - printf("##### [%s] Specified size (dx=%d, dy=%d) too small, use minimal font size.\n", __FUNCTION__, dx, dy); + }else{ + if (debug) + printf("##### [%s] Specified size (dx=%d, dy=%d) too small, use minimal font size.\n", __FUNCTION__, dx, dy); + } break; } else if ((_height < dy) || (_width < dx)) { diff --git a/src/gui/miscsettings_menu.cpp b/src/gui/miscsettings_menu.cpp index f9e3d86c3..ba352cd63 100644 --- a/src/gui/miscsettings_menu.cpp +++ b/src/gui/miscsettings_menu.cpp @@ -55,7 +55,6 @@ #include #include -#include #include #include @@ -245,7 +244,7 @@ int CMiscMenue::showMiscSettingsMenu() misc_menue.addItem(mf); //energy, shutdown - if(cs_get_revision() > 7) + if(g_info.hw_caps->can_shutdown) { mf = new CMenuForwarder(LOCALE_MISCSETTINGS_ENERGY, true, NULL, this, "energy", CRCInput::RC_green); mf->setHint("", LOCALE_MENU_HINT_MISC_ENERGY); diff --git a/src/gui/widget/colorchooser.cpp b/src/gui/widget/colorchooser.cpp index 589f49fe7..5eef2d02e 100644 --- a/src/gui/widget/colorchooser.cpp +++ b/src/gui/widget/colorchooser.cpp @@ -197,6 +197,7 @@ int CColorChooser::exec(CMenuTarget* parent, const std::string &) val += 2; else val = 100; + (*value[selected]) = (uint8_t)val; paintSlider(x + 10, y + hheight + mheight * selected, value[selected], colorchooser_names[selected], iconnames[selected], true); setColor(); @@ -211,6 +212,7 @@ int CColorChooser::exec(CMenuTarget* parent, const std::string &) val -= 2; else val = 0; + (*value[selected]) = (uint8_t)val; paintSlider(x + 10, y + hheight + mheight * selected, value[selected], colorchooser_names[selected], iconnames[selected], true); setColor(); diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 9a88d8aee..a44bfa839 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -455,12 +455,14 @@ int CNeutrinoApp::loadSetup(const char * fname) g_settings.hdd_noise = configfile.getInt32( "hdd_noise", 254); g_settings.hdd_statfs_mode = configfile.getInt32( "hdd_statfs_mode", SNeutrinoSettings::HDD_STATFS_RECORDING); - g_settings.shutdown_real = configfile.getBool("shutdown_real" , false ); + g_settings.shutdown_real = false; + if (g_info.hw_caps->can_shutdown) + g_settings.shutdown_real = configfile.getBool("shutdown_real" , false ); g_settings.shutdown_real_rcdelay = configfile.getBool("shutdown_real_rcdelay", false ); g_settings.shutdown_count = configfile.getInt32("shutdown_count", 0); g_settings.shutdown_min = 0; - if(cs_get_revision() > 7) + if (g_info.hw_caps->can_shutdown) g_settings.shutdown_min = configfile.getInt32("shutdown_min", 180); g_settings.sleeptimer_min = configfile.getInt32("sleeptimer_min", 0); @@ -2370,7 +2372,7 @@ TIMER_STOP("################################## after all ####################### } RealRun(); - ExitRun(true, (cs_get_revision() > 7)); + ExitRun(g_info.hw_caps->can_shutdown); return 0; } @@ -3439,7 +3441,7 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) return messages_return::handled; } } - if(g_settings.shutdown_real) + if (g_settings.shutdown_real) g_RCInput->postMsg(NeutrinoMessages::SHUTDOWN, 0); else g_RCInput->postMsg(NeutrinoMessages::STANDBY_ON, 0); @@ -3484,7 +3486,7 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) } else if( msg == NeutrinoMessages::SHUTDOWN ) { if(!skipShutdownTimer) { - ExitRun(true, (cs_get_revision() > 7)); + ExitRun(g_info.hw_caps->can_shutdown); } else { skipShutdownTimer=false; @@ -3494,7 +3496,7 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) else if( msg == NeutrinoMessages::REBOOT ) { FILE *f = fopen("/tmp/.reboot", "w"); fclose(f); - ExitRun(true); + ExitRun(); } else if (msg == NeutrinoMessages::EVT_POPUP || msg == NeutrinoMessages::EVT_EXTMSG) { if (mode != mode_scart && mode != mode_standby) { @@ -3657,134 +3659,141 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) extern time_t timer_minutes;//timermanager.cpp extern bool timer_is_rec;//timermanager.cpp -void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode) +void CNeutrinoApp::ExitRun(int can_shutdown) { - bool do_shutdown = true; + printf("[neutrino] %s can_shutdown: %d\n", __func__, can_shutdown); + bool do_shutdown = true; CRecordManager::getInstance()->StopAutoRecord(); - if(CRecordManager::getInstance()->RecordingStatus() || cYTCache::getInstance()->isActive()) { + if(CRecordManager::getInstance()->RecordingStatus() || cYTCache::getInstance()->isActive()) + { do_shutdown = (ShowMsg(LOCALE_MESSAGEBOX_INFO, LOCALE_SHUTDOWN_RECORDING_QUERY, CMsgBox::mbrNo, CMsgBox::mbYes | CMsgBox::mbNo, NULL, 450, DEFAULT_TIMEOUT, true) == CMsgBox::mbrYes); } + if (!do_shutdown) + return; - if(do_shutdown) { - if(SDTreloadChannels){ - SDT_ReloadChannels(); - //SDTreloadChannels = false; + if (SDTreloadChannels) + SDT_ReloadChannels(); + + dprintf(DEBUG_INFO, "exit\n"); + StopSubtitles(); + stopPlayBack(); + + frameBuffer->paintBackground(); + frameBuffer->showFrame("shutdown.jpg"); + + delete cHddStat::getInstance(); + delete CRecordManager::getInstance(); + + CEpgScan::getInstance()->Stop(); + if(g_settings.epg_save /* && timeset && g_Sectionsd->getIsTimeSet ()*/) + { + g_Sectionsd->setPauseScanning(true); + saveEpg(true);// true CVFD::MODE_SHUTDOWN + } + + /* on shutdown force load new fst */ + if (can_shutdown) + CheckFastScan(true, false); + + CVFD::getInstance()->setMode(CVFD::MODE_SHUTDOWN); + + stop_daemons(true /*can_shutdown*/); //need here for timer_is_rec before saveSetup + g_settings.shutdown_timer_record_type = timer_is_rec; + saveSetup(NEUTRINO_SETTINGS_FILE); + + if (can_shutdown) + { + puts("[neutrino.cpp] executing " NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT "."); + if (my_system(NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT) != 0) + perror(NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT " failed"); + + printf("entering off state\n"); + mode = mode_off; + //CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_MAINMENU_SHUTDOWN)); + + fp_standby_data_t standby; + time_t mtime = time(NULL); + struct tm *tmtime = localtime(&mtime); + time_t fp_timer = 0; + + if (timer_minutes) + { + fp_timer = timer_minutes - mtime/60; + if (fp_timer < 1) + fp_timer = 1; } - - - dprintf(DEBUG_INFO, "exit\n"); - StopSubtitles(); - stopPlayBack(); - - frameBuffer->paintBackground(); - frameBuffer->showFrame("shutdown.jpg"); - - delete cHddStat::getInstance(); - delete CRecordManager::getInstance(); - - CEpgScan::getInstance()->Stop(); - if(g_settings.epg_save /* && timeset && g_Sectionsd->getIsTimeSet ()*/) { - g_Sectionsd->setPauseScanning(true); - saveEpg(true);// true CVFD::MODE_SHUTDOWN + printf("now: %ld, timer %ld, FP timer %ldmin\n", mtime/60, timer_minutes, fp_timer);fflush(stdout); + int leds = 0x40; + switch (g_settings.led_deep_mode) + { + case 0: + leds = 0x0; //off leds + break; + case 1: + leds = 0x60; //on led1 & 2 + break; + case 2: + leds = 0x20; //led1 on , 2 off + break; + case 3: + leds = 0x40; //led2 off, 2 on + break; + default: + break; } + if (leds && g_settings.led_blink && fp_timer) + leds |= 0x80; - /* on shutdown force load new fst */ - if (retcode) - CheckFastScan(true, false); + standby.brightness = cs_get_revision() == 10 ? 0 : g_settings.lcd_setting[SNeutrinoSettings::LCD_DEEPSTANDBY_BRIGHTNESS]; + standby.flags = leds; + standby.current_hour = tmtime->tm_hour; + standby.current_minute = tmtime->tm_min; + standby.timer_minutes_hi = fp_timer >> 8;; + standby.timer_minutes_lo = fp_timer & 0xFF; - CVFD::getInstance()->setMode(CVFD::MODE_SHUTDOWN); + my_system("/etc/init.d/rcK"); + sync(); + CFSMounter::umount(); // unreachable NFS server + my_system(2,"/bin/umount", "-a"); + sleep(1); - stop_daemons(true /*retcode*/);//need here for timer_is_rec before saveSetup - g_settings.shutdown_timer_record_type = timer_is_rec; - saveSetup(NEUTRINO_SETTINGS_FILE); - - if(retcode) { - puts("[neutrino.cpp] executing " NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT "."); - if (my_system(NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT) != 0) - perror(NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT " failed"); - - printf("entering off state\n"); - mode = mode_off; - //CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_MAINMENU_SHUTDOWN)); + stop_video(); + int fd = open("/dev/display", O_RDONLY); + if (fd < 0) + { + perror("/dev/display"); + reboot(LINUX_REBOOT_CMD_RESTART); + } + else + { + if (ioctl(fd, IOC_FP_STANDBY, (fp_standby_data_t *) &standby)) { - fp_standby_data_t standby; - time_t mtime = time(NULL); - struct tm *tmtime = localtime(&mtime); - time_t fp_timer = 0; - - if(timer_minutes) { - fp_timer = timer_minutes - mtime/60; - if(fp_timer < 1) - fp_timer = 1; - } - printf("now: %ld, timer %ld, FP timer %ldmin\n", mtime/60, timer_minutes, fp_timer);fflush(stdout); - int leds = 0x40; - switch(g_settings.led_deep_mode){ - case 0: - leds = 0x0;//off leds - break; - case 1: - leds = 0x60;//on led1 & 2 - break; - case 2: - leds = 0x20;//led1 on , 2 off - break; - case 3: - leds = 0x40;//led2 off, 2 on - break; - default: - break; - } - if(leds && g_settings.led_blink && fp_timer) - leds |= 0x80; - - standby.brightness = cs_get_revision() == 10 ? 0 : g_settings.lcd_setting[SNeutrinoSettings::LCD_DEEPSTANDBY_BRIGHTNESS]; - standby.flags = leds; - standby.current_hour = tmtime->tm_hour; - standby.current_minute = tmtime->tm_min; - standby.timer_minutes_hi = fp_timer >> 8;; - standby.timer_minutes_lo = fp_timer & 0xFF; - - my_system("/etc/init.d/rcK"); - sync(); - CFSMounter::umount(); // unreachable NFS server - my_system(2,"/bin/umount", "-a"); - sleep(1); - - stop_video(); - - int fd = open("/dev/display", O_RDONLY); - if (fd < 0) { - perror("/dev/display"); - reboot(LINUX_REBOOT_CMD_RESTART); - } else { - - if (ioctl(fd, IOC_FP_STANDBY, (fp_standby_data_t *) &standby)) { - perror("IOC_FP_STANDBY"); - reboot(LINUX_REBOOT_CMD_RESTART); - } else { - while(true) sleep(1); - } - } + perror("IOC_FP_STANDBY"); + reboot(LINUX_REBOOT_CMD_RESTART); } - } else { - delete g_RCInput; - my_system("/etc/init.d/rcK"); - //fan speed - if (g_info.hw_caps->has_fan) { - CFanControlNotifier::setSpeed(0); + else + { + while (true) + sleep(1); } - //CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_MAINMENU_REBOOT)); - stop_video(); - Cleanup(); - //_exit(retcode); - exit(retcode); } } + else + { + delete g_RCInput; + my_system("/etc/init.d/rcK"); + //fan speed + if (g_info.hw_caps->has_fan) + CFanControlNotifier::setSpeed(0); + stop_video(); + Cleanup(); + //_exit(0); + exit(0); + } } void CNeutrinoApp::saveEpg(bool cvfd_mode) @@ -4145,13 +4154,13 @@ int CNeutrinoApp::exec(CMenuTarget* parent, const std::string & actionKey) ShowMsg(LOCALE_SETTINGS_HELP, LOCALE_RECORDINGMENU_HELP, CMsgBox::mbrBack, CMsgBox::mbBack); } else if(actionKey=="shutdown") { - ExitRun(true, 1); + ExitRun(1); } else if(actionKey=="reboot") { FILE *f = fopen("/tmp/.reboot", "w"); fclose(f); - ExitRun(true); + ExitRun(); unlink("/tmp/.reboot"); returnval = menu_return::RETURN_NONE; } diff --git a/src/neutrino.h b/src/neutrino.h index 6d8749865..b70f5586f 100644 --- a/src/neutrino.h +++ b/src/neutrino.h @@ -121,7 +121,7 @@ private: void standbyMode( bool bOnOff, bool fromDeepStandby = false ); void getAnnounceEpgName(CTimerd::RecordingInfo * eventinfo, std::string &name); - void ExitRun(const bool write_si = true, int retcode = 0); + void ExitRun(int can_shutdown = 0); void RealRun(); void InitZapper(); void InitTimerdClient(); diff --git a/src/neutrino_menue.cpp b/src/neutrino_menue.cpp index 7665c847f..82d7b8aaf 100644 --- a/src/neutrino_menue.cpp +++ b/src/neutrino_menue.cpp @@ -252,7 +252,7 @@ void CNeutrinoApp::InitMenuMain() personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_REBOOT]); //shutdown - if(system_rev >= 8) { + if (g_info.hw_caps->can_shutdown) { mf = new CMenuForwarder(LOCALE_MAINMENU_SHUTDOWN, true, NULL, this, "shutdown", CRCInput::RC_standby); mf->setHint(NEUTRINO_ICON_HINT_SHUTDOWN, LOCALE_MENU_HINT_SHUTDOWN); personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_SHUTDOWN]); @@ -298,7 +298,7 @@ void CNeutrinoApp::InitMenuMain() personalize.addItem(MENU_SHUTDOWN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_REBOOT]); //shutdown - if(system_rev >= 8) { + if (g_info.hw_caps->can_shutdown) { mf = new CMenuForwarder(LOCALE_MAINMENU_SHUTDOWN, true, NULL, this, "shutdown", CRCInput::RC_blue); mf->setHint(NEUTRINO_ICON_HINT_SHUTDOWN, LOCALE_MENU_HINT_SHUTDOWN); personalize.addItem(MENU_SHUTDOWN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_SHUTDOWN]);