From 42fc4a02aacbae02f939a451880027853fb7ddd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=F8=EDk?= Date: Tue, 17 Sep 2013 22:55:13 +0200 Subject: [PATCH] Playback controls for DefineSound --- trunk/lib/FlashPlayer.exe | Bin 492032 -> 493056 bytes trunk/libsrc/FlashPlayer/uMain.dcu | Bin 12678 -> 13422 bytes trunk/libsrc/FlashPlayer/uMain.dfm | 4 +- trunk/libsrc/FlashPlayer/uMain.pas | 31 ++++ .../jpexs/decompiler/flash/gui/MainFrame.java | 103 ++++++++++++- .../flash/gui/player/FlashPlayerPanel.java | 137 ++++++++++++++++-- 6 files changed, 258 insertions(+), 17 deletions(-) diff --git a/trunk/lib/FlashPlayer.exe b/trunk/lib/FlashPlayer.exe index a69b5af5bba21931ebea95c5b1c359a10f0c7208..544b31bee7e253dfc80fc86993430be5f8325b98 100644 GIT binary patch delta 42152 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 delta 41468 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 diff --git a/trunk/libsrc/FlashPlayer/uMain.dcu b/trunk/libsrc/FlashPlayer/uMain.dcu index be04df401e96e6fc72bac1fe9a91b663a6d892de..426ce1d0832b414aadb4ae1933b8172816a4ddbb 100644 GIT binary patch delta 4251 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 delta 3637 zcma)84{Vg>8GoPWef#nBY|FJfPI^0tVNQ48EWb2l2u(dH%7f}fYOItRzg6)oY75w(gF%0j{BmJJbA$sxBk zH!N)nb4X5IN#>fymb&l%VBeN${{TGnjrhISUJrfoo!5Rh{_eG}?>jQx4O8}LOF_!+ z_{q$?Xvk23OR6pnHw4=nJj3n0aE&aKHAJ}Y7SC`8uejSbhVKZr)isv2Y`8tNu_5dk zjv1=EMUk34U@8_-pEj!0wO5CaB{t`(f@G)M9h>S8SDnyK;M~&{71Xa?sucEXlTb#@ zNse#x72l99Gt`G7tJ$>I{qOjtP!+O4fn5ILukKvF&!1pC202N;Rp*tsLK^o8sNs zInlEmU$w@LC_cEOQ{c9dYo1+a4a_+qs&zC)zZrSoKKmZB>)PVlg>KvlyRD4}d zpzJdD;UuYTCM8W&JameR-`>&lDOb?1bytseEh&?&VaDTIpT%FznX#hxN+CU|(2khI zIu#r)oB^a%Wq0{#RU^}&*s+&~R%3kYb<^StubYuCymh}ZYmB!a@00;#(9f%ya8muD zi@+J*x%K~yeu~L{PC7d69-9m|Gkn9QINoucC+?e>VLwb5?>w3Qp@PZDSq#UyoIK*x zm-fqahdw5u&ZhG7?suQNGR0|j|4U}=f2KN-YbUV~>yZwz^0VD<+6Rku%C+yVK5L_H z`z46Qw!7zK{M@W;`-K0SXRhs3wmXftad??LihU~|%OB;p&}m*ix^;7^n)>MZ zFUQ7;53Z}Jsqb<(9^x0k8M5dAUmfRh#5(1s9^eZ-j>mhxJ|tZI^R4xFb$?X*y4u(K ztv_Hi-%{3Ytzfqfz#dI(MclUBMv#sKj}mMrILh7*f@5rsv;2_Yd4jtMrZH$FXd-AO zc$*-Z@n(WlHk$|@A^0W1F9?23aG2nC1oZ?j5xhb0XM+1E3V$K^E5VxtZxOT+gbDse z@F2mv1b-xWmEa)3YXrLpZYOwwU@gI&1nUTXL+~QOdV=2){GOnh;AMgX1V18pir{I2 zhY0Q=xR>Aof~^FP6a1Lq34)y|e7X_{nOta(njGjbGa+Uc1Ch0dnb@QKHVajLYcIpS zOiUlkUM9uu5b_S6Z3c@_viJ%mH`|oVb}0FT;4Hyufis%w-Mgdtp%f5p*Rc>0C_KS(qBtK3??lqMIcJ)3wjK#Ql$P z?@QVX$8`!E(k}cw1#2)3J$|f6!%Xer#WbGTg^RrSMFyVt;6)FPcsa*~GdNdrE=%f6 z%;r87KHhQTtgpLNSp4J1+ff&ex~ycAXJ>GiT1?~SF8snV=iN5C=$H`~Bfphyn)twT zu!s+uZls|Xt91p2@CNL}LS7R>{x6A+2hQfiN|rnv)H#@{GwgZiV+pT40?EdWjz1T> zFblxOS@vklJht(+VvKiW^kw5lR-8?bW2Vo!I>Wbw_oL2^U-~StceBK;VhLa=Kdo#& zqZAGJv4+`Ot{XYajjOc}SL!_W1NbDC@F@aVs{d9guf3A1WdLCld)Sz9ktG&yUMZxZKEg z`BBPsI4^Nm-KGq_q^>C5h%PwF)3M-9=;Nk7K84)GRaUz}p5DvpM&>*$kZ+?W(+rSOEc`p3>o#OF00q1L9dw(?{KLjoCJLFdritz?&G%5@OsJ= zeByGvq;R==o-vPD;k1S1!rADyw#H+Hcc-}W&{LC0c?EV^>*F(uz85`e)J`jx|MYlf zD>cu|RqE!9_|BJ5@rS?1PJIHqb%e14eCAGpz^f~%<|V7{_~2;-ytxN)ya@h zWyJ*M1bP{|PzCtg0af7%&5H|4HuXup5`M)|E$WX7Slll)m-I`ivVN&hkuDWhEPJ2- zpQ2iJNm46U?CNJS)QV);TUB|uU#Fp}1VL4+Uhe0|u2#JwWp6(u`pzSw*Bupo_c77y zkBh!%K(rbZy*c`kZH8?9sptpK+4_R$hrSYB_betEwklP0YG9fTGDV-9A^L-C(WhpK z{xDzk=>pLo7l}SIU-Tz8iavXj=r2k|pD$+}RTq~F7+ER$@@mne)uIzMq5*5gBw#?wpaBz?^kTOv%=k(#vcA#-IswKmki`ET zl8i5rEYQsqSyrlfA(3uM@j1isnWh@80yBV$l}_Xv9yZ?`HHrCVh-m&@rZ$<~kc;M< z0T+8mQ`t*RW3Mlbz0#@d6}j1aHa(GP2GSG!eNd>}8SN&( actions = ASMParser.parse(0, 0, false, - "ConstantPool \"my_sound\" \"Sound\" \"my_define_sound\" \"attachSound\" \"start\"\n" + List actions; + DoActionTag doa; + + + doa = new DoActionTag(null, new byte[]{}, SWF.DEFAULT_VERSION, 0); + actions = ASMParser.parse(0, 0, false, + "ConstantPool \"_root\" \"my_sound\" \"Sound\" \"my_define_sound\" \"attachSound\"\n" + + "Push \"_root\"\n" + + "GetVariable\n" + "Push \"my_sound\" 0.0 \"Sound\"\n" + "NewObject\n" - + "DefineLocal\n" - + "Push \"my_define_sound\" 1 \"my_sound\"\n" + + "SetMember\n" + + "Push \"my_define_sound\" 1 \"_root\"\n" + "GetVariable\n" + + "Push \"my_sound\"\n" + + "GetMember\n" + "Push \"attachSound\"\n" + "CallMethod\n" + "Pop\n" - + "Push 9999 0 2 \"my_sound\"\n" + + "Stop", SWF.DEFAULT_VERSION, false); + doa.setActions(actions, SWF.DEFAULT_VERSION); + sos2.writeTag(doa); + sos2.writeTag(new ShowFrameTag(null)); + + + actions = ASMParser.parse(0, 0, false, + "ConstantPool \"_root\" \"my_sound\" \"Sound\" \"my_define_sound\" \"attachSound\" \"start\"\n" + + "StopSounds\n" + + "Push \"_root\"\n" + "GetVariable\n" + + "Push \"my_sound\" 0.0 \"Sound\"\n" + + "NewObject\n" + + "SetMember\n" + + "Push \"my_define_sound\" 1 \"_root\"\n" + + "GetVariable\n" + + "Push \"my_sound\"\n" + + "GetMember\n" + + "Push \"attachSound\"\n" + + "CallMethod\n" + + "Pop\n" + + "Push 9999 0.0 2 \"_root\"\n" + + "GetVariable\n" + + "Push \"my_sound\"\n" + + "GetMember\n" + "Push \"start\"\n" + "CallMethod\n" + "Pop\n" @@ -3294,7 +3328,64 @@ public class MainFrame extends AppRibbonFrame implements ActionListener, TreeSel doa.setActions(actions, SWF.DEFAULT_VERSION); sos2.writeTag(doa); sos2.writeTag(new ShowFrameTag(null)); + + actions = ASMParser.parse(0, 0, false, + "ConstantPool \"_root\" \"my_sound\" \"Sound\" \"my_define_sound\" \"attachSound\" \"onSoundComplete\" \"start\" \"execParam\"\n" + + "StopSounds\n" + + "Push \"_root\"\n" + + "GetVariable\n" + + "Push \"my_sound\" 0.0 \"Sound\"\n" + + "NewObject\n" + + "SetMember\n" + + "Push \"my_define_sound\" 1 \"_root\"\n" + + "GetVariable\n" + + "Push \"my_sound\"\n" + + "GetMember\n" + + "Push \"attachSound\"\n" + + "CallMethod\n" + + "Pop\n" + + "Push \"_root\"\n" + + "GetVariable\n" + + "Push \"my_sound\"\n" + + "GetMember\n" + + "Push \"onSoundComplete\"\n" + + "DefineFunction2 \"\" 0 2 false true true false true false true false false {\n" + + "Push 0.0 register1 \"my_sound\"\n" + + "GetMember\n" + + "Push \"start\"\n" + + "CallMethod\n" + + "Pop\n" + + "}\n" + + "SetMember\n" + + "Push \"_root\"\n" + + "GetVariable\n" + + "Push \"execParam\"\n" + + "GetMember\n" + + "Push 1 \"_root\"\n" + + "GetVariable\n" + + "Push \"my_sound\"\n" + + "GetMember\n" + + "Push \"start\"\n" + + "CallMethod\n" + + "Pop\n" + + "Stop", SWF.DEFAULT_VERSION, false); + doa.setActions(actions, SWF.DEFAULT_VERSION); + sos2.writeTag(doa); sos2.writeTag(new ShowFrameTag(null)); + + + actions = ASMParser.parse(0, 0, false, + "StopSounds\n" + + "Stop", SWF.DEFAULT_VERSION, false); + doa.setActions(actions, SWF.DEFAULT_VERSION); + sos2.writeTag(doa); + sos2.writeTag(new ShowFrameTag(null)); + + + sos2.writeTag(new ShowFrameTag(null)); + if (flashPanel != null) { + flashPanel.specialPlayback = true; + } } else if (tagObj instanceof DefineVideoStreamTag) { sos2.writeTag(new PlaceObject2Tag(null, false, false, false, false, false, true, true, false, 1, chtId, mat, null, 0, null, 0, null)); diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/player/FlashPlayerPanel.java b/trunk/src/com/jpexs/decompiler/flash/gui/player/FlashPlayerPanel.java index 7d3673d58..a1aae678a 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/player/FlashPlayerPanel.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/player/FlashPlayerPanel.java @@ -50,8 +50,49 @@ public class FlashPlayerPanel extends Panel implements FlashDisplay { private static final int CMD_REWIND = 9; private static final int CMD_GOTO = 10; private static final int CMD_CALL = 11; + private static final int CMD_GETVARIABLE = 12; + private static final int CMD_SETVARIABLE = 13; private int frameRate; - public boolean functionPlayback = false; + public boolean specialPlayback = false; + private boolean specialPlaying = false; + + public synchronized String getVariable(String name) { + if (pipe != null) { + IntByReference ibr = new IntByReference(); + Kernel32.INSTANCE.WriteFile(pipe, new byte[]{CMD_GETVARIABLE}, 1, ibr, null); + int nameLen = name.getBytes().length; + Kernel32.INSTANCE.WriteFile(pipe, new byte[]{(byte) ((nameLen >> 8) & 0xff), (byte) (nameLen & 0xff)}, 2, ibr, null); + Kernel32.INSTANCE.WriteFile(pipe, name.getBytes(), nameLen, ibr, null); + byte res[] = new byte[2]; + if (Kernel32.INSTANCE.ReadFile(pipe, res, 2, ibr, null)) { + int retLen = ((res[0] & 0xff) << 8) + (res[1] & 0xff); + res = new byte[retLen]; + if (Kernel32.INSTANCE.ReadFile(pipe, res, retLen, ibr, null)) { + String ret = new String(res, 0, retLen); + return ret; + } else { + return null; + } + } else { + return null; + } + } + return null; + } + + public synchronized void setVariable(String name, String value) { + if (pipe != null) { + IntByReference ibr = new IntByReference(); + Kernel32.INSTANCE.WriteFile(pipe, new byte[]{CMD_SETVARIABLE}, 1, ibr, null); + int nameLen = name.getBytes().length; + Kernel32.INSTANCE.WriteFile(pipe, new byte[]{(byte) ((nameLen >> 8) & 0xff), (byte) (nameLen & 0xff)}, 2, ibr, null); + Kernel32.INSTANCE.WriteFile(pipe, name.getBytes(), nameLen, ibr, null); + + int valLen = value.getBytes().length; + Kernel32.INSTANCE.WriteFile(pipe, new byte[]{(byte) ((valLen >> 8) & 0xff), (byte) (valLen & 0xff)}, 2, ibr, null); + Kernel32.INSTANCE.WriteFile(pipe, value.getBytes(), valLen, ibr, null); + } + } public synchronized String call(String callString) { if (pipe != null) { @@ -88,8 +129,7 @@ public class FlashPlayerPanel extends Panel implements FlashDisplay { } } - @Override - public synchronized int getCurrentFrame() { + private int __getCurrentFrame() { byte[] res = new byte[2]; IntByReference ibr = new IntByReference(); Kernel32.INSTANCE.WriteFile(pipe, new byte[]{CMD_CURRENT_FRAME}, 1, ibr, null); @@ -100,8 +140,28 @@ public class FlashPlayerPanel extends Panel implements FlashDisplay { } } + @Override + public synchronized int getCurrentFrame() { + if (specialPlayback) { + if (!specialPlaying) { + return specialPosition; + } + String posStr = getVariable("_root.my_sound.position"); + if (posStr != null) { + return Integer.parseInt(posStr); + } + } + return __getCurrentFrame(); + } + @Override public synchronized int getTotalFrames() { + if (specialPlayback) { + String durStr = getVariable("_root.my_sound.duration"); + if (durStr != null) { + return Integer.parseInt(durStr); + } + } byte[] res = new byte[2]; IntByReference ibr = new IntByReference(); Kernel32.INSTANCE.WriteFile(pipe, new byte[]{CMD_TOTAL_FRAMES}, 1, ibr, null); @@ -212,6 +272,11 @@ public class FlashPlayerPanel extends Panel implements FlashDisplay { } resize(); stopped = false; + specialPlaying = false; + specialPosition = 0; + if (specialPlayback) { + play(); + } } public static void unload() { @@ -230,27 +295,64 @@ public class FlashPlayerPanel extends Panel implements FlashDisplay { } super.paint(g); } + private int specialPosition = 0; - @Override - public void pause() { + private synchronized void __pause() { IntByReference ibr = new IntByReference(); Kernel32.INSTANCE.WriteFile(pipe, new byte[]{CMD_PAUSE}, 1, ibr, null); } + @Override + public void pause() { + if (specialPlayback) { + specialPosition = getCurrentFrame(); + __gotoFrame(3); + __play(); + specialPlaying = false; + return; + } + __pause(); + } + @Override public void rewind() { + if (specialPlayback) { + boolean plays = specialPlaying; + pause(); + specialPosition = 0; + if (plays) { + play(); + } + + return; + } IntByReference ibr = new IntByReference(); Kernel32.INSTANCE.WriteFile(pipe, new byte[]{CMD_REWIND}, 1, ibr, null); } - @Override - public void play() { + private synchronized void __play() { IntByReference ibr = new IntByReference(); Kernel32.INSTANCE.WriteFile(pipe, new byte[]{CMD_RESUME}, 1, ibr, null); } + @Override + public void play() { + if (specialPlayback) { + double p = (((double) specialPosition) / 1000.0); + setVariable("_root.execParam", "" + p); + __gotoFrame(1); + __play(); + specialPlaying = true; + return; + } + __play(); + } + @Override public boolean isPlaying() { + if (specialPlayback) { + return specialPlaying; + } IntByReference ibr = new IntByReference(); Kernel32.INSTANCE.WriteFile(pipe, new byte[]{CMD_PLAYING}, 1, ibr, null); byte[] res = new byte[1]; @@ -261,15 +363,32 @@ public class FlashPlayerPanel extends Panel implements FlashDisplay { } } - @Override - public void gotoFrame(int frame) { + private synchronized void __gotoFrame(int frame) { IntByReference ibr = new IntByReference(); Kernel32.INSTANCE.WriteFile(pipe, new byte[]{CMD_GOTO}, 1, ibr, null); Kernel32.INSTANCE.WriteFile(pipe, new byte[]{(byte) ((frame >> 8) & 0xff), (byte) (frame & 0xff)}, 2, ibr, null); } + @Override + public void gotoFrame(int frame) { + if (specialPlayback) { + if (specialPlaying) { + pause(); + specialPosition = frame; + play(); + } else { + specialPosition = frame; + } + return; + } + __gotoFrame(frame); + } + @Override public int getFrameRate() { + if (specialPlayback) { + return 1000; + } return frameRate; }