added audioManager is_valid()

This commit is contained in:
Dave Schuyler 2001-08-04 01:22:12 +00:00
parent 7cded4894b
commit 56dec3de77
5 changed files with 31 additions and 0 deletions

View File

@ -38,6 +38,8 @@ PUBLISHED:
static PT(AudioManager) create_AudioManager();
virtual ~AudioManager() {}
virtual bool is_valid() = 0;
// Get a sound:
virtual PT(AudioSound) get_sound(const string& file_name) = 0;
// Tell the AudioManager there is no need to keep this one cached.

View File

@ -40,6 +40,16 @@ NullAudioManager::
// intentionally blank.
}
////////////////////////////////////////////////////////////////////
// Function: NullAudioManager::is_valid
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
bool NullAudioManager::
is_valid() {
return false;
}
////////////////////////////////////////////////////////////////////
// Function: NullAudioManager::get_sound
// Access: Public

View File

@ -32,6 +32,8 @@ public:
NullAudioManager();
virtual ~NullAudioManager();
virtual bool is_valid();
virtual PT(AudioSound) get_sound(const string&);
virtual void drop_sound(const string&);

View File

@ -46,6 +46,7 @@ MilesAudioManager() {
audio_debug(" audio_volume="<<audio_volume);
_active = audio_active;
_volume = audio_volume;
_is_valid = true;
if (!_active_managers) {
S32 use_digital=(audio_play_wave || audio_play_mp3)?1:0;
S32 use_MIDI=(audio_play_midi)?1:0;
@ -80,6 +81,7 @@ MilesAudioManager() {
if (!AIL_quick_startup(use_digital, 1, audio_output_rate,
audio_output_bits, audio_output_channels)) {
audio_error(" startup failed, "<<AIL_last_error());
_is_valid = false;
}
} else {
audio_debug(" using Miles software midi");
@ -87,6 +89,7 @@ MilesAudioManager() {
}
} else {
audio_debug(" AIL_quick_startup failed: "<<AIL_last_error());
_is_valid = false;
}
}
// We increment _active_managers regardless of possible errors above.
@ -128,6 +131,16 @@ MilesAudioManager::
}
}
////////////////////////////////////////////////////////////////////
// Function: MilesAudioManager::is_valid
// Access:
// Description:
////////////////////////////////////////////////////////////////////
bool MilesAudioManager::
is_valid() {
return _is_valid;
}
////////////////////////////////////////////////////////////////////
// Function: MilesAudioManager::load
// Access:

View File

@ -35,6 +35,8 @@ public:
MilesAudioManager();
~MilesAudioManager();
bool is_valid();
PT(AudioSound) get_sound(const string& file_name);
void drop_sound(const string& file_name);
@ -59,6 +61,8 @@ private:
// Optional Downloadable Sound field for software midi:
static HDLSFILEID _dls_field;
bool _is_valid;
HAUDIO load(Filename file_name);
// Tell the manager that the sound dtor was called.
void release_sound(MilesAudioSound* audioSound);