mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-29 16:31:11 +02:00
zapit/src/channel.cpp: add bLocked flag to lock single channel
This commit is contained in:
@@ -151,7 +151,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->bLockCount != g_settings.parentallock_defaultlocked)
|
||||
if (channel->Locked() != g_settings.parentallock_defaultlocked)
|
||||
stopvideo();
|
||||
}
|
||||
CVFD::getInstance()->showServicename(current_channel_name); // UTF-8
|
||||
|
@@ -184,6 +184,7 @@ class CZapitChannel
|
||||
casys_map_t camap;
|
||||
|
||||
unsigned int bLockCount;
|
||||
bool bLocked;
|
||||
|
||||
int number;
|
||||
CChannelEvent currentEvent,nextEvent;
|
||||
@@ -275,6 +276,7 @@ class CZapitChannel
|
||||
{
|
||||
return (((uint64_t)(sat+freq*4) << 48) | ((uint64_t) tsid << 32) | ((uint64_t)onid << 16) | (uint64_t)sid);
|
||||
};
|
||||
bool Locked() { return (bLocked || !!bLockCount); }
|
||||
};
|
||||
|
||||
struct CmpChannelBySat: public std::binary_function <const CZapitChannel * const, const CZapitChannel * const, bool>
|
||||
|
@@ -412,6 +412,7 @@ void CBouquetManager::parseBouquetsXml(const char *fname, bool bUser)
|
||||
GET_ATTR(channel_node, "s", SCANF_SATELLITE_POSITION_TYPE, satellitePosition);
|
||||
GET_ATTR(channel_node, "t", SCANF_TRANSPORT_STREAM_ID_TYPE, transport_stream_id);
|
||||
GET_ATTR(channel_node, "frq", SCANF_SATELLITE_POSITION_TYPE, freq);
|
||||
bool clock = xmlGetNumericAttribute(channel_node, "l", 10);
|
||||
if(freq > 20000)
|
||||
freq = freq/1000;
|
||||
|
||||
@@ -431,6 +432,7 @@ void CBouquetManager::parseBouquetsXml(const char *fname, bool bUser)
|
||||
#endif
|
||||
if(!bUser)
|
||||
chan->pname = (char *) newBouquet->Name.c_str();
|
||||
chan->bLocked = clock;
|
||||
|
||||
newBouquet->addService(chan);
|
||||
} else if (bUser) {
|
||||
@@ -438,6 +440,7 @@ void CBouquetManager::parseBouquetsXml(const char *fname, bool bUser)
|
||||
satellitePosition, freq);
|
||||
CServiceManager::getInstance()->AddChannel(chan);
|
||||
chan->flags = CZapitChannel::NOT_FOUND;
|
||||
chan->bLocked = clock;
|
||||
newBouquet->addService(chan);
|
||||
CServiceManager::getInstance()->SetServicesChanged(false);
|
||||
}
|
||||
|
@@ -90,6 +90,7 @@ void CZapitChannel::Init()
|
||||
flags = 0;
|
||||
delsys = DVB_S;
|
||||
bLockCount = 0;
|
||||
bLocked = 0;
|
||||
}
|
||||
|
||||
CZapitChannel::~CZapitChannel(void)
|
||||
@@ -350,27 +351,27 @@ void CZapitChannel::dumpBouquetXml(FILE * fd)
|
||||
|
||||
if(write_names) {
|
||||
if (url.empty())
|
||||
fprintf(fd, "\t\t<S i=\"%x\" n=\"%s\" t=\"%x\" on=\"%x\" s=\"%hd\" frq=\"%hd\"/>\n",
|
||||
fprintf(fd, "\t\t<S i=\"%x\" n=\"%s\" t=\"%x\" on=\"%x\" s=\"%hd\" frq=\"%hd\" l=\"%d\"/>\n",
|
||||
getServiceId(),
|
||||
convert_UTF8_To_UTF8_XML(getName().c_str()).c_str(),
|
||||
getTransportStreamId(),
|
||||
getOriginalNetworkId(),
|
||||
getSatellitePosition(),
|
||||
getFreqId());
|
||||
getFreqId(), bLocked ? 1 : 0);
|
||||
else
|
||||
fprintf(fd, "\t\t<S n=\"%s\" u=\"%s\"/>\n",
|
||||
fprintf(fd, "\t\t<S n=\"%s\" u=\"%s\" l=\"%d\"/>\n",
|
||||
convert_UTF8_To_UTF8_XML(getName().c_str()).c_str(),
|
||||
convert_UTF8_To_UTF8_XML(url.c_str()).c_str());
|
||||
convert_UTF8_To_UTF8_XML(url.c_str()).c_str(), bLocked ? 1 : 0);
|
||||
} else {
|
||||
if (url.empty())
|
||||
fprintf(fd, "\t\t<S i=\"%x\" t=\"%x\" on=\"%x\" s=\"%hd\" frq=\"%hd\"/>\n",
|
||||
fprintf(fd, "\t\t<S i=\"%x\" t=\"%x\" on=\"%x\" s=\"%hd\" frq=\"%hd\" l=\"%d\"/>\n",
|
||||
getServiceId(),
|
||||
getTransportStreamId(),
|
||||
getOriginalNetworkId(),
|
||||
getSatellitePosition(),
|
||||
getFreqId());
|
||||
getFreqId(), bLocked ? 1 : 0);
|
||||
else
|
||||
fprintf(fd, "\t\t<S u=\"%s\"/>\n",
|
||||
convert_UTF8_To_UTF8_XML(url.c_str()).c_str());
|
||||
fprintf(fd, "\t\t<S u=\"%s\" l=\"%d\"/>\n",
|
||||
convert_UTF8_To_UTF8_XML(url.c_str()).c_str(), bLocked ? 1 : 0);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user