From 70b3ef04f92d7f6f2d65ed7eab934beefcbe0af0 Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Tue, 29 Jan 2013 21:05:53 +0100 Subject: [PATCH] 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. --- src/zapit/src/bouquets.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/zapit/src/bouquets.cpp b/src/zapit/src/bouquets.cpp index 8a74c0a8f..f6f40259d 100644 --- a/src/zapit/src/bouquets.cpp +++ b/src/zapit/src/bouquets.cpp @@ -7,6 +7,8 @@ * rasc , * thegoodguy * + * (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