Initial revision
[swftools.git] / lib / modules / swfdump.c
1 /* swfdump.c\r
2 \r
3    Dump / debug functions\r
4    \r
5    Extension module for the rfxswf library.\r
6    Part of the swftools package.\r
7 \r
8    Copyright (c) 2001 Rainer Böhme <rfxswf@reflex-studio.de>\r
9  \r
10    This file is distributed under the GPL, see file COPYING for details \r
11 \r
12 */\r
13 \r
14 void DumpHeader(FILE * f,LPSWF swf)\r
15 { if (!f) f = stderr;\r
16   fprintf(f,"File size\t%u\n",swf->FileSize);\r
17   fprintf(f,"Movie width\t%u\n",(swf->MovieSize.xmax - swf->MovieSize.xmin)/20);\r
18   fprintf(f,"Movie height\t%u\n",(swf->MovieSize.ymax - swf->MovieSize.ymin)/20);\r
19   fprintf(f,"Frame rate\t%u.%u\n",swf->FrameRate>>8,swf->FrameRate&0xff);\r
20   fprintf(f,"Frame count\t%u\n",swf->FrameCount);\r
21 }\r
22 \r
23 void DumpMatrix(FILE * f,LPMATRIX m)\r
24 { if (!f) f = stderr;\r
25   fprintf(f,"[%08x][%08x]\n",m->sx,m->r1);\r
26   fprintf(f,"[%08x][%08x]\n",m->r0,m->sy);\r
27   fprintf(f," %08x, %08x\n",m->tx,m->ty);\r
28 }\r
29 \r
30 void DumpTag(FILE * f,LPTAG t)\r
31 { int i;\r
32   if (!f) f = stderr;\r
33   for (i=0;i<t->len;i++)\r
34   { if (!(i&15)) fprintf(f,"\n");\r
35     fprintf(f,"%02x ",t->data[i]);\r
36   }\r
37   fprintf(f,"\n");\r
38 }\r
39 \r
40 char* getTagName(TAG*tag)\r
41 {\r
42     switch(tag->id)\r
43     {\r
44         case ST_END:\r
45             return "END";\r
46         case ST_SHOWFRAME:\r
47             return "SHOWFRAME";\r
48         case ST_DEFINESHAPE:\r
49             return "DEFINESHAPE";\r
50         case ST_FREECHARACTER:\r
51             return "FREECHARACTER";\r
52         case ST_PLACEOBJECT:\r
53             return "PLACEOBJECT";\r
54         case ST_REMOVEOBJECT:\r
55             return "REMOVEOBJECT";\r
56         case ST_DEFINEBITS:\r
57             return "DEFINEBITS";\r
58         case ST_DEFINEBUTTON:\r
59             return "DEFINEBUTTON";\r
60         case ST_JPEGTABLES:\r
61             return "JPEGTABLES";\r
62         case ST_SETBACKGROUNDCOLOR:\r
63             return "SETBACKGROUNDCOLOR";\r
64         case ST_DEFINEFONT:\r
65             return "DEFINEFONT";\r
66         case ST_DEFINETEXT:\r
67             return "DEFINETEXT";\r
68         case ST_DOACTION:\r
69             return "DOACTION";\r
70         case ST_DEFINEFONTINFO:\r
71             return "DEFINEFONTINFO";\r
72         case ST_DEFINESOUND:\r
73             return "DEFINESOUND";\r
74         case ST_STARTSOUND:\r
75             return "STARTSOUND";\r
76         case ST_DEFINEBUTTONSOUND:\r
77             return "DEFINEBUTTONSOUND";\r
78         case ST_SOUNDSTREAMHEAD:\r
79             return "SOUNDSTREAMHEAD";\r
80         case ST_SOUNDSTREAMBLOCK:\r
81             return "SOUNDSTREAMBLOCK";\r
82         case ST_DEFINEBITSLOSSLESS:\r
83             return "DEFINEBITSLOSSLESS";\r
84         case ST_DEFINEBITSJPEG2:\r
85             return "DEFINEBITSJPEG2";\r
86         case ST_DEFINESHAPE2:\r
87             return "DEFINESHAPE2";\r
88         case ST_DEFINEBUTTONCXFORM:\r
89             return "DEFINEBUTTONCXFORM";\r
90         case ST_PROTECT:\r
91             return "PROTECT";\r
92         case ST_PLACEOBJECT2:\r
93             return "PLACEOBJECT2";\r
94         case ST_REMOVEOBJECT2:\r
95             return "REMOVEOBJECT2";\r
96         case ST_DEFINESHAPE3:\r
97             return "DEFINESHAPE3";\r
98         case ST_DEFINETEXT2:\r
99             return "DEFINETEXT2";\r
100         case ST_DEFINEBUTTON2:\r
101             return "DEFINEBUTTON2";\r
102         case ST_DEFINEBITSJPEG3:\r
103             return "DEFINEBITSJPEG3";\r
104         case ST_DEFINEBITSLOSSLESS2:\r
105             return "DEFINEBITSLOSSLESS2";\r
106         case ST_DEFINESPRITE:\r
107             return "DEFINESPRITE";\r
108         case ST_NAMECHARACTER:\r
109             return "NAMECHARACTER";\r
110         case ST_SERIALNUMBER:\r
111             return "SERIALNUMBER";\r
112         case ST_GENERATORTEXT:\r
113             return "GENERATORTEXT";\r
114         case ST_FRAMELABEL:\r
115             return "FRAMELABEL";\r
116         case ST_SOUNDSTREAMHEAD2:\r
117             return "SOUNDSTREAMHEAD2";\r
118         case ST_DEFINEMORPHSHAPE:\r
119             return "DEFINEMORPHSHAPE";\r
120         case ST_DEFINEFONT2:\r
121             return "DEFINEFONT2";\r
122         case ST_TEMPLATECOMMAND:\r
123             return "TEMPLATECOMMAND";\r
124         case ST_GENERATOR3:\r
125             return "GENERATOR3";\r
126         case ST_EXTERNALFONT:\r
127             return "EXTERNALFONT";\r
128         case ST_REFLEX:\r
129             return "REFLEX";\r
130     }\r
131 }\r