From 5e1976a79254392b9840d1634d1365de658934e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=F8=EDk?= Date: Sun, 1 Sep 2013 14:30:49 +0200 Subject: [PATCH] Playback controls --- trunk/build.xml | 2 +- trunk/lib/FlashPlayer.exe | Bin 489984 -> 491520 bytes trunk/libsrc/FlashPlayer/uMain.dcu | Bin 9024 -> 10158 bytes trunk/libsrc/FlashPlayer/uMain.dfm | 4 +- trunk/libsrc/FlashPlayer/uMain.pas | 75 +++++++- .../jpexs/decompiler/flash/Configuration.java | 51 ++--- .../decompiler/flash/SWFInputStream.java | 6 +- .../flash/abc/avm2/model/BooleanAVM2Item.java | 2 +- .../abc/avm2/model/NewFunctionAVM2Item.java | 2 +- .../abc/avm2/model/clauses/TryAVM2Item.java | 4 +- .../flash/abc/types/traits/TraitClass.java | 2 +- .../jpexs/decompiler/flash/action/Action.java | 6 +- .../action/model/clauses/WithActionItem.java | 2 +- .../flash/action/parser/pcode/ASMParser.java | 10 +- .../flash/action/swf4/ActionPush.java | 4 +- .../decompiler/flash/gui/ImagePanel.java | 121 +++++++++--- .../com/jpexs/decompiler/flash/gui/Main.java | 16 +- .../jpexs/decompiler/flash/gui/MainFrame.java | 170 ++++++++-------- .../decompiler/flash/gui/MyProgressBarUI.java | 36 ++-- .../decompiler/flash/gui/SWFPreviwPanel.java | 4 +- .../com/jpexs/decompiler/flash/gui/View.java | 4 +- .../decompiler/flash/gui/graphics/pause16.png | Bin 0 -> 721 bytes .../decompiler/flash/gui/graphics/play16.png | Bin 0 -> 717 bytes .../decompiler/flash/gui/graphics/stop16.png | Bin 0 -> 695 bytes .../flash/gui/locales/MainFrame.properties | 7 +- .../flash/gui/locales/MainFrame_cs.properties | 7 +- .../flash/gui/player/FlashDisplay.java | 46 +++++ .../flash/gui/player/FlashPlayerPanel.java | 112 +++++++++-- .../flash/gui/player/PlayerControls.java | 181 ++++++++++++++++++ .../decompiler/flash/tags/DefineFont2Tag.java | 2 +- .../decompiler/flash/tags/DefineFont3Tag.java | 4 +- .../decompiler/flash/tags/DefineFontTag.java | 4 +- .../decompiler/flash/tags/DefineText2Tag.java | 14 +- .../decompiler/flash/tags/DefineTextTag.java | 14 +- .../flash/tags/DefineVideoStreamTag.java | 2 +- .../flash/tags/ExportAssetsTag.java | 5 +- .../flash/tags/FileAttributesTag.java | 4 +- .../flash/tags/font/CharacterRanges.java | 63 +++--- .../flash/types/shaperecords/SHAPERECORD.java | 2 +- .../decompiler/flash/xfl/XFLConverter.java | 16 +- trunk/src/com/jpexs/helpers/Cache.java | 11 +- .../com/sun/jna/platform/win32/Kernel32.java | 2 + 42 files changed, 747 insertions(+), 270 deletions(-) create mode 100644 trunk/src/com/jpexs/decompiler/flash/gui/graphics/pause16.png create mode 100644 trunk/src/com/jpexs/decompiler/flash/gui/graphics/play16.png create mode 100644 trunk/src/com/jpexs/decompiler/flash/gui/graphics/stop16.png create mode 100644 trunk/src/com/jpexs/decompiler/flash/gui/player/FlashDisplay.java create mode 100644 trunk/src/com/jpexs/decompiler/flash/gui/player/PlayerControls.java diff --git a/trunk/build.xml b/trunk/build.xml index fbfc22156..b8710abf8 100644 --- a/trunk/build.xml +++ b/trunk/build.xml @@ -45,7 +45,7 @@ - + diff --git a/trunk/lib/FlashPlayer.exe b/trunk/lib/FlashPlayer.exe index 6d168a7841239a04c5016bcb9c6b1a18c04cef44..28252f18fded16d6c2d493109e3d4b12acee60d3 100644 GIT binary patch delta 4184 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 F{uhkqq)`9> diff --git a/trunk/libsrc/FlashPlayer/uMain.dcu b/trunk/libsrc/FlashPlayer/uMain.dcu index 9faed8f2a916d793e160a94ab74e367aa005f8e6..02225922f060684941fe4166b96c80868902b02f 100644 GIT binary patch delta 3570 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 then @@ -128,19 +143,69 @@ begin Synchronize(displaySWF); end; end; - if(cmd=2) then + CMD_RESIZE: begin ReadFile(pipe,buffer,4,numBytesRead,nil); self.w:=buffer[0]*256+buffer[1]; self.h:=buffer[2]*256+buffer[3]; Synchronize(setPos); end; - if(cmd=3) then + CMD_BGCOLOR: begin ReadFile(pipe,buffer,3,numBytesRead,nil); self.bgColor := RGB(buffer[0],buffer[1],buffer[2]); Synchronize(setBGColor); end; + CMD_CURRENT_FRAME: + begin + if flaPreview.ReadyState = 4 then + val:=flaPreview.CurrentFrame + else + val:=0; + buffer[0]:=(val shr 8) mod 256; + buffer[1]:=val mod 256; + WriteFile(pipe,buffer,2,written,nil); + end; + CMD_TOTAL_FRAMES: + begin + if flaPreview.ReadyState = 4 then + val:=flaPreview.TotalFrames + else + val:=0; + buffer[0]:=(val shr 8) mod 256; + buffer[1]:=val mod 256; + WriteFile(pipe,buffer,2,written,nil); + end; + CMD_PAUSE: + begin + flaPreview.Stop; + end; + CMD_RESUME: + begin + flaPreview.Play; + end; + CMD_PLAYING: + begin + buffer[0]:=0; + if flaPreview.ReadyState = 4 then + if flaPreview.IsPlaying then + buffer[0]:=1; + + + WriteFile(pipe,buffer,1,written,nil); + end; + CMD_REWIND: + begin + flaPreview.Rewind; + end; + CMD_GOTO: + begin + ReadFile(pipe,buffer,2,numBytesRead,nil); + val := (buffer[0] shl 8) + buffer[1]; + flaPreview.GotoFrame(val); + end; + + end; end until numBytesRead<=0; CloseHandle(pipe); diff --git a/trunk/src/com/jpexs/decompiler/flash/Configuration.java b/trunk/src/com/jpexs/decompiler/flash/Configuration.java index e18c4be2c..c815b0872 100644 --- a/trunk/src/com/jpexs/decompiler/flash/Configuration.java +++ b/trunk/src/com/jpexs/decompiler/flash/Configuration.java @@ -64,28 +64,29 @@ public class Configuration { * List of replacements */ public static java.util.List replacements = new ArrayList<>(); - - private static HashMap configDefaults = new HashMap() {{ - put("decompile", true); - put("parallelSpeedUp", true); - put("autoDeobfuscate", true); - put("cacheOnDisk", true); - put("internalFlashViewer", false); - put("gotoMainClassOnStartup", false); - put("deobfuscateUsePrevTagOnly", true); - put("decompilationTimeoutSingleMethod", 60); - put("lastSaveDir", "."); - put("lastOpenDir", "."); - put("offeredAssociation", false); - put("locale", "en"); - put("lastUpdatesCheckDate", null); - put("gui.window.width", 1000); - put("gui.window.height", 700); - put("gui.window.maximized.horizontal", false); - put("gui.window.maximized.vertical", false); - put("lastRenameType", 1); - put("removeNops", true); - }}; + private static HashMap configDefaults = new HashMap() { + { + put("decompile", true); + put("parallelSpeedUp", true); + put("autoDeobfuscate", true); + put("cacheOnDisk", true); + put("internalFlashViewer", false); + put("gotoMainClassOnStartup", false); + put("deobfuscateUsePrevTagOnly", true); + put("decompilationTimeoutSingleMethod", 60); + put("lastSaveDir", "."); + put("lastOpenDir", "."); + put("offeredAssociation", false); + put("locale", "en"); + put("lastUpdatesCheckDate", null); + put("gui.window.width", 1000); + put("gui.window.height", 700); + put("gui.window.maximized.horizontal", false); + put("gui.window.maximized.vertical", false); + put("lastRenameType", 1); + put("removeNops", true); + } + }; /** * Saves replacements to file for future use @@ -137,7 +138,7 @@ public class Configuration { T defaultValue = null; if (configDefaults.containsKey(cfg)) { @SuppressWarnings("unchecked") - T def = (T)configDefaults.get(cfg); + T def = (T) configDefaults.get(cfg); defaultValue = def; } return getConfig(cfg, defaultValue); @@ -148,7 +149,7 @@ public class Configuration { return defaultValue; } @SuppressWarnings("unchecked") - T result = (T)config.get(cfg); + T result = (T) config.get(cfg); return result; } @@ -157,7 +158,7 @@ public class Configuration { cfg = "parallelSpeedUp"; } @SuppressWarnings("unchecked") - T result = (T)config.put(cfg, value); + T result = (T) config.put(cfg, value); return result; } diff --git a/trunk/src/com/jpexs/decompiler/flash/SWFInputStream.java b/trunk/src/com/jpexs/decompiler/flash/SWFInputStream.java index bd6d66019..c26af54ef 100644 --- a/trunk/src/com/jpexs/decompiler/flash/SWFInputStream.java +++ b/trunk/src/com/jpexs/decompiler/flash/SWFInputStream.java @@ -629,8 +629,8 @@ public class SWFInputStream extends InputStream { //pools = getConstantPool(listeners, new ActionGraphSource(ret, version, new HashMap(), new HashMap(), new HashMap()), 0, version, path); /*if (pools.size() == 1) { - Action.setConstantPool(ret, pools.get(0)); - }*/ + Action.setConstantPool(ret, pools.get(0)); + }*/ if (goesPrev && (!DEOBFUSCATION_ALL_CODE_IN_PREVIOUS_TAG)) { ActionJump aj = new ActionJump(ip); int skip = aj.getBytes(version).length; @@ -706,7 +706,7 @@ public class SWFInputStream extends InputStream { /*if(a instanceof ActionConstantPool){ throw new IllegalArgumentException("CP found"); - } */ + } */ if (a instanceof ActionPush) { if (cpool != null) { ((ActionPush) a).constantPool = cpool.constants; diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/BooleanAVM2Item.java b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/BooleanAVM2Item.java index a97d1a564..cffea146f 100644 --- a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/BooleanAVM2Item.java +++ b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/BooleanAVM2Item.java @@ -32,7 +32,7 @@ public class BooleanAVM2Item extends AVM2Item { @Override public String toString(boolean highlight, ConstantPool constants, HashMap localRegNames, List fullyQualifiedNames) { - return hilight(value?"true":"false", highlight); + return hilight(value ? "true" : "false", highlight); } @Override diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/NewFunctionAVM2Item.java b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/NewFunctionAVM2Item.java index 1078e0e89..390859273 100644 --- a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/NewFunctionAVM2Item.java +++ b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/NewFunctionAVM2Item.java @@ -39,6 +39,6 @@ public class NewFunctionAVM2Item extends AVM2Item { @Override public String toString(boolean highlight, ConstantPool constants, HashMap localRegNames, List fullyQualifiedNames) { - return hilight("function" + (!functionName.equals("") ? " " + functionName : "") + "(" + paramStr + "):" + returnStr + "\r\n{\r\n", highlight) + (highlight?functionBody:Highlighting.stripHilights(functionBody)) + "\r\n" + hilight("}", highlight); + return hilight("function" + (!functionName.equals("") ? " " + functionName : "") + "(" + paramStr + "):" + returnStr + "\r\n{\r\n", highlight) + (highlight ? functionBody : Highlighting.stripHilights(functionBody)) + "\r\n" + hilight("}", highlight); } } diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/TryAVM2Item.java b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/TryAVM2Item.java index 5f7246cd2..724eaacee 100644 --- a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/TryAVM2Item.java +++ b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/TryAVM2Item.java @@ -62,7 +62,7 @@ public class TryAVM2Item extends AVM2Item implements Block { } ret += hilight("}", highlight); for (int e = 0; e < catchExceptions.size(); e++) { - ret += "\r\n" + hilight("catch(" + catchExceptions.get(e).getVarName(constants, fullyQualifiedNames) + ":" + catchExceptions.get(e).getTypeName(constants, fullyQualifiedNames) + ")", highlight) + "\r\n" + hilight("{", highlight) +"\r\n"; + ret += "\r\n" + hilight("catch(" + catchExceptions.get(e).getVarName(constants, fullyQualifiedNames) + ":" + catchExceptions.get(e).getTypeName(constants, fullyQualifiedNames) + ")", highlight) + "\r\n" + hilight("{", highlight) + "\r\n"; List commands = catchCommands.get(e); for (GraphTargetItem ti : commands) { if (!ti.isEmpty()) { @@ -72,7 +72,7 @@ public class TryAVM2Item extends AVM2Item implements Block { ret += hilight("}", highlight); } if (finallyCommands.size() > 0) { - ret += "\r\n" + hilight("finally", highlight) +"\r\n" + hilight("{", highlight) + "\r\n"; + ret += "\r\n" + hilight("finally", highlight) + "\r\n" + hilight("{", highlight) + "\r\n"; for (GraphTargetItem ti : finallyCommands) { if (!ti.isEmpty()) { ret += ti.toStringSemicoloned(highlight, Helper.toList(constants, localRegNames, fullyQualifiedNames)) + "\r\n"; diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/types/traits/TraitClass.java b/trunk/src/com/jpexs/decompiler/flash/abc/types/traits/TraitClass.java index 711b91bb3..294c7a420 100644 --- a/trunk/src/com/jpexs/decompiler/flash/abc/types/traits/TraitClass.java +++ b/trunk/src/com/jpexs/decompiler/flash/abc/types/traits/TraitClass.java @@ -504,7 +504,7 @@ public class TraitClass extends Trait implements TraitWithSlot { String stripped = highlight ? Highlighting.stripHilights(s) : s; if (!stripped.trim().equals("")) { if (s.contains("/*classInitializer*/")) { - s = s.replace("/*classInitializer*/", ""); + s = s.replace("/*classInitializer*/", ""); s = s + "\r\n"; } else { if (!first) { diff --git a/trunk/src/com/jpexs/decompiler/flash/action/Action.java b/trunk/src/com/jpexs/decompiler/flash/action/Action.java index 330eb41b2..4666ce378 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/Action.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/Action.java @@ -419,9 +419,9 @@ public class Action implements GraphSourceItem { importantOffsets = getActionsAllRefs(list, version); } /*List cps = SWFInputStream.getConstantPool(new ArrayList(), new ActionGraphSource(list, version, new HashMap(), new HashMap(), new HashMap()), 0, version, path); - if (!cps.isEmpty()) { - setConstantPool(list, cps.get(cps.size() - 1)); - }*/ + if (!cps.isEmpty()) { + setConstantPool(list, cps.get(cps.size() - 1)); + }*/ HashMap> containers = new HashMap<>(); HashMap containersPos = new HashMap<>(); offset = address; diff --git a/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/WithActionItem.java b/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/WithActionItem.java index b82b9b941..647c6a41f 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/WithActionItem.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/WithActionItem.java @@ -49,7 +49,7 @@ public class WithActionItem extends ActionItem { String ret; List localData = new ArrayList<>(); localData.add(constants); - ret = hilight("with(", highlight) + scope.toString(highlight, localData) + hilight(")", highlight) + "\r\n" + hilight("{",highlight) + "\r\n"; + ret = hilight("with(", highlight) + scope.toString(highlight, localData) + hilight(")", highlight) + "\r\n" + hilight("{", highlight) + "\r\n"; for (GraphTargetItem ti : items) { ret += ti.toString(highlight, localData) + "\r\n"; } diff --git a/trunk/src/com/jpexs/decompiler/flash/action/parser/pcode/ASMParser.java b/trunk/src/com/jpexs/decompiler/flash/action/parser/pcode/ASMParser.java index e620e964d..8f10ebe59 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/parser/pcode/ASMParser.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/parser/pcode/ASMParser.java @@ -54,7 +54,7 @@ public class ASMParser { cpool.setAddress(address, version, false); address += cpool.getBytes(version).length; list.add(cpool); - + while (true) { ASMParsedSymbol symb = lexer.yylex(); if (symb.type == ASMParsedSymbol.TYPE_LABEL) { @@ -347,7 +347,7 @@ public class ASMParser { } return a; } - + private static List parseAllActions(FlasmLexer lexer, int version) throws IOException, ParseException { List list = new ArrayList<>(); Stack containers = new Stack<>(); @@ -380,14 +380,14 @@ public class ASMParser { public static List parse(long address, long containerSWFOffset, boolean ignoreNops, String source, int version) throws IOException, ParseException { FlasmLexer lexer = new FlasmLexer(new StringReader(source)); List list = parseAllActions(lexer, version); - + List constantPool = new ArrayList<>(); - for(Action a : list) { + for (Action a : list) { if (a instanceof ActionConstantPool) { constantPool.addAll(((ActionConstantPool) a).constantPool); } } - + lexer = new FlasmLexer(new StringReader(source)); List