Merge remote branch 'origin/bug_306_sort_by_date' into experimental
authorghost <andreas.monzner@multimedia-labs.de>
Sat, 2 Jan 2010 10:03:34 +0000 (11:03 +0100)
committerghost <andreas.monzner@multimedia-labs.de>
Sat, 2 Jan 2010 10:03:34 +0000 (11:03 +0100)
1  2 
lib/service/servicemp3.cpp

@@@ -46,7 -46,6 +46,7 @@@ eServiceFactoryMP3::eServiceFactoryMP3(
                extensions.push_back("mp4");
                extensions.push_back("mov");
                extensions.push_back("m4a");
 +              extensions.push_back("m2ts");
                sc->addServiceFactory(eServiceFactoryMP3::id, this, extensions);
        }
  
@@@ -190,6 -189,25 +190,25 @@@ int eStaticServiceMP3Info::getLength(co
        return -1;
  }
  
+ int eStaticServiceMP3Info::getInfo(const eServiceReference &ref, int w)
+ {
+       switch (w)
+       {
+       case iServiceInformation::sTimeCreate:
+       {
+               struct stat s;
+               if(stat(ref.path.c_str(), &s) == 0)
+               {
+                 return s.st_mtime;
+               }
+               return iServiceInformation::resNA;
+       }
+       default: break;
+       }
+       return iServiceInformation::resNA;
+ }
+  
  // eServiceMP3
  int eServiceMP3::ac3_delay,
      eServiceMP3::pcm_delay;
@@@ -641,31 -659,7 +660,31 @@@ RESULT eServiceMP3::setTrickmode(int tr
  
  RESULT eServiceMP3::isCurrentlySeekable()
  {
 -      return 1;
 +      int ret = 3; // seeking and fast/slow winding possible
 +      GstElement *sink;
 +
 +      if (!m_gst_playbin)
 +              return 0;
 +      if (m_state != stRunning)
 +              return 0;
 +
 +      g_object_get (G_OBJECT (m_gst_playbin), "video-sink", &sink, NULL);
 +
 +      // disable fast winding yet when a dvbvideosink or dvbaudiosink is used
 +      // for this we must do some changes on different places.. (gstreamer.. our sinks.. enigma2)
 +      if (sink) {
 +              ret &= ~2; // only seeking possible
 +              gst_object_unref(sink);
 +      }
 +      else {
 +              g_object_get (G_OBJECT (m_gst_playbin), "audio-sink", &sink, NULL);
 +              if (sink) {
 +                      ret &= ~2; // only seeking possible
 +                      gst_object_unref(sink);
 +              }
 +      }
 +
 +      return ret;
  }
  
  RESULT eServiceMP3::info(ePtr<iServiceInformation>&i)