exif-mnote-data-priv.h

00001 /* exif-mnote-data-priv.h
00002  *
00003  * Copyright (c) 2003 Lutz Mueller <lutz@users.sourceforge.net>
00004  *
00005  * This library is free software; you can redistribute it and/or
00006  * modify it under the terms of the GNU Lesser General Public
00007  * License as published by the Free Software Foundation; either
00008  * version 2 of the License, or (at your option) any later version.
00009  *
00010  * This library is distributed in the hope that it will be useful, 
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of 
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013  * Lesser General Public License for more details. 
00014  *
00015  * You should have received a copy of the GNU Lesser General Public
00016  * License along with this library; if not, write to the
00017  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00018  * Boston, MA  02110-1301  USA.
00019  */
00020 
00021 #ifndef __EXIF_MNOTE_DATA_PRIV_H__
00022 #define __EXIF_MNOTE_DATA_PRIV_H__
00023 
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif /* __cplusplus */
00027 
00028 #include <libexif/exif-mnote-data.h>
00029 #include <libexif/exif-byte-order.h>
00030 #include <libexif/exif-log.h>
00031 
00033 typedef struct _ExifMnoteDataMethods ExifMnoteDataMethods;
00034 
00036 struct _ExifMnoteDataMethods {
00037 
00038         /* Life cycle */
00039         void (* free) (ExifMnoteData *);
00040 
00041         /* Modification */
00042         void (* save) (ExifMnoteData *, unsigned char **, unsigned int *);
00043         void (* load) (ExifMnoteData *, const unsigned char *, unsigned int);
00044         void (* set_offset)     (ExifMnoteData *, unsigned int);
00045         void (* set_byte_order) (ExifMnoteData *, ExifByteOrder);
00046 
00047         /* Query */
00048         unsigned int (* count)           (ExifMnoteData *);
00049         unsigned int (* get_id)          (ExifMnoteData *, unsigned int);
00050         const char * (* get_name)        (ExifMnoteData *, unsigned int);
00051         const char * (* get_title)       (ExifMnoteData *, unsigned int);
00052         const char * (* get_description) (ExifMnoteData *, unsigned int);
00053         char * (* get_value)             (ExifMnoteData *, unsigned int, char *val, unsigned int maxlen);
00054 };
00055 
00057 typedef struct _ExifMnoteDataPriv ExifMnoteDataPriv;
00058 
00060 struct _ExifMnoteData 
00061 {
00062         ExifMnoteDataPriv *priv;
00063 
00064         ExifMnoteDataMethods methods;
00065 
00066         /* Logging */
00067         ExifLog *log;
00068 
00069         /* Memory management */
00070         ExifMem *mem;
00071 };
00072 
00074 void exif_mnote_data_construct      (ExifMnoteData *, ExifMem *mem);
00075 
00077 void exif_mnote_data_set_byte_order (ExifMnoteData *, ExifByteOrder);
00078 
00080 void exif_mnote_data_set_offset     (ExifMnoteData *, unsigned int);
00081 
00082 #ifdef __cplusplus
00083 }
00084 #endif /* __cplusplus */
00085 
00086 #endif /* __EXIF_MNOTE_PRIV_H__ */

SourceForge.net Logo Generated by doxygen