#ifndef __MZAPO_SDL_H__ #define __MZAPO_SDL_H__ #include #define RGB_LEDS_COUNT 2 typedef struct { uint8_t r; uint8_t g; uint8_t b; } __attribute__((__packed__)) mzapo_sdl_rgb_led; typedef struct { mzapo_sdl_rgb_led left; uint8_t offset; mzapo_sdl_rgb_led right; } __attribute__((__packed__)) mzapo_sdl_rgb_leds; typedef uint32_t mzapo_sdl_ledstrip; typedef void (*display_command_fn)(uint16_t cmd); typedef void (*display_data_fn)(uint16_t data); typedef struct { display_command_fn cmd; display_data_fn data; } __attribute__((__packed__)) mzapo_sdl_display; typedef struct { uint32_t offset1; mzapo_sdl_ledstrip ledstrip; uint64_t offset2; mzapo_sdl_rgb_leds leds; uint8_t offset3; uint32_t reg_kbdrd_direct; uint64_t offset4; uint32_t reg_knobs_direct; uint32_t reg_knobs_8bit; } __attribute__((__packed__)) mzapo_sdl_knobs_keyboard_rgb; void mzapo_sdl_init(); void mzapo_sdl_deinit(); void *mzapo_sdl_map_phys(uint64_t region_base, uint64_t region_size); #endif // __MZAPO_SDL_H__