use core::ffi::*;
pub const NUM_V5_PORTS: usize = 21;
pub const COMPETITION_AUTONOMOUS: u8 = 1 << 0;
pub const COMPETITION_DISABLED: u8 = 1 << 1;
pub const COMPETITION_CONNECTED: u8 = 1 << 2;
extern "C" {
pub fn competition_get_status() -> u8;
}
pub const E_CONTROLLER_MASTER: c_uint = 0;
pub const E_CONTROLLER_PARTNER: c_uint = 1;
pub type controller_id_e_t = c_uint;
pub const E_CONTROLLER_ANALOG_LEFT_X: c_uint = 0;
pub const E_CONTROLLER_ANALOG_LEFT_Y: c_uint = 1;
pub const E_CONTROLLER_ANALOG_RIGHT_X: c_uint = 2;
pub const E_CONTROLLER_ANALOG_RIGHT_Y: c_uint = 3;
pub type controller_analog_e_t = c_uint;
pub const E_CONTROLLER_DIGITAL_L1: c_uint = 6;
pub const E_CONTROLLER_DIGITAL_L2: c_uint = 7;
pub const E_CONTROLLER_DIGITAL_R1: c_uint = 8;
pub const E_CONTROLLER_DIGITAL_R2: c_uint = 9;
pub const E_CONTROLLER_DIGITAL_UP: c_uint = 10;
pub const E_CONTROLLER_DIGITAL_DOWN: c_uint = 11;
pub const E_CONTROLLER_DIGITAL_LEFT: c_uint = 12;
pub const E_CONTROLLER_DIGITAL_RIGHT: c_uint = 13;
pub const E_CONTROLLER_DIGITAL_X: c_uint = 14;
pub const E_CONTROLLER_DIGITAL_B: c_uint = 15;
pub const E_CONTROLLER_DIGITAL_Y: c_uint = 16;
pub const E_CONTROLLER_DIGITAL_A: c_uint = 17;
pub type controller_digital_e_t = c_uint;
extern "C" {
pub fn controller_is_connected(id: controller_id_e_t) -> i32;
pub fn controller_get_analog(id: controller_id_e_t, channel: controller_analog_e_t) -> i32;
pub fn controller_get_battery_capacity(id: controller_id_e_t) -> i32;
pub fn controller_get_battery_level(id: controller_id_e_t) -> i32;
pub fn controller_get_digital(id: controller_id_e_t, button: controller_digital_e_t) -> i32;
pub fn controller_get_digital_new_press(
id: controller_id_e_t,
button: controller_digital_e_t,
) -> i32;
pub fn controller_print(
id: controller_id_e_t,
line: u8,
col: u8,
fmt: *const c_char,
...
) -> i32;
pub fn controller_set_text(
id: controller_id_e_t,
line: u8,
col: u8,
string: *const c_char,
) -> i32;
pub fn controller_clear_line(id: controller_id_e_t, line: u8) -> i32;
pub fn controller_clear(id: controller_id_e_t) -> i32;
pub fn controller_rumble(id: controller_id_e_t, rumble: *const c_char) -> i32;
}
extern "C" {
pub static mut baked_date: *const c_char;
pub static mut baked_time: *const c_char;
}
#[repr(C)]
pub struct date_s_t {
pub year: u16,
pub day: u8,
pub month: u8,
}
#[repr(C)]
pub struct time_s_t {
pub hour: u8,
pub minute: u8,
pub sec: u8,
pub sec_hund: u8,
}
extern "C" {
pub fn battery_get_voltage() -> i32;
pub fn battery_get_current() -> i32;
pub fn battery_get_temperature() -> f64;
pub fn battery_get_capacity() -> f64;
pub fn usd_is_installed() -> i32;
}