Commit Graph

200 Commits

Author SHA1 Message Date
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