generates simple_viewer.swf.
[swftools.git] / lib / rfxswf.h
index aa7c4da..81ccf9f 100644 (file)
 
 #define DEBUG_RFXSWF
 
+#ifndef TRUE
+#define TRUE (1)
+#endif
+#ifndef FALSE
+#define FALSE (0)
+#endif
+
+#ifdef WORDS_BIGENDIAN
+#define SWAP16(s) ((U16) ((U8*)&s)[0] | ((U16) ((U8*)&s)[1] << 8))
+#define SWAP32(s) ((U32) ((U8*)&s)[0] | ((U32) ((U8*)&s)[1] << 8) | ((U32) ((U8*)&s)[2] << 16) | ((U32) ((U8*)&s)[3] << 24))
+#else
+#define SWAP16(x) x
+#define SWAP32(x) x
+#endif
+
 // SWF Types
 
 typedef         unsigned long   U32;
@@ -132,8 +147,8 @@ TAG * swf_PrevTag(TAG * t);
 
 int   swf_GetFrameNo(TAG * t);              // should be renamed to TagGetFrame
 U16   swf_GetTagID(TAG * t);                // ... TagGetID
-U32   swf_GetDataSize(TAG * t);             // ... TagGetDataSize
-U8*   swf_GetDataSizePtr(TAG * t);
+U32   swf_GetTagLen(TAG * t);             // ... TagGetTagLen
+U8*   swf_GetTagLenPtr(TAG * t);
 
 U32   swf_GetBits(TAG * t,int nbits);
 S32   swf_GetSBits(TAG * t,int nbits);
@@ -359,6 +374,9 @@ int swf_FontUse(FONTUSAGE * use,U8 * s);
 int swf_FontSetDefine(TAG * t,SWFFONT * f);
 int swf_FontSetInfo(TAG * t,SWFFONT * f);
 
+int swf_FontExtract_DefineTextCallback(int id,SWFFONT * f,TAG * t,int jobs, 
+       void(*callback)(int*chars, int nr, int id));
+
 // the following two functions are obsolete and will be removed soon
 int swf_FontExport(int handle,SWFFONT * f);
 int swf_FontImport(int handle,SWFFONT * * f);
@@ -422,6 +440,7 @@ int swf_ObjectMove(TAG * t,U16 depth,MATRIX * m,CXFORM * cx);
 #define BC_END                  0x0800
 #define BC_INSERT               0x0a00
 #define BC_DELETE               0x0c00
+#define BC_CLEAR               0x0e00
 #define BC_BACKSPACE            0x1000
 #define BC_ENTER                0x1a00
 #define BC_CURSORUP             0x1c00
@@ -429,8 +448,30 @@ int swf_ObjectMove(TAG * t,U16 depth,MATRIX * m,CXFORM * cx);
 #define BC_PAGEUP               0x2000
 #define BC_PAGEDOWN             0x2200
 #define BC_TAB                  0x2400
+#define BC_ESCAPE              0x3600
 #define BC_SPACE                0x4000
 
+/* these are probably only valid with linux:
+   Ctrl-A       0x0200
+   Ctrl-X       0x3000
+   Ctrl-Y       0x3200
+   Ctrl-Z       0x3400
+   Escape/Ctrl-[ 0x3600
+   Ctrl-\       0x3800
+   Ctrl-]       0x3a00
+   Ctrl-^       0x3c00
+   Ctrl-/       0x3e00
+   */
+
+/* everything above 0x4000 is standard ascii:
+   0x4000 ' ' 0x4200 '!' 0x4600 '#' 0x4800 '$' 0x4a00 '%' 0x4c00 '&' ...
+   0x6000 '0' ... 0x7200 '9' 
+   0x8000 '@' 
+   0x8200 'A' ...  0xb400 'Z' 
+   ...
+   0xfc00 '~'
+ */
+
 // Button Flag
 
 #define BF_TRACKMENU            0x01
@@ -472,6 +513,7 @@ int swf_SetLosslessBitsGrayscale(TAG * t,U16 width,U16 height,U8 * bitmap);
 // swftools.c
 
 U8 swf_isDefiningTag(TAG * t);
+U8 swf_isPseudoDefiningTag(TAG * t);
 U8 swf_isAllowedSpriteTag(TAG * t);
 U16 swf_GetDefineID(TAG * t);
 U16 swf_GetPlaceID(TAG * t); //PLACEOBJECT, PLACEOBJECT2 (sometimes), REMOVEOBJECT