Merge trunk up to revision 40611
[blender.git] / source / blender / blenkernel / BKE_customdata_file.h
1 /*
2  * $Id$
3  *
4  * ***** BEGIN GPL LICENSE BLOCK *****
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19  *
20  * ***** END GPL LICENSE BLOCK *****
21  */
22
23 #ifndef BKE_CUSTOMDATA_FILE_H
24 #define BKE_CUSTOMDATA_FILE_H
25
26 /** \file BKE_customdata_file.h
27  *  \ingroup bke
28  */
29
30 #define CDF_TYPE_IMAGE  0
31 #define CDF_TYPE_MESH   1
32
33 #define CDF_LAYER_NAME_MAX      64
34
35 typedef struct CDataFile CDataFile;
36 typedef struct CDataFileLayer CDataFileLayer;
37
38 /* Create/Free */
39
40 CDataFile *cdf_create(int type);
41 void cdf_free(CDataFile *cdf);
42
43 /* File read/write/remove */
44
45 int cdf_read_open(CDataFile *cdf, char *filename);
46 int cdf_read_layer(CDataFile *cdf, CDataFileLayer *blay);
47 int cdf_read_data(CDataFile *cdf, unsigned int size, void *data);
48 void cdf_read_close(CDataFile *cdf);
49
50 int cdf_write_open(CDataFile *cdf, char *filename);
51 int cdf_write_layer(CDataFile *cdf, CDataFileLayer *blay);
52 int cdf_write_data(CDataFile *cdf, unsigned int size, void *data);
53 void cdf_write_close(CDataFile *cdf);
54
55 void cdf_remove(char *filename);
56
57 /* Layers */
58
59 CDataFileLayer *cdf_layer_find(CDataFile *cdf, int type, char *name);
60 CDataFileLayer *cdf_layer_add(CDataFile *cdf, int type, char *name, size_t datasize);
61
62 #endif /* BKE_CUSTOMDATA_FILE_H */
63