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



Author: jaalburqu
Date: Wed Jan 21 03:20:15 2009
New Revision: 2002
URL: http://svn.gnome.org/viewvc/gnomemm?rev=2002&view=rev

Log:
2009-01-20  Josà Alburquerque  <jaalburqu svn gnome org>

	* gstreamer/src/message.ccg:
	* gstreamer/src/message.hg:
	* gstreamer/src/mixer.ccg:
	* gstreamer/src/mixer.hg:
	* gstreamer/src/mixeroptions.hg:
	* tools/m4/convert_gst.m4: const corrections in [j-p]*.{hg,ccg} source
	files.
	* gstreamer/src/pad.ccg:
	* gstreamer/src/pad.hg: Added iterate_internal_links*() methods.
	* gstreamer/src/plugin.hg:
	* gstreamer/src/pluginfeature.hg: Unwrapped (removed)
	gst_plugin*_list_free() methods because Glib::ListHandle<> already
	takes care of freeing lists (the lists are used in Gst::Registry).

	* gstreamer/src/registry.hg: w/s.

Modified:
   gstreamermm/trunk/ChangeLog
   gstreamermm/trunk/gstreamer/src/message.ccg
   gstreamermm/trunk/gstreamer/src/message.hg
   gstreamermm/trunk/gstreamer/src/mixer.ccg
   gstreamermm/trunk/gstreamer/src/mixer.hg
   gstreamermm/trunk/gstreamer/src/mixeroptions.hg
   gstreamermm/trunk/gstreamer/src/pad.ccg
   gstreamermm/trunk/gstreamer/src/pad.hg
   gstreamermm/trunk/gstreamer/src/plugin.hg
   gstreamermm/trunk/gstreamer/src/pluginfeature.hg
   gstreamermm/trunk/gstreamer/src/registry.hg
   gstreamermm/trunk/tools/m4/convert_gst.m4

Modified: gstreamermm/trunk/gstreamer/src/message.ccg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/message.ccg	(original)
+++ gstreamermm/trunk/gstreamer/src/message.ccg	Wed Jan 21 03:20:15 2009
@@ -74,11 +74,11 @@
   return Gst::Message::wrap(message, false);
 }
 
-void MessageError::parse(Glib::Error& error, std::string& debug)
+void MessageError::parse(Glib::Error& error, std::string& debug) const
 {
   GError* c_error = 0;
   gchar* c_debug = 0;
-  gst_message_parse_error(gobj(), &c_error, &c_debug);
+  gst_message_parse_error(const_cast<GstMessage*>(gobj()), &c_error, &c_debug);
 
   debug = c_debug;
   if(c_debug)
@@ -87,18 +87,18 @@
   error = Glib::Error(c_error);
 }
 
-Glib::Error MessageError::parse()
+Glib::Error MessageError::parse() const
 {
   GError* c_error = 0;
-  gst_message_parse_error(gobj(), &c_error, NULL);
+  gst_message_parse_error(const_cast<GstMessage*>(gobj()), &c_error, NULL);
 
   return Glib::Error(c_error);
 }
 
-std::string MessageError::parse_debug()
+std::string MessageError::parse_debug() const
 {
   gchar* c_debug = 0;
-  gst_message_parse_error(gobj(), NULL, &c_debug);
+  gst_message_parse_error(const_cast<GstMessage*>(gobj()), NULL, &c_debug);
 
   std::string result = c_debug;
   if (c_debug)
@@ -118,11 +118,11 @@
   return Gst::Message::wrap(message, false);
 }
 
-void MessageWarning::parse(Glib::Error& error, std::string& debug)
+void MessageWarning::parse(Glib::Error& error, std::string& debug) const
 {
   GError* c_error = 0;
   gchar* c_debug = 0;
-  gst_message_parse_warning(gobj(), &c_error, &c_debug);
+  gst_message_parse_warning(const_cast<GstMessage*>(gobj()), &c_error, &c_debug);
 
   debug = c_debug;
   if(c_debug)
@@ -131,18 +131,18 @@
   error = Glib::Error(c_error);
 }
 
-Glib::Error MessageWarning::parse()
+Glib::Error MessageWarning::parse() const
 {
   GError* c_error = 0;
-  gst_message_parse_warning(gobj(), &c_error, NULL);
+  gst_message_parse_warning(const_cast<GstMessage*>(gobj()), &c_error, NULL);
 
   return Glib::Error(c_error);
 }
 
-std::string MessageWarning::parse_debug()
+std::string MessageWarning::parse_debug() const
 {
   gchar* c_debug = 0;
-  gst_message_parse_warning(gobj(), NULL, &c_debug);
+  gst_message_parse_warning(const_cast<GstMessage*>(gobj()), NULL, &c_debug);
 
   std::string result = c_debug;
   if (c_debug)
@@ -163,11 +163,11 @@
 }
 
 
-void MessageInfo::parse(Glib::Error& error, std::string& debug)
+void MessageInfo::parse(Glib::Error& error, std::string& debug) const
 {
   GError* c_error = 0;
   gchar* c_debug = 0;
-  gst_message_parse_info(gobj(), &c_error, &c_debug);
+  gst_message_parse_info(const_cast<GstMessage*>(gobj()), &c_error, &c_debug);
 
   debug = c_debug;
   if(c_debug)
@@ -176,18 +176,18 @@
   error = Glib::Error(c_error);
 }
 
-Glib::Error MessageInfo::parse()
+Glib::Error MessageInfo::parse() const
 {
   GError* c_error = 0;
-  gst_message_parse_info(gobj(), &c_error, NULL);
+  gst_message_parse_info(const_cast<GstMessage*>(gobj()), &c_error, NULL);
 
   return Glib::Error(c_error);
 }
 
-std::string MessageInfo::parse_debug()
+std::string MessageInfo::parse_debug() const
 {
   gchar* c_debug = 0;
-  gst_message_parse_info(gobj(), NULL, &c_debug);
+  gst_message_parse_info(const_cast<GstMessage*>(gobj()), NULL, &c_debug);
 
   std::string result = c_debug;
   if (c_debug)
@@ -209,10 +209,10 @@
   return Gst::Message::wrap(message, false);
 }
 
-Gst::TagList MessageTag::parse()
+Gst::TagList MessageTag::parse() const
 {
   GstTagList* gst_tag_list = gst_tag_list_new();
-  gst_message_parse_tag(gobj(), &gst_tag_list);
+  gst_message_parse_tag(const_cast<GstMessage*>(gobj()), &gst_tag_list);
   return Gst::TagList(gst_tag_list);
 }
 
@@ -227,10 +227,10 @@
   return Gst::Message::wrap(message, false);
 }
 
-int MessageBuffering::parse()
+int MessageBuffering::parse() const
 {
   int percent;
-  gst_message_parse_buffering(gobj(), &percent);
+  gst_message_parse_buffering(const_cast<GstMessage*>(gobj()), &percent);
   return percent;
 }
 
@@ -242,42 +242,45 @@
 }
 
 void MessageBuffering::parse_stats(BufferingMode& mode, int& avg_in,
-int& avg_out, gint64& buffering_left)
+int& avg_out, gint64& buffering_left) const
 {
-  gst_message_parse_buffering_stats(gobj(), (GstBufferingMode*)(&mode),
-    &avg_in, &avg_out, &buffering_left);
+  gst_message_parse_buffering_stats(const_cast<GstMessage*>(gobj()),
+    (GstBufferingMode*)(&mode), &avg_in, &avg_out, &buffering_left);
 }
 
-BufferingMode MessageBuffering::parse_stats_buffering_mode()
+BufferingMode MessageBuffering::parse_stats_buffering_mode() const
 {
   GstBufferingMode mode;
 
-  gst_message_parse_buffering_stats(gobj(), (GstBufferingMode*)(&mode),
-    NULL, NULL, NULL);
+  gst_message_parse_buffering_stats(const_cast<GstMessage*>(gobj()),
+    (GstBufferingMode*)(&mode), NULL, NULL, NULL);
   return (BufferingMode)(mode);
 }
 
-int MessageBuffering::parse_stats_avg_in()
+int MessageBuffering::parse_stats_avg_in() const
 {
   int avg_in;
 
-  gst_message_parse_buffering_stats(gobj(), NULL, &avg_in, NULL, NULL);
+  gst_message_parse_buffering_stats(const_cast<GstMessage*>(gobj()), NULL,
+    &avg_in, NULL, NULL);
   return avg_in;
 }
 
-int MessageBuffering::parse_stats_avg_out()
+int MessageBuffering::parse_stats_avg_out() const
 {
   int avg_out;
 
-  gst_message_parse_buffering_stats(gobj(), NULL, NULL, &avg_out, NULL);
+  gst_message_parse_buffering_stats(const_cast<GstMessage*>(gobj()), NULL,
+    NULL, &avg_out, NULL);
   return avg_out;
 }
 
-gint64 MessageBuffering::parse_stats_buffering_left()
+gint64 MessageBuffering::parse_stats_buffering_left() const
 {
   gint64 buffering_left;
 
-  gst_message_parse_buffering_stats(gobj(), NULL, NULL, NULL, &buffering_left);
+  gst_message_parse_buffering_stats(const_cast<GstMessage*>(gobj()), NULL,
+    NULL, NULL, &buffering_left);
   return buffering_left;
 }
 
@@ -293,30 +296,35 @@
 }
 
 void MessageStateChanged::parse(State& oldstate, State& newstate,
-State& pending)
+State& pending) const
 {
-  gst_message_parse_state_changed(gobj(), (GstState*)(&oldstate),
-    (GstState*)(&newstate), (GstState*)(&pending));
+  gst_message_parse_state_changed(const_cast<GstMessage*>(gobj()),
+    (GstState*)(&oldstate), (GstState*)(&newstate), (GstState*)(&pending));
 }
 
-State MessageStateChanged::parse()
+State MessageStateChanged::parse() const
 {
   GstState* new_state;
-  gst_message_parse_state_changed(gobj(), NULL, new_state, NULL);
+
+  gst_message_parse_state_changed(const_cast<GstMessage*>(gobj()), NULL,
+    new_state, NULL);
   return (State)(*new_state);
 }
 
-State MessageStateChanged::parse_old()
+State MessageStateChanged::parse_old() const
 {
   GstState* old_state;
-  gst_message_parse_state_changed(gobj(), old_state, NULL, NULL);
+
+  gst_message_parse_state_changed(const_cast<GstMessage*>(gobj()), old_state,
+    NULL, NULL);
   return (State)(*old_state);
 }
 
-State MessageStateChanged::parse_pending()
+State MessageStateChanged::parse_pending() const
 {
   GstState* pending_state;
-  gst_message_parse_state_changed(gobj(), NULL, NULL, pending_state);
+  gst_message_parse_state_changed(const_cast<GstMessage*>(gobj()), NULL,
+    NULL, pending_state);
   return (State)(*pending_state);
 }
 
@@ -342,11 +350,12 @@
   return Gst::Message::wrap(message, false);
 }
 
-void MessageClockProvide::parse(Glib::RefPtr<Gst::Clock>& clock, bool& ready)
+void MessageClockProvide::parse(Glib::RefPtr<Gst::Clock>& clock, bool& ready) const
 {
   GstClock* cclock = 0;
   gboolean ready_ = false;
-  gst_message_parse_clock_provide(gobj(), &cclock, &ready_);
+  gst_message_parse_clock_provide(const_cast<GstMessage*>(gobj()), &cclock,
+    &ready_);
   clock = Glib::wrap(cclock);
   ready = ready_;
 }
@@ -358,10 +367,16 @@
   return Glib::wrap(cclock);
 }
 
-bool MessageClockProvide::parse_ready()
+Glib::RefPtr<const Gst::Clock> MessageClockProvide::parse() const
+{
+  return parse();
+}
+
+bool MessageClockProvide::parse_ready() const
 {
   gboolean ready = false;
-  gst_message_parse_clock_provide(gobj(), NULL, &ready);
+  gst_message_parse_clock_provide(const_cast<GstMessage*>(gobj()), NULL,
+    &ready);
   return ready;
 }
 
@@ -383,6 +398,11 @@
   return Glib::wrap(cclock, false);
 }
 
+Glib::RefPtr<const Gst::Clock> MessageClockLost::parse() const
+{
+  return parse();
+}
+
 MessageNewClock::MessageNewClock(GstMessage* castitem)
 : Message(castitem)
 {
@@ -401,6 +421,11 @@
   return Glib::wrap(cclock, false);
 }
 
+Glib::RefPtr<const Gst::Clock> MessageNewClock::parse() const
+{
+  return parse();
+}
+
 MessageApplication::MessageApplication(GstMessage* castitem)
 : Message(castitem)
 {
@@ -468,22 +493,25 @@
   return Gst::Message::wrap(message, false);
 }
 
-void MessageSegmentStart::parse(Format& format, gint64& position)
+void MessageSegmentStart::parse(Format& format, gint64& position) const
 {
-  gst_message_parse_segment_start(gobj(), (GstFormat*)(&format), &position);
+  gst_message_parse_segment_start(const_cast<GstMessage*>(gobj()),
+    (GstFormat*)(&format), &position);
 }
 
-gint64 MessageSegmentStart::parse()
+gint64 MessageSegmentStart::parse() const
 {
   gint64 position;
-  gst_message_parse_segment_start(gobj(), NULL, &position);
+  gst_message_parse_segment_start(const_cast<GstMessage*>(gobj()), NULL,
+    &position);
   return position;
 }
 
-Format MessageSegmentStart::parse_format()
+Format MessageSegmentStart::parse_format() const
 {
   Format format;
-  gst_message_parse_segment_start(gobj(), (GstFormat*)(&format), NULL);
+  gst_message_parse_segment_start(const_cast<GstMessage*>(gobj()),
+    (GstFormat*)(&format), NULL);
   return format;
 }
 
@@ -498,22 +526,25 @@
   return Gst::Message::wrap(message, false);
 }
 
-void MessageSegmentDone::parse(Format& format, gint64& position)
+void MessageSegmentDone::parse(Format& format, gint64& position) const
 {
-  gst_message_parse_segment_done(gobj(), (GstFormat*)(&format), &position);
+  gst_message_parse_segment_done(const_cast<GstMessage*>(gobj()),
+    (GstFormat*)(&format), &position);
 }
 
-gint64 MessageSegmentDone::parse()
+gint64 MessageSegmentDone::parse() const
 {
   gint64 position;
-  gst_message_parse_segment_done(gobj(), NULL, &position);
+  gst_message_parse_segment_done(const_cast<GstMessage*>(gobj()), NULL,
+    &position);
   return position;
 }
 
-Format MessageSegmentDone::parse_format()
+Format MessageSegmentDone::parse_format() const
 {
   Format format;
-  gst_message_parse_segment_done(gobj(), (GstFormat*)(&format), NULL);
+  gst_message_parse_segment_done(const_cast<GstMessage*>(gobj()),
+    (GstFormat*)(&format), NULL);
   return format;
 }
 
@@ -528,22 +559,24 @@
   return Gst::Message::wrap(message, false);
 }
 
-void MessageDuration::parse(Format& format, gint64& position)
+void MessageDuration::parse(Format& format, gint64& position) const
 {
-  gst_message_parse_duration(gobj(), (GstFormat*)(&format), &position);
+  gst_message_parse_duration(const_cast<GstMessage*>(gobj()),
+    (GstFormat*)(&format), &position);
 }
 
-gint64 MessageDuration::parse()
+gint64 MessageDuration::parse() const
 {
   gint64 position;
-  gst_message_parse_duration(gobj(), NULL, &position);
+  gst_message_parse_duration(const_cast<GstMessage*>(gobj()), NULL, &position);
   return position;
 }
 
-Format MessageDuration::parse_format()
+Format MessageDuration::parse_format() const
 {
   Format format;
-  gst_message_parse_duration(gobj(), (GstFormat*)(&format), NULL);
+  gst_message_parse_duration(const_cast<GstMessage*>(gobj()),
+    (GstFormat*)(&format), NULL);
   return format;
 }
 
@@ -569,10 +602,11 @@
   return Gst::Message::wrap(message, false);
 }
 
-bool MessageAsyncStart::parse()
+bool MessageAsyncStart::parse() const
 {
   gboolean new_base_time;
-  gst_message_parse_async_start(gobj(), &new_base_time);
+  gst_message_parse_async_start(const_cast<GstMessage*>(gobj()),
+    &new_base_time);
   return new_base_time;
 }
 

Modified: gstreamermm/trunk/gstreamer/src/message.hg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/message.hg	(original)
+++ gstreamermm/trunk/gstreamer/src/message.hg	Wed Jan 21 03:20:15 2009
@@ -158,7 +158,7 @@
    * @param error Location for the Glib::Error.
    * @param debug Location for the debug message.
    */
-  void parse(Glib::Error& error, std::string& debug);
+  void parse(Glib::Error& error, std::string& debug) const;
   _IGNORE(gst_message_parse_error)
 
   /** Extracts and returns the Glib::Error from the Gst::MessageError.
@@ -167,7 +167,7 @@
    *
    * @return The Glib::Error.
    */
-  Glib::Error parse();
+  Glib::Error parse() const;
 
   /** Extracts and returns the debug message from the Gst::MessageError.
    *
@@ -175,7 +175,7 @@
    *
    * @return The debug message.
    */
-  std::string parse_debug();
+  std::string parse_debug() const;
 };
 
 /** A warning message.
@@ -203,7 +203,7 @@
    * @param error Location for the Glib::Error.
    * @param debug Location for the debug message.
    */
-  void parse(Glib::Error& error, std::string& debug);
+  void parse(Glib::Error& error, std::string& debug) const;
   _IGNORE(gst_message_parse_warning)
 
   /** Extracts and returns the Glib::Error from the Gst::MessageWarning.
@@ -212,7 +212,7 @@
    *
    * @return The Glib::Error.
    */
-  Glib::Error parse();
+  Glib::Error parse() const;
 
   /** Extracts and returns the debug message from the Gst::MessageWarning.
    *
@@ -220,7 +220,7 @@
    *
    * @return The debug message.
    */
-  std::string parse_debug();
+  std::string parse_debug() const;
 };
 
 /** An informational message.
@@ -249,7 +249,7 @@
    * @param error Location for the Glib::Error.
    * @param debug Location for the debug message.
    */
-  void parse(Glib::Error& error, std::string& debug);
+  void parse(Glib::Error& error, std::string& debug) const;
   _IGNORE(gst_message_parse_info)
 
   /** Extracts and returns the Glib::Error from the Gst::MessageInfo.
@@ -258,7 +258,7 @@
    *
    * @return The Glib::Error.
    */
-  Glib::Error parse();
+  Glib::Error parse() const;
 
   /** Extracts and returns the debug message from the Gst::MessageInfo.
    *
@@ -266,7 +266,7 @@
    *
    * @return The debug message.
    */
-  std::string parse_debug();
+  std::string parse_debug() const;
 };
 
 /** A tag message.
@@ -292,7 +292,7 @@
    *
    * @return A copy of the Gst::TagList.
    */
-  Gst::TagList parse();
+  Gst::TagList parse() const;
   _IGNORE(gst_message_parse_tag)
 };
 
@@ -328,7 +328,7 @@
    * Gst::MessageBuffering.
    * @return The percent as an integer.
    */
-  int parse();
+  int parse() const;
   _IGNORE(gst_message_parse_buffering)
 
   /** Configures the buffering stats values in message.
@@ -352,33 +352,33 @@
    *
    * Since 0.10.20.
    */
-  void parse_stats(BufferingMode& mode, int& avg_in, int& avg_out, gint64& buffering_left);
+  void parse_stats(BufferingMode& mode, int& avg_in, int& avg_out, gint64& buffering_left) const;
   _IGNORE(gst_message_parse_buffering_stats)
 
   /** Extracts and returns the buffering mode from message.
    *
    * @return The buffering mode.
    */
-  BufferingMode parse_stats_buffering_mode();
+  BufferingMode parse_stats_buffering_mode() const;
 
   /** Extracts and returns the average input rate from message.
    *
    * @return The average input rate.
    */
-  int parse_stats_avg_in();
+  int parse_stats_avg_in() const;
 
   /** Extracts and returns the average output rate from message.
    *
    * @return The average output rate.
    */
-  int parse_stats_avg_out();
+  int parse_stats_avg_out() const;
 
   /** Extracts and returns the buffering time in milliseconds remaining from
    * message.
    *
    * @return The buffering time remaining.
    */
-  gint64 parse_stats_buffering_left();
+  gint64 parse_stats_buffering_left() const;
 };
 
 /** A state change message.
@@ -409,7 +409,7 @@
    * @param newstate The new (current) state.
    * @param pending The pending (target) state.
    */
-  void parse(State& oldstate, State& newstate, State& pending);
+  void parse(State& oldstate, State& newstate, State& pending) const;
   _IGNORE(gst_message_parse_state_changed)
 
   /** Extracts and returns the new state from the Gst::MessageStateChanged.
@@ -418,7 +418,7 @@
    *
    * @return The new (current) state.
    */
-  State parse();
+  State parse() const;
 
   /** Extracts and returns the old state from the Gst::MessageStateChanged.
    *
@@ -426,7 +426,7 @@
    *
    * @return The old state.
    */
-  State parse_old();
+  State parse_old() const;
 
   /** Extracts and returns the pending state from the Gst::MessageStateChanged.
    *
@@ -434,7 +434,7 @@
    *
    * @return The pending state.
    */
-  State parse_pending();
+  State parse_pending() const;
 };
 
 /** A state dirty message.
@@ -484,7 +484,7 @@
    * @param clock Location in which to hold a clock object.
    * @param ready Location in which to hold the ready flag.
    */
-  void parse(Glib::RefPtr<Gst::Clock>& clock, bool& ready);
+  void parse(Glib::RefPtr<Gst::Clock>& clock, bool& ready) const;
   _IGNORE(gst_message_parse_clock_provide)
 
   /** Extracts and returns the clock from the Gst::MessageClockProvide. The
@@ -496,13 +496,22 @@
    */
   Glib::RefPtr<Gst::Clock> parse();
 
+  /** Extracts and returns the clock from the Gst::MessageClockProvide. The
+   * clock object returned remains valid until the message is freed.
+   *
+   * MT safe.
+   *
+   * @return The clock object of the message.
+   */
+  Glib::RefPtr<const Gst::Clock> parse() const;
+
   /** Extracts and returns the ready flag from the Gst::MessageClockProvide.
    *
    * MT safe.
    *
    * @return The ready flag of the message.
    */
-  bool parse_ready();
+  bool parse_ready() const;
 };
 
 /** A clock lost message.
@@ -532,6 +541,14 @@
    */
   Glib::RefPtr<Gst::Clock> parse();
   _IGNORE(gst_message_parse_clock_lost)
+
+  /** Extracts and returns the lost clock from the Gst::MessageClockLost. The
+   * clock object returned remains valid until the message is freed.
+   *
+   * MT safe.
+   * @return The lost clock.
+   */
+  Glib::RefPtr<const Gst::Clock> parse() const;
 };
 
 /** A new clock message.
@@ -560,6 +577,15 @@
    */
   Glib::RefPtr<Gst::Clock> parse();
   _IGNORE(gst_message_parse_new_clock)
+
+  /** Extracts and returns the new clock from the Gst::MessageNewClock. The
+   * clock object returned remains valid until the message is freed.
+   *
+   * MT safe.
+   *
+   * @return The selected new clock.
+   */
+  Glib::RefPtr<const Gst::Clock> parse() const;
 };
 
 /** An application message.
@@ -679,7 +705,7 @@
    * @param format Result location for the format.
    * @param position Result location for the position.
    */
-  void parse(Format& format, gint64& position);
+  void parse(Format& format, gint64& position) const;
   _IGNORE(gst_message_parse_segment_start)
 
   /** Extracts and returns the position from the segment start message.
@@ -688,7 +714,7 @@
    *
    * @return The position.
    */
-  gint64 parse();
+  gint64 parse() const;
 
   /** Extracts and returns the format from the segment start message.
    *
@@ -696,7 +722,7 @@
    *
    * @return The format.
    */
-  Format parse_format();
+  Format parse_format() const;
 };
 
 /** A segment done message.
@@ -726,7 +752,7 @@
    * @param format Result location for the format.
    * @param position Result location for the position.
    */
-  void parse(Format& format, gint64& position);
+  void parse(Format& format, gint64& position) const;
   _IGNORE(gst_message_parse_segment_done)
 
   /** Extracts and returns the position from the segment done message.
@@ -735,7 +761,7 @@
    *
    * @return The position.
    */
-  gint64 parse();
+  gint64 parse() const;
 
   /** Extracts and returns the format from the segment done message.
    *
@@ -743,7 +769,7 @@
    *
    * @return The format.
    */
-  Format parse_format();
+  Format parse_format() const;
 };
 
 /** A duration message.
@@ -779,7 +805,7 @@
    * @param format Result location for the format.
    * @param position Result location for the position.
    */
-  void parse(Format& format, gint64& position);
+  void parse(Format& format, gint64& position) const;
   _IGNORE(gst_message_parse_duration)
 
   /** Extracts and returns the duration from the duration message. The duration
@@ -791,7 +817,7 @@
    *
    * @return The position.
    */
-  gint64 parse();
+  gint64 parse() const;
 
   /** Extracts and returns the format from the duration message. Applications
    * should always use a query to retrieve the duration
@@ -801,7 +827,7 @@
    *
    * @return The format.
    */
-  Format parse_format();
+  Format parse_format() const;
 };
 
 /** A latency message.
@@ -852,7 +878,7 @@
    *
    * Since 0.10.13.
    */
-  bool parse();
+  bool parse() const;
   _IGNORE(gst_message_parse_async_start)
 };
 

Modified: gstreamermm/trunk/gstreamer/src/mixer.ccg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/mixer.ccg	(original)
+++ gstreamermm/trunk/gstreamer/src/mixer.ccg	Wed Jan 21 03:20:15 2009
@@ -25,12 +25,13 @@
 namespace Gst
 {
 
-Glib::ArrayHandle<int> Mixer::get_volume(const Glib::RefPtr<Gst::MixerTrack>& track)
+Glib::ArrayHandle<int> Mixer::get_volume(const Glib::RefPtr<const Gst::MixerTrack>& track) const
 {
   const guint32 num_channels = track->get_num_channels();
   int* volumes = new int[num_channels];
 
-  gst_mixer_get_volume(gobj(), track->gobj(), volumes);
+  gst_mixer_get_volume(const_cast<GstMixer*>(gobj()),
+    const_cast<GstMixerTrack*>(track->gobj()), volumes);
 
   return Glib::ArrayHandle<int>::ArrayHandle(volumes, num_channels,
     Glib::OWNERSHIP_DEEP);
@@ -84,7 +85,7 @@
   }
 }
 
-Glib::ArrayHandle<int> Gst::Mixer::get_volume_vfunc(const Glib::RefPtr<Gst::MixerTrack>& track)
+Glib::ArrayHandle<int> Gst::Mixer::get_volume_vfunc(const Glib::RefPtr<const Gst::MixerTrack>& track) const
 {
   BaseClassType *const base = static_cast<BaseClassType*>(
       g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
@@ -95,7 +96,8 @@
   {
     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);
+    (*base->get_volume)(const_cast<GstMixer*>(gobj()),
+      const_cast<GstMixerTrack*>((track)->gobj()), volumes);
     return Glib::ArrayHandle<int>(volumes, num_channels, Glib::OWNERSHIP_DEEP);
   }
 
@@ -104,5 +106,4 @@
 }
 #endif //GLIBMM_VFUNCS_ENABLED
 
-
 } // namespace Gst

Modified: gstreamermm/trunk/gstreamer/src/mixer.hg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/mixer.hg	(original)
+++ gstreamermm/trunk/gstreamer/src/mixer.hg	Wed Jan 21 03:20:15 2009
@@ -46,13 +46,16 @@
 #m4 _CONVERSION(`const GList*', `Glib::ListHandle< Glib::RefPtr<Gst::MixerTrack> >', `$2(const_cast<GList*>($3), Glib::OWNERSHIP_NONE)')
   _WRAP_METHOD(Glib::ListHandle< Glib::RefPtr<Gst::MixerTrack> > list_tracks(), gst_mixer_list_tracks)
 
+#m4 _CONVERSION(`const GList*', `Glib::ListHandle< Glib::RefPtr<const Gst::MixerTrack> >', `$2(const_cast<GList*>($3), Glib::OWNERSHIP_NONE)')
+  _WRAP_METHOD(Glib::ListHandle< Glib::RefPtr<const Gst::MixerTrack> > list_tracks() const, gst_mixer_list_tracks)
+
   /** Get the current volume(s) on the given track.
    *
    * @param track the Gst::MixerTrack to get the volume from.
    * @return an array of integers (of size track->num_channels) to with the
    * current volume of each channel in the given track. 
    */
-  Glib::ArrayHandle<int> get_volume(const Glib::RefPtr<Gst::MixerTrack>& track);
+  Glib::ArrayHandle<int> get_volume(const Glib::RefPtr<const Gst::MixerTrack>& track) const;
   _IGNORE(gst_mixer_get_volume)
 
 #m4 _CONVERSION(`const Glib::ArrayHandle<int>&', `gint*', `const_cast<int*>(($3).data())')
@@ -66,9 +69,9 @@
   _WRAP_METHOD(void volume_changed(const Glib::RefPtr<Gst::MixerTrack>& track, const Glib::ArrayHandle<int>& volumes), gst_mixer_volume_changed)
   _WRAP_METHOD(void option_changed(const Glib::RefPtr<Gst::MixerOptions>& opts, const Glib::ustring& value), gst_mixer_option_changed)
   _WRAP_METHOD(void options_list_changed(const Glib::RefPtr<Gst::MixerOptions>& opts), gst_mixer_options_list_changed)
-  _WRAP_METHOD(Glib::ustring get_option(const Glib::RefPtr<Gst::MixerOptions>& opts), gst_mixer_get_option)
+  _WRAP_METHOD(Glib::ustring get_option(const Glib::RefPtr<const Gst::MixerOptions>& opts) const, gst_mixer_get_option)
   _WRAP_METHOD(void mixer_changed(), gst_mixer_mixer_changed)
-  _WRAP_METHOD(Gst::MixerFlags get_mixer_flags(), gst_mixer_get_mixer_flags)
+  _WRAP_METHOD(Gst::MixerFlags get_mixer_flags() const, gst_mixer_get_mixer_flags)
 
   /* TODO:
   _WRAP_METHOD(satic Gst::MixerMessageType message_get_type(GstMessage *message), gst_mixer_message_get_type)
@@ -81,16 +84,16 @@
 
 //TODO:
 //#m4 _CONVERSION(`Glib::ListHandle< Glib::RefPtr<Gst::MixerTrack> >', `const GList*', `($3).data()')
-  //_WRAP_VFUNC(Glib::ListHandle< Glib::RefPtr<Gst::MixerTrack> > list_tracks(), "list_tracks")
-
-#m4 _CONVERSION(`GstMixerTrack*',`const Glib::RefPtr<Gst::MixerTrack>&', `Glib::wrap(($3), true)')
+  //_WRAP_VFUNC(Glib::ListHandle< Glib::RefPtr<Gst::MixerTrack> > list_tracks() const, "list_tracks")
 
 #ifdef GLIBMM_VFUNCS_ENABLED
 // This vfunc is handcoded because we want to have it return the result instead
 // of requiring a pointer parameter in which to put it like the C API does.
-  virtual Glib::ArrayHandle<int> get_volume_vfunc(const Glib::RefPtr<Gst::MixerTrack>& track);
+  virtual Glib::ArrayHandle<int> get_volume_vfunc(const Glib::RefPtr<const Gst::MixerTrack>& track) const;
 #endif //GLIBMM_VFUNCS_ENABLED
 
+#m4 _CONVERSION(`GstMixerTrack*',`const Glib::RefPtr<Gst::MixerTrack>&', `Glib::wrap(($3), true)')
+
 //TODO:
   //_WRAP_VFUNC(void set_volume(const Glib::RefPtr<Gst::MixerTrack>& track, const Glib::ArrayHandle<int>& volumes), "set_volume")
 
@@ -101,7 +104,7 @@
   _WRAP_VFUNC(void set_option(const Glib::RefPtr<Gst::MixerOptions>& opts, const Glib::ustring& value), "set_option")
 
   //TODO:
-  //_WRAP_VFUNC(Glib::ustring get_option(const Glib::RefPtr<Gst::MixerOptions>& opts), "get_option")
+  //_WRAP_VFUNC(Glib::ustring get_option(const Glib::RefPtr<const Gst::MixerOptions>& opts) const, "get_option")
 
 protected:
 #m4begin

Modified: gstreamermm/trunk/gstreamer/src/mixeroptions.hg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/mixeroptions.hg	(original)
+++ gstreamermm/trunk/gstreamer/src/mixeroptions.hg	Wed Jan 21 03:20:15 2009
@@ -34,7 +34,7 @@
   _CLASS_GOBJECT(MixerOptions, GstMixerOptions, GST_MIXER_OPTIONS, Gst::MixerTrack, GstMixerTrack)
 public:
 #m4 _CONVERSION(`GList*', `Glib::ListHandle< Glib::ustring >', `$2(const_cast<GList*>($3), Glib::OWNERSHIP_NONE)')
-  _WRAP_METHOD(Glib::ListHandle< Glib::ustring > get_values(), gst_mixer_options_get_values)
+  _WRAP_METHOD(Glib::ListHandle< Glib::ustring > get_values() const, gst_mixer_options_get_values)
 };
 
 } // namespace Gst

Modified: gstreamermm/trunk/gstreamer/src/pad.ccg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/pad.ccg	(original)
+++ gstreamermm/trunk/gstreamer/src/pad.ccg	Wed Jan 21 03:20:15 2009
@@ -26,6 +26,7 @@
 #include <gstreamermm/element.h>
 #include <gstreamermm/event.h>
 #include <gstreamermm/padtemplate.h>
+#include <gstreamermm/iterator.h>
 
 _PINCLUDE(glibmm/private/object_p.h)
 _PINCLUDE(gstreamermm/private/object_p.h)
@@ -82,12 +83,12 @@
   : _CONSTRUCT("name", NULL, "direction", dir)
 {}
 
-Pad::Pad(const Glib::RefPtr<Gst::PadTemplate>& templ, const Glib::ustring& name)
-  : _CONSTRUCT("name", name.c_str(), "direction", templ->get_direction(),
-      "template", templ->gobj())
+Pad::Pad(const Glib::RefPtr<const Gst::PadTemplate>& templ,
+  const Glib::ustring& name) : _CONSTRUCT("name", name.c_str(), "direction",
+  templ->get_direction(), "template", templ->gobj())
 {}
 
-Pad::Pad(const Glib::RefPtr<Gst::PadTemplate>& templ)
+Pad::Pad(const Glib::RefPtr<const Gst::PadTemplate>& templ)
   : _CONSTRUCT("name", NULL, "direction", templ->get_direction(), "template",
       templ->gobj())
 {}

Modified: gstreamermm/trunk/gstreamer/src/pad.hg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/pad.hg	(original)
+++ gstreamermm/trunk/gstreamer/src/pad.hg	Wed Jan 21 03:20:15 2009
@@ -37,6 +37,10 @@
 class PadTemplate;
 class Query;
 
+//Gst::Iterator<> forward declaration.
+template <class CppType>
+class Iterator;
+
 _WRAP_ENUM(PadDirection, GstPadDirection)
 _WRAP_ENUM(PadFlags, GstPadFlags)
 _WRAP_ENUM(PadLinkReturn, GstPadLinkReturn)
@@ -80,8 +84,8 @@
 protected:
   _WRAP_CTOR(Pad(const Glib::ustring& name, PadDirection direction), gst_pad_new)
   Pad(PadDirection dir);
-  Pad(const Glib::RefPtr<Gst::PadTemplate>& templ, const Glib::ustring& name);
-  Pad(const Glib::RefPtr<Gst::PadTemplate>& templ);
+  Pad(const Glib::RefPtr<const Gst::PadTemplate>& templ, const Glib::ustring& name);
+  Pad(const Glib::RefPtr<const Gst::PadTemplate>& templ);
 
 public:
   /** For example,
@@ -119,7 +123,7 @@
    * @param name The name of the element.
    * @return A new Gst::Pad, or NULL in case of an error.
    */
-  _WRAP_CREATE(const Glib::RefPtr<Gst::PadTemplate>& pad_template)
+  _WRAP_CREATE(const Glib::RefPtr<const Gst::PadTemplate>& pad_template)
 
   /** Creates a new pad with a guaranteed unique name (across all pads) from
    * the given template.
@@ -127,16 +131,17 @@
    * @param templ The pad template to use.
    * @return A new Gst::Pad, or NULL in case of an error.
    */
-  _WRAP_CREATE(const Glib::RefPtr<Gst::PadTemplate>& pad_template, const Glib::ustring& name)
+  _WRAP_CREATE(const Glib::RefPtr<const Gst::PadTemplate>& pad_template, const Glib::ustring& name)
 
   _WRAP_METHOD(PadDirection get_direction() const, gst_pad_get_direction)
   _WRAP_METHOD(Glib::RefPtr<Gst::Element> get_parent_element(), gst_pad_get_parent_element)
   _WRAP_METHOD(Glib::RefPtr<const Gst::Element> get_parent_element() const, gst_pad_get_parent_element, constversion)
-  _WRAP_METHOD(Glib::RefPtr<Gst::PadTemplate> get_pad_template() const, gst_pad_get_pad_template)
+  _WRAP_METHOD(Glib::RefPtr<Gst::PadTemplate> get_pad_template(), gst_pad_get_pad_template)
+  _WRAP_METHOD(Glib::RefPtr<const Gst::PadTemplate> get_pad_template() const, gst_pad_get_pad_template, constversion)
   _WRAP_METHOD(PadLinkReturn link(const Glib::RefPtr<Gst::Pad>& sink_pad), gst_pad_link)
   _WRAP_METHOD(bool unlink(const Glib::RefPtr<Gst::Pad>& sink_pad), gst_pad_unlink)
   _WRAP_METHOD(bool is_linked() const, gst_pad_is_linked)
-  _WRAP_METHOD(bool can_link(const Glib::RefPtr<Gst::Pad>& other_pad), gst_pad_can_link)
+  _WRAP_METHOD(bool can_link(const Glib::RefPtr<const Gst::Pad>& other_pad) const, gst_pad_can_link)
   _WRAP_METHOD(Glib::RefPtr<Gst::Caps> get_caps(), gst_pad_get_caps)
   _WRAP_METHOD(Glib::RefPtr<const Gst::Caps> get_caps() const, gst_pad_get_caps, constversion)
   _WRAP_METHOD(Glib::RefPtr<Gst::Caps> get_allowed_caps(), gst_pad_get_allowed_caps)
@@ -152,7 +157,7 @@
   Glib::RefPtr<const Gst::Caps> get_pad_template_caps() const;
   _IGNORE(gst_pad_get_pad_template_caps)
 
-  _WRAP_METHOD(bool set_caps (const Glib::RefPtr<Gst::Caps>& caps), gst_pad_set_caps)
+  _WRAP_METHOD(bool set_caps(const Glib::RefPtr<Gst::Caps>& caps), gst_pad_set_caps)
   _WRAP_METHOD(Glib::RefPtr<Gst::Pad> get_peer(), gst_pad_get_peer)
   _WRAP_METHOD(Glib::RefPtr<const Gst::Pad> get_peer() const, gst_pad_get_peer, constversion)
   _WRAP_METHOD(Glib::RefPtr<Gst::Caps> peer_get_caps(), gst_pad_peer_get_caps)
@@ -241,7 +246,8 @@
    * @param offset The offset of the new buffer in the stream.
    * @param size The size of the new buffer.
    * @param caps The caps of the new buffer.
-   * @param buf A newly allocated buffer.
+   * @param buf An uninitialized Glib::RefPtr<> in which to store the new
+   * Gst::Buffer.
    * @return A result code indicating success of the operation. Any result code
    * other than Gst::FLOW_OK is an error and buf should not be used. An error
    * can occur if the pad is not connected or when the downstream peer elements
@@ -259,7 +265,8 @@
    * @param offset The offset of the new buffer in the stream.
    * @param size The size of the new buffer.
    * @param caps The caps of the new buffer.
-   * @param buf A newly allocated buffer.
+   * @param buf An uninitialized Glib::RefPtr<> in which to store the new
+   * Gst::Buffer.
    * @return A result code indicating success of the operation. Any result code
    * other than Gst::FLOW_OK is an error and buf should not be used. An error
    * can occur if the pad is not connected or when the downstream peer elements
@@ -270,15 +277,29 @@
 
   //This is handwritten because conversion from Glib::RefPtr<Gst::Buffer>& to
   //GstBuffer** is difficult.
+  /** When pad is flushing this function returns Gst::FLOW_WRONG_STATE
+   * immediatly.  Calls the getrange function of pad.  If pad has no getrange
+   * function installed this function returns Gst::FLOW_NOT_SUPPORTED.
+   *
+   * This is a lowlevel function. Usually pull_range() is used.  This function
+   * is designed to be used with a source pad only.
+   *
+   * @param offset The start offset of the buffer.
+   * @param size The length of the buffer.
+   * @param buffer An unitialized Glib::RefPtr<> in which to store the
+   * Gst::Buffer.
+   * @return A Gst::FlowReturn from the pad (Gst::FLOW_NOT_SUPPORTED if pad is
+   * not a source pad). MT safe.
+   */
   FlowReturn get_range(guint64 offset, guint size, Glib::RefPtr<Gst::Buffer>& buffer);
   _IGNORE(gst_pad_get_range)
 
-  _WRAP_METHOD(bool accept_caps(const Glib::RefPtr<Gst::Caps>& caps), gst_pad_accept_caps)
+  _WRAP_METHOD(bool accept_caps(const Glib::RefPtr<const Gst::Caps>& caps) const, gst_pad_accept_caps)
   _WRAP_METHOD(Glib::RefPtr<Gst::Caps> proxy_getcaps(), gst_pad_proxy_getcaps)
-  _WRAP_METHOD(Glib::RefPtr<const Gst::Caps > proxy_getcaps() const, gst_pad_proxy_getcaps, constversion)
+  _WRAP_METHOD(Glib::RefPtr<const Gst::Caps> proxy_getcaps() const, gst_pad_proxy_getcaps, constversion)
   _WRAP_METHOD(bool proxy_setcaps(const Glib::RefPtr<Gst::Caps>& caps), gst_pad_proxy_setcaps)
   _WRAP_METHOD(void fixate_caps(const Glib::RefPtr<Gst::Caps>& caps), gst_pad_fixate_caps)
-  _WRAP_METHOD(bool peer_accept_caps(const Glib::RefPtr<Gst::Caps>& caps), gst_pad_peer_accept_caps)
+  _WRAP_METHOD(bool peer_accept_caps(const Glib::RefPtr<const Gst::Caps>& caps) const, gst_pad_peer_accept_caps)
 
   // This method is written manually because an extra ref is necessary
   /** Pushes a buffer to the peer of the pad. The pad must be a source pad,
@@ -315,6 +336,26 @@
 
   _WRAP_METHOD(bool check_pull_range() const, gst_pad_check_pull_range)
 
+  /** Pulls a buffer from the peer pad.  This function will first trigger the
+   * pad block signal if it was installed.  This method works only on sink
+   * pads.
+   *
+   * When pad is not linked Gst::FLOW_NOT_LINKED is returned else this function
+   * returns the result of get_range() on the peer pad.
+   *
+   * @a buffer's caps must either be unset or the same as what is already
+   * configured on pad. Renegotiation within a running pull-mode pipeline is
+   * not supported.
+   *
+   * @param offset The start offset of the buffer.
+   * @param size The length of the buffer.
+   * @param buffer An uninitialized Glib::RefPtr<> in which to hold the
+   * Gst::Buffer.
+   * @return A Gst::FlowReturn from the peer pad (Gst::FLOW_ERROR if pad is not
+   * a sink pad). When this function returns Gst::FLOW_OK, buffer will contain
+   * a valid Gst::Buffer. @a buffer may not be used when any other return value
+   * than Gst::FLOW_OK is returned. MT safe.
+   */
   FlowReturn pull_range(guint64 offset, guint size, Glib::RefPtr<Gst::Buffer>& buffer);
   _IGNORE(gst_pad_pull_range)
 
@@ -348,9 +389,9 @@
   _IGNORE(gst_pad_send_event)
 
   _WRAP_METHOD(bool event_default(const Glib::RefPtr<Gst::Event>& event), gst_pad_event_default)
-  _WRAP_METHOD(bool query(const Glib::RefPtr<Gst::Query>& query), gst_pad_query)
-  _WRAP_METHOD(bool peer_query(const Glib::RefPtr<Gst::Query>& query), gst_pad_peer_query)
-  _WRAP_METHOD(bool query_default(const Glib::RefPtr<Gst::Query>& query), gst_pad_query_default)
+  _WRAP_METHOD(bool query(const Glib::RefPtr<Gst::Query>& query) const, gst_pad_query)
+  _WRAP_METHOD(bool peer_query(const Glib::RefPtr<Gst::Query>& query) const, gst_pad_peer_query)
+  _WRAP_METHOD(bool query_default(const Glib::RefPtr<Gst::Query>& query) const, gst_pad_query_default)
   _WRAP_METHOD(bool query_position(Format& format, gint64& position) const, gst_pad_query_position)
 
   /** Queries a pad for the stream position parsing only the format.
@@ -395,9 +436,19 @@
   _WRAP_METHOD(Glib::ArrayHandle<QueryType> get_query_types() const, gst_pad_get_query_types)
   _WRAP_METHOD(Glib::ArrayHandle<QueryType> get_query_types_default() const, gst_pad_get_query_types_default)
 
+  _WRAP_METHOD(Gst::Iterator<Gst::Pad> iterate_internal_links(), gst_pad_iterate_internal_links)
+  _WRAP_METHOD(Gst::Iterator<const Gst::Pad> iterate_internal_links() const, gst_pad_iterate_internal_links)
+  _WRAP_METHOD(Gst::Iterator<Gst::Pad> iterate_internal_links_default(), gst_pad_iterate_internal_links_default)
+  _WRAP_METHOD(Gst::Iterator<const Gst::Pad> iterate_internal_links_default() const, gst_pad_iterate_internal_links_default)
+
 #m4 _CONVERSION(`GList*', `Glib::ListHandle< Glib::RefPtr<Gst::Pad> >', `$2($3, Glib::OWNERSHIP_SHALLOW)')
   _WRAP_METHOD(Glib::ListHandle< Glib::RefPtr<Gst::Pad> > get_internal_links(), gst_pad_get_internal_links)
+
+#m4 _CONVERSION(`GList*', `Glib::ListHandle< Glib::RefPtr<const Gst::Pad> >', `$2($3, Glib::OWNERSHIP_SHALLOW)')
+  _WRAP_METHOD(Glib::ListHandle< Glib::RefPtr<const Gst::Pad> > get_internal_links() const, gst_pad_get_internal_links)
+
   _WRAP_METHOD(Glib::ListHandle< Glib::RefPtr<Gst::Pad> > get_internal_links_default(), gst_pad_get_internal_links_default)
+  _WRAP_METHOD(Glib::ListHandle< Glib::RefPtr<const Gst::Pad> > get_internal_links_default() const, gst_pad_get_internal_links_default)
 
   // This method is written manually because an extra ref is necessary
   FlowReturn chain(const Glib::RefPtr<Gst::Buffer>& buffer);

Modified: gstreamermm/trunk/gstreamer/src/plugin.hg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/plugin.hg	(original)
+++ gstreamermm/trunk/gstreamer/src/plugin.hg	Wed Jan 21 03:20:15 2009
@@ -86,7 +86,8 @@
   _WRAP_METHOD(Glib::ustring get_source() const, gst_plugin_get_source)
   _WRAP_METHOD(Glib::ustring get_version() const, gst_plugin_get_version)
 
-  _WRAP_METHOD(GModule* get_module() const, gst_plugin_get_module)
+  _WRAP_METHOD(GModule* get_module(), gst_plugin_get_module)
+  _WRAP_METHOD(const GModule* get_module() const, gst_plugin_get_module, constversion)
 
   _WRAP_METHOD(bool is_loaded() const, gst_plugin_is_loaded)
 
@@ -97,9 +98,9 @@
   _WRAP_METHOD(Glib::RefPtr<Gst::Plugin> load(), gst_plugin_load)
   _WRAP_METHOD(static Glib::RefPtr<Gst::Plugin> load_by_name(const Glib::ustring& name), gst_plugin_load_by_name)
 
-
-#m4 _CONVERSION(`Glib::ListHandle< Glib::RefPtr<Gst::Plugin> >',`GList*',`($3).data()')
-  _WRAP_METHOD(static void free(Glib::ListHandle< Glib::RefPtr<Gst::Plugin> >), gst_plugin_list_free)
+  // Don't wrap gst_plugin_list_free because Glib::ListHandle<> already takes
+  // care of freeing.
+  _IGNORE(gst_plugin_list_free)
 
 //TODO: Include if bug #545787 is accepted; remove if not.
 /*

Modified: gstreamermm/trunk/gstreamer/src/pluginfeature.hg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/pluginfeature.hg	(original)
+++ gstreamermm/trunk/gstreamer/src/pluginfeature.hg	Wed Jan 21 03:20:15 2009
@@ -50,8 +50,9 @@
   _WRAP_METHOD(Glib::ustring get_name() const, gst_plugin_feature_get_name)
   _WRAP_METHOD(Glib::RefPtr<Gst::PluginFeature> load(), gst_plugin_feature_load)
 
-#m4 _CONVERSION(`Glib::ListHandle< Glib::RefPtr<Gst::PluginFeature> >',`GList*',`($3).data()')
-  _WRAP_METHOD(static void free(Glib::ListHandle< Glib::RefPtr<Gst::PluginFeature> >), gst_plugin_feature_list_free)
+  // Don't wrap gst_plugin_feature_list_free because Glib::ListHandle<> handles
+  // list freeing already.
+  _IGNORE(gst_plugin_feature_list_free)
 
   _WRAP_METHOD(bool check_version(guint min_major, guint min_minor, guint min_micro) const, gst_plugin_feature_check_version)
 

Modified: gstreamermm/trunk/gstreamer/src/registry.hg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/registry.hg	(original)
+++ gstreamermm/trunk/gstreamer/src/registry.hg	Wed Jan 21 03:20:15 2009
@@ -118,7 +118,6 @@
    */
   Glib::ListHandle< Glib::RefPtr<Gst::Plugin> > get_plugin_list(const Plugin::SlotFilter& filter, bool first);
   _IGNORE(gst_registry_plugin_filter)
-          
 
   /** Runs a filter against all features of the plugins in the registry and
    * returns a List with the results. If the first flag is set, only the first

Modified: gstreamermm/trunk/tools/m4/convert_gst.m4
==============================================================================
--- gstreamermm/trunk/tools/m4/convert_gst.m4	(original)
+++ gstreamermm/trunk/tools/m4/convert_gst.m4	Wed Jan 21 03:20:15 2009
@@ -52,6 +52,7 @@
 #Caps
 _CONVERSION(`GstCaps*',`Glib::RefPtr<Gst::Caps>',`Glib::wrap($3)')
 _CONVERSION(`const Glib::RefPtr<Gst::Caps>&',`GstCaps*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<const Gst::Caps>&',`GstCaps*', `const_cast<$2>(($3)->gobj())')
 _CONVERSION(`const Glib::RefPtr<Gst::Caps>&',`const GstCaps*', `Glib::unwrap($3)')
 _CONVERSION(`const Glib::RefPtr<const Gst::Caps>&',`const GstCaps*', `Glib::unwrap($3)')
 
@@ -118,6 +119,7 @@
 
 #Mixer
 _CONVERSION(`const Glib::RefPtr<Gst::MixerOptions>&',`GstMixerOptions*', `Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<const Gst::MixerOptions>&',`GstMixerOptions*', `const_cast<$2>(($3)->gobj())')
 _CONVERSION(`const Glib::RefPtr<Gst::MixerTrack>&',`GstMixerTrack*', `Glib::unwrap($3)')
 
 #Pad



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