1 module vips.bindings;
2 
3 public import gobject.c.types : GObject, GValue, GType;
4 
5 extern(C)
6 {
7     // Opaque structs
8     struct VipsImage;
9     struct VipsOperation;
10     struct VipsObject;
11     struct VipsBlob;
12 
13     // Vips error functions
14     const(char)* vips_error_buffer();
15     void vips_error_clear();
16     void vips_cache_set_max (int max);
17     void vips_cache_drop_all();
18     // Type getter functions
19     GType vips_image_get_type();
20     GType vips_array_double_get_type();
21     GType vips_array_int_get_type();
22     GType vips_array_image_get_type();
23     GType vips_blob_get_type();
24 
25     // misc
26     const(char)* vips_foreign_find_load(const char* name);
27     const(char)* vips_foreign_find_save(const char* name);
28     const(char)* vips_version_string();
29     int vips_cache_operation_buildp(VipsOperation** operation);
30     VipsOperation* vips_cache_operation_build(VipsOperation* operation);
31 
32     VipsOperation* vips_operation_new(const char* opName);
33     void vips_value_set_array_int(
34         GValue* value,
35         const(int)* array,
36         int n,
37     );
38     void vips_value_set_array_double(
39         GValue *value,
40         const(double)* array,
41         int n
42     );
43     void vips_value_set_array_image(GValue* value, int n);
44     VipsImage** vips_value_get_array_image(const(GValue)* value, int *n);
45     int vips_init(const char*);
46     void vips_leak_set(bool);
47     void vips_shutdown();
48     void vips_object_unref_outputs(VipsOperation* op);
49     int vips_object_build(VipsObject* obj);
50 
51     // GObject functions
52     void* g_object_ref(void* p);
53     void g_object_unref(void* p);
54     void g_object_set_property(GObject*, const(char)*, GValue*);
55     void g_object_get_property(GObject*, const(char)*, GValue*);
56     GObject* g_value_get_object(GValue*);
57     void g_value_set_object(GValue*, GObject*);
58 }
59 
60