15 #ifndef __AUDIO_MANAGER_H__
16 #define __AUDIO_MANAGER_H__
31 enum SpeakerModeCategory {
65 virtual int get_speaker_setup();
66 virtual void set_speaker_setup(SpeakerModeCategory cat);
78 virtual void shutdown();
86 virtual bool is_valid() = 0;
89 virtual PT(
AudioSound) get_sound(
const Filename &file_name,
bool positional =
false,
int mode=SM_heuristic) = 0;
90 virtual PT(
AudioSound) get_sound(
MovieAudio *source,
bool positional =
false,
int mode=SM_heuristic) = 0;
98 virtual void uncache_sound(
const Filename &file_name) = 0;
99 virtual void clear_cache() = 0;
100 virtual void set_cache_limit(
unsigned int count) = 0;
101 virtual unsigned int get_cache_limit()
const = 0;
106 virtual void set_volume(PN_stdfloat volume) = 0;
107 virtual PN_stdfloat get_volume()
const = 0;
114 virtual void set_active(
bool flag) = 0;
115 virtual bool get_active()
const = 0;
122 virtual void set_concurrent_sound_limit(
unsigned int limit = 0) = 0;
123 virtual unsigned int get_concurrent_sound_limit()
const = 0;
130 virtual void reduce_sounds_playing_to(
unsigned int count) = 0;
135 virtual void stop_all_sounds() = 0;
138 virtual void update();
145 virtual void audio_3d_set_listener_attributes(PN_stdfloat px, PN_stdfloat py, PN_stdfloat pz,
146 PN_stdfloat vx, PN_stdfloat vy, PN_stdfloat vz,
147 PN_stdfloat fx, PN_stdfloat fy, PN_stdfloat fz,
148 PN_stdfloat ux, PN_stdfloat uy, PN_stdfloat uz);
149 virtual void audio_3d_get_listener_attributes(PN_stdfloat *px, PN_stdfloat *py, PN_stdfloat *pz,
150 PN_stdfloat *vx, PN_stdfloat *vy, PN_stdfloat *vz,
151 PN_stdfloat *fx, PN_stdfloat *fy, PN_stdfloat *fz,
152 PN_stdfloat *ux, PN_stdfloat *uy, PN_stdfloat *uz);
159 virtual void audio_3d_set_distance_factor(PN_stdfloat factor);
160 virtual PN_stdfloat audio_3d_get_distance_factor()
const;
164 virtual void audio_3d_set_doppler_factor(PN_stdfloat factor);
165 virtual PN_stdfloat audio_3d_get_doppler_factor()
const;
170 virtual void audio_3d_set_drop_off_factor(PN_stdfloat factor);
171 virtual PN_stdfloat audio_3d_get_drop_off_factor()
const;
174 MAKE_PROPERTY(dls_pathname, get_dls_pathname);
176 virtual void output(std::ostream &out)
const;
177 virtual void write(std::ostream &out)
const;
180 virtual void set_speaker_configuration(LVecBase3 *speaker1, LVecBase3 *speaker2=
nullptr, LVecBase3 *speaker3=
nullptr, LVecBase3 *speaker4=
nullptr, LVecBase3 *speaker5=
nullptr, LVecBase3 *speaker6=
nullptr, LVecBase3 *speaker7=
nullptr, LVecBase3 *speaker8=
nullptr, LVecBase3 *speaker9=
nullptr);
183 static void register_AudioManager_creator(Create_AudioManager_proc* proc);
192 static Create_AudioManager_proc* _create_AudioManager;
193 AtomicAdjust::Pointer _null_sound;
201 static void init_type() {
202 TypedReferenceCount::init_type();
204 TypedReferenceCount::get_class_type());
207 return get_class_type();
209 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
215 inline std::ostream &
216 operator << (std::ostream &out,
const AudioManager &mgr) {
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
The name of a file, such as a texture file or an Egg file.
Stores a configuration for a set of audio DSP filters.
A MovieAudio is actually any source that provides a sequence of audio samples.
TypeHandle is the identifier used to differentiate C++ class types.
A base class for things which need to inherit from both TypedObject and from ReferenceCount.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...