|
|
@@ -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;
|
|
|
}
|
|
|
|