X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=libchimara%2Fchimara-if.h;h=89ea5c8538c8e1846ce3ef9b3558db599e73d88e;hb=6a19bed210500ab8303a0e94d74adbf2ee0e2920;hp=ea5aed0d6a2937ad09f2803a6ff0a135040d2408;hpb=0c809958984a54204a785cadc7db14d0a7cb45d7;p=rodin%2Fchimara.git diff --git a/libchimara/chimara-if.h b/libchimara/chimara-if.h index ea5aed0..89ea5c8 100644 --- a/libchimara/chimara-if.h +++ b/libchimara/chimara-if.h @@ -13,15 +13,29 @@ G_BEGIN_DECLS #define CHIMARA_IS_IF_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), CHIMARA_TYPE_IF)) #define CHIMARA_IF_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), CHIMARA_TYPE_IF, ChimaraIFClass)) +/** + * ChimaraIFFormat: + * + * Constants representing all game formats supported by the Chimara system. + */ typedef enum _ChimaraIFFormat { + CHIMARA_IF_FORMAT_NONE = -1, CHIMARA_IF_FORMAT_Z5, CHIMARA_IF_FORMAT_Z6, CHIMARA_IF_FORMAT_Z8, + CHIMARA_IF_FORMAT_Z_BLORB, CHIMARA_IF_FORMAT_GLULX, + CHIMARA_IF_FORMAT_GLULX_BLORB, CHIMARA_IF_NUM_FORMATS } ChimaraIFFormat; +/** + * ChimaraIFInterpreter: + * + * Constants representing the available interpreter plugins. + */ typedef enum _ChimaraIFInterpreter { + CHIMARA_IF_INTERPRETER_NONE = -1, CHIMARA_IF_INTERPRETER_FROTZ, CHIMARA_IF_INTERPRETER_NITFOL, CHIMARA_IF_INTERPRETER_GLULXE, @@ -29,8 +43,36 @@ typedef enum _ChimaraIFInterpreter { CHIMARA_IF_NUM_INTERPRETERS } ChimaraIFInterpreter; +/** + * ChimaraIFZmachineVersion: + * + * Allowed values for the #ChimaraIF:interpreter-number property. + */ +typedef enum _ChimaraIFZmachineVersion { + CHIMARA_IF_ZMACHINE_DEFAULT = 0, + CHIMARA_IF_ZMACHINE_DECSYSTEM_20, + CHIMARA_IF_ZMACHINE_APPLE_IIE, + CHIMARA_IF_ZMACHINE_MACINTOSH, + CHIMARA_IF_ZMACHINE_AMIGA, + CHIMARA_IF_ZMACHINE_ATARI_ST, + CHIMARA_IF_ZMACHINE_IBM_PC, + CHIMARA_IF_ZMACHINE_COMMODORE_128, + CHIMARA_IF_ZMACHINE_COMMODORE_64, + CHIMARA_IF_ZMACHINE_APPLE_IIC, + CHIMARA_IF_ZMACHINE_APPLE_IIGS, + CHIMARA_IF_ZMACHINE_TANDY_COLOR, + CHIMARA_IF_ZMACHINE_MAXVAL = CHIMARA_IF_ZMACHINE_TANDY_COLOR +} ChimaraIFZmachineVersion; + +/** + * ChimaraIF: + * + * This structure contains no public members. + */ typedef struct _ChimaraIF { ChimaraGlk parent_instance; + + /*< public >*/ } ChimaraIF; typedef struct _ChimaraIFClass { @@ -43,6 +85,9 @@ GType chimara_if_get_type(void) G_GNUC_CONST; GtkWidget *chimara_if_new(void); void chimara_if_set_preferred_interpreter(ChimaraIF *self, ChimaraIFFormat format, ChimaraIFInterpreter interpreter); ChimaraIFInterpreter chimara_if_get_preferred_interpreter(ChimaraIF *self, ChimaraIFFormat format); +gboolean chimara_if_run_game(ChimaraIF *self, gchar *gamefile, GError **error); +ChimaraIFFormat chimara_if_get_format(ChimaraIF *self); +ChimaraIFInterpreter chimara_if_get_interpreter(ChimaraIF *self); G_END_DECLS