db.cpp : 'Load Bouquets' support for non dvb services.
authorChang.H.S <jhs@dev3>
Fri, 29 Jun 2012 05:35:26 +0000 (14:35 +0900)
committerChang.H.S <jhs@dev3>
Fri, 29 Jun 2012 09:15:41 +0000 (18:15 +0900)
sevvice.cpp : fix eServiceReference parsing..
servicemp3.cpp : streaming service is not seekable.

lib/dvb/db.cpp
lib/service/service.cpp [changed mode: 0644->0755]
lib/service/servicemp3.cpp

index 0547407..f938cb1 100644 (file)
@@ -651,11 +651,6 @@ void eDVBDB::loadBouquet(const char *path)
                        {
                                int offs = line[8] == ':' ? 10 : 9;
                                eServiceReference tmp(line+offs);
                        {
                                int offs = line[8] == ':' ? 10 : 9;
                                eServiceReference tmp(line+offs);
-                               if (tmp.type != eServiceReference::idDVB)
-                               {
-                                       eDebug("only DVB Bouquets supported");
-                                       continue;
-                               }
                                if ( tmp.flags&eServiceReference::canDescent )
                                {
                                        size_t pos = tmp.path.rfind('/');
                                if ( tmp.flags&eServiceReference::canDescent )
                                {
                                        size_t pos = tmp.path.rfind('/');
old mode 100644 (file)
new mode 100755 (executable)
index 11cf95b..77bfda9
@@ -65,11 +65,18 @@ eServiceReference::eServiceReference(const std::string &string)
                if ( sscanf(c, "%d:%d:%x:%x:%x:%x:%n", &type, &flags, &data[0], &data[1], &data[2], &data[3], &pathl) < 2 )
                        type = idInvalid;
        }
                if ( sscanf(c, "%d:%d:%x:%x:%x:%x:%n", &type, &flags, &data[0], &data[1], &data[2], &data[3], &pathl) < 2 )
                        type = idInvalid;
        }
-
        if (pathl)
        {
                const char *pathstr = c+pathl;
        if (pathl)
        {
                const char *pathstr = c+pathl;
-               const char *namestr = strchr(pathstr, ':');
+               const char *namestr = NULL;
+               int found = strlen(pathstr)-1;
+               for(;found >= 0;found--)
+               {
+                       if(pathstr[found] == ':')
+                               break;
+               }
+               if (found != -1)
+                       namestr = pathstr + found;
                if (namestr)
                {
                        if (!strncmp(namestr, "://", 3)) // The path is a url (e.g. "http://...")
                if (namestr)
                {
                        if (!strncmp(namestr, "://", 3)) // The path is a url (e.g. "http://...")
index edcc42a..6aac29e 100644 (file)
@@ -696,6 +696,8 @@ RESULT eServiceMP3::isCurrentlySeekable()
                return 0;
        if (m_state != stRunning)
                return 0;
                return 0;
        if (m_state != stRunning)
                return 0;
+       if (m_sourceinfo.is_streaming)
+               return 0;
 
        g_object_get (G_OBJECT (m_gst_playbin), "video-sink", &sink, NULL);
 
 
        g_object_get (G_OBJECT (m_gst_playbin), "video-sink", &sink, NULL);