/* call-seq:
 *  open_audio( frequency, format, channels, samplesize)
 *  
 *  Initializes the audio device. You must call this before using the other
 *  mixer functions. See also #close_audio().
 *
 *  Returns nil. May raise an SDLError if initialization fails.
 *  
 *  This method takes these arguments:
 *  frequency::  output sampling frequency in samples per second (Hz).
 *               22050 is recommended for most games; 44100 is CD audio
 *               rate. The larger the value, the more processing required.
 *  format::     output sample format.
 *  channels::   output sound channels. Use 2 for stereo, 1 for mono.
 *               (this option does not affect number of mixing channels)
 *  samplesize:: bytes per output sample.
 *
 */
VALUE rbgm_mixer_openaudio(VALUE module, VALUE frequencyv, VALUE formatv, 
                           VALUE channelsv, VALUE samplesizev)
{
  int frequency, channels, samplesize;
  Uint16 format;
  
  frequency = NUM2INT(frequencyv);
  format = NUM2UINT(formatv);
  channels = NUM2INT(channelsv);
  samplesize = NUM2INT(samplesizev);

  if ( Mix_OpenAudio(frequency, format, channels, samplesize) < 0 )
  {
    rb_raise(eSDLError, "Error initializing SDL_mixer: %s", Mix_GetError());
  }

  return Qnil;
}