From 8e16ebd4d5a3bb2c9d3b82e5f7ba8ed552fe40d5 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 ------------------ Branch: ni/coolstream 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. ------------------ This commit was generated by Migit --- 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