48 lines
1.3 KiB
C
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);
|
|
|