summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/libflash/script.h
Side-by-side diff
Diffstat (limited to 'core/multimedia/opieplayer/libflash/script.h') (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/libflash/script.h144
1 files changed, 144 insertions, 0 deletions
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_ */