[gstreamermm] Use unwrap() instead of gobj() for Glib::RefPtr<> type classes.



commit 4ee46fc8139fbc676b02cef06296330b0f41d7b7
Author: José Alburquerque <jaalburqu svn gnome org>
Date:   Fri Oct 16 17:59:06 2009 -0400

    	Use unwrap() instead of gobj() for Glib::RefPtr<> type classes.
    
    	* gstreamer/src/basesink.ccg:
    	* gstreamer/src/basesink.hg:
    	* gstreamer/src/basesrc.hg:
    	* gstreamer/src/basetransform.ccg:
    	* gstreamer/src/caps.ccg:
    	* gstreamer/src/caps.hg:
    	* gstreamer/src/childproxy.ccg:
    	* gstreamer/src/element.ccg:
    	* gstreamer/src/interface.hg:
    	* gstreamer/src/message.ccg:
    	* gstreamer/src/mixer.ccg:
    	* gstreamer/src/object.hg:
    	* gstreamer/src/xml.ccg:
    	* tools/m4/convert_gst.m4: Use unwrap() instead of dereferencing the
    	RefPtr to call gobj() because unwrap() checks for null RefPtr's.

 ChangeLog                       |   20 +++++++++
 gstreamer/src/basesink.ccg      |    2 +-
 gstreamer/src/basesink.hg       |    2 +-
 gstreamer/src/basesrc.hg        |    2 +-
 gstreamer/src/basetransform.ccg |    3 +-
 gstreamer/src/caps.ccg          |    2 +-
 gstreamer/src/caps.hg           |    2 +-
 gstreamer/src/childproxy.ccg    |    8 ++--
 gstreamer/src/element.ccg       |    7 ++-
 gstreamer/src/interface.hg      |    4 +-
 gstreamer/src/message.ccg       |   75 +++++++++++++++++++---------------
 gstreamer/src/mixer.ccg         |    4 +-
 gstreamer/src/object.hg         |    2 +-
 gstreamer/src/xml.ccg           |    2 +-
 tools/m4/convert_gst.m4         |   86 +++++++++++++++++++-------------------
 15 files changed, 126 insertions(+), 95 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 581a9e4..64442eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,25 @@
 2009-10-16  José Alburquerque  <jaalburqu svn gnome org>
 
+	Use unwrap() instead of gobj() for Glib::RefPtr<> type classes.
+
+	* gstreamer/src/basesink.ccg:
+	* gstreamer/src/basesink.hg:
+	* gstreamer/src/basesrc.hg:
+	* gstreamer/src/basetransform.ccg:
+	* gstreamer/src/caps.ccg:
+	* gstreamer/src/caps.hg:
+	* gstreamer/src/childproxy.ccg:
+	* gstreamer/src/element.ccg:
+	* gstreamer/src/interface.hg:
+	* gstreamer/src/message.ccg:
+	* gstreamer/src/mixer.ccg:
+	* gstreamer/src/object.hg:
+	* gstreamer/src/xml.ccg:
+	* tools/m4/convert_gst.m4: Use unwrap() instead of dereferencing the
+	RefPtr to call gobj() because unwrap() checks for null RefPtr's.
+
+2009-10-16  José Alburquerque  <jaalburqu svn gnome org>
+
 	Examples and Tests: Return 1 on error instead of -1.
 
 	* examples/media_player_gtkmm/main.cc:
diff --git a/gstreamer/src/basesink.ccg b/gstreamer/src/basesink.ccg
index ce6abea..c702fab 100644
--- a/gstreamer/src/basesink.ccg
+++ b/gstreamer/src/basesink.ccg
@@ -109,7 +109,7 @@ FlowReturn Gst::BaseSink::buffer_alloc_vfunc(guint64 offset, guint size, const G
   {
     GstBuffer* gst_buffer;
     const Gst::FlowReturn result =
-      static_cast<Gst::FlowReturn>((*base->buffer_alloc)(gobj(), offset,size,(caps)->gobj(),&gst_buffer));
+      static_cast<Gst::FlowReturn>((*base->buffer_alloc)(gobj(), offset,size,Glib::unwrap(caps), &gst_buffer));
     buffer = Gst::wrap(gst_buffer, false); // Don't take copy because callback returns a newly created copy.
     return result;
   }
diff --git a/gstreamer/src/basesink.hg b/gstreamer/src/basesink.hg
index d100f9d..d3d7995 100644
--- a/gstreamer/src/basesink.hg
+++ b/gstreamer/src/basesink.hg
@@ -215,7 +215,7 @@ public:
   _WRAP_PROPERTY("sync", bool)
   _WRAP_PROPERTY("ts-offset", gint64)
 
-#m4 _CONVERSION(`Glib::RefPtr<Gst::Caps>', `GstCaps*', `($3)->gobj()')
+#m4 _CONVERSION(`Glib::RefPtr<Gst::Caps>', `GstCaps*', `Glib::unwrap($3)')
   /** Called to get sink pad caps from the subclass.
    */
   _WRAP_VFUNC(Glib::RefPtr<Gst::Caps> get_caps() const, "get_caps")
diff --git a/gstreamer/src/basesrc.hg b/gstreamer/src/basesrc.hg
index 1c2a63f..36de5ba 100644
--- a/gstreamer/src/basesrc.hg
+++ b/gstreamer/src/basesrc.hg
@@ -167,7 +167,7 @@ public:
   _WRAP_PROPERTY("num-buffers", int)
   _WRAP_PROPERTY("typefind", bool)
 
-#m4 _CONVERSION(`Glib::RefPtr<Gst::Caps>', `GstCaps*', `($3)->gobj()')
+#m4 _CONVERSION(`Glib::RefPtr<Gst::Caps>', `GstCaps*', `Glib::unwrap($3)')
   /** Called to get the caps to report.
    */
   _WRAP_VFUNC(Glib::RefPtr<Gst::Caps> get_caps() const, "get_caps")
diff --git a/gstreamer/src/basetransform.ccg b/gstreamer/src/basetransform.ccg
index d60ada9..b1c56ca 100644
--- a/gstreamer/src/basetransform.ccg
+++ b/gstreamer/src/basetransform.ccg
@@ -95,7 +95,8 @@ FlowReturn Gst::BaseTransform::prepare_output_buffer_vfunc(const Glib::RefPtr<Gs
   {
     GstBuffer* gst_buffer;
     const Gst::FlowReturn result =
-      static_cast<Gst::FlowReturn>((*base->prepare_output_buffer)(gobj(),(input)->gobj(), size,(caps)->gobj(),&gst_buffer));
+      static_cast<Gst::FlowReturn>((*base->prepare_output_buffer)(gobj(),
+      Glib::unwrap(input), size, Glib::unwrap(caps), &gst_buffer));
     buffer = Gst::wrap(gst_buffer, false); // Don't take copy because callback returns a newly created copy.
     return result;
   }
diff --git a/gstreamer/src/caps.ccg b/gstreamer/src/caps.ccg
index afde34a..e9a5e9e 100644
--- a/gstreamer/src/caps.ccg
+++ b/gstreamer/src/caps.ccg
@@ -43,7 +43,7 @@ Glib::RefPtr<Gst::Caps> Caps::create_simple(const Glib::ustring& media_type)
 {
   Glib::RefPtr<Gst::Caps> result = Glib::wrap(gst_caps_new_empty());
   GstStructure* gst_struct = gst_structure_empty_new(media_type.c_str());
-  gst_caps_append_structure(result->gobj(), gst_struct);
+  gst_caps_append_structure(Glib::unwrap(result), gst_struct);
   return result;
 }
 
diff --git a/gstreamer/src/caps.hg b/gstreamer/src/caps.hg
index 56197ec..984c51b 100644
--- a/gstreamer/src/caps.hg
+++ b/gstreamer/src/caps.hg
@@ -215,7 +215,7 @@ class Value< Glib::RefPtr<Gst::Caps> > : public ValueBase_Boxed
 {
 public:
   static GType value_type() { return Gst::Caps::get_type(); }
-  void set(const Glib::RefPtr<Gst::Caps>& caps) { set_boxed(caps->gobj()); }
+  void set(const Glib::RefPtr<Gst::Caps>& caps) { set_boxed(Glib::unwrap(caps)); }
   Glib::RefPtr<Gst::Caps> get()                 { return Glib::RefPtr<Gst::Caps>(reinterpret_cast<Gst::Caps*>(get_boxed())); }
 };
 
diff --git a/gstreamer/src/childproxy.ccg b/gstreamer/src/childproxy.ccg
index c0efade..c6b3722 100644
--- a/gstreamer/src/childproxy.ccg
+++ b/gstreamer/src/childproxy.ccg
@@ -25,8 +25,8 @@ bool ChildProxy::lookup(const Glib::RefPtr<Gst::Object>& object,
   GParamSpec*& pspec)
 {
   GstObject* gst_object = 0;
-  bool const result = gst_child_proxy_lookup(object->gobj(), name.c_str(),
-    &gst_object, & pspec);
+  bool const result = gst_child_proxy_lookup(Glib::unwrap(object),
+    name.c_str(), &gst_object, & pspec);
   target = Glib::wrap(gst_object);
   return result;
 }
@@ -51,12 +51,12 @@ Glib::RefPtr<Gst::ChildProxy> ChildProxy::set_proxy_property(const Glib::ustring
 
 void ChildProxy::child_added(const Glib::RefPtr<Gst::Object>& child)
 {
-  gst_child_proxy_child_added(GST_OBJECT(gobj()), child->gobj());
+  gst_child_proxy_child_added(GST_OBJECT(gobj()), Glib::unwrap(child));
 }
 
 void ChildProxy::child_removed(const Glib::RefPtr<Gst::Object>& child)
 {
-  gst_child_proxy_child_removed(GST_OBJECT(gobj()), child->gobj());
+  gst_child_proxy_child_removed(GST_OBJECT(gobj()), Glib::unwrap(child));
 }
 
 } //namespace Gst
diff --git a/gstreamer/src/element.ccg b/gstreamer/src/element.ccg
index 8be0da0..fc1dc1e 100644
--- a/gstreamer/src/element.ccg
+++ b/gstreamer/src/element.ccg
@@ -71,7 +71,7 @@ Glib::RefPtr<Gst::Element> Element::link(const Glib::RefPtr<Gst::Element>& dest)
   if(!dest)
     handle_error("Failed to link null element.");
     
-  const bool result = gst_element_link(gobj(), dest->gobj());
+  const bool result = gst_element_link(gobj(), Glib::unwrap(dest));
 
   if(result)
     return dest;
@@ -87,7 +87,8 @@ Glib::RefPtr<Gst::Element> Element::link(const Glib::RefPtr<Gst::Element>& dest,
   if(!dest)
     handle_error("Failed to link null element.");
     
-  const bool result = gst_element_link_filtered(gobj(), dest->gobj(), filter->gobj());
+  const bool result = gst_element_link_filtered(gobj(), Glib::unwrap(dest),
+    Glib::unwrap(filter));
 
   if(result)
     return dest;
@@ -125,7 +126,7 @@ bool Element::query_duration(Format& format) const
 bool Element::send_event(const Glib::RefPtr<Gst::Event>& event)
 {
   event->reference();
-  return gst_element_send_event(gobj(), event->gobj());
+  return gst_element_send_event(gobj(), Gst::unwrap(event));
 }
 
 #ifdef GLIBMM_VFUNCS_ENABLED
diff --git a/gstreamer/src/interface.hg b/gstreamer/src/interface.hg
index 11bb739..c940d95 100644
--- a/gstreamer/src/interface.hg
+++ b/gstreamer/src/interface.hg
@@ -113,10 +113,10 @@ public:
 template <class T_CastTo>
 Glib::RefPtr< Gst::ElementInterfaced<T_CastTo> > Interface::cast(const Glib::RefPtr<Gst::Element>& element)
 {
-  if(element && gst_element_implements_interface(element->gobj(), T_CastTo::get_type()))
+  if(element && gst_element_implements_interface(Glib::unwrap(element), T_CastTo::get_type()))
   {
     void* result =
-      gst_implements_interface_cast(element->gobj(), T_CastTo::get_type());
+      gst_implements_interface_cast(Glib::unwrap(element), T_CastTo::get_type());
 
     Gst::ElementInterfaced<T_CastTo>* element_interfaced =
       new ElementInterfaced<T_CastTo>((GstElement*) result);
diff --git a/gstreamer/src/message.ccg b/gstreamer/src/message.ccg
index 0522031..9d71f65 100644
--- a/gstreamer/src/message.ccg
+++ b/gstreamer/src/message.ccg
@@ -60,7 +60,7 @@ MessageEos::MessageEos(GstMessage* castitem)
 
 Glib::RefPtr<Gst::Message> MessageEos::create(const Glib::RefPtr<Gst::Object>& src)
 {
-  GstMessage* message = gst_message_new_eos(src->gobj());
+  GstMessage* message = gst_message_new_eos(Glib::unwrap(src));
   return Gst::Message::wrap(message, false);
 }
 
@@ -70,7 +70,7 @@ MessageError::MessageError(GstMessage* castitem)
 
 Glib::RefPtr<Gst::Message> MessageError::create(const Glib::RefPtr<Gst::Object>& src, Glib::Error& error, const std::string& debug)
 {
-  GstMessage* message = gst_message_new_error(src->gobj(), error.gobj(),
+  GstMessage* message = gst_message_new_error(Glib::unwrap(src), error.gobj(),
     reinterpret_cast<const gchar*>(debug.c_str()));
   return Gst::Message::wrap(message, false);
 }
@@ -114,8 +114,8 @@ MessageWarning::MessageWarning(GstMessage* castitem)
 
 Glib::RefPtr<Gst::Message> MessageWarning::create(const Glib::RefPtr<Gst::Object>& src, Glib::Error& error, const std::string& debug)
 {
-  GstMessage* message = gst_message_new_warning(src->gobj(), error.gobj(),
-    reinterpret_cast<const gchar*>(debug.c_str()));
+  GstMessage* message = gst_message_new_warning(Glib::unwrap(src),
+    error.gobj(), reinterpret_cast<const gchar*>(debug.c_str()));
   return Gst::Message::wrap(message, false);
 }
 
@@ -158,7 +158,7 @@ MessageInfo::MessageInfo(GstMessage* castitem)
 
 Glib::RefPtr<Gst::Message> MessageInfo::create(const Glib::RefPtr<Gst::Object>& src, Glib::Error& error, const std::string& debug)
 {
-  GstMessage* message = gst_message_new_info(src->gobj(), error.gobj(),
+  GstMessage* message = gst_message_new_info(Glib::unwrap(src), error.gobj(),
     reinterpret_cast<const gchar*>(debug.c_str()));
   return Gst::Message::wrap(message, false);
 }
@@ -207,7 +207,7 @@ Glib::RefPtr<Gst::Message>
 {
   //We create a copy because gst_message_new_tag() takes ownership:
   GstTagList* c_taglist = gst_tag_list_copy(taglist.gobj());
-  GstMessage* message = gst_message_new_tag(src->gobj(), c_taglist);
+  GstMessage* message = gst_message_new_tag(Glib::unwrap(src), c_taglist);
   return Gst::Message::wrap(message, false);
 }
 
@@ -217,8 +217,8 @@ Glib::RefPtr<Gst::Message>
 {
   //We create a copy because gst_message_new_tag() takes ownership:
   GstTagList* c_taglist = gst_tag_list_copy(taglist.gobj());
-  GstMessage* message = gst_message_new_tag_full(src->gobj(), pad->gobj(),
-    c_taglist);
+  GstMessage* message = gst_message_new_tag_full(Glib::unwrap(src),
+    Glib::unwrap(pad), c_taglist);
   return Gst::Message::wrap(message, false);
 }
 
@@ -257,7 +257,7 @@ MessageBuffering::MessageBuffering(GstMessage* castitem)
 
 Glib::RefPtr<Gst::Message> MessageBuffering::create(const Glib::RefPtr<Gst::Object>& src, int percent)
 {
-  GstMessage* message = gst_message_new_buffering(src->gobj(), percent);
+  GstMessage* message = gst_message_new_buffering(Glib::unwrap(src), percent);
   return Gst::Message::wrap(message, false);
 }
 
@@ -325,7 +325,7 @@ MessageStateChanged::MessageStateChanged(GstMessage* castitem)
 
 Glib::RefPtr<Gst::Message> MessageStateChanged::create(const Glib::RefPtr<Gst::Object>& src, State oldstate, State newstate, State pending)
 {
-  GstMessage* message = gst_message_new_state_changed(src->gobj(),
+  GstMessage* message = gst_message_new_state_changed(Glib::unwrap(src),
     static_cast<GstState>(oldstate), static_cast<GstState>(newstate),
     static_cast<GstState>(pending));
   return Gst::Message::wrap(message, false);
@@ -373,7 +373,7 @@ MessageStateDirty::MessageStateDirty(GstMessage* castitem)
 Glib::RefPtr<Gst::Message>
   MessageStateDirty::create(const Glib::RefPtr<Gst::Object>& src)
 {
-  GstMessage* message = gst_message_new_state_dirty(src->gobj());
+  GstMessage* message = gst_message_new_state_dirty(Glib::unwrap(src));
   return Gst::Message::wrap(message, false);
 }
 
@@ -386,7 +386,7 @@ Glib::RefPtr<Gst::Message>
   Gst::Format format, guint64 amount, double rate, bool flush,
   bool intermediate, guint64 duration, bool eos)
 {
-  GstMessage* message = gst_message_new_step_done(src->gobj(),
+  GstMessage* message = gst_message_new_step_done(Glib::unwrap(src),
     static_cast<GstFormat>(format), amount, rate, flush, intermediate,
     duration, eos);
   return Gst::Message::wrap(message, false);
@@ -471,7 +471,8 @@ MessageClockProvide::MessageClockProvide(GstMessage* castitem)
 
 Glib::RefPtr<Gst::Message> MessageClockProvide::create(const Glib::RefPtr<Gst::Object>& src, const Glib::RefPtr<Gst::Clock>& clock, bool ready)
 {
-  GstMessage* message = gst_message_new_clock_provide(src->gobj(), clock->gobj(), ready);
+  GstMessage* message = gst_message_new_clock_provide(Glib::unwrap(src),
+    Glib::unwrap(clock), ready);
   return Gst::Message::wrap(message, false);
 }
 
@@ -511,7 +512,8 @@ MessageClockLost::MessageClockLost(GstMessage* castitem)
 
 Glib::RefPtr<Gst::Message> MessageClockLost::create(const Glib::RefPtr<Gst::Object>& src, const Glib::RefPtr<Gst::Clock>& clock)
 {
-  GstMessage* message = gst_message_new_clock_lost(src->gobj(), clock->gobj());
+  GstMessage* message = gst_message_new_clock_lost(Glib::unwrap(src),
+    Glib::unwrap(clock));
   return Gst::Message::wrap(message, false);
 }
 
@@ -533,7 +535,8 @@ MessageNewClock::MessageNewClock(GstMessage* castitem)
 
 Glib::RefPtr<Gst::Message> MessageNewClock::create(const Glib::RefPtr<Gst::Object>& src, const Glib::RefPtr<Gst::Clock>& clock)
 {
-  GstMessage* message = gst_message_new_new_clock(src->gobj(), clock->gobj());
+  GstMessage* message = gst_message_new_new_clock(Glib::unwrap(src),
+    Glib::unwrap(clock));
   return Gst::Message::wrap(message, false);
 }
 
@@ -556,13 +559,14 @@ MessageApplication::MessageApplication(GstMessage* castitem)
 Glib::RefPtr<Gst::Message> MessageApplication::create(const Glib::RefPtr<Gst::Object>& src, Gst::Structure& structure)
 {
   GstStructure* copy_struct = gst_structure_copy(structure.gobj());
-  GstMessage* message = gst_message_new_application(src->gobj(), copy_struct);
+  GstMessage* message = gst_message_new_application(Glib::unwrap(src),
+    copy_struct);
   return Gst::Message::wrap(message, false);
 }
 
 Glib::RefPtr<Gst::Message> MessageApplication::create(const Glib::RefPtr<Gst::Object>& src)
 {
-  GstMessage* message = gst_message_new_application(src->gobj(), 0);
+  GstMessage* message = gst_message_new_application(Glib::unwrap(src), 0);
   return Gst::Message::wrap(message, false);
 }
 
@@ -573,13 +577,14 @@ MessageElement::MessageElement(GstMessage* castitem)
 Glib::RefPtr<Gst::Message> MessageElement::create(const Glib::RefPtr<Gst::Object>& src, Gst::Structure& structure)
 {
   GstStructure* copy_struct = gst_structure_copy(structure.gobj());
-  GstMessage* message = gst_message_new_element(src->gobj(), copy_struct);
+  GstMessage* message = gst_message_new_element(Glib::unwrap(src),
+    copy_struct);
   return Gst::Message::wrap(message, false);
 }
 
 Glib::RefPtr<Gst::Message> MessageElement::create(const Glib::RefPtr<Gst::Object>& src)
 {
-  GstMessage* message = gst_message_new_element(src->gobj(), 0);
+  GstMessage* message = gst_message_new_element(Glib::unwrap(src), 0);
   return Gst::Message::wrap(message, false);
 }
 
@@ -591,14 +596,14 @@ Glib::RefPtr<Gst::Message> MessageCustom::create(MessageType type, const Glib::R
 {
   GstStructure* copy_struct = gst_structure_copy(structure.gobj());
   GstMessage* message = gst_message_new_custom(GstMessageType(type),
-    src->gobj(), copy_struct);
+    Glib::unwrap(src), copy_struct);
   return Gst::Message::wrap(message, false);
 }
 
 Glib::RefPtr<Gst::Message> MessageCustom::create(MessageType type, const Glib::RefPtr<Gst::Object>& src)
 {
   GstMessage* message = gst_message_new_custom(GstMessageType(type),
-    src->gobj(), 0);
+    Glib::unwrap(src), 0);
   return Gst::Message::wrap(message, false);
 }
 
@@ -608,7 +613,8 @@ MessageSegmentStart::MessageSegmentStart(GstMessage* castitem)
 
 Glib::RefPtr<Gst::Message> MessageSegmentStart::create(const Glib::RefPtr<Gst::Object>& src, Format format, gint64 position)
 {
-  GstMessage* message = gst_message_new_segment_start(src->gobj(), GstFormat(format), position);
+  GstMessage* message = gst_message_new_segment_start(Glib::unwrap(src),
+    static_cast<GstFormat>(format), position);
   return Gst::Message::wrap(message, false);
 }
 
@@ -640,7 +646,8 @@ MessageSegmentDone::MessageSegmentDone(GstMessage* castitem)
 
 Glib::RefPtr<Gst::Message> MessageSegmentDone::create(const Glib::RefPtr<Gst::Object>& src, Format format, gint64 position)
 {
-  GstMessage* message = gst_message_new_segment_done(src->gobj(), GstFormat(format), position);
+  GstMessage* message = gst_message_new_segment_done(Glib::unwrap(src),
+    static_cast<GstFormat>(format), position);
   return Gst::Message::wrap(message, false);
 }
 
@@ -672,7 +679,8 @@ MessageDuration::MessageDuration(GstMessage* castitem)
 
 Glib::RefPtr<Gst::Message> MessageDuration::create(const Glib::RefPtr<Gst::Object>& src, Format format, gint64 position)
 {
-  GstMessage* message = gst_message_new_duration(src->gobj(), GstFormat(format), position);
+  GstMessage* message = gst_message_new_duration(Glib::unwrap(src),
+    static_cast<GstFormat>(format), position);
   return Gst::Message::wrap(message, false);
 }
 
@@ -703,7 +711,7 @@ MessageLatency::MessageLatency(GstMessage* castitem)
 
 Glib::RefPtr<Gst::Message> MessageLatency::create(const Glib::RefPtr<Gst::Object>& src)
 {
-  GstMessage* message = gst_message_new_latency(src->gobj());
+  GstMessage* message = gst_message_new_latency(Glib::unwrap(src));
   return Gst::Message::wrap(message, false);
 }
 
@@ -713,7 +721,8 @@ MessageAsyncStart::MessageAsyncStart(GstMessage* castitem)
 
 Glib::RefPtr<Gst::Message> MessageAsyncStart::create(const Glib::RefPtr<Gst::Object>& src, bool new_base_time)
 {
-  GstMessage* message = gst_message_new_async_start(src->gobj(), new_base_time);
+  GstMessage* message = gst_message_new_async_start(Glib::unwrap(src),
+    new_base_time);
   return Gst::Message::wrap(message, false);
 }
 
@@ -731,7 +740,7 @@ MessageAsyncDone::MessageAsyncDone(GstMessage* castitem)
 
 Glib::RefPtr<Gst::Message> MessageAsyncDone::create(const Glib::RefPtr<Gst::Object>& src)
 {
-  GstMessage* message = gst_message_new_async_done(src->gobj());
+  GstMessage* message = gst_message_new_async_done(Glib::unwrap(src));
   return Gst::Message::wrap(message, false);
 }
 
@@ -744,7 +753,7 @@ Glib::RefPtr<Gst::Message>
   bool active, Gst::Format format, guint64 amount, double rate, bool flush,
   bool intermediate)
 {
-  GstMessage* message = gst_message_new_step_start(src->gobj(),
+  GstMessage* message = gst_message_new_step_start(Glib::unwrap(src),
     active, static_cast<GstFormat>(format), amount, rate, flush, intermediate);
   return Gst::Message::wrap(message, false);
 }
@@ -822,8 +831,8 @@ Glib::RefPtr<Gst::Message>
   Gst::StructureChangeType type, const Glib::RefPtr<Gst::Element>& owner,
   bool busy)
 {
-  GstMessage* message = gst_message_new_structure_change(src->gobj(),
-    static_cast<GstStructureChangeType>(type), owner->gobj(), busy);
+  GstMessage* message = gst_message_new_structure_change(Glib::unwrap(src),
+    static_cast<GstStructureChangeType>(type), Glib::unwrap(owner), busy);
   return Gst::Message::wrap(message, false);
 }
 
@@ -870,7 +879,7 @@ Glib::RefPtr<Gst::Message>
   MessageRequestState::create(const Glib::RefPtr<Gst::Object>& src,
   Gst::State state)
 {
-  GstMessage* message = gst_message_new_request_state(src->gobj(),
+  GstMessage* message = gst_message_new_request_state(Glib::unwrap(src),
     static_cast<GstState>(state));
   return Gst::Message::wrap(message, false);
 }
@@ -891,8 +900,8 @@ Glib::RefPtr<Gst::Message>
   MessageStreamStatus::create(const Glib::RefPtr<Gst::Object>& src,
   Gst::StreamStatusType type, const Glib::RefPtr<Gst::Element>& owner)
 {
-  GstMessage* message = gst_message_new_stream_status(src->gobj(),
-    static_cast<GstStreamStatusType>(type), owner->gobj());
+  GstMessage* message = gst_message_new_stream_status(Glib::unwrap(src),
+    static_cast<GstStreamStatusType>(type), Glib::unwrap(owner));
   return Gst::Message::wrap(message, false);
 }
 
diff --git a/gstreamer/src/mixer.ccg b/gstreamer/src/mixer.ccg
index 9ac5945..b974a34 100644
--- a/gstreamer/src/mixer.ccg
+++ b/gstreamer/src/mixer.ccg
@@ -199,7 +199,7 @@ Glib::ArrayHandle<int> Mixer::get_volume(const Glib::RefPtr<const Gst::MixerTrac
   int* volumes = new int[num_channels];
 
   gst_mixer_get_volume(const_cast<GstMixer*>(gobj()),
-    const_cast<GstMixerTrack*>(track->gobj()), volumes);
+    const_cast<GstMixerTrack*>(Glib::unwrap(track)), volumes);
 
   return Glib::ArrayHandle<int>::ArrayHandle(volumes, num_channels,
     Glib::OWNERSHIP_DEEP);
@@ -264,7 +264,7 @@ g_type_interface_peek(G_OBJECT_GET_CLASS(gobject_), CppObjectType::get_type()) /
     const guint32 num_channels = track->get_num_channels();
     int* volumes = new int[num_channels];
     (*base->get_volume)(const_cast<GstMixer*>(gobj()),
-      const_cast<GstMixerTrack*>((track)->gobj()), volumes);
+      const_cast<GstMixerTrack*>(Glib::unwrap(track)), volumes);
     return Glib::ArrayHandle<int>(volumes, num_channels, Glib::OWNERSHIP_DEEP);
   }
 
diff --git a/gstreamer/src/object.hg b/gstreamer/src/object.hg
index 7b951b7..bd46816 100644
--- a/gstreamer/src/object.hg
+++ b/gstreamer/src/object.hg
@@ -113,7 +113,7 @@ public:
   _WRAP_SIGNAL(void object_saved(GstXmlNodePtr xml_node), "object-saved")  
 
 #m4 _CONVERSION(`GstObject*', `const Glib::RefPtr<Object>&', `Glib::wrap($3, true)')
-#m4 _CONVERSION(`const Glib::RefPtr<Object>&', `GstObject*', `($3)->gobj()')
+#m4 _CONVERSION(`const Glib::RefPtr<Object>&', `GstObject*', `Glib::unwrap($3)')
 
   /** Emitted when the parent of an object is set.
    */
diff --git a/gstreamer/src/xml.ccg b/gstreamer/src/xml.ccg
index 60260cb..6dfea85 100644
--- a/gstreamer/src/xml.ccg
+++ b/gstreamer/src/xml.ccg
@@ -28,7 +28,7 @@ namespace Gst
 
 xmlDocPtr XML::write(const Glib::RefPtr<const Gst::Element>& element)
 {
-  return gst_xml_write(const_cast<GstElement*>(element->gobj()));
+  return gst_xml_write(const_cast<GstElement*>(Glib::unwrap(element)));
 }
 
 void XML::write_to_stream(const Glib::RefPtr<const Gst::Element>& element, std::ostream& out)
diff --git a/tools/m4/convert_gst.m4 b/tools/m4/convert_gst.m4
index 20b9585..d22c03f 100644
--- a/tools/m4/convert_gst.m4
+++ b/tools/m4/convert_gst.m4
@@ -47,58 +47,58 @@ dnl ############### gstreamermm Class Conversions ######################
 
 dnl Buffer
 _CONVERSION(`GstBuffer*',`Glib::RefPtr<Gst::Buffer>',`Gst::wrap($3)')
-_CONVERSION(`const Glib::RefPtr<Gst::Buffer>&',`GstBuffer*', `$3->gobj()')
-_CONVERSION(`const Glib::RefPtr<const Gst::Buffer>&',`GstBuffer*', `const_cast<GstBuffer*>($3->gobj())')
-_CONVERSION(`const Glib::RefPtr<Gst::Buffer>&',`const GstBuffer*', `$3->gobj()')
-_CONVERSION(`Glib::RefPtr<Gst::Buffer>',`GstBuffer*', `$3->gobj()')
+_CONVERSION(`const Glib::RefPtr<Gst::Buffer>&',`GstBuffer*', `Gst::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<const Gst::Buffer>&',`GstBuffer*', `const_cast<GstBuffer*>(Gst::unwrap($3))')
+_CONVERSION(`const Glib::RefPtr<Gst::Buffer>&',`const GstBuffer*', `Gst::unwrap($3)')
+_CONVERSION(`Glib::RefPtr<Gst::Buffer>',`GstBuffer*', `Gst::unwrap($3)')
 
 dnl Bus
-_CONVERSION(`const Glib::RefPtr<Gst::Bus>&',`GstBus*', `$3->gobj()')
+_CONVERSION(`const Glib::RefPtr<Gst::Bus>&',`GstBus*', `Glib::unwrap($3)')
 _CONVERSION(`GstBus*',`Glib::RefPtr<Gst::Bus>',`Glib::wrap($3)')
 
 dnl Caps
 _CONVERSION(`GstCaps*',`Glib::RefPtr<Gst::Caps>',`Glib::wrap($3)')
-_CONVERSION(`Glib::RefPtr<Gst::Caps>',`GstCaps*',`$3->gobj()')
-_CONVERSION(`const Glib::RefPtr<Gst::Caps>&',`GstCaps*', `$3->gobj()')
-_CONVERSION(`const Glib::RefPtr<const Gst::Caps>&',`GstCaps*', `const_cast<$2>($3->gobj())')
-_CONVERSION(`const Glib::RefPtr<Gst::Caps>&',`const GstCaps*', `$3->gobj()')
-_CONVERSION(`const Glib::RefPtr<const Gst::Caps>&',`const GstCaps*', `$3->gobj()')
+_CONVERSION(`Glib::RefPtr<Gst::Caps>',`GstCaps*',`Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<Gst::Caps>&',`GstCaps*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<const Gst::Caps>&',`GstCaps*', `const_cast<$2>(Glib::unwrap($3))')
+_CONVERSION(`const Glib::RefPtr<Gst::Caps>&',`const GstCaps*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<const Gst::Caps>&',`const GstCaps*', `Glib::unwrap($3)')
 
 dnl Clock
 _CONVERSION(`GstClock*',`Glib::RefPtr<Gst::Clock>',`Glib::wrap($3)')
 _CONVERSION(`GstClock*',`Glib::RefPtr<const Gst::Clock>',`Glib::wrap($3)')
-_CONVERSION(`const Glib::RefPtr<Gst::Clock>&',`GstClock*', `$3->gobj()')
+_CONVERSION(`const Glib::RefPtr<Gst::Clock>&',`GstClock*', `Glib::unwrap($3)')
 _CONVERSION(`const Clock&',`GstClock*',`((GstClock*)(&$3))')
-_CONVERSION(`Glib::RefPtr<Gst::Clock>',`GstClock*', `$3->gobj()')
+_CONVERSION(`Glib::RefPtr<Gst::Clock>',`GstClock*', `Glib::unwrap($3)')
 
 dnl ClockID
 _CONVERSION(`GstClockID',`Glib::RefPtr<Gst::ClockID>',`Glib::wrap((GstClockEntry*)($3))')
-_CONVERSION(`const Glib::RefPtr<Gst::ClockID>&',`GstClockEntry*',`$3->gobj()')
+_CONVERSION(`const Glib::RefPtr<Gst::ClockID>&',`GstClockEntry*',`Glib::unwrap($3)')
 
 dnl ColorBalanceChannel
-_CONVERSION(`const Glib::RefPtr<ColorBalanceChannel>&',`GstColorBalanceChannel*',`$3->gobj()')
-_CONVERSION(`const Glib::RefPtr<const ColorBalanceChannel>&',`GstColorBalanceChannel*',`const_cast<GstColorBalanceChannel*>($3->gobj())')
+_CONVERSION(`const Glib::RefPtr<ColorBalanceChannel>&',`GstColorBalanceChannel*',`Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<const ColorBalanceChannel>&',`GstColorBalanceChannel*',`const_cast<GstColorBalanceChannel*>(Glib::unwrap($3))')
 
 dnl Element
-_CONVERSION(`Glib::RefPtr<Gst::Element>',`GstElement*', `$3->gobj()')
+_CONVERSION(`Glib::RefPtr<Gst::Element>',`GstElement*', `Glib::unwrap($3)')
 _CONVERSION(`GstElement*',`Glib::RefPtr<Gst::Element>',`Glib::wrap($3)')
 _CONVERSION(`GstElement*',`Glib::RefPtr<const Gst::Element>',`Glib::wrap($3)')
-_CONVERSION(`const Glib::RefPtr<Gst::Element>&',`GstElement*', `$3->gobj()')
-_CONVERSION(`const Glib::RefPtr<const Gst::Element>&',`GstElement*', `const_cast<GstElement*>($3->gobj())')
+_CONVERSION(`const Glib::RefPtr<Gst::Element>&',`GstElement*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<const Gst::Element>&',`GstElement*', `const_cast<GstElement*>(Glib::unwrap($3))')
 _CONVERSION(`State&',`GstState*',`(GstState*)(&$3)')
 
 dnl ElementFactory
 _CONVERSION(`GstElementFactory*',`Glib::RefPtr<Gst::ElementFactory>',`Glib::wrap($3)')
 _CONVERSION(`GstElementFactory*',`Glib::RefPtr<const Gst::ElementFactory>',`Glib::wrap($3)')
-_CONVERSION(`const Glib::RefPtr<Gst::ElementFactory>&',`GstElementFactory*', `$3->gobj()')
+_CONVERSION(`const Glib::RefPtr<Gst::ElementFactory>&',`GstElementFactory*', `Glib::unwrap($3)')
 
 dnl Event
 _CONVERSION(`const Glib::RefPtr<Gst::Event>&',`GstEvent*', `Gst::unwrap($3)')
 
 dnl Index
 _CONVERSION(`GstIndex*',`Glib::RefPtr<Gst::Index>',`Glib::wrap($3)')
-_CONVERSION(`const Glib::RefPtr<Gst::Index>&',`GstIndex*',`$3->gobj()')
-_CONVERSION(`Glib::RefPtr<Gst::Index>',`GstIndex*',`$3->gobj()')
+_CONVERSION(`const Glib::RefPtr<Gst::Index>&',`GstIndex*',`Glib::unwrap($3)')
+_CONVERSION(`Glib::RefPtr<Gst::Index>',`GstIndex*',`Glib::unwrap($3)')
 
 dnl IndexFactory
 _CONVERSION(`GstIndexFactory*',`Glib::RefPtr<Gst::IndexFactory>',`Glib::wrap($3)')
@@ -113,42 +113,42 @@ _CONVERSION(`GstIterator*',`Gst::IteratorBasic<const Gst::QueryTypeDefinition>',
 dnl Message
 _CONVERSION(`GstMessage*',`Glib::RefPtr<Gst::Message>',`Gst::Message::wrap($3)')
 _CONVERSION(`GstMessage*',`Glib::RefPtr<const Gst::Message>',`Gst::Message::wrap($3)')
-_CONVERSION(`const Glib::RefPtr<Gst::Message>&',`GstMessage*', `$3->gobj()')
+_CONVERSION(`const Glib::RefPtr<Gst::Message>&',`GstMessage*', `Gst::unwrap($3)')
 
 dnl MiniObject
-_CONVERSION(`const Glib::RefPtr<Gst::MiniObject>&',`GstMiniObject*',`$3->gobj()')
+_CONVERSION(`const Glib::RefPtr<Gst::MiniObject>&',`GstMiniObject*',`Gst::unwrap($3)')
 
 dnl Mixer
-_CONVERSION(`const Glib::RefPtr<Gst::MixerOptions>&',`GstMixerOptions*', `$3->gobj()')
-_CONVERSION(`const Glib::RefPtr<const Gst::MixerOptions>&',`GstMixerOptions*', `const_cast<$2>($3->gobj())')
-_CONVERSION(`const Glib::RefPtr<Gst::MixerTrack>&',`GstMixerTrack*', `$3->gobj()')
+_CONVERSION(`const Glib::RefPtr<Gst::MixerOptions>&',`GstMixerOptions*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<const Gst::MixerOptions>&',`GstMixerOptions*', `const_cast<$2>(Glib::unwrap($3))')
+_CONVERSION(`const Glib::RefPtr<Gst::MixerTrack>&',`GstMixerTrack*', `Glib::unwrap($3)')
 
 dnl Gst::Object
 _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*',`$3->gobj()')
-_CONVERSION(`Glib::RefPtr<Gst::Object>',`GstObject*',`$3->gobj()')
-_CONVERSION(`const Glib::RefPtr<const Gst::Object>&',`GstObject*',`const_cast<GstObject*>($3->gobj())')
-_CONVERSION(`const Glib::RefPtr<Object>&', `GstObject*', `$3->gobj()')
+_CONVERSION(`const Glib::RefPtr<Gst::Object>&',`GstObject*',`Glib::unwrap($3)')
+_CONVERSION(`Glib::RefPtr<Gst::Object>',`GstObject*',`Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<const Gst::Object>&',`GstObject*',`const_cast<GstObject*>(Glib::unwrap($3))')
+_CONVERSION(`const Glib::RefPtr<Object>&', `GstObject*', `Glib::unwrap($3)')
 
 dnl Pad
 _CONVERSION(`GstPad*',`Glib::RefPtr<Gst::Pad>',`Glib::wrap($3)')
 _CONVERSION(`GstPad*',`Glib::RefPtr<const Gst::Pad>',`Glib::wrap($3)')
-_CONVERSION(`Glib::RefPtr<Gst::Pad>',`GstPad*', `$3->gobj()')
-_CONVERSION(`const Glib::RefPtr<Gst::Pad>&',`GstPad*', `$3->gobj()')
-_CONVERSION(`const Glib::RefPtr<const Gst::Pad>&',`GstPad*',`const_cast<GstPad*>($3->gobj())')
+_CONVERSION(`Glib::RefPtr<Gst::Pad>',`GstPad*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<Gst::Pad>&',`GstPad*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<const Gst::Pad>&',`GstPad*',`const_cast<GstPad*>(Glib::unwrap($3))')
 
 dnl PadTemplate
 _CONVERSION(`GstPadTemplate*',`Glib::RefPtr<Gst::PadTemplate>', `Glib::wrap($3)')
-_CONVERSION(`const Glib::RefPtr<const Gst::PadTemplate>&',`GstPadTemplate*',`const_cast<GstPadTemplate*>($3->gobj())')
+_CONVERSION(`const Glib::RefPtr<const Gst::PadTemplate>&',`GstPadTemplate*',`const_cast<GstPadTemplate*>(Glib::unwrap($3))')
 
 dnl Plugin
-_CONVERSION(`const Glib::RefPtr<Gst::Plugin>&',`GstPlugin*',`$3->gobj()')
+_CONVERSION(`const Glib::RefPtr<Gst::Plugin>&',`GstPlugin*',`Glib::unwrap($3)')
 _CONVERSION(`GstPlugin*',`Glib::RefPtr<Gst::Plugin>',`Glib::wrap($3)')
 
 dnl PluginFeature
 _CONVERSION(`GstPluginFeature*',`Glib::RefPtr<Gst::PluginFeature>',`Glib::wrap($3)')
-_CONVERSION(`const Glib::RefPtr<Gst::PluginFeature>&',`GstPluginFeature*',`$3->gobj()')
+_CONVERSION(`const Glib::RefPtr<Gst::PluginFeature>&',`GstPluginFeature*',`Glib::unwrap($3)')
 
 dnl Query
 _CONVERSION(`const Glib::RefPtr<Gst::Query>&',`GstQuery*', `Gst::unwrap($3)')
@@ -182,19 +182,19 @@ dnl ############## gstreamermm Interface Conversions ######################
 dnl TunerChannel
 _CONVERSION(`GstTunerChannel*',`Glib::RefPtr<Gst::TunerChannel>', `Glib::wrap($3)')
 _CONVERSION(`GstTunerChannel*',`Glib::RefPtr<const Gst::TunerChannel>', `Glib::wrap($3)')
-_CONVERSION(`const Glib::RefPtr<Gst::TunerChannel>&',`GstTunerChannel*', `$3->gobj()')
-_CONVERSION(`const Glib::RefPtr<const Gst::TunerChannel>&',`GstTunerChannel*', `const_cast<GstTunerChannel*>($3->gobj())')
-_CONVERSION(`Glib::RefPtr<Gst::TunerChannel>', `GstTunerChannel*', `$3->gobj()')
+_CONVERSION(`const Glib::RefPtr<Gst::TunerChannel>&',`GstTunerChannel*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<const Gst::TunerChannel>&',`GstTunerChannel*', `const_cast<GstTunerChannel*>(Glib::unwrap($3))')
+_CONVERSION(`Glib::RefPtr<Gst::TunerChannel>', `GstTunerChannel*', `Glib::unwrap($3)')
 
 dnl TunerNorm
 _CONVERSION(`GstTunerNorm*',`Glib::RefPtr<Gst::TunerNorm>', `Glib::wrap($3)')
 _CONVERSION(`GstTunerNorm*',`Glib::RefPtr<const Gst::TunerNorm>', `Glib::wrap($3)')
-_CONVERSION(`const Glib::RefPtr<Gst::TunerNorm>&',`GstTunerNorm*', `$3->gobj()')
-_CONVERSION(`const Glib::RefPtr<const Gst::TunerNorm>&',`GstTunerNorm*', `const_cast<GstTunerNorm*>($3->gobj())')
-_CONVERSION(`Glib::RefPtr<Gst::TunerNorm>', `GstTunerNorm*', `$3->gobj()')
+_CONVERSION(`const Glib::RefPtr<Gst::TunerNorm>&',`GstTunerNorm*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<const Gst::TunerNorm>&',`GstTunerNorm*', `const_cast<GstTunerNorm*>(Glib::unwrap($3))')
+_CONVERSION(`Glib::RefPtr<Gst::TunerNorm>', `GstTunerNorm*', `Glib::unwrap($3)')
 
 dnl URIHandler
-_CONVERSION(`const Glib::RefPtr<Gst::URIHandler>&',`GstURIHandler*',`$3->gobj()')
+_CONVERSION(`const Glib::RefPtr<Gst::URIHandler>&',`GstURIHandler*',`Glib::unwrap($3)')
 
 dnl ##################General Conversions############################
 



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