/* * 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( VALUE module, VALUE vindex ) { VALUE self; SDL_Joystick *joy; int index; index = NUM2INT(vindex); 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, RBGM_JoystickClose, joy); return self; }