I took a quick look at the new modem manager API and I'd like to add something that would allow us to manipulate firmware images. This is not fully fleshed out yet. Thoughts?
<?xml version="1.0" encoding="UTF-8" ?>
<interface name="org.freedesktop.ModemManager1.Modem.Firmware">
<!-- METHODS -->
<method name="Select">
<tp:docstring>
Select which firmware image to use. This call will reset the modem.
</tp:docstring>
<annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_modem_firmware_select"/>
<arg name="identifier" type="s" direction="in">
<tp:docstring>
Identifier of the firmware to use.
</arg>
</method>
<method name="ListInstalled">
<tp:docstring>
List firmware installed on the module. (Make this a property???).
</tp:docstring>
<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_modem_firmware_list_installed_firmware"/>
<arg name="firmware" type="a{sa{sv}}" direction="out">
<tp:docstring>
Dictionary of dictionary of properties. The outer dictionary
contains keys that are firmware identifiers. The inner
diction contains properties of that firmware. The predefined
common properties are:
Identifier: {key: value}
'carrier' : (string, always) prefer carrier for this firmware
'technology' : (?, always) technologies for this firmware (TBD)?
</tp:docstring>
</arg>
</method>
<method name="ListAvailable">
<tp:docstring>
Get the modem status. (Make this a property???).
</tp:docstring>
<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_modem_simple_get_status"/>
<arg name="firmware" type="a{sa{sv}}" direction="out">
<tp:docstring>
Dictionary of dictionary of properties. The outer dictionary
contains keys that are firmware identifiers. The inner
diction contains properties of that firmware. The predefined
common properties are:
Identifier: {key: value}
'carrier' : (string, always) prefer carrier for this firmware
'technology' : (?, always) technologies for this firmware (TBD)?
</tp:docstring>
</arg>
</method>
<method name="Remove">
<tp:docstring>
Remove firmware installed on the module. This is only
implemented for modules that can hold multiple versions of
firmware on the module.
</tp:docstring>
<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_modem_firmware_list_installed_firmware"/>
<arg name="identifier" type="s" direction="in">
<tp:docstring>
identifier of the firmware to remove from the module.
</tp:docstring>
</arg>
</method>
<method name="Intall">
<tp:docstring>
Install new firmware on the modem.
</tp:docstring>
<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_modem_firmware_install"/>
<arg name="identifier" type="s" direction="out">
<tp:docstring>
Identifier of the firmware to install on the modem. For
modems that can install multiple versions of firmware this
is the identifier returned by ListAvailable. For other
modems this maybe the filename of a file that contains the
firmware, or the name of a directory that contains multiple
files that need to be installed.
</tp:docstring>
</arg>
</method>
</interface>
</node>