15 #ifndef MILESAUDIOSEQUENCE_H
16 #define MILESAUDIOSEQUENCE_H
18 #include "pandabase.h"
19 #ifdef HAVE_RAD_MSS //[
21 #include "milesAudioSound.h"
22 #include "milesAudioManager.h"
30 class EXPCL_MILES_AUDIO MilesAudioSequence :
public MilesAudioSound {
32 MilesAudioSequence(MilesAudioManager *manager,
33 MilesAudioManager::SoundData *sd,
34 const string &file_name);
37 virtual ~MilesAudioSequence();
42 virtual PN_stdfloat get_time()
const;
44 virtual void set_volume(PN_stdfloat volume=1.0f);
45 virtual void set_balance(PN_stdfloat balance_right=0.0f);
46 virtual void set_play_rate(PN_stdfloat play_rate=1.0f);
48 virtual PN_stdfloat length()
const;
50 virtual AudioSound::SoundStatus status()
const;
52 virtual void cleanup();
56 static void AILCALLBACK finish_callback(HSEQUENCE sequence);
57 void do_set_time(PN_stdfloat time);
58 void determine_length();
60 PT(MilesAudioManager::SoundData) _sd;
62 size_t _sequence_index;
68 static void init_type() {
69 MilesAudioSound::init_type();
70 register_type(_type_handle,
"MilesAudioSequence",
71 MilesAudioSound::get_class_type());
74 return get_class_type();
76 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
81 friend class GlobalMilesManager;
82 friend class MilesAudioManager;
85 #include "milesAudioSequence.I"
TypeHandle is the identifier used to differentiate C++ class types.