global.h
1 #ifndef __GLOBAL_H__
2 #define __GLOBAL_H__
3 
4 #include <QtGlobal>
5 
6 static inline quint32 READINT32(const char *pointer)
7 {
8  return ((quint32((quint8)(*pointer))) | (quint32(quint8(*(pointer+1)))<<8) | (quint32(quint8(*(pointer+2)))<<16) | (quint32(quint8(*(pointer+3)))<<24));
9 }
10 static inline quint16 READINT16(const char *pointer)
11 {
12  return ((quint16((quint8)(*pointer))) | (quint16(quint8(*(pointer+1)))<<8));
13 }
14 static inline quint16 READBIGINT16(const char *pointer)
15 {
16  return ((quint16((quint8)(*pointer))<<8) | (quint16(quint8(*(pointer+1)))));
17 }
18 static inline quint8 READINT8(const char *pointer)
19 {
20  return quint8(*pointer);
21 }
22 
23 #define WRITEINT8_DIRECT(type,integer) (type)(quint8)((integer)&0xFF)
24 #define WRITEINT16_DIRECT(type,integer) WRITEINT8_DIRECT(type,integer),WRITEINT8_DIRECT(type,integer>>8)
25 #define WRITEINT32_DIRECT(type,integer) WRITEINT8_DIRECT(type,integer),WRITEINT8_DIRECT(type,integer>>8),WRITEINT8_DIRECT(type,integer>>16),WRITEINT8_DIRECT(type,integer>>24)
26 
27 static inline void WRITEINT32(char *pointer, const quint32 integer)
28 {
29  *pointer = (quint8)(integer&0xFF);
30  *(pointer+1) = (quint8)((integer>>8)&0xFF);
31  *(pointer+2) = (quint8)((integer>>16)&0xFF);
32  *(pointer+3) = (quint8)((integer>>24)&0xFF);
33 }
34 static inline void WRITEINT16(char *pointer, const quint16 integer)
35 {
36  *pointer = (quint8)(integer&0xFF);
37  *(pointer+1) = (quint8)((integer>>8)&0xFF);
38 }
39 static inline void WRITEINT8(char *pointer, const quint8 integer)
40 {
41  *pointer = (quint8)(integer&0xFF);
42 }
43 
44 static inline quint32 MAKEID(quint8 a, quint8 b, quint8 c, quint8 d)
45 {
46  return (quint32(a)|(quint32(b)<<8)|(quint32(c)<<16)|(quint32(d)<<24));
47 }
48 
49 // Now we set it up so symbols are properly exported/imported on Windows
50 #ifdef Q_OS_WIN32
51 #ifdef MODE_MAIN
52 #define MAIN_EXPORT __declspec(dllexport)
53 #define PLUGIN_EXPORT __declspec(dllimport)
54 #else
55 #define MAIN_EXPORT __declspec(dllimport)
56 #define PLUGIN_EXPORT __declspec(dllexport)
57 #endif
58 #else
59 #define MAIN_EXPORT
60 #define PLUGIN_EXPORT
61 #endif
62 
63 #endif /* __GLOBAL_H__ */