more dos port
[retroray] / libs / imago / src / ftmodule.h
1 /*
2 libimago - a multi-format image file input/output library.
3 Copyright (C) 2010-2021 John Tsiombikas <nuclear@member.fsf.org>
4
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published
7 by the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 GNU Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 */
18
19 #ifndef FTYPE_MODULE_H_
20 #define FTYPE_MODULE_H_
21
22 #include "imago2.h"
23
24 struct ftype_module {
25         char *suffix;   /* used for format autodetection */
26
27         int (*check)(struct img_io *io);
28         int (*read)(struct img_pixmap *img, struct img_io *io);
29         int (*write)(struct img_pixmap *img, struct img_io *io);
30 };
31
32 int img_register_module(struct ftype_module *mod);
33
34 struct ftype_module *img_find_format_module(struct img_io *io, const char *fname);
35 struct ftype_module *img_guess_format(const char *fname);
36 struct ftype_module *img_get_module(int idx);
37
38
39 #endif  /* FTYPE_MODULE_H_ */