Commit Graph

2375 Commits

Author SHA1 Message Date
Aleksander Morgado
8647f3cbda broadband-modem: implement MMIfaceModem interface
Currently just override the interface properties, and launch initialization and
shutdown where appropriate.
2012-03-15 14:14:24 +01:00
Aleksander Morgado
a3a712f32f core: new MMBroadbandModem object, inherits from MMBaseModem
New object to implement broadband modem specific behaviour.
2012-03-15 14:14:24 +01:00
Aleksander Morgado
126332332b iface-modem: allow requesting signal quality check
The new `mm_iface_modem_signal_quality_check()' method will reload the signal
quality value on demand, set the value of the `SignalQuality' property in DBus,
and also return the results.
2012-03-15 14:14:24 +01:00
Aleksander Morgado
59c37afae6 iface-modem: handle SetAllowedModes() 2012-03-15 14:14:23 +01:00
Aleksander Morgado
1dcd20f18d iface-modem: handle SetAllowedBands()
Also considering that playing with bands may not be supported.
2012-03-15 14:14:23 +01:00
Aleksander Morgado
b9d60d2de4 iface-modem: handle FactoryReset() calls
Also considering that reseting may not be implemented.
2012-03-15 14:14:23 +01:00
Aleksander Morgado
03490d1171 iface-modem: handle Reset() calls
Also considering that reseting may not be implemented.
2012-03-15 14:14:23 +01:00
Aleksander Morgado
2a1465bc91 iface-modem: create MMSim object during init 2012-03-15 14:14:23 +01:00
Aleksander Morgado
c2eac91b78 sim: handle SendPin() and SendPuk() calls 2012-03-15 14:14:23 +01:00
Aleksander Morgado
995e7ace07 sim: handle EnablePin() calls 2012-03-15 14:14:23 +01:00
Aleksander Morgado
b29a8ba44f sim: handle ChangePin() calls 2012-03-15 14:14:23 +01:00
Aleksander Morgado
23dd4d7e82 sim: allow re-launching initialization
It may happen that we cannot load property values when the SIM is locked, so
we need to enable re-launching initialization in the object API.
2012-03-15 14:14:23 +01:00
Aleksander Morgado
ff0136ed04 sim: load OperatorName during init 2012-03-15 14:14:23 +01:00
Aleksander Morgado
e3e3b32b0a sim: load OperatorIdentifier during init 2012-03-15 14:14:23 +01:00
Aleksander Morgado
bdd1d23ed2 sim: load IMSI during init 2012-03-15 14:14:23 +01:00
Aleksander Morgado
87823387f4 sim: load SIM Identifier during init 2012-03-15 14:14:23 +01:00
Aleksander Morgado
e40d32ac94 core: new MMSim object, inherits from MmGdbusSim 2012-03-15 14:14:23 +01:00
Aleksander Morgado
1453f352bc iface-modem: relaunch init when being unlocked 2012-03-15 14:14:23 +01:00
Aleksander Morgado
ca15a10629 iface-modem: new `State' property, bound to the one in the MmGDbusModem skeleton 2012-03-15 14:14:23 +01:00
Aleksander Morgado
48babcf976 iface-modem: load SupportedModes' and SupportedBands' during init 2012-03-15 14:14:23 +01:00
Aleksander Morgado
7a20ad46d8 iface-modem: load UnlockRequired' and UnlockRetries' during init
And also allow being loaded upon user request, with
`mm_iface_modem_unlock_check()'.
2012-03-15 14:14:23 +01:00
Aleksander Morgado
9852433095 iface-modem: load EquipmentIdentifier' and DeviceIdentifier' during init 2012-03-15 14:14:22 +01:00
Aleksander Morgado
7a9b0d9fac iface-modem: load Manufacturer', Model' and `Revision' during init 2012-03-15 14:14:22 +01:00
Aleksander Morgado
b35be61415 iface-modem: load MaxBearers' and MaxActiveBearers' during init 2012-03-15 14:14:22 +01:00
Aleksander Morgado
b6539e9e13 iface-modem: load ModemCapabilities' and CurrentCapabilities' during init
When the interface gets initialized, start loading modem and current
capabilities.
2012-03-15 14:14:22 +01:00
Aleksander Morgado
88e6b0e4e6 iface-modem: set Device', Driver' and `Plugin' during init
Values taken from the MMBaseModem object, which are not expected to change
during the lifetime of the Modem object.
2012-03-15 14:14:22 +01:00
Aleksander Morgado
9e7cd2a345 core: new MMIfaceModem interface
This interface controls the availability of the DBus Modem interface, and
implements the actions that may be performed in the interface.
2012-03-15 14:14:22 +01:00
Aleksander Morgado
8069c751a0 base-modem: new enable()' and disable()' async methods
Users will be able to enable or disable modems using the DBus interface. We will
chain up the `Enable(boolean)' call from the DBus interface to these new methods
in the base modem class.
2012-03-15 14:14:22 +01:00
Aleksander Morgado
b00c409978 base-modem: new virtual initialize() method
Whenever the first AT port is grabbed, we launch the initialize() method, which
must have been implemented by the corresponding modem subclass.
2012-03-15 14:14:22 +01:00
Aleksander Morgado
677e04be95 base-modem: new property to keep the Connection object 2012-03-15 14:14:22 +01:00
Aleksander Morgado
d32b006cce base-modem: new properties for vendor and product IDs
These will be set during modem object creation.
2012-03-15 14:14:22 +01:00
Aleksander Morgado
d5a0efc659 base-modem: getters for primary/secondary/qcdm ports 2012-03-15 14:14:22 +01:00
Aleksander Morgado
4a096c8c56 base-modem: set v1 serial parser always
CDMA modems used to use the v1_e1 serial parser; but we'll try to setup a common
one in all modems.
2012-03-15 14:14:22 +01:00
Aleksander Morgado
0d53a72d41 base-modem: new properties to handle Device, Driver and Plugin
They will be set when constructing the object.
2012-03-15 14:14:22 +01:00
Aleksander Morgado
b6cb5bd6da base-modem: ported all port grabbing/releasing logic to the base object 2012-03-15 14:14:22 +01:00
Aleksander Morgado
f39923c97d base-modem: expect a GDBusMethodInvocation as context of the auth request 2012-03-15 14:14:22 +01:00
Aleksander Morgado
9a72ac80d0 core: new MMBaseModem abstract type
Basically, a replacement of the MMModemBase type, being prepared to handle
multimode devices.

This object derives from a MmGdbusObjectSkeleton, which makes it suitable to be
controlled within the GDBusObjectManagerServer.
2012-03-15 14:14:21 +01:00
Aleksander Morgado
f15daaf587 core: new AT command and sequence processors
This setup, allows:
 - Running a single command and processing its result.
 - Running a set of N commands, providing a global result after all have
   been executed.
 - Running a set of N commands out of M (N<M), where the global result is
   obtained without having executed all configured commands. This is useful
   when probing, for example.
2012-03-15 14:14:21 +01:00
Aleksander Morgado
07640b0c74 manager: make it export the Object Manager interface 2012-03-15 14:14:21 +01:00
Aleksander Morgado
0cc17ed82f manager: let it be initable
The MMManager object creation may fail due to environment reasons (i.e. no
plugins found, or problems exporting DBus interfaces), so we can use the
initable interface to properly handle those situations.
2012-03-15 14:14:21 +01:00
Aleksander Morgado
bc78453d79 manager: keep the GDBus connection reference in a 'connection' property 2012-03-15 14:14:21 +01:00
Aleksander Morgado
68fcfa4530 manager: use G_TYPE_INSTANCE_GET_PRIVATE() just to create the private struct
A new 'priv' pointer is added in the MMManager struct, which will contain the
address of the private structure.
2012-03-15 14:14:21 +01:00
Aleksander Morgado
60c7f7d9ee core: implement the Manager1 DBus interface, based on GDBus
The MMManager object now derives from the gdbus-codegen-generated
MmGdbusOrgFreedesktopModemManager1Skeleton object, and implements the handlers
for the SetLogging() and ScanDevices() DBus methods.

The main program is also modified to be based on GDBus.
2012-03-15 14:14:21 +01:00
Aleksander Morgado
a6d9bad4bd plugin-base: properly handle Core errors 2012-03-15 14:14:21 +01:00
Aleksander Morgado
1e6b29bcca plugin-base: clear internally tracked probe if port unsupported
If the port is supported by the plugin, leave the probe in the internal HT until
the port gets grabbed afterwards.
2012-03-15 14:14:21 +01:00
Aleksander Morgado
d9b2b6f8ec manager: clear cached port probe when device is removed 2012-03-15 14:14:21 +01:00
Aleksander Morgado
95ade9c617 plugin-base: remove `MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS' status
Support checks are fully asynchronous and result is always reported when the
check is considered ready, so in-progress replies to
`mm_plugin_supports_port_finish()' don't make any sense.
2012-03-15 14:14:21 +01:00
Aleksander Morgado
2b20955489 plugin-base: don't report numeric support level in the [0-100] range
There is no single case where more than one plugin may end up wanting to support
a given port, and therefore there is no need to report the numeric support level
when reporting SUPPORTED.
2012-03-15 14:14:21 +01:00
Aleksander Morgado
a1d2f20021 plugin-base: avoid trying to probe 'net' devices
Some devices support 'net' devices, which cannot be AT or QCDM probed.

If the port being checked for support corresponds to an already existing modem,
the port will be reported as SUPPORTED.

If this is the first port of the modem being checked for support, we will just
DEFER the support check until we get a modem created.
2012-03-15 14:14:21 +01:00
Aleksander Morgado
db356bb20b plugin-base: keep a MMPluginSupportsResult in the async result
Instead of just a boolean, provide a MMPluginSupportsResult, so that we can pass
it as is during `supports_port_finish()'.
2012-03-15 14:14:21 +01:00