static int audio_initialized = 0;
static SDL_Window *gl_window = NULL;
static SDL_GLContext gl_context = NULL;
+static void (*keyboard_sdl)(int down, SDL_Keycode sym) = NULL;
+static void (*audio_sdl)(float *data, int len) = NULL;
static void audio_cb(void __attribute__((unused)) *userdata, Uint8 *stream, int len)
{
SDL_MixAudio(stream, (Uint8 *)audio_data, len, SDL_MIX_MAXVOLUME);
}
-int init_sdl(const char *progname, int width, int height, int sound_samplerate, int sound_chunk)
+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 rc;
+ keyboard_sdl = keyboard;
+ audio_sdl = audio;
+
/* init SDL library */
rc = SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO);
if (rc < 0) {