U32* right;
} SOUNDINFO;
+#define FILEATTRIBUTE_USENETWORK 1
+#define FILEATTRIBUTE_AS3 8
+#define FILEATTRIBUTE_SYMBOLCLASS 16
+#define FILEATTRIBUTE_USEACCELERATEDBLIT 32
+#define FILEATTRIBUTE_USEHARDWAREGPU 64
+
typedef struct _SWF
{ U8 fileVersion;
U8 compressed; // SWF or SWC?
// Basic Functions
+SWF* swf_OpenSWF(char*filename);
int swf_ReadSWF2(reader_t*reader, SWF * swf); // Reads SWF via callback
int swf_ReadSWF(int handle,SWF * swf); // Reads SWF to memory (malloc'ed), returns length or <0 if fails
int swf_WriteSWF2(writer_t*writer, SWF * swf); // Writes SWF via callback, returns length or <0 if fails
int swf_WriteSWF(int handle,SWF * swf); // Writes SWF to file, returns length or <0 if fails
+int swf_SaveSWF(SWF * swf, char*filename);
int swf_WriteCGI(SWF * swf); // Outputs SWF with valid CGI header to stdout
void swf_FreeTags(SWF * swf); // Frees all malloc'ed memory for swf
SWF* swf_CopySWF(SWF*swf);
+void swf_ReadABCfile(char*filename, SWF*swf);
// for streaming:
int swf_WriteHeader(int handle,SWF * swf); // Writes Header of swf to file
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((const char *)s)+1)
+void swf_SetString(TAG*t,const char*s);
+
+/* abc datatypes */
+U32 swf_GetU30(TAG*tag);
+int swf_SetU30(TAG*tag, U32 u);
+void swf_SetABCU32(TAG*tag, U32 u);
+U32 swf_GetABCU32(TAG*tag);
+void swf_SetABCS32(TAG*tag, S32 v);
+S32 swf_GetABCS32(TAG*tag);
+int swf_SetU30String(TAG*tag, const char*str, int len);
+double swf_GetD64(TAG*tag);
+int swf_SetD64(TAG*tag, double v);
+int swf_GetU24(TAG*tag);
+int swf_GetS24(TAG*tag);
+int swf_SetU24(TAG*tag, U32 v);
+int swf_SetS24(TAG*tag, U32 v);
//int swf_GetPoint(TAG * t,SPOINT * p); // resets Bitcount
int swf_GetRect(TAG * t,SRECT * r);
int swf_ParseDefineText(TAG * t, void(*callback)(void*self, int*chars, int*xpos, int nr, int fontid, int fontsize, int xstart, int ystart, RGBA* color), void*self);
void swf_WriteFont(SWFFONT* font, char* filename);
-SWFFONT* swf_ReadFont(char* filename);
+SWFFONT* swf_ReadFont(const char* filename);
void swf_FontFree(SWFFONT * f);
int x0,int y0,int x1,int y1,int x2,int y2);
int swf_GetNumUsedIDs(TAG * t);
void swf_GetUsedIDs(TAG * t, int * positions);
-void swf_Relocate(SWF*swf, char*bitmap); // bitmap is 65536 bytes, bitmap[a]==0 means id a is free
+char swf_Relocate(SWF*swf, char*bitmap); // bitmap is 65536 bytes, bitmap[a]==0 means id a is free
void swf_RelocateDepth(SWF*swf, char*bitmap); // bitmap is 65536 bytes, bitmap[d]==0 means depth d is free
TAG* swf_Concatenate (TAG*list1,TAG*list2); // warning: both list1 and list2 are invalid after this call.
// as3/abc.c
void*swf_ReadABC(TAG*tag);
+void*swf_DumpABC(FILE*fo, void*code, char*prefix);
void swf_WriteABC(TAG*tag, void*code);
+void swf_FreeABC(void*code);
void swf_AddButtonLinks(SWF*swf, char stop_each_frame, char events);
+TAG*swf_AddAS3FontDefine(TAG*tag, U16 id, char*fontname);
+#include "as3/compiler.h"
+#include "as3/import.h"
// swfaction.c