Aleksander Morgado
da2ff333ae
message: include exact failure results when checking validity
...
We'll print the exact conditions that made the check fail.
2012-07-03 16:08:49 +02:00
Aleksander Morgado
30c6aff6be
ctl: avoid using `g_ptr_array_new_full()' as that came in glib 2.30
2012-07-03 16:08:49 +02:00
Aleksander Morgado
7e397b8865
build: require a recent enough glib (2.28)
...
We'll base our development on glib 2.28 for now; 2.30 included too many new
things.
2012-07-03 16:08:49 +02:00
Aleksander Morgado
3e88934c42
build: include several missing headers
...
If not included in SOURCES, the wouldn't end up in the dist tarball.
2012-07-03 16:08:49 +02:00
Aleksander Morgado
22772b3b53
device: don't try to allocate a CID for an unsupported service
2012-07-03 16:08:49 +02:00
Aleksander Morgado
08c76d411c
core: let the `QmiDevice' control the creation and handling of `QmiClient' objects
...
Instead of treating the QmiClient objects as being independent to the device,
we'll make them instead owned by the QmiDevice. This means that the QmiDevice is
reponsible for allocationg and releasing the CIDs, and that a QmiClient doesn't
need to keep a reference to the QmiDevice around.
This simplification allows us to treat the `QmiClientCtl' as completely internal
to the library. Uses of the library shouldn't need to interface directly with
this object.
2012-07-03 16:08:49 +02:00
Aleksander Morgado
c689b969e1
ctl: new opaque type to return the results of the VERSION_INFO request
...
We do not want to explicitly list every possible return value in the
`qmi_client_ctl_get_version_info_finish()' method, as that would break
compatibility if we ever need to add a new value being returned. Instead, we
will create opaque types for the return of each operation, with specific getters
for the values returned.
2012-07-03 16:08:49 +02:00
Aleksander Morgado
6e6094bc55
ctl: setup all CTL-related types in its own `qmi-ctl.h' header
2012-07-03 16:08:49 +02:00
Aleksander Morgado
ea4210b093
dms: new opaque type to return the results of the GET_IDS request
...
We do not want to explicitly list every possible return value in the
`qmi_client_dms_get_ids_finish()', as that would break compatibility if we ever
need to add a new value being returned. Instead, we will create opaque types for
the return of each operation, with specific getters for the values returned.
2012-07-03 16:08:49 +02:00
Aleksander Morgado
8e8ac33e2e
dms: setup all DMS-related types in its own `qmi-dms.h' header
2012-07-03 16:08:49 +02:00
Aleksander Morgado
4159e0499d
device: rely on unix-fd based GIOChannels
...
We don't want any file based GIOChannel specific behaviour.
2012-07-03 16:08:48 +02:00
Aleksander Morgado
5e81d2ca3b
client-ctl: new method to perform SYNC operations
2012-07-03 16:08:48 +02:00
Aleksander Morgado
3acf5ce303
device: allow clients to get registered if they want to receive indication messages
2012-07-03 16:08:48 +02:00
Aleksander Morgado
d3d9360d49
message: improve printable string
...
The user can now pass a prefix to be used in every printed string; and we also
decode some of the values from the message into human-readable strings.
2012-07-03 16:08:48 +02:00
Aleksander Morgado
82b7961893
message: new helpers to check whether a given message is a response or an indication
2012-07-03 16:08:48 +02:00
Aleksander Morgado
b1c7ec249b
qmi-message-ctl: explicitly include `endian.h'
...
We're using le16toh().
2012-07-03 16:08:48 +02:00
Aleksander Morgado
d1af06e435
qmi-device: avoid warnings when putting the guint32 into a gpointer
2012-07-03 16:08:48 +02:00
Aleksander Morgado
c8fa2d6a34
cli,dms: don't expect always all three ESN, IMEI and MEID when getting IDs
2012-07-03 16:08:48 +02:00
Aleksander Morgado
f150ec1449
message-dms: only fail get_ids_finish() if none of the expected outputs was retrieved
...
Not every device will report all three ESN, IMEI and MEID.
2012-07-03 16:08:48 +02:00
Aleksander Morgado
f15f0c09e8
build: fix package name in configure output report
2012-07-03 16:08:48 +02:00
Aleksander Morgado
d4a9688881
cli: new `--dms-get-ids' action
2012-07-03 16:08:48 +02:00
Aleksander Morgado
b77ae5efaa
client-dms: new method to get IDs asynchronously
2012-07-03 16:08:48 +02:00
Aleksander Morgado
25ee869bc7
enums: new enum for DMS commands, even if unused currently
2012-07-03 16:08:48 +02:00
Aleksander Morgado
67acd1de23
message-dms: new helper to build/parse messages to get IDs
2012-07-03 16:08:48 +02:00
Aleksander Morgado
af1c73e955
message: new method to retrieve a newly allocated string from a message TLV
2012-07-03 16:08:48 +02:00
Aleksander Morgado
7dd4d5d926
enums: add additional known CTL commands, even if unused currently
2012-07-03 16:08:48 +02:00
Aleksander Morgado
8d08735135
cli: new `--ctl-get-version-info' action
...
Also setup the generic codebase for CTL actions.
2012-07-03 16:08:48 +02:00
Aleksander Morgado
d116505b8e
message: ensure only responses are used to match transactions
2012-07-03 15:47:22 +02:00
Aleksander Morgado
c049a7c91a
device: detect broadcast messages and avoid trying to match transactions on them
2012-07-03 15:47:22 +02:00
Aleksander Morgado
085270afd8
client: use new `QMI_CID_NONE'
2012-07-03 15:47:22 +02:00
Aleksander Morgado
3d7795440c
device: report QMI protocol errors up the stack
2012-07-03 15:47:22 +02:00
Aleksander Morgado
1aa8f46cfe
message: new method to parse the operation status from the QMI response
2012-07-03 15:47:22 +02:00
Aleksander Morgado
c82811caaa
enums: new `QmiProtocolError' enum
...
Define the known set of QMI protocol errors that may be reported in QMI
responses.
2012-07-03 15:47:22 +02:00
Aleksander Morgado
f643254159
device: don't allow sending messages without a proper CID
2012-07-03 15:47:22 +02:00
Aleksander Morgado
2e3ea8da3e
client: allow users to explicitly release the CID
2012-07-03 15:47:22 +02:00
Aleksander Morgado
14858a9913
device: skip implicit channel buffering from GLib
2012-07-03 15:47:22 +02:00
Aleksander Morgado
4cc620bda9
client: fix first transaction number in the sequence
2012-07-03 15:47:22 +02:00
Aleksander Morgado
b168d34223
client-dms: new `QmiClientDms' to handle the DMS service
2012-07-03 15:47:22 +02:00
Aleksander Morgado
75d3232d6e
client: when the object gets disposed, launch CID release
2012-07-03 15:47:22 +02:00
Aleksander Morgado
f5085dc992
client: ensure the services match in the CID allocation reply
2012-07-03 15:47:22 +02:00
Aleksander Morgado
83afa8dcbc
client: allocate a new CID when the `QmiClient' is created.
2012-07-03 15:47:21 +02:00
Aleksander Morgado
6d8225abd2
client-ctl: new `QmiClientCtl' to handle the CTL service
...
The `QmiDevice' will create one of these objects and keep it around, to be
used as the generic client in the CTL service.
2012-07-03 15:47:21 +02:00
Aleksander Morgado
02467a15bd
client: new base generic client
2012-07-03 15:47:21 +02:00
Aleksander Morgado
3e44d71641
device: allow commands to time out if no reply is received
2012-07-03 15:47:21 +02:00
Aleksander Morgado
73a956d48d
device: check version info of the device when it gets opened
...
If the device doesn't reply properly to the version info request, the open
operation will get failed.
2012-07-03 15:47:21 +02:00
Aleksander Morgado
58dab61d7a
message-ctl: new utilities to use QMI-CTL operations
...
Just the version info request for now
2012-07-03 15:47:21 +02:00
Aleksander Morgado
142a26cc3e
device: new async method to send a `QmiMessage' request and receive a reply
...
The `QmiDevice' will keep track of each transaction, so that whenever the proper
reply is received, the async operation gets finished.
2012-07-03 15:47:21 +02:00
Aleksander Morgado
9b4414d869
message: new `QmiMessage' type
2012-07-03 15:47:21 +02:00
Aleksander Morgado
1f87a0de25
message: include original sources from Chromium's libqmi
...
These two files are BSD-licensed. Further changes in these files will be under
LGPLv2+.
2012-07-03 15:47:21 +02:00
Aleksander Morgado
06bccb357d
cli: new `qmicli' command line utility
2012-07-03 15:47:21 +02:00