libopenraw
lib
raffile.hpp
1
/* -*- Mode: C++ ; tab-width:4; c-basic-offset:4 -*- */
2
/*
3
* libopenraw - raffile.h
4
*
5
* Copyright (C) 2011-2017 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
#ifndef OR_INTERNALS_RAFFILE_H_
23
#define OR_INTERNALS_RAFFILE_H_
24
25
#include <stdint.h>
26
#include <vector>
27
28
#include <libopenraw/consts.h>
29
30
#include "rawfile.hpp"
31
#include "rawcontainer.hpp"
32
#include "io/stream.hpp"
33
34
#define RAF_MAGIC "FUJIFILMCCD-RAW "
35
#define RAF_MAGIC_LEN 16
36
37
namespace
OpenRaw
{
38
39
class
RawData;
40
class
MetaValue;
41
42
namespace
Internals {
43
44
class
RafContainer;
45
46
class
RafFile
:
public
OpenRaw::RawFile
{
47
public
:
48
static
RawFile
*factory(
const
IO::Stream::Ptr &s);
49
RafFile
(
const
IO::Stream::Ptr &s);
50
virtual
~
RafFile
();
51
52
RafFile
(
const
RafFile
&) =
delete
;
53
RafFile
&operator=(
const
RafFile
&) =
delete
;
54
55
protected
:
56
virtual ::or_error
_enumThumbnailSizes
(std::vector<uint32_t> &list)
override
;
57
58
virtual
RawContainer
*
getContainer
()
const override
;
59
60
virtual ::or_error
_getRawData
(
RawData
&data, uint32_t options)
override
;
61
62
virtual
MetaValue
*_getMetaValue(int32_t
/*meta_index*/
)
override
;
63
64
virtual
void
_identifyId()
override
;
65
66
private
:
67
bool
isXTrans(RawFile::TypeId
type
)
const
;
68
69
IO::Stream::Ptr m_io;
70
RafContainer
*m_container;
71
// uint32_t m_x;
72
// uint32_t m_y;
73
74
static
const
RawFile::camera_ids_t
s_def[];
75
};
76
}
77
}
78
79
#endif
OpenRaw::Internals::RawContainer
Definition:
rawcontainer.hpp:41
OpenRaw::Internals::RafFile::_getRawData
virtual ::or_error _getRawData(RawData &data, uint32_t options) override
Definition:
raffile.cpp:395
OpenRaw
CIFF is the container for CRW files. It is an attempt from Canon to make this a standard....
Definition:
arwfile.cpp:30
OpenRaw::MetaValue
Definition:
metavalue.hpp:33
OpenRaw::RawFile
Definition:
rawfile.hpp:50
OpenRaw::RawFile::type
Type type() const
Definition:
rawfile.cpp:330
OpenRaw::Internals::RafFile::getContainer
virtual RawContainer * getContainer() const override
Definition:
raffile.cpp:359
OpenRaw::RawData
Definition:
rawdata.hpp:35
OpenRaw::Internals::RafFile
Definition:
raffile.hpp:46
OpenRaw::Internals::RafFile::_enumThumbnailSizes
virtual ::or_error _enumThumbnailSizes(std::vector< uint32_t > &list) override
Definition:
raffile.cpp:293
OpenRaw::Internals::RafContainer
Definition:
rafcontainer.hpp:50
OpenRaw::RawFile::camera_ids_t
Definition:
rawfile.hpp:147
Generated by
1.8.17