X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Frfxswf.h;h=3c5e244e088b42e1d796881ea489e3b30a5101cb;hp=6178661b6cb0032d843fd6d468586ccf477e7bd5;hb=bf04757cd94e94c1f67fa3d2a4e3e59fa5bce0c0;hpb=fe5129e1148c919b80309b5debad6701d2b7adce diff --git a/lib/rfxswf.h b/lib/rfxswf.h index 6178661..3c5e244 100644 --- a/lib/rfxswf.h +++ b/lib/rfxswf.h @@ -148,6 +148,9 @@ typedef struct _SOUNDINFO U32* right; } SOUNDINFO; +#define FILEATTRIBUTE_USENETWORK 1 +#define FILEATTRIBUTE_AS3 8 +#define FILEATTRIBUTE_SYMBOLCLASS 16 typedef struct _SWF { U8 fileVersion; U8 compressed; // SWF or SWC? @@ -161,13 +164,16 @@ typedef struct _SWF // 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 @@ -232,7 +238,22 @@ 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((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); @@ -599,7 +620,7 @@ void swf_FontAddLayout(SWFFONT * f, int ascent, int descent, int leading); 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); @@ -616,18 +637,18 @@ int swf_TextPrintDefineText(TAG * t,SWFFONT * f); void swf_FontPrepareForEditText(SWFFONT * f); /* notice: if you set the fontid, make sure you call swf_FontPrepareForEditText() for the font first */ -void swf_SetEditText(TAG*tag, U16 flags, SRECT r, char*text, RGBA*color, - int maxlength, U16 font, U16 height, EditTextLayout*layout, char*variable); +void swf_SetEditText(TAG*tag, U16 flags, SRECT r, const char*text, RGBA*color, + int maxlength, U16 font, U16 height, EditTextLayout*layout, const char*variable); -SRECT swf_SetDefineText(TAG*tag, SWFFONT*font, RGBA*rgb, char*text, int scale); +SRECT swf_SetDefineText(TAG*tag, SWFFONT*font, RGBA*rgb, const char*text, int scale); -void swf_DrawText(drawer_t*draw, SWFFONT*font, int size, char*text); +void swf_DrawText(drawer_t*draw, SWFFONT*font, int size, const char*text); // swffont.c -SWFFONT* swf_LoadTrueTypeFont(char*filename); -SWFFONT* swf_LoadT1Font(char*filename); -SWFFONT* swf_LoadFont(char*filename); +SWFFONT* swf_LoadTrueTypeFont(const char*filename); +SWFFONT* swf_LoadT1Font(const char*filename); +SWFFONT* swf_LoadFont(const char*filename); void swf_SetLoadFontParameters(int scale, int skip_unused, int full_unicode); @@ -652,9 +673,9 @@ int swf_SetJPEGBitsLines(JPEGBITS * jpegbits,U8 ** data,int n); // deprecated int swf_SetJPEGBitsLine(JPEGBITS * jpegbits,U8 * data); // deprecated int swf_SetJPEGBitsFinish(JPEGBITS * jpegbits); // deprecated -void swf_GetJPEGSize(char * fname, int*width, int*height); +void swf_GetJPEGSize(const char * fname, int*width, int*height); -int swf_SetJPEGBits(TAG * t,char * fname,int quality); +int swf_SetJPEGBits(TAG * t,const char * fname,int quality); void swf_SetJPEGBits2(TAG * t,U16 width,U16 height,RGBA * bitmap,int quality); int swf_SetJPEGBits3(TAG * tag,U16 width,U16 height,RGBA* bitmap, int quality); RGBA* swf_JPEG2TagToImage(TAG*tag, int*width, int*height); @@ -714,7 +735,7 @@ MATRIX * swf_MatrixMapTriangle(MATRIX * m,int dx,int dy, 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. @@ -725,11 +746,15 @@ RGBA swf_GetSWFBackgroundColor(SWF*swf); void swf_uncgi(); // same behaviour as Steven Grimm's uncgi-library -// swfabc.c - -void* swf_ReadABC(TAG*tag); +// 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_AddButtonLinks(SWF*swf, char stop_each_frame); +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 @@ -841,7 +866,7 @@ 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); -ActionTAG* action_SetTarget(ActionTAG*atag, char* target); +ActionTAG* action_SetTarget(ActionTAG*atag, const char* target); ActionTAG* action_GotoLabel(ActionTAG*atag, char* label); ActionTAG* action_WaitForFrame2(ActionTAG*atag, U8 skip); ActionTAG* action_With(ActionTAG*atag, char*object);