+
+/**
+ * chimara_if_run_game_file:
+ * @self: A #ChimaraIF widget.
+ * @game_file: a #GFile pointing to an interactive fiction game file.
+ * @error: Return location for an error, or %NULL.
+ *
+ * Autodetects the type of a game file and runs it using an appropriate
+ * interpreter plugin. See chimara_if_run_game() for more information.
+ *
+ * Returns: %TRUE if the game was started successfully, %FALSE if not, in which
+ * case @error is set.
+ */
+gboolean
+chimara_if_run_game_file(ChimaraIF *self, GFile *game_file, GError **error)
+{
+ g_return_val_if_fail(self || CHIMARA_IS_IF(self), FALSE);
+ g_return_val_if_fail(game_file || G_IS_FILE(game_file), FALSE);
+ g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
+
+ char *path = g_file_get_path(game_file);
+ gboolean retval = chimara_if_run_game(self, path, error);
+ g_free(path);
+ return retval;
+}
+
+/**
+ * chimara_if_get_format:
+ * @self: A #ChimaraIF widget.
+ *
+ * Returns the file format of the currently running game.
+ *
+ * Returns: a #ChimaraIFFormat constant.
+ */
+ChimaraIFFormat
+chimara_if_get_format(ChimaraIF *self)
+{
+ g_return_val_if_fail(self && CHIMARA_IS_IF(self), CHIMARA_IF_FORMAT_NONE);
+ CHIMARA_IF_USE_PRIVATE(self, priv);
+ return priv->format;
+}
+
+/**
+ * chimara_if_get_interpreter:
+ * @self: A #ChimaraIF widget.
+ *
+ * Returns the interpreter plugin currently running.
+ *
+ * Returns: a #ChimaraIFInterpreter constant.
+ */
+ChimaraIFInterpreter
+chimara_if_get_interpreter(ChimaraIF *self)
+{
+ g_return_val_if_fail(self && CHIMARA_IS_IF(self), CHIMARA_IF_FORMAT_NONE);
+ CHIMARA_IF_USE_PRIVATE(self, priv);
+ return priv->interpreter;
+}