Major SDL_mixer patch available

As promised, here’s that’s SDL_mixer patch.

The Goods:

  • The mixer effects API.
  • New APIs for the mixer: Mix_Linked_Version() and MIX_VERSION() that work
    like their SDL counterparts.
  • The following standard effects: panning, distance attenuation, basic
    positional audio, stereo channel reverse.
  • (To demonstrate effects done ahead of time on a whole Mix_Chunk without
    the effects API) a command line has been added to playwave.c (-F) to
    reverse an entire sample, like playing a record backwards.
  • -f (lowercase) command line to playwave.c to allow stereo channel
    reversal (using the effects API).
  • Reworkings of playwave.c to make it more useful as a mixer testbed; see
    the defines at the top (TEST_MIX_VERSIONS, TEST_MIX_PANNING, etc) for
    examples.
  • Various tests of standard effects optionally compiled into playwave.c.
  • Probably other nifty stuff.

This can be grabbed from:
http://icculus.org/misc/SDL-mixer-effects-final-RYAN1.diff

Patch is about 60k; apply to latest CVS of SDL_mixer.

Please read the comments in SDL_mixer.h for the lowdown on using the
effects API, and what cryptic things like MIX_EFFECTSMAXSPEED can do for
you. Starts around line 157.

Note that the API itself has changed since that last patch to be (I think)
more straightforward and clean. Also, the planned reverb effect hasn’t
been written for technical reasons; please email me if you’d like to
tackle this.

Could those maintaining the MacOS and Visual C packages take a look at
integrating this stuff into their project files/Makefiles/whatever?
Thanks!

Comments/questions/complaints/compliments/pizza go to: @icculus1

–ryan.