From edb0a5937e30477f633550c18c87cdfa6c2a5827 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Mon, 8 May 2017 23:44:45 +0200 Subject: [PATCH] - neutrino: fix hw_caps init; it must be initialized after zapit start --- src/neutrino.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index dda468ad7..07f6d2231 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -456,14 +456,22 @@ 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); + /* + hw_caps uses CFEManager and CFEManager needs g_settings. + So g_settings cannot use hw_caps. + + For this reason we need this workaround. + */ + bool can_shutdown = (cs_get_revision() > 7); + g_settings.shutdown_real = false; - if (g_info.hw_caps->can_shutdown) + if (can_shutdown) //(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 (g_info.hw_caps->can_shutdown) + if (can_shutdown) //(g_info.hw_caps->can_shutdown) g_settings.shutdown_min = configfile.getInt32("shutdown_min", 180); g_settings.sleeptimer_min = configfile.getInt32("sleeptimer_min", 0); @@ -2043,8 +2051,6 @@ TIMER_START(); cs_api_init(); cs_register_messenger(CSSendMessage); - g_info.hw_caps = get_hwcaps(); - g_Locale = new CLocaleManager; int loadSettingsErg = loadSetup(NEUTRINO_SETTINGS_FILE); @@ -2130,6 +2136,9 @@ TIMER_START(); CheckFastScan(); + // init hw_caps *after* zapit start! + g_info.hw_caps = get_hwcaps(); + //timer start timer_wakeup = false;//init wake_up( timer_wakeup );