From 8c72b3b63134dd9b82c789a4eeaa81d20883315c Mon Sep 17 00:00:00 2001 From: Aaron Bockover Date: Thu, 25 May 2006 15:57:02 +0000 Subject: [PATCH] 2006-05-25 Aaron Bockover * gstreamer-sharp/Gstreamer.metadata: Hide the Children property and implement own version in Bin.custom to return an Element [] instead of a GLib.List * gstreamer-sharp/Bin.custom: Implement Bin.Children * tests/BinTest.cs: wrote a test for Bin.Children git-svn-id: svn://anonsvn.mono-project.com/source/branches/abock/gstreamer-sharp@61115 e3ebcda4-bce8-0310-ba0a-eca2169e7518 --- ChangeLog | 10 ++++++++++ gstreamer-sharp/Bin.custom | 9 +++------ gstreamer-sharp/Gstreamer.metadata | 8 ++++---- tests/BinTest.cs | 28 +++++++++++++++++++++++++++- 4 files changed, 44 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 404101d699..3eb795231b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2006-05-25 Aaron Bockover + + * gstreamer-sharp/Gstreamer.metadata: Hide the Children property and + implement own version in Bin.custom to return an Element [] instead of + a GLib.List + + * gstreamer-sharp/Bin.custom: Implement Bin.Children + + * tests/BinTest.cs: wrote a test for Bin.Children + 2006-05-25 Aaron Bockover * gstreamer-sharp-0.10.pc.in: link against proper assembly diff --git a/gstreamer-sharp/Bin.custom b/gstreamer-sharp/Bin.custom index ae728dd5cf..db16a34cbf 100644 --- a/gstreamer-sharp/Bin.custom +++ b/gstreamer-sharp/Bin.custom @@ -1,13 +1,10 @@ - /*[DllImport ("gstreamersharpglue-0.10")] + [DllImport ("gstreamersharpglue-0.10")] private extern static uint gstsharp_gst_bin_get_children_offset(); - static uint children_offset = gstsharp_gst_bin_get_children_offset();*/ + static uint children_offset = gstsharp_gst_bin_get_children_offset(); - /* TODO: This needs to be called 'Children' and the default version - needs to be hidden (see Gstreamer.metadata) */ - - public Element [] List { + public Element [] Children { get { GLib.List list; diff --git a/gstreamer-sharp/Gstreamer.metadata b/gstreamer-sharp/Gstreamer.metadata index e620d04bee..0e41a5d42d 100644 --- a/gstreamer-sharp/Gstreamer.metadata +++ b/gstreamer-sharp/Gstreamer.metadata @@ -3,10 +3,10 @@ 1 1 - - 1 - ChildCount - + + 1 + + HasNoMorePads state_change_ret diff --git a/tests/BinTest.cs b/tests/BinTest.cs index 95d839f19d..8a0d76a4b3 100644 --- a/tests/BinTest.cs +++ b/tests/BinTest.cs @@ -35,7 +35,7 @@ public class BinTest Element e2 = ElementFactory.Make("fakesink", "fakesink"); bin.AddMany(e1, e2); - Assert.AreEqual(bin.List.Length, 2); + Assert.AreEqual(bin.ChildrenCount, 2); e1.Dispose(); e2.Dispose(); @@ -57,5 +57,31 @@ public class BinTest e1.Dispose(); bin.Dispose(); } + + [Test] + public void TestChildren() + { + Bin bin = new Bin("test-bin"); + + Element [] elements = new Element [] { + ElementFactory.Make("fakesrc", "fakesrc"), + ElementFactory.Make("audioconvert", "audioconvert"), + ElementFactory.Make("wavenc", "wavenc"), + ElementFactory.Make("fakesink", "fakesink") + }; + + foreach(Element element in elements) { + bin.Add(element); + } + + Assert.AreEqual(elements.Length, bin.ChildrenCount); + Element [] children = bin.Children; + + for(int i = 0; i < elements.Length; i++) { + Assert.AreEqual(elements[i], children[i]); + } + + bin.Dispose(); + } }