add return code
[enigma2.git] / lib / dvb / scan.cpp
index 11b4e7c603f40c444635054db22a4761fd31895a..2be8a66db0cc23b6ca559d9522b9c663ab052799 100644 (file)
@@ -11,6 +11,7 @@
 #include <lib/dvb/scan.h>
 #include <lib/dvb/frontend.h>
 #include <lib/base/eerror.h>
+#include <lib/base/estring.h>
 #include <errno.h>
 
 #define SCAN_eDebug(x...) eDebug(x)
@@ -68,11 +69,12 @@ void eDVBScan::stateChange(iDVBChannel *ch)
        {
                startFilter();
                m_channel_state = state;
-       } else if (state == iDVBChannel::state_unavailable)
+       } else if (state == iDVBChannel::state_failed)
        {
                m_ch_unavailable.push_back(m_ch_current);
                nextChannel();
        }
+                       /* unavailable will timeout, anyway. */
 }
 
 RESULT eDVBScan::nextChannel()
@@ -386,9 +388,9 @@ RESULT eDVBScan::processSDT(eDVBNamespace dvbnamespace, const ServiceDescription
                        case SERVICE_DESCRIPTOR:
                        {
                                ServiceDescriptor &d = (ServiceDescriptor&)**desc;
-                               SCAN_eDebug("name '%s', provider_name '%s'", d.getServiceName().c_str(), d.getServiceProviderName().c_str());
-                               service->m_service_name = d.getServiceName();
-                               service->m_provider_name = d.getServiceProviderName();
+                               service->m_service_name = convertDVBUTF8(d.getServiceName());
+                               service->m_provider_name = convertDVBUTF8(d.getServiceProviderName());
+                               SCAN_eDebug("name '%s', provider_name '%s'", service->m_service_name.c_str(), service->m_provider_name.c_str());
                                break;
                        }
                        case CA_IDENTIFIER_DESCRIPTOR: