1 /* A few basic types needed everywhere.
2  *
3  * 27/10/11
4  * 	- from type.h
5  */
6 
7 /*
8 
9     This file is part of VIPS.
10 
11     VIPS is free software; you can redistribute it and/or modify
12     it under the terms of the GNU Lesser General Public License as published by
13     the Free Software Foundation; either version 2 of the License, or
14     (at your option) any later version.
15 
16     This program is distributed in the hope that it will be useful,
17     but WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19     GNU Lesser General Public License for more details.
20 
21     You should have received a copy of the GNU Lesser General Public License
22     along with this program; if not, write to the Free Software
23     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
24     02110-1301  USA
25 
26  */
27 
28 /*
29 
30     These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk
31 
32  */
33 
34 #ifndef VIPS_BASIC_H
35 #define VIPS_BASIC_H
36 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif /*__cplusplus*/
40 
41 /**
42  * VipsPel:
43  *
44  * A picture element. Cast this to whatever the associated VipsBandFormat says
45  * to get the value.
46  */
47 typedef unsigned char VipsPel;
48 
49 /* Also used for eg. vips_local() and friends.
50  */
51 typedef int (*VipsCallbackFn)( void *a, void *b );
52 
53 /* Like GFunc, but return a value.
54  */
55 typedef void *(*VipsSListMap2Fn)( void *item,
56 	void *a, void *b );
57 typedef void *(*VipsSListMap4Fn)( void *item,
58 	void *a, void *b, void *c, void *d );
59 typedef void *(*VipsSListFold2Fn)( void *item,
60 	void *a, void *b, void *c );
61 
62 typedef enum {
63 	VIPS_PRECISION_INTEGER,
64 	VIPS_PRECISION_FLOAT,
65 	VIPS_PRECISION_APPROXIMATE,
66 	VIPS_PRECISION_LAST
67 } VipsPrecision;
68 
69 /* Just for testing.
70  */
71 char *vips_path_filename7( const char *path );
72 char *vips_path_mode7( const char *path );
73 
74 struct _VipsImage;
75 typedef struct _VipsImage VipsImage;
76 struct _VipsRegion;
77 typedef struct _VipsRegion VipsRegion;
78 
79 #ifdef __cplusplus
80 }
81 #endif /*__cplusplus*/
82 
83 #endif /*VIPS_BASIC_H*/
84