Mercurial > SDL_sound_CoreAudio
diff mixer/DESIGN @ 486:859dd2ef3197
Added some seriously INCOMPLETE mixer code.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Sun, 27 Feb 2005 19:55:29 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mixer/DESIGN Sun Feb 27 19:55:29 2005 +0000 @@ -0,0 +1,42 @@ +- Mixes internally in Float32. This simplifies the code immensely by only +having one format to screw with. It also makes life easy for end-user +callbacks. A native Float32 format should be added to SDL, too, so there +isn't unnecessary conversion if we can avoid it (i.e. - a CoreAudio backend). + +- "Chunks" are just Sound_Samples...you can lock the mixer to screw with them +(i.e. - seeking in a playing Sample, etc). The mixer adds some opaque state +to Sound_Sample (current play position, how much is decoded, etc), some of +which can be queried and set. + +- There is no "stopped" state. You are either in the playing list or you are +not, but state doesn't reset, so removing a sample from the list is more like +pausing it. If you put it back in the playing list without rewinding it, it +starts where it was. + +- Fire and forget mixing is easy; flag a sample as "auto free" and it'll +delete itself when it's done playing. No need to set up a callback just to +clean up. + +- No channels. You can mix as many samples as you have resources to +accomodate. + +- No groups. This can be layered on top of the library if needed. If you +need atomic operations, lock the mixer. + +- No music channel. Samples are samples. You can mix a MIDI as a sound effect +if you want, or a WAV file for background music. If you have the horsepower +to decode multiple compressed files at once, go for it. + +- You can prebuffer/predecode as much of a sample as you like. + +- Every sample mixes with a per-channel gain, plus a master gain that is +global to the mixer. + +- Can handle non-power of two resampling. + +- post mix hook, sample finished hook. Effects callback? + + + + +