Browse Source

rolled back Miles sound length hack

Dave Schuyler 24 years ago
parent
commit
b7ea87d1b5
1 changed files with 13 additions and 2 deletions
  1. 13 2
      panda/src/audiotraits/milesAudioSound.cxx

+ 13 - 2
panda/src/audiotraits/milesAudioSound.cxx

@@ -229,10 +229,21 @@ 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) {
-    _length=((float)AIL_quick_ms_length(_audio))*0.001f;
+    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);
+    }
   }
-  miles_audio_debug("length() returning "<<_length);
+  audio_debug("MilesAudioSound::length() returning "<<_length);
   return _length;
 }