/* 
 *  call-seq:
 *    enable_key_repeat( delay=:default, interval=:default )
 *
 *  Enable key repeat, so that additional keyboard release and press
 *  events are automatically generated for as long as the key is held
 *  down. See also #disable_key_repeat.
 *
 *  delay::    how many seconds to wait before starting to repeat.
 *             Default is 0.5 seconds. (Numeric or :default, optional)
 *
 *  interval:: how many seconds to wait in between repetitions after
 *             the first one. Default is 0.03 seconds. 
 *             (Numeric or :default, optional)
 *
 */
VALUE rg_enable_key_repeat(int argc, VALUE *argv, VALUE module)
{

        VALUE vdelay, vinterval;
        rb_scan_args(argc, argv, "02", &vdelay, &vinterval);


        int delay = rg_get_keyrepeat_value( vdelay,
                                            SDL_DEFAULT_REPEAT_DELAY,
                                            "delay" );

        int interval = rg_get_keyrepeat_value( vinterval,
                                               SDL_DEFAULT_REPEAT_INTERVAL,
                                               "interval" );


        int result = SDL_EnableKeyRepeat( delay, interval );

        if (result != 0) {
                rb_raise(eSDLError, "Could not enable key repeat: %s",
                         SDL_GetError());
        }

        return Qnil;
}