gnomemm r1453 - in gstreamermm/trunk: . examples/ogg_player gstreamer/src tools/m4



Author: jaalburqu
Date: Fri Apr 11 21:06:34 2008
New Revision: 1453
URL: http://svn.gnome.org/viewvc/gnomemm?rev=1453&view=rev

Log:
2008-04-11  Josà Alburquerque  <jaalburqu svn gnome org>

	* gstreamer/src/taglist.hg: Wrapped some of GstTagList by using
	GstStructure as C type of class macro (instead of GstTagList) after
	getting idea by commenting on related bug report #518934.  Got stuck
	using "Gst::TagList Glib::wrap(GstStructure*)" which ambiguates
	"Gst::Structure Glib::wrap(GstStructure*)".  The ambiguity holds even
	if GstTagList is used for class macro C type because GstTagList is
	declared as "typedef GstStructure GstTagList" in gsttaglist.h instead
	of "typdef struct _GstTagList GstTagList" as it should be.  I
	explained the problem in bug report (I had even submitted a patch),
	but it seems developers are unwilling to fix it.  I don't see how
	GstTagList will be wrapped otherwise so I'll be leaving taglist.hg as
	is for now.

	* tools/m4/convert_gst.m4: Added conversions for GstTagList

Modified:
   gstreamermm/trunk/ChangeLog
   gstreamermm/trunk/examples/ogg_player/   (props changed)
   gstreamermm/trunk/gstreamer/src/taglist.hg
   gstreamermm/trunk/tools/m4/convert_gst.m4

Modified: gstreamermm/trunk/gstreamer/src/taglist.hg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/taglist.hg	(original)
+++ gstreamermm/trunk/gstreamer/src/taglist.hg	Fri Apr 11 21:06:34 2008
@@ -31,7 +31,7 @@
 
 class TagList
 {
-  _CLASS_BOXEDTYPE(TagList, GstTagList, gst_tag_list_new, gst_tag_list_copy, gst_tag_list_free)
+  _CLASS_BOXEDTYPE_NCOPY(TagList, GstTagList, gst_tag_list_new, gst_tag_list_copy, gst_tag_list_free)
 
 public:
   /** For example,
@@ -39,7 +39,16 @@
    */
   typedef sigc::slot<void, const TagList&, const Glib::ustring&> SlotForeach;
 
-public:
+  _WRAP_METHOD(static bool exists(const Glib::ustring& tag), gst_tag_exists)
+  _WRAP_METHOD(static GType get_type(const Glib::ustring& tag), gst_tag_get_type)
+  _WRAP_METHOD(static Glib::ustring get_nick(const Glib::ustring& tag), gst_tag_get_nick)
+  _WRAP_METHOD(static Glib::ustring get_description(const Glib::ustring& tag), gst_tag_get_description)
+  _WRAP_METHOD(static TagFlag get_flag(const Glib::ustring& tag), gst_tag_get_flag)
+  _WRAP_METHOD(static bool is_fixed(const Glib::ustring& tag), gst_tag_is_fixed)
+  _WRAP_METHOD(bool empty(), gst_tag_list_is_empty)
+  _WRAP_METHOD(void insert(const TagList& other, TagMergeMode mode), gst_tag_list_insert)
+  _WRAP_METHOD(TagList merge(const TagList& other, TagMergeMode mode), gst_tag_list_merge)
+
   void foreach(const SlotForeach& slot);
 };
 

Modified: gstreamermm/trunk/tools/m4/convert_gst.m4
==============================================================================
--- gstreamermm/trunk/tools/m4/convert_gst.m4	(original)
+++ gstreamermm/trunk/tools/m4/convert_gst.m4	Fri Apr 11 21:06:34 2008
@@ -100,7 +100,8 @@
 _CONVERSION(`Structure&',`GstStructure*',`(($3).gobj())')
 
 #TagList
-_CONVERSION(`const Glib::RefPtr<const TagList>&',`const GstTagList*', `Glib::unwrap($3)')
+_CONVERSION(`const TagList&',`const GstTagList*',`(($3).gobj())')
+_CONVERSION(`GstTagList*',`TagList',`Glib::wrap($3)')
 
 #URIHandler
 _CONVERSION(`const Glib::RefPtr<URIHandler>&',`GstURIHandler*',`Glib::unwrap($3)')
@@ -114,11 +115,12 @@
 _CONVERSION(`const guint32&',`guint32',`$3')
 
 #Basic Gstreamermm Conversions
-_CONVERSION(`guint64',`ClockTime',`(ClockTime ($3))')
 _CONVERSION(`ClockTimeDiff',`GstClockTimeDiff',`GstClockTimeDiff ($3)')
 _CONVERSION(`ClockTimeDiff&',`GstClockTimeDiff*',`(GstClockTimeDiff*)(&($3))')
 _CONVERSION(`Format&',`GstFormat*',`(($2) &($3))')
 _CONVERSION(`const GstQueryType*',`const QueryType*',`(QueryType*)($3)')
+_CONVERSION(`GstTagFlag',`TagFlag',`(TagFlag)($3)')
+_CONVERSION(`guint64',`ClockTime',`(ClockTime ($3))')
 _CONVERSION(`const URIType',`const GstURIType',`(GstURIType($3))')
 
 #C++ Conversions



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