Add Bocfel interpreter
[projects/chimara/chimara.git] / libchimara / chimara-if.h
index 89ea5c8538c8e1846ce3ef9b3558db599e73d88e..f8ec757dfd3948676bd15db0d2e84959698f794d 100644 (file)
@@ -15,40 +15,72 @@ G_BEGIN_DECLS
 
 /**
  * ChimaraIFFormat:
- * 
+ * @CHIMARA_IF_FORMAT_Z5: Z-code version 5
+ * @CHIMARA_IF_FORMAT_Z6: Z-code version 6
+ * @CHIMARA_IF_FORMAT_Z8: Z-code version 8
+ * @CHIMARA_IF_FORMAT_Z_BLORB: Blorbed Z-code
+ * @CHIMARA_IF_FORMAT_GLULX: Glulx
+ * @CHIMARA_IF_FORMAT_GLULX_BLORB: Blorbed Glulx
+ *
  * Constants representing all game formats supported by the Chimara system.
  */
-typedef enum _ChimaraIFFormat {
+typedef enum {
+       /*< private >*/
        CHIMARA_IF_FORMAT_NONE = -1,
+       /*< public >*/
        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,
+       /*< private >*/
        CHIMARA_IF_NUM_FORMATS
 } ChimaraIFFormat;
 
 /**
  * ChimaraIFInterpreter:
+ * @CHIMARA_IF_INTERPRETER_FROTZ: Frotz
+ * @CHIMARA_IF_INTERPRETER_NITFOL: Nitfol
+ * @CHIMARA_IF_INTERPRETER_GLULXE: Glulxe
+ * @CHIMARA_IF_INTERPRETER_GIT: Git
+ * @CHIMARA_IF_INTERPRETER_BOCFEL: Bocfel
  * 
  * Constants representing the available interpreter plugins.
  */
-typedef enum _ChimaraIFInterpreter {
+typedef enum {
+    /*< private >*/
        CHIMARA_IF_INTERPRETER_NONE = -1,
+       /*< public >*/
        CHIMARA_IF_INTERPRETER_FROTZ,
        CHIMARA_IF_INTERPRETER_NITFOL,
        CHIMARA_IF_INTERPRETER_GLULXE,
        CHIMARA_IF_INTERPRETER_GIT,
+       CHIMARA_IF_INTERPRETER_BOCFEL,
+       /*< private >*/
        CHIMARA_IF_NUM_INTERPRETERS
 } ChimaraIFInterpreter;
 
 /**
  * ChimaraIFZmachineVersion:
+ * @CHIMARA_IF_ZMACHINE_DEFAULT: Use the interpreter's default interpreter
+ * number.
+ * @CHIMARA_IF_ZMACHINE_DECSYSTEM_20: DEC System 20
+ * @CHIMARA_IF_ZMACHINE_APPLE_IIE: Apple IIe
+ * @CHIMARA_IF_ZMACHINE_MACINTOSH: Apple Macintosh
+ * @CHIMARA_IF_ZMACHINE_AMIGA: Commodore Amiga
+ * @CHIMARA_IF_ZMACHINE_ATARI_ST: Atari ST
+ * @CHIMARA_IF_ZMACHINE_IBM_PC: IBM PC
+ * @CHIMARA_IF_ZMACHINE_COMMODORE_128: Commodore 128
+ * @CHIMARA_IF_ZMACHINE_COMMODORE_64: Commodore 64
+ * @CHIMARA_IF_ZMACHINE_APPLE_IIC: Apple IIc
+ * @CHIMARA_IF_ZMACHINE_APPLE_IIGS: Apple IIgs
+ * @CHIMARA_IF_ZMACHINE_TANDY_COLOR: Tandy Color Computer
  * 
- * Allowed values for the #ChimaraIF:interpreter-number property.
+ * Allowed values for the #ChimaraIF:interpreter-number property. All trademarks
+ * are the property of their respective owners.
  */
-typedef enum _ChimaraIFZmachineVersion {
+typedef enum {
        CHIMARA_IF_ZMACHINE_DEFAULT = 0,
        CHIMARA_IF_ZMACHINE_DECSYSTEM_20,
        CHIMARA_IF_ZMACHINE_APPLE_IIE,
@@ -61,6 +93,7 @@ typedef enum _ChimaraIFZmachineVersion {
        CHIMARA_IF_ZMACHINE_APPLE_IIC,
        CHIMARA_IF_ZMACHINE_APPLE_IIGS,
        CHIMARA_IF_ZMACHINE_TANDY_COLOR,
+       /*< private >*/
        CHIMARA_IF_ZMACHINE_MAXVAL = CHIMARA_IF_ZMACHINE_TANDY_COLOR
 } ChimaraIFZmachineVersion;
 
@@ -69,13 +102,13 @@ typedef enum _ChimaraIFZmachineVersion {
  * 
  * This structure contains no public members.
  */
-typedef struct _ChimaraIF {
+typedef struct {
        ChimaraGlk parent_instance;
        
        /*< public >*/
 } ChimaraIF;
 
-typedef struct _ChimaraIFClass {
+typedef struct {
        ChimaraGlkClass parent_class;
        /* Signals */
        void(* command) (ChimaraIF *self, gchar *input, gchar *response);
@@ -85,7 +118,8 @@ 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);
+gboolean chimara_if_run_game(ChimaraIF *self, const char *game_path, GError **error);
+gboolean chimara_if_run_game_file(ChimaraIF *self, GFile *game_file, GError **error);
 ChimaraIFFormat chimara_if_get_format(ChimaraIF *self);
 ChimaraIFInterpreter chimara_if_get_interpreter(ChimaraIF *self);