mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-30 00:41:17 +02:00
zapit/bouquets: count locked bouquets a channels is in, and honor lock in all bouquets
This commit is contained in:
@@ -147,7 +147,7 @@ int CRemoteControl::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data
|
|||||||
is_video_started = true;
|
is_video_started = true;
|
||||||
if (channel) {
|
if (channel) {
|
||||||
current_channel_name = channel->getName();
|
current_channel_name = channel->getName();
|
||||||
if (channel->bAlwaysLocked != g_settings.parentallock_defaultlocked)
|
if (!!channel->bAlwaysLocked != g_settings.parentallock_defaultlocked)
|
||||||
stopvideo();
|
stopvideo();
|
||||||
}
|
}
|
||||||
CVFD::getInstance()->showServicename(current_channel_name); // UTF-8
|
CVFD::getInstance()->showServicename(current_channel_name); // UTF-8
|
||||||
|
@@ -430,6 +430,16 @@ void CBEBouquetWidget::deleteBouquet()
|
|||||||
if (ShowMsg(LOCALE_FILEBROWSER_DELETE, (*Bouquets)[selected]->bFav ? g_Locale->getText(LOCALE_FAVORITES_BOUQUETNAME) : (*Bouquets)[selected]->Name, CMessageBox::mbrNo, CMessageBox::mbYes|CMessageBox::mbNo)!=CMessageBox::mbrYes)
|
if (ShowMsg(LOCALE_FILEBROWSER_DELETE, (*Bouquets)[selected]->bFav ? g_Locale->getText(LOCALE_FAVORITES_BOUQUETNAME) : (*Bouquets)[selected]->Name, CMessageBox::mbrNo, CMessageBox::mbYes|CMessageBox::mbNo)!=CMessageBox::mbrYes)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if ((*Bouquets)[selected]->bLocked) {
|
||||||
|
ZapitChannelList *channels = &(*Bouquets)[selected]->tvChannels;
|
||||||
|
for(unsigned int i = 0; i < channels->size(); i++)
|
||||||
|
((*channels)[i])->bAlwaysLocked--;
|
||||||
|
|
||||||
|
channels = &(*Bouquets)[selected]->radioChannels;
|
||||||
|
for(unsigned int i = 0; i < channels->size(); i++)
|
||||||
|
((*channels)[i])->bAlwaysLocked--;
|
||||||
|
}
|
||||||
|
|
||||||
g_bouquetManager->deleteBouquet(selected);
|
g_bouquetManager->deleteBouquet(selected);
|
||||||
Bouquets = &g_bouquetManager->Bouquets;
|
Bouquets = &g_bouquetManager->Bouquets;
|
||||||
if (selected >= Bouquets->size())
|
if (selected >= Bouquets->size())
|
||||||
@@ -520,6 +530,16 @@ void CBEBouquetWidget::switchLockBouquet()
|
|||||||
bouquetsChanged = true;
|
bouquetsChanged = true;
|
||||||
(*Bouquets)[selected]->bLocked = !(*Bouquets)[selected]->bLocked;
|
(*Bouquets)[selected]->bLocked = !(*Bouquets)[selected]->bLocked;
|
||||||
paint();
|
paint();
|
||||||
|
|
||||||
|
int add = (*Bouquets)[selected]->bLocked ? +1 : -1;
|
||||||
|
|
||||||
|
ZapitChannelList *channels = &(*Bouquets)[selected]->tvChannels;
|
||||||
|
for(unsigned int i = 0; i < channels->size(); i++)
|
||||||
|
((*channels)[i])->bAlwaysLocked += add;
|
||||||
|
|
||||||
|
channels = &(*Bouquets)[selected]->radioChannels;
|
||||||
|
for(unsigned int i = 0; i < channels->size(); i++)
|
||||||
|
((*channels)[i])->bAlwaysLocked += add;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string CBEBouquetWidget::inputName(const char * const defaultName, const neutrino_locale_t caption)
|
std::string CBEBouquetWidget::inputName(const char * const defaultName, const neutrino_locale_t caption)
|
||||||
|
@@ -352,7 +352,7 @@ int CChannelList::doChannelMenu(void)
|
|||||||
* a channel could be added/removed to/from an unlocked bouquet and so made
|
* a channel could be added/removed to/from an unlocked bouquet and so made
|
||||||
* accessible. */
|
* accessible. */
|
||||||
if (g_settings.parentallock_prompt == PARENTALLOCK_PROMPT_CHANGETOLOCKED &&
|
if (g_settings.parentallock_prompt == PARENTALLOCK_PROMPT_CHANGETOLOCKED &&
|
||||||
chanlist[selected]->bAlwaysLocked != g_settings.parentallock_defaultlocked)
|
!!chanlist[selected]->bAlwaysLocked != g_settings.parentallock_defaultlocked)
|
||||||
unlocked = (chanlist[selected]->last_unlocked_time + 3600 > time_monotonic());
|
unlocked = (chanlist[selected]->last_unlocked_time + 3600 > time_monotonic());
|
||||||
|
|
||||||
snprintf(cnt, sizeof(cnt), "%d", i);
|
snprintf(cnt, sizeof(cnt), "%d", i);
|
||||||
@@ -1083,7 +1083,7 @@ int CChannelList::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data)
|
|||||||
chanlist[selected]->last_unlocked_EPGid = g_RemoteControl->current_EPGid;
|
chanlist[selected]->last_unlocked_EPGid = g_RemoteControl->current_EPGid;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* data >= 0x100: pre locked bouquet -> remember unlock time */
|
/* data >= 0x100: pre-locked bouquet -> remember unlock time */
|
||||||
chanlist[selected]->last_unlocked_time = time_monotonic();
|
chanlist[selected]->last_unlocked_time = time_monotonic();
|
||||||
int bnum = bouquetList->getActiveBouquetNumber();
|
int bnum = bouquetList->getActiveBouquetNumber();
|
||||||
if (bnum >= 0)
|
if (bnum >= 0)
|
||||||
@@ -1298,7 +1298,7 @@ void CChannelList::zapToChannel(CZapitChannel *channel, bool force)
|
|||||||
}
|
}
|
||||||
|
|
||||||
selected_chid = channel->getChannelID();
|
selected_chid = channel->getChannelID();
|
||||||
g_RemoteControl->zapTo_ChannelID(selected_chid, channel->getName(), (channel->bAlwaysLocked == g_settings.parentallock_defaultlocked));
|
g_RemoteControl->zapTo_ChannelID(selected_chid, channel->getName(), (!!channel->bAlwaysLocked == g_settings.parentallock_defaultlocked));
|
||||||
CNeutrinoApp::getInstance()->channelList->adjustToChannelID(channel->getChannelID());
|
CNeutrinoApp::getInstance()->channelList->adjustToChannelID(channel->getChannelID());
|
||||||
}
|
}
|
||||||
if(new_zap_mode != 2 /* not active */) {
|
if(new_zap_mode != 2 /* not active */) {
|
||||||
|
@@ -178,7 +178,7 @@ class CZapitChannel
|
|||||||
} channel_flags_t;
|
} channel_flags_t;
|
||||||
casys_map_t camap;
|
casys_map_t camap;
|
||||||
|
|
||||||
bool bAlwaysLocked;
|
unsigned int bAlwaysLocked;
|
||||||
|
|
||||||
int number;
|
int number;
|
||||||
CChannelEvent currentEvent,nextEvent;
|
CChannelEvent currentEvent,nextEvent;
|
||||||
|
@@ -110,6 +110,8 @@ void CZapitBouquet::addService(CZapitChannel* newChannel)
|
|||||||
radioChannels.push_back(newChannel);
|
radioChannels.push_back(newChannel);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (bLocked)
|
||||||
|
newChannel->bAlwaysLocked++;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CZapitBouquet::removeService(CZapitChannel* oldChannel)
|
void CZapitBouquet::removeService(CZapitChannel* oldChannel)
|
||||||
@@ -128,6 +130,8 @@ void CZapitBouquet::removeService(CZapitChannel* oldChannel)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (bLocked)
|
||||||
|
oldChannel->bAlwaysLocked--;
|
||||||
(*channels).erase(remove(channels->begin(), channels->end(), oldChannel), channels->end());
|
(*channels).erase(remove(channels->begin(), channels->end(), oldChannel), channels->end());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -406,14 +410,12 @@ void CBouquetManager::parseBouquetsXml(const char *fname, bool bUser)
|
|||||||
if(!bUser)
|
if(!bUser)
|
||||||
chan->pname = (char *) newBouquet->Name.c_str();
|
chan->pname = (char *) newBouquet->Name.c_str();
|
||||||
|
|
||||||
chan->bAlwaysLocked = newBouquet->bLocked;
|
|
||||||
newBouquet->addService(chan);
|
newBouquet->addService(chan);
|
||||||
} else if (bUser) {
|
} else if (bUser) {
|
||||||
chan = new CZapitChannel(name2, CREATE_CHANNEL_ID64, 1 /*service_type*/,
|
chan = new CZapitChannel(name2, CREATE_CHANNEL_ID64, 1 /*service_type*/,
|
||||||
satellitePosition, freq);
|
satellitePosition, freq);
|
||||||
CServiceManager::getInstance()->AddChannel(chan);
|
CServiceManager::getInstance()->AddChannel(chan);
|
||||||
chan->flags = CZapitChannel::NOT_FOUND;
|
chan->flags = CZapitChannel::NOT_FOUND;
|
||||||
chan->bAlwaysLocked = newBouquet->bLocked;
|
|
||||||
newBouquet->addService(chan);
|
newBouquet->addService(chan);
|
||||||
CServiceManager::getInstance()->SetServicesChanged(false);
|
CServiceManager::getInstance()->SetServicesChanged(false);
|
||||||
}
|
}
|
||||||
|
@@ -69,6 +69,7 @@ void CZapitChannel::Init()
|
|||||||
polarization = 0;
|
polarization = 0;
|
||||||
flags = 0;
|
flags = 0;
|
||||||
deltype = FE_QPSK;
|
deltype = FE_QPSK;
|
||||||
|
bAlwaysLocked = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
CZapitChannel::~CZapitChannel(void)
|
CZapitChannel::~CZapitChannel(void)
|
||||||
|
Reference in New Issue
Block a user