static mrb_value input_device_get_axis(mrb_state *mrb, mrb_value self) { IDirectFBInputDevice* device = mrb_directfb_input_device(mrb, self); if (device != NULL) { DFBResult ret; int pos; mrb_int axis; mrb_get_args(mrb, "i", &axis); ret = device->GetAxis(device, axis, &pos); if (!ret) { return mrb_fixnum_value(pos); } } return mrb_nil_value(); }