src/core/global.h
00001 #ifndef __GLOBAL_H__
00002 #define __GLOBAL_H__
00003 
00004 #include <QtGlobal>
00005 
00006 static inline quint32 READINT32(const char *pointer)
00007 {
00008         return ((quint32((quint8)(*pointer))) | (quint32(quint8(*(pointer+1)))<<8) | (quint32(quint8(*(pointer+2)))<<16) | (quint32(quint8(*(pointer+3)))<<24));
00009 }
00010 static inline quint16 READINT16(const char *pointer)
00011 {
00012         return ((quint16((quint8)(*pointer))) | (quint16(quint8(*(pointer+1)))<<8));
00013 }
00014 static inline quint16 READBIGINT16(const char *pointer)
00015 {
00016         return ((quint16((quint8)(*pointer))<<8) | (quint16(quint8(*(pointer+1)))));
00017 }
00018 static inline quint8 READINT8(const char *pointer)
00019 {
00020         return quint8(*pointer);
00021 }
00022 
00023 #define WRITEINT32_DIRECT(integer) (quint8)(integer&0xFF),(quint8)((integer>>8)&0xFF),(quint8)((integer>>16)&0xFF),(quint8)((integer>>24)&0xFF)
00024 #define WRITEINT16_DIRECT(integer) (quint8)(integer&0xFF),(quint8)((integer>>8)&0xFF)
00025 #define WRITEINT8_DIRECT(integer) (quint8)(integer&0xFF)
00026 
00027 static inline void WRITEINT32(char *pointer, const quint32 integer)
00028 {
00029         *pointer = (quint8)(integer&0xFF);
00030         *(pointer+1) = (quint8)((integer>>8)&0xFF);
00031         *(pointer+2) = (quint8)((integer>>16)&0xFF);
00032         *(pointer+3) = (quint8)((integer>>24)&0xFF);
00033 }
00034 static inline void WRITEINT16(char *pointer, const quint16 integer)
00035 {
00036         *pointer = (quint8)(integer&0xFF);
00037         *(pointer+1) = (quint8)((integer>>8)&0xFF);
00038 }
00039 static inline void WRITEINT8(char *pointer, const quint8 integer)
00040 {
00041         *pointer = (quint8)(integer&0xFF);
00042 }
00043 
00044 static inline quint32 MAKEID(quint8 a, quint8 b, quint8 c, quint8 d)
00045 {
00046         return (quint32(a)|(quint32(b)<<8)|(quint32(c)<<16)|(quint32(d)<<24));
00047 }
00048 
00049 // Now we set it up so symbols are properly exported/imported on Windows
00050 #ifdef Q_OS_WIN32
00051 #ifdef MODE_MAIN
00052 #define MAIN_EXPORT             __declspec(dllexport)
00053 #define PLUGIN_EXPORT   __declspec(dllimport)
00054 #else
00055 #define MAIN_EXPORT             __declspec(dllimport)
00056 #define PLUGIN_EXPORT   __declspec(dllexport)
00057 #endif
00058 #else
00059 #define MAIN_EXPORT
00060 #define PLUGIN_EXPORT
00061 #endif
00062 
00063 #endif /* __GLOBAL_H__ */
 All Classes Files Functions Variables Typedefs Enumerations Enumerator