fastscan: don't obey dxHoldName flags when useFixedServiceInfo is set
authorpieterg <pieterg@users.sourceforge.net>
Wed, 23 Dec 2009 15:43:40 +0000 (16:43 +0100)
committerpieterg <pieterg@users.sourceforge.net>
Wed, 23 Dec 2009 15:43:40 +0000 (16:43 +0100)
We used to obey dxHoldName, leading to the situation where we would set dxHoldName
ourselves, and then in the next run refuse to modify the service names because
we found the dxHoldName flag set.
To avoid this unrecoverable situation, we choose to ignore the dxHoldName flag,
whenever the fastscan is run with the 'useFixedServiceInfo' option.
In fact, the user has explicitly granted us permission to modify service names
in that case.
The default is still to run fastscan without 'useFixedServiceInfo', so fastscan
will never modify any service names, unless you tell it to.

lib/dvb/fastscan.cpp

index 73b31c0..d191f22 100644 (file)
@@ -501,12 +501,14 @@ void eFastScan::parseResult()
                {
                        if (useFixedServiceInfo)
                        {
-                               /* replace current settings by fastscan settings */
-                               if (!(dvb_service->m_flags & eDVBService::dxHoldName))
-                               {
-                                       dvb_service->m_service_name = service->second->m_service_name;
-                                       dvb_service->m_service_name_sort = service->second->m_service_name_sort;
-                               }
+                               /*
+                                * replace current settings by fastscan settings,
+                                * note that we don't obey the dxHoldName flag here,
+                                * as the user explicitly gave us permission to use
+                                * the fastscan names.
+                                */
+                               dvb_service->m_service_name = service->second->m_service_name;
+                               dvb_service->m_service_name_sort = service->second->m_service_name_sort;
                                dvb_service->m_provider_name = service->second->m_provider_name;
                        }
                        dvb_service->m_flags |= service->second->m_flags;