Merging r46111 through r46136 from trunk into soc-2011-tomato
[blender-staging.git] / source / blender / imbuf / intern / cineon / cineonlib.h
1 /*
2  *       Cineon image file format library definitions.
3  *       Also handles DPX files (almost)
4  *
5  *       Copyright 1999,2000,2001 David Hodson <hodsond@acm.org>
6  *
7  *       This program is free software; you can redistribute it and/or modify it
8  *       under the terms of the GNU General Public License as published by the Free
9  *       Software Foundation; either version 2 of the License, or (at your option)
10  *       any later version.
11  *
12  *       This program is distributed in the hope that it will be useful, but
13  *       WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14  *       or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15  *       for more details.
16  *
17  *       You should have received a copy of the GNU General Public License
18  *       along with this program; if not, write to the Free Software
19  *       Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  *
21  */
22
23 #ifndef __CINEONLIB_H__
24 #define __CINEONLIB_H__
25
26 /** \file blender/imbuf/intern/cineon/cineonlib.h
27  *  \ingroup imbcineon
28  */
29
30 #include "logImageCore.h"
31
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35
36 /*
37  * Cineon image structure. You don't care what this is.
38  */
39
40 typedef struct _Log_Image_File_t_ CineonFile;
41
42 /* int functions return 0 for OK */
43
44 void cineonSetVerbose(int);
45
46 CineonFile* cineonOpenFromMem(unsigned char *mem, unsigned int size);
47
48 CineonFile* cineonOpen(const char* filename);
49 int cineonGetSize(const CineonFile* cineon, int* xsize, int* ysize, int* channels);
50 CineonFile* cineonCreate(const char* filename, int xsize, int ysize, int channels);
51 int cineonIsMemFileCineon(unsigned char *mem);
52
53 /* get/set scanline of converted bytes */
54 int cineonGetRowBytes(CineonFile* cineon, unsigned short* row, int y);
55 int cineonSetRowBytes(CineonFile* cineon, const unsigned short* row, int y);
56
57 /* get/set scanline of unconverted shorts */
58 int cineonGetRow(CineonFile* cineon, unsigned short* row, int y);
59 int cineonSetRow(CineonFile* cineon, const unsigned short* row, int y);
60
61 /* closes file and deletes data */
62 void cineonClose(CineonFile* cineon);
63
64 #ifdef __cplusplus
65 }
66 #endif
67
68 #endif /* __CINEONLIB_H__ */