From a76872f8e3cbcbb42396ca8f2219bfef95b5b985 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Thu, 8 Mar 2012 08:24:04 +0000 Subject: [PATCH 1/3] * Neutrino optimized shutdown - Display the screen to complete shutdown of the box. - Saving EPG extending the timeout to 120 seconds. git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2140 e54a6e83-5905-42d5-8d5c-058d10e6a962 --- src/neutrino.cpp | 6 ++++-- src/zapit/src/zapit.cpp | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 91071a59c..8e1fd16d6 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2969,6 +2969,9 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode) standby.timer_minutes_hi = fp_timer >> 8;; standby.timer_minutes_lo = fp_timer & 0xFF; + delete videoDecoder; + cs_api_exit(); + int fd = open("/dev/display", O_RDONLY); if (fd < 0) { perror("/dev/display"); @@ -3057,7 +3060,7 @@ void CNeutrinoApp::saveEpg() neutrino_msg_data_t data; g_Sectionsd->writeSI2XML(g_settings.epg_dir.c_str()); while( true ) { - g_RCInput->getMsg(&msg, &data, 300); // 30 secs.. + g_RCInput->getMsg(&msg, &data, 1200); // 120 secs.. if (( msg == CRCInput::RC_timeout ) || (msg == NeutrinoMessages::EVT_SI_FINISHED)) { //printf("Msg %x timeout %d EVT_SI_FINISHED %x\n", msg, CRCInput::RC_timeout, NeutrinoMessages::EVT_SI_FINISHED); break; @@ -3729,7 +3732,6 @@ void stop_daemons(bool stopall) delete powerManager; } cs_deregister_messenger(); - cs_api_exit(); } } diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index c2764aef5..c7eee7c5a 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -2121,7 +2121,6 @@ void CZapit::run() delete pcrDemux; delete pmtDemux; delete audioDecoder; - delete videoDecoder; delete videoDemux; delete audioDemux; From 5b458045cf46ab63ff3a7603b4eb9d6c3fd3aebc Mon Sep 17 00:00:00 2001 From: focus Date: Thu, 8 Mar 2012 14:23:55 +0000 Subject: [PATCH 2/3] neutrino.cpp: fix sighandler after rev.2140 git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2141 e54a6e83-5905-42d5-8d5c-058d10e6a962 --- src/neutrino.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 8e1fd16d6..72435138c 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3743,6 +3743,8 @@ void sighandler (int signum) case SIGINT: delete CRecordManager::getInstance(); stop_daemons(); + delete videoDecoder; + cs_api_exit(); _exit(0); default: break; From d1fd82053c4d0c4ce086b7d996aa507941f7aa27 Mon Sep 17 00:00:00 2001 From: focus Date: Thu, 8 Mar 2012 15:00:20 +0000 Subject: [PATCH 3/3] system/localize.cpp: remove old code; dont load default locale twice git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2142 e54a6e83-5905-42d5-8d5c-058d10e6a962 --- src/system/localize.cpp | 121 ++++------------------------------------ 1 file changed, 10 insertions(+), 111 deletions(-) diff --git a/src/system/localize.cpp b/src/system/localize.cpp index 9e594c754..40f55c79c 100644 --- a/src/system/localize.cpp +++ b/src/system/localize.cpp @@ -47,91 +47,7 @@ //static const char * iso639filename = "/usr/share/iso-codes/iso-639.tab"; static const char * iso639filename = "/share/iso-codes/iso-639.tab"; -#if 0 -#include -#include - -#define ISO639_TABLE_SIZE 489 -typedef struct -{ - char * iso_639_2_code; - char * name; -} iso639_t; - -iso639_t iso639[ISO639_TABLE_SIZE]; - -int mycompare(const void * a, const void * b) -{ - return strcmp(((iso639_t *)a)->iso_639_2_code, ((iso639_t *)b)->iso_639_2_code); -} - -void initialize_iso639_map(void) -{ - unsigned i = 0; - std::string s, t, v; - std::ifstream in(iso639filename); - if (in.is_open()) - { - while (in.peek() == '#') - getline(in, s); - while (in >> s >> t >> v >> std::ws) - { - getline(in, v); - - if (i == ISO639_TABLE_SIZE) - { - printf("ISO639 table overflow\n"); - goto do_sorting; - } - - iso639[i].iso_639_2_code = strdup(s.c_str()); - iso639[i].name = strdup(v.c_str()); - - i++; - - if (s != t) - { - if (i == ISO639_TABLE_SIZE) - { - printf("ISO639 table overflow\n"); - goto do_sorting; - } - - iso639[i].iso_639_2_code = strdup(t.c_str()); -// iso639[i].name = strdup(v.c_str()); - iso639[i].name = iso639[i - 1].name; - - i++; - } - } - if (i != ISO639_TABLE_SIZE) - { - printf("ISO639 table underflow\n"); - while(i < ISO639_TABLE_SIZE) - { - iso639[i].iso_639_2_code = iso639[i].name = (char *)iso639filename; // fill with junk - i++; - } - } - do_sorting: - qsort(iso639, ISO639_TABLE_SIZE, sizeof(iso639_t), mycompare); - } - else - printf("Loading %s failed.\n", iso639filename); -} - -const char * getISO639Description(const char * const iso) -{ - iso639_t tmp; - tmp.iso_639_2_code = (char *)iso; - - void * value = bsearch(&tmp, iso639, ISO639_TABLE_SIZE, sizeof(iso639_t), mycompare); - if (value == NULL) - return iso; - else - return ((iso639_t *)value)->name; -} -#else +#define DEFAULT_LOCALE "english" std::map iso639; std::map iso639rev; @@ -166,7 +82,6 @@ const char * getISO639Description(const char * const iso) else return it->second.c_str(); } -#endif CLocaleManager::CLocaleManager() { @@ -178,7 +93,7 @@ CLocaleManager::CLocaleManager() for (unsigned int i = 0; i < (sizeof(locale_real_names)/sizeof(const char *)); i++) defaultData[i] = (char *)locale_real_names[i]; - loadLocale("english", true); + loadLocale(DEFAULT_LOCALE, true); } CLocaleManager::~CLocaleManager() @@ -198,7 +113,14 @@ CLocaleManager::loadLocale_ret_t CLocaleManager::loadLocale(const char * const l FILE * fd; char ** loadData = asdefault ? defaultData : localeData; - //initialize_iso639_map(); + if(!asdefault && !strcmp(locale, DEFAULT_LOCALE)) { + for (unsigned j = 0; j < (sizeof(locale_real_names)/sizeof(const char *)); j++) { + if (loadData[j] != locale_real_names[j] && loadData[j] != defaultData[j]) + free(loadData[j]); + loadData[j] = defaultData[j]; + } + return UNICODE_FONT; + } for (i = 0; i < 2; i++) { @@ -278,29 +200,6 @@ CLocaleManager::loadLocale_ret_t CLocaleManager::loadLocale(const char * const l // printf("i=%d\n", i); if(i == sizeof(locale_real_names)/sizeof(const char *)) printf("[%s.locale] superfluous entry: %s\n", locale, buf); -#if 0 - - while (1) - { - j = (i >= (sizeof(locale_real_names)/sizeof(const char *))) ? -1 : strcmp(buf, locale_real_names[i]); - if (j > 0) - { - printf("[%s.locale] missing entry: %s\n", locale, locale_real_names[i]); - i++; - } - else - break; - } - if (j == 0) - { - localeData[i] = strdup(text.c_str()); - i++; - } - else - { - printf("[%s.locale] superfluous entry: %s\n", locale, buf); - } -#endif } } fclose(fd);