Home | History | Annotate | Download | only in libexif
      1 /* exif-mnote-data-priv.h
      2  *
      3  * Copyright (c) 2003 Lutz Mueller <lutz (at) users.sourceforge.net>
      4  *
      5  * This library is free software; you can redistribute it and/or
      6  * modify it under the terms of the GNU Lesser General Public
      7  * License as published by the Free Software Foundation; either
      8  * version 2 of the License, or (at your option) any later version.
      9  *
     10  * This library 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 GNU
     13  * Lesser General Public License for more details.
     14  *
     15  * You should have received a copy of the GNU Lesser General Public
     16  * License along with this library; if not, write to the
     17  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     18  * Boston, MA  02110-1301  USA.
     19  */
     20 
     21 #ifndef __EXIF_MNOTE_DATA_PRIV_H__
     22 #define __EXIF_MNOTE_DATA_PRIV_H__
     23 
     24 #ifdef __cplusplus
     25 extern "C" {
     26 #endif /* __cplusplus */
     27 
     28 #include <libexif/exif-mnote-data.h>
     29 #include <libexif/exif-byte-order.h>
     30 #include <libexif/exif-log.h>
     31 
     32 /*! \internal */
     33 typedef struct _ExifMnoteDataMethods ExifMnoteDataMethods;
     34 
     35 /*! \internal */
     36 struct _ExifMnoteDataMethods {
     37 
     38 	/* Life cycle */
     39 	void (* free) (ExifMnoteData *);
     40 
     41 	/* Modification */
     42 	void (* save) (ExifMnoteData *, unsigned char **, unsigned int *);
     43 	void (* load) (ExifMnoteData *, const unsigned char *, unsigned int);
     44 	void (* set_offset)     (ExifMnoteData *, unsigned int);
     45 	void (* set_byte_order) (ExifMnoteData *, ExifByteOrder);
     46 
     47 	/* Query */
     48 	unsigned int (* count)           (ExifMnoteData *);
     49         unsigned int (* get_id)          (ExifMnoteData *, unsigned int);
     50 	const char * (* get_name)        (ExifMnoteData *, unsigned int);
     51 	const char * (* get_title)       (ExifMnoteData *, unsigned int);
     52 	const char * (* get_description) (ExifMnoteData *, unsigned int);
     53 	char * (* get_value)             (ExifMnoteData *, unsigned int, char *val, unsigned int maxlen);
     54 };
     55 
     56 /*! \internal */
     57 typedef struct _ExifMnoteDataPriv ExifMnoteDataPriv;
     58 
     59 /*! \internal */
     60 struct _ExifMnoteData
     61 {
     62 	ExifMnoteDataPriv *priv;
     63 
     64 	ExifMnoteDataMethods methods;
     65 
     66 	/* Logging */
     67 	ExifLog *log;
     68 
     69 	/* Memory management */
     70 	ExifMem *mem;
     71 };
     72 
     73 /*! \internal */
     74 void exif_mnote_data_construct      (ExifMnoteData *, ExifMem *mem);
     75 
     76 /*! \internal */
     77 void exif_mnote_data_set_byte_order (ExifMnoteData *, ExifByteOrder);
     78 
     79 /*! \internal */
     80 void exif_mnote_data_set_offset     (ExifMnoteData *, unsigned int);
     81 
     82 #ifdef __cplusplus
     83 }
     84 #endif /* __cplusplus */
     85 
     86 #endif /* __EXIF_MNOTE_PRIV_H__ */
     87