15 #ifndef GLOBALMILESMANAGER_H 16 #define GLOBALMILESMANAGER_H 18 #include "pandabase.h" 19 #ifdef HAVE_RAD_MSS //[ 23 #include "lightMutex.h" 24 #include "lightMutexHolder.h" 34 class MilesAudioSample;
35 class MilesAudioSequence;
43 class EXPCL_MILES_AUDIO GlobalMilesManager {
48 void add_manager(MilesAudioManager *manager);
49 void remove_manager(MilesAudioManager *manager);
51 INLINE
bool is_open()
const;
53 bool get_sample(HSAMPLE &sample,
size_t &index, MilesAudioSample *sound);
54 void release_sample(
size_t index, MilesAudioSample *sound);
55 INLINE
int get_num_samples()
const;
57 bool get_sequence(HSEQUENCE &sequence,
size_t &index, MilesAudioSequence *sound);
58 void release_sequence(
size_t index, MilesAudioSequence *sound);
59 INLINE
int get_num_sequences()
const;
61 void force_midi_reset();
63 static GlobalMilesManager *get_global_ptr();
66 HDIGDRIVER _digital_driver;
67 HMDIDRIVER _midi_driver;
70 HDLSDEVICE _dls_device;
78 static U32 AILCALLBACK open_callback(
char const *filename, UINTa *file_handle);
79 static void AILCALLBACK close_callback(UINTa file_handle);
80 static S32 AILCALLBACK seek_callback(UINTa file_handle, S32 offset, U32 type);
81 static U32 AILCALLBACK read_callback(UINTa file_handle,
void *buffer, U32 bytes);
94 MilesAudioSample *_sound;
104 MilesAudioSequence *_sound;
108 Sequences _sequences;
111 static GlobalMilesManager *_global_ptr;
114 #include "globalMilesManager.I"
This is our own Panda specialization on the default STL set.
This is a standard, non-reentrant mutex, similar to the Mutex class.