From 384ec65631b206a61a53ac12443008a310d71a7e Mon Sep 17 00:00:00 2001 From: focus Date: Mon, 26 Mar 2012 14:46:42 +0000 Subject: [PATCH 1/4] gui/widget/menue.cpp: add param delete_items to CMenuWidget::resetWidget, use resetWidget in destructor git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2161 e54a6e83-5905-42d5-8d5c-058d10e6a962 --- src/gui/widget/menue.cpp | 8 ++++++-- src/gui/widget/menue.h | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 8a45f39f3..87c74bae2 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -380,6 +380,7 @@ void CMenuWidget::move(int xoff, int yoff) CMenuWidget::~CMenuWidget() { +#if 0 for(unsigned int count=0;count Date: Mon, 26 Mar 2012 14:48:50 +0000 Subject: [PATCH 2/4] gui/user_menue_setup.cpp: use CMenuWidget::resetWidget(true) to fix memleaks git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2162 e54a6e83-5905-42d5-8d5c-058d10e6a962 --- src/gui/user_menue_setup.cpp | 9 ++------- src/gui/user_menue_setup.h | 1 - 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/gui/user_menue_setup.cpp b/src/gui/user_menue_setup.cpp index a2e371b16..d43b0a4b6 100644 --- a/src/gui/user_menue_setup.cpp +++ b/src/gui/user_menue_setup.cpp @@ -57,17 +57,13 @@ CUserMenuSetup::CUserMenuSetup(neutrino_locale_t menue_title, int menue_button) width = w_max (40, 10); pref_name = g_settings.usermenu_text[button]; //set current button name as prefered name ums = NULL; - mf = NULL; } CUserMenuSetup::~CUserMenuSetup() { delete ums; - if (mf != NULL) - delete mf; } - #define USERMENU_ITEM_OPTION_COUNT SNeutrinoSettings::ITEM_MAX const CMenuOptionChooser::keyval USERMENU_ITEM_OPTIONS[USERMENU_ITEM_OPTION_COUNT] = { @@ -114,15 +110,14 @@ int CUserMenuSetup::showSetup() }else{ //if widget not clean, ensure that we have an empty widget without any item and set the last selected item int sel = ums->getSelected(); - ums->resetWidget(); + ums->resetWidget(true); ums->setSelected(sel); } //CUserMenuNotifier *notify = new CUserMenuNotifier(); CStringInputSMS name(LOCALE_USERMENU_NAME, &g_settings.usermenu_text[button], 11, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzäöüß/- "/*, notify*/); - if (mf == NULL) - mf = new CMenuForwarder(LOCALE_USERMENU_NAME, true, g_settings.usermenu_text[button],&name); + CMenuForwarder * mf = new CMenuForwarder(LOCALE_USERMENU_NAME, true, g_settings.usermenu_text[button],&name); //------------------------------------- ums->addIntroItems(); diff --git a/src/gui/user_menue_setup.h b/src/gui/user_menue_setup.h index eb80bd486..5c04d9986 100644 --- a/src/gui/user_menue_setup.h +++ b/src/gui/user_menue_setup.h @@ -72,7 +72,6 @@ const struct usermenu_props_t usermenu[USERMENU_ITEMS_COUNT] = void checkButtonName(); CMenuWidget * ums; - CMenuForwarder *mf; public: CUserMenuSetup(neutrino_locale_t menue_title, int menue_button); From 107d65aafbfcb06737819869e39728ddcb7f1aea Mon Sep 17 00:00:00 2001 From: focus Date: Mon, 26 Mar 2012 15:27:46 +0000 Subject: [PATCH 3/4] gui/personalize.cpp: fix memleaks - delete all created CUserMenuSetup git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2163 e54a6e83-5905-42d5-8d5c-058d10e6a962 --- src/gui/personalize.cpp | 4 +++- src/gui/personalize.h | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gui/personalize.cpp b/src/gui/personalize.cpp index d5890e017..81897f0fd 100644 --- a/src/gui/personalize.cpp +++ b/src/gui/personalize.cpp @@ -330,6 +330,8 @@ int CPersonalizeGui::ShowPersonalizationMenu() delete pinChangeWidget; delete fkeyMenu; delete plMenu; + for(vector::iterator it = v_userMenuSetup.begin(); it != v_userMenuSetup.end(); ++it) + delete *it; v_userMenuSetup.clear(); delete user_menu_notifier; delete pin_setup_notifier; @@ -374,7 +376,7 @@ void CPersonalizeGui::ShowPreverredKeySetup(CMenuWidget* p_widget) //init usermenu items -void CPersonalizeGui::ShowUserMenu(CMenuWidget* p_widget, vector v_umenu) +void CPersonalizeGui::ShowUserMenu(CMenuWidget* p_widget, vector &v_umenu) { p_widget->addIntroItems(LOCALE_USERMENU_HEAD); diff --git a/src/gui/personalize.h b/src/gui/personalize.h index 869216b45..ff8f2cef7 100644 --- a/src/gui/personalize.h +++ b/src/gui/personalize.h @@ -162,7 +162,7 @@ class CPersonalizeGui : public CMenuTarget, public CChangeObserver, public CPINP void ShowMenuOptions(const int& menu); void ShowHelpPersonalize(); void ShowPinSetup(CMenuWidget* p_widget, CPINChangeWidget *pin_widget); - void ShowUserMenu(CMenuWidget* p_widget, std::vector v_umenu); + void ShowUserMenu(CMenuWidget* p_widget, std::vector &v_umenu); void ShowPluginMenu(CMenuWidget* p_widget); void ShowPreverredKeySetup(CMenuWidget* p_widget); void SaveAndExit(); From 6053772c6a3f15beef4b79b6ba406501408f075f Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 26 Mar 2012 17:22:31 +0400 Subject: [PATCH 4/4] src/zapit.cpp: move TP_params TP inside class, add method to start manual TP scan --- src/zapit/include/zapit/zapit.h | 2 ++ src/zapit/src/zapit.cpp | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/zapit/include/zapit/zapit.h b/src/zapit/include/zapit/zapit.h index 67c1032b2..4ee25b8f1 100644 --- a/src/zapit/include/zapit/zapit.h +++ b/src/zapit/include/zapit/zapit.h @@ -79,6 +79,7 @@ class CZapit : public OpenThreads::Thread CZapitChannel * current_channel; t_channel_id live_channel_id; + TP_params TP; audio_map_t audio_map; bool current_is_nvod; @@ -140,6 +141,7 @@ class CZapit : public OpenThreads::Thread bool PrepareChannels(); bool StartScan(int scan_mode); + bool StartScanTP(TP_params * TPparams); bool StartFastScan(int scan_mode, int opid); void addChannelToBouquet(const unsigned int bouquet, const t_channel_id channel_id); diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index 78e9bae00..8eade5cef 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -97,7 +97,7 @@ transponder_list_t transponders; CZapitClient::bouquetMode bouquetMode = CZapitClient::BM_UPDATEBOUQUETS; CZapitClient::scanType scanType = CZapitClient::ST_TVRADIO; -static TP_params TP; +//static TP_params TP; static bool update_pmt = true; /******************************************************************************/ @@ -701,6 +701,14 @@ bool CZapit::StartScan(int scan_mode) return true; } +bool CZapit::StartScanTP(TP_params * TPparams) +{ + PrepareScan(); + + CServiceScan::getInstance()->Start(CServiceScan::SCAN_TRANSPONDER, (void *) TPparams); + return true; +} + bool CZapit::StartFastScan(int scan_mode, int opid) { fast_scan_type_t scant; @@ -1059,8 +1067,11 @@ printf("[zapit] TP_id %d freq %d rate %d fec %d pol %d\n", TP.TP_id, TP.feparams //if(satellitePositions.find(current_channel->getSatellitePosition()) != satellitePositions.end()) current_channel = 0; } +#if 0 PrepareScan(); CServiceScan::getInstance()->Start(CServiceScan::SCAN_TRANSPONDER, (void *) &TP); +#endif + StartScanTP(&TP); break; }