00001 /*MT* 00002 00003 MediaTomb - http://www.mediatomb.cc/ 00004 00005 libexif_handler.h - this file is part of MediaTomb. 00006 00007 Copyright (C) 2005 Gena Batyan <bgeradz@mediatomb.cc>, 00008 Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc> 00009 00010 Copyright (C) 2006-2010 Gena Batyan <bgeradz@mediatomb.cc>, 00011 Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc>, 00012 Leonhard Wimmer <leo@mediatomb.cc> 00013 00014 MediaTomb is free software; you can redistribute it and/or modify 00015 it under the terms of the GNU General Public License version 2 00016 as published by the Free Software Foundation. 00017 00018 MediaTomb is distributed in the hope that it will be useful, 00019 but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 GNU General Public License for more details. 00022 00023 You should have received a copy of the GNU General Public License 00024 version 2 along with MediaTomb; if not, write to the Free Software 00025 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 00026 00027 $Id: libexif_handler.h 2081 2010-03-23 20:18:00Z lww $ 00028 */ 00029 00032 #ifndef __METADATA_LIBEXIF_H__ 00033 #define __METADATA_LIBEXIF_H__ 00034 00035 #include "metadata_handler.h" 00036 #include <libexif/exif-data.h> 00037 #include <libexif/exif-content.h> 00038 #include "string_converter.h" 00039 00040 00043 class LibExifHandler : public MetadataHandler 00044 { 00045 protected: 00046 // image resolution in pixels 00047 // the problem is that I do not know when I encounter the 00048 // tags for X and Y, so I have to save the information 00049 // and in the very end - when I have both values - add the 00050 // appropriate resource 00051 zmm::String imageX; 00052 zmm::String imageY; 00053 00054 void process_ifd (ExifContent *content, zmm::Ref<CdsItem> item, zmm::Ref<StringConverter> sc, zmm::Ref<zmm::Array<zmm::StringBase> > auxtags); 00055 00056 public: 00057 LibExifHandler(); 00058 virtual void fillMetadata(zmm::Ref<CdsItem> item); 00059 virtual zmm::Ref<IOHandler> serveContent(zmm::Ref<CdsItem> item, int resNum, off_t *data_size); 00060 }; 00061 00062 #endif // __METADATA_LIBEXIF_H__
1.6.1