Преглед изворни кода

disable length workaround for miles 6.5

cxgeorge пре 23 година
родитељ
комит
194118d3d4
2 измењених фајлова са 26 додато и 19 уклоњено
  1. 22 14
      panda/src/audiotraits/milesAudioSound.cxx
  2. 4 5
      panda/src/audiotraits/milesAudioSound.h

+ 22 - 14
panda/src/audiotraits/milesAudioSound.cxx

@@ -1,6 +1,5 @@
 // Filename: milesAudioSound.cxx
 // Created by:  skyler (June 6, 2001)
-// Prior system by: cary
 //
 ////////////////////////////////////////////////////////////////////
 //
@@ -23,6 +22,10 @@
 #include "milesAudioSound.h"
 #include "milesAudioManager.h"
 
+#if (MSS_MAJOR_VERSION <= 6) && (MSS_MINOR_VERSION < 5)
+#define NEED_MILES_LENGTH_WORKAROUND
+#endif
+
 #ifndef NDEBUG //[
   namespace {
     char
@@ -229,19 +232,24 @@ get_balance() const {
 
 float MilesAudioSound::
 length() const {
-  // hack:
-  // For now, the sound needs to be playing, in order to
-  // get the right length.  I'm in contact with RAD about the problem.  I've
-  // sent them example code.  They've told me they're looking into it.
-  // Until then, we'll play the sound to get the length.
-  if (!_length) {
-    if (AIL_quick_status(_audio)==QSTAT_PLAYING) {
-      _length=((float)AIL_quick_ms_length(_audio))*0.001f;
-    } else {
-      AIL_quick_play(_audio, 1);
-      _length=((float)AIL_quick_ms_length(_audio))*0.001f;
-      AIL_quick_halt(_audio);
-    }
+  if (_length == 0.0f) {
+   #ifndef NEED_MILES_LENGTH_WORKAROUND
+        _length=((float)AIL_quick_ms_length(_audio))*0.001f;   
+   #else
+        // hack:
+        // For now, the sound needs to be playing, in order to
+        // get the right length.  I'm in contact with RAD about the problem.  I've
+        // sent them example code.  They've told me they're looking into it.
+        // Until then, we'll play the sound to get the length.
+   
+        if (AIL_quick_status(_audio)==QSTAT_PLAYING) {
+          _length=((float)AIL_quick_ms_length(_audio))*0.001f;
+        } else {
+          AIL_quick_play(_audio, 1);
+          _length=((float)AIL_quick_ms_length(_audio))*0.001f;
+          AIL_quick_halt(_audio);
+        }
+   #endif
   }
   audio_debug("MilesAudioSound::length() returning "<<_length);
   return _length;

+ 4 - 5
panda/src/audiotraits/milesAudioSound.h

@@ -27,7 +27,6 @@
 #include "milesAudioManager.h"
 #include "mss.h"
 
-
 class EXPCL_MILES_AUDIO MilesAudioSound : public AudioSound {
 public:
   ~MilesAudioSound();
@@ -51,19 +50,19 @@ public:
   
   // 0 = begining; length() = end.
   // inits to 0.0.
-  void set_time(float start_time=0.0);
+  void set_time(float start_time=0.0f);
   float get_time() const;
   
   // 0 = minimum; 1.0 = maximum.
   // inits to 1.0.
-  void set_volume(float volume=1.0);
+  void set_volume(float volume=1.0f);
   float get_volume() const;
   
   // -1.0 is hard left
   // 0.0 is centered
   // 1.0 is hard right
   // inits to 0.0.
-  void set_balance(float balance_right=0.0);
+  void set_balance(float balance_right=0.0f);
   float get_balance() const;
 
   // inits to manager's state.
@@ -90,7 +89,7 @@ private:
   bool _paused;
 
   MilesAudioSound(MilesAudioManager* manager, 
-      HAUDIO audio, string file_name, float length=0.0);
+      HAUDIO audio, string file_name, float length=0.0f);
 
   friend class MilesAudioManager;
 };