16 #ifndef __AUDIOSOUND_H__
17 #define __AUDIOSOUND_H__
19 #include "config_audio.h"
20 #include "typedReferenceCount.h"
21 #include "pointerTo.h"
22 #include "filterProperties.h"
37 virtual void play() = 0;
38 virtual void stop() = 0;
42 virtual void set_loop(
bool loop=
true) = 0;
43 virtual bool get_loop()
const = 0;
47 virtual void set_loop_count(
unsigned long loop_count=1) = 0;
48 virtual unsigned long get_loop_count()
const = 0;
64 virtual void set_time(PN_stdfloat start_time=0.0) = 0;
65 virtual PN_stdfloat get_time()
const = 0;
69 virtual void set_volume(PN_stdfloat volume=1.0) = 0;
70 virtual PN_stdfloat get_volume()
const = 0;
76 virtual void set_balance(PN_stdfloat balance_right=0.0) = 0;
77 virtual PN_stdfloat get_balance()
const = 0;
81 virtual void set_play_rate(PN_stdfloat play_rate=1.0f) = 0;
82 virtual PN_stdfloat get_play_rate()
const = 0;
85 virtual void set_active(
bool flag=
true) = 0;
86 virtual bool get_active()
const = 0;
90 virtual void set_finished_event(
const string& event) = 0;
91 virtual const string& get_finished_event()
const = 0;
94 virtual const string& get_name()
const = 0;
97 virtual PN_stdfloat length()
const = 0;
102 virtual void set_3d_attributes(PN_stdfloat px, PN_stdfloat py, PN_stdfloat pz,
103 PN_stdfloat vx, PN_stdfloat vy, PN_stdfloat vz);
104 virtual void get_3d_attributes(PN_stdfloat *px, PN_stdfloat *py, PN_stdfloat *pz,
105 PN_stdfloat *vx, PN_stdfloat *vy, PN_stdfloat *vz);
113 virtual void set_3d_min_distance(PN_stdfloat dist);
114 virtual PN_stdfloat get_3d_min_distance()
const;
120 virtual void set_3d_max_distance(PN_stdfloat dist);
121 virtual PN_stdfloat get_3d_max_distance()
const;
129 virtual PN_stdfloat get_speaker_mix(
int speaker);
130 virtual void set_speaker_mix(PN_stdfloat frontleft, PN_stdfloat frontright, PN_stdfloat center, PN_stdfloat sub, PN_stdfloat backleft, PN_stdfloat backright, PN_stdfloat sideleft, PN_stdfloat sideright);
132 virtual PN_stdfloat get_speaker_level(
int index);
133 virtual void set_speaker_levels(PN_stdfloat level1, PN_stdfloat level2=-1.0f, PN_stdfloat level3=-1.0f, PN_stdfloat level4=-1.0f, PN_stdfloat level5=-1.0f, PN_stdfloat level6=-1.0f, PN_stdfloat level7=-1.0f, PN_stdfloat level8=-1.0f, PN_stdfloat level9=-1.0f);
135 virtual int get_priority();
136 virtual void set_priority(
int priority);
140 enum SoundStatus { BAD, READY, PLAYING };
141 virtual SoundStatus status()
const = 0;
143 virtual void output(ostream &out)
const;
144 virtual void write(ostream &out)
const;
155 static void init_type() {
156 TypedReferenceCount::init_type();
157 register_type(_type_handle,
"AudioSound",
158 TypedReferenceCount::get_class_type());
161 return get_class_type();
163 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
170 operator << (ostream &out,
const AudioSound &sound) {
175 #include "audioSound.I"
177 EXPCL_PANDA_AUDIO ostream &
178 operator << (ostream &out, AudioSound::SoundStatus status);
A base class for things which need to inherit from both TypedObject and from ReferenceCount.
Stores a configuration for a set of audio DSP filters.
TypeHandle is the identifier used to differentiate C++ class types.