1
<?xml version="1.0" encoding="UTF-8" ?>
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
5
<refentry id="libgimpbase-gimpprotocol">
7
<refentrytitle role="top_of_page">gimpprotocol</refentrytitle>
8
<manvolnum>3</manvolnum>
9
<refmiscinfo>LIBGIMPBASE Library</refmiscinfo>
13
<refname>gimpprotocol</refname>
14
<refpurpose>The communication protocol between GIMP and it's plug-ins.</refpurpose>
15
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
18
<refsynopsisdiv role="synopsis">
19
<title role="synopsis.title">Synopsis</title>
25
#define <link linkend="GIMP-PROTOCOL-VERSION:CAPS">GIMP_PROTOCOL_VERSION</link>
26
<link linkend="GPConfig">GPConfig</link>;
27
<link linkend="GPTileReq">GPTileReq</link>;
28
<link linkend="GPTileAck">GPTileAck</link>;
29
<link linkend="GPTileData">GPTileData</link>;
30
<link linkend="GPParam">GPParam</link>;
31
<link linkend="GPParamDef">GPParamDef</link>;
32
<link linkend="GPProcRun">GPProcRun</link>;
33
<link linkend="GPProcReturn">GPProcReturn</link>;
34
<link linkend="GPProcInstall">GPProcInstall</link>;
35
<link linkend="GPProcUninstall">GPProcUninstall</link>;
36
<link linkend="void">void</link> <link linkend="gp-init">gp_init</link> (void);
37
<link linkend="gboolean">gboolean</link> <link linkend="gp-has-init-write">gp_has_init_write</link> (<link linkend="GIOChannel">GIOChannel</link> *channel,
38
<link linkend="gpointer">gpointer</link> user_data);
39
<link linkend="gboolean">gboolean</link> <link linkend="gp-quit-write">gp_quit_write</link> (<link linkend="GIOChannel">GIOChannel</link> *channel,
40
<link linkend="gpointer">gpointer</link> user_data);
41
<link linkend="gboolean">gboolean</link> <link linkend="gp-config-write">gp_config_write</link> (<link linkend="GIOChannel">GIOChannel</link> *channel,
42
<link linkend="GPConfig">GPConfig</link> *config,
43
<link linkend="gpointer">gpointer</link> user_data);
44
<link linkend="gboolean">gboolean</link> <link linkend="gp-tile-req-write">gp_tile_req_write</link> (<link linkend="GIOChannel">GIOChannel</link> *channel,
45
<link linkend="GPTileReq">GPTileReq</link> *tile_req,
46
<link linkend="gpointer">gpointer</link> user_data);
47
<link linkend="gboolean">gboolean</link> <link linkend="gp-tile-ack-write">gp_tile_ack_write</link> (<link linkend="GIOChannel">GIOChannel</link> *channel,
48
<link linkend="gpointer">gpointer</link> user_data);
49
<link linkend="gboolean">gboolean</link> <link linkend="gp-tile-data-write">gp_tile_data_write</link> (<link linkend="GIOChannel">GIOChannel</link> *channel,
50
<link linkend="GPTileData">GPTileData</link> *tile_data,
51
<link linkend="gpointer">gpointer</link> user_data);
52
<link linkend="gboolean">gboolean</link> <link linkend="gp-proc-run-write">gp_proc_run_write</link> (<link linkend="GIOChannel">GIOChannel</link> *channel,
53
<link linkend="GPProcRun">GPProcRun</link> *proc_run,
54
<link linkend="gpointer">gpointer</link> user_data);
55
<link linkend="gboolean">gboolean</link> <link linkend="gp-proc-return-write">gp_proc_return_write</link> (<link linkend="GIOChannel">GIOChannel</link> *channel,
56
<link linkend="GPProcReturn">GPProcReturn</link> *proc_return,
57
<link linkend="gpointer">gpointer</link> user_data);
58
<link linkend="gboolean">gboolean</link> <link linkend="gp-temp-proc-run-write">gp_temp_proc_run_write</link> (<link linkend="GIOChannel">GIOChannel</link> *channel,
59
<link linkend="GPProcRun">GPProcRun</link> *proc_run,
60
<link linkend="gpointer">gpointer</link> user_data);
61
<link linkend="gboolean">gboolean</link> <link linkend="gp-temp-proc-return-write">gp_temp_proc_return_write</link> (<link linkend="GIOChannel">GIOChannel</link> *channel,
62
<link linkend="GPProcReturn">GPProcReturn</link> *proc_return,
63
<link linkend="gpointer">gpointer</link> user_data);
64
<link linkend="gboolean">gboolean</link> <link linkend="gp-proc-install-write">gp_proc_install_write</link> (<link linkend="GIOChannel">GIOChannel</link> *channel,
65
<link linkend="GPProcInstall">GPProcInstall</link> *proc_install,
66
<link linkend="gpointer">gpointer</link> user_data);
67
<link linkend="gboolean">gboolean</link> <link linkend="gp-proc-uninstall-write">gp_proc_uninstall_write</link> (<link linkend="GIOChannel">GIOChannel</link> *channel,
68
<link linkend="GPProcUninstall">GPProcUninstall</link> *proc_uninstall,
69
<link linkend="gpointer">gpointer</link> user_data);
70
<link linkend="gboolean">gboolean</link> <link linkend="gp-extension-ack-write">gp_extension_ack_write</link> (<link linkend="GIOChannel">GIOChannel</link> *channel,
71
<link linkend="gpointer">gpointer</link> user_data);
83
<refsect1 role="desc">
84
<title role="desc.title">Description</title>
86
The communication protocol between GIMP and it's plug-ins.
91
<refsect1 role="details">
92
<title role="details.title">Details</title>
94
<title><anchor id="GIMP-PROTOCOL-VERSION:CAPS" role="macro"/>GIMP_PROTOCOL_VERSION</title>
95
<indexterm><primary>GIMP_PROTOCOL_VERSION</primary></indexterm><programlisting>#define GIMP_PROTOCOL_VERSION 0x0011
101
<title><anchor id="GPConfig" role="struct"/>GPConfig</title>
102
<indexterm><primary>GPConfig</primary></indexterm><programlisting>typedef struct {
109
gint8 show_help_button;
110
gint8 gimp_reserved_4;
111
gint8 gimp_reserved_5;
112
gint8 gimp_reserved_6;
113
gint8 gimp_reserved_7;
114
gint8 gimp_reserved_8;
116
gint8 show_tool_tips;
122
gint32 monitor_number;
129
<title><anchor id="GPTileReq" role="struct"/>GPTileReq</title>
130
<indexterm><primary>GPTileReq</primary></indexterm><programlisting>typedef struct {
140
<title><anchor id="GPTileAck" role="struct"/>GPTileAck</title>
141
<indexterm><primary>GPTileAck</primary></indexterm><programlisting>typedef struct _GPTileAck GPTileAck;</programlisting>
146
<title><anchor id="GPTileData" role="struct"/>GPTileData</title>
147
<indexterm><primary>GPTileData</primary></indexterm><programlisting>typedef struct {
162
<title><anchor id="GPParam" role="struct"/>GPParam</title>
163
<indexterm><primary>GPParam</primary></indexterm><programlisting>typedef struct {
173
gint32 *d_int32array;
174
gint16 *d_int16array;
176
gdouble *d_floatarray;
177
gchar **d_stringarray;
209
<title><anchor id="GPParamDef" role="struct"/>GPParamDef</title>
210
<indexterm><primary>GPParamDef</primary></indexterm><programlisting>typedef struct {
220
<title><anchor id="GPProcRun" role="struct"/>GPProcRun</title>
221
<indexterm><primary>GPProcRun</primary></indexterm><programlisting>typedef struct {
231
<title><anchor id="GPProcReturn" role="struct"/>GPProcReturn</title>
232
<indexterm><primary>GPProcReturn</primary></indexterm><programlisting>typedef struct {
242
<title><anchor id="GPProcInstall" role="struct"/>GPProcInstall</title>
243
<indexterm><primary>GPProcInstall</primary></indexterm><programlisting>typedef struct {
254
guint32 nreturn_vals;
256
GPParamDef *return_vals;
263
<title><anchor id="GPProcUninstall" role="struct"/>GPProcUninstall</title>
264
<indexterm><primary>GPProcUninstall</primary></indexterm><programlisting>typedef struct {
272
<title><anchor id="gp-init" role="function"/>gp_init ()</title>
273
<indexterm><primary>gp_init</primary></indexterm><programlisting><link linkend="void">void</link> gp_init (void);</programlisting>
278
<title><anchor id="gp-has-init-write" role="function"/>gp_has_init_write ()</title>
279
<indexterm><primary>gp_has_init_write</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gp_has_init_write (<link linkend="GIOChannel">GIOChannel</link> *channel,
280
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
283
</para><variablelist role="params">
284
<varlistentry><term><parameter>channel</parameter> :</term>
286
</simpara></listitem></varlistentry>
287
<varlistentry><term><parameter>user_data</parameter> :</term>
289
</simpara></listitem></varlistentry>
290
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
293
</simpara></listitem></varlistentry>
294
</variablelist></refsect2>
296
<title><anchor id="gp-quit-write" role="function"/>gp_quit_write ()</title>
297
<indexterm><primary>gp_quit_write</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gp_quit_write (<link linkend="GIOChannel">GIOChannel</link> *channel,
298
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
301
</para><variablelist role="params">
302
<varlistentry><term><parameter>channel</parameter> :</term>
304
</simpara></listitem></varlistentry>
305
<varlistentry><term><parameter>user_data</parameter> :</term>
307
</simpara></listitem></varlistentry>
308
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
311
</simpara></listitem></varlistentry>
312
</variablelist></refsect2>
314
<title><anchor id="gp-config-write" role="function"/>gp_config_write ()</title>
315
<indexterm><primary>gp_config_write</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gp_config_write (<link linkend="GIOChannel">GIOChannel</link> *channel,
316
<link linkend="GPConfig">GPConfig</link> *config,
317
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
320
</para><variablelist role="params">
321
<varlistentry><term><parameter>channel</parameter> :</term>
323
</simpara></listitem></varlistentry>
324
<varlistentry><term><parameter>config</parameter> :</term>
326
</simpara></listitem></varlistentry>
327
<varlistentry><term><parameter>user_data</parameter> :</term>
329
</simpara></listitem></varlistentry>
330
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
333
</simpara></listitem></varlistentry>
334
</variablelist></refsect2>
336
<title><anchor id="gp-tile-req-write" role="function"/>gp_tile_req_write ()</title>
337
<indexterm><primary>gp_tile_req_write</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gp_tile_req_write (<link linkend="GIOChannel">GIOChannel</link> *channel,
338
<link linkend="GPTileReq">GPTileReq</link> *tile_req,
339
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
342
</para><variablelist role="params">
343
<varlistentry><term><parameter>channel</parameter> :</term>
345
</simpara></listitem></varlistentry>
346
<varlistentry><term><parameter>tile_req</parameter> :</term>
348
</simpara></listitem></varlistentry>
349
<varlistentry><term><parameter>user_data</parameter> :</term>
351
</simpara></listitem></varlistentry>
352
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
355
</simpara></listitem></varlistentry>
356
</variablelist></refsect2>
358
<title><anchor id="gp-tile-ack-write" role="function"/>gp_tile_ack_write ()</title>
359
<indexterm><primary>gp_tile_ack_write</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gp_tile_ack_write (<link linkend="GIOChannel">GIOChannel</link> *channel,
360
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
363
</para><variablelist role="params">
364
<varlistentry><term><parameter>channel</parameter> :</term>
366
</simpara></listitem></varlistentry>
367
<varlistentry><term><parameter>user_data</parameter> :</term>
369
</simpara></listitem></varlistentry>
370
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
373
</simpara></listitem></varlistentry>
374
</variablelist></refsect2>
376
<title><anchor id="gp-tile-data-write" role="function"/>gp_tile_data_write ()</title>
377
<indexterm><primary>gp_tile_data_write</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gp_tile_data_write (<link linkend="GIOChannel">GIOChannel</link> *channel,
378
<link linkend="GPTileData">GPTileData</link> *tile_data,
379
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
382
</para><variablelist role="params">
383
<varlistentry><term><parameter>channel</parameter> :</term>
385
</simpara></listitem></varlistentry>
386
<varlistentry><term><parameter>tile_data</parameter> :</term>
388
</simpara></listitem></varlistentry>
389
<varlistentry><term><parameter>user_data</parameter> :</term>
391
</simpara></listitem></varlistentry>
392
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
395
</simpara></listitem></varlistentry>
396
</variablelist></refsect2>
398
<title><anchor id="gp-proc-run-write" role="function"/>gp_proc_run_write ()</title>
399
<indexterm><primary>gp_proc_run_write</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gp_proc_run_write (<link linkend="GIOChannel">GIOChannel</link> *channel,
400
<link linkend="GPProcRun">GPProcRun</link> *proc_run,
401
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
404
</para><variablelist role="params">
405
<varlistentry><term><parameter>channel</parameter> :</term>
407
</simpara></listitem></varlistentry>
408
<varlistentry><term><parameter>proc_run</parameter> :</term>
410
</simpara></listitem></varlistentry>
411
<varlistentry><term><parameter>user_data</parameter> :</term>
413
</simpara></listitem></varlistentry>
414
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
417
</simpara></listitem></varlistentry>
418
</variablelist></refsect2>
420
<title><anchor id="gp-proc-return-write" role="function"/>gp_proc_return_write ()</title>
421
<indexterm><primary>gp_proc_return_write</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gp_proc_return_write (<link linkend="GIOChannel">GIOChannel</link> *channel,
422
<link linkend="GPProcReturn">GPProcReturn</link> *proc_return,
423
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
426
</para><variablelist role="params">
427
<varlistentry><term><parameter>channel</parameter> :</term>
429
</simpara></listitem></varlistentry>
430
<varlistentry><term><parameter>proc_return</parameter> :</term>
432
</simpara></listitem></varlistentry>
433
<varlistentry><term><parameter>user_data</parameter> :</term>
435
</simpara></listitem></varlistentry>
436
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
439
</simpara></listitem></varlistentry>
440
</variablelist></refsect2>
442
<title><anchor id="gp-temp-proc-run-write" role="function"/>gp_temp_proc_run_write ()</title>
443
<indexterm><primary>gp_temp_proc_run_write</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gp_temp_proc_run_write (<link linkend="GIOChannel">GIOChannel</link> *channel,
444
<link linkend="GPProcRun">GPProcRun</link> *proc_run,
445
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
448
</para><variablelist role="params">
449
<varlistentry><term><parameter>channel</parameter> :</term>
451
</simpara></listitem></varlistentry>
452
<varlistentry><term><parameter>proc_run</parameter> :</term>
454
</simpara></listitem></varlistentry>
455
<varlistentry><term><parameter>user_data</parameter> :</term>
457
</simpara></listitem></varlistentry>
458
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
461
</simpara></listitem></varlistentry>
462
</variablelist></refsect2>
464
<title><anchor id="gp-temp-proc-return-write" role="function"/>gp_temp_proc_return_write ()</title>
465
<indexterm><primary>gp_temp_proc_return_write</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gp_temp_proc_return_write (<link linkend="GIOChannel">GIOChannel</link> *channel,
466
<link linkend="GPProcReturn">GPProcReturn</link> *proc_return,
467
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
470
</para><variablelist role="params">
471
<varlistentry><term><parameter>channel</parameter> :</term>
473
</simpara></listitem></varlistentry>
474
<varlistentry><term><parameter>proc_return</parameter> :</term>
476
</simpara></listitem></varlistentry>
477
<varlistentry><term><parameter>user_data</parameter> :</term>
479
</simpara></listitem></varlistentry>
480
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
483
</simpara></listitem></varlistentry>
484
</variablelist></refsect2>
486
<title><anchor id="gp-proc-install-write" role="function"/>gp_proc_install_write ()</title>
487
<indexterm><primary>gp_proc_install_write</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gp_proc_install_write (<link linkend="GIOChannel">GIOChannel</link> *channel,
488
<link linkend="GPProcInstall">GPProcInstall</link> *proc_install,
489
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
492
</para><variablelist role="params">
493
<varlistentry><term><parameter>channel</parameter> :</term>
495
</simpara></listitem></varlistentry>
496
<varlistentry><term><parameter>proc_install</parameter> :</term>
498
</simpara></listitem></varlistentry>
499
<varlistentry><term><parameter>user_data</parameter> :</term>
501
</simpara></listitem></varlistentry>
502
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
505
</simpara></listitem></varlistentry>
506
</variablelist></refsect2>
508
<title><anchor id="gp-proc-uninstall-write" role="function"/>gp_proc_uninstall_write ()</title>
509
<indexterm><primary>gp_proc_uninstall_write</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gp_proc_uninstall_write (<link linkend="GIOChannel">GIOChannel</link> *channel,
510
<link linkend="GPProcUninstall">GPProcUninstall</link> *proc_uninstall,
511
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
514
</para><variablelist role="params">
515
<varlistentry><term><parameter>channel</parameter> :</term>
517
</simpara></listitem></varlistentry>
518
<varlistentry><term><parameter>proc_uninstall</parameter> :</term>
520
</simpara></listitem></varlistentry>
521
<varlistentry><term><parameter>user_data</parameter> :</term>
523
</simpara></listitem></varlistentry>
524
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
527
</simpara></listitem></varlistentry>
528
</variablelist></refsect2>
530
<title><anchor id="gp-extension-ack-write" role="function"/>gp_extension_ack_write ()</title>
531
<indexterm><primary>gp_extension_ack_write</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gp_extension_ack_write (<link linkend="GIOChannel">GIOChannel</link> *channel,
532
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
535
</para><variablelist role="params">
536
<varlistentry><term><parameter>channel</parameter> :</term>
538
</simpara></listitem></varlistentry>
539
<varlistentry><term><parameter>user_data</parameter> :</term>
541
</simpara></listitem></varlistentry>
542
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
545
</simpara></listitem></varlistentry>
546
</variablelist></refsect2>
553
<title>See Also</title>
555
<link linkend="libgimp-gimpwire"><type>libgimp-gimpwire</type></link>