added eot support to ttf library
[swftools.git] / lib / types.h
index 239d37e..499c840 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef __rfxtypes_h__
 #define __rfxtypes_h__
 
+#include "../config.h"
+
 #ifndef TRUE
 #define TRUE (1)
 #endif
 #define GET16(ptr) (((U16)(((U8*)(ptr))[0]))+(((U16)(((U8*)(ptr))[1]))<<8))
 #define GET32(ptr) (((U16)(((U8*)(ptr))[0]))+(((U16)(((U8*)(ptr))[1]))<<8)+(((U16)(((U8*)(ptr))[2]))<<16)+(((U16)(((U8*)(ptr))[3]))<<24))
 
-#ifdef WORDS_BIGENDIAN
 #define SWAP16(s) ((((s)>>8)&0x00ff)|(((s)<<8)&0xff00))
 #define SWAP32(s) (SWAP16(((s)>>16)&0x0000ffff)|((SWAP16(s)<<16)&0xffff0000))
-#define REVERSESWAP16(x) (x)
-#define REVERSESWAP32(x) (x)
+
+#ifdef WORDS_BIGENDIAN
+#define LE_16_TO_NATIVE(s) SWAP16(s)
+#define LE_32_TO_NATIVE(s) SWAP32(s)
+#define BE_16_TO_NATIVE(x) (x)
+#define BE_32_TO_NATIVE(x) (x)
 #else
-#define SWAP16(x) (x)
-#define SWAP32(x) (x)
-#define REVERSESWAP16(s) ((((s)>>8)&0x00ff)|(((s)<<8)&0xff00))
-#define REVERSESWAP32(s) (REVERSESWAP16(((s)>>16)&0x0000ffff)|((REVERSESWAP16(s)<<16)&0xffff0000))
+#define LE_16_TO_NATIVE(x) (x)
+#define LE_32_TO_NATIVE(x) (x)
+#define BE_16_TO_NATIVE(s) SWAP16(s)
+#define BE_32_TO_NATIVE(s) SWAP32(s)
 #endif
 
 // SWF Types
 
+#if SIZEOF_SIGNED_LONG_LONG != 8
+#error "no way to define 64 bit integer"
+#endif
+#if SIZEOF_SIGNED != 4
+#error "don't know how to define 32 bit integer"
+#endif
+#if SIZEOF_SIGNED_SHORT != 2
+#error "don't know how to define 16 bit integer"
+#endif
+#if SIZEOF_SIGNED_CHAR != 1
+#error "don't know how to define 8 bit integer"
+#endif
+
 typedef         unsigned long long  U64;
 typedef         signed long long    S64;
 typedef         unsigned           U32;
@@ -39,4 +57,12 @@ typedef         signed short        S16;
 typedef         unsigned char       U8;
 typedef         signed char         S8;
 
+#if SIZEOF_VOIDP == SIZEOF_SIGNED_LONG_LONG
+typedef unsigned long long ptroff_t;
+#elif SIZEOF_VOIDP == SIZEOF_SIGNED
+typedef unsigned ptroff_t;
+#else
+#error "Unknown pointer size"
+#endif
+
 #endif