0.9.5: 2008-05-07 Murray Cumming * gstreamer/gstreamermm/private/Makefile.am: Added taglist_p.h to fix the distcheck. * tests/Makefile.am: Added include paths for gstreamerbasemm to fix the distcheck. 2008-05-07 Murray Cumming * gstreamer/src/pad.ccg: add_data_probe(), add_buffer_probe(), add_event_probe(): Comment out the use of the new *_full() functions, choosing to use the existing functions, with the leak, so gstreamermm builds with gstreamer tarballs. We can bring this code back later. * gstreamer/src/Makefile_list_of_hg.am_fragment: Likewise, remove segment.hg from the build, until bug #518932 is in a tarball. 2008-04-30 José Alburquerque * gstreamer/src/Makefile_list_of_hg.am_fragment: Added segment.hg which means that when gstreamermm will compile with GStreamer CVS only until bug fix #518932 is reflected in GStreamer release * gstreamer/src/element.ccg: * gstreamer/src/element.hg: Added Element::found_tags() and Element::found_tags_for_pad() * tools/m4/convert_gst.m4: Added TagList conversion needed for two method wrapping above * gstreamer/src/pad.ccg: Used gst_pad_add_*_probe_full() methods for adding probes which means that gstreamermm will compile only with GStreamer CVS until bug fix #526814 is reflected in release 2008-04-30 José Alburquerque * gstreamer/gstreamermm/Makefile.am: Added taglist.{h,c} to extra files that should be compiled because both are generated by adding taglist.hg to list of files in Makefile_list_of_hg.am_fragment, editing the *.h file and then removing the *.hg from list of files in Makefile_list_of_hg.am_fragment (see comments on this in ChangeLog) * gstreamer/gstreamermm/private/taglist_p.h: Added this file for same reasons as above (otherwise build process would generate this file automatically) * gstreamer/src/buffer.hg: Removed completed TODO's * gstreamer/src/element.hg: Changed GQuark to const Glib::QueryQuark& * gstreamer/src/event.ccg: * gstreamer/src/event.hg: Added EventTag::create() and EventTag::parse(); Used forward declarations of Gst::Structure and Gst::TagList instead of including *.h files in header file * gstreamer/src/message.ccg: * gstreamer/src/message.hg: Added MessageTag class with create() and parse() methods; Used forward declarations instead of including *.h files in header file 2008-04-29 José Alburquerque * gstreamer/src/element.hg: Added TODO about not wrapping the get_query_types() vfunc yet because the generated code assumes that Glib::ArrayHandle<> has a default constructor 2008-04-29 José Alburquerque * gstreamer/src/parse.hg: Wrapped GstParseError as a GError and not an enum; Added @throw to methods that throw Glib::Errors 2008-04-29 José Alburquerque * gstreamer/gstreamermm/gst_wrap_init.h: * gstreamer/gstreamermm/wrap_init.h: * gstreamer/gstreamermm/version.h: Added gst_wrap_init(), wrap_init(), and version() method docs * gstreamer/gstreamermm/init.cc: * gstreamer/gstreamermm/init.h: * examples/optiongroup/optiongroup.cc: Renamed init_get_option_group() to get_option_group(); Added init(), init_check() and get_option_group() method docs; Modified init_check() to throw Glib::Error if GLIBMM_EXCEPTIONS_ENABLED * gstreamer/src/event.hg: Added get_name() and get_quark() function docs * gstreamer/src/plugin.hg: * gstreamer/src/gst_docs_override.xml: Wrapped PluginError as a GError (and not an Enum); Modified load_file() method docs (and added @throw directive to docs) * gstreamer/src/pluginfeature.hg: Removed unused blank line 2008-04-28 José Alburquerque * tools/m4/convert_gst.m4: Added additional Glib::ArrayHandle conversion needed for Gst::Element "get_query_types" vfunc (when it is wrapped) 2008-04-27 José Alburquerque * gstreamer/src/error.hg: Added intro line to class docs of GError classes * gstreamer/src/event.hg: Corrected typo * gstreamer/src/pad.hg: * gstreamer/src/query.hg: * gstreamer/src/element.hg: Used ArrayHandle<> for methods that return an array of QueryType (ie QueryType*) * gstreamer/src/gst_vfuncs.defs: Corrected return type of GstElement vfunc from `GstQueryType*' to `const GstQueryType*' * tools/m4/convert_gst.m4: Added GstQueryType array (to/from Glib::ArrayHandle<>) conversions 2008-04-27 José Alburquerque * gstreamer/src/Makefile_list_of_hg.am_fragment: Removed segment.hg and: * gstreamer/src/pad.ccg: Used the gst_pad_add_*_probe() methods instead of the "full" methods to allow compilation using distribution GStreamer (and not CVS). Will re-add segment.hg and use probe "full" methods when GStreamer releases version that include bug fixes #526814 and #518932 2008-04-25 José Alburquerque * gstreamer/src/event.hg: -Added reference to create() methods in Event classes docs which more fully explain each event type (docs for each create() method comes from C API) - Reordered parameter order in EventNewSegment::parse() method docs to reflect actual method parameter order 2008-04-24 José Alburquerque * gstreamer/src/bin.hg: Made list of Gst::MessageTypes and Gst::QueryTypes in class docs appear as an actual list (in html) * gstreamer/src/clock.hg: Added docs for functions not member of classes * gstreamer/src/error.hg: Added class docs for GErrors * gstreamer/src/event.ccg: * gstreamer/src/event.hg: Added docs for Event classes and handwritten class methods; Removed EventCustom because extending GstEvents would probably be best done in C API for now * gstreamer/src/format.ccg: * gstreamer/src/format.hg: Added docs for FormatDefinition structure; Added function docs for Gst::Format functions 2008-04-22 José Alburquerque * gstreamer/src/element.hg: Added method docs for Gst::Element handwritten methods; Added class docs and example usage for Gst::ElementInterfaced class 2008-04-17 José Alburquerque * gstreamer/src/filter.hg: Qualified class name in first line of class 2008-04-17 José Alburquerque Fully qualified Gst classes in doc blocks of following (and all *.hg files in this commit): * gstreamer/src/registry.hg: * gstreamer/src/segment.hg: * gstreamer/src/systemclock.hg: * gstreamer/src/tagsetter.hg: * gstreamer/src/task.hg: * gstreamer/src/urihandler.hg: * gstreamer/src/value.hg: * gstreamer/src/structure.hg: Added docs for handwritten method foreach() * tools/m4/class_boxedtype_ncopy.m4: Modified to generate docs for set_destroy() generated wrapper method * gstreamer/src/taglist.hg: Added docs for handwritten method foreach() * gstreamer/gstreamermm/taglist.h: Regenerated through build process by adding (and then removing) taglist.hg to Makefile_list_of_hg.am_fragment and removing top extern "C" {...} section * tools/m4/class_boxedtype_ncopy_extra.m4: Modified to generate docs for set_destroy() generated wrapper method 2008-04-17 José Alburquerque * gstreamer/src/gst_enums.defs: Added PadTemplateFlags to list of handwritten enums 2008-04-17 José Alburquerque Fully qualified Gst classes in doc blocks of following (and all *.hg in this commit): * gstreamer/src/bin.hg: * gstreamer/src/buffer.hg: * gstreamer/src/bus.hg: * gstreamer/src/caps.hg: * gstreamer/src/element.hg: * gstreamer/src/elementfactory.hg: * gstreamer/src/index.hg: * gstreamer/src/indexfactory.hg: * gstreamer/src/interface.hg: * gstreamer/src/pad.hg: * gstreamer/src/parse.hg: * gstreamer/src/pipeline.hg: * gstreamer/src/plugin.hg: * gstreamer/src/pluginfeature.hg: * gstreamer/src/ghostpad.hg: Fixed parameter name typo * gstreamer/src/childproxy.ccg: * gstreamer/src/childproxy.hg: Modified {set,get}_proxy_property() methods to return RefPtr to ChildProxy; Added signal docs * gstreamer/src/clock.hg: * tools/m4/convert_gst.m4: Wrapped {get,set}_calibration() methods * gstreamer/src/event.hg: * gstreamer/src/message.hg: Added class docs * gstreamer/src/padtemplate.ccg: * gstreamer/src/padtemplate.hg: * gstreamer/src/gst_enums.defs: Added class docs; Wrapped PadTemplateFlags enum; Used _WRAP_CREATE() for create() method; Wrapped members name_template, direction, and presence; Added signal and create() docs * gstreamer/src/filter.hg: Fixed whitespace 2008-04-16 José Alburquerque * gstreamer/src/element.hg: * gstreamer/src/gst_vfuncs.defs: Added vfuncs, docs for signals and docs for Gst::get_name() methods (in element.hg) * tools/m4/convert_gst.m4: Added conversions needed for Gst::Element vfuncs * gstreamer/src/buffer.ccg: * gstreamer/src/buffer.hg: Wrapped create() (with no parameters); Used _WRAP_METHOD for create(guint size) (modified parameter type from reference to value); Added docs to _MEMBER_GET generated methods * gstreamer/src/bin.ccg: Added comments to add() and remove() methods * gstreamer/src/bin.hg: Added missing method docs * gstreamer/src/caps.hg: Corrected class docs (typo) * gstreamer/src/bus.hg: * gstreamer/src/childproxy.hg: * gstreamer/src/clock.hg: Added signal, vfunc and create() method docs 2008-04-16 José Alburquerque * gstreamer/src/element.hg: * gstreamer/src/elementfactory.hg: Used article 'an' instead of 'a' where appropriate in class docs * gstreamer/src/pad.hg: * gstreamer/src/systemclock.hg: Added class docs * gstreamer/src/pipeline.hg: Wrapped properties (no signals or vfuncs) 2008-04-15 José Alburquerque * gstreamer/src/index.hg: Wrapped signals and properties; Made IndexEtnry::assoc_map() constant (ie bool assoc_map(...) const) * tools/m4/convert_gst.m4: Added/Re-organized IndexEntry conversions 2008-04-14 José Alburquerque * gstreamer/src/clock.ccg: * gstreamer/src/clock.hg: Used GstClockEntry as C type of class macro of class ClockID (a GstClockID, in fact, is a void pointer which in GStreamer API is generally cast to a (GstClockEntry*) (see implementation of gst_clock_id_* functions -- for example gst_clock_id_ref); Wrapped create_single_shot_id() create_periodic_id() * tools/m4/convert_gst.m4: Fixed ClockID conversions to reflect Gst::ClockID C type from GstClockID to GstCockEntry 2008-04-14 José Alburquerque * gstreamer/gstreamermm.h: Added taglist.h to includes * gstreamer/src/segment.hg: Added _IGNORE for gst_element_free * gstreamer/src/bin.hg: * gstreamer/src/childproxy.hg: * gstreamer/src/clock.hg: * gstreamer/src/gst_vfuncs.defs: Added properties and virtual functions for Bin, ChildProxy and Clock * tools/m4/convert_gst.m4: Added conversions for above properties and virtual functions 2008-04-13 José Alburquerque * gstreamer/src/pad.ccg: Reused gst_pad_add_*_probe_full() functions included with fix of bug #526814 since Gst::Segment is also included and relies on recent fix of bug #518932 (users will have to use GStreamer CVS for latest to compile) 2008-04-13 José Alburquerque * gstreamer/src/pad.ccg: Went back to using regular gst_pad_add_*_probe() functions when adding probes (and not their "full" counterparts) until new version of GStreamer is released (which will include the "full" counterparts) 2008-04-13 José Alburquerque * tools/m4/class_boxedtype_ncopy_extra.m4: * tools/m4/convert.m4: Added new class macro _CLASS_BOXEDTYPE_NCOPY_EXTRA which is like the class macro used for Gst::Structure but adds extra dummy param to wrap method to disambiguate definitions of "Gst::Structure Glib::wrap(GstStructure*)" and "Gst::TagList Glib::wrap(GstStructure*)" (because GstTagList is declared as "typedef GstStructure GstTagList" in GStreamer API which in essence makes it a GstStructure) * gstreamer/src/taglist.hg: Added class docs and modified to use class macro _CLASS_BOXEDTYPE_NCOPY_EXTRA * gstreamer/gstreamermm/taglist.cc: * gstreamer/gstreamermm/taglist.h: Furthermore, had to add actual gmmproc generated source files in order to manually remove the standard 'extern "C" { typedef struct _GstTagList GstTagList; }' at top of *.h file, again, because GStreamer API does not define GstTagList in a standard way. In bug report #518934 developers seem not to want to fix this. Will post last comment in report informing that they are not following GObject definition standards to see if perhaps they will reconsider for future. taglist.hg has to be added to gstreamer/src/Makefile_list_of_hg.am_fragment when changed to regenerate these files and then removed and the 'extern "C" { ...}' has to be removed from the *.h file to keep build process working. 2008-04-11 José Alburquerque * 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 2008-04-10 José Alburquerque * gstreamer/src/pad.ccg: Modified the add_{data,event,buffer}_probe() methods to delete copy of slot when probe is removed (disconnected) * examples/ogg_player/main.cc: Corrected whitespace 2008-04-09 José Alburquerque * gstreamer/src/Makefile_list_of_hg.am_fragment: Added segment.hg (bug #518932 resolved) * gstreamer/src/segment.hg: Fixed includes for compilation 2008-04-08 José Alburquerque * gstreamer/src/bin.ccg: * gstreamer/src/bin.hg: * gstreamer/src/buffer.ccg: * gstreamer/src/buffer.hg: * gstreamer/src/bus.ccg: * gstreamer/src/bus.hg: * gstreamer/src/clock.ccg: * gstreamer/src/clock.hg: * gstreamer/src/element.ccg: * gstreamer/src/element.hg: * gstreamer/src/elementfactory.ccg: * gstreamer/src/elementfactory.hg: * gstreamer/src/event.ccg: * gstreamer/src/event.hg: * gstreamer/src/index.ccg: * gstreamer/src/index.hg: * gstreamer/src/indexfactory.ccg: * gstreamer/src/indexfactory.hg: * gstreamer/src/message.ccg: * gstreamer/src/message.hg: * gstreamer/src/pad.ccg: * gstreamer/src/pad.hg: * gstreamer/src/padtemplate.ccg: * gstreamer/src/padtemplate.hg: * gstreamer/src/pipeline.ccg: * gstreamer/src/plugin.ccg: * gstreamer/src/plugin.hg: * gstreamer/src/pluginfeature.ccg: * gstreamer/src/pluginfeature.hg: * gstreamer/src/query.ccg: * gstreamer/src/query.hg: * gstreamer/src/registry.ccg: * gstreamer/src/registry.hg: * gstreamer/src/systemclock.ccg: * gstreamer/src/systemclock.hg: * gstreamer/src/task.ccg: * gstreamer/src/task.hg: * gstreamer/src/xml.ccg: * gstreamer/src/xml.hg: Moved some _PINCLUDES from *.hg files to *.ccg files * gstreamer/gstreamermm.h: * gstreamer/src/Makefile_list_of_hg.am_fragment: * gstreamer/src/ghostpad.ccg: * gstreamer/src/ghostpad.hg: Added GhostPad 2008-04-08 José Alburquerque * examples/media_player_gtkmm/PlayerWindow.cc: * examples/media_player_gtkmm/PlayerWindow.h: * examples/media_player_gtkmm/main.cc: Modified media player example to use its own video sink with the playbin pipeline; Modified widget packing so that videoArea takes most space and rest less; Added code to react to initial data (buffer) received in the video sink pad to deal with size of videoArea. 2008-04-07 José Alburquerque * gstreamer/src/pad.ccg: * gstreamer/src/pad.hg: Added add_{data,buffer,event}_probe() methods which accepts a slot (SlotData) to be called whenever data, an event, or a buffer passes through the pad. Filed bug #526814 requesting enhancement to allow a disconnect callback to be called when "probes" are disconnected so that slot copies can be easily deleted on disconnections. Found that the "have-data" signal does not work on its own (connecting to it never calls slot) because C API doesn't transmit signal unless one of the add_*_probe() methods is used (see gst_pad_add_data_probe() implementation in gstutils.c) so unwrapped the signal to disallow possible confusion and let developers use add_*_probe() methods which will work. * examples/ogg_player/main.cc: Modified example to exemplify use Gst::Pad::add_data_probe() method 2008-04-04 José Alburquerque * gstreamer/src/bus.ccg: * gstreamer/src/bus.hg: Used _WRAP_CREATE to generate create() method; Merged clear_sync_handler() into set_sync_handler() because clear_sync_hander() would only be used before a call to set_sync_handler() * gstreamer/src/pad.ccg: * gstreamer/src/pad.hg: Used _WRAP_CREATE to generate create() methods; Moved SlotBlock to top; Added get_pad_template(); Moved set_blocked_async() below set_blocked() and added method docs * tools/m4/convert_gst.m4: Added PadTemplate conversions * tests/Makefile.am: * tests/test-create-bus.cc: Added test to create bus 2008-04-04 José Alburquerque * gstreamer/src/bus.hg: * gstreamer/src/clock.hg: * gstreamer/src/filter.hg: * gstreamer/src/index.hg: * gstreamer/src/plugin.hg: * gstreamer/src/pluginfeature.hg: * gstreamer/src/structure.hg: Added comments in slot docs to clear up what bool returns mean 2008-04-03 José Alburquerque * gstreamer/gstreamermmconfig.h.in: * gstreamerbase/gstreamerbasemmconfig.h.in: Corrected config files to include the glibmmconfig.h file so that things like GLIBMM_PROPERTIES_ENABLED are defined (and properties can be wrapped) * docs/reference/Doxyfile.in: Added list of predefined macros as in other *mm projects 2008-04-03 José Alburquerque * gstreamer/src/childproxy.ccg: * gstreamer/src/childproxy.hg: Modified method names to not conflict with Gst::Object inherited methods (in particular set_property) * gstreamer/src/element.hg: Overloaded ElementInterfaced<..> methods gobj() (both const and non-const versions) and gobj_copy() to avoid ambiguity (in particular using ElementInterfaced<...>::gobj() would be ambiguous otherwise) * tests/test-interface.cc: Added lines to test ElementInterfaced<...> gobject methods' ambiguity 2008-04-02 José Alburquerque * gstreamer/src/interface.hg: Modified cast() to return NULL RefPtr if element is NULL * examples/media_player_gtkmm/Makefile.am: * examples/media_player_gtkmm/PlayerWindow.cc: * examples/media_player_gtkmm/PlayerWindow.h: * examples/media_player_gtkmm/main.cc: Added new media player example which uses GStreamer playbin plugin (from gst-plugins-base) to play any supported media (including video). At present it's crude (window doesn't resize, etc.), but it does successfully insert video in window! * configure.ac: Added examples/media_player_gtkmm/Makefile to AC_CONFIG_FILES to generate * examples/Makefile.am: Added media_player-gtkmm directory to build directories * examples/Makefile.am_fragment: Modified to allow build to use gstreamerbase branch (from gtkmm -- Thanks) 2008-04-01 José Alburquerque * gstreamer/src/event.hg: * gstreamer/src/message.ccg: * gstreamer/src/message.hg: * gstreamer/src/query.ccg: * gstreamer/src/query.hg: Modified get_structure() methods to get GstStructure* for each call (It seems more reliable if structure is changed for any reason); Removed unused members structure_ 2008-04-01 José Alburquerque * gstreamer/src/bus.ccg: * gstreamer/src/bus.hg: Renamed SlotWatch to SlotMessage; Added SlotMessageSync; Added set_sync_handler() and clear_sync_handler(); Added docs for hand-written methods; * gstreamer/src/pipeline.hg: Added class docs * gstreamerbase/src/xoverlay.hg: Added TODO to insert code example in class docs 2008-04-01 José Alburquerque * gstreamer/src/interface.hg: Rewrote cast() to return null RefPtr<...> if cast is not possible * gstreamer/src/element.hg: Rewrote ElementInterfaced constructor to accept possible NULL GstElement* * tests/Makefile.am: * tests/test-create-element.cc: * tests/test-interface.cc: Added test-interface.cc (for testing casting) and removed casting test from test-create-element.cc * gstreamerbase/gstreamerbasemm.h: Added xoverlay.h to includes; Removed unused version.h include 2008-04-01 José Alburquerque * README: * docs/reference/Doxyfile.in: * docs/reference/reference-index.txt: * examples/README: * examples/init/init.cc: * examples/ogg_player_gtkmm/PlayerWindow.cc: * gstreamer/README: Renamed GStreamermm to gstreamermm in these files 2008-03-31 José Alburquerque * gstreamerbase/gstreamerbasemm-0.10.pc.in: Modified requirements to exclude gstreamermm-0.10 (logically, developer should include that requirement himself if needed) 2008-03-31 José Alburquerque * gstreamer/src/caps.hg: Added some hand-wrapped functions to list of _IGNOREs * gstreamer/src/gst_signals.defs: * gstreamer/src/xml.hg: Wrapped signal "object-loaded" (which signals when an object is loaded from xml) 2008-03-30 José Alburquerque * gstreamer/src/interface.hg: Added list of functions from gstelement that appear when processed by glibmm to an _IGNORE() construct 2008-03-30 José Alburquerque * configure.ac: Added new gst-interfaces-0.10 dependency to gstreamerbase branch * build_shared/Makefile_build.am_fragment: Added gstreamer branch includes to "all_includes" (so that gstreamerbase branch can include from it) * gstreamerbase/gstreamerbasemm-0.10.pc.in: Modified requirements to include gstreamermm-0.10 and gst-interfaces-0.10 * gstreamerbase/src/Makefile_list_of_hg.am_fragment: * gstreamerbase/src/xoverlay.ccg: * gstreamerbase/src/xoverlay.hg: Added gst-plugins-base interface gstxoverlay 2008-03-28 José Alburquerque * gstreamer/gstreamermm/init.cc: Modified init() to call GstBase::wrap_init() (which initializes list of wrapper functions for gstreamerbasemm) * Makefile.am: Changed order of subdirectories so that gstreamerbase is built before gstreamer directory (since gstreamermm depends on gstreamerbasemm -- Gst::init() calls GstBase::wrap_init()) * build_shared/Makefile_build.am_fragment: Added gstreamerbase includes to "all_includes" so that Gst::init() knows about GstBase::wrap_init() * gstreamer/gstreamermm/Makefile.am: Added libgstreamerbasemm-0.10.la to list of libs to be linked to gstreamermm so that GstBase::wrap_init() is linked in and Gst::init() does not get an undefined reference error 2008-03-27 José Alburquerque * gstreamer/src/enums.ccg: Changed general include to more specific one 2008-03-27 José Alburquerque Dispersed enums from: * gstreamer/src/enums.hg: * gstreamer/src/enums.ccg: to: * gstreamer/src/bin.hg: * gstreamer/src/buffer.ccg: * gstreamer/src/buffer.hg: * gstreamer/src/bus.ccg: * gstreamer/src/bus.hg: * gstreamer/src/clock.ccg: * gstreamer/src/clock.hg: * gstreamer/src/element.ccg: * gstreamer/src/element.hg: * gstreamer/src/event.ccg: * gstreamer/src/event.hg: * gstreamer/src/format.ccg: * gstreamer/src/format.hg: * gstreamer/src/index.ccg: * gstreamer/src/index.hg: * gstreamer/src/iterator.ccg: * gstreamer/src/iterator.hg: * gstreamer/src/message.ccg: * gstreamer/src/message.hg: * gstreamer/src/pad.ccg: * gstreamer/src/pad.hg: * gstreamer/src/padtemplate.ccg: * gstreamer/src/padtemplate.hg: * gstreamer/src/parse.ccg: * gstreamer/src/parse.hg: * gstreamer/src/plugin.ccg: * gstreamer/src/plugin.hg: * gstreamer/src/pluginfeature.ccg: * gstreamer/src/pluginfeature.hg: * gstreamer/src/query.ccg: * gstreamer/src/query.hg: * gstreamer/src/taglist.ccg: * gstreamer/src/taglist.hg: * gstreamer/src/task.ccg: * gstreamer/src/task.hg: * gstreamer/src/urihandler.ccg: * gstreamer/src/urihandler.hg: * gstreamer/src/xml.hg: * gstreamer/src/gst_enums.defs: Handwrote BusFlags, ElementFlags and PadFlags to wrap corresp. enums * docs/reference/Doxyfile.in: Modified to display one enum value per line in docs * docs/reference/Makefile.am: Modified docs build to depend on Doxyfile which reponds better to changes to Doxyfile.in file 2008-03-26 José Alburquerque * gstreamer/src/gst_docs.xml: * gstreamerbase/src/gstbase_docs.xml: Generated docs with all directories that includes API that may be wrapped 2008-03-26 José Alburquerque * gstreamer/src/enums.hg: * gstreamer/src/gst_enums.defs: wrapped enum ClockFlags using _WRAP_ENUM() (by writing out the def) so that its Glib::Value<..> class is defined 2008-03-25 José Alburquerque * gstreamer/src/generate-enums.sh: * gstreamer/src/generate-methods.sh: * gstreamerbase/src/generate-enums.sh: * gstreamerbase/src/generate-methods.sh: Removed these because just realized that these are specific to a single system 2008-03-25 José Alburquerque * gstreamer/src/generate-enums.sh: * gstreamer/src/generate-methods.sh: Added two scripts to generate gst_enums.defs and gst_methods.def (when generating must take care of handwritten things in gst_methods.defs -- see comment at top of file which would be best to keep in file after regenerating) * gstreamerbase/src/generate-enums.sh: * gstreamerbase/src/generate-methods.sh: Added scripts to generate gstbase_enums.defs and gstbase_methods.defs * gstreamerbase/src/gstbase_enums.defs: * gstreamerbase/src/gstbase_methods.defs: Regenerated these after building most recent update of gst-plugins-base 2008-03-25 José Alburquerque * gstreamer/src/enums.hg: Removed redundant _WRAP_ENUM() (ClockFlags is already defined); Modified brace placements to match rest of sources * gstreamer/src/gst_enums.defs: * gstreamer/src/gst_methods.defs: Regenerated both def files to include API in gst/{base,controller,dataprotocol,net,check} include directories (along with standard includes in gst/) 2008-03-25 José Alburquerque * configure.ac: Added lines to define GSTREAMERMM_DOXYGEN_INPUT (which includes directories to be proecessed by Doxygen) -- Adapted from goocanvasmm * docs/reference/Doxyfile.in: Modified to use GSTREAMERMM_DOXYGEN_INPUT for input files 2008-03-24 José Alburquerque * Makefile.am: * docs/Makefile.am: * docs/reference/Makefile.am: Modified recursive Makefile.am structure to include doc-clean, doc-clean-recursive and doc-rebuild. Also modified to use beautify_docs.pl and to be dependent on *.h source files (adapted from glibmm -- thanks) 2008-03-24 José Alburquerque * gstreamer/src/buffer.hg: Fixed class docs class name * tools/extra_defs_gen/Makefile.am: Fixed typo 2008-03-24 José Alburquerque * gstreamerbase/gstreamerbasemm-0.10.pc: * gstreamerbase/gstreamerbasemmconfig.h: Removed these files which the build automatically generates 2008-03-24 José Alburquerque * gstreamer/src/bus.hg: Corrected class docs typo * gstreamer/src/caps.hg: * gstreamer/src/structure.hg: Renamed is_empty() and get_size() methods to empty() and size() (which is compatible with C++ STL names); Also renamed is_equal..() methods (in caps.hg) to equals..() * gstreamer/src/value.hg: Corrected class docs to have a short single line intro statement and then the explanation 2008-03-23 José Alburquerque * gstreamerbase/Makefile.am: * gstreamerbase/README: * gstreamerbase/gstreamerbasemm-0.10.pc: * gstreamerbase/gstreamerbasemm-0.10.pc.in: * gstreamerbase/gstreamerbasemm.h: * gstreamerbase/gstreamerbasemm/Makefile.am: * gstreamerbase/gstreamerbasemm/gst_wrap_init.h: * gstreamerbase/gstreamerbasemm/init.cc: * gstreamerbase/gstreamerbasemm/init.h: * gstreamerbase/gstreamerbasemm/private/Makefile.am: * gstreamerbase/gstreamerbasemm/wrap_init.h: * gstreamerbase/gstreamerbasemmconfig.h: * gstreamerbase/gstreamerbasemmconfig.h.in: * gstreamerbase/src/Makefile.am: * gstreamerbase/src/Makefile_list_of_hg.am_fragment: * gstreamerbase/src/gstbase.defs: * gstreamerbase/src/gstbase_docs.xml: * gstreamerbase/src/gstbase_docs_override.xml: * gstreamerbase/src/gstbase_others.defs: * gstreamerbase/src/gstbase_signals.defs: * gstreamerbase/src/gstbase_vfuncs.defs: Added subdirectory gstreamerbase in which to wrap gst-plugins-base module relevant API (just what's needed) * gstreamerbase/src/gstbase_enums.defs: * gstreamerbase/src/gstbase_methods.defs: Generated enums and methods for new gstreamerbasemm branch using h2def.py and enum.pl (see wrapping docs) * tools/extra_defs_gen/Makefile.am: * tools/extra_defs_gen/generate_defs_gstbase.cc: Added an extra defs generator for the gstreamerbasemm branch and mentioned it in Makefile.am so that it is built (the types that need to be generated still have to be added as the needed parts of gst-plugins-base are wrapped) * Makefile.am: Mentioned gstreamerbase dir to include in build * configure.ac: Modified to check needed dependencies, include shared object version and generate makefiles for gstreamerbasemm branch 2008-03-23 José Alburquerque * gstreamer/gstreamermm/gst_wrap_init.h: * gstreamer/gstreamermm/init.cc: * gstreamer/gstreamermm/init.h: * gstreamer/gstreamermm/version.cc: * gstreamer/gstreamermm/wrap_init.h: Moved needed includes from *.h files to *.cc files (speeds up compile for applications) 2008-03-19 José Alburquerque * tests/test-caps.cc: Modified test to use a Gst::Caps to link two Gst::Elements using feature (caps) negotiation (filtered linking) as exemplified in Gstreamer Application Development Manual (GADM) section 8.3.2 2008-03-19 José Alburquerque * gstreamer/src/value.ccg: * gstreamer/src/value.hg: Added Fourcc class; Added constructor docs; Refined previous docs to reference GstValue for better understanding of classes in value.hg * gstreamer/src/structure.ccg: * gstreamer/src/structure.hg: Modified get_fraction() to take a Gst::Fraction& in which to set values; Fixed docs for get_date() and get_fraction(); Added conversion lines in set_field() for Glib::Value, Glib::Value, Glib::Value and Glib::Value * gstreamer/gstreamermm/miniobject.cc: * gstreamer/gstreamermm/miniobject.h: Added take_copy param to MiniObject(GstMiniObject*, bool); Added definitions swap(), operator=() and MiniObject(const MiniObject&) (the copy constructor is needed if it is embedded in a Glib::Value<...>) * tests/test-structure.cc: Modified to test setting and getting a Glib::Date field (embedded in a Glib::Value<...>) * tools/m4/class_boxedtype_ncopy.m4: Added comment on destruction of underlying gobject 2008-03-18 José Alburquerque * tools/m4/class_boxedtype_ncopy.m4: * tools/m4/convert.m4: Added wrapper to be used with GstStructure which with GstCaps wants wrapper to work with original gobject and not to be delete when its ownership has been taken over by the GstCaps. * gstreamer/src/structure.hg: Modified Gst::Structure to use _CLASS_BOXED_TYPE_NCOPY so that it mostly doesn't copy the gobject and is flexible at destroying underlying gobject when wrapper is destroyed which makes it easier for Gst::Caps to "take ownership" of Gst::Structures * gstreamer/src/caps.ccg: * gstreamer/src/caps.hg: Reimplemented get_structure() to function properly and to return a const Gst::Structure*. Modified create(Gst::Structure&) to "take ownership" of the Gst::Structure (as GstCaps does with underlying gobject). Also handwrote append_structure() and merge_structure() to "take ownership" of the Gst::Structure which is appended/merged (as GstCaps does with underlying gobject) * tests/Makefile.am: * tests/test-caps-structures.cc: Added test to add/remove and get Gst::Structures in a Gst::Caps * docs/Makefile.am: Added copyright statement at top 2008-03-13 José Alburquerque * gstreamer/src/event.ccg: * gstreamer/src/event.hg: * gstreamer/src/message.ccg: * gstreamer/src/message.hg: * gstreamer/src/query.ccg: * gstreamer/src/query.hg: Rewrote get_structure() methods to return a const Structure* (and only get the structure once because it never changes) * tests/test-event-wrap.cc: * tests/test-message-wrap.cc: * tests/test-query-wrap.cc: Rewrote tests to get structures and print their names (to verify that get_structure() methods work) * gstreamer/src/value.hg: Removed blank line 2008-03-13 José Alburquerque * gstreamer/src/value.hg: Corrected class docs (@code/@endcode sections) which was impeding docs to appear in html 2008-03-12 José Alburquerque * gstreamer/src/structure.ccg: * gstreamer/src/structure.hg: Modified get_field() to return the GValue from GStreamer as is (without converting to, for example Glib::Value) in case that value is used elsewhere and needs to be as GStreamer interprets it; Added comment in set_field() docs to explain how setting special GStreamer fields works * gstreamer/src/value.ccg: * gstreamer/src/value.hg: Added "const ValueBase&" constructors so that when GValues are obtained from a Gst::Structure if the GValue holds any of these special types they can be easily obtained using theese classes. * tests/test-structure.cc: Modified test to use "const ValueBase&" constructors when getting values from Gst::Structure 2008-03-11 José Alburquerque * gstreamer/src/value.ccg: * gstreamer/src/value.hg: Added class definitions Fraction, IntRange, DoubleRange and FractionRange with docs explaining that these classes can be wrapped in a Glib::Value<...> to be used to set GStreamer specific fields in Gst::Caps Structures (Still need to look at GDate and possibly the GStreamer fourcc gtype GST_TYPE_FOURCC) (Must fix config files so these classes appear in docs) * gstreamer/src/structure.ccg: Modified get_field() and set_field() to "translate" to/from the GStreamer gtypes to the gstreamermm gtypes when setting and getting fields. * tests/test-structure.cc: Modified source to test the adding and retrieving of the new classes in value.hg to a Gst::Structure 2008-03-10 José Alburquerque * gstreamer/src/bin.hg: * gstreamer/src/buffer.hg: * gstreamer/src/bus.hg: Added class docs header * gstreamer/src/clock.ccg: * gstreamer/src/clock.hg: Added class docs header; Wrapped ClockID methods get_time(), wait(), wait_async(), and unschedule(); Replaced new by create in new_single_shot_id() and new_periodic_id() method names (must still wrap these) * gstreamer/src/enums.hg: Added ClockFlags enum * gstreamer/src/element.ccg: * gstreamer/src/element.hg: * gstreamer/src/filter.ccg: * gstreamer/src/index.ccg: * gstreamer/src/interface.hg: * gstreamer/src/pad.ccg: * gstreamer/src/registry.ccg: * gstreamer/src/structure.ccg: * gstreamer/src/taglist.ccg: Replaced gpointer with void* in callbacks; Rewrote slot code to create copies as pointers and delete the copies in callbacks once done (for those slots that are called only once) * tools/m4/convert_gst.m4: Added ClockTimeDiff conversion 2008-03-10 José Alburquerque * gstreamer/src/caps.hg: * gstreamer/src/event.hg: * gstreamer/src/message.hg: * gstreamer/src/query.hg: Added get_structure() docs commenting that assigning structures engenders a copy and not the original * tests/test-structure.cc: Modified test to create a structure and not use one from a Query * gstreamer/src/clock.hg: Moved ClockTime, ClockTimeDiff and CLOCK_TIME_NONE to: * gstreamer/src/enums.hg: 2008-03-09 José Alburquerque * gstreamer/src/caps.ccg: * gstreamer/src/caps.hg: - Added create(Structure& s) method; - Added class and method docs - Wrote out get_structure() to return Structure& and not Structure* (getting Gst::Structures feels a bit weird because since Gst::Structure is a boxed type, copies are always created and developers may think that once they get a Gst::Structure, if the owner of the Gst::Structure modifies it, it will be reflected in the copy they obtain. This doesn't seem to be so) * tools/m4/convert_gst.m4: Fixed GstStructure conversions 2008-03-08 José Alburquerque * gstreamer/src/bin.ccg: * gstreamer/src/bin.hg: Used WRAP_CREATE() for create() method; Made add() and remove() not throw exceptions (unsure if need exceptions presently); Added a needed extra reference to Element in add() method to avoid warning (see comment in method implementation) * gstreamer/src/pipeline.ccg: * gstreamer/src/pipeline.hg: Used _WRAP_CREATE() for create() method * gstreamer/src/element.hg: Added comment about needing _CTOR_DEFAULT 2008-03-07 José Alburquerque * gstreamer/src/structure.ccg: Added return of "this Structure" in set_field() and remove_field() (had neglected this in last commit thus not allowing test-structure to run) 2008-03-06 José Alburquerque * gstreamer/src/structure.ccg: * gstreamer/src/structure.hg: Modified set_field() and remove_field() to return the Structure (thus allowing "chain" setting and removing); Added docs; Reordered methods to C API order. Must find a way of adding gtypes GST_TYPE_FRACTION, GST_TYPE_DATE along with other gstreamer specific gtypes like G_TYPE_INT_RANGE to Structure correctly (see GstValue C API docs and GStreamer Application Development Manual sections 8.2.2 and 8.2.3) * tests/test-structure.cc: Modified test to use "chain setting" * gstreamer/src/element.hg: Removed virtual from ElementInterfaced destructor def since its base class (Element) destructor is virtual which makes derived destructor virtual already 2008-03-05 José Alburquerque * gstreamer/src/caps.ccg: * gstreamer/src/caps.hg: Added gst_caps_new_empty() as new function in _CLASS_OPAQUE_REFCOUNTED which automatically generates create() method. Commented out create_full() until we can figure out how to have a list of Structures for parameter * gstreamer/src/clock.hg: Removed unused _CTOR_DEFAULT * gstreamer/src/element.ccg: * gstreamer/src/element.hg: Made get_compatible_{pad,pad_template}() methods not throw exceptions because the returned RefPtr<> will be NULL if none is found. Used const Glib::ustring& in link_pads_filtered() method * gstreamer/src/plugin.hg: Removed completed TODO * gstreamer/src/tagsetter.hg: Typos 2008-03-04 José Alburquerque * gstreamer/gstreamermm.h: Added tagsetter.h to includes 2008-03-04 José Alburquerque * gstreamer/src/Makefile_list_of_hg.am_fragment: * gstreamer/src/tagsetter.ccg: * gstreamer/src/tagsetter.hg: Added tagsetter * tools/m4/convert_gst.m4: Added initial conversions to be used with TagSetter when it is wrapped 2008-03-03 José Alburquerque * gstreamer/src/elementfactory.hg: Removed unused struct ElementDetails 2008-03-03 José Alburquerque * gstreamer/src/element.ccg: Added GWeakNotify callback which will be called for each ElementInterfaced instance to delete them * gstreamer/src/element.hg: Modified constructor of ElementInterfaced to add a weak ref to underlying GObject; Added destructor to remove reference to underlying GObject so that the GObject is not "mangled" when ElementInterfaced is destroyed 2008-03-03 José Alburquerque * gstreamer/src/element.hg: Added templated, Element derived Gst::ElementInterfaced class which implements the template argument. This class is used in the templated Gst::Interface::cast() method to cast the element's RefPtr to a RefPtr of a Gst::ElementInterfaced that implements the target interface * gstreamer/src/interface.hg: Modified Gst::Interface::cast() method to return a RefPtr to a Gst::ElementInterfaced class * tests/test-create-element.cc: Modified to test casting from Glib::RefPtr to Glib::RefPtr< Gst::ElementInterfaced<..> > 2008-03-02 José Alburquerque * gstreamer/src/element.hg: Removed Gst::Interface derivation as not all elements implement interface (see bug #519584) * gstreamer/src/interface.hg: Made implements() static and renamed to element_implements(); Added static cast() method * tests/test-create-element.cc: Changed test to use Gst::Interface::element_implements() method and Gst::Interface::cast() methods (test two methods) though cast() method does not quite work * tools/m4/convert_gst.m4: Added conversion for Gst::Interface::element_implements() method (from const Glib::RefPtr& to GstElement*) 2008-02-29 José Alburquerque * gstreamer/src/element.ccg: * gstreamer/src/element.hg: Made Element derive also from Gst::Interface (newly added 2008-02-27); Removed create() method and use Gst::ElementFactory to create elements (as C API does); Added class docs * examples/element_link/element_link.cc: * examples/ogg_player/main.cc: * examples/ogg_player_gtkmm/main.cc: * tests/test-link-elements.cc: * tests/test-pipeline-add-element.cc: Modified to create elements using Gst::ElementFactory::create() * tests/test-create-bin.cc: Added lines to test derived interface ChildProxy * tests/test-create-element.cc: Added lines to test the Gst::Interface::implements() method; Filed bug #519584 due to segfault. May have to rethink Gst::Element's derivation of Gst::Interface because as bug report says, not all elements implement GstImplementsInterface * gstreamer/src/urihandler.hg: Added accidental remove of new_uri() method in last commit 2008-02-28 José Alburquerque * gstreamer/src/registry.hg: Added signals "feature-added" and "plugin-added" * gstreamer/src/urihandler.hg: Added signal "new-uri" * gstreamer/src/gst_signals.defs: Repaired Registry and URIHandler signal defenitions * tools/m4/convert_gst.m4: Added conversions for Registry and URIHandler signals 2008-02-28 José Alburquerque * gstreamer/src/elementfactory.hg: Renamed make() to create() * gstreamer/src/pluginfeature.ccg: * gstreamer/src/pluginfeature.hg: Removed type_name_filter() (It is a reimplementation of a C filter callback) and struct TypeNameData (used only in type_name_filter() method) * gstreamer/src/indexfactory.hg: * gstreamer/src/plugin.hg: * gstreamer/src/registry.hg: Added some _IGNORE's * tools/m4/convert_gst.m4: Removed unused TypeNameData conversion; Finished ordering conversions 2008-02-27 José Alburquerque * gstreamer/gstreamermm.h: * gstreamer/src/Makefile_list_of_hg.am_fragment: * gstreamer/src/interface.ccg: * gstreamer/src/interface.hg: Added interface "Interface" * gstreamer/src/registry.hg: Added TODO * gstreamer/src/segment.hg: * tools/m4/convert_gst.m4: Made some changes to Segment (I think both gstsegment.h and gsttasklist.h problems commented below may be fixed see Bug reports #518932, #518934 and #518940) 2008-02-25 José Alburquerque * gstreamer/src/taglist.ccg: * gstreamer/src/taglist.hg: Removed SlotMerge code (which will not be needed because a merge callback is only required for registering new taglists which is done more appropriately in C API directly) * gstreamer/src/segment.hg: Removed unused whitespace 2008-02-25 José Alburquerque * gstreamer/src/segment.ccg: * gstreamer/src/segment.hg:Added boxed type Segment, but not yet to Makefile_list_of_hg.am_fragment because gst_segment_copy() is not declared in gstsegment.h * gstreamer/src/taglist.ccg: * gstreamer/src/taglist.hg: Added taglist, but not yet to Makefile_list_of_hg because GstTagList is declared as "struct GstStructure GstTagList" instead of "struct _GstTagList GstTagList" in gsttaglist.h * gstreamer/src/filter.ccg: * examples/ogg_player_gtkmm/PlayerWindow.cc: Minor TODO addition and tab to spaces conversion 2008-02-25 Siavash Safi * examples/ogg_player/main.cc: Commented out unused argument `const Glib::RefPtr&' in on_bus_message * examples/ogg_player_gtkmm/PlayerWindow.cc: Commented out unused argument `const Glib::RefPtr&' in PlayerWindow::on_bus_message, `Gtk::ScrollType' in PlayerWindow::on_scale_value_changed * gstreamer/gstreamermm/init.cc: Fixed init_check() to return the value from C API * gstreamer/src/element.ccg: Fixed send_event() to return the value from C API * gstreamer/src/filter.ccg: Fixed run() to return `Glib::ListHandle< Glib::RefPtr >', note: the ownership of items is not known, see the todo * gstreamer/src/index.ccg: * gstreamer/src/index.hg: Added `const Glib::RefPtr&' to SlotFilter, SlotResolver * gstreamer/src/pad.ccg: Fixed push(), push_event(), send_event(), chain() to return the value from C API * gstreamer/src/pad.hg: Added `const Glib::RefPtr&' to SlotBlock * gstreamer/src/structure.ccg: Fixed foreach(), map_in_place() to return the value from C API * tools/m4/convert_gst.m4: Added _CONV_ENUM(Gst,FlowReturn) 2008-02-24 José Alburquerque * gstreamer/src/bus.ccg: * gstreamer/src/filter.ccg: * gstreamer/src/index.ccg: * gstreamer/src/index.hg: * gstreamer/src/pad.ccg: * gstreamer/src/pad.hg: * gstreamer/src/task.ccg: Renamed Slot types and callbacks (for consistency with other *mm projects) * gstreamer/src/parse.hg: Corrected class name in docs from GstParse to Parse. 2008-02-22 José Alburquerque * COPYING: Added GNU License 2008-02-21 José Alburquerque * gstreamer/src/Makefile_list_of_hg.am_fragment: * gstreamer/src/registry.ccg: * gstreamer/src/registry.hg: Added Registry * gstreamer/src/plugin.ccg: * gstreamer/src/plugin.hg: Removed unnecessary SlotInit code and name_filter() method (which is a standard gstreamer filter "slot" not a member method) * gstreamer/src/pluginfeature.hg: Renamed SlotFeatureFilter to SlotFilter * tools/m4/convert_gst.m4: Added PluginFeature and Registry conversions; Removed unused GstURIHandler conversion