exif-mnote-data-priv.h

00001 /* exif-mnote-data-priv.h
00002  *
00003  * Copyright © 2003 Lutz Müller <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., 59 Temple Place - Suite 330,
00018  * Boston, MA 02111-1307, 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 
00032 typedef struct _ExifMnoteDataMethods ExifMnoteDataMethods;
00033 struct _ExifMnoteDataMethods {
00034 
00035         /* Live cycle */
00036         void (* free) (ExifMnoteData *);
00037 
00038         /* Modification */
00039         void (* save) (ExifMnoteData *, unsigned char **, unsigned int *);
00040         void (* load) (ExifMnoteData *, const unsigned char *, unsigned int);
00041         void (* set_offset)     (ExifMnoteData *, unsigned int);
00042         void (* set_byte_order) (ExifMnoteData *, ExifByteOrder);
00043 
00044         /* Query */
00045         unsigned int (* count)           (ExifMnoteData *);
00046         unsigned int (* get_id)          (ExifMnoteData *, unsigned int);
00047         const char * (* get_name)        (ExifMnoteData *, unsigned int);
00048         const char * (* get_title)       (ExifMnoteData *, unsigned int);
00049         const char * (* get_description) (ExifMnoteData *, unsigned int);
00050         char * (* get_value)             (ExifMnoteData *, unsigned int, char *val, unsigned int maxlen);
00051 };
00052 
00053 typedef struct _ExifMnoteDataPriv ExifMnoteDataPriv;
00054 
00055 struct _ExifMnoteData 
00056 {
00057         ExifMnoteDataPriv *priv;
00058 
00059         ExifMnoteDataMethods methods;
00060 
00061         /* Logging */
00062         ExifLog *log;
00063 
00064         /* Memory management */
00065         ExifMem *mem;
00066 };
00067 
00068 void exif_mnote_data_construct      (ExifMnoteData *, ExifMem *mem);
00069 void exif_mnote_data_set_byte_order (ExifMnoteData *, ExifByteOrder);
00070 void exif_mnote_data_set_offset     (ExifMnoteData *, unsigned int);
00071 
00072 #ifdef __cplusplus
00073 }
00074 #endif /* __cplusplus */
00075 
00076 #endif /* __EXIF_MNOTE_PRIV_H__ */

Generated on Fri Jun 22 10:54:49 2007 for EXIF library (libexif) API by  doxygen 1.5.2