/* 
 *  call-seq:
 *    new( n )  ->  Joystick
 *
 *  Create and initialize an interface to the nth joystick on the
 *  system. Raises SDLError if the joystick could not be opened.
 */
VALUE rbgm_joystick_new( int argc, VALUE *argv, VALUE module)
{
        VALUE self;
        SDL_Joystick *joy;
        int index;

        if(argc < 1)
                rb_raise(rb_eArgError,"wrong number of arguments (%d for 1)",argc);
        index = NUM2INT(argv[0]);

        joy = SDL_JoystickOpen(index);
        if(joy == NULL)
        {
                rb_raise(eSDLError,"Could not open joystick %d: %s",\
                        index,SDL_GetError());
        }
        self = Data_Wrap_Struct(cJoy, 0,SDL_JoystickClose, joy);
        rb_obj_call_init(self,argc,argv);
        return self;
}