14 #ifndef GLOBALMILESMANAGER_H
15 #define GLOBALMILESMANAGER_H
18 #ifdef HAVE_RAD_MSS //[
34 class MilesAudioSample;
35 class MilesAudioSequence;
42 class EXPCL_MILES_AUDIO GlobalMilesManager {
47 void add_manager(MilesAudioManager *manager);
48 void remove_manager(MilesAudioManager *manager);
50 INLINE
bool is_open()
const;
52 bool get_sample(HSAMPLE &sample,
size_t &index, MilesAudioSample *sound);
53 void release_sample(
size_t index, MilesAudioSample *sound);
54 INLINE
int get_num_samples()
const;
56 bool get_sequence(HSEQUENCE &sequence,
size_t &index, MilesAudioSequence *sound);
57 void release_sequence(
size_t index, MilesAudioSequence *sound);
58 INLINE
int get_num_sequences()
const;
60 void force_midi_reset();
62 static GlobalMilesManager *get_global_ptr();
65 HDIGDRIVER _digital_driver;
66 HMDIDRIVER _midi_driver;
69 HDLSDEVICE _dls_device;
71 vector_uchar _dls_data;
77 static U32 AILCALLBACK open_callback(
char const *filename, UINTa *file_handle);
78 static void AILCALLBACK close_callback(UINTa file_handle);
79 static S32 AILCALLBACK seek_callback(UINTa file_handle, S32 offset, U32 type);
80 static U32 AILCALLBACK read_callback(UINTa file_handle,
void *buffer, U32 bytes);
93 MilesAudioSample *_sound;
103 MilesAudioSequence *_sound;
107 Sequences _sequences;
110 static GlobalMilesManager *_global_ptr;