aboutsummaryrefslogtreecommitdiff
path: root/src/mm-base-modem.c
AgeCommit message (Collapse)Author
2012-03-16base-modem: implement new modem-wide cancellable, and rework AT commandsAleksander Morgado
Instead of the `_in_port()' variants, we'll provide more generic `_full()' methods. These should be used either if we want to send commands to a specific port, or if we want to use a specific user-provided GCancellable. In addition to this user-provided GCancellable, we keep the internal modem-wide one.
2012-03-16base-modem: new modem-wide cancellable, passed to every state machineAleksander Morgado
2012-03-16base-modem: new port getters and peekersAleksander Morgado
* mm_base_modem_peek_port_* () will return either a port object (no new reference), or NULL if none available. You would usually peek() a port if you're going to use it just in the current method, as there is no way to that reference to get invalid (we're single threaded). * mm_base_modem_get_port_* () will return either NEW references to valid port objects, or NULL if none available. And, you would usually get() a port, whenever you want the port object to be valid even out of the current method, for example when keeping it in the context of an async operation. Also, we need to consider that the primary AT port MAY BE NULL when you peek() or get() it. This is due to the fact that we may be releasing ports (due to device disconnection) in the middle of async operations.
2012-03-16base-modem: when getting best AT port, assume we may have lost specific portsAleksander Morgado
Don't assume that primary port is always set.
2012-03-16base-modem: use new simplified authentication setupAleksander Morgado
2012-03-15core: don't pass primary port to interface initializationsAleksander Morgado
They will all get it themselves.
2012-03-15core: rework port grabbing and organizationAleksander Morgado
Make port roles more flexible. We have modems that do PPP on interfaces other than the primary interface, and that wasn't possible with the old code. So clean up all that logic and move the port organization code into the core so we can reduce code in the plugins. In the new world order, the plugins say whether the port is a QCDM port, an AT port, or ignored. If it's an AT port the plugins get to tag it as primary, secondary, or PPP, or any combination of the 3. This allows for modems where PPP should really be done on the secondary port (Huawei E220, Sierra devices) so that the primary port stays open for command and status. After all ports are grabbed by the generic classes, they get "organized", which assigns various ports to the roles of PRIMARY, SECONDARY, DATA, and QCDM based on specific rules and hints that the plugin provided (which are expressed as MMAtPortFlags). The plugin code is responsible for determining the port hints (ie MMAtPortFlags) at probe time, instead of having a combination of the plugin and the modem class do the job. This simplifies things greatly for the plugins at the expense of more complicated logic in the core. This is the port of commit 96505d42ed62327101dcee7c2bf31177b0bb1c9f to the 06-api branch.
2012-03-15at-serial-port: no need to pass port type when creating the objectAleksander Morgado
We'll just specify the port is AT, not primary or secondary
2012-03-15qcdm-serial-port: no need to pass port type when creating the objectAleksander Morgado
2012-03-15base-modem: also signal validity when reporting invalidAleksander Morgado
Otherwise the manager won't catch invalid modems failing at initialization.
2012-03-15base-modem: use new autogenerated port-enum-string gettersAleksander Morgado
2012-03-15base-modem: ignore every unsolicited CMTI until we set up messagingAleksander Morgado
2012-03-15broadband-modem: if locked, don't try to initialize remaining interfacesAleksander Morgado
Whenever we get unlocked, the modem initialization sequence will be run again.
2012-03-15base-modem: initially set the unsolicited CUSD handler with NULL callbackAleksander Morgado
2012-03-15base-modem: log when fully disposing the objectAleksander Morgado
2012-03-15base-modem: use g_clear_object() before setting new objectsAleksander Morgado
2012-03-15base-modem: make public the method to get best AT portAleksander Morgado
Sometimes, we want to check whether a given port is available to send commands, and fallback to some other method if so (e.g. using a QCDM port).
2012-03-15base-modem: fully ignore CIEV messages on startupAleksander Morgado
2012-03-15modem-helpers: renamed 3GPP registration related helpers with `mm_3gpp' prefixAleksander Morgado
2012-03-15base-modem: allow retrieving non-connected data portsAleksander Morgado
Bearers will ask for data ports that can be used for connections. Right now, only one data port is expected to be handled, but we don't impose any restriction in the API.
2012-03-15base-modem: setup NULL callbacks in unsolicited CREG message handlersAleksander Morgado
When the port is grabbed, we setup NULL callbacks for all unsolicited registration message handlers. If we do enable 3GPP registrations afterwards, we'll set proper callbacks.
2012-03-15core: always pass open port to interface initializationsAleksander Morgado
When the first AT port is grabbed, modem initialization is launched, using that specific port. This port is also passed to all interface initialization methods.
2012-03-15core: start using our newly defined errorsAleksander Morgado
2012-03-15base-modem: new virtual initialize() methodAleksander Morgado
Whenever the first AT port is grabbed, we launch the initialize() method, which must have been implemented by the corresponding modem subclass.
2012-03-15base-modem: new property to keep the Connection objectAleksander Morgado
2012-03-15base-modem: new properties for vendor and product IDsAleksander Morgado
These will be set during modem object creation.
2012-03-15base-modem: getters for primary/secondary/qcdm portsAleksander Morgado
2012-03-15base-modem: set v1 serial parser alwaysAleksander Morgado
CDMA modems used to use the v1_e1 serial parser; but we'll try to setup a common one in all modems.
2012-03-15base-modem: new properties to handle Device, Driver and PluginAleksander Morgado
They will be set when constructing the object.
2012-03-15base-modem: ported all port grabbing/releasing logic to the base objectAleksander Morgado
2012-03-15base-modem: expect a GDBusMethodInvocation as context of the auth requestAleksander Morgado
2012-03-15core: new MMBaseModem abstract typeAleksander Morgado
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.