return TRUE;
}
-flxTimeEventQueue* flx_time_event_queue_new(GMainContext *context) {
+flxTimeEventQueue* flx_time_event_queue_new(GMainContext *context, gint priority) {
flxTimeEventQueue *q;
static GSourceFuncs source_funcs = {
q = (flxTimeEventQueue*) g_source_new(&source_funcs, sizeof(flxTimeEventQueue));
q->prioq = flx_prio_queue_new(compare);
+ g_source_set_priority((GSource*) q, priority);
+
g_source_attach(&q->source, context);
return q;
g_free(e);
}
-void flx_time_event_update(flxTimeEventQueue *q, flxTimeEvent *e, const GTimeVal *timeval) {
+void flx_time_event_queue_update(flxTimeEventQueue *q, flxTimeEvent *e, const GTimeVal *timeval) {
g_assert(q);
g_assert(e);
g_assert(e->queue == q);
flx_prio_queue_shuffle(q->prioq, e->node);
}
+
+flxTimeEvent* flx_time_event_queue_root(flxTimeEventQueue *q) {
+ g_assert(q);
+
+ return q->prioq->root ? q->prioq->root->data : NULL;
+}
+
+flxTimeEvent* flx_time_event_next(flxTimeEvent *e) {
+ g_assert(e);
+
+ return e->node->next->data;
+}
+
+