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

index cf71f78184f2bd495ad5e520f444c32ebbd29870,47511f781142876fcd14993d57e076a81e8d5216..2c84f7befd831318a15dca68f881241dc524512b
@@@ -189,6 -189,25 +189,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;
@@@ -640,31 -659,7 +659,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)