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;
56 virtual void set_time(PN_stdfloat start_time=0.0) = 0;
57 virtual PN_stdfloat get_time()
const = 0;
60 virtual void set_volume(PN_stdfloat volume=1.0) = 0;
61 virtual PN_stdfloat get_volume()
const = 0;
64 virtual void set_balance(PN_stdfloat balance_right=0.0) = 0;
65 virtual PN_stdfloat get_balance()
const = 0;
68 virtual void set_play_rate(PN_stdfloat play_rate=1.0f) = 0;
69 virtual PN_stdfloat get_play_rate()
const = 0;
72 virtual void set_active(
bool flag=
true) = 0;
73 virtual bool get_active()
const = 0;
77 virtual void set_finished_event(
const std::string& event) = 0;
78 virtual const std::string& get_finished_event()
const = 0;
81 virtual const std::string& get_name()
const = 0;
84 virtual PN_stdfloat length()
const = 0;
89 virtual void set_3d_attributes(PN_stdfloat px, PN_stdfloat py, PN_stdfloat pz,
90 PN_stdfloat vx, PN_stdfloat vy, PN_stdfloat vz);
91 virtual void get_3d_attributes(PN_stdfloat *px, PN_stdfloat *py, PN_stdfloat *pz,
92 PN_stdfloat *vx, PN_stdfloat *vy, PN_stdfloat *vz);
98 virtual void set_3d_min_distance(PN_stdfloat dist);
99 virtual PN_stdfloat get_3d_min_distance()
const;
104 virtual void set_3d_max_distance(PN_stdfloat dist);
105 virtual PN_stdfloat get_3d_max_distance()
const;
112 virtual PN_stdfloat get_speaker_mix(
int speaker);
113 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);
115 virtual PN_stdfloat get_speaker_level(
int index);
116 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);
118 virtual int get_priority();
119 virtual void set_priority(
int priority);
123 enum SoundStatus { BAD, READY, PLAYING };
124 virtual SoundStatus status()
const = 0;
126 virtual void output(std::ostream &out)
const;
127 virtual void write(std::ostream &out)
const;
138 static void init_type() {
139 TypedReferenceCount::init_type();
141 TypedReferenceCount::get_class_type());
144 return get_class_type();
146 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
152 inline std::ostream &
153 operator << (std::ostream &out,
const AudioSound &sound) {
160 EXPCL_PANDA_AUDIO std::ostream &
161 operator << (std::ostream &out, AudioSound::SoundStatus status);
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
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.
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.
TypeHandle is the identifier used to differentiate C++ class types.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.