diff --git a/src/gui/Makefile.am b/src/gui/Makefile.am index 1527aa0d9..4d42ab11b 100644 --- a/src/gui/Makefile.am +++ b/src/gui/Makefile.am @@ -80,6 +80,7 @@ libneutrino_gui_a_SOURCES = \ settings_manager.cpp \ sleeptimer.cpp \ software_update.cpp \ + start_wizard.cpp \ streaminfo2.cpp \ subchannel_select.cpp \ test_menu.cpp \ diff --git a/src/gui/network_setup.cpp b/src/gui/network_setup.cpp index 19ab1cd6d..b4135cc70 100644 --- a/src/gui/network_setup.cpp +++ b/src/gui/network_setup.cpp @@ -42,6 +42,7 @@ #include #include #include +#include #include #include @@ -72,6 +73,17 @@ CNetworkSetup::~CNetworkSetup() //delete networkConfig; } +CNetworkSetup* CNetworkSetup::getInstance() +{ + static CNetworkSetup* me = NULL; + + if(!me) { + me = new CNetworkSetup(); + dprintf(DEBUG_DEBUG, "CNetworkSetup Instance created\n"); + } + return me; +} + int CNetworkSetup::exec(CMenuTarget* parent, const std::string &actionKey) { int res = menu_return::RETURN_REPAINT; diff --git a/src/gui/network_setup.h b/src/gui/network_setup.h index 1c8a08c1b..7e17e2816 100644 --- a/src/gui/network_setup.h +++ b/src/gui/network_setup.h @@ -32,7 +32,6 @@ #define __network_setup__ #include -#include #include #include @@ -123,6 +122,8 @@ class CNetworkSetup : public CMenuTarget, CChangeObserver CNetworkSetup(bool wizard_mode = N_SETUP_MODE_WIZARD_NO); ~CNetworkSetup(); + static CNetworkSetup* getInstance(); + bool getWizardMode() {return is_wizard;}; void setWizardMode(bool mode); diff --git a/src/gui/start_wizard.cpp b/src/gui/start_wizard.cpp new file mode 100644 index 000000000..79b7168d3 --- /dev/null +++ b/src/gui/start_wizard.cpp @@ -0,0 +1,124 @@ +/* + Neutrino-GUI - Tuxbox-Project + Copyright (C) 2001 Steffen Hehn 'McClean' + http://www.tuxbox.org + + Startup wizard + based upon an implementation created by + Copyright (C) 2009 CoolStream International Ltd. + + Reworked by dbt (Thilo Graf) + Copyright (C) 2012 dbt + http://www.dbox2-tuning.net + + License: GPL + + This software is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + Boston, MA 02110-1301, USA. + + NOTE for ignorant distributors: + It's not allowed to distribute any compiled parts of this code, if you don't accept the terms of GPL. + Please read it and understand it right! + This means for you: Hold it, if not, leave it! You could face legal action! + Otherwise ask the copyright owners, anything else would be theft! +*/ + + +#include "start_wizard.h" + +#include +#include +#include + +#include "network_setup.h" +#include "osd_setup.h" +#include "osdlang_setup.h" +#include "scan_setup.h" + +#include + +#include + +extern cVideo * videoDecoder; +using namespace std; + + +CStartUpWizard::CStartUpWizard() +{ + +} + +CStartUpWizard::~CStartUpWizard() +{ + +} + +int CStartUpWizard::exec(CMenuTarget* parent, const string & /*actionKey*/) +{ + int res = menu_return::RETURN_REPAINT; + showBackgroundLogo(); + + if (parent) + parent->hide(); + + COsdLangSetup languageSettings(COsdLangSetup::OSDLANG_SETUP_MODE_WIZARD); + + languageSettings.exec(NULL, ""); + + if(ShowMsgUTF (LOCALE_WIZARD_WELCOME_HEAD, g_Locale->getText(LOCALE_WIZARD_WELCOME_TEXT), CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbrCancel) == CMessageBox::mbrYes) + { + //open video settings in wizardmode + g_videoSettings->setWizardMode(CVideoSettings::V_SETUP_MODE_WIZARD); + + COsdSetup osdSettings(COsdSetup::OSD_SETUP_MODE_WIZARD); + + res = g_videoSettings->exec(NULL, ""); + g_videoSettings->setWizardMode(CVideoSettings::V_SETUP_MODE_WIZARD_NO); + + if(res != menu_return::RETURN_EXIT_ALL) + { + res = osdSettings.exec(NULL, ""); + } + if(res != menu_return::RETURN_EXIT_ALL) + { + CNetworkSetup::getInstance()->setWizardMode(CNetworkSetup::N_SETUP_MODE_WIZARD); + res = CNetworkSetup::getInstance()->exec(NULL, ""); + CNetworkSetup::getInstance()->setWizardMode(CNetworkSetup::N_SETUP_MODE_WIZARD_NO); + } + if(res != menu_return::RETURN_EXIT_ALL) + { + CScanSetup::getInstance()->setWizardMode(CScanSetup::SCAN_SETUP_MODE_WIZARD); + res = CScanSetup::getInstance()->exec(NULL, ""); + CScanSetup::getInstance()->setWizardMode(CScanSetup::SCAN_SETUP_MODE_WIZARD_NO); + } + } + + + + killBackgroundLogo(); + return res; +} + + +inline void CStartUpWizard::showBackgroundLogo() +{ + videoDecoder->ShowPicture(DATADIR "/neutrino/icons/start.jpg"); +} + +inline void CStartUpWizard::killBackgroundLogo() +{ + videoDecoder->StopPicture(); +} + diff --git a/src/gui/start_wizard.h b/src/gui/start_wizard.h new file mode 100644 index 000000000..2fbafcb6a --- /dev/null +++ b/src/gui/start_wizard.h @@ -0,0 +1,59 @@ +/* + Neutrino-GUI - Tuxbox-Project + Copyright (C) 2001 Steffen Hehn 'McClean' + http://www.tuxbox.org + + Startup wizard + based upon an implementation created by + Copyright (C) 2009 CoolStream International Ltd. + + Reworked by dbt (Thilo Graf) + Copyright (C) 2012 dbt + http://www.dbox2-tuning.net + + License: GPL + + This software is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + Boston, MA 02110-1301, USA. + + NOTE for ignorant distributors: + It's not allowed to distribute any compiled parts of this code, if you don't accept the terms of GPL. + Please read it and understand it right! + This means for you: Hold it, if not, leave it! You could face legal action! + Otherwise ask the copyright owners, anything else would be theft! +*/ + +#ifndef __start_wizard__ +#define __start_wizard__ + +#include +#include +#include + + +class CStartUpWizard : public CMenuTarget +{ + private: + void showBackgroundLogo(); + void killBackgroundLogo(); + public: + CStartUpWizard(); + ~CStartUpWizard(); + + int exec(CMenuTarget* parent, const std::string & actionKey); +}; + + +#endif diff --git a/src/gui/test_menu.cpp b/src/gui/test_menu.cpp index 783468139..829ec31a0 100644 --- a/src/gui/test_menu.cpp +++ b/src/gui/test_menu.cpp @@ -49,6 +49,7 @@ #include "gui/scan.h" #include "gui/scan_setup.h" #include +#include extern int cs_test_card(int unit, char * str); diff --git a/src/gui/user_menue_setup.cpp b/src/gui/user_menue_setup.cpp index 2f14b2c87..a2e371b16 100644 --- a/src/gui/user_menue_setup.cpp +++ b/src/gui/user_menue_setup.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 898275ec1..3aaa5a6e7 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -75,6 +75,7 @@ #include "gui/plugins.h" #include "gui/rc_lock.h" #include "gui/scan_setup.h" +#include "gui/start_wizard.h" #include "gui/timerlist.h" #include "gui/videosettings.h" @@ -228,7 +229,6 @@ CNeutrinoApp::CNeutrinoApp() channelList = NULL; TVchannelList = NULL; RADIOchannelList = NULL; - networksetup = NULL; skipShutdownTimer = false; current_muted = 0; recordingstatus = 0; @@ -1623,20 +1623,17 @@ int CNeutrinoApp::run(int argc, char **argv) int loadSettingsErg = loadSetup(NEUTRINO_SETTINGS_FILE); - bool display_language_selection; - initialize_iso639_map(); + bool show_startwizard = false; CLocaleManager::loadLocale_ret_t loadLocale_ret = g_Locale->loadLocale(g_settings.language); if (loadLocale_ret == CLocaleManager::NO_SUCH_LOCALE) { strcpy(g_settings.language, "english"); loadLocale_ret = g_Locale->loadLocale(g_settings.language); - display_language_selection = true; + show_startwizard = true; } - else - display_language_selection = false; - + SetupFonts(); SetupTiming(); g_PicViewer = new CPictureViewer(); @@ -1687,9 +1684,6 @@ int CNeutrinoApp::run(int argc, char **argv) // trigger a change audioSetupNotifier->changeNotify(LOCALE_AUDIOMENU_AVSYNC, NULL); - if(display_language_selection) - videoDecoder->ShowPicture(DATADIR "/neutrino/icons/start.jpg"); - powerManager = new cPowerManager; if (powerManager) { @@ -1841,41 +1835,10 @@ int CNeutrinoApp::run(int argc, char **argv) g_Timerd->registerEvent(CTimerdClient::EVT_EXEC_PLUGIN, 222, NEUTRINO_UDS_NAME); - if (display_language_selection) - { - COsdLangSetup languageSettings(COsdLangSetup::OSDLANG_SETUP_MODE_WIZARD); + if (show_startwizard) { hintBox->hide(); - - languageSettings.exec(NULL, ""); - - if(ShowMsgUTF (LOCALE_WIZARD_WELCOME_HEAD, g_Locale->getText(LOCALE_WIZARD_WELCOME_TEXT), CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbrCancel) == CMessageBox::mbrYes) - { - //open video settings in wizardmode - g_videoSettings->setWizardMode(CVideoSettings::V_SETUP_MODE_WIZARD); - - COsdSetup osdSettings(COsdSetup::OSD_SETUP_MODE_WIZARD); - - bool ret = g_videoSettings->exec(NULL, ""); - g_videoSettings->setWizardMode(CVideoSettings::V_SETUP_MODE_WIZARD_NO); - - if(ret != menu_return::RETURN_EXIT_ALL) - { - ret = osdSettings.exec(NULL, ""); - } - if(ret != menu_return::RETURN_EXIT_ALL) - { - networksetup->setWizardMode(CNetworkSetup::N_SETUP_MODE_WIZARD); - ret = networksetup->exec(NULL, ""); - networksetup->setWizardMode(CNetworkSetup::N_SETUP_MODE_WIZARD_NO); - } - if(ret != menu_return::RETURN_EXIT_ALL) - { - CScanSetup::getInstance()->setWizardMode(CScanSetup::SCAN_SETUP_MODE_WIZARD); - ret = CScanSetup::getInstance()->exec(NULL, ""); - CScanSetup::getInstance()->setWizardMode(CScanSetup::SCAN_SETUP_MODE_WIZARD_NO); - } - } - videoDecoder->StopPicture(); + CStartUpWizard startwizard; + startwizard.exec(NULL, ""); } if(loadSettingsErg) { diff --git a/src/neutrino.h b/src/neutrino.h index 6c2f81b5a..78f9bbf55 100644 --- a/src/neutrino.h +++ b/src/neutrino.h @@ -40,7 +40,6 @@ #include #include #include -#include #include #include /* CChannelList */ #include @@ -125,7 +124,6 @@ private: bool skipShutdownTimer; bool pbBlinkChange; CColorSetupNotifier *colorSetupNotifier; - CNetworkSetup *networksetup; CMoviePluginChangeExec *MoviePluginChanger; COnekeyPluginChangeExec *OnekeyPluginChanger; CIPChangeNotifier *MyIPChanger; diff --git a/src/neutrino_menue.cpp b/src/neutrino_menue.cpp index c1ae615ae..f3fee8895 100644 --- a/src/neutrino_menue.cpp +++ b/src/neutrino_menue.cpp @@ -62,6 +62,7 @@ #include "gui/miscsettings_menu.h" #include "gui/motorcontrol.h" #include "gui/movieplayer.h" +#include #include "gui/osd_setup.h" #include "gui/osdlang_setup.h" #include "gui/parentallock_setup.h" @@ -259,9 +260,7 @@ void CNeutrinoApp::InitMenuSettings() personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_PARENTALLOCK_PARENTALLOCK, true, NULL, new CParentalSetup()), &show, false, CPersonalizeGui::PERSONALIZE_SHOW_NO); // network - if(networksetup == NULL) - networksetup = new CNetworkSetup(); - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_MAINSETTINGS_NETWORK, true, NULL, networksetup), &g_settings.personalize[SNeutrinoSettings::P_MSET_NETWORK]); + personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_MAINSETTINGS_NETWORK, true, NULL, CNetworkSetup::getInstance()), &g_settings.personalize[SNeutrinoSettings::P_MSET_NETWORK]); // record settings personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_MAINSETTINGS_RECORDING, true, NULL, new CRecordSetup()), &g_settings.personalize[SNeutrinoSettings::P_MSET_RECORDING]);