Created stubs for several tags.

This commit is contained in:
Paolo Cancedda
2011-07-30 19:56:42 +02:00
parent 27f013b6bc
commit 8cf2a250cd
26 changed files with 572 additions and 0 deletions

View File

@@ -461,6 +461,78 @@ public class SWFInputStream extends InputStream {
case 34:
ret = new DefineButton2Tag(data, version);
break;
case 69:
ret = new FileAttributes(data);
break;
case 77:
ret = new Metadata(data);
break;
case 65:
ret = new ScriptLimits(data, version);
break;
case 9:
ret = new SetBackgroundColor(data);
break;
case 41:
ret = new ProductInfo(data, version);
break;
case 43:
ret = new FrameLabel(data, version);
break;
case 36:
ret = new DefineBitsLossless2(data, version);
break;
case 76:
ret = new SymbolClass(data, version);
break;
case 32:
ret = new DefineShape3(data, version);
break;
case 28:
ret = new RemoveObject2(data, version);
break;
case 78:
ret = new DefineScalingGrid(data, version);
break;
case 2:
ret = new DefineShape(data, version);
break;
case 22:
ret = new DefineShape2(data, version);
break;
case 83:
ret = new DefineShape4(data, version);
break;
case 20:
ret = new DefineBitsLossless(data, version);
break;
case 35:
ret = new DefineBitsJPEG3(data, version);
break;
case 87:
ret = new DefineBinaryData(data, version);
break;
case 8:
ret = new JPEGTables(data);
break;
case 6:
ret = new DefineBits(data, version);
break;
case 21:
ret = new DefineBitsJPEG2(data, version);
break;
case 75:
ret = new DefineFont3(data, version);
break;
case 73:
ret = new DefineFontAlignZones(data, version);
break;
case 88:
ret = new DefineFontName(data, version);
break;
case 91:
ret = new DefineFont4(data, version);
break;
default:
ret = new Tag(tagID, data);
}

View File

@@ -0,0 +1,14 @@
package com.jpexs.asdec.tags;
public class DefineBinaryData extends Tag {
public DefineBinaryData(byte[] data, int version) {
super(87, data);
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "DefineBinaryData";
}
}

View File

@@ -0,0 +1,14 @@
package com.jpexs.asdec.tags;
public class DefineBits extends Tag {
public DefineBits(byte[] data, int version) {
super(6, data);
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "DefineBits";
}
}

View File

@@ -0,0 +1,14 @@
package com.jpexs.asdec.tags;
public class DefineBitsJPEG2 extends Tag {
public DefineBitsJPEG2(byte[] data, int version) {
super(21, data);
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "DefineBitsJPEG2";
}
}

View File

@@ -0,0 +1,14 @@
package com.jpexs.asdec.tags;
public class DefineBitsJPEG3 extends Tag {
public DefineBitsJPEG3(byte[] data, int version) {
super(35, data);
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "DefineBitsJPEG3";
}
}

View File

@@ -0,0 +1,14 @@
package com.jpexs.asdec.tags;
public class DefineBitsLossless extends Tag {
public DefineBitsLossless(byte[] data, int version) {
super(20, data);
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "DefineBitsLossless";
}
}

View File

@@ -0,0 +1,16 @@
package com.jpexs.asdec.tags;
import java.io.IOException;
public class DefineBitsLossless2 extends Tag {
public DefineBitsLossless2(byte[] data, int version) throws IOException {
super(36, data);
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "DefineBitsLossless2";
}
}

View File

@@ -0,0 +1,14 @@
package com.jpexs.asdec.tags;
public class DefineFont3 extends Tag {
public DefineFont3(byte[] data, int version) {
super(75, data);
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "DefineFont3";
}
}

View File

@@ -0,0 +1,14 @@
package com.jpexs.asdec.tags;
public class DefineFont4 extends Tag {
public DefineFont4(byte[] data, int version) {
super(91, data);
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "DefineFont4";
}
}

View File

@@ -0,0 +1,14 @@
package com.jpexs.asdec.tags;
public class DefineFontAlignZones extends Tag {
public DefineFontAlignZones(byte[] data, int version) {
super(73, data);
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "DefineFontAlignZones";
}
}

View File

@@ -0,0 +1,27 @@
package com.jpexs.asdec.tags;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import com.jpexs.asdec.SWFInputStream;
public class DefineFontName extends Tag {
private int fontId;
private String fontName;
private String fontCopyright;
public DefineFontName(byte[] data, int version) throws IOException {
super(88, data);
SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
fontId = sis.readUI16();
fontName = sis.readString();
fontCopyright = sis.readString();
}
@Override
public String toString() {
return "DefineFontName";
}
}

View File

@@ -0,0 +1,26 @@
package com.jpexs.asdec.tags;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import com.jpexs.asdec.SWFInputStream;
import com.jpexs.asdec.types.RECT;
public class DefineScalingGrid extends Tag {
private int characterId;
private RECT splitter;
public DefineScalingGrid(byte[] data, int version) throws IOException {
super(78, data);
SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
characterId = sis.readUI16();
splitter = sis.readRECT();
}
@Override
public String toString() {
return "DefineScalingGrid";
}
}

View File

@@ -0,0 +1,16 @@
package com.jpexs.asdec.tags;
import java.io.IOException;
public class DefineShape extends Tag {
public DefineShape(byte[] data, int version) throws IOException {
super(2, data);
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "DefineShape";
}
}

View File

@@ -0,0 +1,16 @@
package com.jpexs.asdec.tags;
import java.io.IOException;
public class DefineShape2 extends Tag {
public DefineShape2(byte[] data, int version) throws IOException {
super(22, data);
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "DefineShape2";
}
}

View File

@@ -0,0 +1,16 @@
package com.jpexs.asdec.tags;
import java.io.IOException;
public class DefineShape3 extends Tag {
public DefineShape3(byte[] data, int version) throws IOException {
super(32, data);
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "DefineShape3";
}
}

View File

@@ -0,0 +1,13 @@
package com.jpexs.asdec.tags;
public class DefineShape4 extends Tag {
public DefineShape4(byte[] data, int version) {
super(83, data);
}
@Override
public String toString() {
return "DefineShape4";
}
}

View File

@@ -0,0 +1,27 @@
package com.jpexs.asdec.tags;
public class FileAttributes extends Tag {
private boolean useDirectBlit;
private boolean useGPU;
private boolean hasMetadata;
private boolean actionScript3;
private boolean useNetwork;
public FileAttributes(byte[] data) {
super(69, data);
// UB[1] == 0 (reserved)
useDirectBlit = (data[0] & 0x40) != 0;
useGPU = (data[0] & 0x20) != 0;
hasMetadata = (data[0] & 0x10) != 0;
actionScript3 = (data[0] & 0x08) != 0;
// UB[2] == 0 (reserved)
useNetwork = (data[0] & 0x01) != 0;
// UB[24] == 0 (reserved)
}
@Override
public String toString() {
return "FileAttributes";
}
}

View File

@@ -0,0 +1,22 @@
package com.jpexs.asdec.tags;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import com.jpexs.asdec.SWFInputStream;
public class FrameLabel extends Tag {
private String name;
public FrameLabel(byte[] data, int version) throws IOException {
super(43, data);
SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
name = sis.readString();
}
@Override
public String toString() {
return "FrameLabel";
}
}

View File

@@ -0,0 +1,16 @@
package com.jpexs.asdec.tags;
import java.io.IOException;
public class JPEGTables extends Tag {
public JPEGTables(byte[] data) throws IOException {
super(8, data);
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "JPEGTables";
}
}

View File

@@ -0,0 +1,23 @@
package com.jpexs.asdec.tags;
import java.io.UnsupportedEncodingException;
public class Metadata extends Tag {
private String xmlMetadata;
public Metadata(byte[] data) {
super(77, data);
try {
xmlMetadata = new String(data, "UTF-8");
} catch (UnsupportedEncodingException e) {
// cannot get here
e.printStackTrace();
}
}
@Override
public String toString() {
return "Metadata";
}
}

View File

@@ -0,0 +1,51 @@
package com.jpexs.asdec.tags;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import com.jpexs.asdec.SWFInputStream;
public class ProductInfo extends Tag {
private long productID;
private long edition;
private int majorVersion;
private int minorVersion;
private long buildLow;
private long buildHigh;
private long compilationDate;
public ProductInfo(byte[] data, int version) throws IOException {
super(41, data);
SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
/*
* 0: Unknown
* 1: Macromedia Flex for J2EE
* 2: Macromedia Flex for .NET
* 3: Adobe Flex
*/
productID = sis.readUI32();
/*
* 0: Developer Edition
* 1: Full Commercial Edition
* 2: Non Commercial Edition
* 3: Educational Edition
* 4: Not For Resale (NFR) Edition
* 5: Trial Edition
* 6: None
*/
edition = sis.readUI32();
majorVersion = sis.readUI8();
minorVersion = sis.readUI8();
buildLow = sis.readUI32();
buildHigh = sis.readUI32();
compilationDate = sis.readUI32() & 0xffffffffL;
compilationDate |= sis.readUI32() << 32;
}
@Override
public String toString() {
return "ProductInfo";
}
}

View File

@@ -0,0 +1,23 @@
package com.jpexs.asdec.tags;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import com.jpexs.asdec.SWFInputStream;
public class RemoveObject2 extends Tag {
private int depth;
public RemoveObject2(byte[] data, int version) throws IOException {
super(28, data);
ByteArrayInputStream bais = new ByteArrayInputStream(data);
SWFInputStream sis = new SWFInputStream(bais, version);
depth = sis.readUI16();
}
@Override
public String toString() {
return "RemoveObject2";
}
}

View File

@@ -0,0 +1,24 @@
package com.jpexs.asdec.tags;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import com.jpexs.asdec.SWFInputStream;
public class ScriptLimits extends Tag {
private int maxRecursionDepth;
private int scriptTimeoutSeconds;
public ScriptLimits(byte[] data, int version) throws IOException {
super(65, data);
SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
maxRecursionDepth = sis.readUI16();
scriptTimeoutSeconds = sis.readUI16();
}
@Override
public String toString() {
return "ScriptLimits";
}
}

View File

@@ -0,0 +1,21 @@
package com.jpexs.asdec.tags;
import com.jpexs.asdec.types.RGB;
public class SetBackgroundColor extends Tag {
private RGB backgroundColor;
public SetBackgroundColor(byte[] data) {
super(9, data);
backgroundColor = new RGB();
backgroundColor.red = data[0] & 0xff;
backgroundColor.green = data[1] & 0xff;
backgroundColor.blue = data[2] & 0xff;
}
@Override
public String toString() {
return "SetBackgroundColor";
}
}

View File

@@ -0,0 +1,30 @@
package com.jpexs.asdec.tags;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import com.jpexs.asdec.SWFInputStream;
public class SymbolClass extends Tag {
private int tagIDs[];
private String classNames[];
public SymbolClass(byte[] data, int version) throws IOException {
super(76, data);
SWFInputStream sis = new SWFInputStream(new ByteArrayInputStream(data), version);
int numSymbols = sis.readUI16();
tagIDs = new int[numSymbols];
classNames = new String[numSymbols];
for (int ii = 0; ii < numSymbols; ii++) {
int tagID = sis.readUI16();
String className = sis.readString();
tagIDs[ii] = tagID;
classNames[ii] = className;
}
}
@Override
public String toString() {
return "SymbolClass";
}
}

View File

@@ -0,0 +1,21 @@
package com.jpexs.asdec.types;
/**
* Represents 24-bit red, green, blue value
*
* @author JPEXS
*/
public class RGB {
/**
* Red color value
*/
public int red;
/**
* Green color value
*/
public int green;
/**
* Blue color value
*/
public int blue;
}