static mrb_value input_device_get_id(mrb_state *mrb, mrb_value self) { IDirectFBInputDevice* device = mrb_directfb_input_device(mrb, self); if (device != NULL) { DFBInputDeviceID id; DFBResult ret = device->GetID(device, &id); if (!ret) { return mrb_fixnum_value(id); } } return mrb_nil_value(); }