Commit graph

39 commits

Author SHA1 Message Date
Arun Raghavan
c95985640f codegen: Respect ignore-type for miniobjects
https://bugzilla.gnome.org/show_bug.cgi?id=640410
2011-02-09 00:12:01 +00:00
Arun Raghavan
93fd2d4f43 codegen: Handle empty lines in overrides gracefully
Without this, having an empty line in an override will cause codegen to
unceremoniously choke to death.

https://bugzilla.gnome.org/show_bug.cgi?id=640341
2011-02-09 00:11:40 +00:00
Arun Raghavan
59fc7cb120 codegen: Ignore functions whose return type is ignored
This makes sure that if X is an ignored type, then functions that return
an object of type X (or a pointer type based on X) are also ignored.

Fixes #639293
2011-01-12 15:04:27 +01:00
Arun Raghavan
778159a685 codegen: Handle pointer types in is_type_ignored()
This ensures that if type X is ignored, then pointers to X (and pointers
to pointers to X, etc.) are also ignored.

Caveat: this also means that ignore-type should only be used with base
types and not pointer types.

Fixes #639293
2011-01-12 15:04:04 +01:00
Edward Hervey
d14595f052 codegen: Fix const GBoxed return wrapping. 2009-07-01 10:57:29 +02:00
Edward Hervey
49fc5b26ff codegen: Allow ignoring enum values. Partially fixes #581729
This is needed to ignore new enum values that are added in new gstreamer
core/base versions.
2009-05-07 14:49:35 +02:00
Edward Hervey
7a2babed30 codegen/argtypes.py: Add handling of 'keep-refcount' for GBoxed arguments.
Original commit message from CVS:
* codegen/argtypes.py:
Add handling of 'keep-refcount' for GBoxed arguments.
* gst/gst.defs:
Mark the appropriate 'gst_message_new_*' arguments when the method
takes the ownership of the passed gst.Structure/gst.TagList
* testsuite/test_message.py:
Test for creating messages that take a gst.Structure/gst.TagList as
argument and make sure they're properly created.
Fixes #556054
2008-12-06 15:41:41 +00:00
Edward Hervey
605a8acde5 codegen/codegen.py: Also ignore pointers and boxed if they're in ignore-type.
Original commit message from CVS:
* codegen/codegen.py:
Also ignore pointers and boxed if they're in ignore-type.
* gst/gst-0.10.7.ignore:
Add gst_type_find_factory_call_function to functions ignored before
0.10.7 since it requires GstTypeFind arguments.
2007-04-04 12:57:32 +00:00
Edward Hervey
468e10172a codegen/codegen.py: Don't register interface if it is ignored
Original commit message from CVS:
* codegen/codegen.py:
Don't register interface if it is ignored
* configure.ac:
GST_PB_MINOR_VERSION doesn't appear by magic, you actually have to
parse it from pkg-config !
* gst/gst-pb-0.10.11.ignore:
Ignore GstVideoOrientation type altogether.
* gst/interfaces.override:
Include gstversion.override so that non-existent API is properly ignored.
Should fix #401051 once and for good now.
2007-01-29 12:27:46 +00:00
Edward Hervey
4acc40c8d2 codegen/codegen.py: When chaining up to the parent class methods from python to C, we need to allow threads (i.e. rel...
Original commit message from CVS:
* codegen/codegen.py:
When chaining up to the parent class methods from python to C, we need
to allow threads (i.e. release the GIL).
* gst/gstbase.override:
* gst/gstbin.override:
Modify __do_*() overrides in the same way as above.
2007-01-10 16:13:29 +00:00
Edward Hervey
41e2b77060 Move GstIterator ArgType definition and usage for the codegenerator to gst/arg-types.py. It has nothing to do in the ...
Original commit message from CVS:
* codegen/argtypes.py:
* gst/arg-types.py:
Move GstIterator ArgType definition and usage for the codegenerator
to gst/arg-types.py. It has nothing to do in the codegenerator code.
2006-12-16 14:41:21 +00:00
Edward Hervey
34d62eb035 codegen/override.py: Fix the lookup of override files in the specified search directories.
Original commit message from CVS:
* codegen/override.py:
Fix the lookup of override files in the specified search directories.
* gst/Makefile.am:
Don't distribute gstversion.override
Fixup .defs => .c make instructions
All the above fixes the cases where you're building in a directory
different from the source directory.
2006-11-22 17:20:21 +00:00
Edward Hervey
c79185a013 codegen/argtypes.py: Revert the UInt64Arg modifications from upstream. It forces us to give a PyLong, whereas we can ...
Original commit message from CVS:
* codegen/argtypes.py:
Revert the UInt64Arg modifications from upstream. It forces us to give
a PyLong, whereas we can directly use the 'K' argument parsing for that.
2006-10-03 09:24:11 +00:00
Edward Hervey
c070c75beb codegen/codegen.py: newer pygobject's pyg_constant_strip_prefix() now return a const gchar * whereas PyModule_AddIntC...
Original commit message from CVS:
* codegen/codegen.py:
newer pygobject's pyg_constant_strip_prefix() now return a const gchar *
whereas PyModule_AddIntConstant() takes a normal gchar*.
Closes #349623
2006-08-08 19:21:51 +00:00
Edward Hervey
1c5a18e82c Removal of all glib < 2.8 cruft since GStreamer core now requires glib >= 2.8
Original commit message from CVS:
Removal of all glib < 2.8 cruft since GStreamer core now requires
glib >= 2.8
* codegen/argtypes.py:
remove gstobject cruft from ObjectArg
* configure.ac:
Require glib >= 2.8.0
* gst/Makefile.am:
* gst/pygstobject.c:
* gst/pygstobject.h:
Remove pygstobject.[ch]
* gst/common.h:
Don't include removed header file.
* gst/gst.override:
* gst/gstbin.override:
* gst/gstbus.override:
* gst/gstelement.override:
* gst/gstelementfactory.override:
* gst/gstmessage.override:
* gst/gstobject.override:
* gst/gstpad.override:
* gst/interfaces.override:
* gst/pygstiterator.c: (pygst_iterator_iter_next):
Switch from using pygstobject* functions to using pygobject* functions.
* gst/gstmodule.c: (sink_gstobject), (init_gst):
Move GstObject sink function here and use standard gobject refcounting.
2006-07-02 15:25:04 +00:00
Edward Hervey
cee7d60ee4 codegen/codegen.py: Always unblock threads when going to C.
Original commit message from CVS:
* codegen/codegen.py:
Always unblock threads when going to C.
* gst/gst.defs:
Revert unblock-threads noise.
2006-06-15 09:58:08 +00:00
Edward Hervey
bc17f73dcb codegen/: Updated codegenerator to current pygtk one.
Original commit message from CVS:
* codegen/Makefile.am:
* codegen/argtypes.py:
* codegen/codegen.py:
* codegen/definitions.py:
* codegen/defsconvert.py:
* codegen/defsparser.py:
* codegen/docextract.py:
* codegen/docextract_to_xml.py:
* codegen/docgen.py:
* codegen/h2def.py:
* codegen/mergedefs.py:
* codegen/missingdefs.py:
* codegen/mkskel.py:
* codegen/override.py:
* codegen/reversewrapper.py:
Updated codegenerator to current pygtk one.
* gst/gst.defs:
* gst/gst.override:
* gst/gstpad.override:
Update defs for new constructor definition.
* testsuite/test_bin.py:
With new constructors, pygobject will try to convert the argument to the
proper GType (here a string).
2006-06-09 10:50:21 +00:00
Edward Hervey
b01b9197c7 codegen/: Added code to ignore type and the function/methods/classes that use them.
Original commit message from CVS:
* codegen/codegen.py:
* codegen/override.py:
Added code to ignore type and the function/methods/classes that use
them.
* gst/gst.override:
ignore methods/classes/types depending on how GStreamer core was built:
_ GST_DISABLE_GST_DEBUG
_ GST_DISABLE_LOADSAVE
_ GST_DISABLE_PARSE
2006-05-09 13:13:48 +00:00
Edward Hervey
b07c954fb9 codegen/argtypes.py: Update from upstream codegen for UInt argtype.
Original commit message from CVS:
* codegen/argtypes.py:
Update from upstream codegen for UInt argtype.
* gst/gst-types.defs:
Added GstIndexEntry boxed type.
* gst/gstbase.override:
Wrapped gst.BaseSrc::get_times() and gst.PushSrc::create() virtual
methods.
gst.BaseSrc and gst.PushSrc virtual methods are now completely wrapped.
2006-04-10 09:21:09 +00:00
Edward Hervey
53e67e611a codegen/: New --extendpath option for codegenerator so we can add extra path to search for included override files.
Original commit message from CVS:
* codegen/codegen.py:
* codegen/override.py:
New --extendpath option for codegenerator so we can add
extra path to search for included override files.
2006-03-14 12:25:22 +00:00
Andy Wingo
fd727fd969 codegen/argtypes.py (UInt64Arg.write_param): Parse long arguments using ParseTuple and friends; allows ints to passed...
Original commit message from CVS:
2006-02-06  Andy Wingo  <wingo@pobox.com>

* codegen/argtypes.py (UInt64Arg.write_param): Parse long
arguments using ParseTuple and friends; allows ints to passed for
longs as a side benefit.
2006-02-06 16:24:23 +00:00
Johan Dahlin
7534ba0486 Add GstIterator wrapping and tests.
Original commit message from CVS:
* codegen/argtypes.py:
* gst/Makefile.am:
* gst/common.h:
* gst/gst.defs:
* gst/gstbin.override:
* gst/gstelement.override:
* gst/pygstiterator.c: (pygst_iterator_dealloc),
(pygst_iterator_iter_next), (pygst_iterator_new):
* testsuite/test_iterator.py:
Add GstIterator wrapping and tests.
2005-10-07 01:21:57 +00:00
Thomas Vander Stichele
2d361383fc codegen/argtypes.py: act on the mini object properly, not on the py object
Original commit message from CVS:

* codegen/argtypes.py:
act on the mini object properly, not on the py object
2005-10-05 14:51:43 +00:00
Edward Hervey
16bb9b838e Added 'keeprefcount' argument for function/method parameters in order to cope with functions/methods that decrement t...
Original commit message from CVS:
* codegen/argtypes.py:
* codegen/codegen.py:
* codegen/definitions.py:
* gst/arg-types.py:
Added 'keeprefcount' argument for function/method parameters in order to
cope with functions/methods that decrement the refcount of the given
parameter
* gst/gst.defs:
Added 'keeprefcount' for buffer argument of gst_pad_push() wrapper.
2005-10-05 13:48:21 +00:00
Edward Hervey
3241bda36a codegen/codegen.py: Added pyg_[begin|end]_allow_threads before and after call of C methods in python methods wrappers.
Original commit message from CVS:
* codegen/codegen.py:
Added pyg_[begin|end]_allow_threads before and after call of C methods
in python methods wrappers.
This should get rid of more threading issues...
Should we also do that for function calls ?
2005-10-04 14:31:47 +00:00
Thomas Vander Stichele
e9121b80d4 add Makefile.am
Original commit message from CVS:
add Makefile.am
2005-10-04 08:18:27 +00:00
Thomas Vander Stichele
5768672390 gst/: add/move some code to handle wrapping/refcounting of possible
Original commit message from CVS:
* gst/Makefile.am:
* gst/common.h:
* gst/pygstobject.c: (pygstobject_sink), (pygstobject_new),
(pygst_object_unref):
* gst/pygstobject.h:
* gst/gstmodule.c: (init_gst):
add/move some code to handle wrapping/refcounting of possible
GstObject
* codegen/argtypes.py:
* gst/gstbin.override:
* gst/gstbus.override:
* gst/gstelement.override:
* gst/gstpad.override:
* gst/interfaces.override:
use this reffing code
* gst/gst-types.defs:
* gst/gst.override:
add a __gstrefcount__ field to GstObject types
add tp_traverse, tp_dealloc and tp_clear, so we handle refcounting
properly related to garbage collection
* testsuite/test_element.py:
* testsuite/test_pad.py:
add more tests, add some refcount checks
2005-09-28 12:17:29 +00:00
Edward Hervey
1bc63d73b9 codegen/argtypes.py: Proper handling of 'caller-owns-return' for miniobjects
Original commit message from CVS:
* codegen/argtypes.py:
Proper handling of 'caller-owns-return' for miniobjects
* gst/gst-types.defs:
Updating parenting of classes,
added/removed/updated flags&enums
* gst/gst.defs:
Updated to current core cvs,
Added 'caller-owns-return' properties for functions/methods that require
it
* gst/gst.override:
Don't make *_[un]ref() accessible
* gst/gstbuffer.override:
* gst/gstevent.override:
* gst/gstmessage.override:
* gst/gstquery.override:
Removed hack-ish wrappers since codegenerator handles
'caller-owns-return' methods/functions
* gst/gstmodule.c: (sink_gstobject), (init_gst):
Re-enabled sink function
* gst/libs.defs:
Updated to current core cvs
Removed Adapter
* gst/pygstminiobject.c:
* gst/pygstminiobject.h:
removed _new_noref() hack
2005-09-28 10:58:50 +00:00
Edward Hervey
38acc2aff7 codegen/: Updates from pygtk's codegen and typo fix
Original commit message from CVS:
* codegen/codegen.py:
* codegen/argtypes.py:
Updates from pygtk's codegen and typo fix
2005-08-08 13:47:14 +00:00
Edward Hervey
835f29e2bb codegen/codegen.py: let's not forget to wrap the MiniObject :)
Original commit message from CVS:
* codegen/codegen.py: (GstMiniObjectWrapper.constructor_tmpl):
let's not forget to wrap the MiniObject :)
* gst/gst-types.defs:
* gst/gst.defs:
Always keep up to date with the core
* gst/gstelement.override:
override for gst_element_query_position
* gst/pygstminiobject.c:
* gst/pygstminiobject.h:
* gst/gst.override:
PyGstMiniObject now properly wrap GstMiniObject and are referenced in a
global hash table
2005-06-28 16:13:53 +00:00
Edward Hervey
685c434a03 codegen/: Backport pygtk 2.6.2 codegen
Original commit message from CVS:
* codegen/argtypes.py:
* codegen/codegen.py:
* codegen/definitions.py:
* codegen/defsparser.py:
* codegen/h2def.py:
* codegen/mergedefs.py:
* codegen/reversewrapper.py:
Backport pygtk 2.6.2 codegen
* gst/gst-types.defs:
Added fields for Buffer, Event, Message and Query
Added pre-roll for enum ElementStateReturn
* gst/gst.defs:
Added (define-method for gst_structure_nth_field_name()
* gst/gstelement.override:
Added override for gst_element_get_state
* gst/gstcaps.override:
re-enabled structure functions
2005-06-26 13:59:34 +00:00
Edward Hervey
febd74992d codegen/: Updated codegen to support miniobject
Original commit message from CVS:
* codegen/argtypes.py:
* codegen/codegen.py:
* codegen/definitions.py:
* codegen/defsparser.py:
* codegen/defsconvert.py:
* codegen/docgen.py:
Updated codegen to support miniobject
* gst/Makefile.am:
Use the included (and modified) codegen for code generation.
* gst/pygstminiobject.c:
* gst/pygstminiobject.h:
* gst/pygstminiobject-private.h:
New GstMiniObject inspired from pygobject.[ch] code
* gst/common.h:
* gst/gst-types.defs:
* gst/gst.override:
* gst/gstbuffer.override:
* gst/gstcaps.override:
* gst/gstmodule.c:
* gst/gstpad.override:
Modifications to support MiniObject
* gst/gst.defs:
Allow null second parameter for ElementFactory.create()
and gst.element_factory_make()
2005-06-26 12:36:24 +00:00
Edward Hervey
038f11fafb codegen/: Updated codegen to support miniobject
Original commit message from CVS:
* codegen/argtypes.py:
* codegen/codegen.py:
* codegen/definitions.py:
* codegen/defsparser.py:
* codegen/docgen.py:
Updated codegen to support miniobject
* gst/Makefile.am:
Use the included (and modified) codegen for code generation.
* gst/pygstminiobject.c:
* gst/pygstminiobject.h:
* gst/pygstminiobject-private.h:
New GstMiniObject inspired from pygobject.[ch] code
* gst/common.h:
* gst/gst-types.defs:
* gst/gst.override:
* gst/gstbuffer.override:
* gst/gstcaps.override:
* gst/gstmodule.c:
* gst/gstpad.override:
Modifications to support MiniObject
* gst/gst.defs:
Allow null second parameter for ElementFactory.create()
and gst.element_factory_make()
2005-06-26 12:35:07 +00:00
Johan Dahlin
f63c95390b codegen/codegen.py: Resync (add support for tp_as_buffer)
Original commit message from CVS:
* codegen/codegen.py: Resync (add support for tp_as_buffer)

* gst/gst.override: Support buffer interface for GstBuffer. Move
stuff into common.h, fix wrapping for
gst_pad_template_get_caps_by_name
2004-05-03 09:10:26 +00:00
Johan Dahlin
90579783ce configure.ac (PYGTK_CODEGEN): Use built in code generator again and don't require 2.3.91, 2.0.0 should do fine (FC1 o...
Original commit message from CVS:
* configure.ac (PYGTK_CODEGEN): Use built in code generator again
and don't require 2.3.91, 2.0.0 should do fine (FC1 ok, RH9 isn't)

* TODO: Update

* gst/interfaces.override, gst/play.override: Add typedef for
python < 2.3

* codegen/codegen.py: Readd :/
2004-04-16 16:53:29 +00:00
Johan Dahlin
9e4049710c gst/gst.override (_wrap_gst_element_tp_new): New, just pointing to _wrap_gst_element_factory_make
Original commit message from CVS:
* gst/gst.override (_wrap_gst_element_tp_new): New, just pointing
to _wrap_gst_element_factory_make
(_wrap_gst_element_tp_new): Stub, return 1  so tp_new can be used.

* gst/gst.defs (element_factory_make): Remove is-constructor-of
GstElement.

* codegen/: Remove and use the codegen from pygtk instead

* configure.ac (ACLOCAL): Require 2.3.91 of PyGTK
2004-04-16 11:44:06 +00:00
Johan Dahlin
5e7dffcf4d gst/*: Move interfaces over here, make it build, remove gstreamer.py
Original commit message from CVS:
* gst/*: Move interfaces over here, make it build, remove gstreamer.py
2004-03-15 14:25:10 +00:00
Johan Dahlin
88f7dd3c95 gstinterfaces/Makefile.am: clean up a little bit
Original commit message from CVS:
* gstinterfaces/Makefile.am: clean up a little bit

* gstinterfaces/__init__.py (devloc): s/gstreamer/gst/

* codegen: Resync and appy my interface constructor patch
2004-03-12 09:58:54 +00:00
Johan Dahlin
a8ef403515 codegen/*: Copy PyGTK code generator here, to avoid depending on latest version.
Original commit message from CVS:
* codegen/*: Copy PyGTK code generator here, to avoid depending on
latest version.

* configure.ac: Add versioning, ala pygtk, and use the internal
code generator instead of the installed one
2004-03-05 10:46:24 +00:00