/*
 *  call-seq:
 *    load( filename )  ->  music
 *
 *  Load the given audio file.
 *  Supported file formats are WAVE, MOD, MIDI, OGG, and MP3.
 *
 *  filename::    Full or relative path to the file. (String, required)
 *
 *  Returns::     The new Music instance. (Music)
 *  May raise::   SDLError, if the music file could not be loaded.
 *
 */
static VALUE rg_music_load( VALUE klass, VALUE filename )
{
  RG_Music *music;

  VALUE s = rg_music_alloc( cMusic );

  Data_Get_Struct( s, RG_Music, music );

  char *file = StringValuePtr( filename );

  int result = _rg_music_load( music, file );

  if( result == -1 )
  {
    rb_raise(eSDLError, "Could not load Music file '%s': %s",
                        file, Mix_GetError());
  }

  return s;
}