summaryrefslogtreecommitdiff
path: root/src/jpeglib.vapi
blob: 3022b5b11033c29cca5d5f6e3f99675a35f4f6ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
[CCode (cheader_filename = "jpeglib.h", cprefix = "jpeg_")]
namespace JPEG {
    [CCode (cprefix = "JCS_")]
    public enum ColorSpace
    {
        UNKNOWN,
        GRAYSCALE,
        RGB,
        YCbCr,
        CMYK,
        YCCK
    }

    public ErrorManager std_error (out ErrorManager err);

    [CCode (cname = "struct jpeg_compress_struct", cprefix = "jpeg_", destroy_function = "jpeg_destroy_compress")]
    public struct Compress
    {
        public DestinationManager* dest;
        public int image_width;
        public int image_height;
        public int input_components;
        public ColorSpace in_color_space;
        public ErrorManager* err;

        public void create_compress ();
        public void set_defaults ();
        public void start_compress (bool write_all_tables);
        public void write_scanlines ([CCode (array_length = false)] uint8*[] scanlines, int num_Lines);
        public void finish_compress ();
    }

    [CCode (cname = "struct jpeg_error_mgr")]
    public struct ErrorManager
    {
        [CCode (cname = "jpeg_std_error")]
        public ErrorManager* std_error ();
    }

    [CCode (has_target = false)]
    public delegate void InitDestinationFunc (Compress cinfo);
    [CCode (has_target = false)]
    public delegate bool EmptyOutputBufferFunc (Compress cinfo);
    [CCode (has_target = false)]
    public delegate void TermDestinationFunc (Compress cinfo);

    [CCode (cname = "struct jpeg_destination_mgr")]
    public struct DestinationManager
    {
        [CCode (array_length = false)]
        public unowned uint8[] next_output_byte;
        public int free_in_buffer;
        public InitDestinationFunc init_destination;
        public EmptyOutputBufferFunc empty_output_buffer;
        public TermDestinationFunc term_destination;
    }
}