neutrino: add the possibility to lock bouquets by default

This basically inverts the "locked" attribute of bouquets.xml and
allows to selectively enable only favourites or similar.


Origin commit data
------------------
Branch: ni/coolstream
Commit: 3999e8d0e2
Author: Stefan Seyfried <seife@tuxbox-git.slipkontur.de>
Date: 2011-10-30 (Sun, 30 Oct 2011)



------------------
This commit was generated by Migit
This commit is contained in:
Stefan Seyfried
2011-10-30 11:53:44 +01:00
parent a46910dd27
commit af6edcdc68
10 changed files with 29 additions and 4 deletions

View File

@@ -149,7 +149,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

View File

@@ -106,7 +106,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)

View File

@@ -1191,7 +1191,7 @@ void CChannelList::zapTo(int pos, bool /* forceStoreToLastChannels */)
tuned = pos;
CVFD::getInstance()->setEPGTitle("");
CVFD::getInstance()->showServicename(chan->name);
g_RemoteControl->zapTo_ChannelID(chan->channel_id, chan->name, !chan->bAlwaysLocked); // UTF-8
g_RemoteControl->zapTo_ChannelID(chan->channel_id, chan->name, (chan->bAlwaysLocked == g_settings.parentallock_defaultlocked));
// TODO check is it possible bouquetList is NULL ?
if (bouquetList != NULL) {
CNeutrinoApp::getInstance()->channelList->adjustToChannelID(chan->channel_id);
@@ -1231,7 +1231,7 @@ void CChannelList::NewZap(t_channel_id channel_id)
CVFD::getInstance()->setEPGTitle("");
CVFD::getInstance()->showServicename(chan->name);
selected_chid = chan->getChannelID();
g_RemoteControl->zapTo_ChannelID(chan->getChannelID(), chan->name, !chan->bAlwaysLocked);
g_RemoteControl->zapTo_ChannelID(selected_chid, chan->name, (chan->bAlwaysLocked == g_settings.parentallock_defaultlocked));
/* remove recordModeActive from infobar */
if(g_settings.auto_timeshift && !CNeutrinoApp::getInstance()->recordingstatus) {
g_InfoViewer->handleMsg(NeutrinoMessages::EVT_RECORDMODE, 0);

View File

@@ -87,6 +87,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()
{
@@ -103,6 +111,8 @@ void CParentalSetup::showParentalSetup()
plock->addItem(new CMenuOptionChooser(LOCALE_PARENTALLOCK_LOCKAGE, &g_settings.parentallock_lockage, PARENTALLOCK_LOCKAGE_OPTIONS, PARENTALLOCK_LOCKAGE_OPTION_COUNT, !parentallocked));
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);
plock->addItem( new CMenuForwarder(LOCALE_PARENTALLOCK_CHANGEPIN, true, g_settings.parentallock_pincode, &pinChangeWidget));

View File

@@ -670,6 +670,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++)
@@ -1067,6 +1068,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++)

View File

@@ -1012,9 +1012,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,

View File

@@ -1012,9 +1012,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",

View File

@@ -450,6 +450,7 @@ struct SNeutrinoSettings
// parentallock
int parentallock_prompt;
int parentallock_lockage;
int parentallock_defaultlocked;
char parentallock_pincode[5];