From: Dan F. <dfa...@us...> - 2009-10-01 05:07:25
|
Update of /cvsroot/libexif/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv4193/libexif Modified Files: exif-loader.c exif-loader.h libexif.sym Log Message: Added a new public API function, exif_loader_get_buf(), which returns a pointer to the raw data in the ExifLoader. Without this, the only way to get the ExifLoader data out was as an ExifData and using only the default set of ExifDataOptions. Index: libexif.sym =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/libexif.sym,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -d -r1.1 -r1.2 --- libexif.sym 13 Jun 2005 21:07:39 -0000 1.1 +++ libexif.sym 1 Oct 2009 05:07:14 -0000 1.2 @@ -126,3 +126,4 @@ mnote_pentax_entry_get_value mnote_pentax_tag_get_description mnote_pentax_tag_get_name mnote_pentax_tag_get_title +exif_loader_get_buf Index: exif-loader.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-loader.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -p -d -r1.11 -r1.12 --- exif-loader.h 5 Dec 2008 07:07:15 -0000 1.11 +++ exif-loader.h 1 Oct 2009 05:07:14 -0000 1.12 @@ -95,7 +95,24 @@ void exif_loader_reset (ExifLoa */ ExifData *exif_loader_get_data (ExifLoader *loader); -void exif_loader_log (ExifLoader *, ExifLog *); +/*! Return the data read by the loader. The returned pointer is only + * guaranteed to be valid until the next call to a function modifying + * this #ExifLoader. Either or both of buf and buf_size may be NULL on + * entry, in which case that value is not returned. + * + * \param[in] loader the loader + * \param[out] buf read-only pointer to the data read by the loader, or NULL + * in case of error + * \param[out] buf_size size of the data at buf, or 0 in case of error + */ +void exif_loader_get_buf (ExifLoader *loader, const unsigned char **buf, + unsigned int *buf_size); + +/*! Set the log message object used by this #ExifLoader. + * \param[in] loader the loader + * \param[in] log #ExifLog + */ +void exif_loader_log (ExifLoader *loader, ExifLog *log); #ifdef __cplusplus } Index: exif-loader.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-loader.c,v retrieving revision 1.35 retrieving revision 1.36 diff -u -p -d -r1.35 -r1.36 --- exif-loader.c 11 Dec 2008 07:08:49 -0000 1.35 +++ exif-loader.c 1 Oct 2009 05:07:14 -0000 1.36 @@ -404,6 +404,26 @@ exif_loader_get_data (ExifLoader *loader } void +exif_loader_get_buf (ExifLoader *loader, const unsigned char **buf, + unsigned int *buf_size) +{ + const unsigned char* b = NULL; + unsigned int s = 0; + + if (!loader || (loader->data_format == EL_DATA_FORMAT_UNKNOWN) { + exif_log (loader->log, EXIF_LOG_CODE_DEBUG, "ExifLoader", + "Loader format unknown"); + } else { + b = loader->buf; + s = loader->bytes_read; + } + if (buf) + *buf = b; + if (buf_size) + *buf_size = s; +} + +void exif_loader_log (ExifLoader *loader, ExifLog *log) { if (!loader) |