From daff06b2e8a0a390527032e77453c4b114ea8b98 Mon Sep 17 00:00:00 2001 From: Erik De Rijcke Date: Fri, 17 Feb 2017 15:17:58 +0100 Subject: [PATCH] add missing gstcontext java mapping, this fixes #648 Closes #669 --- bindings/java/gen_jni.py | 10 +++++++++- bindings/java/java_generator.py | 13 +++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/bindings/java/gen_jni.py b/bindings/java/gen_jni.py index c83c60da..7ebdb535 100755 --- a/bindings/java/gen_jni.py +++ b/bindings/java/gen_jni.py @@ -38,7 +38,7 @@ from type_registry import TypeRegistry from type_registry import TypeTransform from type_registry import GirMetaType -from standard_types import standard_types +from standard_types import standard_types, GObjectMetaType from standard_types import ObjectMetaType ###### ####### ## ## ###### ######## @@ -144,6 +144,10 @@ def transform_to_c(self): return TypeTransform() +class GstContextDummy(GObjectMetaType(gir_type='GstContext', c_type='OwrGstContext', prefix=None)): + pass + + def remove_ignored_elements(xml_root): def remove_elem(path): parent = xml_root.find(path + '/..') @@ -165,6 +169,7 @@ def main(argv = None): type_registry.register(standard_types) type_registry.register(WindowHandleType) type_registry.register(GMainContextDummy) + type_registry.register(GstContextDummy) xml_root = ET.parse(args.gir).getroot() remove_ignored_elements(xml_root) @@ -178,6 +183,9 @@ def main(argv = None): for name, source in java_generator.standard_classes.items(): write_file(source, java_base_dir, name + '.java') + for name, source in java_generator.external_classes.items(): + write_file(source, java_base_dir, name + '.java') + for namespace in namespaces: classes = java_generator.gen_namespace(namespace) java_namespace_dir = java_base_dir + '/' + namespace.symbol_prefix diff --git a/bindings/java/java_generator.py b/bindings/java/java_generator.py index f156ecbb..79cec52d 100644 --- a/bindings/java/java_generator.py +++ b/bindings/java/java_generator.py @@ -379,6 +379,19 @@ def gen_namespace(namespace): return {c.name: str(c) for c in all_classes} +external_classes = { + 'GstContext': str(J.Class( + name='GstContext', + extends='NativeInstance', + visibility='public', + package=config.PACKAGE_ROOT, + body=[ + J.Method('public', [], 'GstContext', params=['long pointer'], + body=[J.Call('super', 'new NativePointer(pointer)')], + ), + ] + )), +} standard_classes = { 'NativeInstance': str(J.Class(