Benjamin Otte
2007-Jul-26 21:00 UTC
[Swfdec] 6 commits - libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h libswfdec/swfdec_player.c libswfdec/swfdec_player_internal.h libswfdec/swfdec_stage_as.c test/trace
libswfdec/swfdec_initialize.as | 2 libswfdec/swfdec_initialize.h | 83 ++++++++++++++++----------------- libswfdec/swfdec_player.c | 8 +++ libswfdec/swfdec_player_internal.h | 2 libswfdec/swfdec_stage_as.c | 93 +++++++++++++++++++++++++++++++++++++ test/trace/Makefile.am | 27 ++++++++++ test/trace/scalemode-5.swf |binary test/trace/scalemode-5.swf.trace | 27 ++++++++++ test/trace/scalemode-6.swf |binary test/trace/scalemode-6.swf.trace | 27 ++++++++++ test/trace/scalemode-7.swf |binary test/trace/scalemode-7.swf.trace | 27 ++++++++++ test/trace/scalemode-8.swf |binary test/trace/scalemode-8.swf.trace | 27 ++++++++++ test/trace/scalemode.as | 29 +++++++++++ test/trace/stage-align-5.swf |binary test/trace/stage-align-5.swf.trace | 17 ++++++ test/trace/stage-align-6.swf |binary test/trace/stage-align-6.swf.trace | 17 ++++++ test/trace/stage-align-7.swf |binary test/trace/stage-align-7.swf.trace | 17 ++++++ test/trace/stage-align-8.swf |binary test/trace/stage-align-8.swf.trace | 17 ++++++ test/trace/stage-align.as | 30 +++++++++++ test/trace/stage-size-5.swf |binary test/trace/stage-size-5.swf.trace | 5 + test/trace/stage-size-6.swf |binary test/trace/stage-size-6.swf.trace | 5 + test/trace/stage-size-7.swf |binary test/trace/stage-size-7.swf.trace | 5 + test/trace/stage-size-8.swf |binary test/trace/stage-size-8.swf.trace | 5 + test/trace/stage-size.as | 13 +++++ 33 files changed, 441 insertions(+), 42 deletions(-) New commits: diff-tree 53d6aae6f5cf72dc934950928315ca48897365d5 (from d15cd39c16d02fc2caa2dda630486b935ad4d0ac) Author: Benjamin Otte <otte at gnome.org> Date: Thu Jul 26 23:00:56 2007 +0200 add test for Stage.width and Stage.height diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index 2c00771..e273dfe 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -815,6 +815,15 @@ EXTRA_DIST = \ stage-align-7.swf.trace \ stage-align-8.swf \ stage-align-8.swf.trace \ + stage-size.as \ + stage-size-5.swf \ + stage-size-5.swf.trace \ + stage-size-6.swf \ + stage-size-6.swf.trace \ + stage-size-7.swf \ + stage-size-7.swf.trace \ + stage-size-8.swf \ + stage-size-8.swf.trace \ string-construct.as \ string-construct-5.swf \ string-construct-5.swf.trace \ diff --git a/test/trace/stage-size-5.swf b/test/trace/stage-size-5.swf new file mode 100644 index 0000000..1454cb2 Binary files /dev/null and b/test/trace/stage-size-5.swf differ diff --git a/test/trace/stage-size-5.swf.trace b/test/trace/stage-size-5.swf.trace new file mode 100644 index 0000000..bd00598 --- /dev/null +++ b/test/trace/stage-size-5.swf.trace @@ -0,0 +1,5 @@ +Simple test for Stage size +200 +200 +150 +150 diff --git a/test/trace/stage-size-6.swf b/test/trace/stage-size-6.swf new file mode 100644 index 0000000..66aebbc Binary files /dev/null and b/test/trace/stage-size-6.swf differ diff --git a/test/trace/stage-size-6.swf.trace b/test/trace/stage-size-6.swf.trace new file mode 100644 index 0000000..bd00598 --- /dev/null +++ b/test/trace/stage-size-6.swf.trace @@ -0,0 +1,5 @@ +Simple test for Stage size +200 +200 +150 +150 diff --git a/test/trace/stage-size-7.swf b/test/trace/stage-size-7.swf new file mode 100644 index 0000000..9203709 Binary files /dev/null and b/test/trace/stage-size-7.swf differ diff --git a/test/trace/stage-size-7.swf.trace b/test/trace/stage-size-7.swf.trace new file mode 100644 index 0000000..bd00598 --- /dev/null +++ b/test/trace/stage-size-7.swf.trace @@ -0,0 +1,5 @@ +Simple test for Stage size +200 +200 +150 +150 diff --git a/test/trace/stage-size-8.swf b/test/trace/stage-size-8.swf new file mode 100644 index 0000000..6d5e8b2 Binary files /dev/null and b/test/trace/stage-size-8.swf differ diff --git a/test/trace/stage-size-8.swf.trace b/test/trace/stage-size-8.swf.trace new file mode 100644 index 0000000..bd00598 --- /dev/null +++ b/test/trace/stage-size-8.swf.trace @@ -0,0 +1,5 @@ +Simple test for Stage size +200 +200 +150 +150 diff --git a/test/trace/stage-size.as b/test/trace/stage-size.as new file mode 100644 index 0000000..2ee922c --- /dev/null +++ b/test/trace/stage-size.as @@ -0,0 +1,13 @@ +// makeswf -v 7 -s 200x150 -r 1 -o stage-size.swf stage-size.as + +trace ("Simple test for Stage size"); + +trace (Stage.width); +Stage.width = Stage.width / 2; +trace (Stage.width); + +trace (Stage.height); +Stage.height = Stage.height / 2; +trace (Stage.height); + +loadMovie ("FSCommand:quit", ""); diff-tree d15cd39c16d02fc2caa2dda630486b935ad4d0ac (from 30acac7648a6342d0393bc765b30d43de1d8cf72) Author: Benjamin Otte <otte at gnome.org> Date: Thu Jul 26 22:58:58 2007 +0200 implement Stage.width and Stage.height diff --git a/libswfdec/swfdec_initialize.as b/libswfdec/swfdec_initialize.as index b58505b..f81e1e6 100644 --- a/libswfdec/swfdec_initialize.as +++ b/libswfdec/swfdec_initialize.as @@ -65,5 +65,5 @@ AsBroadcaster.initialize (Mouse); /*** STAGE ***/ Stage = new Object (); -ASSetNativeAccessor (Stage, 666, "scaleMode,align", 1); +ASSetNativeAccessor (Stage, 666, "scaleMode,align,width,height", 1); diff --git a/libswfdec/swfdec_initialize.h b/libswfdec/swfdec_initialize.h index 0da2706..3e15dd3 100644 --- a/libswfdec/swfdec_initialize.h +++ b/libswfdec/swfdec_initialize.h @@ -2,7 +2,7 @@ /* compiled from swfdec_initialize.as */ const unsigned char swfdec_initialize[] = { - 0x88, 0x08, 0x01, 0x19, 0x00, 0x41, 0x53, 0x53, 0x65, 0x74, 0x4E, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x88, 0x15, 0x01, 0x19, 0x00, 0x41, 0x53, 0x53, 0x65, 0x74, 0x4E, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6F, 0x72, 0x00, 0x41, 0x53, 0x6E, 0x61, 0x74, 0x69, 0x76, 0x65, 0x00, 0x41, 0x73, 0x42, 0x72, 0x6F, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00, 0x62, 0x72, 0x6F, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, @@ -18,45 +18,46 @@ const unsigned char swfdec_initialize[] 0x53, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6F, 0x70, 0x46, 0x6C, 0x61, 0x67, 0x73, 0x00, 0x4D, 0x6F, 0x75, 0x73, 0x65, 0x00, 0x4F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x00, 0x73, 0x68, 0x6F, 0x77, 0x00, 0x68, 0x69, 0x64, 0x65, 0x00, 0x53, 0x74, 0x61, 0x67, 0x65, 0x00, 0x73, 0x63, 0x61, 0x6C, 0x65, - 0x4D, 0x6F, 0x64, 0x65, 0x2C, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x00, 0x9B, 0x12, 0x00, 0x41, 0x73, - 0x42, 0x72, 0x6F, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x96, 0x13, 0x00, 0x08, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, - 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x13, - 0x00, 0x08, 0x03, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x65, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, - 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, 0x08, - 0x04, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x06, - 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x05, 0x1C, 0x96, 0x02, 0x00, 0x08, - 0x07, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, - 0x00, 0x08, 0x05, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x09, 0x52, - 0x17, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x02, - 0x00, 0x08, 0x07, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x78, 0x00, 0x8F, 0x00, 0x96, 0x04, 0x00, - 0x08, 0x0A, 0x08, 0x05, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x4E, 0x3C, 0x96, 0x02, 0x00, 0x08, - 0x0B, 0x41, 0x96, 0x07, 0x00, 0x08, 0x0B, 0x07, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x99, 0x02, 0x00, - 0x09, 0x00, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x4C, 0x1C, 0x50, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0B, - 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x48, 0x12, 0x9D, - 0x02, 0x00, 0x42, 0x00, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x1C, - 0x4E, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x23, 0x00, 0x96, 0x07, - 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x0B, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x02, 0x00, 0x00, - 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x52, 0x17, 0x96, 0x02, 0x00, 0x05, 0x01, - 0x3E, 0x99, 0x02, 0x00, 0x9C, 0xFF, 0x96, 0x02, 0x00, 0x05, 0x00, 0x3E, 0x4F, 0x96, 0x02, 0x00, - 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x6F, 0x00, - 0x75, 0x00, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x03, 0x07, 0x0C, 0x00, - 0x00, 0x00, 0x07, 0x65, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, - 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x04, 0x08, 0x02, 0x1C, 0x96, 0x02, - 0x00, 0x08, 0x04, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x07, - 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, - 0x96, 0x09, 0x00, 0x08, 0x08, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x40, 0x4F, 0x96, 0x09, - 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x08, 0x11, 0x08, 0x0F, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, - 0x00, 0x00, 0x00, 0x08, 0x12, 0x3D, 0x17, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, - 0x02, 0x08, 0x02, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x3D, 0x17, - 0x96, 0x09, 0x00, 0x08, 0x13, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x40, 0x1D, 0x96, 0x02, - 0x00, 0x08, 0x13, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x15, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x05, - 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, - 0x13, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x16, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x05, 0x00, 0x00, - 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, - 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, - 0x52, 0x17, 0x96, 0x09, 0x00, 0x08, 0x17, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x40, 0x1D, - 0x96, 0x0E, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x18, 0x07, 0x9A, 0x02, 0x00, 0x00, 0x08, - 0x17, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x00 + 0x4D, 0x6F, 0x64, 0x65, 0x2C, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x2C, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x2C, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x00, 0x9B, 0x12, 0x00, 0x41, 0x73, 0x42, 0x72, 0x6F, + 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x13, 0x00, + 0x08, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, + 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x03, + 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x65, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, + 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x9B, 0x07, + 0x00, 0x00, 0x01, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x07, + 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x05, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x52, 0x17, + 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x05, + 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x09, 0x52, 0x17, 0x96, 0x02, + 0x00, 0x05, 0x01, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, + 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x78, 0x00, 0x8F, 0x00, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08, + 0x05, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x4E, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x41, 0x96, + 0x07, 0x00, 0x08, 0x0B, 0x07, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x99, 0x02, 0x00, 0x09, 0x00, 0x96, + 0x02, 0x00, 0x08, 0x0B, 0x4C, 0x1C, 0x50, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x1C, 0x96, 0x02, + 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x48, 0x12, 0x9D, 0x02, 0x00, 0x42, + 0x00, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x1C, 0x4E, 0x96, 0x02, + 0x00, 0x08, 0x06, 0x1C, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x23, 0x00, 0x96, 0x07, 0x00, 0x07, 0x01, + 0x00, 0x00, 0x00, 0x08, 0x0B, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0A, + 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x52, 0x17, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E, 0x99, 0x02, + 0x00, 0x9C, 0xFF, 0x96, 0x02, 0x00, 0x05, 0x00, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x02, 0x1C, + 0x96, 0x02, 0x00, 0x08, 0x0E, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x96, + 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x03, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, + 0x65, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, + 0x08, 0x0F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x04, 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, + 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x07, 0x08, 0x02, 0x1C, + 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x09, 0x00, + 0x08, 0x08, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x40, 0x4F, 0x96, 0x09, 0x00, 0x07, 0x83, + 0x00, 0x00, 0x00, 0x08, 0x11, 0x08, 0x0F, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, + 0x08, 0x12, 0x3D, 0x17, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x02, 0x08, 0x02, + 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x3D, 0x17, 0x96, 0x09, 0x00, + 0x08, 0x13, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x13, + 0x1C, 0x96, 0x13, 0x00, 0x08, 0x15, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x05, 0x00, 0x00, 0x00, + 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96, + 0x13, 0x00, 0x08, 0x16, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x05, 0x00, 0x00, 0x00, 0x07, 0x02, + 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96, 0x07, 0x00, + 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x52, 0x17, 0x96, + 0x09, 0x00, 0x08, 0x17, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x40, 0x1D, 0x96, 0x0E, 0x00, + 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x18, 0x07, 0x9A, 0x02, 0x00, 0x00, 0x08, 0x17, 0x1C, 0x96, + 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x00 }; diff --git a/libswfdec/swfdec_stage_as.c b/libswfdec/swfdec_stage_as.c index eee9a6b..85fc9ea 100644 --- a/libswfdec/swfdec_stage_as.c +++ b/libswfdec/swfdec_stage_as.c @@ -126,3 +126,47 @@ set_align (SwfdecAsContext *cx, SwfdecAs g_object_notify (G_OBJECT (player), "alignment"); } } + +SWFDEC_AS_NATIVE (666, 5, get_width) +void +get_width (SwfdecAsContext *cx, SwfdecAsObject *object, + guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) +{ + SwfdecPlayer *player = SWFDEC_PLAYER (cx); + + if (player->stage_width > -1) { + SWFDEC_AS_VALUE_SET_INT (ret, player->stage_width); + } else { + SWFDEC_AS_VALUE_SET_INT (ret, player->width); + } +} + +SWFDEC_AS_NATIVE (666, 7, get_height) +void +get_height (SwfdecAsContext *cx, SwfdecAsObject *object, + guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) +{ + SwfdecPlayer *player = SWFDEC_PLAYER (cx); + + if (player->stage_height > -1) { + SWFDEC_AS_VALUE_SET_INT (ret, player->stage_height); + } else { + SWFDEC_AS_VALUE_SET_INT (ret, player->height); + } +} + +/* FIXME: do this smarter */ +SWFDEC_AS_NATIVE (666, 6, set_width) +void +set_width (SwfdecAsContext *cx, SwfdecAsObject *object, + guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) +{ +} + +SWFDEC_AS_NATIVE (666, 8, set_height) +void +set_height (SwfdecAsContext *cx, SwfdecAsObject *object, + guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) +{ +} + diff-tree 30acac7648a6342d0393bc765b30d43de1d8cf72 (from a075ac9c14cab3d9e089ba08d97c1401655c297c) Author: Benjamin Otte <otte at gnome.org> Date: Thu Jul 26 22:58:42 2007 +0200 initialize stage size to -1 so the default size is taken diff --git a/libswfdec/swfdec_player.c b/libswfdec/swfdec_player.c index 5bbf545..398db18 100644 --- a/libswfdec/swfdec_player.c +++ b/libswfdec/swfdec_player.c @@ -1188,6 +1188,8 @@ swfdec_player_init (SwfdecPlayer *player player->iterate_timeout.callback = swfdec_player_iterate; player->init_queue = g_queue_new (); player->construct_queue = g_queue_new (); + player->stage_width = -1; + player->stage_height = -1; } void diff-tree a075ac9c14cab3d9e089ba08d97c1401655c297c (from 5a3788d18061faee3612389568d05efb5fff4f54) Author: Benjamin Otte <otte at gnome.org> Date: Thu Jul 26 22:42:01 2007 +0200 add test for Stage.align diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index 3f9cf9d..2c00771 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -806,6 +806,15 @@ EXTRA_DIST = \ stack-segments2-7.swf.trace \ stack-segments2-8.swf \ stack-segments2-8.swf.trace \ + stage-align.as \ + stage-align-5.swf \ + stage-align-5.swf.trace \ + stage-align-6.swf \ + stage-align-6.swf.trace \ + stage-align-7.swf \ + stage-align-7.swf.trace \ + stage-align-8.swf \ + stage-align-8.swf.trace \ string-construct.as \ string-construct-5.swf \ string-construct-5.swf.trace \ diff --git a/test/trace/stage-align-5.swf b/test/trace/stage-align-5.swf new file mode 100644 index 0000000..5bf9272 Binary files /dev/null and b/test/trace/stage-align-5.swf differ diff --git a/test/trace/stage-align-5.swf.trace b/test/trace/stage-align-5.swf.trace new file mode 100644 index 0000000..1a235f1 --- /dev/null +++ b/test/trace/stage-align-5.swf.trace @@ -0,0 +1,17 @@ +Check Stage.align + +L ==> L +R ==> R +LR ==> LR +RL ==> LR +LRL ==> LR +RLR ==> LR +T ==> T +B ==> B +BT ==> TB +TB ==> TB +BTB ==> TB +TBT ==> TB +TRLB ==> LTRB +tlrb ==> LTRB +RmoviesdsdgaRsdgagaergBafsgafgaS ==> RB diff --git a/test/trace/stage-align-6.swf b/test/trace/stage-align-6.swf new file mode 100644 index 0000000..2b5fd59 Binary files /dev/null and b/test/trace/stage-align-6.swf differ diff --git a/test/trace/stage-align-6.swf.trace b/test/trace/stage-align-6.swf.trace new file mode 100644 index 0000000..1a235f1 --- /dev/null +++ b/test/trace/stage-align-6.swf.trace @@ -0,0 +1,17 @@ +Check Stage.align + +L ==> L +R ==> R +LR ==> LR +RL ==> LR +LRL ==> LR +RLR ==> LR +T ==> T +B ==> B +BT ==> TB +TB ==> TB +BTB ==> TB +TBT ==> TB +TRLB ==> LTRB +tlrb ==> LTRB +RmoviesdsdgaRsdgagaergBafsgafgaS ==> RB diff --git a/test/trace/stage-align-7.swf b/test/trace/stage-align-7.swf new file mode 100644 index 0000000..4bf78bb Binary files /dev/null and b/test/trace/stage-align-7.swf differ diff --git a/test/trace/stage-align-7.swf.trace b/test/trace/stage-align-7.swf.trace new file mode 100644 index 0000000..1a235f1 --- /dev/null +++ b/test/trace/stage-align-7.swf.trace @@ -0,0 +1,17 @@ +Check Stage.align + +L ==> L +R ==> R +LR ==> LR +RL ==> LR +LRL ==> LR +RLR ==> LR +T ==> T +B ==> B +BT ==> TB +TB ==> TB +BTB ==> TB +TBT ==> TB +TRLB ==> LTRB +tlrb ==> LTRB +RmoviesdsdgaRsdgagaergBafsgafgaS ==> RB diff --git a/test/trace/stage-align-8.swf b/test/trace/stage-align-8.swf new file mode 100644 index 0000000..500f658 Binary files /dev/null and b/test/trace/stage-align-8.swf differ diff --git a/test/trace/stage-align-8.swf.trace b/test/trace/stage-align-8.swf.trace new file mode 100644 index 0000000..1a235f1 --- /dev/null +++ b/test/trace/stage-align-8.swf.trace @@ -0,0 +1,17 @@ +Check Stage.align + +L ==> L +R ==> R +LR ==> LR +RL ==> LR +LRL ==> LR +RLR ==> LR +T ==> T +B ==> B +BT ==> TB +TB ==> TB +BTB ==> TB +TBT ==> TB +TRLB ==> LTRB +tlrb ==> LTRB +RmoviesdsdgaRsdgagaergBafsgafgaS ==> RB diff --git a/test/trace/stage-align.as b/test/trace/stage-align.as new file mode 100644 index 0000000..3a3b8e0 --- /dev/null +++ b/test/trace/stage-align.as @@ -0,0 +1,30 @@ +// makeswf -v 7 -s 200x150 -r 1 -o stage-align.swf stage-align.as + +trace ("Check Stage.align"); + +values = [ + "L", + "R", + "LR", + "RL", + "LRL", + "RLR", + "T", + "B", + "BT", + "TB", + "BTB", + "TBT", + "TRLB", + "tlrb", + "RmoviesdsdgaRsdgagaergBafsgafgaS" +]; + +trace (Stage.align); +for (i = 0; i < values.length; i++) { + Stage.align = values[i]; + trace (values[i] + " ==> " + Stage.align); +}; + +loadMovie ("FSCommand:quit", ""); + diff-tree 5a3788d18061faee3612389568d05efb5fff4f54 (from d5cb0796cf85bd83832d71b8a87ed38495c53b01) Author: Benjamin Otte <otte at gnome.org> Date: Thu Jul 26 22:41:01 2007 +0200 implement Stage.align diff --git a/libswfdec/swfdec_initialize.as b/libswfdec/swfdec_initialize.as index 6012fbb..b58505b 100644 --- a/libswfdec/swfdec_initialize.as +++ b/libswfdec/swfdec_initialize.as @@ -65,5 +65,5 @@ AsBroadcaster.initialize (Mouse); /*** STAGE ***/ Stage = new Object (); -ASSetNativeAccessor (Stage, 666, "scaleMode", 1); +ASSetNativeAccessor (Stage, 666, "scaleMode,align", 1); diff --git a/libswfdec/swfdec_initialize.h b/libswfdec/swfdec_initialize.h index c8799fb..0da2706 100644 --- a/libswfdec/swfdec_initialize.h +++ b/libswfdec/swfdec_initialize.h @@ -2,7 +2,7 @@ /* compiled from swfdec_initialize.as */ const unsigned char swfdec_initialize[] = { - 0x88, 0x02, 0x01, 0x19, 0x00, 0x41, 0x53, 0x53, 0x65, 0x74, 0x4E, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x88, 0x08, 0x01, 0x19, 0x00, 0x41, 0x53, 0x53, 0x65, 0x74, 0x4E, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6F, 0x72, 0x00, 0x41, 0x53, 0x6E, 0x61, 0x74, 0x69, 0x76, 0x65, 0x00, 0x41, 0x73, 0x42, 0x72, 0x6F, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00, 0x62, 0x72, 0x6F, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, @@ -18,45 +18,45 @@ const unsigned char swfdec_initialize[] 0x53, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6F, 0x70, 0x46, 0x6C, 0x61, 0x67, 0x73, 0x00, 0x4D, 0x6F, 0x75, 0x73, 0x65, 0x00, 0x4F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x00, 0x73, 0x68, 0x6F, 0x77, 0x00, 0x68, 0x69, 0x64, 0x65, 0x00, 0x53, 0x74, 0x61, 0x67, 0x65, 0x00, 0x73, 0x63, 0x61, 0x6C, 0x65, - 0x4D, 0x6F, 0x64, 0x65, 0x00, 0x9B, 0x12, 0x00, 0x41, 0x73, 0x42, 0x72, 0x6F, 0x61, 0x64, 0x63, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x13, 0x00, 0x08, 0x00, 0x07, - 0x01, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, - 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x03, 0x07, 0x0C, 0x00, + 0x4D, 0x6F, 0x64, 0x65, 0x2C, 0x61, 0x6C, 0x69, 0x67, 0x6E, 0x00, 0x9B, 0x12, 0x00, 0x41, 0x73, + 0x42, 0x72, 0x6F, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x96, 0x13, 0x00, 0x08, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, + 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x13, + 0x00, 0x08, 0x03, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x65, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, + 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, 0x08, + 0x04, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x06, + 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x05, 0x1C, 0x96, 0x02, 0x00, 0x08, + 0x07, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, + 0x00, 0x08, 0x05, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x09, 0x52, + 0x17, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x02, + 0x00, 0x08, 0x07, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x78, 0x00, 0x8F, 0x00, 0x96, 0x04, 0x00, + 0x08, 0x0A, 0x08, 0x05, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x4E, 0x3C, 0x96, 0x02, 0x00, 0x08, + 0x0B, 0x41, 0x96, 0x07, 0x00, 0x08, 0x0B, 0x07, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x99, 0x02, 0x00, + 0x09, 0x00, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x4C, 0x1C, 0x50, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0B, + 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x48, 0x12, 0x9D, + 0x02, 0x00, 0x42, 0x00, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x1C, + 0x4E, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x23, 0x00, 0x96, 0x07, + 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x0B, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x02, 0x00, 0x00, + 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x52, 0x17, 0x96, 0x02, 0x00, 0x05, 0x01, + 0x3E, 0x99, 0x02, 0x00, 0x9C, 0xFF, 0x96, 0x02, 0x00, 0x05, 0x00, 0x3E, 0x4F, 0x96, 0x02, 0x00, + 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x6F, 0x00, + 0x75, 0x00, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x03, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x65, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, - 0x96, 0x02, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x9B, 0x07, 0x00, 0x00, 0x01, - 0x00, 0x78, 0x00, 0x3C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, - 0x00, 0x00, 0x00, 0x08, 0x05, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x52, 0x17, 0x96, 0x02, 0x00, - 0x08, 0x06, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x05, 0x1C, 0x96, 0x02, - 0x00, 0x08, 0x08, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x09, 0x52, 0x17, 0x96, 0x02, 0x00, 0x05, 0x01, - 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x9B, 0x07, 0x00, - 0x00, 0x01, 0x00, 0x78, 0x00, 0x8F, 0x00, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08, 0x05, 0x1C, 0x96, - 0x02, 0x00, 0x08, 0x08, 0x4E, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x41, 0x96, 0x07, 0x00, 0x08, - 0x0B, 0x07, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x99, 0x02, 0x00, 0x09, 0x00, 0x96, 0x02, 0x00, 0x08, - 0x0B, 0x4C, 0x1C, 0x50, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0A, - 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x48, 0x12, 0x9D, 0x02, 0x00, 0x42, 0x00, 0x96, 0x02, - 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x1C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x06, - 0x1C, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x23, 0x00, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, - 0x08, 0x0B, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, - 0x00, 0x08, 0x0D, 0x52, 0x17, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E, 0x99, 0x02, 0x00, 0x9C, 0xFF, - 0x96, 0x02, 0x00, 0x05, 0x00, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, - 0x08, 0x0E, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x96, 0x02, 0x00, 0x08, - 0x0F, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x03, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x65, 0x00, 0x00, - 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, - 0x96, 0x04, 0x00, 0x08, 0x04, 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x4F, 0x96, - 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x07, 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, - 0x08, 0x07, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x09, 0x00, 0x08, 0x08, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x40, 0x4F, 0x96, 0x09, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, - 0x08, 0x11, 0x08, 0x0F, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x3D, - 0x17, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x02, 0x08, 0x02, 0x1C, 0x96, 0x07, - 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x3D, 0x17, 0x96, 0x09, 0x00, 0x08, 0x13, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96, 0x13, - 0x00, 0x08, 0x15, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x05, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, - 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96, 0x13, 0x00, 0x08, - 0x16, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x05, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, - 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, - 0x00, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x52, 0x17, 0x96, 0x09, 0x00, 0x08, - 0x17, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x40, 0x1D, 0x96, 0x0E, 0x00, 0x07, 0x01, 0x00, - 0x00, 0x00, 0x08, 0x18, 0x07, 0x9A, 0x02, 0x00, 0x00, 0x08, 0x17, 0x1C, 0x96, 0x07, 0x00, 0x07, - 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x00 + 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x04, 0x08, 0x02, 0x1C, 0x96, 0x02, + 0x00, 0x08, 0x04, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x07, + 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, + 0x96, 0x09, 0x00, 0x08, 0x08, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x40, 0x4F, 0x96, 0x09, + 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x08, 0x11, 0x08, 0x0F, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, + 0x00, 0x00, 0x00, 0x08, 0x12, 0x3D, 0x17, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, + 0x02, 0x08, 0x02, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x3D, 0x17, + 0x96, 0x09, 0x00, 0x08, 0x13, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x40, 0x1D, 0x96, 0x02, + 0x00, 0x08, 0x13, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x15, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x05, + 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, + 0x13, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x16, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x05, 0x00, 0x00, + 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x13, 0x1C, + 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x02, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, + 0x52, 0x17, 0x96, 0x09, 0x00, 0x08, 0x17, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x40, 0x1D, + 0x96, 0x0E, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x18, 0x07, 0x9A, 0x02, 0x00, 0x00, 0x08, + 0x17, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x00 }; diff --git a/libswfdec/swfdec_player.c b/libswfdec/swfdec_player.c index 72313a4..5bbf545 100644 --- a/libswfdec/swfdec_player.c +++ b/libswfdec/swfdec_player.c @@ -1891,6 +1891,12 @@ swfdec_player_set_alignment (SwfdecPlaye g_return_if_fail (SWFDEC_IS_PLAYER (player)); flags = swfdec_player_alignment_to_flags (align); + swfdec_player_set_align_flags (player, flags); +} + +void +swfdec_player_set_align_flags (SwfdecPlayer *player, guint flags) +{ if (flags != player->align_flags) { player->align_flags = flags; swfdec_player_update_scale (player); diff --git a/libswfdec/swfdec_player_internal.h b/libswfdec/swfdec_player_internal.h index 9c3ef99..84946ff 100644 --- a/libswfdec/swfdec_player_internal.h +++ b/libswfdec/swfdec_player_internal.h @@ -160,6 +160,8 @@ void swfdec_player_set_drag_movie (Swfd SwfdecMovie * drag, gboolean center, SwfdecRect * rect); +void swfdec_player_set_align_flags (SwfdecPlayer * player, + guint flags); void swfdec_player_stop_all_sounds (SwfdecPlayer * player); SwfdecMovie * swfdec_player_add_level_from_loader (SwfdecPlayer * player, diff --git a/libswfdec/swfdec_stage_as.c b/libswfdec/swfdec_stage_as.c index 119d69c..eee9a6b 100644 --- a/libswfdec/swfdec_stage_as.c +++ b/libswfdec/swfdec_stage_as.c @@ -21,6 +21,7 @@ #include "config.h" #endif +#include <string.h> #include "swfdec_as_strings.h" #include "swfdec_debug.h" #include "swfdec_player_internal.h" @@ -77,3 +78,51 @@ set_scaleMode (SwfdecAsContext *cx, Swfd swfdec_player_set_scale_mode (player, mode); } +SWFDEC_AS_NATIVE (666, 3, get_align) +void +get_align (SwfdecAsContext *cx, SwfdecAsObject *object, + guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) +{ + SwfdecPlayer *player = SWFDEC_PLAYER (cx); + char s[5]; + guint i = 0; + + if (player->align_flags & SWFDEC_ALIGN_FLAG_LEFT) + s[i++] = 'L'; + if (player->align_flags & SWFDEC_ALIGN_FLAG_TOP) + s[i++] = 'T'; + if (player->align_flags & SWFDEC_ALIGN_FLAG_RIGHT) + s[i++] = 'R'; + if (player->align_flags & SWFDEC_ALIGN_FLAG_BOTTOM) + s[i++] = 'B'; + s[i] = 0; + SWFDEC_AS_VALUE_SET_STRING (ret, swfdec_as_context_get_string (cx, s)); +} + +SWFDEC_AS_NATIVE (666, 4, set_align) +void +set_align (SwfdecAsContext *cx, SwfdecAsObject *object, + guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) +{ + SwfdecPlayer *player = SWFDEC_PLAYER (cx); + guint flags = 0; + const char *s; + + if (argc == 0) + return; + + s = swfdec_as_value_to_string (cx, &argv[0]); + if (strchr (s, 'l') || strchr (s, 'L')) + flags |= SWFDEC_ALIGN_FLAG_LEFT; + if (strchr (s, 't') || strchr (s, 'T')) + flags |= SWFDEC_ALIGN_FLAG_TOP; + if (strchr (s, 'r') || strchr (s, 'R')) + flags |= SWFDEC_ALIGN_FLAG_RIGHT; + if (strchr (s, 'b') || strchr (s, 'B')) + flags |= SWFDEC_ALIGN_FLAG_BOTTOM; + + if (flags != player->align_flags) { + player->align_flags = flags; + g_object_notify (G_OBJECT (player), "alignment"); + } +} diff-tree d5cb0796cf85bd83832d71b8a87ed38495c53b01 (from 13033450e2eb8c051d53c6a17a7aa11b88daad9e) Author: Benjamin Otte <otte at gnome.org> Date: Thu Jul 26 22:38:25 2007 +0200 add test for Stage.scaleMode diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index 3f3d6f1..3f9cf9d 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -717,6 +717,15 @@ EXTRA_DIST = \ round-direction-7.swf.trace \ round-direction-8.swf \ round-direction-8.swf.trace \ + scalemode.as \ + scalemode-5.swf \ + scalemode-5.swf.trace \ + scalemode-6.swf \ + scalemode-6.swf.trace \ + scalemode-7.swf \ + scalemode-7.swf.trace \ + scalemode-8.swf \ + scalemode-8.swf.trace \ scope.swf \ scope.swf.trace \ scope2.swf \ diff --git a/test/trace/scalemode-5.swf b/test/trace/scalemode-5.swf new file mode 100644 index 0000000..45166c4 Binary files /dev/null and b/test/trace/scalemode-5.swf differ diff --git a/test/trace/scalemode-5.swf.trace b/test/trace/scalemode-5.swf.trace new file mode 100644 index 0000000..f9f029b --- /dev/null +++ b/test/trace/scalemode-5.swf.trace @@ -0,0 +1,27 @@ +test Stage.scaleMode +showAll +noborder ==> noBorder +noBorder ==> noBorder +NOBORDER ==> noBorder +exactfit ==> exactFit +exactFit ==> exactFit +EXACTFIT ==> exactFit +showall ==> showAll +showAll ==> showAll +SHOWALL ==> showAll +noscale ==> noScale +noScale ==> noScale +NOSCALE ==> noScale +foo ==> showAll +bar ==> showAll +null ==> showAll + ==> showAll + ==> showAll +0 ==> showAll +1 ==> showAll +2 ==> showAll +3 ==> showAll +4 ==> showAll +thishasnoborder ==> showAll +noBorder +exactFit diff --git a/test/trace/scalemode-6.swf b/test/trace/scalemode-6.swf new file mode 100644 index 0000000..5329a13 Binary files /dev/null and b/test/trace/scalemode-6.swf differ diff --git a/test/trace/scalemode-6.swf.trace b/test/trace/scalemode-6.swf.trace new file mode 100644 index 0000000..f9f029b --- /dev/null +++ b/test/trace/scalemode-6.swf.trace @@ -0,0 +1,27 @@ +test Stage.scaleMode +showAll +noborder ==> noBorder +noBorder ==> noBorder +NOBORDER ==> noBorder +exactfit ==> exactFit +exactFit ==> exactFit +EXACTFIT ==> exactFit +showall ==> showAll +showAll ==> showAll +SHOWALL ==> showAll +noscale ==> noScale +noScale ==> noScale +NOSCALE ==> noScale +foo ==> showAll +bar ==> showAll +null ==> showAll + ==> showAll + ==> showAll +0 ==> showAll +1 ==> showAll +2 ==> showAll +3 ==> showAll +4 ==> showAll +thishasnoborder ==> showAll +noBorder +exactFit diff --git a/test/trace/scalemode-7.swf b/test/trace/scalemode-7.swf new file mode 100644 index 0000000..f024415 Binary files /dev/null and b/test/trace/scalemode-7.swf differ diff --git a/test/trace/scalemode-7.swf.trace b/test/trace/scalemode-7.swf.trace new file mode 100644 index 0000000..7ca5b70 --- /dev/null +++ b/test/trace/scalemode-7.swf.trace @@ -0,0 +1,27 @@ +test Stage.scaleMode +showAll +noborder ==> noBorder +noBorder ==> noBorder +NOBORDER ==> noBorder +exactfit ==> exactFit +exactFit ==> exactFit +EXACTFIT ==> exactFit +showall ==> showAll +showAll ==> showAll +SHOWALL ==> showAll +noscale ==> noScale +noScale ==> noScale +NOSCALE ==> noScale +foo ==> showAll +bar ==> showAll +null ==> showAll +undefined ==> showAll + ==> showAll +0 ==> showAll +1 ==> showAll +2 ==> showAll +3 ==> showAll +4 ==> showAll +thishasnoborder ==> showAll +noBorder +exactFit diff --git a/test/trace/scalemode-8.swf b/test/trace/scalemode-8.swf new file mode 100644 index 0000000..21ec76a Binary files /dev/null and b/test/trace/scalemode-8.swf differ diff --git a/test/trace/scalemode-8.swf.trace b/test/trace/scalemode-8.swf.trace new file mode 100644 index 0000000..7ca5b70 --- /dev/null +++ b/test/trace/scalemode-8.swf.trace @@ -0,0 +1,27 @@ +test Stage.scaleMode +showAll +noborder ==> noBorder +noBorder ==> noBorder +NOBORDER ==> noBorder +exactfit ==> exactFit +exactFit ==> exactFit +EXACTFIT ==> exactFit +showall ==> showAll +showAll ==> showAll +SHOWALL ==> showAll +noscale ==> noScale +noScale ==> noScale +NOSCALE ==> noScale +foo ==> showAll +bar ==> showAll +null ==> showAll +undefined ==> showAll + ==> showAll +0 ==> showAll +1 ==> showAll +2 ==> showAll +3 ==> showAll +4 ==> showAll +thishasnoborder ==> showAll +noBorder +exactFit diff --git a/test/trace/scalemode.as b/test/trace/scalemode.as new file mode 100644 index 0000000..a0e84b6 --- /dev/null +++ b/test/trace/scalemode.as @@ -0,0 +1,29 @@ +// makeswf -v 7 -s 200x150 -r 1 -o scalemode.swf scalemode.as + +trace ("test Stage.scaleMode"); + +trace (Stage.scaleMode); +modes = [ + "noborder", "noBorder", "NOBORDER", + "exactfit", "exactFit", "EXACTFIT", + "showall", "showAll", "SHOWALL", + "noscale", "noScale", "NOSCALE", + "foo", "bar", null, undefined, "", + 0, 1, 2, 3, 4, + "thishasnoborder" +]; + +for (i = 0; i < modes.length; i++) { + Stage.scaleMode = modes[i]; + trace (modes[i] + " ==> " + Stage.scaleMode); + Stage.scaleMode = "showAll"; +}; + +Stage.scaleMode = "noBorder"; +foo = ASnative (666, 2); +foo (); +trace (Stage.scaleMode); +foo ("exactfit"); +trace (Stage.scaleMode); + +loadMovie ("FSCommand:quit", "");
Possibly Parallel Threads
- 11 commits - libswfdec/swfdec_asbroadcaster.c libswfdec/swfdec_as_strings.c libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h libswfdec/swfdec_net_stream.c libswfdec/swfdec_player.c libswfdec/swfdec_sprite_movie_as.c test/trace
- 8 commits - libswfdec/Makefile.am libswfdec/swfdec_as_string.c libswfdec/swfdec_as_string.h libswfdec/swfdec_as_strings.c libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h libswfdec/swfdec_load_object.c libswfdec/swfdec_loadvars_as.c test/trace
- 17 commits - doc/swfdec-sections.txt libswfdec/compiler.c libswfdec/.gitignore libswfdec/Makefile.am libswfdec/swfdec_asbroadcaster.c libswfdec/swfdec_as_context.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_as_strings.c
- 4 commits - libswfdec/Makefile.am libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h m4/gtk-doc.m4 Makefile.am test/trace
- 5 commits - doc/Makefile.am doc/swfdec-sections.txt libswfdec/Makefile.am libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h libswfdec/swfdec_player_as.c