10 #ifndef __LIBMSPUB_UTILS_H__
11 #define __LIBMSPUB_UTILS_H__
16 #include <librevenge/librevenge.h>
17 #include <librevenge-stream/librevenge-stream.h>
23 typedef unsigned char uint8_t;
24 typedef unsigned short uint16_t;
25 typedef unsigned uint32_t;
26 typedef signed char int8_t;
27 typedef short int16_t;
29 typedef unsigned __int64 uint64_t;
41 #ifdef HAVE_INTTYPES_H
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)
69 #define MSPUB_DEBUG(M)
77 uint8_t
readU8(librevenge::RVNGInputStream *input);
78 uint16_t
readU16(librevenge::RVNGInputStream *input);
79 uint32_t
readU32(librevenge::RVNGInputStream *input);
80 uint64_t
readU64(librevenge::RVNGInputStream *input);
81 int8_t
readS8(librevenge::RVNGInputStream *input);
82 int16_t
readS16(librevenge::RVNGInputStream *input);
83 int32_t
readS32(librevenge::RVNGInputStream *input);
86 void readNBytes(librevenge::RVNGInputStream *input,
unsigned long length, std::vector<unsigned char> &out);
88 void appendCharacters(librevenge::RVNGString &text, std::vector<unsigned char> characters,
const char *encoding);
90 bool stillReading(librevenge::RVNGInputStream *input,
unsigned long until);
92 void rotateCounter(
double &x,
double &y,
double centerX,
double centerY,
short rotation);
93 void flipIfNecessary(
double &x,
double &y,
double centerX,
double centerY,
bool flipVertical,
bool flipHorizontal);
98 template <
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);
104 template <
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);
110 template <
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;
124 librevenge::RVNGBinaryData
inflateData(librevenge::RVNGBinaryData);
128 #endif // __LIBMSPUB_UTILS_H__