summaryrefslogtreecommitdiffstats
path: root/libgimpbase/gimpprotocol.h
diff options
context:
space:
mode:
Diffstat (limited to 'libgimpbase/gimpprotocol.h')
-rw-r--r--libgimpbase/gimpprotocol.h245
1 files changed, 245 insertions, 0 deletions
diff --git a/libgimpbase/gimpprotocol.h b/libgimpbase/gimpprotocol.h
new file mode 100644
index 0000000..991abed
--- /dev/null
+++ b/libgimpbase/gimpprotocol.h
@@ -0,0 +1,245 @@
+/* LIBGIMP - The GIMP Library
+ * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
+ *
+ * This library is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <https://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GIMP_PROTOCOL_H__
+#define __GIMP_PROTOCOL_H__
+
+G_BEGIN_DECLS
+
+/* For information look into the C source or the html documentation */
+
+
+/* Increment every time the protocol changes
+ */
+#define GIMP_PROTOCOL_VERSION 0x001A
+
+
+enum
+{
+ GP_QUIT,
+ GP_CONFIG,
+ GP_TILE_REQ,
+ GP_TILE_ACK,
+ GP_TILE_DATA,
+ GP_PROC_RUN,
+ GP_PROC_RETURN,
+ GP_TEMP_PROC_RUN,
+ GP_TEMP_PROC_RETURN,
+ GP_PROC_INSTALL,
+ GP_PROC_UNINSTALL,
+ GP_EXTENSION_ACK,
+ GP_HAS_INIT
+};
+
+
+typedef struct _GPConfig GPConfig;
+typedef struct _GPTileReq GPTileReq;
+typedef struct _GPTileAck GPTileAck;
+typedef struct _GPTileData GPTileData;
+typedef struct _GPParam GPParam;
+typedef struct _GPParamDef GPParamDef;
+typedef struct _GPProcRun GPProcRun;
+typedef struct _GPProcReturn GPProcReturn;
+typedef struct _GPProcInstall GPProcInstall;
+typedef struct _GPProcUninstall GPProcUninstall;
+
+
+struct _GPConfig
+{
+ guint32 version;
+ guint32 tile_width;
+ guint32 tile_height;
+ gint32 shm_ID;
+ gint8 check_size;
+ gint8 check_type;
+ gint8 show_help_button;
+ gint8 use_cpu_accel;
+ gint8 use_opencl;
+ gint8 export_exif;
+ gint8 export_xmp;
+ gint8 export_iptc;
+ gint8 export_profile;
+ gint8 show_tooltips;
+ gint32 min_colors;
+ gint32 gdisp_ID;
+ gchar *app_name;
+ gchar *wm_class;
+ gchar *display_name;
+ gint32 monitor_number;
+ guint32 timestamp;
+
+ /* since protocol version 0x0017: */
+ gchar *icon_theme_dir;
+
+ /* since protocol version 0x0019: */
+ guint64 tile_cache_size;
+ gchar *swap_path;
+ gint32 num_processors;
+
+ /* since protocol version 0x001a: */
+ gchar *swap_compression;
+};
+
+struct _GPTileReq
+{
+ gint32 drawable_ID;
+ guint32 tile_num;
+ guint32 shadow;
+};
+
+struct _GPTileData
+{
+ gint32 drawable_ID;
+ guint32 tile_num;
+ guint32 shadow;
+ guint32 bpp;
+ guint32 width;
+ guint32 height;
+ guint32 use_shm;
+ guchar *data;
+};
+
+struct _GPParam
+{
+ guint32 type;
+
+ union
+ {
+ gint32 d_int32;
+ gint16 d_int16;
+ guint8 d_int8;
+ gdouble d_float;
+ gchar *d_string;
+ gint32 *d_int32array;
+ gint16 *d_int16array;
+ guint8 *d_int8array;
+ gdouble *d_floatarray;
+ gchar **d_stringarray;
+ GimpRGB *d_colorarray;
+ GimpRGB d_color;
+ struct
+ {
+ gint32 x;
+ gint32 y;
+ gint32 width;
+ gint32 height;
+ } d_region; /* deprecated */
+ gint32 d_display;
+ gint32 d_image;
+ gint32 d_item;
+ gint32 d_layer;
+ gint32 d_channel;
+ gint32 d_drawable;
+ gint32 d_selection;
+ gint32 d_boundary;
+ gint32 d_path; /* deprecated */
+ gint32 d_vectors;
+ gint32 d_status;
+ GimpParasite d_parasite;
+ } data;
+};
+
+struct _GPParamDef
+{
+ guint32 type;
+ gchar *name;
+ gchar *description;
+};
+
+struct _GPProcRun
+{
+ gchar *name;
+ guint32 nparams;
+ GPParam *params;
+};
+
+struct _GPProcReturn
+{
+ gchar *name;
+ guint32 nparams;
+ GPParam *params;
+};
+
+struct _GPProcInstall
+{
+ gchar *name;
+ gchar *blurb;
+ gchar *help;
+ gchar *author;
+ gchar *copyright;
+ gchar *date;
+ gchar *menu_path;
+ gchar *image_types;
+ guint32 type;
+ guint32 nparams;
+ guint32 nreturn_vals;
+ GPParamDef *params;
+ GPParamDef *return_vals;
+};
+
+struct _GPProcUninstall
+{
+ gchar *name;
+};
+
+
+void gp_init (void);
+
+gboolean gp_quit_write (GIOChannel *channel,
+ gpointer user_data);
+gboolean gp_config_write (GIOChannel *channel,
+ GPConfig *config,
+ gpointer user_data);
+gboolean gp_tile_req_write (GIOChannel *channel,
+ GPTileReq *tile_req,
+ gpointer user_data);
+gboolean gp_tile_ack_write (GIOChannel *channel,
+ gpointer user_data);
+gboolean gp_tile_data_write (GIOChannel *channel,
+ GPTileData *tile_data,
+ gpointer user_data);
+gboolean gp_proc_run_write (GIOChannel *channel,
+ GPProcRun *proc_run,
+ gpointer user_data);
+gboolean gp_proc_return_write (GIOChannel *channel,
+ GPProcReturn *proc_return,
+ gpointer user_data);
+gboolean gp_temp_proc_run_write (GIOChannel *channel,
+ GPProcRun *proc_run,
+ gpointer user_data);
+gboolean gp_temp_proc_return_write (GIOChannel *channel,
+ GPProcReturn *proc_return,
+ gpointer user_data);
+gboolean gp_proc_install_write (GIOChannel *channel,
+ GPProcInstall *proc_install,
+ gpointer user_data);
+gboolean gp_proc_uninstall_write (GIOChannel *channel,
+ GPProcUninstall *proc_uninstall,
+ gpointer user_data);
+gboolean gp_extension_ack_write (GIOChannel *channel,
+ gpointer user_data);
+gboolean gp_has_init_write (GIOChannel *channel,
+ gpointer user_data);
+
+void gp_params_destroy (GPParam *params,
+ gint nparams);
+
+
+G_END_DECLS
+
+#endif /* __GIMP_PROTOCOL_H__ */