From f09691b1cecdcb1abd71fdb04b97638e22625dd5 Mon Sep 17 00:00:00 2001 From: Dave Schuyler Date: Tue, 10 Jul 2001 23:48:22 +0000 Subject: [PATCH] new system --- panda/src/audio/Sources.pp | 44 ++++------- panda/src/audio/audio.h | 6 +- panda/src/audio/audio_gui_functor.cxx | 10 ++- panda/src/audio/audio_gui_functor.h | 2 +- panda/src/audio/config_audio.cxx | 108 +++++++++----------------- panda/src/audio/config_audio.h | 27 +++---- 6 files changed, 73 insertions(+), 124 deletions(-) diff --git a/panda/src/audio/Sources.pp b/panda/src/audio/Sources.pp index 593af0702f..c6801ba4f3 100644 --- a/panda/src/audio/Sources.pp +++ b/panda/src/audio/Sources.pp @@ -9,37 +9,27 @@ #define TARGET audio #define LOCAL_LIBS putil ipc gui - - #define COMBINED_SOURCES $[TARGET]_composite1.cxx $[TARGET]_composite2.cxx #define SOURCES \ - audio_manager.I audio_manager.h \ - audio_midi.h \ - audio_pool.I audio_pool.h \ - audio_trait.h \ - config_audio.h \ - audio_mikmod_traits.cxx audio_mikmod_traits.h \ - audio_win_traits.I audio_win_traits.cxx audio_win_traits.h \ - audio_null_traits.I audio_null_traits.h \ - audio_linux_traits.I audio_linux_traits.cxx audio_linux_traits.h \ - audio_sound.I audio_sound.h \ - audio_gui_functor.h \ - $[if $[USE_RAD_MSS], audio_rad_mss_traits.I audio_rad_mss_traits.cxx audio_rad_mss_traits.h,] - - #define INCLUDED_SOURCES \ - config_audio.cxx audio_gui_functor.cxx \ - audio_trait.cxx audio_pool.cxx audio_midi.cxx audio_manager.cxx \ - audio_null_traits.cxx audio_sound.cxx audio_midi.cxx + config_audio.cxx config_audio.h \ + audioManager.I audioManager.cxx audioManager.h \ + audioSound.cxx audioSound.h \ + $[if $[HAVE_RAD_MSS], \ + milesAudioManager.cxx milesAudioManager.h \ + milesAudioSound.I milesAudioSound.cxx milesAudioSound.h \ + ,] \ + audio_gui_functor.h audio_gui_functor.cxx #define INSTALL_HEADERS \ - audio.h audio_manager.h \ - audio_pool.I audio_pool.h \ - audio_trait.h audio_mikmod_traits.h \ - audio_win_traits.I audio_win_traits.h \ - audio_null_traits.I audio_null_traits.h \ - audio_linux_traits.I audio_linux_traits.h \ - config_audio.h audio_manager.I audio_sound.h audio_sound.I audio_gui_functor.h \ - $[if $[USE_RAD_MSS], audio_rad_mss_traits.I audio_rad_mss_traits.h,] + config_audio.h \ + audio.h \ + audioManager.h audioManager.I \ + audioSound.h \ + $[if $[HAVE_RAD_MSS], \ + milesAudioManager.h \ + milesAudioSound.h milesAudioSound.I \ + ,] \ + audio_gui_functor.h #define IGATESCAN audio.h #end lib_target diff --git a/panda/src/audio/audio.h b/panda/src/audio/audio.h index a4c1ceb83e..687f20da3d 100644 --- a/panda/src/audio/audio.h +++ b/panda/src/audio/audio.h @@ -19,10 +19,8 @@ #ifndef __AUDIO_H__ #define __AUDIO_H__ -#include "audio_trait.h" -#include "audio_sound.h" -#include "audio_manager.h" -#include "audio_pool.h" +#include "audioSound.h" +#include "audioManager.h" #include "audio_gui_functor.h" #endif /* __AUDIO_H__ */ diff --git a/panda/src/audio/audio_gui_functor.cxx b/panda/src/audio/audio_gui_functor.cxx index c0466247d2..a22cadeb86 100644 --- a/panda/src/audio/audio_gui_functor.cxx +++ b/panda/src/audio/audio_gui_functor.cxx @@ -28,11 +28,13 @@ AudioGuiFunctor::~AudioGuiFunctor() { _prev.clear(); } -#include "audio_manager.h" +#include "audioManager.h" void AudioGuiFunctor::doit(GuiBehavior* b) { - if (_sound != (AudioSound*)0L) - AudioManager::play(_sound); - if (_prev != (GuiBehavior::BehaviorFunctor*)0L) + if (_sound) { + _sound->play(); + } + if (_prev) { _prev->doit(b); + } } diff --git a/panda/src/audio/audio_gui_functor.h b/panda/src/audio/audio_gui_functor.h index a38d2188d2..52bd873c81 100644 --- a/panda/src/audio/audio_gui_functor.h +++ b/panda/src/audio/audio_gui_functor.h @@ -20,7 +20,7 @@ #define __AUDIO_GUI_FUNCTOR_H__ #include -#include "audio_sound.h" +#include "audioSound.h" class EXPCL_PANDA AudioGuiFunctor : public GuiBehavior::BehaviorFunctor { protected: diff --git a/panda/src/audio/config_audio.cxx b/panda/src/audio/config_audio.cxx index c182abf575..759d24fa54 100644 --- a/panda/src/audio/config_audio.cxx +++ b/panda/src/audio/config_audio.cxx @@ -17,7 +17,7 @@ //////////////////////////////////////////////////////////////////// #include "config_audio.h" -#include "audio_sound.h" +#include "audioSound.h" #include "audio_gui_functor.h" #include #include @@ -26,83 +26,45 @@ Configure(config_audio); NotifyCategoryDef(audio, ""); -int audio_sample_voices = config_audio.GetInt("audio-sample-voices", 8); -int audio_mix_freq = config_audio.GetInt("audio-mix-freq", 11025); -string* audio_mode_flags; -int audio_driver_select = config_audio.GetInt("audio-driver-select", 0); -string* audio_driver_params; -int audio_buffer_size = config_audio.GetInt("audio-buffer-size", 4096); -string* audio_device; -int audio_auto_update_delay = config_audio.GetInt("audio-auto-update-delay", - 1000000); -bool audio_is_active = config_audio.GetBool("audio-is-active", true); -bool audio_sfx_active = config_audio.GetBool("audio-sfx-active", true); -bool audio_music_active = config_audio.GetBool("audio-music-active", true); -float audio_master_sfx_volume = - config_audio.GetFloat("audio-master-sfx-volume", 1.); -float audio_master_music_volume = - config_audio.GetFloat("audio-master-music-volume", 1.); -int audio_thread_priority; + +bool audio_active + =config_audio.GetBool("audio-active", true); + +float audio_volume + =config_audio.GetFloat("audio-volume", 1.0); + +bool audio_software_midi + =config_audio.GetBool("audio-software-midi", false); + +bool audio_play_midi + =config_audio.GetBool("audio-play-midi", true); + +bool audio_play_wave + =config_audio.GetBool("audio-play-wave", true); + +bool audio_play_mp3 + =config_audio.GetBool("audio-play-mp3", true); + +int audio_output_rate + =config_audio.GetInt("audio-output-rate", 22050); + +int audio_output_bits + =config_audio.GetInt("audio-output-bits", 16); + +int audio_output_channels + =config_audio.GetInt("audio-output-channels", 2); + +string* audio_dls_file; + ConfigureFn(config_audio) { AudioSound::init_type(); AudioGuiFunctor::init_type(); - Config::ConfigTable::Symbol mode; - config_audio.GetAll("audio-mode-flag", mode); - Config::ConfigTable::Symbol::iterator i; - audio_mode_flags = new string; - for (i=mode.begin(); i!=mode.end(); ++i) { - if (!audio_mode_flags->empty()) { - *audio_mode_flags += " "; - } - *audio_mode_flags += (*i).Val(); - } - Config::ConfigTable::Symbol parms; - config_audio.GetAll("audio-driver-param", parms); - audio_driver_params = new string; - for (i=parms.begin(); i!=parms.end(); ++i) { - if (!audio_driver_params->empty()) { - *audio_driver_params += " "; - } - *audio_driver_params += (*i).Val(); - } - - audio_device = new string(config_audio.GetString("audio-device", - "/dev/dsp")); - - string stmp = config_audio.GetString("audio-thread-priority", "NORMAL"); - for (string::iterator q=stmp.begin(); q!=stmp.end(); ++q) { - (*q) = toupper(*q); - } - if (stmp == "LOW") { - audio_thread_priority = 0; - } else if (stmp == "NORMAL") { - audio_thread_priority = 1; - } else if (stmp == "HIGH") { - audio_thread_priority = 2; - } else{ - audio_thread_priority = -1; - } + audio_dls_file = new string( + config_audio.GetString("audio-dls-file", "GM.DLS") + ); } -void audio_load_loaders() { - static bool did_load = false; - if (did_load) { - return; - } - Config::ConfigTable::Symbol::iterator i; - Config::ConfigTable::Symbol loaders; - config_audio.GetAll("audio-loader", loaders); - for (i=loaders.begin(); i!=loaders.end(); ++i) { - Filename dlname = Filename::dso_filename("libaudio_load_" + (*i).Val() + - ".so"); - audio_info("loading '" << (*i).Val() << "' loader"); - void* tmp = load_dso(dlname); - if (tmp == (void*)0L) { - audio_info("unable to load: " << load_dso_error()); - } - } - did_load = true; -} + diff --git a/panda/src/audio/config_audio.h b/panda/src/audio/config_audio.h index 315ed7b582..a365d57e58 100644 --- a/panda/src/audio/config_audio.h +++ b/panda/src/audio/config_audio.h @@ -24,22 +24,19 @@ NotifyCategoryDecl(audio, EXPCL_PANDA, EXPTP_PANDA); -extern EXPCL_PANDA int audio_sample_voices; -extern EXPCL_PANDA int audio_mix_freq; -extern EXPCL_PANDA string* audio_mode_flags; -extern EXPCL_PANDA int audio_driver_select; -extern EXPCL_PANDA string* audio_driver_params; -extern EXPCL_PANDA int audio_buffer_size; -extern EXPCL_PANDA string* audio_device; -extern EXPCL_PANDA int audio_auto_update_delay; -extern EXPCL_PANDA bool audio_is_active; -extern EXPCL_PANDA bool audio_sfx_active; -extern EXPCL_PANDA bool audio_music_active; -extern EXPCL_PANDA float audio_master_sfx_volume; -extern EXPCL_PANDA float audio_master_music_volume; -extern EXPCL_PANDA int audio_thread_priority; +extern EXPCL_PANDA bool audio_active; +extern EXPCL_PANDA float audio_volume; -extern EXPCL_PANDA void audio_load_loaders(); +extern EXPCL_PANDA bool audio_software_midi; +extern EXPCL_PANDA string* audio_dls_file; + +extern EXPCL_PANDA bool audio_play_midi; +extern EXPCL_PANDA bool audio_play_wave; +extern EXPCL_PANDA bool audio_play_mp3; + +extern EXPCL_PANDA int audio_output_rate; +extern EXPCL_PANDA int audio_output_bits; +extern EXPCL_PANDA int audio_output_channels; #ifndef NDEBUG //[ // Non-release build: