]> sigrok.org Git - libsigrok.git/blobdiff - bindings/cxx/enums.py
bindings/python/Doxyfile: Set OPTIMIZE_OUTPUT_JAVA to NO.
[libsigrok.git] / bindings / cxx / enums.py
index 3ce73bc43f4eaab3fcc9706b70306870e89544ed..3711334e74f740135a94f58ef70e78e7a8570268 100644 (file)
@@ -40,6 +40,7 @@ mapping = dict([
     ('sr_unit', ('Unit', 'Unit of measurement')),
     ('sr_mqflag', ('QuantityFlag', 'Flag applied to measured quantity')),
     ('sr_configkey', ('ConfigKey', 'Configuration key')),
+    ('sr_configcap', ('Capability', 'Configuration capability')),
     ('sr_datatype', ('DataType', 'Configuration data type')),
     ('sr_channeltype', ('ChannelType', 'Channel type')),
     ('sr_trigger_matches', ('TriggerMatchType', 'Trigger match type')),
@@ -79,6 +80,8 @@ print("namespace sigrok {", file=header)
 
 # Template for beginning of class declaration and public members.
 header_public_template = """
+template<> const SR_API std::map<const enum {enumname}, const {classname} * const> EnumValue<{classname}, enum {enumname}>::_values;
+
 /** {brief} */
 class SR_API {classname} : public EnumValue<{classname}, enum {enumname}>
 {{
@@ -136,19 +139,11 @@ for enum, (classname, classbrief) in classes.items():
             classname, classname, trimmed_name, classname, name, trimmed_name),
             file=code)
 
-    print('%%typemap(javacode) sigrok::%s %%{' % classname, file=swig)
-
     # Define public pointers for each enum value
     for trimmed_name in trimmed_names:
         print('const %s * const %s::%s = &%s::_%s;' % (
             classname, classname, trimmed_name, classname, trimmed_name),
             file=code)
-        print('public static final %s %s = new %s(classesJNI.%s_%s_get(), false);' % (
-            classname, trimmed_name, classname, classname, trimmed_name),
-            file=swig)
-
-    print ('%}', file=swig)
-
 
     # Define map of enum values to constants
     print('template<> const SR_API std::map<const enum %s, const %s * const> EnumValue<%s, enum %s>::_values = {' % (