#include "timer.h"
-extern ChimaraGlkPrivate *glk_data;
+extern GPrivate *glk_data_key;
/**
* glk_request_timer_events:
* This prevents the user from being locked out by overly enthusiastic timer
* events. Unfortunately, it also means that your timer can be locked out on
* slower machines, if the player pounds too enthusiastically on the keyboard.
- * Sorry. If you want a real-time operating system, talk to Wind River.
+ * Sorry.
* </para></note>
*
* <note><para>
void
glk_request_timer_events(glui32 millisecs)
{
+ ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+
// Stop any existing timer
if(glk_data->timer_id != 0) {
g_source_remove(glk_data->timer_id);
if(millisecs == 0)
return;
- glk_data->timer_id = g_timeout_add(millisecs, push_timer_event, NULL);
+ glk_data->timer_id = g_timeout_add(millisecs, (GSourceFunc)push_timer_event, glk_data->self);
}
/*
* Will always return TRUE
*/
gboolean
-push_timer_event(gpointer data)
+push_timer_event(ChimaraGlk *glk)
{
- event_throw(evtype_Timer, NULL, 0, 0);
+ event_throw(glk, evtype_Timer, NULL, 0, 0);
return TRUE;
}