Add: Mixer feature for streaming sampled music

This commit is contained in:
Niels Martin Hansen
2018-11-04 12:58:42 +01:00
parent 12ba56c5a3
commit d6c06de5ad
2 changed files with 27 additions and 0 deletions

View File

@@ -14,6 +14,14 @@
struct MixerChannel;
/**
* Type of callback functions for supplying PCM music.
* A music decoder/renderer implements this function and installs it with MxSetMusicSource, which also returns the sample rate used.
* @param buffer Pointer to interleaved 2-channel signed 16 bit PCM data buffer, guaranteed to be 0-initialized.
* @param samples number of samples that must be filled into \c buffer.
*/
typedef void(*MxStreamCallback)(int16 *buffer, size_t samples);
bool MxInitialize(uint rate);
void MxMixSamples(void *buffer, uint samples);
@@ -22,4 +30,6 @@ void MxSetChannelRawSrc(MixerChannel *mc, int8 *mem, size_t size, uint rate, boo
void MxSetChannelVolume(MixerChannel *mc, uint volume, float pan);
void MxActivateChannel(MixerChannel*);
uint32 MxSetMusicSource(MxStreamCallback music_callback);
#endif /* MIXER_H */