1
0
Fork 0
undar-lang-register/src/arch/linux/devices.h

48 lines
1.3 KiB
C

#include "../../device.h"
#include "../../vm.h"
#include <SDL2/SDL.h>
/* 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);