bouquets: fix ubouquet generation for broken services

Services with duplicate tsid/onid/sid like found e.g. on "8W Atlantic
Bird 2", "12.5W Atlantic Bird 1", "4.8E Sirius", "7E Eutelsat" caused
wrong bouquet entries because the satellite position and transponder
frequency was not used to distinguish the channels.  Use the new
FindChannelFuzzy() function to fix this.
This commit is contained in:
Stefan Seyfried
2013-01-29 21:05:53 +01:00
committed by micha-bbg
parent 536484f698
commit 70b3ef04f9

View File

@@ -7,6 +7,8 @@
* rasc <rasc@berlios.de>,
* thegoodguy <thegoodguy@berlios.de>
*
* (C) 2009, 2011, 2013 Stefan Seyfried
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -363,10 +365,11 @@ void CBouquetManager::parseBouquetsXml(const char *fname, bool bUser)
freq = freq/1000;
CZapitChannel* chan;
t_channel_id chid = CREATE_CHANNEL_ID64;
if(bUser)
chan = CServiceManager::getInstance()->FindChannel48(CREATE_CHANNEL_ID64);
chan = CServiceManager::getInstance()->FindChannelFuzzy(chid, satellitePosition, freq);
else
chan = CServiceManager::getInstance()->FindChannel(CREATE_CHANNEL_ID64);
chan = CServiceManager::getInstance()->FindChannel(chid);
if (chan != NULL) {
DBG("%04x %04x %04x %s\n", transport_stream_id, original_network_id, service_id, xmlGetAttribute(channel_node, "n"));
#if 0