2009-12-27  José Alburquerque  <jaalburqu@svn.gnome.org>

	Release 0.10.6.

	* NEWS:
	* configure.ac: Prepare for release 0.10.6.
	* gstreamer/src/index.ccg: Minor reformatting.

2009-12-23  José Alburquerque  <jaalburqu@svn.gnome.org>

	Make gobj() method definitions in API inline.

	* gstreamer/src/ringbuffer.ccg:
	* gstreamer/src/ringbuffer.hg (gobj):
	* gstreamer/src/element.hg (ElementInterfaced<>::gobj)
	(ElementInterfaced<>::gobj_copy): Define these short methods where
	they are declared in the header so that they are used inline (as is
	done generally in *mm projects).
	(ElementInterfaced<>): Make the class non-copyable like other
	refcounted classes.  Also add the template class to the group of
	interfaces in the docs so that it is accessible there because it is
	related to the use of interfaces.

2009-12-22  José Alburquerque  <jaalburqu@svn.gnome.org>

	Mixer: Correct the list_tracks() methods docs.

	* gstreamer/src/mixer.hg (list_tracks): Correct the docs for the two
	methods because it is not properly generated by pygobject's
	docextract_to_xml.py.

2009-12-22  José Alburquerque  <jaalburqu@svn.gnome.org>

	TagList: Export a lookup function for tags and not the internal array.

	* gstreamer/src/taglist.ccg (_tag_strings): Make array of const char*
	static within the file so it cannot be accessed outside.
	* gstreamer/src/taglist.hg (gstreamermm_get_stock_tag): Defined this
	method to get internal tags instead of having to access the internal
	array.
	* gstreamer/src/tagsetter.ccg (add_tag): Modified methods to use look
	up function above instead of accessing the internal _tag_strings
	array.

2009-12-22  José Alburquerque  <jaalburqu@svn.gnome.org>

	RingBufferSpec: Use _MEMBER_[GET|SET] macros for accessing members.

	* gstreamer/src/ringbuffer.ccg:
	* gstreamer/src/ringbuffer.hg (RingBufferSpec): Use _MEMBER_[GET|SET]
	macros for setting and getting members where possible instead of
	handwriting the methods.  This works because RingBufferSpec implements
	gobj() methods.
	* tools/m4/convert_gst.m4: Added GstBufferFormat and
	GstBufferFormatType enum conversions.

2009-12-22  José Alburquerque  <jaalburqu@svn.gnome.org>

	Pad: Make constructors handle errors as in GhostPad.

	* gstreamer/src/pad.ccg (Pad): Corrected casting in _CONSTRUCT macros
	and included error handling in constructors that might be dealing with
	null PadTemplates.  Used Glib::unwrap() for templates that might be
	null.
	* gstreamer/src/ghostpad.ccg (GhostPad): Use Glib::unwrap() as above
	in constructors.
	* gstreamer/src/pad.hg (Pad): Added docs to constructors.
	(create):
	* gstreamer/src/ghostpad.hg (create): Added docs about exceptions that
	might be thrown because of calls to create() methods.
	* gstreamer/src/audioclock.ccg (AudioClock): Check for an empty "name"
	property in _CONSTRUCT macro.
	* gstreamer/src/iterator.hg (IteratorBase, IteratorBasic, Iterator):
	* gstreamer/src/ringbuffer.hg (RingBufferSpec): Use explicit in
	constructors with default arguments that might be interpreted as
	single parameter constructors.

2009-12-20  José Alburquerque  <jaalburqu@svn.gnome.org>

	Make exception handling code in classes accessible globally.

	* gstreamer/gstreamermm/filelist.am:
	* gstreamer/gstreamermm/handle_error.cc:
	* gstreamer/gstreamermm/handle_error.h (gstreamermm_handle_error):
	Added this new function to report errors in gstreamermm either by
	exception (if they are enabled) or to std::err (otherwise) so that it
	can be used globally throughout gstreamermm.
	* gstreamer/src/bin.ccg:
	* gstreamer/src/bin.hg:
	* gstreamer/src/element.ccg:
	* gstreamer/src/element.hg:
	* gstreamer/src/iterator.hg:
	* gstreamer/src/ghostpad.hg:
	* gstreamer/src/ghostpad.ccg: Modified to use the global error
	handling function above and not a member class defined one.
	(GhostPad):
	* gstreamer/src/pipeline.ccg (Pipeline): Use proper casting in
	_CONSTRUCT macros of these constructors.
	* gstreamer/src/ringbuffer.hg:
	* gstreamer/src/ringbuffer.ccg (RingBufferSpec): Use g_try_new() for
	underlying C object allocation in the constructors and use the error
	handling function above to report errors if any allocation errors
	occur.
	* gstreamer/src/format.ccg (get_format_details):
	* gstreamer/src/query.ccg (get_details): Use "if(!...) return false;"
	instead of g_return_val_if_fail().
	* gstreamer/src/basesink.ccg:
	* gstreamer/src/parse.ccg: Removed unneeded parenthesis.

2009-12-18  José Alburquerque  <jaalburqu@svn.gnome.org>

	Plugin Generator: Generate convenience methods for action signals.

	* tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Added code to
	generate convenience methods for action signals.  Factored out common
	strings that could be used in all the code and modified code
	accordingly.
	* gstreamer/src/bus.hg: Reformatting.

2009-12-16  José Alburquerque  <jaalburqu@svn.gnome.org>

	Use std::auto_ptr<> in classes that keep member slots.

	* gstreamer/src/audioclock.ccg:
	* gstreamer/src/audioclock.hg:
	* gstreamer/src/task.ccg:
	* gstreamer/src/task.hg: Use std::auto_ptr<> for classes that are
	constructed with slots and keep a copy of the slots so that they are
	automatically freed with the auto_ptr.  If the C API had new functions
	with destroy notification this would not be necessary, but it doesn't
	seem complicated to compensate in C++.

2009-12-10  José Alburquerque  <jaalburqu@svn.gnome.org>

	Gst::RingBufferSpec: Avoid copying between it and its C counterpart.

	* gstreamer/src/ringbuffer.ccg:
	* gstreamer/src/ringbuffer.hg (RingBufferSpec): Re-implement as a
	class with an underlying GstRingBufferSpec* instead of a struct so
	that copying to and from the C object is not necessary in the
	implementation of virtual functions.  Also, functions with
	GstRingBufferSpec* parameters can be wrapped with _WRAP_METHOD.
	(acquire):
	(parse_caps): Wrapped with _WRAP_METHOD.
	* gstreamer/src/audiofilter.ccg (setup_vfunc):
	* gstreamer/src/audiosink.ccg (prepare_vfunc):
	* gstreamer/src/audiosrc.ccg (prepare_vfunc): Modified usage of
	Gst::RingBufferSpec in virtual functions and their callbacks so that
	copying is now not done because it is no longer necessary.
	* tools/m4/convert_gst.m4: Added a conversion from
	Gst::RingBufferSpec& to GstRingBufferSpec*.

2009-12-09  José Alburquerque  <jaalburqu@svn.gnome.org>

	RingBuffer: Wrap virtual functions.

	* gstreamer/src/ringbuffer.ccg:
	* gstreamer/src/ringbuffer.hg: Wrapped virtual functions.
	(RingBufferSpec): Declare it as a struct and make the members public.
	Document the use of the members and justify why it was declared as a
	struct and not a class.
	(RingBufferSpec::silence_sample): Use a std::vector<> for the member
	type instead of int[32].
	(RingBufferSpec::copy_fields_from): Renamed to copy_from().
	(RingBufferSpec::copy_fields_to): Renamed to copy_to().
	(RingBufferSpec::RingBufferSpec): Deleted "castitem" constructor.
	(RingBuffer::SlotFill): Use std::vector<guint8> instead of a guint8*
	for the data parameter.
	(RingBuffer::commit):
	(RingBuffer::read):  Use a Glib::ArrayHandle<guchar> for the data
	parameter in these three methods instead of a guchar*.
	(RingBuffer::prepare_read): Use a std::vector<guint8> for the readptr
	parameter instead of a guint8*&.
	(slot): Renamed member to m_slot and used a std::auto_ptr<> for
	automatic memory management.  This made it unnecessary to use the bool
	member _slot_set and to have custom constructors and destructors.
	(_slot_set): Deleted.
	* gstreamer/src/gst_vfuncs.defs: Alphabetized and added
	GstRingBuffer's virtual method definitions.

	* gstreamer/src/audiofilter.ccg:
	* gstreamer/src/audiofilter.hg: Correct class docs.
	(setup_vfunc):
	* gstreamer/src/audiosink.ccg:
	* gstreamer/src/audiosink.hg:
	(prepare_vfunc):
	* gstreamer/src/audiosrc.ccg:
	* gstreamer/src/audiosrc.hg:
	(prepare_vfunc): Use a non-const RingBufferSpec in the virtual
	methods as it could be modified.  Also correct the implementation of
	the methods (and their callbacks) to copy back and forth between the C
	struct and the C++ struct.

2009-12-09  José Alburquerque  <jaalburqu@svn.gnome.org>

	Make single argument constructors explicit.

	* gstreamer/src/format.hg:
	* gstreamer/src/index.hg:
	* gstreamer/src/pad.hg:
	* gstreamer/src/query.hg:
	* gstreamer/src/task.hg:
	* tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Use 'explicit'
	for single argument constructors so that they are used explicitly and
	not by an implicit conversion.
	* gstreamer/src/element.hg: Also update the ElementInterfaced<> docs.

2009-12-07  José Alburquerque  <jaalburqu@svn.gnome.org>

	VideoSink: Wrap center_rect() method.

	* gstreamer/src/videosink.hg (center_rect): Wrap static method.
	(propery_show_preroll_frame): Wrap property.
	* gstreamer/src/cddabasesrc.ccg (probe_devices_vfunc): Use
	Glib::OWNERSHIP_NONE in virtual function when constructing the
	ArrayHandle<> so that the underlying data is not deleted with the
	resulting ArrayHandle.
	* gstreamer/src/childproxy.ccg: Typo.

2009-12-04  José Alburquerque  <jaalburqu@svn.gnome.org>

	CddaBaseSrc: Wrap virtual functions.

	* gstreamer/src/cddabasesrc.ccg:
	* gstreamer/src/cddabasesrc.hg:
	* gstreamer/src/gst_vfuncs.defs: Wrapped add_track() and virtual
	functions.  Used std::string for device property.  Corrected tag
	references in docs.

2009-12-03  José Alburquerque  <jaalburqu@svn.gnome.org>

	TaskPool: Wrap virtual functions.

	* gstreamer/src/taskpool.ccg:
	* gstreamer/src/taskpool.hg:
	* gstreamer/src/gst_vfuncs.defs: Wrapped Gst::TaskPool vfuncs.
	* examples/typefind/main.cc (main): Used #ifdefs for lines dealing
	with properties for when properties are disabled.

2009-12-02  José Alburquerque  <jaalburqu@svn.gnome.org>

	Message[Error|Warning|Info]: Fix the parse_debug() methods.

	* gstreamer/src/message.ccg (MessageError::parse_debug):
	(MessageWarning::parse_debug):
	(MessageInfo::parse_debug): Use a temporary GError* which the
	gst_message_parse_[warning|info|error]() methods require to get to the
	debug string.
	* gstreamer/src/mixer.ccg:
	* gstreamer/src/mixer.hg: Typos.

2009-12-01  José Alburquerque  <jaalburqu@svn.gnome.org>

	Element: Correct the release_request_pad() docs.

	* gstreamer/src/element.hg (release_request_pad): Remove the
	unreferencing instructions in the docs as that is done automatically
	with Glib::RefPtr<>.

2009-11-29  José Alburquerque  <jaalburqu@svn.gnome.org>

	MixerTrack: Add a has_flags() method to check for MixerTrackFlags

	* gstreamer/src/mixertrack.ccg:
	* gstreamer/src/mixertrack.hg (has_flags): Add boolean method to
	determine whether certain flags are present in the Gst::MixerTrack.

2009-11-29  José Alburquerque  <jaalburqu@svn.gnome.org>

	Add extra source files to Doxygen source processing

	* docs/Makefile.am: Add source files in gstreamer/gstreamermm/ listed
	in the list of extra files to be processed by Doxygen.

2009-11-25  José Alburquerque  <jaalburqu@svn.gnome.org>

	Use g_new() instead of new where C and C++ API might mix

	* gstreamer/src/mixer.ccg (get_volume): Use g_new() instead of new to
	allocate array of volumes to allow successful debugging with libcwd.
	* configure.ac: Typo.

2009-11-19  José Alburquerque  <jaalburqu@svn.gnome.org>

	Added a comment to a TODO.

	* gstreamer/src/bin.hg (do_latency): Explained that the signal is
	documented in the C API as publicly usable which implies that the
	signal can also be exposed (wrapped) in the C++ API.

2009-10-26  José Alburquerque  <jaalburqu@svn.gnome.org>

	TagList: Distinguish wrap method by name rather than by parameter.

	* gstreamer/src/message.ccg:
	* gstreamer/src/tagsetter.hg:
	* tools/extra_defs_gen/generate_plugin_gmmproc_file.cc:
	* tools/m4/class_boxedtype_extra.m4:
	* tools/m4/convert_gst.m4: Use Glib::wrap_taglist() for the TagList
	wrap() method instead of distinguishing it by parameters.

2009-10-23  José Alburquerque  <jaalburqu@svn.gnome.org>

	MiniObject: Make the constructors and destructor protected.

	* gstreamer/gstreamermm/miniobject.h: Make the constructors and
	destructor protected as is done in Glib::Object.

2009-10-22  José Alburquerque  <jaalburqu@svn.gnome.org>

	Make sure the MiniObject type is registered in the GType system.

	* gstreamer/gstreamermm/miniobject.cc:
	* gstreamer/gstreamermm/miniobject.h:
	* gstreamer/gstreamermm/private/miniobject_p.h: Added code to ensure
	that the MiniObject class can be successfully registered with the
	GType system.  Made the class non-copyable as it should be with
	reference counted classes.  Removed the copy() method which doesn't
	make sense for a reference counted class.  Use gst_mini_object_copy()
	in gobj_copy().  Included a Value< Glib::RefPtr<Gst::MiniObject> >
	template specialization to make sure that MiniObject can work with the
	Glib::ValueBase system.
	* tools/m4/class_gstminiobject.m4: Use gst_mini_object_copy() in
	gobj_copy() for MiniObject derived classes.
	* gstreamer/src/event.ccg:
	* gstreamer/src/event.hg:
	* gstreamer/src/message.ccg:
	* gstreamer/src/message.hg:
	* gstreamer/src/query.ccg:
	* gstreamer/src/query.hg: Remove the copy() method which doesn't make
	sense for reference counted classes.
	* gstreamer/src/structure.ccg: Remove the MiniObject conversion
	section in the _set_gstructure_field() gstreamermm/GStreamer
	translation function because it is not needed.
	* gstreamer/gstreamermm/wrap.h: Remove unneeded include.

2009-10-21  José Alburquerque  <jaalburqu@svn.gnome.org>

	Fix the taglist test to fix the distcheck.

	* tests/test-taglist.cc (main, taglist):  Fix the boolean check of the
	validity of the taglist variable after construction.
	(main, rate): Initialize the rate variable to avoid warning.

2009-10-21  José Alburquerque  <jaalburqu@svn.gnome.org>

	Enable fatal warnings mode.

	* Makefile.am (DISTCHECK_CONFIGURE_FLAGS):  enable fatal warnings
	mode.
	* examples/media_player_gtkmm/main.cc (main):
	* examples/ogg_player/main.cc (main):
	* examples/ogg_player_gtkmm/main.cc (main):
	* tests/test-caps-structures.cc (main):
	* tests/test-caps.cc (main):
	* tests/test-create-bin.cc (main):
	* tests/test-create-bus.cc (main):
	* tests/test-create-element.cc (main):
	* tests/test-event-wrap.cc (main):
	* tests/test-ghost-pad.cc (main):
	* tests/test-init-check-noargs.cc (main):
	* tests/test-init-check.cc (main):
	* tests/test-init-noargs.cc (main):
	* tests/test-init.cc (main):
	* tests/test-interface.cc (main):
	* tests/test-iterator.cc (main):
	* tests/test-link-elements.cc (main):
	* tests/test-message-wrap.cc (main):
	* tests/test-miniobject-wrap.cc (main):
	* tests/test-pad.cc (main):
	* tests/test-pipeline-add-element.cc (main):
	* tests/test-plugin-gen.cc (main):
	* tests/test-plugin-signals.cc (main):
	(on_handoff):
	* tests/test-property-caps.cc (main):
	* tests/test-query-wrap.cc (main):
	* tests/test-structure.cc (main):
	* tests/test-taglist.cc (main):
	* tests/test-tagsetter.cc (main): Use char** instead of
	char*[] for argv and remove unused parameters.
	* gstreamer/gstreamermm/miniobject.cc:
	* gstreamer/gstreamermm/miniobject.h:
	* gstreamer/gstreamermm/private/miniobject_p.h: Don't derive from
	Glib::ObjectBase to avoid having to explicitly initialize it in the
	MiniObject copy constructor.
	* tools/m4/class_gstminiobject.m4 (wrap_new): return a
	Gst::MiniObject* instead of a Glib::ObjectBase* for Gst::MiniObject
	derived classes.
	* gstreamer/gstreamermm/wrap.cc
	(wrap_create_new_wrapper_for_interface): use Gst::quark_ instead of
	Glib::quark_.
	* gstreamer/src/taglist.ccg:
	* gstreamer/src/taglist.hg: Don't derive from Gst::Structure to avoid
	having two different gobject_ members.
	(operator bool): Added because it already had one from Gst::Structure
	which some of the tests use.

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:
	* examples/ogg_player_gtkmm/main.cc:
	* examples/typefind/main.cc:
	* tests/test-init-check-noargs.cc:
	* tests/test-init-check.cc:
	* tests/test-plugin-signals.cc:
	* tests/test-property-caps.cc: Use a return of 1 for errors instead of
	a -1.

	* gstreamer/src/xml.ccg: Typo.

2009-10-16  José Alburquerque  <jaalburqu@svn.gnome.org>

	Use C++ style casts instead of C casts.

	* gstreamer/src/audioclock.ccg:
	* gstreamer/src/basesink.ccg:
	* gstreamer/src/basesrc.ccg:
	* gstreamer/src/basetransform.ccg:
	* gstreamer/src/bus.ccg:
	* gstreamer/src/caps.ccg:
	* gstreamer/src/caps.hg:
	* gstreamer/src/clock.ccg:
	* gstreamer/src/element.ccg:
	* gstreamer/src/event.ccg:
	* gstreamer/src/format.ccg:
	* gstreamer/src/index.ccg:
	* gstreamer/src/message.ccg:
	* gstreamer/src/object.ccg:
	* gstreamer/src/query.ccg:
	* gstreamer/src/segment.ccg:
	* gstreamer/src/task.ccg:
	* gstreamer/src/xml.ccg: Correct casts to be C++ casts instead of C
	casts.

2009-10-14  José Alburquerque  <jaalburqu@svn.gnome.org>

	Use anonymous namespaces and extern "C" where appropriate.

	* gstreamer/src/audioclock.ccg:
	* gstreamer/src/bus.ccg:
	* gstreamer/src/clock.ccg:
	* gstreamer/src/element.ccg:
	* gstreamer/src/element.hg:
	* gstreamer/src/filter.ccg:
	* gstreamer/src/index.ccg:
	* gstreamer/src/pad.ccg:
	* gstreamer/src/plugin.ccg:
	* gstreamer/src/registry.ccg:
	* gstreamer/src/structure.ccg:
	* gstreamer/src/task.ccg:
	* gstreamer/src/taskpool.ccg: Use anonymous namespaces and extern "C"
	declarations of functions that could be called from C as Daniel's
	previous commits have exemplified.  The other changes (like using
	existing C++ API, using characters instead of strings for single
	characters, etc.) are also clear.  Though, as Daniel suggested, I
	might need to go on irc once in a while to get input from him on
	things I might not understand there when he's available.


	* gstreamer/src/ringbuffer.ccg:
	* gstreamer/src/taglist.ccg:
	* gstreamer/src/typefind.ccg:
	* tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: whitespace.

2009-10-06  Daniel Elstner  <daniel.kitta@gmail.com>

	Replace ':' with $PATH_SEPARATOR for portability

	* configure.ac (GST_INSPECT): Substitute $PATH_SEPARATOR in place
	of the literal colon to separate search path components.

2009-10-06  Daniel Elstner  <danielk@openismus.com>

	Avoid compiler warning in ogg_player example

	* examples/ogg_player/main.cc: Place file-scope declarations into
	an anonymous namespace.
	(on_sink_pad_have_data): Remove unused parameter name to get rid of
	a compiler warning.
	(main): Return exit code 1 rather than -1 on failure.

2009-10-06  Daniel Elstner  <danielk@openismus.com>

	Harden TypeFind code and avoid compiler warning

	* gstreamer/src/typefind.ccg: Place file-scope declarations into an
	anonymous namespace.
	(TypeFind_Find_gstreamermm_callback): Remove unused parameter name
	to avoid a compiler warning.  Use extern "C" calling convention.
	(TypeFind_Find_gstreamermm_callback_destroy): Use extern "C" calling
	convention.
	(TypeFind::register_slot): Use Glib::unwrap() instead of ->gobj()
	where appropriate, in order to allow for null RefPtr<> arguments.

2009-10-06  Daniel Elstner  <danielk@openismus.com>

	Comment on TagList code and avoid some warnings

	* tools/m4/class_boxedtype_extra.m4 (_END_CLASS_BOXEDTYPE_EXTRA):
	Remove dummy parameter name from the definition of Glib::wrap().
	Comment on the dummy parameter looking fishy to me.
	* gstreamer/src/taglist.hg (TagList): Explain in a comment that the
	class is wrapped incorrectly and should be reworked at the next ABI
	break.
	* gstreamer/src/taglist.ccg: Place file-scope declarations into an
	anonymous namespace.
	(TagList_foreach_gstreamermm_callback): Remove unused parameter name
	to get rid of a compiler warning.  Use extern "C" calling convention.
	(TagList::add_value): Call new gst_tag_list_add_value() function.
	(TagList::add): Replace C-style casts with appropriate C++ casts.

2009-10-06  Daniel Elstner  <danielk@openismus.com>

	Clean up RingBuffer code and avoid warning

	* gstreamer/src/ringbuffer.hg: Annotate API with a few TODO comments.
	* gstreamer/src/ringbuffer.ccg: Include STL <cstring> header instead
	of <string.h>.  Place file-scope declarations in anonymous namespace.
	(RingBuffer_Fill_gstreamermm_callback): Remove unused parameter name
	to get rid of a compiler warning.  Use extern "C" calling convention.
	(RingBuffer::copy_fields_from): Replace C-style casts with C++ casts.
	(copy_fields_to): Likewise.  Unconditionally assign spec.caps field.
	(set_fill_slot): Comment on a couple of problems with the code.
	(parse_caps): Use Glib::unwrap() to handle a null RefPtr<>.

2009-10-06  Daniel Elstner  <daniel.kitta@gmail.com>

	Further streamline the C++ plugin generator code

	* tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Add missing
	include statement for <algorithm>.  Move all file-scope declarations
	and definitions into an anonymous namespace.  Do not use conditional
	expressions if one of the branches is a no-op.  Avoid C-style casts,
	in particular for non-POD types.  Replace string literals of length
	one by character literals.  Concatenate string literals at compile
	time where possible.
	(is_wrapped_base_class): Use std::binary_search().
	(is_plugin): Disentangle.
	(get_method_name): Use std::replace().
	(main): Call the glibmm wrapper functions Glib::thread_supported()
	and Glib::thread_init() instead of using the GLib C API directly.

2009-10-06  Daniel Elstner  <daniel.kitta@gmail.com>

	Unbreak build with silent rules enabled

	* gstreamer/src/Makefile.am: Remove a left-over shell statement
	just before the $(AM_V_GEN) substitution in the rule to build the
	plugin source files.

2009-10-06  Daniel Elstner  <daniel.kitta@gmail.com>

	Streamline configure check for gstreamer plugins

	* configure.ac (GSTREAMERMM_PLUGIN_DEFS): Un-indent, as this a shell
	variable and the extra whitespace in the substitution is a bit ugly.
	Simplify and canonicalize the check for the availability of all used
	gstreamer plugins in maintainer-mode.  Remove the program checks for
	the head and cut utilities again.

2009-10-05  José Alburquerque  <jaalburqu@svn.gnome.org>

	PropertyProbe: Don't take copies of returned wrapped GValueArray.

	* gstreamer/src/propertyprobe.hg (get_values): Don't take copies of
	returned wrapped GValueArray because these are created on the fly by
	the class implementing the interface and are not structure members
	that would be deleted if a copy is not taken as would happen, for
	example, with Gst::Message::get_structure() which returns a wrapped
	structure member.

2009-10-01  José Alburquerque  <jaalburqu@svn.gnome.org>

	configure.ac: Remove check for patch as it is not needed anymore.

	* configure.ac (PATCH): Remove check for patch because another way was
	found to avoid the typedef of the C struct in the generated taglist.h
	source file.
	(GST_INSPECT): Also check for gst-inspect-0.10 (see bug #587306).

2009-09-30  José Alburquerque  <jaalburqu@svn.gnome.org>

	TagList: Corrected the constness of the internal tag strings array.

	* gstreamer/src/taglist.ccg:
	* gstreamer/src/taglist.hg (_tag_strings):  Corrected constness,
	completing a TODO.  I hope that's correct as my constness reasoning is
	a little rusty.  Also added a comment as to why the array is 'extern'
	in scope.

2009-09-30  José Alburquerque  <jaalburqu@svn.gnome.org>

	Check for the existence of plug-ins in the configure stage.

	* configure.ac:
	* gstreamer/src/Makefile.am:
	* gstreamer/src/filelist.am: Move the check for the existence of
	plug-ins from the build stage to the configure stage as originally
	suggested in the clean up commit by Daniel.  I had been completing
	that but could not check it in soon enough before the other commits.

2009-09-29  Daniel Elstner  <daniel.kitta@gmail.com>

	Move plugin definition map into src/filelist.am

	* configure.ac (GSTREAMERMM_PLUGIN_DEFS): Move map of plugin names
	to GObject type names into the gstreamer/src/filelist.am file.
	* gstreamer/src/filelist.am (plugin_type_map): New variable.
	* gstreamer/src/Makefile.am (target_plugin_def): Adjust.

2009-09-29  Daniel Elstner  <daniel.kitta@gmail.com>

	Exorcize evil code in C++ plugin generator

	* tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Aided by the
	ghostbusters team, drive out some of the evil demons haunting this
	source code file.  A few more rituals need to take place though in
	order to really cleanse this code from evil.

2009-09-29  Daniel Elstner  <danielk@openismus.com>

	Clean up and simplify build system customizations

	* configure.ac (PATCH): Properly quote the AS_IF() macro arguments.
	(GSTREAMERMM_MODULES): Use m4_foreach() to reduce repetition.
	(ENABLE_GUI_EXAMPLES): Define an Automake conditional for the purpose
	of excluding the GUI example programs from the build if gtkmm is not
	available.  Remove the --enable-examples configure option, and always
	build the GUI examples if gtkmm is available at build time.
	(AC_CONFIG_FILES): Generate examples/Makefile unconditionally.
	Remove tools/generate_gst_wrap_init.pl from the list of output files.
	(GSTREAMERMM_WXXFLAGS): Remove -pedantic flag since it is too strict
	for the gstreamer header files.
	(GTHREAD_CFLAGS): Remove substitution variable for the thread-safety
	compiler flags, as gstreamer itself depends on gthread and therefore
	already includes the necessary flags in the pkg-config output.
	(MM_ARG_WITH_TAGFILE_DOC): Remove reference to giomm-2.4.tag, which
	does not exist.  Add tag file references for cairomm and pangomm.
	Tentatively remove gtkmm-2.4.tag reference because gtkmm symbols are
	not actually used in the documentation.  The mere presence of the
	gtkmm tags already confuses Doxygen, causing it to link to gtkmm for
	symbols in the Gst namespace.
	* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): As a temporary workaround,
	disable fatal warnings during distcheck.
	(SUBDIRS): Always recurse into tools/ and examples/.
	* examples/Makefile.am (noinst_PROGRAMS): Make the inclusion of the
	GUI examples depend on the ENABLE_GUI_EXAMPLES Automake conditional.
	(AM_CPPFLAGS): Expand $(GUI_EXAMPLES_CFLAGS) if the GUI examples are
	enabled, or $(GSTREAMERMM_CFLAGS) if not.
	(LDADD): Link with $(GSTREAMERMM_LIBS) by default, and override the
	global LDADD for the GUI programs to use $(GUI_EXAMPLES_LIBS).
	* gstreamer/gstreamermm/Makefile.am: Completely kill the build rules
	for patching the generated source code on the fly.  The single source
	file this was applied to turns out to be fixable by other means.
	* gstreamer/src/Makefile.am: Significantly simplify the convoluted
	logic of the custom rules and expressions for generating the gmmproc
	input files for the gstreamer plugins.
	($(binding_outputdir)/gst_wrap_init.cc): Build gst_wrap_init.cc from
	the src/ subdirectory like the other generated source files.
	* gstreamer/src/element.ccg
	(Gst::ElementInterfaced_WeakNotify_gstreamermm_callback): Remove
	unused parameter name to avoid a compiler warning.
	* gstreamer/src/filelist.am (files_hg): Combine variable assignments.
	* gstreamer/src/taglist.hg (Gst::TagList): Call the special gmmproc
	macro _CUSTOM_STRUCT_PROTOTYPE to suppress the output of a typedef
	for the C struct.  This removes the need to patch the generated file.
	* gstreamer/gstreamermm/taglist.h.patch: Delete obsolete file.
	* tests/Makefile.am: Do not hard-code the libgstreamermm API version.
	(AM_CXXFLAGS): Build tests with $(GSTREAMERMM_WXXFLAGS), too.
	* tools/Makefile.am: Clean up and simplify.
	* tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: Add missing
	struct initializers to avoid a compiler warning.
	* tools/generate_gst_wrap_init.pl: Rename the configure input file
	generate_gst_wrap_init.pl.in to generate_gst_wrap_init.pl.  Remove
	the unnecessary she-bang line with the @PERL@ substitution, so that
	it is no longer necessary for this file to be generated.

2009-09-25  José Alburquerque  <jaalburqu@svn.gnome.org>

	Add Gst::StreamVolume interface.

	* tools/extra_defs_gen/generate_defs_gst.cc: Add GstStreamVolume type
	for signal and property defs generation.
	* gstreamer/src/gst_enums.defs:
	* gstreamer/src/gst_enums.defs.patch:
	* gstreamer/src/gst_methods.defs:
	* gstreamer/src/gst_signals.defs: Regenerate defs and update
	corresponding patch files.

	* gstreamer/gstreamermm.h:
	* gstreamer/src/filelist.am:
	* gstreamer/src/streamvolume.ccg:
	* gstreamer/src/streamvolume.hg: Add Gst::StreamVolume interface.
	* tools/m4/convert_gst.m4: Add conversion of Gst::StreamVolumeFormat
	enum.

	* tools/m4/plugingen_gstreamermm.m4: Add a Gst::StreamVolume interface
	C/C++ conversion for plug-ins that inherit from the interface (needed
	during plug-in generation).

	* configure.ac: Increment minimum mm-common version requirement.