1548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen/* exif-mnote-data-canon.h
2548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen *
3548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen * Copyright (c) 2002, 2003 Lutz Mueller <lutz@users.sourceforge.net>
4548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen *
5548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen * This library is free software; you can redistribute it and/or
6548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen * modify it under the terms of the GNU Lesser General Public
7548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen * License as published by the Free Software Foundation; either
8548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen * version 2 of the License, or (at your option) any later version.
9548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen *
10548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen * This library is distributed in the hope that it will be useful,
11548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen * but WITHOUT ANY WARRANTY; without even the implied warranty of
12548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen * Lesser General Public License for more details.
14548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen *
15548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen * You should have received a copy of the GNU Lesser General Public
16548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen * License along with this library; if not, write to the
17548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen * Boston, MA  02110-1301  USA.
19548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen */
20548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen
21548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen#ifndef __EXIF_MNOTE_DATA_CANON_H__
22548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen#define __EXIF_MNOTE_DATA_CANON_H__
23548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen
24548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen#include <libexif/exif-byte-order.h>
25548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen#include <libexif/exif-mnote-data.h>
26548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen#include <libexif/exif-mnote-data-priv.h>
27548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen#include <libexif/exif-mem.h>
28548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen#include <libexif/exif-data.h>
29548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen
30548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissentypedef struct _ExifMnoteDataCanon ExifMnoteDataCanon;
31548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen
32548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen#include <libexif/canon/mnote-canon-entry.h>
33548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen
34548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissenstruct _ExifMnoteDataCanon {
35548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen	ExifMnoteData parent;
36548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen
37548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen	MnoteCanonEntry *entries;
38548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen	unsigned int count;
39548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen
40548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen	ExifByteOrder order;
41548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen	unsigned int offset;
42548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen
43548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen	ExifDataOption options;
44548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen};
45548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen
46548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen/*! Detect if MakerNote is recognized as one handled by the Canon module.
47548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen *
48548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen * \param[in] ed image #ExifData to identify as as a Canon type
49548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen * \param[in] e #ExifEntry for EXIF_TAG_MAKER_NOTE, from within ed but
50548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen *   duplicated here for convenience
51548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen * \return 0 if not recognized, nonzero if recognized. The specific nonzero
52548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen *   value returned may identify a subtype unique within this module.
53548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen */
54548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissenint exif_mnote_data_canon_identify (const ExifData *ed, const ExifEntry *e);
55548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen
56548dde4863e9a2315e3f327efe63ff55949addb8Marco NelissenExifMnoteData *exif_mnote_data_canon_new (ExifMem *mem, ExifDataOption o);
57548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen
58548dde4863e9a2315e3f327efe63ff55949addb8Marco Nelissen#endif /* __EXIF_MNOTE_DATA_CANON_H__ */
59