77 lines
2.3 KiB
Zig
77 lines
2.3 KiB
Zig
const std = @import("std");
|
|
pub const c = @import("c.zig").c;
|
|
|
|
pub const PropertiesID = u32;
|
|
|
|
pub const Sensor = opaque {
|
|
pub inline fn getSensorProperties(sensor: *Sensor) PropertiesID {
|
|
return c.SDL_GetSensorProperties(@ptrCast(sensor));
|
|
}
|
|
|
|
pub inline fn getSensorName(sensor: *Sensor) [*c]const u8 {
|
|
return c.SDL_GetSensorName(@ptrCast(sensor));
|
|
}
|
|
|
|
pub inline fn getSensorType(sensor: *Sensor) SensorType {
|
|
return @intFromEnum(c.SDL_GetSensorType(@ptrCast(sensor)));
|
|
}
|
|
|
|
pub inline fn getSensorNonPortableType(sensor: *Sensor) c_int {
|
|
return c.SDL_GetSensorNonPortableType(@ptrCast(sensor));
|
|
}
|
|
|
|
pub inline fn getSensorID(sensor: *Sensor) SensorID {
|
|
return c.SDL_GetSensorID(@ptrCast(sensor));
|
|
}
|
|
|
|
pub inline fn getSensorData(sensor: *Sensor, data: *f32, num_values: c_int) bool {
|
|
return @bitCast(c.SDL_GetSensorData(@ptrCast(sensor), @ptrCast(data), num_values));
|
|
}
|
|
|
|
pub inline fn closeSensor(sensor: *Sensor) void {
|
|
return c.SDL_CloseSensor(@ptrCast(sensor));
|
|
}
|
|
};
|
|
|
|
pub const SensorID = u32;
|
|
|
|
pub const SensorType = enum(c_int) {
|
|
sensorInvalid = -1, //Returned for an invalid sensor
|
|
sensorUnknown, //Unknown sensor type
|
|
sensorAccel, //Accelerometer
|
|
sensorGyro, //Gyroscope
|
|
sensorAccelL, //Accelerometer for left Joy-Con controller and Wii nunchuk
|
|
sensorGyroL, //Gyroscope for left Joy-Con controller
|
|
sensorAccelR, //Accelerometer for right Joy-Con controller
|
|
sensorGyroR, //Gyroscope for right Joy-Con controller
|
|
sensorCount,
|
|
};
|
|
|
|
pub inline fn getSensors(count: *c_int) ?*SensorID {
|
|
return @ptrCast(c.SDL_GetSensors(@ptrCast(count)));
|
|
}
|
|
|
|
pub inline fn getSensorNameForID(instance_id: SensorID) [*c]const u8 {
|
|
return c.SDL_GetSensorNameForID(instance_id);
|
|
}
|
|
|
|
pub inline fn getSensorTypeForID(instance_id: SensorID) SensorType {
|
|
return @intFromEnum(c.SDL_GetSensorTypeForID(instance_id));
|
|
}
|
|
|
|
pub inline fn getSensorNonPortableTypeForID(instance_id: SensorID) c_int {
|
|
return c.SDL_GetSensorNonPortableTypeForID(instance_id);
|
|
}
|
|
|
|
pub inline fn openSensor(instance_id: SensorID) ?*Sensor {
|
|
return @ptrCast(c.SDL_OpenSensor(instance_id));
|
|
}
|
|
|
|
pub inline fn getSensorFromID(instance_id: SensorID) ?*Sensor {
|
|
return @ptrCast(c.SDL_GetSensorFromID(instance_id));
|
|
}
|
|
|
|
pub inline fn updateSensors() void {
|
|
return c.SDL_UpdateSensors();
|
|
}
|