#include "../../device.h" #include "../../vm.h" #include /* Screen device data */ typedef struct screen_device_data_s { uint32_t width; uint32_t height; uint32_t framebuffer_pos; uint32_t framebuffer_size; VM* vm; SDL_Window *window; SDL_Renderer *renderer; SDL_Texture *texture; } ScreenDeviceData; /* Mouse device data */ typedef struct mouse_device_data_s { uint32_t x; uint32_t y; uint8_t btn1; uint8_t btn2; uint8_t btn3; uint8_t btn4; } MouseDeviceData; /* Keyboard device data */ typedef struct keyboard_device_data_s { const uint8_t *keys; int32_t key_count; } KeyboardDeviceData; int screen_open(void *data, uint32_t mode); int screen_read(void *data, uint8_t *buffer, uint32_t size); int screen_write(void *data, const uint8_t *buffer, uint32_t size); int screen_close(void *data); int mouse_open(void *data, uint32_t mode); int mouse_read(void *data, uint8_t *buffer, uint32_t size); int mouse_write(void *data, const uint8_t *buffer, uint32_t size); int mouse_close(void *data); int keyboard_open(void *data, uint32_t mode); int keyboard_read(void *data, uint8_t *buffer, uint32_t size); int keyboard_write(void *data, const uint8_t *buffer, uint32_t size); int keyboard_close(void *data);