14#ifndef GLOBALMILESMANAGER_H
15#define GLOBALMILESMANAGER_H
34class MilesAudioSample;
35class MilesAudioSequence;
42class 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);
86 typedef pset<MilesAudioManager *> Managers;
88 LightMutex _managers_lock;
93 MilesAudioSample *_sound;
96 typedef pvector<SampleData> Samples;
98 LightMutex _samples_lock;
103 MilesAudioSequence *_sound;
106 typedef pvector<SequenceData> Sequences;
107 Sequences _sequences;
108 LightMutex _sequences_lock;
110 static GlobalMilesManager *_global_ptr;
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.