168 lines
5.1 KiB
Rust
168 lines
5.1 KiB
Rust
use core::ffi::{c_char, c_int, c_long, c_size_t, c_uchar, c_uint, c_ulong};
|
|
|
|
extern "C" {
|
|
#[link_name = "arduboy_begin"]
|
|
pub fn begin();
|
|
|
|
#[link_name = "arduboy_clear"]
|
|
pub fn clear();
|
|
|
|
#[link_name = "arduboy_display"]
|
|
pub fn display();
|
|
|
|
#[link_name = "arduboy_display_and_clear_buffer"]
|
|
pub fn display_and_clear_buffer();
|
|
|
|
#[link_name = "arduboy_draw_fast_hline"]
|
|
pub fn draw_fast_hline_raw(x: i16, y: i16, w: u8, color: u8);
|
|
|
|
#[link_name = "arduboy_draw_fast_vline"]
|
|
pub fn draw_fast_vline_raw(x: i16, y: i16, h: u8, color: u8);
|
|
|
|
#[link_name = "arduboy_draw_pixel"]
|
|
pub fn draw_pixel_raw(x: i16, y: i16, color: u8);
|
|
|
|
#[link_name = "arduboy_draw_circle"]
|
|
pub fn draw_circle_raw(x: i16, y: i16, r: u8, color: u8);
|
|
|
|
#[link_name = "arduboy_draw_rect"]
|
|
pub fn draw_rect_raw(x: i16, y: i16, w: u8, h: u8, color: u8);
|
|
|
|
#[link_name = "arduboy_fill_circle"]
|
|
pub fn fill_circle_raw(x: i16, y: i16, r: u8, color: u8);
|
|
|
|
#[link_name = "arduboy_fill_rect"]
|
|
pub fn fill_rect_raw(x: i16, y: i16, w: u8, h: u8, color: u8);
|
|
|
|
#[link_name = "arduboy_fill_round_rect"]
|
|
pub fn fill_round_rect(x: i16, y: i16, w: u8, h: u8, r: u8, color: u8);
|
|
|
|
#[link_name = "arduboy_draw_round_rect"]
|
|
pub fn draw_round_rect(x: i16, y: i16, w: u8, h: u8, r: u8, color: u8);
|
|
|
|
#[link_name = "arduboy_fill_triangle"]
|
|
pub fn fill_triangle(x0: i16, y0: i16, x1: i16, y1: i16, x2: i16, y2: i16, color: u8);
|
|
|
|
#[link_name = "arduboy_draw_triangle"]
|
|
pub fn draw_triangle(x0: i16, y0: i16, x1: i16, y1: i16, x2: i16, y2: i16, color: u8);
|
|
|
|
#[link_name = "arduboy_get_pixel"]
|
|
pub fn get_pixel_raw(x: u8, y: u8) -> u8;
|
|
|
|
#[link_name = "arduboy_init_random_seed"]
|
|
pub fn init_random_seed();
|
|
|
|
#[link_name = "arduboy_just_pressed"]
|
|
pub fn just_pressed(button: u8) -> bool;
|
|
|
|
#[link_name = "arduboy_just_released"]
|
|
pub fn just_released(button: u8) -> bool;
|
|
|
|
#[link_name = "arduboy_not_pressed"]
|
|
pub fn not_pressed(button: u8) -> bool;
|
|
|
|
#[link_name = "arduboy_next_frame"]
|
|
pub fn next_frame() -> bool;
|
|
|
|
#[link_name = "arduboy_poll_buttons"]
|
|
pub fn poll_buttons();
|
|
|
|
#[link_name = "arduboy_pressed"]
|
|
pub fn pressed(buttons: u8) -> bool;
|
|
|
|
#[link_name = "arduboy_print_chars"]
|
|
pub fn print_chars(cstr: *const c_char);
|
|
|
|
#[link_name = "arduboy_print_chars_progmem"]
|
|
pub fn print_chars_progmem(pstring: *const c_char);
|
|
|
|
// #[link_name = "arduboy_print_char"]
|
|
// fn print_char(c: c_char) -> c_size_t;
|
|
|
|
#[link_name = "arduboy_print_int"]
|
|
pub fn print_int(n: c_int, base: c_int) -> c_size_t;
|
|
|
|
#[link_name = "arduboy_print_long"]
|
|
pub fn print_long(n: c_long, base: c_int) -> c_size_t;
|
|
|
|
#[link_name = "arduboy_print_unsigned_char"]
|
|
pub fn print_unsigned_char(n: c_uchar, base: c_int) -> c_size_t;
|
|
|
|
#[link_name = "arduboy_print_unsigned_int"]
|
|
pub fn print_unsigned_int(n: c_uint, base: c_int) -> c_size_t;
|
|
|
|
#[link_name = "arduboy_print_unsigned_long"]
|
|
pub fn print_unsigned_long(n: c_ulong, base: c_int) -> c_size_t;
|
|
|
|
#[link_name = "arduboy_set_cursor"]
|
|
pub fn set_cursor(x: i16, y: i16);
|
|
|
|
#[link_name = "arduboy_set_frame_rate"]
|
|
pub fn set_frame_rate(rate: u8);
|
|
|
|
#[link_name = "arduboy_set_text_size"]
|
|
pub fn set_text_size(size: u8);
|
|
|
|
#[link_name = "arduboy_audio_on"]
|
|
pub fn arduboy_audio_on();
|
|
|
|
#[link_name = "arduboy_audio_off"]
|
|
pub fn arduboy_audio_off();
|
|
|
|
#[link_name = "arduboy_audio_save_on_off"]
|
|
pub fn arduboy_audio_save_on_off();
|
|
|
|
#[link_name = "arduboy_audio_toggle"]
|
|
pub fn arduboy_audio_toggle();
|
|
|
|
#[link_name = "arduboy_audio_enabled"]
|
|
pub fn arduboy_audio_enabled() -> bool;
|
|
|
|
#[link_name = "arduboy_invert"]
|
|
pub fn arduboy_invert(inverse: bool);
|
|
|
|
#[link_name = "arduboy_every_x_frames"]
|
|
pub fn every_x_frames(frames: u8) -> bool;
|
|
|
|
#[link_name = "arduboy_flip_horizontal"]
|
|
pub fn flip_horizontal(flipped: bool);
|
|
|
|
#[link_name = "arduboy_flip_vertical"]
|
|
pub fn flip_vertical(flipped: bool);
|
|
|
|
#[link_name = "arduboy_set_text_color"]
|
|
pub fn set_text_color(color: u8);
|
|
|
|
#[link_name = "arduboy_set_text_background_color"]
|
|
pub fn set_text_background_color(color: u8);
|
|
|
|
#[link_name = "arduboy_set_cursor_x"]
|
|
pub fn set_cursor_x(x: i16);
|
|
|
|
#[link_name = "arduboy_set_cursor_y"]
|
|
pub fn set_cursor_y(y: i16);
|
|
|
|
#[link_name = "arduboy_set_text_wrap"]
|
|
pub fn set_text_wrap(w: bool);
|
|
|
|
#[link_name = "arduboy_idle"]
|
|
pub fn idle();
|
|
|
|
#[link_name = "arduboy_digital_write_rgb_single"]
|
|
pub fn digital_write_rgb_single(color: c_uchar, val: c_uchar);
|
|
|
|
#[link_name = "arduboy_digital_write_rgb"]
|
|
pub fn digital_write_rgb(red: c_uchar, green: c_uchar, blue: c_uchar);
|
|
|
|
#[link_name = "arduboy_set_rgb_led_single"]
|
|
pub fn set_rgb_led_single(color: c_uchar, val: c_uchar);
|
|
|
|
#[link_name = "arduboy_set_rgb_led"]
|
|
pub fn set_rgb_led(red: c_uchar, green: c_uchar, blue: c_uchar);
|
|
|
|
#[link_name = "arduboy_buttons_state"]
|
|
pub fn arduboy_buttons_state() -> u8;
|
|
|
|
#[link_name = "arduboy_exit_to_bootloader"]
|
|
pub fn arduboy_exit_to_bootloader();
|
|
}
|