mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-09-01 01:41:23 +02:00
zapit/src/getservices.cpp: on load, check getServiceType() not real type
This commit is contained in:
@@ -358,8 +358,6 @@ void CServiceManager::ParseChannels(xmlNodePtr node, const t_transport_stream_id
|
|||||||
uint16_t scrambled = xmlGetNumericAttribute(node, "s", 16);
|
uint16_t scrambled = xmlGetNumericAttribute(node, "s", 16);
|
||||||
int number = xmlGetNumericAttribute(node, "num", 10);
|
int number = xmlGetNumericAttribute(node, "num", 10);
|
||||||
|
|
||||||
service_number_map_t * channel_numbers = (service_type == ST_DIGITAL_RADIO_SOUND_SERVICE) ? &radio_numbers : &tv_numbers;
|
|
||||||
|
|
||||||
t_channel_id chid = CREATE_CHANNEL_ID64;
|
t_channel_id chid = CREATE_CHANNEL_ID64;
|
||||||
char *ptr = xmlGetAttribute(node, "action");
|
char *ptr = xmlGetAttribute(node, "action");
|
||||||
bool remove = ptr ? (!strcmp(ptr, "remove") || !strcmp(ptr, "replace")) : false;
|
bool remove = ptr ? (!strcmp(ptr, "remove") || !strcmp(ptr, "replace")) : false;
|
||||||
@@ -380,6 +378,8 @@ void CServiceManager::ParseChannels(xmlNodePtr node, const t_transport_stream_id
|
|||||||
CZapitChannel * channel = new CZapitChannel(name, chid, service_type,
|
CZapitChannel * channel = new CZapitChannel(name, chid, service_type,
|
||||||
satellitePosition, freq);
|
satellitePosition, freq);
|
||||||
|
|
||||||
|
service_number_map_t * channel_numbers = (service_type == ST_DIGITAL_RADIO_SOUND_SERVICE) ? &radio_numbers : &tv_numbers;
|
||||||
|
|
||||||
if(number) {
|
if(number) {
|
||||||
have_numbers = true;
|
have_numbers = true;
|
||||||
service_number_map_t::iterator it = channel_numbers->find(number);
|
service_number_map_t::iterator it = channel_numbers->find(number);
|
||||||
@@ -387,6 +387,7 @@ void CServiceManager::ParseChannels(xmlNodePtr node, const t_transport_stream_id
|
|||||||
printf("[zapit] duplicate channel number %d: %s id %llx freq %d\n", number,
|
printf("[zapit] duplicate channel number %d: %s id %llx freq %d\n", number,
|
||||||
name.c_str(), chid, freq);
|
name.c_str(), chid, freq);
|
||||||
number = 0;
|
number = 0;
|
||||||
|
services_changed = true;
|
||||||
} else
|
} else
|
||||||
channel_numbers->insert(number);
|
channel_numbers->insert(number);
|
||||||
}
|
}
|
||||||
@@ -402,7 +403,8 @@ void CServiceManager::ParseChannels(xmlNodePtr node, const t_transport_stream_id
|
|||||||
channel->scrambled = scrambled;
|
channel->scrambled = scrambled;
|
||||||
channel->polarization = polarization;
|
channel->polarization = polarization;
|
||||||
service_type = channel->getServiceType();
|
service_type = channel->getServiceType();
|
||||||
if(pmtpid != 0 && (((service_type == 2) && (apid > 0)) || ( (service_type == 1) && (vpid > 0) && (apid > 0))) ) {
|
if(pmtpid != 0 && (((channel->getServiceType() == ST_DIGITAL_RADIO_SOUND_SERVICE) && (apid > 0))
|
||||||
|
|| ( (channel->getServiceType() == ST_DIGITAL_TELEVISION_SERVICE) && (vpid > 0) && (apid > 0))) ) {
|
||||||
DBG("[getserv] preset chan %s vpid %X sid %X tpid %X onid %X\n", name.c_str(), vpid, service_id, transport_stream_id, transport_stream_id);
|
DBG("[getserv] preset chan %s vpid %X sid %X tpid %X onid %X\n", name.c_str(), vpid, service_id, transport_stream_id, transport_stream_id);
|
||||||
channel->setVideoPid(vpid);
|
channel->setVideoPid(vpid);
|
||||||
channel->setAudioPid(apid);
|
channel->setAudioPid(apid);
|
||||||
|
Reference in New Issue
Block a user