diff --git a/panda/src/audiotraits/milesAudioSound.cxx b/panda/src/audiotraits/milesAudioSound.cxx index 72642fb297..4202ce30a0 100644 --- a/panda/src/audiotraits/milesAudioSound.cxx +++ b/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; diff --git a/panda/src/audiotraits/milesAudioSound.h b/panda/src/audiotraits/milesAudioSound.h index 19655320e1..a5312b6459 100644 --- a/panda/src/audiotraits/milesAudioSound.h +++ b/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; };