From 17eb609c7af68e7589beeb04e7cced48e44aa071 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. Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/cd0896a35dbc123ebec5d09a2cf5f803b9df3c04 Author: Stefan Seyfried Date: 2013-01-29 (Tue, 29 Jan 2013) Origin message was: ------------------ 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, 4 insertions(+), 3 deletions(-) diff --git a/src/zapit/src/bouquets.cpp b/src/zapit/src/bouquets.cpp index 7cee4766c..f4c260fcb 100644 --- a/src/zapit/src/bouquets.cpp +++ b/src/zapit/src/bouquets.cpp @@ -7,7 +7,7 @@ * rasc , * thegoodguy * - * (C) 2009, 2011-2012 Stefan Seyfried + * (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 @@ -365,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