gnomemm r1330 - in gstreamermm/trunk: . gstreamer/src tools/m4



Author: jaalburqu
Date: Fri Feb  8 03:47:36 2008
New Revision: 1330
URL: http://svn.gnome.org/viewvc/gnomemm?rev=1330&view=rev

Log:
2008-02-07  Josà Alburquerque  <jaalburqu svn gnome org>

	* gstreamer/src/bin.hg: Bin (and its descendant Pipeline) implements
	ChildProxy interface
	* gstreamer/src/childproxy.hg: Removed unused _PINCLUDEs; Wrapped up
	API
	* tools/m4/convert_gst.m4: Added conversion from const
	Glib::RefPtr<Gst::Object>& to GstObject*; Used Glib::unwrap(...)
	instead of __CONVERT_REFPTR_TO_P


Modified:
   gstreamermm/trunk/ChangeLog
   gstreamermm/trunk/gstreamer/src/bin.hg
   gstreamermm/trunk/gstreamer/src/childproxy.hg
   gstreamermm/trunk/tools/m4/convert_gst.m4

Modified: gstreamermm/trunk/gstreamer/src/bin.hg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/bin.hg	(original)
+++ gstreamermm/trunk/gstreamer/src/bin.hg	Fri Feb  8 03:47:36 2008
@@ -19,19 +19,22 @@
 
 #include <gstreamermm/element.h>
 #include <gstreamermm/enums.h>
+#include <gstreamermm/childproxy.h>
 _DEFS(gstreamermm,gst)
 _PINCLUDE(glibmm/private/object_p.h)
 _PINCLUDE(gstreamermm/private/element_p.h)
 
-
 namespace Gst
 {
 
 class Pad;
 
-class Bin : public Element 
+class Bin
+: public Element,
+  public ChildProxy
 {
   _CLASS_GOBJECT(Bin, GstBin, GST_BIN, Element, GstElement)
+  _IMPLEMENTS_INTERFACE(ChildProxy)
 
 protected:
   _CTOR_DEFAULT

Modified: gstreamermm/trunk/gstreamer/src/childproxy.hg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/childproxy.hg	(original)
+++ gstreamermm/trunk/gstreamer/src/childproxy.hg	Fri Feb  8 03:47:36 2008
@@ -24,8 +24,6 @@
 #include <gstreamermm/object.h>
 
 _DEFS(gstreamermm,gst)
-_PINCLUDE(glibmm/private/interface_p.h)
-_PINCLUDE(gstreamermm/private/object_p.h)
 
 namespace Gst
 {
@@ -48,6 +46,25 @@
 class ChildProxy : public Glib::Interface
 {
   _CLASS_INTERFACE(ChildProxy, GstChildProxy, GST_CHILD_PROXY, GstChildProxyInterface)
+
+public:
+  _WRAP_METHOD(guint children_count(), gst_child_proxy_get_children_count)
+  _WRAP_METHOD(Glib::RefPtr<Gst::Object> get_child(const Glib::ustring& name), gst_child_proxy_get_child_by_name)
+  _WRAP_METHOD(Glib::RefPtr<Gst::Object> get_child(guint index), gst_child_proxy_get_child_by_index)
+
+  //TODO: should gst_child_proxy_lookup() be wrapped?
+
+  _WRAP_METHOD(static void get_property(const Glib::RefPtr<Gst::Object>& object, const Glib::ustring& name, Glib::ValueBase& value), gst_child_proxy_get_property)
+  _WRAP_METHOD(static void get_valist(const Glib::RefPtr<Gst::Object>& object, const Glib::ustring& first_prop_name, const va_list& var_args), gst_child_proxy_get_valist)
+  _WRAP_METHOD(static void set_property(const Glib::RefPtr<Gst::Object>& object, const Glib::ustring& name, const Glib::ValueBase& value), gst_child_proxy_set_property)
+  _WRAP_METHOD(static void set_valist(const Glib::RefPtr<Gst::Object>& object, const Glib::ustring& first_prop_name, const va_list& var_args), gst_child_proxy_set_valist)
+  _WRAP_METHOD(static void child_added(const Glib::RefPtr<Gst::Object>& object, const Glib::RefPtr<Gst::Object>& child), gst_child_proxy_added)
+  _WRAP_METHOD(static void child_removed(const Glib::RefPtr<Gst::Object>& object, const Glib::RefPtr<Gst::Object>& child), gst_child_proxy_removed)
+
+  _WRAP_SIGNAL(void child_added(const Glib::RefPtr<Gst::Object>& object), "child_added")
+  _WRAP_SIGNAL(void child_removed(const Glib::RefPtr<Gst::Object>& object), "child_removed")
+
+  _IGNORE(gst_child_proxy_get, gst_child_proxy_set)
 };
 
 } // namespace Gst

Modified: gstreamermm/trunk/tools/m4/convert_gst.m4
==============================================================================
--- gstreamermm/trunk/tools/m4/convert_gst.m4	(original)
+++ gstreamermm/trunk/tools/m4/convert_gst.m4	Fri Feb  8 03:47:36 2008
@@ -10,8 +10,9 @@
 
 _CONVERSION(`GstObject*',`Glib::RefPtr<Gst::Object>',`Glib::wrap($3)')
 _CONVERSION(`GstObject*',`Glib::RefPtr<const Gst::Object>',`Glib::wrap($3)')
+_CONVERSION(`const Glib::RefPtr<Gst::Object>&',`GstObject*',`Glib::unwrap($3)')
 
-#_CONVERSION(`Glib::RefPtr<Object>&',`GstObject*',__CONVERT_REFPTR_TO_P)
+#_CONVERSION(`Glib::RefPtr<Object>&',`GstObject*', `Glib::unwrap($3)')
 _CONVERSION(`State&',`GstState*',`((GstState*) (&($3)))')
 _CONVERSION(`GstClockTime',`ClockTime',`$3')
 _CONVERSION(`ClockTime',`GstClockTime',`(GstClockTime ($3))')
@@ -23,7 +24,7 @@
 _CONVERSION(`const Format&',`GstFormat*',`((GstFormat*) (&($3)))')
 _CONVERSION(`const gint64&',`gint64*',`((gint64*) (&($3)))')
 _CONVERSION(`const std::string&',`const guchar*',`(const guchar*) ($3.c_str())')
-_CONVERSION(`Glib::RefPtr<Element>',`GstElement*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`Glib::RefPtr<Element>',`GstElement*', `Glib::unwrap($3)')
 _CONVERSION(`GstPad*',`Glib::RefPtr<Pad>',`Glib::wrap($3)')
 _CONVERSION(`GstPad*',`Glib::RefPtr<const Pad>',`Glib::wrap($3)')
 _CONVERSION(`GstCaps*',`Glib::RefPtr<Caps>',`Glib::wrap($3)')
@@ -31,25 +32,25 @@
 _CONVERSION(`GstElement*',`Glib::RefPtr<const Element>',`Glib::wrap($3)')
 _CONVERSION(`GstClock*',`Glib::RefPtr<Clock>',`Glib::wrap($3)')
 _CONVERSION(`GstClock*',`Glib::RefPtr<const Clock>',`Glib::wrap($3)')
-#_CONVERSION(`Glib::RefPtr<Pad>',`GstPad*',__CONVERT_REFPTR_TO_P)
-_CONVERSION(`const Glib::RefPtr<Pad>&',`GstPad*',__CONVERT_REFPTR_TO_P)
-_CONVERSION(`const Glib::RefPtr<Element>&',`GstElement*',__CONVERT_REFPTR_TO_P)
-_CONVERSION(`const Glib::RefPtr<Clock>&',`GstClock*',__CONVERT_REFPTR_TO_P)
+#_CONVERSION(`Glib::RefPtr<Pad>',`GstPad*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<Pad>&',`GstPad*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<Element>&',`GstElement*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<Clock>&',`GstClock*', `Glib::unwrap($3)')
 _CONVERSION(`GstMessage*',`Glib::RefPtr<Message>',`Gst::Message::wrap($3)')
 _CONVERSION(`GstMessage*',`Glib::RefPtr<const Message>',`Gst::Message::wrap($3)')
-_CONVERSION(`const Glib::RefPtr<Message>&',`GstMessage*',__CONVERT_REFPTR_TO_P)
-_CONVERSION(`const Glib::RefPtr<Event>&',`GstEvent*',__CONVERT_REFPTR_TO_P)
-_CONVERSION(`const Glib::RefPtr<Query>&',`GstQuery*',__CONVERT_REFPTR_TO_P)
-_CONVERSION(`const Glib::RefPtr<Caps>&',`GstCaps*',__CONVERT_REFPTR_TO_P)
-_CONVERSION(`const Glib::RefPtr<Bus>&',`GstBus*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`const Glib::RefPtr<Message>&',`GstMessage*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<Event>&',`GstEvent*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<Query>&',`GstQuery*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<Caps>&',`GstCaps*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<Bus>&',`GstBus*', `Glib::unwrap($3)')
 _CONVERSION(`GstBuffer*',`Glib::RefPtr<Buffer>',`wrap($3)')
-_CONVERSION(`const Glib::RefPtr<Buffer>&',`GstBuffer*',__CONVERT_REFPTR_TO_P)
-_CONVERSION(`const Glib::RefPtr<Buffer>&',`const GstBuffer*',__CONVERT_REFPTR_TO_P)
-_CONVERSION(`Glib::RefPtr<Buffer>',`GstBuffer*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`const Glib::RefPtr<Buffer>&',`GstBuffer*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<Buffer>&',`const GstBuffer*', `Glib::unwrap($3)')
+_CONVERSION(`Glib::RefPtr<Buffer>',`GstBuffer*', `Glib::unwrap($3)')
 
 _CONVERSION(`Structure&',`GstStructure*',`((GstStructure*)(&($3)))')
 _CONVERSION(`GstStructure*',`Structure*',`((Structure*) ($3))')
-_CONVERSION(`const Glib::RefPtr<Caps>&',`const GstCaps*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`const Glib::RefPtr<Caps>&',`const GstCaps*', `Glib::unwrap($3)')
 _CONVERSION(`const xmlNodePtr&',`xmlNodePtr',`$3')
 _CONVERSION(`const va_list&',`va_list',`const_cast<va_list&>($3)')
 _CONVERSION(`GstBus*',`Glib::RefPtr<Bus>',`Glib::wrap($3)')



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]