[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