libopenraw  0.3.7
ciffifd.hpp
1 /* -*- Mode: C++; c-basic-offset:4; tab-width:4; indent-tabs-mode:nil; -*- */
2 /*
3  * libopenraw - ciffifd.hpp
4  *
5  * Copyright (C) 2020 Hubert Figuière
6  *
7  * This library is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public License
9  * as published by the Free Software Foundation, either version 3 of
10  * the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library. If not, see
19  * <http://www.gnu.org/licenses/>.
20  */
21 
22 #pragma once
23 
24 #include "ifddir.hpp"
25 
26 namespace OpenRaw {
27 namespace Internals {
28 
29 class CRWFile;
30 class RawContainer;
31 
32 namespace CIFF {
33 
38 class CiffIfd
39  : public IfdDir
40 {
41 public:
49  IfdEntry::Ref entryForString(uint16_t id, const std::string& str) const;
50 protected:
53 };
54 
57  : public CiffIfd
58 {
59 public:
62  virtual bool load() override;
63 };
64 
67  : public CiffIfd
68 {
69 public:
72  virtual bool load() override;
73 };
74 
76 }
77 }
78 }
IFD that will synthesize the entries for the Exif.
Definition: ciffifd.hpp:68
CiffExifIfd(CRWFile &ciff, RawContainer &container)
Construct an Exif IFD for a CIFF file.
Definition: ciffifd.cpp:101
virtual bool load() override
Load the directory to memory.
Definition: ciffifd.cpp:354
Special IFD to synthesize entries out of a CIFF file.
Definition: ciffifd.hpp:40
CiffIfd(CRWFile &ciff, RawContainer &container, IfdDirType _type)
construct a CIFF Ifd.
Definition: ciffifd.cpp:32
IfdEntry::Ref entryForString(uint16_t id, const std::string &str) const
Definition: ciffifd.cpp:38
IFD that will synthesize the entries for main.
Definition: ciffifd.hpp:58
CiffMainIfd(CRWFile &ciff, RawContainer &container)
Construct a main IFD for a CIFF file.
Definition: ciffifd.cpp:48
virtual bool load() override
Load the directory to memory.
Definition: ciffifd.cpp:53
An IFD directory.
Definition: ifddir.hpp:51
const RawContainer & container() const
The container for the IfdDir, const.
Definition: ifddir.hpp:108
std::shared_ptr< IfdEntry > Ref
IfdEntry reference (ie shared pointer)
Definition: ifdentry.hpp:202
Generic interface for the RAW file container.
or_ifd_dir_type
Type of IfdDir.
Definition: consts.h:140
Global namespace for libopenraw.
Definition: arwfile.cpp:29