mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
new system
This commit is contained in:
parent
2b35b1ffce
commit
f09691b1ce
@ -10,36 +10,26 @@
|
||||
#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
|
||||
|
@ -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__ */
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,7 @@
|
||||
#define __AUDIO_GUI_FUNCTOR_H__
|
||||
|
||||
#include <guiBehavior.h>
|
||||
#include "audio_sound.h"
|
||||
#include "audioSound.h"
|
||||
|
||||
class EXPCL_PANDA AudioGuiFunctor : public GuiBehavior::BehaviorFunctor {
|
||||
protected:
|
||||
|
@ -17,7 +17,7 @@
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "config_audio.h"
|
||||
#include "audio_sound.h"
|
||||
#include "audioSound.h"
|
||||
#include "audio_gui_functor.h"
|
||||
#include <dconfig.h>
|
||||
#include <filename.h>
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user