diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 1a9ae9a26..13a07b625 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1416,9 +1416,12 @@ options.off aus options.on ein options.on.without_messages ohne Msg options.serial seriell +parentallock.bouquetmode Bouquets sind standardmässig parentallock.changepin PIN-Code festlegen parentallock.changepin_hint1 Geben Sie hier Ihren neuen PIN-Code ein! parentallock.changetolocked Bei vorgeperrten Bouquets +parentallock.defaultlocked gesperrt +parentallock.defaultunlocked nicht gesperrt parentallock.head Jugendschutz PIN parentallock.lockage Sendungen parentallock.lockage12 ab 12 Jahren sperren diff --git a/data/locale/english.locale b/data/locale/english.locale index 866a9ff31..bfbc194fb 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1433,9 +1433,12 @@ options.off off options.on on options.on.without_messages Without msg options.serial serial +parentallock.bouquetmode Bouquets are default parentallock.changepin change PIN code parentallock.changepin_hint1 Enter your new youth protection pin code here! parentallock.changetolocked on locked bouquets +parentallock.defaultlocked locked +parentallock.defaultunlocked unlocked parentallock.head Enter Parental Lock PIN code parentallock.lockage lock program parentallock.lockage12 from 12 years up diff --git a/src/daemonc/remotecontrol.cpp b/src/daemonc/remotecontrol.cpp index dae21cb4d..ed0a96ca4 100644 --- a/src/daemonc/remotecontrol.cpp +++ b/src/daemonc/remotecontrol.cpp @@ -147,7 +147,7 @@ int CRemoteControl::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data is_video_started = true; if (channel) { current_channel_name = channel->getName(); - if (channel->bAlwaysLocked) + if (channel->bAlwaysLocked != g_settings.parentallock_defaultlocked) stopvideo(); } CVFD::getInstance()->showServicename(current_channel_name); // UTF-8 diff --git a/src/gui/bedit/bouqueteditor_bouquets.cpp b/src/gui/bedit/bouqueteditor_bouquets.cpp index 5b868a63d..076fc09b7 100644 --- a/src/gui/bedit/bouqueteditor_bouquets.cpp +++ b/src/gui/bedit/bouqueteditor_bouquets.cpp @@ -96,7 +96,7 @@ void CBEBouquetWidget::paintItem(int pos) if ((current == selected) && (state == beMoving)) frameBuffer->paintIcon(NEUTRINO_ICON_BUTTON_YELLOW, x + 10, ypos, iheight); - if ((*Bouquets)[current]->bLocked) + if ((*Bouquets)[current]->bLocked != g_settings.parentallock_defaultlocked) frameBuffer->paintIcon(NEUTRINO_ICON_LOCK, x + 10, ypos, iheight); if ((*Bouquets)[current]->bHidden) diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 4519e5392..61cf8d6c0 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -1231,7 +1231,7 @@ void CChannelList::zapToChannel(CZapitChannel *channel, bool force) } selected_chid = channel->getChannelID(); - g_RemoteControl->zapTo_ChannelID(channel->getChannelID(), channel->getName(), !channel->bAlwaysLocked); + g_RemoteControl->zapTo_ChannelID(selected_chid, channel->getName(), (channel->bAlwaysLocked == g_settings.parentallock_defaultlocked)); CNeutrinoApp::getInstance()->channelList->adjustToChannelID(channel->getChannelID()); } if(new_zap_mode != 2 /* not active */) { diff --git a/src/gui/parentallock_setup.cpp b/src/gui/parentallock_setup.cpp index 364dd9423..5260fbd97 100644 --- a/src/gui/parentallock_setup.cpp +++ b/src/gui/parentallock_setup.cpp @@ -88,6 +88,14 @@ const CMenuOptionChooser::keyval PARENTALLOCK_LOCKAGE_OPTIONS[PARENTALLOCK_LOCKA { 16, LOCALE_PARENTALLOCK_LOCKAGE16 }, { 18, LOCALE_PARENTALLOCK_LOCKAGE18 } }; + +#define PARENTALLOCK_DEFAULTLOCKED_OPTION_COUNT 2 +const CMenuOptionChooser::keyval PARENTALLOCK_DEFAULTLOCKED_OPTIONS[PARENTALLOCK_DEFAULTLOCKED_OPTION_COUNT] = +{ + { false, LOCALE_PARENTALLOCK_DEFAULTUNLOCKED }, + { true, LOCALE_PARENTALLOCK_DEFAULTLOCKED } +}; + extern bool parentallocked; void CParentalSetup::showParentalSetup() { @@ -109,6 +117,8 @@ void CParentalSetup::showParentalSetup() mc->setHint("", LOCALE_MENU_HINT_PARENTALLOCK_LOCKAGE); plock->addItem(mc); + plock->addItem(new CMenuOptionChooser(LOCALE_PARENTALLOCK_BOUQUETMODE, &g_settings.parentallock_defaultlocked, PARENTALLOCK_DEFAULTLOCKED_OPTIONS, PARENTALLOCK_DEFAULTLOCKED_OPTION_COUNT, !parentallocked)); + CPINChangeWidget pinChangeWidget(LOCALE_PARENTALLOCK_CHANGEPIN, g_settings.parentallock_pincode, 4, LOCALE_PARENTALLOCK_CHANGEPIN_HINT1); CMenuForwarder * mf = new CMenuForwarder(LOCALE_PARENTALLOCK_CHANGEPIN, true, g_settings.parentallock_pincode, &pinChangeWidget); mf->setHint("", LOCALE_MENU_HINT_PARENTALLOCK_CHANGEPIN); diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 726de248d..75cc800d7 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -674,6 +674,7 @@ int CNeutrinoApp::loadSetup(const char * fname) g_settings.parentallock_prompt = 3; g_settings.parentallock_lockage = 18; } + g_settings.parentallock_defaultlocked = configfile.getInt32("parentallock_defaultlocked", 0); strcpy( g_settings.parentallock_pincode, configfile.getString( "parentallock_pincode", "0000" ).c_str() ); for (int i = 0; i < SNeutrinoSettings::TIMING_SETTING_COUNT; i++) @@ -1096,6 +1097,7 @@ void CNeutrinoApp::saveSetup(const char * fname) configfile.setInt32( "parentallock_prompt", g_settings.parentallock_prompt ); configfile.setInt32( "parentallock_lockage", g_settings.parentallock_lockage ); configfile.setString( "parentallock_pincode", g_settings.parentallock_pincode ); + configfile.setInt32("parentallock_defaultlocked", g_settings.parentallock_defaultlocked); //timing for (int i = 0; i < SNeutrinoSettings::TIMING_SETTING_COUNT; i++) diff --git a/src/system/locals.h b/src/system/locals.h index 4b68b84dd..f36e1711d 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1460,9 +1460,12 @@ typedef enum LOCALE_OPTIONS_ON, LOCALE_OPTIONS_ON_WITHOUT_MESSAGES, LOCALE_OPTIONS_SERIAL, + LOCALE_PARENTALLOCK_BOUQUETMODE, LOCALE_PARENTALLOCK_CHANGEPIN, LOCALE_PARENTALLOCK_CHANGEPIN_HINT1, LOCALE_PARENTALLOCK_CHANGETOLOCKED, + LOCALE_PARENTALLOCK_DEFAULTLOCKED, + LOCALE_PARENTALLOCK_DEFAULTUNLOCKED, LOCALE_PARENTALLOCK_HEAD, LOCALE_PARENTALLOCK_LOCKAGE, LOCALE_PARENTALLOCK_LOCKAGE12, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 56cff6c3a..a46c998a5 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1460,9 +1460,12 @@ const char * locale_real_names[] = "options.on", "options.on.without_messages", "options.serial", + "parentallock.bouquetmode", "parentallock.changepin", "parentallock.changepin_hint1", "parentallock.changetolocked", + "parentallock.defaultlocked", + "parentallock.defaultunlocked", "parentallock.head", "parentallock.lockage", "parentallock.lockage12", diff --git a/src/system/settings.h b/src/system/settings.h index 1e3419f18..ae7ea7e21 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -475,6 +475,7 @@ struct SNeutrinoSettings // parentallock int parentallock_prompt; int parentallock_lockage; + int parentallock_defaultlocked; char parentallock_pincode[5];