15 #ifndef __AUDIOSOUND_H__
16 #define __AUDIOSOUND_H__
34 virtual void play() = 0;
35 virtual void stop() = 0;
38 virtual void set_loop(
bool loop=
true) = 0;
39 virtual bool get_loop()
const = 0;
42 virtual void set_loop_count(
unsigned long loop_count=1) = 0;
43 virtual unsigned long get_loop_count()
const = 0;
62 virtual void set_time(PN_stdfloat start_time=0.0) = 0;
63 virtual PN_stdfloat get_time()
const = 0;
66 virtual void set_volume(PN_stdfloat volume=1.0) = 0;
67 virtual PN_stdfloat get_volume()
const = 0;
70 virtual void set_balance(PN_stdfloat balance_right=0.0) = 0;
71 virtual PN_stdfloat get_balance()
const = 0;
74 virtual void set_play_rate(PN_stdfloat play_rate=1.0f) = 0;
75 virtual PN_stdfloat get_play_rate()
const = 0;
78 virtual void set_active(
bool flag=
true) = 0;
79 virtual bool get_active()
const = 0;
83 virtual void set_finished_event(
const std::string& event) = 0;
84 virtual const std::string& get_finished_event()
const = 0;
87 virtual const std::string& get_name()
const = 0;
90 virtual PN_stdfloat length()
const = 0;
95 virtual void set_3d_attributes(PN_stdfloat px, PN_stdfloat py, PN_stdfloat pz,
96 PN_stdfloat vx, PN_stdfloat vy, PN_stdfloat vz);
97 virtual void get_3d_attributes(PN_stdfloat *px, PN_stdfloat *py, PN_stdfloat *pz,
98 PN_stdfloat *vx, PN_stdfloat *vy, PN_stdfloat *vz);
104 virtual void set_3d_min_distance(PN_stdfloat dist);
105 virtual PN_stdfloat get_3d_min_distance()
const;
110 virtual void set_3d_max_distance(PN_stdfloat dist);
111 virtual PN_stdfloat get_3d_max_distance()
const;
118 virtual PN_stdfloat get_speaker_mix(
int speaker);
119 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);
121 virtual PN_stdfloat get_speaker_level(
int index);
122 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);
124 virtual int get_priority();
125 virtual void set_priority(
int priority);
129 enum SoundStatus { BAD, READY, PLAYING };
130 virtual SoundStatus status()
const = 0;
132 virtual void output(std::ostream &out)
const;
133 virtual void write(std::ostream &out)
const;
144 static void init_type() {
145 TypedReferenceCount::init_type();
147 TypedReferenceCount::get_class_type());
150 return get_class_type();
152 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
158 inline std::ostream &
159 operator << (std::ostream &out,
const AudioSound &sound) {
166 EXPCL_PANDA_AUDIO std::ostream &
167 operator << (std::ostream &out, AudioSound::SoundStatus status);
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
virtual void set_time(PN_stdfloat start_time=0.0)=0
Control time position within the sound, in seconds.
Stores a configuration for a set of audio DSP filters.
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.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.