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