diff options
-rw-r--r-- | build-aux/mbim-codegen/Message.py | 60 | ||||
-rw-r--r-- | build-aux/mbim-codegen/ObjectList.py | 7 | ||||
-rw-r--r-- | data/mbim-service-ms-basic-connect-v2.json | 76 | ||||
-rw-r--r-- | docs/reference/libmbim-glib/libmbim-glib-docs.xml | 1 | ||||
-rw-r--r-- | src/libmbim-glib/generated/meson.build | 1 | ||||
-rw-r--r-- | src/libmbim-glib/libmbim-glib.h | 1 |
6 files changed, 120 insertions, 26 deletions
diff --git a/build-aux/mbim-codegen/Message.py b/build-aux/mbim-codegen/Message.py index 92d0d78..8a24f83 100644 --- a/build-aux/mbim-codegen/Message.py +++ b/build-aux/mbim-codegen/Message.py @@ -92,9 +92,11 @@ class Message: """ Constructor """ - def __init__(self, service, dictionary): + def __init__(self, service, mbimex_service, mbimex_version, dictionary): # The message service, e.g. "Basic Connect" self.service = service + self.mbimex_service = mbimex_service + self.mbimex_version = mbimex_version # The name of the specific message, e.g. "Something" self.name = dictionary['name'] @@ -156,8 +158,18 @@ class Message: else: self.fullname = 'MBIM Message ' + self.service + ' ' + self.name + # Build SERVICE enum + if self.mbimex_service: + self.service_enum_name = 'MBIM Service ' + self.mbimex_service + else: + self.service_enum_name = 'MBIM Service ' + self.service + self.service_enum_name = utils.build_underscore_name(self.service_enum_name).upper() + # Build CID enum - self.cid_enum_name = 'MBIM CID ' + self.service + if self.mbimex_service: + self.cid_enum_name = 'MBIM CID ' + self.mbimex_service + else: + self.cid_enum_name = 'MBIM CID ' + self.service if self.name != "": self.cid_enum_name += (' ' + self.name) self.cid_enum_name = utils.build_underscore_name(self.cid_enum_name).upper() @@ -196,14 +208,14 @@ class Message: Emit message creator """ def _emit_message_creator(self, hfile, cfile, message_type, fields, since): - translations = { 'message' : self.name, - 'service' : self.service, - 'since' : since, - 'underscore' : utils.build_underscore_name (self.fullname), - 'message_type' : message_type, - 'message_type_upper' : message_type.upper(), - 'service_underscore_upper' : utils.build_underscore_name (self.service).upper(), - 'cid_enum_name' : self.cid_enum_name } + translations = { 'message' : self.name, + 'service' : self.service, + 'since' : since, + 'underscore' : utils.build_underscore_name (self.fullname), + 'message_type' : message_type, + 'message_type_upper' : message_type.upper(), + 'service_enum_name' : self.service_enum_name, + 'cid_enum_name' : self.cid_enum_name } template = ( '\n' @@ -380,7 +392,7 @@ class Message: ' MbimMessageCommandBuilder *builder;\n' '\n' ' builder = _mbim_message_command_builder_new (0,\n' - ' MBIM_SERVICE_${service_underscore_upper},\n' + ' ${service_enum_name},\n' ' ${cid_enum_name},\n' ' MBIM_MESSAGE_COMMAND_TYPE_${message_type_upper});\n') @@ -461,13 +473,12 @@ class Message: Emit message parser """ def _emit_message_parser(self, hfile, cfile, message_type, fields, since): - translations = { 'message' : self.name, - 'service' : self.service, - 'since' : since, - 'underscore' : utils.build_underscore_name (self.fullname), - 'message_type' : message_type, - 'message_type_upper' : message_type.upper(), - 'service_underscore_upper' : utils.build_underscore_name (self.service).upper() } + translations = { 'message' : self.name, + 'service' : self.service, + 'since' : since, + 'underscore' : utils.build_underscore_name (self.fullname), + 'message_type' : message_type, + 'message_type_upper' : message_type.upper() } template = ( '\n' @@ -1016,13 +1027,12 @@ class Message: Emit message printable """ def _emit_message_printable(self, cfile, message_type, fields): - translations = { 'message' : self.name, - 'underscore' : utils.build_underscore_name(self.name), - 'service' : self.service, - 'underscore' : utils.build_underscore_name (self.fullname), - 'message_type' : message_type, - 'message_type_upper' : message_type.upper(), - 'service_underscore_upper' : utils.build_underscore_name (self.service).upper() } + translations = { 'message' : self.name, + 'underscore' : utils.build_underscore_name(self.name), + 'service' : self.service, + 'underscore' : utils.build_underscore_name (self.fullname), + 'message_type' : message_type, + 'message_type_upper' : message_type.upper() } template = ( '\n' 'static gchar *\n' diff --git a/build-aux/mbim-codegen/ObjectList.py b/build-aux/mbim-codegen/ObjectList.py index bde711b..41512bc 100644 --- a/build-aux/mbim-codegen/ObjectList.py +++ b/build-aux/mbim-codegen/ObjectList.py @@ -40,17 +40,22 @@ class ObjectList: self.command_list = [] self.struct_list = [] self.service = '' + self.mbimex_service = '' + self.mbimex_version = '' # Loop items in the list, creating Message objects for the messages for object_dictionary in objects_dictionary: if object_dictionary['type'] == 'Command': if self.service == '': raise ValueError('Service name not specified before the first command') - self.command_list.append(Message(self.service, object_dictionary)) + self.command_list.append(Message(self.service, self.mbimex_service, self.mbimex_version, object_dictionary)) elif object_dictionary['type'] == 'Struct': self.struct_list.append(Struct(object_dictionary)) elif object_dictionary['type'] == 'Service': self.service = object_dictionary['name'] + if 'mbimex-service' in object_dictionary: + self.mbimex_service = object_dictionary['mbimex-service'] + self.mbimex_version = object_dictionary['mbimex-version'] else: raise ValueError('Cannot handle object type \'%s\'' % object_dictionary['type']) diff --git a/data/mbim-service-ms-basic-connect-v2.json b/data/mbim-service-ms-basic-connect-v2.json new file mode 100644 index 0000000..8d6d130 --- /dev/null +++ b/data/mbim-service-ms-basic-connect-v2.json @@ -0,0 +1,76 @@ + +[ + // ********************************************************************************* + { "type" : "Service", + "name" : "Ms Basic Connect V2", + "mbimex-service" : "Basic Connect", + "mbimex-version" : "2.0" }, + + // ********************************************************************************* + { "name" : "Register State", + "type" : "Command", + "since" : "1.28", + "set" : [ { "name" : "ProviderId", + "format" : "string" }, + { "name" : "RegisterAction", + "format" : "guint32", + "public-format" : "MbimRegisterAction" }, + { "name" : "DataClass", + "format" : "guint32", + "public-format" : "MbimDataClass" } ], + "query" : [], + "response" : [ { "name" : "NwError", + "format" : "guint32", + "public-format" : "MbimNwError" }, + { "name" : "RegisterState", + "format" : "guint32", + "public-format" : "MbimRegisterState" }, + { "name" : "RegisterMode", + "format" : "guint32", + "public-format" : "MbimRegisterMode" }, + { "name" : "AvailableDataClasses", + "format" : "guint32", + "public-format" : "MbimDataClass" }, + { "name" : "CurrentCellularClass", + "format" : "guint32", + "public-format" : "MbimCellularClass" }, + { "name" : "ProviderId", + "format" : "string" }, + { "name" : "ProviderName", + "format" : "string" }, + { "name" : "RoamingText", + "format" : "string" }, + { "name" : "RegistrationFlag", + "format" : "guint32", + "public-format" : "MbimRegistrationFlag" }, + { "name" : "PreferredDataClasses", + "format" : "guint32", + "public-format" : "MbimDataClass" } ], + "notification" : [ { "name" : "NwError", + "format" : "guint32", + "public-format" : "MbimNwError" }, + { "name" : "RegisterState", + "format" : "guint32", + "public-format" : "MbimRegisterState" }, + { "name" : "RegisterMode", + "format" : "guint32", + "public-format" : "MbimRegisterMode" }, + { "name" : "AvailableDataClasses", + "format" : "guint32", + "public-format" : "MbimDataClass" }, + { "name" : "CurrentCellularClass", + "format" : "guint32", + "public-format" : "MbimCellularClass" }, + { "name" : "ProviderId", + "format" : "string" }, + { "name" : "ProviderName", + "format" : "string" }, + { "name" : "RoamingText", + "format" : "string" }, + { "name" : "RegistrationFlag", + "format" : "guint32", + "public-format" : "MbimRegistrationFlag" }, + { "name" : "PreferredDataClasses", + "format" : "guint32", + "public-format" : "MbimDataClass" } ] } +] diff --git a/docs/reference/libmbim-glib/libmbim-glib-docs.xml b/docs/reference/libmbim-glib/libmbim-glib-docs.xml index 92b8226..8f7ff7b 100644 --- a/docs/reference/libmbim-glib/libmbim-glib-docs.xml +++ b/docs/reference/libmbim-glib/libmbim-glib-docs.xml @@ -75,6 +75,7 @@ <chapter> <title>Microsoft-defined services</title> <xi:include href="xml/mbim-ms-basic-connect-extensions.xml"/> + <xi:include href="xml/mbim-ms-basic-connect-v2.xml"/> <xi:include href="xml/mbim-ms-uicc-low-level-access.xml"/> <xi:include href="xml/mbim-ms-firmware-id.xml"/> <xi:include href="xml/mbim-ms-host-shutdown.xml"/> diff --git a/src/libmbim-glib/generated/meson.build b/src/libmbim-glib/generated/meson.build index 13d13ad..885e251 100644 --- a/src/libmbim-glib/generated/meson.build +++ b/src/libmbim-glib/generated/meson.build @@ -95,6 +95,7 @@ services_data = [ ['intel-firmware-update', true], ['ms-basic-connect-extensions', true], ['ms-uicc-low-level-access', true], + ['ms-basic-connect-v2', true], ['ms-firmware-id', true], ['ms-host-shutdown', true], ['ms-sar', true], diff --git a/src/libmbim-glib/libmbim-glib.h b/src/libmbim-glib/libmbim-glib.h index 7fdf8e0..991f197 100644 --- a/src/libmbim-glib/libmbim-glib.h +++ b/src/libmbim-glib/libmbim-glib.h @@ -41,6 +41,7 @@ #include "mbim-intel-firmware-update.h" #include "mbim-ms-basic-connect-extensions.h" #include "mbim-ms-uicc-low-level-access.h" +#include "mbim-ms-basic-connect-v2.h" /* backwards compatibility */ #include "mbim-compat.h" |