15 #ifndef MILESAUDIOSTREAM_H
16 #define MILESAUDIOSTREAM_H
18 #include "pandabase.h"
19 #ifdef HAVE_RAD_MSS //[
21 #include "milesAudioSound.h"
22 #include "milesAudioManager.h"
32 class EXPCL_MILES_AUDIO MilesAudioStream :
public MilesAudioSound {
34 MilesAudioStream(MilesAudioManager *manager,
const string &file_name,
38 virtual ~MilesAudioStream();
43 virtual PN_stdfloat get_time()
const;
45 virtual void set_volume(PN_stdfloat volume=1.0f);
46 virtual void set_balance(PN_stdfloat balance_right=0.0f);
47 virtual void set_play_rate(PN_stdfloat play_rate=1.0f);
49 virtual PN_stdfloat length()
const;
51 virtual AudioSound::SoundStatus status()
const;
53 virtual void cleanup();
56 static void AILCALLBACK finish_callback(HSTREAM stream);
57 void do_set_time(PN_stdfloat time);
61 S32 _original_playback_rate;
62 mutable PN_stdfloat _length;
63 mutable bool _got_length;
69 static void init_type() {
70 MilesAudioSound::init_type();
71 register_type(_type_handle,
"MilesAudioStream",
72 MilesAudioSound::get_class_type());
75 return get_class_type();
77 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
82 friend class MilesAudioManager;
85 #include "milesAudioStream.I"
The name of a file, such as a texture file or an Egg file.
TypeHandle is the identifier used to differentiate C++ class types.