mirror of
https://github.com/odin-lang/Odin.git
synced 2026-11-01 16:28:30 -05:00
296 lines
9.8 KiB
Odin
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 ---
|
|
}
|