libopenraw
|
#include <rawcontainer.hpp>
Public Types | |
enum | EndianType { ENDIAN_NULL = 0, ENDIAN_BIG, ENDIAN_LITTLE } |
Public Member Functions | |
RawContainer (const IO::Stream::Ptr &_file, off_t offset) | |
virtual | ~RawContainer () |
const IO::Stream::Ptr & | file () |
EndianType | endian () const |
off_t | offset () const |
bool | skip (off_t offset) |
Option< int8_t > | readInt8 (const IO::Stream::Ptr &f) |
Option< uint8_t > | readUInt8 (const IO::Stream::Ptr &f) |
Option< int16_t > | readInt16 (const IO::Stream::Ptr &f) |
Option< int32_t > | readInt32 (const IO::Stream::Ptr &f) |
Option< uint16_t > | readUInt16 (const IO::Stream::Ptr &f) |
size_t | readUInt16Array (const IO::Stream::Ptr &f, std::vector< uint16_t > &v, size_t count) |
Option< uint32_t > | readUInt32 (const IO::Stream::Ptr &f) |
size_t | fetchData (void *buf, off_t offset, size_t buf_size) |
off_t | size () const |
Protected Member Functions | |
RawContainer (const RawContainer &)=delete | |
RawContainer & | operator= (const RawContainer &)=delete |
void | setEndian (EndianType _endian) |
Protected Attributes | |
IO::Stream::Ptr | m_file |
off_t | m_offset |
EndianType | m_endian |
Generic interface for the RAW file container
Definition at line 41 of file rawcontainer.hpp.
define the endian of the container
Enumerator | |
---|---|
ENDIAN_BIG | no endian found: means invalid file |
ENDIAN_LITTLE | big endian found little endian found |
Definition at line 44 of file rawcontainer.hpp.
OpenRaw::Internals::RawContainer::RawContainer | ( | const IO::Stream::Ptr & | _file, |
off_t | offset | ||
) |
file | the stream to read from |
offset | the offset since starting the beginning of the file for the container |
Definition at line 37 of file rawcontainer.cpp.
References m_file.
|
virtual |
size_t OpenRaw::Internals::RawContainer::fetchData | ( | void * | buf, |
off_t | offset, | ||
size_t | buf_size | ||
) |
Fetch the data chunk from the file
buf | the buffer to load into |
offset | the offset |
buf_size | the size of the data to fetch |
Definition at line 203 of file rawcontainer.cpp.
References m_file.
Referenced by OpenRaw::RawFile::_getThumbnail(), OpenRaw::Internals::MRW::DataBlock::DataBlock(), OpenRaw::Internals::CIFF::RecordEntry::fetchData(), OpenRaw::Internals::NefFile::isCompressed(), OpenRaw::Internals::IfdEntry::loadData(), and OpenRaw::Internals::MRW::DataBlock::uint16_val().
Option< int16_t > OpenRaw::Internals::RawContainer::readInt16 | ( | const IO::Stream::Ptr & | f | ) |
Read an int16 following the m_endian set
Definition at line 81 of file rawcontainer.cpp.
References ENDIAN_LITTLE.
Referenced by OpenRaw::Internals::CIFF::Heap::Heap().
Option< int32_t > OpenRaw::Internals::RawContainer::readInt32 | ( | const IO::Stream::Ptr & | f | ) |
Read an int32 following the m_endian set
Definition at line 138 of file rawcontainer.cpp.
References ENDIAN_LITTLE.
Referenced by OpenRaw::Internals::MRW::DataBlock::DataBlock(), OpenRaw::Internals::IfdFileContainer::getDirectoryDataSize(), OpenRaw::Internals::CIFF::Heap::Heap(), OpenRaw::Internals::IfdFileContainer::locateDirsPreHook(), and OpenRaw::Internals::CIFF::ImageSpec::readFrom().
Option< uint16_t > OpenRaw::Internals::RawContainer::readUInt16 | ( | const IO::Stream::Ptr & | f | ) |
Read an uint16 following the m_endian set
Definition at line 160 of file rawcontainer.cpp.
References ENDIAN_LITTLE.
Referenced by OpenRaw::Internals::CRWFile::_getRawData(), OpenRaw::Internals::CIFF::RecordEntry::readFrom(), and OpenRaw::Internals::MRW::DataBlock::uint16_val().
size_t OpenRaw::Internals::RawContainer::readUInt16Array | ( | const IO::Stream::Ptr & | f, |
std::vector< uint16_t > & | v, | ||
size_t | count | ||
) |
Read an array of uint16 following the m_endian set.
v | the vector to fill. Will be resized if too small. |
count | the number of elements to read |
count
if success.Return the number of element read.
Definition at line 106 of file rawcontainer.cpp.
References ENDIAN_LITTLE.
Option< uint32_t > OpenRaw::Internals::RawContainer::readUInt32 | ( | const IO::Stream::Ptr & | f | ) |
Read an uint32 following the m_endian set
Definition at line 182 of file rawcontainer.cpp.
References ENDIAN_LITTLE.
Referenced by OpenRaw::Internals::CRWFile::_getRawData(), OpenRaw::Internals::CIFF::Heap::Heap(), OpenRaw::Internals::CIFF::ImageSpec::readFrom(), and OpenRaw::Internals::CIFF::RecordEntry::readFrom().
off_t OpenRaw::Internals::RawContainer::size | ( | ) | const |
Return the effective size of the container.
Definition at line 213 of file rawcontainer.cpp.
References m_file.
Referenced by OpenRaw::Internals::RafFile::_enumThumbnailSizes(), and OpenRaw::Internals::LJpegDecompressor::setSlices().
|
protected |
the file handle
Definition at line 100 of file rawcontainer.hpp.
Referenced by fetchData(), OpenRaw::Internals::IfdFileContainer::getDirectoryDataSize(), OpenRaw::Internals::IfdFileContainer::locateDirsPreHook(), RawContainer(), size(), and ~RawContainer().
|
protected |
the offset from the beginning of the file
Definition at line 102 of file rawcontainer.hpp.
Referenced by OpenRaw::Internals::IfdFileContainer::locateDirsPreHook().