X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=libchimara%2Fchimara-glk-private.h;h=5a73939a8384748078f6c9375e504ac38c7c7c95;hb=e4a75256e901a89729c48fcc2f9229cd0cfe9124;hp=e4f4123f5a00e9bd8dc00ed3817532a78718d456;hpb=a2474e2c470e7a6bcec4c5547440238de3163add;p=projects%2Fchimara%2Fchimara.git diff --git a/libchimara/chimara-glk-private.h b/libchimara/chimara-glk-private.h index e4f4123..5a73939 100644 --- a/libchimara/chimara-glk-private.h +++ b/libchimara/chimara-glk-private.h @@ -30,7 +30,6 @@ struct _ChimaraGlkPrivate { /* Hashtable containing the current styles set by CSS and GLK */ struct StyleSet *styles; struct StyleSet *glk_styles; - PangoAttrList *pager_attr_list; /* Final message displayed when game exits */ gchar *final_message; /* Image cache */ @@ -39,33 +38,35 @@ struct _ChimaraGlkPrivate { /* *** Threading data *** */ /* Whether program is running */ gboolean running; + /* Whether widget has been finalized */ + gboolean after_finalize; /* Glk program loaded in widget */ GModule *program; /* Thread in which Glk program is run */ GThread *thread; /* Event queue and threading stuff */ GQueue *event_queue; - GMutex *event_lock; - GCond *event_queue_not_empty; - GCond *event_queue_not_full; + GMutex event_lock; + GCond event_queue_not_empty; + GCond event_queue_not_full; /* Abort mechanism */ - GMutex *abort_lock; + GMutex abort_lock; gboolean abort_signalled; /* Key press after shutdown mechanism */ - GMutex *shutdown_lock; - GCond *shutdown_key_pressed; + GMutex shutdown_lock; + GCond shutdown_key_pressed; /* Window arrangement locks */ - GMutex *arrange_lock; - GCond *rearranged; + GMutex arrange_lock; + GCond rearranged; gboolean needs_rearrange; gboolean ignore_next_arrange_event; /* Input queues */ GAsyncQueue *char_input_queue; GAsyncQueue *line_input_queue; /* Resource loading locks */ - GMutex *resource_lock; - GCond *resource_loaded; - GCond *resource_info_available; + GMutex resource_lock; + GCond resource_loaded; + GCond resource_info_available; guint32 resource_available; /* *** Glk library data *** */ @@ -83,6 +84,8 @@ struct _ChimaraGlkPrivate { strid_t current_stream; /* List of streams currently in existence */ GList *stream_list; + /* List of sound channels currently in existence */ + GList *schannel_list; /* Current timer */ guint timer_id; /* Current resource blorb map */ @@ -92,6 +95,7 @@ struct _ChimaraGlkPrivate { /* Optional callback for loading resource data */ ChimaraResourceLoadFunc resource_load_callback; gpointer resource_load_callback_data; + GDestroyNotify resource_load_callback_destroy_data; /* Callbacks for registering and unregistering dispatch objects */ gidispatch_rock_t (*register_obj)(void *, glui32); void (*unregister_obj)(void *, glui32, gidispatch_rock_t);