16 #ifndef MILESAUDIOSAMPLE_H 17 #define MILESAUDIOSAMPLE_H 19 #include "pandabase.h" 20 #ifdef HAVE_RAD_MSS //[ 22 #include "milesAudioSound.h" 23 #include "milesAudioManager.h" 31 class EXPCL_MILES_AUDIO MilesAudioSample :
public MilesAudioSound {
33 MilesAudioSample(MilesAudioManager *manager,
34 MilesAudioManager::SoundData *sd,
35 const string &file_name);
38 virtual ~MilesAudioSample();
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();
54 virtual void output(ostream &out)
const;
60 void set_3d_attributes(PN_stdfloat px, PN_stdfloat py, PN_stdfloat pz, PN_stdfloat vx, PN_stdfloat vy, PN_stdfloat vz);
61 void get_3d_attributes(PN_stdfloat *px, PN_stdfloat *py, PN_stdfloat *pz, PN_stdfloat *vx, PN_stdfloat *vy, PN_stdfloat *vz);
62 void set_3d_min_distance(PN_stdfloat dist);
63 PN_stdfloat get_3d_min_distance()
const;
64 void set_3d_max_distance(PN_stdfloat dist);
65 PN_stdfloat get_3d_max_distance()
const;
67 virtual PN_stdfloat get_speaker_level(
int index);
68 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);
72 static void AILCALLBACK finish_callback(HSAMPLE sample);
73 void do_set_time(PN_stdfloat time);
75 PT(MilesAudioManager::SoundData) _sd;
78 S32 _original_playback_rate;
84 static void init_type() {
85 MilesAudioSound::init_type();
86 register_type(_type_handle,
"MilesAudioSample",
87 MilesAudioSound::get_class_type());
90 return get_class_type();
92 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
97 friend class GlobalMilesManager;
98 friend class MilesAudioManager;
101 #include "milesAudioSample.I" TypeHandle is the identifier used to differentiate C++ class types.