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