win32 compile fixes
[swftools.git] / lib / rfxswf.h
index 60b3561..fe3c7e1 100644 (file)
 #ifndef __RFX_SWF_INCLUDED__
 #define __RFX_SWF_INCLUDED__
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <math.h>
 #include <string.h>
+#ifndef WIN32
 #include <unistd.h>
+#endif
 #include <fcntl.h>
 #include <ctype.h>
 #include "../config.h"
@@ -41,6 +39,10 @@ extern "C" {
 #include "./mem.h"
 #include "./types.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define DEBUG_RFXSWF
 #ifdef RFXSWF_DISABLESOUND
 #define NO_MP3
@@ -227,7 +229,7 @@ int   swf_SetU8(TAG * t,U8 v);              // resets Bitcount
 int   swf_SetU16(TAG * t,U16 v);
 void  swf_SetS16(TAG * t,int v);
 int   swf_SetU32(TAG * t,U32 v);
-#define swf_SetString(t,s)  swf_SetBlock(t,s,strlen(s)+1)
+#define swf_SetString(t,s)  swf_SetBlock(t,s,strlen((const char *)s)+1)
 
 //int   swf_GetPoint(TAG * t,SPOINT * p);     // resets Bitcount
 int   swf_GetRect(TAG * t,SRECT * r);
@@ -326,11 +328,15 @@ SRECT swf_TurnRect(SRECT r, MATRIX* m);
 #define ST_DEFINEFONTALIGNZONES 73 /* version 8 */
 #define ST_CSMTEXTSETTINGS     74 /* version 8 */
 #define ST_DEFINEFONT3         75 /* version 8 */
+#define ST_SYMBOLCLASS         76 /* version 9 */
 #define ST_METADATA            77 /* version 8 */
 #define ST_DEFINESCALINGGRID    78 /* version 8 */
+#define ST_DOABC               82 /* version 9 */
 #define ST_DEFINESHAPE4                83 /* version 8 */
 #define ST_DEFINEMORPHSHAPE2    84 /* version 8 */
 #define ST_SCENEDESCRIPTION    86 /* version 9 */
+#define ST_DEFINEBINARY                87 /* version 9 */
+#define ST_DEFINEFONTNAME      88 /* version 9 */
 
 /* custom tags- only valid for swftools */
 #define ST_REFLEX              777 /* to identify generator software */
@@ -393,9 +399,10 @@ typedef struct _SHAPE2
     SRECT* bbox; // may be NULL
 } SHAPE2;
 
+enum SHAPELINETYPE {moveTo, lineTo, splineTo};
 typedef struct _SHAPELINE
 {
-    enum {moveTo, lineTo, splineTo} type;
+    enum SHAPELINETYPE type;
     SCOORD x,y;
     SCOORD sx,sy; //only if type==splineTo
     int fillstyle0;
@@ -554,6 +561,10 @@ int swf_FontEnumerate(SWF * swf,void (*FontCallback) (void*,U16,U8*), void*self)
 int swf_FontExtract(SWF * swf,int id,SWFFONT ** f);
 // Fetches all available information from DefineFont, DefineFontInfo, DefineText, ...
 // id = FontID, id=0 -> Extract first Font
+int swf_FontExtract_DefineFont2(int id, SWFFONT * font, TAG * tag);
+int swf_FontExtract_DefineFontInfo(int id, SWFFONT * f, TAG * t);
+int swf_FontExtract_DefineFont(int id, SWFFONT * f, TAG * t);
+int swf_FontExtract_GlyphNames(int id, SWFFONT * f, TAG * tag);
 
 int swf_FontIsItalic(SWFFONT * f);
 int swf_FontIsBold(SWFFONT * f);
@@ -882,7 +893,7 @@ ActionTAG* action_BitLShift(ActionTAG*atag);
 ActionTAG* action_BitRShift(ActionTAG*atag);
 ActionTAG* action_BitURShift(ActionTAG*atag);
 ActionTAG* action_GotoFrame(ActionTAG*atag, U16 frame);
-ActionTAG* action_GetUrl(ActionTAG*atag, char* url, char* label);
+ActionTAG* action_GetUrl(ActionTAG*atag, const char* url, char* label);
 ActionTAG* action_StoreRegister(ActionTAG*atag, U8 reg);
 ActionTAG* action_Constantpool(ActionTAG*atag, char* constantpool);
 ActionTAG* action_WaitForFrame(ActionTAG*atag, U16 frame, U8 skip);
@@ -890,7 +901,7 @@ ActionTAG* action_SetTarget(ActionTAG*atag, char* target);
 ActionTAG* action_GotoLabel(ActionTAG*atag, char* label);
 ActionTAG* action_WaitForFrame2(ActionTAG*atag, U8 skip);
 ActionTAG* action_With(ActionTAG*atag, char*object);
-ActionTAG* action_PushString(ActionTAG*atag, char*str);
+ActionTAG* action_PushString(ActionTAG*atag, const char*str);
 ActionTAG* action_PushFloat(ActionTAG*atag, float f);
 ActionTAG* action_PushNULL(ActionTAG*atag);
 ActionTAG* action_PushRegister(ActionTAG*atag, U8 reg);
@@ -985,7 +996,7 @@ void swf_Render_SetBackgroundColor(RENDERBUF*buf, RGBA color);
 RGBA* swf_Render(RENDERBUF*dest);
 void swf_RenderShape(RENDERBUF*dest, SHAPE2*shape, MATRIX*m, CXFORM*c, U16 depth,U16 clipdepth);
 void swf_RenderSWF(RENDERBUF*buf, SWF*swf);
-void swf_Render_AddImage(RENDERBUF*buf, U16 id, RGBA*img, int width, int height);
+void swf_Render_AddImage(RENDERBUF*buf, U16 id, RGBA*img, int width, int height); /* img is non-premultiplied */
 void swf_Render_ClearCanvas(RENDERBUF*dest);
 void swf_Render_Delete(RENDERBUF*dest);
 
@@ -1058,9 +1069,10 @@ void swf_SetFilter(TAG*tag, FILTER*f);
 FILTER*swf_GetFilter(TAG*tag);
 FILTER*swf_NewFilter(U8 type);
 
+void AVM2_InsertStops(SWF*swf);
+
 #ifdef __cplusplus
 }
 #endif
 
 #endif
-