BMIHeader.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /*
3  * This file is a part of the libzmf project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9 
10 #ifndef BMIHEADER_H_INCLUDED
11 #define BMIHEADER_H_INCLUDED
12 
13 #include "libzmf_utils.h"
14 #include "BMITypes.h"
15 #include <vector>
16 
17 namespace libzmf
18 {
19 
20 class BMIHeader
21 {
22 public:
23  BMIHeader();
24 
25  bool load(const RVNGInputStreamPtr &input);
26 
27  bool isSupported() const;
28 
29  unsigned size() const;
30 
31  unsigned startOffset() const;
32 
33  unsigned width() const;
34  unsigned height() const;
35 
36  bool isPaletteMode() const;
37 
38  unsigned colorDepth() const;
39 
40  unsigned paletteColorCount() const;
41 
42  const std::vector<BMIOffset> &offsets() const;
43 
44  bool reconcileWidth(unsigned &colorWidth, unsigned &transparencyWidth);
45  bool reconcileHeight(unsigned &colorHeight, unsigned &transparencyHeight);
46 
47 private:
48  void readOffsets(const RVNGInputStreamPtr &input, uint16_t offsetCount);
49 
50  std::string m_signature;
51 
52  unsigned m_size;
53 
54  unsigned m_startOffset;
55 
56  unsigned m_width;
57  unsigned m_height;
58 
60 
61  unsigned m_colorDepth;
62 
63  std::vector<BMIOffset> m_offsets;
64 };
65 
66 }
67 
68 #endif // BMIHEADER_H_INCLUDED
69 
70 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
std::string m_signature
Definition: BMIHeader.h:50
unsigned width() const
Definition: BMIHeader.cpp:81
unsigned m_startOffset
Definition: BMIHeader.h:54
BMIHeader()
Definition: BMIHeader.cpp:16
const std::vector< BMIOffset > & offsets() const
Definition: BMIHeader.cpp:106
unsigned m_width
Definition: BMIHeader.h:56
unsigned paletteColorCount() const
Definition: BMIHeader.cpp:101
bool isPaletteMode() const
Definition: BMIHeader.cpp:91
unsigned m_colorDepth
Definition: BMIHeader.h:61
std::vector< BMIOffset > m_offsets
Definition: BMIHeader.h:63
unsigned size() const
Definition: BMIHeader.cpp:71
std::shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr
Definition: libzmf_utils.h:80
unsigned m_size
Definition: BMIHeader.h:52
unsigned startOffset() const
Definition: BMIHeader.cpp:76
bool reconcileWidth(unsigned &colorWidth, unsigned &transparencyWidth)
Definition: BMIHeader.cpp:177
unsigned height() const
Definition: BMIHeader.cpp:86
Definition: BMIHeader.cpp:13
Definition: BMIHeader.h:20
bool isSupported() const
Definition: BMIHeader.cpp:67
bool reconcileHeight(unsigned &colorHeight, unsigned &transparencyHeight)
Definition: BMIHeader.cpp:182
bool m_isPaletteMode
Definition: BMIHeader.h:59
bool load(const RVNGInputStreamPtr &input)
Definition: BMIHeader.cpp:28
unsigned colorDepth() const
Definition: BMIHeader.cpp:96
unsigned m_height
Definition: BMIHeader.h:57
void readOffsets(const RVNGInputStreamPtr &input, uint16_t offsetCount)
Definition: BMIHeader.cpp:111

Generated for libzmf by doxygen 1.8.14