10#ifndef __LIBMSPUB_UTILS_H__
11#define __LIBMSPUB_UTILS_H__
16#include <librevenge/librevenge.h>
17#include <librevenge-stream/librevenge-stream.h>
23typedef unsigned char uint8_t;
24typedef unsigned short uint16_t;
25typedef unsigned uint32_t;
26typedef signed char int8_t;
29typedef unsigned __int64 uint64_t;
61#define MSPUB_DEBUG_MSG(M) printf("%15s:%5d: ", __FILE__, __LINE__); printf M
62#define MSPUB_DEBUG(M) M
64#define MSPUB_DEBUG_MSG(M) printf M
65#define MSPUB_DEBUG(M) M
68#define MSPUB_DEBUG_MSG(M)
77uint8_t
readU8(librevenge::RVNGInputStream *input);
78uint16_t
readU16(librevenge::RVNGInputStream *input);
79uint32_t
readU32(librevenge::RVNGInputStream *input);
80uint64_t
readU64(librevenge::RVNGInputStream *input);
81int8_t
readS8(librevenge::RVNGInputStream *input);
82int16_t
readS16(librevenge::RVNGInputStream *input);
83int32_t
readS32(librevenge::RVNGInputStream *input);
86void readNBytes(librevenge::RVNGInputStream *input,
unsigned long length, std::vector<unsigned char> &out);
88void appendCharacters(librevenge::RVNGString &text, std::vector<unsigned char> characters,
const char *encoding);
90bool stillReading(librevenge::RVNGInputStream *input,
unsigned long until);
92void rotateCounter(
double &x,
double &y,
double centerX,
double centerY,
short rotation);
93void flipIfNecessary(
double &x,
double &y,
double centerX,
double centerY,
bool flipVertical,
bool flipHorizontal);
98template <
class MapT>
typename MapT::mapped_type *
getIfExists(MapT &map,
const typename MapT::key_type &key)
100 typename MapT::iterator i = map.find(key);
101 return i == map.end() ? NULL : &(i->second);
104template <
class MapT>
const typename MapT::mapped_type *
getIfExists_const(MapT &map,
const typename MapT::key_type &key)
106 typename MapT::const_iterator i = map.find(key);
107 return i == map.end() ? NULL : &(i->second);
110template <
class MapT>
typename MapT::mapped_type
ptr_getIfExists(MapT &map,
const typename MapT::key_type &key)
112 typename MapT::iterator i = map.find(key);
113 return i == map.end() ? NULL : i->second;
124librevenge::RVNGBinaryData
inflateData(librevenge::RVNGBinaryData);
Definition: libmspub_utils.h:117
Definition: libmspub_utils.h:121
int16_t readS16(librevenge::RVNGInputStream *input)
Definition: libmspub_utils.cpp:297
uint16_t readU16(librevenge::RVNGInputStream *input)
Definition: libmspub_utils.cpp:276
unsigned correctModulo(int x, unsigned n)
Definition: libmspub_utils.cpp:142
double readFixedPoint(librevenge::RVNGInputStream *input)
Definition: libmspub_utils.cpp:123
MapT::mapped_type ptr_getIfExists(MapT &map, const typename MapT::key_type &key)
Definition: libmspub_utils.h:110
uint8_t readU8(librevenge::RVNGInputStream *input)
Definition: libmspub_utils.cpp:257
void appendCharacters(librevenge::RVNGString &text, const std::vector< unsigned char > characters, const char *encoding)
Definition: libmspub_utils.cpp:343
int32_t readS32(librevenge::RVNGInputStream *input)
Definition: libmspub_utils.cpp:302
int8_t readS8(librevenge::RVNGInputStream *input)
Definition: libmspub_utils.cpp:292
librevenge::RVNGBinaryData inflateData(librevenge::RVNGBinaryData deflated)
Definition: libmspub_utils.cpp:158
const MapT::mapped_type * getIfExists_const(MapT &map, const typename MapT::key_type &key)
Definition: libmspub_utils.h:104
void rotateCounter(double &x, double &y, double centerX, double centerY, short rotation)
Definition: libmspub_utils.cpp:87
const char * mimeByImgType(ImgType type)
Definition: libmspub_utils.cpp:63
double toFixedPoint(int fp)
Definition: libmspub_utils.cpp:116
uint64_t readU64(librevenge::RVNGInputStream *input)
Definition: libmspub_utils.cpp:307
double doubleModulo(double x, double y)
Definition: libmspub_utils.cpp:99
void flipIfNecessary(double &x, double &y, double centerX, double centerY, bool flipVertical, bool flipHorizontal)
Definition: libmspub_utils.cpp:128
const char * windowsCharsetNameByOriginalCharset(const char *name)
Definition: libmspub_utils.cpp:30
uint32_t readU32(librevenge::RVNGInputStream *input)
Definition: libmspub_utils.cpp:283
void readNBytes(librevenge::RVNGInputStream *input, unsigned long length, std::vector< unsigned char > &out)
Definition: libmspub_utils.cpp:320
MapT::mapped_type * getIfExists(MapT &map, const typename MapT::key_type &key)
Definition: libmspub_utils.h:98
bool stillReading(librevenge::RVNGInputStream *input, unsigned long until)
Definition: libmspub_utils.cpp:376
ImgType
Definition: MSPUBTypes.h:180