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();}
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...