Commit Graph
154 Commits
Author SHA1 Message Date
Aleksander Morgado 3206e95663 api,introspection: new 'Ports' property in the Modem interface
We will expose a new 'Ports' property listing all ports currently known by a
given modem. Ports which are not used but are detected as being part of the
modem will be listed with an 'unknown' port type.

This change uses the new 'MMModemPortType' enum and the new 'MMModemPortInfo'
helper struct to handle these values in libmm-glib. The already available
'MMPortType' enum hasn't been re-used for the interface because it contains
values that we don't need (e.g. IGNORED).

The port list is now also included in the modem information command of mmcli:

$ sudo mmcli -m 0

/org/freedesktop/ModemManager1/Modem/0 (device id '97b7b99e3e2bea103880545b619fb05a3cc81b26')
  -------------------------
  System   |         device: '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4'
           |        drivers: 'qcserial, qmi_wwan'
           |         plugin: 'Gobi'
           |   primary port: 'cdc-wdm0'
           |          ports: 'ttyUSB0 (qcdm), ttyUSB1 (at), cdc-wdm0 (qmi), wwp0s29u1u4 (net)'

https://bugzilla.gnome.org/show_bug.cgi?id=702678
2013-06-24 19:44:57 +02:00
Aleksander Morgado 2ad39277d2 build: setup gtester based tests 2013-06-18 16:50:47 +02:00
Aleksander Morgado b582ba58e8 api,introspection: avoid exposing the Contacts interface
There is no implementation of the Contacts interface yet, just avoid exposing it
for now.

https://bugzilla.gnome.org/show_bug.cgi?id=701989
2013-06-18 16:19:19 +02:00
Aleksander Morgado 2139e394c2 build: setup libtool versioning for libmm-glib
We'll use it once we've released 0.8.
2013-06-13 11:11:02 +02:00
Aleksander Morgado 5b08091520 api,introspection: Simple.Connect() won't change neither bands nor allowed modes
We won't allow changing modes or bands through Simple.Connect(). Applications
should instead look at the corresponding SupportedBands or SupportedModes, and
then use SetCurrentBands() or SetCurrentModes() explicitly.
2013-06-05 19:15:15 +02:00
Aleksander Morgado 0db920b762 mmcli: new '--set-current-capabilities' command
New command to allow changing modem capabilities, if supported. The modem will
power cycle automatically after having changed them.
2013-06-05 19:15:15 +02:00
Aleksander Morgado a902e6859e api,introspection: new 'SetCurrentCapabilities' method
For those modems which expose a valid 'SupportedCapabilities' property with more
than one item in the list, we'll allow switching between them.
2013-06-05 19:15:15 +02:00
Aleksander Morgado 700ebc5c07 api,introspection: rename 'ModemCapabilities' to 'SupportedCapabilities'
And also make it a list of masks, specifying which are the specific combinations
supported, not just one mask with all.

E.g.:
  -------------------------
  Hardware |   manufacturer: 'Sierra Wireless, Incorporated'
           |          model: 'MC7710'
           |       revision: 'SWI9200X_03.05.19.04ap r5475 carmd-en-10527 2012/09/17 17:57:14'
           |      supported: 'gsm-umts
           |                  gsm-umts, lte'
           |        current: 'gsm-umts, lte'
           |   equipment id: '358178040668164'
2013-06-05 19:15:15 +02:00
Aleksander Morgado 1c67d050cb api,introspection: merge 'AllowedModes' and 'SupportedMode' into 'CurrentModes'
We now have a single 'CurrentModes' property which contains both values in a
tuple with signature "(uu)".

Also, rename 'SetAllowedModes()' to 'SetCurrentModes()', and update the list of
arguments expected to have a single "(uu)" tuple.
2013-06-05 19:15:14 +02:00
Aleksander Morgado 45ceba7692 api,introspection: 'SupportedModes' is now a list of possible combinations
Instead of just a mask of MMModemMode values, we now provide a list of the
allowed and preferred mode combinations supported by the modem. E.g.:

$> sudo mmcli -m 0
  -------------------------
  Modes    |      supported: 'allowed: 2g; preferred: none
           |                  allowed: 3g; preferred: none
           |                  allowed: 2g, 3g; preferred: none
           |                  allowed: 2g, 3g; preferred: 2g
           |                  allowed: 2g, 3g; preferred: 3g
           |                  allowed: 4g; preferred: none
           |                  allowed: 2g, 3g, 4g; preferred: none'
2013-06-05 19:15:14 +02:00
Aleksander Morgado 212d00c529 api,instrospection: rename 'Bands' to 'CurrentBands'
... and 'SetBands()' to 'SetCurrentBands()'.

We'll keep the 'Current' keyword in those properties which also have
'Supported' values.
2013-06-05 19:15:14 +02:00
Aleksander Morgado bd360aa029 libmm-glib,modem: handle the new 'SupportedIpFamilies' property 2013-06-05 19:15:13 +02:00
Aleksander Morgado 804642adc2 api: let MMBearerIpFamily be flags instead of a enumeration
We want to expose in the Modem interface the list of supported IP families, and
the easiest way to do so is to have the IP family as flags, and provide in the
interface a single enum.

Also, a value of 0 for a MMBearerIpFamily specifies that no flags are set, so
just rename it to 'NONE'.

And add a new 'ANY' value which sets all flags to 1.
2013-06-05 19:15:13 +02:00
Aleksander Morgado a12be165d1 libmm-glib,modem: avoid accessing an already freed GArray
We cannot g_array_unref() the GArray when get()-ing bands as that will clear
the contents of the GArray, even if there are references around. Instead, just
dup the array contents when returning.
2013-05-23 18:00:03 +02:00
Dan Williams c4fa405e2e sms: enforce message 'class' value validity
Class is -1 to 3, so warn about out-of-bounds values when it's
being set on the client side.
2013-05-06 10:51:01 -05:00
Dan Williams 9bbcd9d6a5 sms: add support for message class
We need to redefine the message class property to int since class
0 is a valid message class.  Thus -1 now means "unspecified class".
2013-05-06 10:45:55 -05:00
Yunlian Jiang 9dcbf33c88 mm-glib: use correct enum type 2013-04-29 11:53:26 -05:00
Aleksander Morgado 456a4289b7 libmm-glib: handle relative validity in the MMSmsProperties 2013-04-25 19:04:35 +02:00
Ben Chan 4ac3a6d4f2 bearer: allow specifying default IP family for bearers
This patch adds a 'bearer-default-ip-family' property to MMBearer, which
specifies the default IP family to use for a bearer when no explicit
value is given via the simple connect properties. The default IP family
is set to IPv4 in MMBearer but can be overridden by a MMBearer subclass,
which allows a modem plugin to specify an appropriate default value.
2013-04-23 15:25:48 +02:00
Aleksander Morgado f9105bff87 api,introspection: update 'Validity' property in the SMS interface
We don't want to support only 'relative' validity, so don't assume that the
Validity property will always be a uint32 value.

Instead, we define the Validity propery as '(uv)' tuple, where the first value
(a MMSmsValidityType) specifies the type of validity, and the second value is
a variant formatted accordingly to what the validity type specifies (e.g. a
uint32 value if the type is MM_SMS_VALIDITY_TYPE_RELATIVE).
2013-04-05 17:48:51 +02:00
Aleksander Morgado 3e33f1bc4d api,introspection: new `ActivationState' property in the CDMA interface 2013-03-22 08:11:00 +01:00
Colin Walters 980ad52a47 build: Look for generated file in builddir, not srcdir 2013-02-25 08:51:50 +01:00
Aleksander Morgado b1bb8e30b4 broadband-modem: don't assume the returned string is always hex-encoded 2013-02-22 19:43:49 +01:00
Aleksander Morgado 75d20c15d4 api: notify in the interface about the reason why the modem is FAILED
We currently implement 'SIM missing' and 'SIM error', which are probably the
most common ones.
2013-02-22 16:35:56 +01:00
Aleksander Morgado c1ef36b860 libmm-glib,simple-connect-properties: avoid using an uninitialized variable 2013-02-13 15:03:07 +01:00
Aleksander Morgado d44eb83ac4 libmm-glib,manager: add missing logic to ensure the proxy is created 2013-02-06 22:20:19 +01:00
Aleksander Morgado a85fd0ab4f libmm-glib,manager: don't fail creation if the ModemManager process is not found
A 'GDBusObjectManagerClient' for a service for which there is no current
name-owner is a perfectly valid and useful object. For example, we could then
connect to the 'notify::name-owner' property to follow the life cycle of the
ModemManager process.

So, don't tie the successful creation of a 'MMManager' to the successful
creation of the internal GDBusProxy for the 'Manager1' interface. If there is
no current name owner, the GDBusProxy wouldn't be created, and instead we
would completely fail the 'MMManager' creation.
2013-02-06 19:56:18 +01:00
Aleksander Morgado 2ad6e0627d libmm-glib: fix error reporting when 'MMManager' is created 2013-02-06 19:10:13 +01:00
Aleksander Morgado 091c47d695 libmm-glib,modem: new methods to handle the power state 2013-01-11 10:05:46 +01:00
Dan Williams dd51f7a6ae libmm-glib: document mm_get_uint_from_str()
Unlike strtol/stroul, this function doesn't ignore leading or
trailing non-digit characters, so document that restriction.
2012-12-05 11:43:58 -06:00
Aleksander Morgado 562055b53b libmm-glib,manager: client creation may fail, avoid explicit MM_MANAGER() cast 2012-11-27 16:25:51 +01:00
Aleksander Morgado cf46ed4238 libmm-glib,manager: register DBus error associations in advance
In order to have a proper conversion between DBus error names and GErrors for
our known domains, the associations need to be registered before any DBus
call attempt.

Given that the high-level API of libmm-glib has its entry point always in the
MMManager, just register them as soon as the first such object is created.
2012-11-15 09:39:26 +01:00
Aleksander Morgado 94d62146e3 libmm-glib,manager: avoid unref of unset cancellables 2012-11-07 11:10:32 +01:00
Aleksander Morgado d9241d08db libmm-glib: implement handling the CDMA BS location source 2012-11-02 08:23:11 +01:00
Aleksander Morgado 72068598e5 libmm-glib: new header file for common stuff in location reporting 2012-11-02 08:23:10 +01:00
Aleksander Morgado 79fdddccbf api,modem: new 'PrimaryPort' property
We do need to specify which is the primary port being used for controlling the
modem. This allows us to match the device with an already existing bluetooth
device in NetworkManager.
2012-10-19 00:58:36 +02:00
Aleksander Morgado e2a36bd6be libmm-glib: allow 'none' authentication with more values
Specifying 'none' is really not exclusive. We may want to say that the modem can
either authenticate with a given protocol, or otherwise just try without
authentication.

The reality is that 'none' itself is usually always given in the connection
settings.
2012-10-10 16:55:24 +02:00
Aleksander Morgado 316b9fa001 libmm-glib,build: remove unneeded rule 2012-10-08 14:09:35 +02:00
Aleksander Morgado ebd792d2aa api,libmm-glib: new `allowed-auth' configuration for bearers
For bearers using STATIC or DHCP IP method, the modem itself is the one
negotiating authentication with the network. The new `allowed-auth' property
allows users to specify which authentication method(s) are allowed to be used.

See the following NetworkManager commit for more reference:
    commit 34aef8aaaa09b7473b9496aa49e550bd2def03f8
    Author: Andrew Bird <ajb@spheresystems.co.uk>
    Date:   Thu Mar 15 16:19:43 2012 -0500
2012-10-07 21:12:00 +02:00
Aleksander Morgado 1ccf89dbb8 api,libmm-glib,cli: handle firmware images of type `MM_FIRMWARE_IMAGE_TYPE_GOBI' 2012-10-04 19:08:03 +02:00
Aleksander Morgado 9e16aeb6bf libmm-glib: fix firmware list result parsing 2012-10-04 18:53:00 +02:00
Aleksander Morgado 0d00ee28be api,libmm-glib: use a 'unique-id' as ID of the firmware image, not a 'name'
Also, make only the 'unique-id' mandatory.
2012-10-04 18:52:39 +02:00
Aleksander Morgado 4251030bd8 api: only allow including `ModemManager.h' directly 2012-10-04 10:17:13 +02:00
Aleksander Morgado 239c56cf7f libmm-glib: don't install the common helpers header
And make it only available for internal ModemManager compilation.
2012-10-04 10:17:13 +02:00
Aleksander Morgado b52bbf7b0b libmm-glib,sms-properties: improve documentation 2012-10-04 10:17:12 +02:00
Aleksander Morgado 054915299a libmm-glib,bearer-ip-config: improve documentation 2012-10-04 10:17:12 +02:00
Aleksander Morgado 52f457bb88 libmm-glib,bearer-properties: improve documentation 2012-10-04 10:17:12 +02:00
Aleksander Morgado 54c2ee77b0 libmm-glib,firmware-properties: improve documentation 2012-10-04 10:17:12 +02:00
Aleksander Morgado dc4656cead libmm-glib,network-timezone: improve documentation 2012-10-04 10:17:12 +02:00
Aleksander Morgado 487090607d libmm-glib,location-gps-raw: improve documentation 2012-10-04 10:17:12 +02:00