-#include <SDL2/SDL.h>
-int init_sdl(const char *progname, int width, int height, int sound_samplerate, int sound_chunk, void (*keyboard)(int down, SDL_Keycode sym), void (*audio)(float *data, int len), int multisampling);
+enum keycode {
+ KEYCODE_UNDEFINED = 0,
+ KEYCODE_LCTRL,
+ KEYCODE_RCTRL,
+ KEYCODE_LSHIFT,
+ KEYCODE_RSHIFT,
+ KEYCODE_PAUSE,
+ KEYCODE_LEFT,
+ KEYCODE_RIGHT,
+ KEYCODE_UP,
+ KEYCODE_DOWN,
+ KEYCODE_END,
+ KEYCODE_a,
+ KEYCODE_b,
+ KEYCODE_c,
+ KEYCODE_d,
+ KEYCODE_e,
+ KEYCODE_f,
+ KEYCODE_g,
+ KEYCODE_h,
+ KEYCODE_i,
+ KEYCODE_j,
+ KEYCODE_k,
+ KEYCODE_l,
+ KEYCODE_m,
+ KEYCODE_n,
+ KEYCODE_o,
+ KEYCODE_p,
+ KEYCODE_q,
+ KEYCODE_r,
+ KEYCODE_s,
+ KEYCODE_t,
+ KEYCODE_u,
+ KEYCODE_v,
+ KEYCODE_w,
+ KEYCODE_x,
+ KEYCODE_y,
+ KEYCODE_z,
+ KEYCODE_0,
+ KEYCODE_1,
+ KEYCODE_2,
+ KEYCODE_3,
+ KEYCODE_4,
+ KEYCODE_5,
+ KEYCODE_6,
+ KEYCODE_7,
+ KEYCODE_8,
+ KEYCODE_9,
+ KEYCODE_KP_0,
+ KEYCODE_KP_1,
+ KEYCODE_KP_2,
+ KEYCODE_KP_3,
+ KEYCODE_KP_4,
+ KEYCODE_KP_5,
+ KEYCODE_KP_6,
+ KEYCODE_KP_7,
+ KEYCODE_KP_8,
+ KEYCODE_KP_9,
+ KEYCODE_KP_DIVIDE,
+ KEYCODE_KP_MULTIPLY,
+ KEYCODE_KP_MINUS,
+ KEYCODE_KP_PLUS,
+ KEYCODE_KP_PERIOD,
+ KEYCODE_F1,
+ KEYCODE_F2,
+ KEYCODE_F3,
+ KEYCODE_F4,
+ KEYCODE_F5,
+ KEYCODE_F6,
+ KEYCODE_F7,
+ KEYCODE_F8,
+ KEYCODE_F9,
+ KEYCODE_F10,
+ KEYCODE_SPACE,
+ KEYCODE_BACKSPACE,
+ KEYCODE_TAB,
+ KEYCODE_KP_ENTER,
+ KEYCODE_RETURN,
+ KEYCODE_ESCAPE,
+ KEYCODE_DELETE,
+ KEYCODE_INSERT,
+};
+
+int init_sdl(const char *progname, int width, int height, int sound_samplerate, int sound_chunk, void (*keyboard)(int down, enum keycode keycode), void (*audio)(float *data, int len), int multisampling);
int event_sdl(void);
void swap_sdl(void);
void exit_sdl(void);
+uint32_t ticks_sdl(void);