From c225c2d4b68ce24e25206ed668a9f2f8c2fc6984 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sun, 19 Mar 2017 01:04:48 +0100 Subject: [PATCH 1/6] - hardware_caps: fix has_fan and add detection of Neo Twin --- lib/hardware/coolstream/Makefile.am | 7 +++++++ lib/hardware/coolstream/hardware_caps.cpp | 19 +++++++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/lib/hardware/coolstream/Makefile.am b/lib/hardware/coolstream/Makefile.am index b2a96b31e..82f3ab83c 100644 --- a/lib/hardware/coolstream/Makefile.am +++ b/lib/hardware/coolstream/Makefile.am @@ -1,6 +1,13 @@ AM_CXXFLAGS = -fno-rtti -fno-exceptions -fno-strict-aliasing AM_CPPFLAGS = \ + -I$(top_builddir) \ + -I$(top_srcdir) \ + -I$(top_srcdir)/src \ + -I$(top_srcdir)/src/zapit/include \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/lib/libconfigfile \ + -I$(top_srcdir)/lib/libeventserver \ @HWLIB_CFLAGS@ noinst_LIBRARIES = libhwcaps.a diff --git a/lib/hardware/coolstream/hardware_caps.cpp b/lib/hardware/coolstream/hardware_caps.cpp index 592202285..b4d4c0a46 100644 --- a/lib/hardware/coolstream/hardware_caps.cpp +++ b/lib/hardware/coolstream/hardware_caps.cpp @@ -11,6 +11,8 @@ #include #include "hardware_caps.h" +#include + static int initialized = 0; static hw_caps_t caps; @@ -19,7 +21,7 @@ hw_caps_t *get_hwcaps(void) { return ∩︀ int rev = cs_get_revision(); int chip = cs_get_chip_type(); - caps.has_fan = (rev < 8); + caps.has_fan = (rev < 8 && CFEManager::getInstance()->getFE(0)->hasSat()); // only SAT-HD1 before rev 8 has fan caps.has_HDMI = 1; caps.has_SCART = (rev != 10); caps.has_SCART_input = 0; @@ -34,15 +36,23 @@ hw_caps_t *get_hwcaps(void) { caps.can_ps_14_9 = 1; caps.force_tuner_2G = 0; strcpy(caps.boxvendor, "Coolstream"); - strcpy(caps.boxarch, "Nevis"); switch (rev) { case 6: case 7: // Black Stallion Edition strcpy(caps.boxname, "HD1"); + strcpy(caps.boxarch, "Nevis"); caps.force_tuner_2G = 1; break; - case 8: // TODO: Neo2 - Twin - strcpy(caps.boxname, "Neo"); + case 8: + if (CFEManager::getInstance()->getFrontendCount() < 2) + { + strcpy(caps.boxname, "Neo"); + } + else + { + strcpy(caps.boxname, "Neo Twin"); + } + strcpy(caps.boxarch, "Nevis"); caps.force_tuner_2G = 1; break; case 9: @@ -51,6 +61,7 @@ hw_caps_t *get_hwcaps(void) { break; case 10: strcpy(caps.boxname, "Zee"); + strcpy(caps.boxarch, "Nevis"); caps.force_tuner_2G = 1; break; case 11: From 9e5c30f7547c212a9278ac5251e8e1f39f631976 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sun, 19 Mar 2017 01:04:48 +0100 Subject: [PATCH 2/6] - controlapi: use "CST" instead of "Coolstream" ... because I don't know the current legal situation. --- src/nhttpd/tuxboxapi/controlapi.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/nhttpd/tuxboxapi/controlapi.cpp b/src/nhttpd/tuxboxapi/controlapi.cpp index bb5eb829b..38e47231d 100644 --- a/src/nhttpd/tuxboxapi/controlapi.cpp +++ b/src/nhttpd/tuxboxapi/controlapi.cpp @@ -810,7 +810,15 @@ void CControlAPI::HWInfoCGI(CyhookHandler *hh) std::string eth_id = netadapter.getMacAddr(); std::transform(eth_id.begin(), eth_id.end(), eth_id.begin(), ::tolower); - hh->printf("%s %s (%s)\nMAC:%s\n", g_info.hw_caps->boxvendor, g_info.hw_caps->boxname, g_info.hw_caps->boxarch, eth_id.c_str()); + std::string boxvendor(g_info.hw_caps->boxvendor); + /* + I don't know the current legal situation. + So better let's change the vendor's name to CST. + */ + if (boxvendor.compare("Coolstream") == 0) + boxvendor = "CST"; + + hh->printf("%s %s (%s)\nMAC:%s\n", boxvendor.c_str(), g_info.hw_caps->boxname, g_info.hw_caps->boxarch, eth_id.c_str()); } //----------------------------------------------------------------------------- void CControlAPI::ShutdownCGI(CyhookHandler *hh) From 59adc884918471b60edbaec0e2978c898106052e Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sun, 19 Mar 2017 01:04:48 +0100 Subject: [PATCH 3/6] - neutrinoyparser: remove workaround for Neo Twin --- src/nhttpd/tuxboxapi/neutrinoyparser.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/nhttpd/tuxboxapi/neutrinoyparser.cpp b/src/nhttpd/tuxboxapi/neutrinoyparser.cpp index f7ab07684..04dd13a4f 100644 --- a/src/nhttpd/tuxboxapi/neutrinoyparser.cpp +++ b/src/nhttpd/tuxboxapi/neutrinoyparser.cpp @@ -839,14 +839,16 @@ std::string CNeutrinoYParser::func_get_partition_list(CyhookHandler *, std::str std::string CNeutrinoYParser::func_get_boxtype(CyhookHandler *, std::string) { std::string boxvendor(g_info.hw_caps->boxvendor); - /* stay compatible with present code in Y_Blocks.txt */ + /* + I don't know the current legal situation. + So better let's change the vendor's name to CST. + + After change this, you'll have to align code in Y_Blocks.txt + */ if (boxvendor.compare("Coolstream") == 0) boxvendor = "CST"; std::string boxname(g_info.hw_caps->boxname); - /* workaround for Neo2 */ - if ((boxname.compare("Neo") == 0) && (CFEManager::getInstance()->getFrontendCount() > 1)) - boxname += " Twin"; return boxvendor + " " + boxname; } From 4f202b19d6009da0fc1e3f674827b0bc252d0b60 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sun, 19 Mar 2017 01:04:48 +0100 Subject: [PATCH 4/6] - use g_info.hw_caps->has_fan; remove old g_info.has_fan --- src/gui/miscsettings_menu.cpp | 2 +- src/neutrino.cpp | 14 +++++--------- src/system/settings.h | 1 - 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/gui/miscsettings_menu.cpp b/src/gui/miscsettings_menu.cpp index af84c0213..f9e3d86c3 100644 --- a/src/gui/miscsettings_menu.cpp +++ b/src/gui/miscsettings_menu.cpp @@ -326,7 +326,7 @@ void CMiscMenue::showMiscSettingsMenuGeneral(CMenuWidget *ms_general) ms_general->addItem(mc); //fan speed - if (g_info.has_fan) + if (g_info.hw_caps->has_fan) { CMenuOptionNumberChooser * mn = new CMenuOptionNumberChooser(LOCALE_FAN_SPEED, &g_settings.fan_speed, true, 1, 14, fanNotifier, CRCInput::RC_nokey, NULL, 0, 0, LOCALE_OPTIONS_OFF); mn->setHint("", LOCALE_MENU_HINT_FAN_SPEED); diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 598beedd1..1c9bfeadd 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2153,13 +2153,9 @@ TIMER_START(); cpuFreq = new cCpuFreqManager(); cpuFreq->SetCpuFreq(g_settings.cpufreq * 1000 * 1000); -#if HAVE_COOL_HARDWARE - /* only SAT-hd1 before rev 8 has fan */ - g_info.has_fan = (cs_get_revision() < 8 && CFEManager::getInstance()->getFE(0)->hasSat()); -#endif - dprintf(DEBUG_NORMAL, "g_info.has_fan: %d\n", g_info.has_fan); + //fan speed - if (g_info.has_fan) + if (g_info.hw_caps->has_fan) CFanControlNotifier::setSpeed(g_settings.fan_speed); dvbsub_init(); @@ -3661,7 +3657,7 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode) delete g_RCInput; my_system("/etc/init.d/rcK"); //fan speed - if (g_info.has_fan) { + if (g_info.hw_caps->has_fan) { CFanControlNotifier::setSpeed(0); } //CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_MAINMENU_REBOOT)); @@ -3869,7 +3865,7 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) cpuFreq->SetCpuFreq(g_settings.standby_cpufreq * 1000 * 1000); //fan speed - if (g_info.has_fan) + if (g_info.hw_caps->has_fan) CFanControlNotifier::setSpeed(1); frameBuffer->setActive(false); @@ -3898,7 +3894,7 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) } frameBuffer->setActive(true); //fan speed - if (g_info.has_fan) + if (g_info.hw_caps->has_fan) CFanControlNotifier::setSpeed(g_settings.fan_speed); puts("[neutrino.cpp] executing " NEUTRINO_LEAVE_STANDBY_SCRIPT "."); diff --git a/src/system/settings.h b/src/system/settings.h index c8aef6895..6e9578c11 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -927,7 +927,6 @@ struct SglobalInfo { unsigned char box_Type; delivery_system_t delivery_system; - bool has_fan; hw_caps_t *hw_caps; }; From 233886df8df2956da51d122199be8941dc6558e0 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sun, 19 Mar 2017 01:04:48 +0100 Subject: [PATCH 5/6] - remove unused g_info.box_Type --- src/driver/lcdd.cpp | 2 ++ src/system/settings.h | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/driver/lcdd.cpp b/src/driver/lcdd.cpp index 3ff7e111c..183988a90 100644 --- a/src/driver/lcdd.cpp +++ b/src/driver/lcdd.cpp @@ -341,6 +341,7 @@ void CLCD::setlcdparameter(int dimm, const int contrast, const int power, const perror("[lcdd] set invert failed!"); } +#if 0 if (g_info.box_Type == CControld::TUXBOX_MAKER_PHILIPS) { if (ioctl(fd, LCD_IOCTL_BIAS, &bias) < 0) @@ -348,6 +349,7 @@ void CLCD::setlcdparameter(int dimm, const int contrast, const int power, const perror("[lcdd] set bias failed!"); } } +#endif close(fd); } #endif diff --git a/src/system/settings.h b/src/system/settings.h index 6e9578c11..2b5f6831f 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -925,7 +925,6 @@ const time_settings_struct_t timing_setting[SNeutrinoSettings::TIMING_SETTING_CO struct SglobalInfo { - unsigned char box_Type; delivery_system_t delivery_system; hw_caps_t *hw_caps; }; From 720269c99ab7411dc15f0cd4d017dc91174c06c0 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sun, 19 Mar 2017 01:04:48 +0100 Subject: [PATCH 6/6] - remove unused g_info.delivery_system --- src/system/settings.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/system/settings.h b/src/system/settings.h index 2b5f6831f..6b81674f6 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -925,7 +925,6 @@ const time_settings_struct_t timing_setting[SNeutrinoSettings::TIMING_SETTING_CO struct SglobalInfo { - delivery_system_t delivery_system; hw_caps_t *hw_caps; };