From 15318cad33835e4e2dc620d033e43cd930676cdd Mon Sep 17 00:00:00 2001 From: kergoth Date: Fri, 25 Jan 2002 22:14:26 +0000 Subject: Initial revision --- (limited to 'core/multimedia/opieplayer/libflash/script.h') diff --git a/core/multimedia/opieplayer/libflash/script.h b/core/multimedia/opieplayer/libflash/script.h new file mode 100644 index 0000000..a41c47e --- a/dev/null +++ b/core/multimedia/opieplayer/libflash/script.h @@ -0,0 +1,144 @@ +#ifndef _SCRIPT_H_ +#define _SCRIPT_H_ + +// SWF file parser. +// +////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////// +// Input script object definition. +////////////////////////////////////////////////////////////////////// + +// An input script object. This object represents a script created from +// an external file that is meant to be inserted into an output script. +struct CInputScript : public Dict +{ + int level; + struct CInputScript *next; + + Program *program; // Current parsed program + + // Memory fences + int outOfMemory; + + //Flash info + long frameRate; + long frameCount; + Rect frameRect; + + // Pointer to file contents buffer. + U8 *m_fileBuf; + + // File state information. + U32 m_filePos; + U32 m_fileSize; + U32 m_actualSize; + U32 m_fileStart; + U16 m_fileVersion; + + int needHeader; + + // Bit Handling + S32 m_bitPos; + U32 m_bitBuf; + + // Tag parsing information. + U32 m_tagStart; + U32 m_tagEnd; + U32 m_tagLen; + + // Parsing information. + S32 m_nFillBits; + S32 m_nLineBits; + S32 m_nGlyphBits; + S32 m_nAdvanceBits; + + // Set to true if we wish to dump all contents long form + U32 m_dumpAll; + + // if set to true will dump image guts (i.e. jpeg, zlib, etc. data) + U32 m_dumpGuts; + + // Handle to output file. + FILE *m_outputFile; + + // Constructor/destructor. + CInputScript(int level = 0); + ~CInputScript(); + + // Tag scanning methods. + U16 GetTag(void); + U8 GetByte(void); + U16 GetWord(void); + U32 GetDWord(void); + void GetRect(Rect *r); + void GetMatrix(Matrix *matrix); + + void GetCxform(Cxform *cxform, BOOL hasAlpha); + char *GetString(void); + + // Routines for reading arbitrary sized bit fields from the stream. + // Always call start bits before gettings bits and do not intermix + // these calls with GetByte, etc... + void InitBits(); + S32 GetSBits(S32 n); + U32 GetBits(S32 n); + + // Tag subcomponent parsing methods + void ParseFillStyle(long getAlpha = 0); + void ParseLineStyle(long getAlpha = 0); + int ParseShapeRecord(long getAlpha = 0); + ButtonRecord * ParseButtonRecord(long getCxform = 0); + ActionRecord * ParseActionRecord(); + TextRecord * ParseTextRecord(int hasAlpha = 0); + void ParseShapeData(int getAlpha, int getStyles); + + // Parsing methods. + void ParseEnd(); // 00: stagEnd + void ParseShowFrame(U32 frame, U32 offset); // 01: stagShowFrame + void ParseDefineShape(int level); // 02: stagDefineShape + void ParseFreeCharacter(); // 03: stagFreeCharacter + void ParsePlaceObject(); // 04: stagPlaceObject + void ParseRemoveObject(); // 05: stagRemoveObject + void ParseDefineBits(); // 06: stagDefineBits + void ParseDefineButton(); //x 07: stagDefineButton + void ParseJPEGTables(); // 08: stagJPEGTables + void ParseSetBackgroundColor(); // 09: stagSetBackgroundColor + void ParseDefineFont(); //x 10: stagDefineFont + void ParseDefineText(int hasAplha); //x 11: stagDefineText 33: stagDefineText2 + void ParseDoAction(); // 12: stagDoAction + void ParseDefineFontInfo(); //x 13: stagDefineFontInfo + void ParseDefineSound(); // 14: stagDefineSound + void ParseStartSound(); // 15: stagStartSound + void ParseStopSound(); // 16: stagStopSound + void ParseDefineButtonSound(); // 17: stagDefineButtonSound + void ParseSoundStreamHead(); // 18: stagSoundStreamHead + void ParseSoundStreamBlock(); // 19: stagSoundStreamBlock + void ParseDefineBitsLossless(int level); // 20: stagDefineBitsLossless 36: stagDefineBitsLossless2 + void ParseDefineBitsJPEG2(); // 21: stagDefineBitsJPEG2 + void ParseDefineButtonCxform(); // 23: stagDefineButtonCxform + void ParseProtect(); // 24: stagProtect + void ParsePlaceObject2(); // 26: stagPlaceObject2 + void ParseRemoveObject2(); // 28: stagRemoveObject2 + void ParseDefineButton2(); //x 34: stagDefineButton2 + void ParseDefineBitsJPEG3(); // 35: stagDefineBitsJPEG3 + void ParseDefineMouseTarget(); // 38: stagDefineMouseTarget + void ParseDefineSprite(); //x 39: stagDefineSprite + void ParseNameCharacter(); // 40: stagNameCharacter + void ParseFrameLabel(); // 43: stagFrameLabel + void ParseSoundStreamHead2(); // 45: stagSoundStreamHead2 + void ParseDefineMorphShape(); //x 46: stagDefineMorphShape + void ParseDefineFont2(); //x 48: stagDefineFont2 + void ParseUnknown(long,long); + + void ParseTags(int *); + int ParseData(FlashMovie *movie, char * data, long size); + void S_DumpImageGuts(); + +#ifdef DUMP + long save(char *filenam); +#endif +}; + + +#endif /* _SCRIPT_H_ */ -- cgit v0.9.0.2