mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 19:08:55 -04:00
new system
This commit is contained in:
parent
2b35b1ffce
commit
f09691b1ce
@ -10,36 +10,26 @@
|
|||||||
#define TARGET audio
|
#define TARGET audio
|
||||||
#define LOCAL_LIBS putil ipc gui
|
#define LOCAL_LIBS putil ipc gui
|
||||||
|
|
||||||
#define COMBINED_SOURCES $[TARGET]_composite1.cxx $[TARGET]_composite2.cxx
|
|
||||||
|
|
||||||
#define SOURCES \
|
#define SOURCES \
|
||||||
audio_manager.I audio_manager.h \
|
config_audio.cxx config_audio.h \
|
||||||
audio_midi.h \
|
audioManager.I audioManager.cxx audioManager.h \
|
||||||
audio_pool.I audio_pool.h \
|
audioSound.cxx audioSound.h \
|
||||||
audio_trait.h \
|
$[if $[HAVE_RAD_MSS], \
|
||||||
config_audio.h \
|
milesAudioManager.cxx milesAudioManager.h \
|
||||||
audio_mikmod_traits.cxx audio_mikmod_traits.h \
|
milesAudioSound.I milesAudioSound.cxx milesAudioSound.h \
|
||||||
audio_win_traits.I audio_win_traits.cxx audio_win_traits.h \
|
,] \
|
||||||
audio_null_traits.I audio_null_traits.h \
|
audio_gui_functor.h audio_gui_functor.cxx
|
||||||
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
|
|
||||||
|
|
||||||
#define INSTALL_HEADERS \
|
#define INSTALL_HEADERS \
|
||||||
audio.h audio_manager.h \
|
config_audio.h \
|
||||||
audio_pool.I audio_pool.h \
|
audio.h \
|
||||||
audio_trait.h audio_mikmod_traits.h \
|
audioManager.h audioManager.I \
|
||||||
audio_win_traits.I audio_win_traits.h \
|
audioSound.h \
|
||||||
audio_null_traits.I audio_null_traits.h \
|
$[if $[HAVE_RAD_MSS], \
|
||||||
audio_linux_traits.I audio_linux_traits.h \
|
milesAudioManager.h \
|
||||||
config_audio.h audio_manager.I audio_sound.h audio_sound.I audio_gui_functor.h \
|
milesAudioSound.h milesAudioSound.I \
|
||||||
$[if $[USE_RAD_MSS], audio_rad_mss_traits.I audio_rad_mss_traits.h,]
|
,] \
|
||||||
|
audio_gui_functor.h
|
||||||
|
|
||||||
#define IGATESCAN audio.h
|
#define IGATESCAN audio.h
|
||||||
#end lib_target
|
#end lib_target
|
||||||
|
@ -19,10 +19,8 @@
|
|||||||
#ifndef __AUDIO_H__
|
#ifndef __AUDIO_H__
|
||||||
#define __AUDIO_H__
|
#define __AUDIO_H__
|
||||||
|
|
||||||
#include "audio_trait.h"
|
#include "audioSound.h"
|
||||||
#include "audio_sound.h"
|
#include "audioManager.h"
|
||||||
#include "audio_manager.h"
|
|
||||||
#include "audio_pool.h"
|
|
||||||
#include "audio_gui_functor.h"
|
#include "audio_gui_functor.h"
|
||||||
|
|
||||||
#endif /* __AUDIO_H__ */
|
#endif /* __AUDIO_H__ */
|
||||||
|
@ -28,11 +28,13 @@ AudioGuiFunctor::~AudioGuiFunctor() {
|
|||||||
_prev.clear();
|
_prev.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "audio_manager.h"
|
#include "audioManager.h"
|
||||||
|
|
||||||
void AudioGuiFunctor::doit(GuiBehavior* b) {
|
void AudioGuiFunctor::doit(GuiBehavior* b) {
|
||||||
if (_sound != (AudioSound*)0L)
|
if (_sound) {
|
||||||
AudioManager::play(_sound);
|
_sound->play();
|
||||||
if (_prev != (GuiBehavior::BehaviorFunctor*)0L)
|
}
|
||||||
|
if (_prev) {
|
||||||
_prev->doit(b);
|
_prev->doit(b);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#define __AUDIO_GUI_FUNCTOR_H__
|
#define __AUDIO_GUI_FUNCTOR_H__
|
||||||
|
|
||||||
#include <guiBehavior.h>
|
#include <guiBehavior.h>
|
||||||
#include "audio_sound.h"
|
#include "audioSound.h"
|
||||||
|
|
||||||
class EXPCL_PANDA AudioGuiFunctor : public GuiBehavior::BehaviorFunctor {
|
class EXPCL_PANDA AudioGuiFunctor : public GuiBehavior::BehaviorFunctor {
|
||||||
protected:
|
protected:
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "config_audio.h"
|
#include "config_audio.h"
|
||||||
#include "audio_sound.h"
|
#include "audioSound.h"
|
||||||
#include "audio_gui_functor.h"
|
#include "audio_gui_functor.h"
|
||||||
#include <dconfig.h>
|
#include <dconfig.h>
|
||||||
#include <filename.h>
|
#include <filename.h>
|
||||||
@ -26,83 +26,45 @@
|
|||||||
Configure(config_audio);
|
Configure(config_audio);
|
||||||
NotifyCategoryDef(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);
|
bool audio_active
|
||||||
string* audio_mode_flags;
|
=config_audio.GetBool("audio-active", true);
|
||||||
int audio_driver_select = config_audio.GetInt("audio-driver-select", 0);
|
|
||||||
string* audio_driver_params;
|
float audio_volume
|
||||||
int audio_buffer_size = config_audio.GetInt("audio-buffer-size", 4096);
|
=config_audio.GetFloat("audio-volume", 1.0);
|
||||||
string* audio_device;
|
|
||||||
int audio_auto_update_delay = config_audio.GetInt("audio-auto-update-delay",
|
bool audio_software_midi
|
||||||
1000000);
|
=config_audio.GetBool("audio-software-midi", false);
|
||||||
bool audio_is_active = config_audio.GetBool("audio-is-active", true);
|
|
||||||
bool audio_sfx_active = config_audio.GetBool("audio-sfx-active", true);
|
bool audio_play_midi
|
||||||
bool audio_music_active = config_audio.GetBool("audio-music-active", true);
|
=config_audio.GetBool("audio-play-midi", true);
|
||||||
float audio_master_sfx_volume =
|
|
||||||
config_audio.GetFloat("audio-master-sfx-volume", 1.);
|
bool audio_play_wave
|
||||||
float audio_master_music_volume =
|
=config_audio.GetBool("audio-play-wave", true);
|
||||||
config_audio.GetFloat("audio-master-music-volume", 1.);
|
|
||||||
int audio_thread_priority;
|
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) {
|
ConfigureFn(config_audio) {
|
||||||
AudioSound::init_type();
|
AudioSound::init_type();
|
||||||
AudioGuiFunctor::init_type();
|
AudioGuiFunctor::init_type();
|
||||||
|
|
||||||
Config::ConfigTable::Symbol mode;
|
audio_dls_file = new string(
|
||||||
config_audio.GetAll("audio-mode-flag", mode);
|
config_audio.GetString("audio-dls-file", "GM.DLS")
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
NotifyCategoryDecl(audio, EXPCL_PANDA, EXPTP_PANDA);
|
||||||
|
|
||||||
extern EXPCL_PANDA int audio_sample_voices;
|
extern EXPCL_PANDA bool audio_active;
|
||||||
extern EXPCL_PANDA int audio_mix_freq;
|
extern EXPCL_PANDA float audio_volume;
|
||||||
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 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 //[
|
#ifndef NDEBUG //[
|
||||||
// Non-release build:
|
// Non-release build:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user