summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build-aux/mbim-codegen/Message.py60
-rw-r--r--build-aux/mbim-codegen/ObjectList.py7
-rw-r--r--data/mbim-service-ms-basic-connect-v2.json76
-rw-r--r--docs/reference/libmbim-glib/libmbim-glib-docs.xml1
-rw-r--r--src/libmbim-glib/generated/meson.build1
-rw-r--r--src/libmbim-glib/libmbim-glib.h1
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"