[Swfdec-commits] 4 commits - swfdec/Makefile.am swfdec/swfdec_blur_filter_as.c swfdec/swfdec_blur_filter.c swfdec/swfdec_blur_filter.h test/swfdec_test.c test/trace

Benjamin Otte company at kemper.freedesktop.org
Tue Sep 9 10:06:53 PDT 2008


 swfdec/Makefile.am                          |    2 
 swfdec/swfdec_blur_filter.c                 |   59 +------
 swfdec/swfdec_blur_filter.h                 |   56 +++++++
 swfdec/swfdec_blur_filter_as.c              |  126 ++++++++++++++++
 test/swfdec_test.c                          |    1 
 test/trace/BlurFilter-construct-5.swf       |binary
 test/trace/BlurFilter-construct-5.swf.trace |  112 +++++++++++++++
 test/trace/BlurFilter-construct-6.swf       |binary
 test/trace/BlurFilter-construct-6.swf.trace |  113 +++++++++++++++
 test/trace/BlurFilter-construct-7.swf       |binary
 test/trace/BlurFilter-construct-7.swf.trace |  113 +++++++++++++++
 test/trace/BlurFilter-construct-8.swf       |binary
 test/trace/BlurFilter-construct-8.swf.trace |  209 ++++++++++++++++++++++++++++
 test/trace/BlurFilter-construct.as          |   36 ++++
 test/trace/Makefile.am                      |    9 +
 15 files changed, 789 insertions(+), 47 deletions(-)

New commits:
commit af5c4d1bbaf4a3eaa1357482f5c252439e047813
Merge: c876bfa... ec41abd...
Author: Benjamin Otte <otte at gnome.org>
Date:   Tue Sep 9 19:05:10 2008 +0200

    Merge branch '0.8'

commit ec41abd2e0a025d7ca1e134ab7b943ba14148c11
Author: Benjamin Otte <otte at gnome.org>
Date:   Tue Sep 9 19:03:39 2008 +0200

    properly fail if no MP3 decoder is found

diff --git a/test/swfdec_test.c b/test/swfdec_test.c
index d8db9c8..2da4af0 100644
--- a/test/swfdec_test.c
+++ b/test/swfdec_test.c
@@ -60,6 +60,7 @@ check_codecs (gboolean verbose)
   if (!swfdec_audio_decoder_prepare (SWFDEC_AUDIO_CODEC_MP3,
 	swfdec_audio_format_new (44100, 2, TRUE), NULL)) {
     g_print ("ERROR: MP3 support is not available.\n");
+    return FALSE;
   } else if (verbose) {
     g_print ("   OK: MP3 support is available.\n");
   }
commit c876bfaa92c3514f54061f0032b9d6fa14e7b4a8
Author: Benjamin Otte <otte at gnome.org>
Date:   Tue Sep 9 18:02:16 2008 +0200

    add test for just added code

diff --git a/test/trace/BlurFilter-construct-5.swf b/test/trace/BlurFilter-construct-5.swf
new file mode 100644
index 0000000..bb57054
Binary files /dev/null and b/test/trace/BlurFilter-construct-5.swf differ
diff --git a/test/trace/BlurFilter-construct-5.swf.trace b/test/trace/BlurFilter-construct-5.swf.trace
new file mode 100644
index 0000000..6bd7ac9
--- /dev/null
+++ b/test/trace/BlurFilter-construct-5.swf.trace
@@ -0,0 +1,112 @@
+valueOf called
+toString called
+toString called with 
+valueOf called with 
+0: valueOf!
+1: valueOf!
+2: valueOf!
+3: valueOf!
+4: valueOf!
+5: valueOf!
+6: valueOf!
+7: valueOf!
+8: valueOf!
+9: valueOf!
+10: valueOf!
+11: valueOf!
+12: valueOf!
+13: valueOf!
+14: valueOf!
+15: valueOf!
+16: valueOf!
+17: valueOf!
+18: valueOf!
+19: valueOf!
+20: valueOf!
+21: valueOf!
+22: valueOf!
+22: toString!
+23: valueOf!
+23: toString!
+24: valueOf!
+24: toString!
+25: valueOf!
+26: valueOf!
+26: toString!
+27: valueOf!
+27: toString!
+28: valueOf!
+28: toString!
+29: valueOf!
+29: toString!
+0 args:  /  / 
+1 arg:  /  / 
+2 args:  /  / 
+3 args:  /  / 
+no new:  /  / 
+(0)  (undefined):  /  / 
+(1) null (null):  /  / 
+(2) true (boolean):  /  / 
+(3) false (boolean):  /  / 
+(4) 0 (number):  /  / 
+(5) 1 (number):  /  / 
+(6) 0.5 (number):  /  / 
+(7) -1 (number):  /  / 
+(8) -0.5 (number):  /  / 
+(9) Infinity (number):  /  / 
+(10) -Infinity (number):  /  / 
+(11) NaN (number):  /  / 
+(12)  (string):  /  / 
+(13) 0 (string):  /  / 
+(14) -0 (string):  /  / 
+(15) 0.0 (string):  /  / 
+(16) 1 (string):  /  / 
+(17) Hello World! (string):  /  / 
+(18) true (string):  /  / 
+(19) _level0 (string):  /  / 
+(20) äöü (string):  /  / 
+(21) _level0 (movieclip):  /  / 
+(22) [object Object] (object):  /  / 
+(23) 103584024400.25 (object):  /  / 
+(24)  (object):  /  / 
+(25)  (undefined):  /  / 
+(26) [type Object] (object):  /  / 
+(27) [type Object] (object):  /  / 
+(28) [object Object] (object):  /  / 
+(29)  (object):  /  / 
+(30)  (object):  /  / 
+(31) null (object):  /  / 
+(32) true (object):  /  / 
+(33) false (object):  /  / 
+(34) 0 (object):  /  / 
+(35) 1 (object):  /  / 
+(36) 0.5 (object):  /  / 
+(37) -1 (object):  /  / 
+(38) -0.5 (object):  /  / 
+(39) Infinity (object):  /  / 
+(40) -Infinity (object):  /  / 
+(41) NaN (object):  /  / 
+(42)  (object):  /  / 
+(43) 0 (object):  /  / 
+(44) -0 (object):  /  / 
+(45) 0.0 (object):  /  / 
+(46) 1 (object):  /  / 
+(47) Hello World! (object):  /  / 
+(48) true (object):  /  / 
+(49) _level0 (object):  /  / 
+(50) äöü (object):  /  / 
+(51) _level0 (object):  /  / 
+(52) [type Object] (object):  /  / 
+(53) [type Object] (object):  /  / 
+(54) [type Object] (object):  /  / 
+(55)  (object):  /  / 
+(56) [type Object] (object):  /  / 
+(57) [type Object] (object):  /  / 
+(58) [type Object] (object):  /  / 
+(59) [type Object] (object):  /  / 
+-0.2:  /  / 
+255.125:  /  / 
+15.125:  /  / 
+undefined
+:  /  / 
+:  /  / 
diff --git a/test/trace/BlurFilter-construct-6.swf b/test/trace/BlurFilter-construct-6.swf
new file mode 100644
index 0000000..fec9ca1
Binary files /dev/null and b/test/trace/BlurFilter-construct-6.swf differ
diff --git a/test/trace/BlurFilter-construct-6.swf.trace b/test/trace/BlurFilter-construct-6.swf.trace
new file mode 100644
index 0000000..a4455f4
--- /dev/null
+++ b/test/trace/BlurFilter-construct-6.swf.trace
@@ -0,0 +1,113 @@
+valueOf called
+toString called
+toString called with 
+valueOf called with 
+0: valueOf!
+1: valueOf!
+2: valueOf!
+3: valueOf!
+4: valueOf!
+5: valueOf!
+6: valueOf!
+7: valueOf!
+8: valueOf!
+9: valueOf!
+10: valueOf!
+11: valueOf!
+12: valueOf!
+13: valueOf!
+14: valueOf!
+15: valueOf!
+16: valueOf!
+17: valueOf!
+18: valueOf!
+19: valueOf!
+20: valueOf!
+21: valueOf!
+22: valueOf!
+22: toString!
+23: valueOf!
+23: toString!
+24: valueOf!
+24: toString!
+25: valueOf!
+25: toString!
+26: valueOf!
+26: toString!
+27: valueOf!
+27: toString!
+28: valueOf!
+28: toString!
+29: valueOf!
+29: toString!
+0 args:  /  / 
+1 arg:  /  / 
+2 args:  /  / 
+3 args:  /  / 
+no new:  /  / 
+(0)  (undefined):  /  / 
+(1) null (null):  /  / 
+(2) true (boolean):  /  / 
+(3) false (boolean):  /  / 
+(4) 0 (number):  /  / 
+(5) 1 (number):  /  / 
+(6) 0.5 (number):  /  / 
+(7) -1 (number):  /  / 
+(8) -0.5 (number):  /  / 
+(9) Infinity (number):  /  / 
+(10) -Infinity (number):  /  / 
+(11) NaN (number):  /  / 
+(12)  (string):  /  / 
+(13) 0 (string):  /  / 
+(14) -0 (string):  /  / 
+(15) 0.0 (string):  /  / 
+(16) 1 (string):  /  / 
+(17) Hello World! (string):  /  / 
+(18) true (string):  /  / 
+(19) _level0 (string):  /  / 
+(20) äöü (string):  /  / 
+(21) _level0 (movieclip):  /  / 
+(22) [object Object] (object):  /  / 
+(23) Fri Apr 13 21:20:24 GMT+0000 1973 (object):  /  / 
+(24)  (object):  /  / 
+(25) [type Function] (function):  /  / 
+(26) [type Object] (object):  /  / 
+(27) [type Object] (object):  /  / 
+(28) [object Object] (object):  /  / 
+(29)  (object):  /  / 
+(30)  (object):  /  / 
+(31) null (object):  /  / 
+(32) true (object):  /  / 
+(33) false (object):  /  / 
+(34) 0 (object):  /  / 
+(35) 1 (object):  /  / 
+(36) 0.5 (object):  /  / 
+(37) -1 (object):  /  / 
+(38) -0.5 (object):  /  / 
+(39) Infinity (object):  /  / 
+(40) -Infinity (object):  /  / 
+(41) NaN (object):  /  / 
+(42)  (object):  /  / 
+(43) 0 (object):  /  / 
+(44) -0 (object):  /  / 
+(45) 0.0 (object):  /  / 
+(46) 1 (object):  /  / 
+(47) Hello World! (object):  /  / 
+(48) true (object):  /  / 
+(49) _level0 (object):  /  / 
+(50) äöü (object):  /  / 
+(51) _level0 (object):  /  / 
+(52) [type Object] (object):  /  / 
+(53) [type Object] (object):  /  / 
+(54) [type Object] (object):  /  / 
+(55) [type Object] (object):  /  / 
+(56) [type Object] (object):  /  / 
+(57) [type Object] (object):  /  / 
+(58) [type Object] (object):  /  / 
+(59) [type Object] (object):  /  / 
+-0.2:  /  / 
+255.125:  /  / 
+15.125:  /  / 
+undefined
+:  /  / 
+:  /  / 
diff --git a/test/trace/BlurFilter-construct-7.swf b/test/trace/BlurFilter-construct-7.swf
new file mode 100644
index 0000000..88de706
Binary files /dev/null and b/test/trace/BlurFilter-construct-7.swf differ
diff --git a/test/trace/BlurFilter-construct-7.swf.trace b/test/trace/BlurFilter-construct-7.swf.trace
new file mode 100644
index 0000000..335f84f
--- /dev/null
+++ b/test/trace/BlurFilter-construct-7.swf.trace
@@ -0,0 +1,113 @@
+valueOf called
+toString called
+toString called with 
+valueOf called with 
+0: valueOf!
+1: valueOf!
+2: valueOf!
+3: valueOf!
+4: valueOf!
+5: valueOf!
+6: valueOf!
+7: valueOf!
+8: valueOf!
+9: valueOf!
+10: valueOf!
+11: valueOf!
+12: valueOf!
+13: valueOf!
+14: valueOf!
+15: valueOf!
+16: valueOf!
+17: valueOf!
+18: valueOf!
+19: valueOf!
+20: valueOf!
+21: valueOf!
+22: valueOf!
+22: toString!
+23: valueOf!
+23: toString!
+24: valueOf!
+24: toString!
+25: valueOf!
+25: toString!
+26: valueOf!
+26: toString!
+27: valueOf!
+27: toString!
+28: valueOf!
+28: toString!
+29: valueOf!
+29: toString!
+0 args: undefined / undefined / undefined
+1 arg: undefined / undefined / undefined
+2 args: undefined / undefined / undefined
+3 args: undefined / undefined / undefined
+no new: undefined / undefined / undefined
+(0) undefined (undefined): undefined / undefined / undefined
+(1) null (null): undefined / undefined / undefined
+(2) true (boolean): undefined / undefined / undefined
+(3) false (boolean): undefined / undefined / undefined
+(4) 0 (number): undefined / undefined / undefined
+(5) 1 (number): undefined / undefined / undefined
+(6) 0.5 (number): undefined / undefined / undefined
+(7) -1 (number): undefined / undefined / undefined
+(8) -0.5 (number): undefined / undefined / undefined
+(9) Infinity (number): undefined / undefined / undefined
+(10) -Infinity (number): undefined / undefined / undefined
+(11) NaN (number): undefined / undefined / undefined
+(12)  (string): undefined / undefined / undefined
+(13) 0 (string): undefined / undefined / undefined
+(14) -0 (string): undefined / undefined / undefined
+(15) 0.0 (string): undefined / undefined / undefined
+(16) 1 (string): undefined / undefined / undefined
+(17) Hello World! (string): undefined / undefined / undefined
+(18) true (string): undefined / undefined / undefined
+(19) _level0 (string): undefined / undefined / undefined
+(20) äöü (string): undefined / undefined / undefined
+(21) _level0 (movieclip): undefined / undefined / undefined
+(22) [object Object] (object): undefined / undefined / undefined
+(23) Fri Apr 13 21:20:24 GMT+0000 1973 (object): undefined / undefined / undefined
+(24)  (object): undefined / undefined / undefined
+(25) [type Function] (function): undefined / undefined / undefined
+(26) [type Object] (object): undefined / undefined / undefined
+(27) [type Object] (object): undefined / undefined / undefined
+(28) [object Object] (object): undefined / undefined / undefined
+(29) undefined (object): undefined / undefined / undefined
+(30) undefined (object): undefined / undefined / undefined
+(31) null (object): undefined / undefined / undefined
+(32) true (object): undefined / undefined / undefined
+(33) false (object): undefined / undefined / undefined
+(34) 0 (object): undefined / undefined / undefined
+(35) 1 (object): undefined / undefined / undefined
+(36) 0.5 (object): undefined / undefined / undefined
+(37) -1 (object): undefined / undefined / undefined
+(38) -0.5 (object): undefined / undefined / undefined
+(39) Infinity (object): undefined / undefined / undefined
+(40) -Infinity (object): undefined / undefined / undefined
+(41) NaN (object): undefined / undefined / undefined
+(42)  (object): undefined / undefined / undefined
+(43) 0 (object): undefined / undefined / undefined
+(44) -0 (object): undefined / undefined / undefined
+(45) 0.0 (object): undefined / undefined / undefined
+(46) 1 (object): undefined / undefined / undefined
+(47) Hello World! (object): undefined / undefined / undefined
+(48) true (object): undefined / undefined / undefined
+(49) _level0 (object): undefined / undefined / undefined
+(50) äöü (object): undefined / undefined / undefined
+(51) _level0 (object): undefined / undefined / undefined
+(52) [type Object] (object): undefined / undefined / undefined
+(53) [type Object] (object): undefined / undefined / undefined
+(54) [type Object] (object): undefined / undefined / undefined
+(55) [type Object] (object): undefined / undefined / undefined
+(56) [type Object] (object): undefined / undefined / undefined
+(57) [type Object] (object): undefined / undefined / undefined
+(58) [type Object] (object): undefined / undefined / undefined
+(59) [type Object] (object): undefined / undefined / undefined
+-0.2: undefined / undefined / undefined
+255.125: undefined / undefined / undefined
+15.125: undefined / undefined / undefined
+undefined
+undefined: undefined / undefined / undefined
+undefined: undefined / undefined / undefined
diff --git a/test/trace/BlurFilter-construct-8.swf b/test/trace/BlurFilter-construct-8.swf
new file mode 100644
index 0000000..bb97b67
Binary files /dev/null and b/test/trace/BlurFilter-construct-8.swf differ
diff --git a/test/trace/BlurFilter-construct-8.swf.trace b/test/trace/BlurFilter-construct-8.swf.trace
new file mode 100644
index 0000000..0c853e0
--- /dev/null
+++ b/test/trace/BlurFilter-construct-8.swf.trace
@@ -0,0 +1,209 @@
+valueOf called
+toString called
+toString called with 
+valueOf called with 
+0: valueOf!
+1: valueOf!
+2: valueOf!
+3: valueOf!
+4: valueOf!
+5: valueOf!
+6: valueOf!
+7: valueOf!
+8: valueOf!
+9: valueOf!
+10: valueOf!
+11: valueOf!
+12: valueOf!
+13: valueOf!
+14: valueOf!
+15: valueOf!
+16: valueOf!
+17: valueOf!
+18: valueOf!
+19: valueOf!
+20: valueOf!
+21: valueOf!
+22: valueOf!
+22: toString!
+23: valueOf!
+23: toString!
+24: valueOf!
+24: toString!
+25: valueOf!
+25: toString!
+26: valueOf!
+26: toString!
+27: valueOf!
+27: toString!
+28: valueOf!
+28: toString!
+29: valueOf!
+29: toString!
+0 args: 4 / 4 / 1
+1 arg: 1 / 4 / 1
+2 args: 1 / 2 / 1
+3 args: 1 / 2 / 3
+no new: undefined / undefined / undefined
+(0) undefined (undefined): NaN / NaN / 0
+(1) null (null): NaN / NaN / 0
+(2) true (boolean): 1 / 1 / 1
+(3) false (boolean): 0 / 0 / 0
+(4) 0 (number): 0 / 0 / 0
+(5) 1 (number): 1 / 1 / 1
+(6) 0.5 (number): 0.5 / 0.5 / 0
+(7) -1 (number): 0 / 0 / 0
+(8) -0.5 (number): 0 / 0 / 0
+(9) Infinity (number): 255 / 255 / 0
+(10) -Infinity (number): 0 / 0 / 0
+(11) NaN (number): NaN / NaN / 0
+(12)  (string): NaN / NaN / 0
+(13) 0 (string): 0 / 0 / 0
+(14) -0 (string): 0 / 0 / 0
+(15) 0.0 (string): 0 / 0 / 0
+(16) 1 (string): 1 / 1 / 1
+(17) Hello World! (string): NaN / NaN / 0
+(18) true (string): NaN / NaN / 0
+(19) _level0 (string): NaN / NaN / 0
+(20) äöü (string): NaN / NaN / 0
+(21) _level0 (movieclip): NaN / NaN / 0
+(22) [object Object] (object): NaN / NaN / 0
+(23) Fri Apr 13 21:20:24 GMT+0000 1973 (object): 255 / 255 / 15
+(24)  (object): NaN / NaN / 0
+(25) [type Function] (function): NaN / NaN / 0
+valueOf called
+valueOf called
+valueOf called
+(26) [type Object] (object): NaN / NaN / 0
+(27) [type Object] (object): NaN / NaN / 0
+valueOf called with 
+valueOf called with 
+valueOf called with 
+(28) [object Object] (object): NaN / NaN / 0
+(29) undefined (object): NaN / NaN / 0
+0: valueOf!
+0: valueOf!
+0: valueOf!
+(30) undefined (object): NaN / NaN / 0
+1: valueOf!
+1: valueOf!
+1: valueOf!
+(31) null (object): NaN / NaN / 0
+2: valueOf!
+2: valueOf!
+2: valueOf!
+(32) true (object): 1 / 1 / 1
+3: valueOf!
+3: valueOf!
+3: valueOf!
+(33) false (object): 0 / 0 / 0
+4: valueOf!
+4: valueOf!
+4: valueOf!
+(34) 0 (object): 0 / 0 / 0
+5: valueOf!
+5: valueOf!
+5: valueOf!
+(35) 1 (object): 1 / 1 / 1
+6: valueOf!
+6: valueOf!
+6: valueOf!
+(36) 0.5 (object): 0.5 / 0.5 / 0
+7: valueOf!
+7: valueOf!
+7: valueOf!
+(37) -1 (object): 0 / 0 / 0
+8: valueOf!
+8: valueOf!
+8: valueOf!
+(38) -0.5 (object): 0 / 0 / 0
+9: valueOf!
+9: valueOf!
+9: valueOf!
+(39) Infinity (object): 255 / 255 / 0
+10: valueOf!
+10: valueOf!
+10: valueOf!
+(40) -Infinity (object): 0 / 0 / 0
+11: valueOf!
+11: valueOf!
+11: valueOf!
+(41) NaN (object): NaN / NaN / 0
+12: valueOf!
+12: valueOf!
+12: valueOf!
+(42)  (object): NaN / NaN / 0
+13: valueOf!
+13: valueOf!
+13: valueOf!
+(43) 0 (object): 0 / 0 / 0
+14: valueOf!
+14: valueOf!
+14: valueOf!
+(44) -0 (object): 0 / 0 / 0
+15: valueOf!
+15: valueOf!
+15: valueOf!
+(45) 0.0 (object): 0 / 0 / 0
+16: valueOf!
+16: valueOf!
+16: valueOf!
+(46) 1 (object): 1 / 1 / 1
+17: valueOf!
+17: valueOf!
+17: valueOf!
+(47) Hello World! (object): NaN / NaN / 0
+18: valueOf!
+18: valueOf!
+18: valueOf!
+(48) true (object): NaN / NaN / 0
+19: valueOf!
+19: valueOf!
+19: valueOf!
+(49) _level0 (object): NaN / NaN / 0
+20: valueOf!
+20: valueOf!
+20: valueOf!
+(50) äöü (object): NaN / NaN / 0
+21: valueOf!
+21: valueOf!
+21: valueOf!
+(51) _level0 (object): NaN / NaN / 0
+22: valueOf!
+22: valueOf!
+22: valueOf!
+(52) [type Object] (object): NaN / NaN / 0
+23: valueOf!
+23: valueOf!
+23: valueOf!
+(53) [type Object] (object): NaN / NaN / 0
+24: valueOf!
+24: valueOf!
+24: valueOf!
+(54) [type Object] (object): NaN / NaN / 0
+25: valueOf!
+25: valueOf!
+25: valueOf!
+(55) [type Object] (object): NaN / NaN / 0
+26: valueOf!
+26: valueOf!
+26: valueOf!
+(56) [type Object] (object): NaN / NaN / 0
+27: valueOf!
+27: valueOf!
+27: valueOf!
+(57) [type Object] (object): NaN / NaN / 0
+28: valueOf!
+28: valueOf!
+28: valueOf!
+(58) [type Object] (object): NaN / NaN / 0
+29: valueOf!
+29: valueOf!
+29: valueOf!
+(59) [type Object] (object): NaN / NaN / 0
+-0.2: 0 / 0 / 0
+255.125: 255 / 255 / 15
+15.125: 15.125 / 15.125 / 15
+undefined
+undefined: 1 / 2 / 3
+undefined: 1 / 2 / 3
diff --git a/test/trace/BlurFilter-construct.as b/test/trace/BlurFilter-construct.as
new file mode 100644
index 0000000..93515da
--- /dev/null
+++ b/test/trace/BlurFilter-construct.as
@@ -0,0 +1,36 @@
+// makeswf -v 7 -s 200x150 -r 1 -o BlurFilter-construct.swf BlurFilter-construct.as
+
+#include "values.as"
+
+trace_filter = function (filter, name) {
+  trace (name + ": " + filter.blurX + " / " + filter.blurY + " / " + filter.quality);
+};
+
+check = function (val, name) {
+  if (arguments.length < 2)
+    name = val;
+  var filter = new flash.filters.BlurFilter (val, val, val);
+  trace_filter (filter, name);
+};
+
+trace_filter (new flash.filters.BlurFilter (), "0 args");
+trace_filter (new flash.filters.BlurFilter (1), "1 arg");
+trace_filter (new flash.filters.BlurFilter (1, 2), "2 args");
+trace_filter (new flash.filters.BlurFilter (1, 2, 3), "3 args");
+trace_filter (flash.filters.BlurFilter (1, 2, 3), "no new");
+
+for (i = 0; i < values.length; i++) {
+  check (values[i], names[i]);
+};
+
+check (-0.2);
+check (255.125);
+check (15.125);
+
+trace (flash.filters.BlurFilter (1, 2, 3));
+filter = new flash.filters.BlurFilter (1, 2, 3);
+trace_filter (filter);
+flash.filters.BlurFilter.apply (filter);
+trace_filter (filter);
+
+getURL ("fscommand:quit", "");
diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index 61c1119..be2ea9e 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -450,6 +450,15 @@ EXTRA_DIST = \
 	blur-filter-properties-7.swf.trace \
 	blur-filter-properties-8.swf \
 	blur-filter-properties-8.swf.trace \
+	BlurFilter-construct-5.swf \
+	BlurFilter-construct-5.swf.trace \
+	BlurFilter-construct-6.swf \
+	BlurFilter-construct-6.swf.trace \
+	BlurFilter-construct-7.swf \
+	BlurFilter-construct-7.swf.trace \
+	BlurFilter-construct-8.swf \
+	BlurFilter-construct-8.swf.trace \
+	BlurFilter-construct.as \
 	boolean.as \
 	boolean-5.swf \
 	boolean-5.swf.trace \
commit 2886ef124b414a3523f99e777ce39e860ff5ad32
Author: Benjamin Otte <otte at gnome.org>
Date:   Tue Sep 9 17:57:06 2008 +0200

    implement properties of BlurFilter

diff --git a/swfdec/Makefile.am b/swfdec/Makefile.am
index 4f1e957..30c974b 100644
--- a/swfdec/Makefile.am
+++ b/swfdec/Makefile.am
@@ -50,6 +50,7 @@ libswfdec_source_files = \
 	swfdec_bitmap_pattern.c \
 	swfdec_bits.c \
 	swfdec_blur_filter.c \
+	swfdec_blur_filter_as.c \
 	swfdec_bots.c \
 	swfdec_buffer.c \
 	swfdec_button.c \
@@ -255,6 +256,7 @@ noinst_HEADERS = \
 	swfdec_bitmap_movie.h \
 	swfdec_bitmap_pattern.h \
 	swfdec_bits.h \
+	swfdec_blur_filter.h \
 	swfdec_bots.h \
 	swfdec_button.h \
 	swfdec_button_movie.h \
diff --git a/swfdec/swfdec_blur_filter.c b/swfdec/swfdec_blur_filter.c
index 3a40c40..68f817b 100644
--- a/swfdec/swfdec_blur_filter.c
+++ b/swfdec/swfdec_blur_filter.c
@@ -1,5 +1,5 @@
 /* Swfdec
- * Copyright (C) 2007 Pekka Lampila <pekka.lampila at iki.fi>
+ * Copyright (C) 2008 Benjamin Otte <otte at gnome.org>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -21,62 +21,27 @@
 #include "config.h"
 #endif
 
-#include "swfdec_as_internal.h"
+#include "swfdec_blur_filter.h"
 #include "swfdec_debug.h"
 
-SWFDEC_AS_NATIVE (1102, 1, swfdec_blur_filter_get_blurX)
-void
-swfdec_blur_filter_get_blurX (SwfdecAsContext *cx, SwfdecAsObject *object,
-    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
-{
-  SWFDEC_STUB ("BlurFilter.blurX (get)");
-}
-
-SWFDEC_AS_NATIVE (1102, 2, swfdec_blur_filter_set_blurX)
-void
-swfdec_blur_filter_set_blurX (SwfdecAsContext *cx, SwfdecAsObject *object,
-    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
-{
-  SWFDEC_STUB ("BlurFilter.blurX (set)");
-}
-
-SWFDEC_AS_NATIVE (1102, 3, swfdec_blur_filter_get_blurY)
-void
-swfdec_blur_filter_get_blurY (SwfdecAsContext *cx, SwfdecAsObject *object,
-    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
-{
-  SWFDEC_STUB ("BlurFilter.blurY (get)");
-}
+G_DEFINE_TYPE (SwfdecBlurFilter, swfdec_blur_filter, SWFDEC_TYPE_FILTER)
 
-SWFDEC_AS_NATIVE (1102, 4, swfdec_blur_filter_set_blurY)
-void
-swfdec_blur_filter_set_blurY (SwfdecAsContext *cx, SwfdecAsObject *object,
-    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+static void
+swfdec_blur_filter_class_init (SwfdecBlurFilterClass *klass)
 {
-  SWFDEC_STUB ("BlurFilter.blurY (set)");
 }
 
-SWFDEC_AS_NATIVE (1102, 5, swfdec_blur_filter_get_quality)
-void
-swfdec_blur_filter_get_quality (SwfdecAsContext *cx, SwfdecAsObject *object,
-    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+static void
+swfdec_blur_filter_init (SwfdecBlurFilter *filter)
 {
-  SWFDEC_STUB ("BlurFilter.quality (get)");
+  filter->x = 4;
+  filter->y = 4;
+  filter->quality = 1;
 }
 
-SWFDEC_AS_NATIVE (1102, 6, swfdec_blur_filter_set_quality)
 void
-swfdec_blur_filter_set_quality (SwfdecAsContext *cx, SwfdecAsObject *object,
-    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+swfdec_blur_filter_invalidate (SwfdecBlurFilter *filter)
 {
-  SWFDEC_STUB ("BlurFilter.quality (set)");
+  g_return_if_fail (SWFDEC_IS_BLUR_FILTER (filter));
 }
 
-// constructor
-SWFDEC_AS_NATIVE (1102, 0, swfdec_blur_filter_construct)
-void
-swfdec_blur_filter_construct (SwfdecAsContext *cx, SwfdecAsObject *object,
-    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
-{
-  SWFDEC_STUB ("BlurFilter");
-}
diff --git a/swfdec/swfdec_blur_filter.h b/swfdec/swfdec_blur_filter.h
new file mode 100644
index 0000000..6a78276
--- /dev/null
+++ b/swfdec/swfdec_blur_filter.h
@@ -0,0 +1,56 @@
+/* Swfdec
+ * Copyright (C) 2008 Benjamin Otte <otte at gnome.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This library 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
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, 
+ * Boston, MA  02110-1301  USA
+ */
+
+#ifndef _SWFDEC_BLUR_FILTER_H_
+#define _SWFDEC_BLUR_FILTER_H_
+
+#include <swfdec/swfdec_filter.h>
+
+G_BEGIN_DECLS
+
+
+typedef struct _SwfdecBlurFilter SwfdecBlurFilter;
+typedef struct _SwfdecBlurFilterClass SwfdecBlurFilterClass;
+
+#define SWFDEC_TYPE_BLUR_FILTER                    (swfdec_blur_filter_get_type())
+#define SWFDEC_IS_BLUR_FILTER(obj)                 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_BLUR_FILTER))
+#define SWFDEC_IS_BLUR_FILTER_CLASS(klass)         (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_BLUR_FILTER))
+#define SWFDEC_BLUR_FILTER(obj)                    (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_BLUR_FILTER, SwfdecBlurFilter))
+#define SWFDEC_BLUR_FILTER_CLASS(klass)            (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_BLUR_FILTER, SwfdecBlurFilterClass))
+#define SWFDEC_BLUR_FILTER_GET_CLASS(obj)          (G_TYPE_INSTANCE_GET_CLASS ((obj), SWFDEC_TYPE_BLUR_FILTER, SwfdecBlurFilterClass))
+
+struct _SwfdecBlurFilter {
+  SwfdecFilter		filter;
+
+  double		x;		/* blur in horizontal direction */
+  double		y;		/* blur in vertical direction */
+  guint			quality;	/* number of passes */
+};
+
+struct _SwfdecBlurFilterClass {
+  SwfdecFilterClass	filter_class;
+};
+
+GType			swfdec_blur_filter_get_type	(void);
+
+void			swfdec_blur_filter_invalidate	(SwfdecBlurFilter *	filter);
+
+
+G_END_DECLS
+#endif
diff --git a/swfdec/swfdec_blur_filter_as.c b/swfdec/swfdec_blur_filter_as.c
new file mode 100644
index 0000000..7732261
--- /dev/null
+++ b/swfdec/swfdec_blur_filter_as.c
@@ -0,0 +1,126 @@
+/* Swfdec
+ * Copyright (C) 2007 Pekka Lampila <pekka.lampila at iki.fi>
+ *		 2008 Benjamin Otte <otte at gnome.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This library 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
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, 
+ * Boston, MA  02110-1301  USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "swfdec_as_internal.h"
+#include "swfdec_blur_filter.h"
+#include "swfdec_debug.h"
+
+SWFDEC_AS_NATIVE (1102, 1, swfdec_blur_filter_get_blurX)
+void
+swfdec_blur_filter_get_blurX (SwfdecAsContext *cx, SwfdecAsObject *object,
+    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+{
+  SwfdecBlurFilter *filter;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_BLUR_FILTER, &filter, "");
+
+  SWFDEC_AS_VALUE_SET_NUMBER (ret, filter->x);
+}
+
+SWFDEC_AS_NATIVE (1102, 2, swfdec_blur_filter_set_blurX)
+void
+swfdec_blur_filter_set_blurX (SwfdecAsContext *cx, SwfdecAsObject *object,
+    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+{
+  SwfdecBlurFilter *filter;
+  double d;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_BLUR_FILTER, &filter, "n", &d);
+
+  filter->x = CLAMP (d, 0, 255);
+  swfdec_blur_filter_invalidate (filter);
+}
+
+SWFDEC_AS_NATIVE (1102, 3, swfdec_blur_filter_get_blurY)
+void
+swfdec_blur_filter_get_blurY (SwfdecAsContext *cx, SwfdecAsObject *object,
+    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+{
+  SwfdecBlurFilter *filter;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_BLUR_FILTER, &filter, "");
+
+  SWFDEC_AS_VALUE_SET_NUMBER (ret, filter->y);
+}
+
+SWFDEC_AS_NATIVE (1102, 4, swfdec_blur_filter_set_blurY)
+void
+swfdec_blur_filter_set_blurY (SwfdecAsContext *cx, SwfdecAsObject *object,
+    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+{
+  SwfdecBlurFilter *filter;
+  double d;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_BLUR_FILTER, &filter, "n", &d);
+
+  filter->y = CLAMP (d, 0, 255);
+  swfdec_blur_filter_invalidate (filter);
+}
+
+SWFDEC_AS_NATIVE (1102, 5, swfdec_blur_filter_get_quality)
+void
+swfdec_blur_filter_get_quality (SwfdecAsContext *cx, SwfdecAsObject *object,
+    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+{
+  SwfdecBlurFilter *filter;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_BLUR_FILTER, &filter, "");
+
+  SWFDEC_AS_VALUE_SET_INT (ret, filter->quality);
+}
+
+SWFDEC_AS_NATIVE (1102, 6, swfdec_blur_filter_set_quality)
+void
+swfdec_blur_filter_set_quality (SwfdecAsContext *cx, SwfdecAsObject *object,
+    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+{
+  SwfdecBlurFilter *filter;
+  int i;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_BLUR_FILTER, &filter, "i", &i);
+
+  filter->y = CLAMP (i, 0, 15);
+  swfdec_blur_filter_invalidate (filter);
+}
+
+// constructor
+SWFDEC_AS_CONSTRUCTOR (1102, 0, swfdec_blur_filter_construct, swfdec_blur_filter_get_type)
+void
+swfdec_blur_filter_construct (SwfdecAsContext *cx, SwfdecAsObject *object,
+    guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
+{
+  SwfdecBlurFilter *filter;
+  double x = 4, y = 4;
+  int quality = 1;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_BLUR_FILTER, &filter, "|nni", &x, &y, &quality);
+
+  if (!swfdec_as_context_is_constructing (cx))
+    return;
+
+  filter->x = CLAMP (x, 0, 255);
+  filter->y = CLAMP (y, 0, 255);
+  filter->quality = CLAMP (quality, 0, 15);
+  SWFDEC_AS_VALUE_SET_OBJECT (ret, object);
+}


More information about the Swfdec-commits mailing list