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