Files

296 lines
9.8 KiB
Odin

// Generated by core/sys/android/_gen/generate.py from the Android NDK headers. DO NOT EDIT.
// Source: <android/sensor.h> (NDK r30, 30.0.16248370)
#+build linux
package android
import "core:c"
foreign import libandroid "system:android"
ASensorType :: enum i32 {
INVALID = -1,
ACCELEROMETER = 1,
MAGNETIC_FIELD = 2,
GYROSCOPE = 4,
LIGHT = 5,
PRESSURE = 6,
PROXIMITY = 8,
GRAVITY = 9,
LINEAR_ACCELERATION = 10,
ROTATION_VECTOR = 11,
RELATIVE_HUMIDITY = 12,
AMBIENT_TEMPERATURE = 13,
MAGNETIC_FIELD_UNCALIBRATED = 14,
GAME_ROTATION_VECTOR = 15,
GYROSCOPE_UNCALIBRATED = 16,
SIGNIFICANT_MOTION = 17,
STEP_DETECTOR = 18,
STEP_COUNTER = 19,
GEOMAGNETIC_ROTATION_VECTOR = 20,
HEART_RATE = 21,
POSE_6DOF = 28,
STATIONARY_DETECT = 29,
MOTION_DETECT = 30,
HEART_BEAT = 31,
DYNAMIC_SENSOR_META = 32,
ADDITIONAL_INFO = 33,
LOW_LATENCY_OFFBODY_DETECT = 34,
ACCELEROMETER_UNCALIBRATED = 35,
HINGE_ANGLE = 36,
HEAD_TRACKER = 37,
ACCELEROMETER_LIMITED_AXES = 38,
GYROSCOPE_LIMITED_AXES = 39,
ACCELEROMETER_LIMITED_AXES_UNCALIBRATED = 40,
GYROSCOPE_LIMITED_AXES_UNCALIBRATED = 41,
HEADING = 42,
MOISTURE_INTRUSION = 43,
}
ASensorStatus :: enum i8 {
NO_CONTACT = -1,
UNRELIABLE = 0,
ACCURACY_LOW = 1,
ACCURACY_MEDIUM = 2,
ACCURACY_HIGH = 3,
}
AReportingMode :: enum i32 {
INVALID = -1,
CONTINUOUS = 0,
ON_CHANGE = 1,
ONE_SHOT = 2,
SPECIAL_TRIGGER = 3,
}
ASensorDirectRate :: enum i32 {
STOP = 0,
NORMAL = 1,
FAST = 2,
VERY_FAST = 3,
}
ASensorDirectChannelType :: enum i32 {
SHARED_MEMORY = 1,
HARDWARE_BUFFER = 2,
}
ASensorAdditionalInfoType :: enum i32 {
BEGIN = 0,
END = 1,
UNTRACKED_DELAY = 0x10000,
INTERNAL_TEMPERATURE = 65537,
VEC3_CALIBRATION = 65538,
SENSOR_PLACEMENT = 65539,
SAMPLING = 65540,
}
ASensorVector :: struct {
using _: struct #raw_union {
v: [3]f32,
using _: struct {
x: f32,
y: f32,
z: f32,
},
using _: struct {
azimuth: f32,
pitch: f32,
roll: f32,
},
},
status: ASensorStatus,
reserved: [3]u8,
}
AMetaDataEvent :: struct {
what: i32,
sensor: i32,
}
AUncalibratedEvent :: struct {
using _: struct #raw_union {
uncalib: [3]f32,
using _: struct {
x_uncalib: f32,
y_uncalib: f32,
z_uncalib: f32,
},
},
using _: struct #raw_union {
bias: [3]f32,
using _: struct {
x_bias: f32,
y_bias: f32,
z_bias: f32,
},
},
}
AHeartRateEvent :: struct {
bpm: f32,
status: i8,
}
ADynamicSensorEvent :: struct {
connected: i32,
handle: i32,
}
AAdditionalInfoEvent :: struct {
type: ASensorAdditionalInfoType,
serial: i32,
using _: struct #raw_union {
data_int32: [14]i32,
data_float: [14]f32,
},
}
AHeadTrackerEvent :: struct {
rx: f32,
ry: f32,
rz: f32,
vx: f32,
vy: f32,
vz: f32,
discontinuity_count: i32,
}
ALimitedAxesImuEvent :: struct {
using _: struct #raw_union {
calib: [3]f32,
using _: struct {
x: f32,
y: f32,
z: f32,
},
},
using _: struct #raw_union {
supported: [3]f32,
using _: struct {
x_supported: f32,
y_supported: f32,
z_supported: f32,
},
},
}
ALimitedAxesImuUncalibratedEvent :: struct {
using _: struct #raw_union {
uncalib: [3]f32,
using _: struct {
x_uncalib: f32,
y_uncalib: f32,
z_uncalib: f32,
},
},
using _: struct #raw_union {
bias: [3]f32,
using _: struct {
x_bias: f32,
y_bias: f32,
z_bias: f32,
},
},
using _: struct #raw_union {
supported: [3]f32,
using _: struct {
x_supported: f32,
y_supported: f32,
z_supported: f32,
},
},
}
AHeadingEvent :: struct {
heading: f32,
accuracy: f32,
}
ASensorEvent :: struct {
version: i32,
sensor: i32,
type: ASensorType,
reserved0: i32,
timestamp: i64,
using _: struct #raw_union {
using _: struct #raw_union {
data: [16]f32,
vector: ASensorVector,
acceleration: ASensorVector,
gyro: ASensorVector,
magnetic: ASensorVector,
temperature: f32,
distance: f32,
light: f32,
pressure: f32,
relative_humidity: f32,
uncalibrated_acceleration: AUncalibratedEvent,
uncalibrated_gyro: AUncalibratedEvent,
uncalibrated_magnetic: AUncalibratedEvent,
meta_data: AMetaDataEvent,
heart_rate: AHeartRateEvent,
dynamic_sensor_meta: ADynamicSensorEvent,
additional_info: AAdditionalInfoEvent,
head_tracker: AHeadTrackerEvent,
limited_axes_imu: ALimitedAxesImuEvent,
limited_axes_imu_uncalibrated: ALimitedAxesImuUncalibratedEvent,
heading: AHeadingEvent,
},
u64: struct #raw_union {
data: [8]u64,
step_counter: u64,
},
},
flags: u32,
reserved1: [3]i32,
}
ASensorManager :: struct {}
ASensorEventQueue :: struct {}
ASensor :: struct {}
ASensorRef :: ^ASensor
ASensorList :: ^ASensorRef
ASENSOR_FIFO_COUNT_INVALID :: -1
ASENSOR_DELAY_INVALID :: -2147483648
ASENSOR_INVALID :: -1
ASENSOR_STANDARD_GRAVITY :: 9.80665
ASENSOR_MAGNETIC_FIELD_EARTH_MAX :: 60.0
ASENSOR_MAGNETIC_FIELD_EARTH_MIN :: 30.0
@(default_calling_convention="c")
foreign libandroid {
ASensorManager_getInstance :: proc() -> ^ASensorManager ---
ASensorManager_getInstanceForPackage :: proc(packageName: cstring) -> ^ASensorManager ---
ASensorManager_getSensorList :: proc(manager: ^ASensorManager, list: ^ASensorList) -> c.int ---
ASensorManager_getDynamicSensorList :: proc(manager: ^ASensorManager, list: ^ASensorList) -> c.ssize_t --- // API level 33
ASensorManager_getDefaultSensor :: proc(manager: ^ASensorManager, type: ASensorType) -> ^ASensor ---
ASensorManager_getDefaultSensorEx :: proc(manager: ^ASensorManager, type: ASensorType, wakeUp: bool) -> ^ASensor ---
ASensorManager_createEventQueue :: proc(manager: ^ASensorManager, looper: ^ALooper, ident: c.int, callback: ALooper_callbackFunc, data: rawptr) -> ^ASensorEventQueue ---
ASensorManager_destroyEventQueue :: proc(manager: ^ASensorManager, queue: ^ASensorEventQueue) -> c.int ---
ASensorManager_createSharedMemoryDirectChannel :: proc(manager: ^ASensorManager, fd: c.int, size: c.size_t) -> c.int ---
ASensorManager_createHardwareBufferDirectChannel :: proc(manager: ^ASensorManager, buffer: ^AHardwareBuffer, size: c.size_t) -> c.int ---
ASensorManager_destroyDirectChannel :: proc(manager: ^ASensorManager, channelId: c.int) ---
ASensorManager_configureDirectReport :: proc(manager: ^ASensorManager, sensor: ^ASensor, channelId: c.int, rate: ASensorDirectRate) -> c.int ---
ASensorEventQueue_registerSensor :: proc(queue: ^ASensorEventQueue, sensor: ^ASensor, samplingPeriodUs: i32, maxBatchReportLatencyUs: i64) -> c.int ---
ASensorEventQueue_enableSensor :: proc(queue: ^ASensorEventQueue, sensor: ^ASensor) -> c.int ---
ASensorEventQueue_disableSensor :: proc(queue: ^ASensorEventQueue, sensor: ^ASensor) -> c.int ---
ASensorEventQueue_setEventRate :: proc(queue: ^ASensorEventQueue, sensor: ^ASensor, usec: i32) -> c.int ---
ASensorEventQueue_hasEvents :: proc(queue: ^ASensorEventQueue) -> c.int ---
ASensorEventQueue_getEvents :: proc(queue: ^ASensorEventQueue, events: ^ASensorEvent, count: c.size_t) -> c.ssize_t ---
ASensorEventQueue_requestAdditionalInfoEvents :: proc(queue: ^ASensorEventQueue, enable: bool) -> c.int ---
ASensor_getName :: proc(sensor: ^ASensor) -> cstring ---
ASensor_getVendor :: proc(sensor: ^ASensor) -> cstring ---
ASensor_getType :: proc(sensor: ^ASensor) -> ASensorType ---
ASensor_getResolution :: proc(sensor: ^ASensor) -> f32 ---
ASensor_getMinDelay :: proc(sensor: ^ASensor) -> c.int ---
ASensor_getFifoMaxEventCount :: proc(sensor: ^ASensor) -> c.int ---
ASensor_getFifoReservedEventCount :: proc(sensor: ^ASensor) -> c.int ---
ASensor_getStringType :: proc(sensor: ^ASensor) -> cstring ---
ASensor_getReportingMode :: proc(sensor: ^ASensor) -> AReportingMode ---
ASensor_isWakeUpSensor :: proc(sensor: ^ASensor) -> bool ---
ASensor_isDirectChannelTypeSupported :: proc(sensor: ^ASensor, channelType: ASensorDirectChannelType) -> bool ---
ASensor_getHighestDirectReportRateLevel :: proc(sensor: ^ASensor) -> ASensorDirectRate ---
ASensor_getHandle :: proc(sensor: ^ASensor) -> c.int ---
}