X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Frfxswf.h;h=9fb25464a7e934e9b0b7503369926bb45db897c8;hb=57a0c65d0d2fee99e2899404b561aeccc121cfc8;hp=4a567dcfa2b4d93807592a6fe82910ecd88588cd;hpb=e4cafb8da0ab97cae14fb518c6798877473ea349;p=swftools.git diff --git a/lib/rfxswf.h b/lib/rfxswf.h index 4a567dc..9fb2546 100644 --- a/lib/rfxswf.h +++ b/lib/rfxswf.h @@ -95,7 +95,7 @@ typedef struct _MATRIX } MATRIX, * LPMATRIX; typedef struct _CXFORM -{ S16 a0, a1; +{ S16 a0, a1; /* mult, add */ S16 r0, r1; S16 g0, g1; S16 b0, b1; @@ -126,6 +126,22 @@ typedef struct _TAG // NEVER access a Tag-Struct directly ! } TAG, * LPTAG; +typedef struct _SOUNDINFO +{ + U8 stop; + U8 multiple; //continue playing if already started + + U32 inpoint; + U32 outpoint; + + U16 loops; + U8 envelopes; + + //envelope: + U32* pos; + U32* left; + U32* right; +} SOUNDINFO; typedef struct _SWF { U8 fileVersion; @@ -162,6 +178,10 @@ void swf_UnFoldAll(SWF*swf); void swf_FoldSprite(TAG*tag); void swf_UnFoldSprite(TAG*tag); +// tag reordering: + +void swf_OptimizeTagOrder(SWF*swf); + // basic routines: TAG * swf_InsertTag(TAG * after,U16 id); // updates frames, if necessary @@ -208,6 +228,13 @@ int swf_SetCXForm(TAG * t,CXFORM * cx,U8 alpha); int swf_SetRGB(TAG * t,RGBA * col); int swf_SetRGBA(TAG * t,RGBA * col); +// helper functions: + +void swf_ExpandRect(SRECT*src, SPOINT add); +void swf_ExpandRect2(SRECT*src, SRECT*add); +SPOINT swf_TurnPoint(SPOINT p, MATRIX* m); +SRECT swf_TurnRect(SRECT r, MATRIX* m); + // Function Macros #define swf_GetS8(tag) ((S8)swf_GetU8(tag)) @@ -215,6 +242,7 @@ int swf_SetRGBA(TAG * t,RGBA * col); #define swf_GetS32(tag) ((S32)swf_GetU32(tag)) #define swf_GetCoord(tag) ((SCOORD)swf_GetU32(tag)) #define swf_GetFixed(tag) ((SFIXED)swf_GetU32(tag)) +#define swf_GetString(t) ((char*)(&(t)->data[(t)->pos])) #define swf_SetS8(tag,v) swf_SetU8(tag,(U8)v) #define swf_SetS16(tag,v) swf_SetU16(tag,(U16)v) @@ -616,8 +644,11 @@ int swf_SetLosslessBitsGrayscale(TAG * t,U16 width,U16 height,U8 * bitmap); // swfsound.c void swf_SetSoundStreamHead(TAG*tag, int avgnumsamples); -/* expects 2304 samples */ -void swf_SetSoundStreamBlock(TAG*tag, S16*samples, char first); +void swf_SetSoundStreamBlock(TAG*tag, S16*samples, char first); /* expects 2304 samples */ + +void swf_SetSoundDefine(TAG*tag, S16*samples, int num); + +void swf_SetSoundInfo(TAG*tag, SOUNDINFO*info); #endif // RFXSWF_DISABLESOUND