1 #ifndef __CHIMARA_IF_H__
2 #define __CHIMARA_IF_H__
5 #include "chimara-glk.h"
9 #define CHIMARA_TYPE_IF (chimara_if_get_type())
10 #define CHIMARA_IF(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), CHIMARA_TYPE_IF, ChimaraIF))
11 #define CHIMARA_IF_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), CHIMARA_TYPE_IF, ChimaraIFClass))
12 #define CHIMARA_IS_IF(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), CHIMARA_TYPE_IF))
13 #define CHIMARA_IS_IF_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), CHIMARA_TYPE_IF))
14 #define CHIMARA_IF_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), CHIMARA_TYPE_IF, ChimaraIFClass))
19 * Constants representing all game formats supported by the Chimara system.
21 typedef enum _ChimaraIFFormat {
22 CHIMARA_IF_FORMAT_NONE = -1,
26 CHIMARA_IF_FORMAT_Z_BLORB,
27 CHIMARA_IF_FORMAT_GLULX,
28 CHIMARA_IF_FORMAT_GLULX_BLORB,
29 CHIMARA_IF_NUM_FORMATS
33 * ChimaraIFInterpreter:
35 * Constants representing the available interpreter plugins.
37 typedef enum _ChimaraIFInterpreter {
38 CHIMARA_IF_INTERPRETER_NONE = -1,
39 CHIMARA_IF_INTERPRETER_FROTZ,
40 CHIMARA_IF_INTERPRETER_NITFOL,
41 CHIMARA_IF_INTERPRETER_GLULXE,
42 CHIMARA_IF_INTERPRETER_GIT,
43 CHIMARA_IF_NUM_INTERPRETERS
44 } ChimaraIFInterpreter;
47 * ChimaraIFZmachineVersion:
49 * Allowed values for the #ChimaraIF:interpreter-number property.
51 typedef enum _ChimaraIFZmachineVersion {
52 CHIMARA_IF_ZMACHINE_DEFAULT = 0,
53 CHIMARA_IF_ZMACHINE_DECSYSTEM_20,
54 CHIMARA_IF_ZMACHINE_APPLE_IIE,
55 CHIMARA_IF_ZMACHINE_MACINTOSH,
56 CHIMARA_IF_ZMACHINE_AMIGA,
57 CHIMARA_IF_ZMACHINE_ATARI_ST,
58 CHIMARA_IF_ZMACHINE_IBM_PC,
59 CHIMARA_IF_ZMACHINE_COMMODORE_128,
60 CHIMARA_IF_ZMACHINE_COMMODORE_64,
61 CHIMARA_IF_ZMACHINE_APPLE_IIC,
62 CHIMARA_IF_ZMACHINE_APPLE_IIGS,
63 CHIMARA_IF_ZMACHINE_TANDY_COLOR,
64 CHIMARA_IF_ZMACHINE_MAXVAL = CHIMARA_IF_ZMACHINE_TANDY_COLOR
65 } ChimaraIFZmachineVersion;
70 * This structure contains no public members.
72 typedef struct _ChimaraIF {
73 ChimaraGlk parent_instance;
78 typedef struct _ChimaraIFClass {
79 ChimaraGlkClass parent_class;
81 void(* command) (ChimaraIF *self, gchar *input, gchar *response);
84 GType chimara_if_get_type(void) G_GNUC_CONST;
85 GtkWidget *chimara_if_new(void);
86 void chimara_if_set_preferred_interpreter(ChimaraIF *self, ChimaraIFFormat format, ChimaraIFInterpreter interpreter);
87 ChimaraIFInterpreter chimara_if_get_preferred_interpreter(ChimaraIF *self, ChimaraIFFormat format);
88 gboolean chimara_if_run_game(ChimaraIF *self, gchar *gamefile, GError **error);
89 ChimaraIFFormat chimara_if_get_format(ChimaraIF *self);
90 ChimaraIFInterpreter chimara_if_get_interpreter(ChimaraIF *self);
94 #endif /* __CHIMARA_IF_H__ */