15 #include "milesAudioSound.h"
16 #ifdef HAVE_RAD_MSS //[
18 #include "milesAudioManager.h"
22 #undef miles_audio_debug
25 #define miles_audio_debug(x) \
26 audio_debug("MilesAudioSound \""<<get_name()<<"\" "<< x )
28 #define miles_audio_debug(x) ((void)0)
37 MilesAudioSound(MilesAudioManager *manager,
38 const string &file_name) :
40 _file_name(file_name),
41 _volume(1.0f), _balance(0), _play_rate(1.0f),
46 _got_start_time(false)
48 nassertv(!file_name.empty());
56 void MilesAudioSound::
59 set_loop_count((loop)?0:1);
67 bool MilesAudioSound::
69 return (_loop_count == 0);
77 void MilesAudioSound::
78 set_loop_count(
unsigned long loop_count) {
79 if (_loop_count != loop_count) {
80 _loop_count = loop_count;
81 if (status() == PLAYING) {
99 unsigned long MilesAudioSound::
100 get_loop_count()
const {
109 PN_stdfloat MilesAudioSound::
119 PN_stdfloat MilesAudioSound::
120 get_balance()
const {
129 PN_stdfloat MilesAudioSound::
130 get_play_rate()
const {
139 void MilesAudioSound::
140 set_time(PN_stdfloat time) {
141 miles_audio_debug(
"set_time(time="<<time<<
")");
145 _got_start_time =
true;
153 void MilesAudioSound::
154 set_active(
bool active) {
155 if (_manager == (MilesAudioManager *)NULL) {
159 miles_audio_debug(
"set_active(active="<<active<<
")");
160 if (_active != active) {
164 if (_paused && _loop_count==0) {
172 if (status() == PLAYING) {
173 if (_loop_count == 0) {
177 _start_time = get_time();
178 _got_start_time =
true;
190 bool MilesAudioSound::
200 void MilesAudioSound::
201 set_finished_event(
const string &event) {
202 _finished_event = event;
210 const string &MilesAudioSound::
211 get_finished_event()
const {
212 return _finished_event;
220 const string &MilesAudioSound::
232 void MilesAudioSound::
TypeHandle is the identifier used to differentiate C++ class types.