added swf_DumpSWF function.
[swftools.git] / lib / modules / swfdump.c
index 063b260..907df59 100644 (file)
@@ -7,9 +7,19 @@
 
    Copyright (c) 2001 Rainer Böhme <rfxswf@reflex-studio.de>
  
-   This file is distributed under the GPL, see file COPYING for details 
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
-*/
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
 
 void swf_DumpHeader(FILE * f,SWF * swf)
 { if (!f) f = stderr;
@@ -37,6 +47,39 @@ void swf_DumpTag(FILE * f,TAG * t)
   fprintf(f,"\n");
 }
 
+void swf_DumpSWF(FILE * f, SWF*swf)
+{
+    TAG* tag = swf->firstTag;
+    fprintf(f, "vvvvvvvvvvvvvvvvvvvvv\n");
+    while(tag) {
+       printf("%8d %s\n", tag->len, swf_TagGetName(tag));
+       tag = tag->next;
+    }
+    fprintf(f, "^^^^^^^^^^^^^^^^^^^^^\n");
+}
+
+void swf_DumpFont(SWFFONT * font)
+{
+    printf("ID: %d\n", font->id);
+    printf("Version: %d\n", font->version);
+    printf("name: %s\n", font->name);
+    printf("characters: %d\n", font->numchars);
+    printf("biggest mapped ascii value: %d\n", font->maxascii);
+    printf("layout: %s\n", font->layout?"yes":"no");
+    if(font->layout)
+    {
+       printf(" ascent:%d\n", font->layout->ascent);
+       printf(" descent:%d\n", font->layout->descent);
+       printf(" leading:%d\n", font->layout->leading);
+       printf(" bounds: (not shown)\n");
+       printf(" kerning records:%d\n", font->layout->kerningcount);
+       printf(" kerning records: (not shown)\n");
+    }
+    printf("style: %d\n", font->style);
+    printf("encoding: %d\n", font->encoding);
+    printf("language: %d\n", font->language);
+}
+
 char* swf_TagGetName(TAG*tag)
 {
     switch(tag->id)
@@ -65,6 +108,8 @@ char* swf_TagGetName(TAG*tag)
             return "DEFINEFONT";
         case ST_DEFINETEXT:
             return "DEFINETEXT";
+        case ST_DEFINEEDITTEXT:
+            return "DEFINEEDITTEXT";
         case ST_DOACTION:
             return "DOACTION";
         case ST_DEFINEFONTINFO:
@@ -125,8 +170,28 @@ char* swf_TagGetName(TAG*tag)
             return "GENERATOR3";
         case ST_EXTERNALFONT:
             return "EXTERNALFONT";
+       case ST_EXPORTASSETS:
+           return "EXPORTASSETS";
+       case ST_IMPORTASSETS:
+           return "IMPORTASSETS";
+       case ST_ENABLEDEBUGGER:
+           return "ENABLEDEBUGGER";
         case ST_REFLEX:
             return "REFLEX";
+        case ST_DOINITACTION:
+            return "DOINITACTION";
+        case ST_DEFINEMOVIE:
+            return "DEFINEMOVIE";
+        case ST_DEFINEVIDEOSTREAM:
+            return "DEFINEVIDEOSTREAM";
+        case ST_VIDEOFRAME:
+            return "VIDEOFRAME";
+        case ST_DEFINEFONTINFO2:
+            return "DEFINEFONTINFO2";
+        case ST_FREEALL:
+            return "FREEALL";
+        case ST_MX4:
+            return "MX4";
     }
     return 0;
 }