api,introspection: report list of drivers, not just one

Different ports of the same modem may get handled by different drivers. We
therefore need to provide a list of drivers (new `Modem.Drivers' property with
signature 'as') instead of just one (removed `Modem.Driver' property with
signature 's').

$ sudo mmcli -m 0 | grep drivers
           |        drivers: 'qcserial, qmi_wwan'
This commit is contained in:
Aleksander Morgado
2012-08-24 13:28:22 +02:00
parent a595912d2d
commit 0436b3e457
84 changed files with 268 additions and 214 deletions

View File

@@ -39,7 +39,7 @@ enum {
PROP_VALID,
PROP_MAX_TIMEOUTS,
PROP_DEVICE,
PROP_DRIVER,
PROP_DRIVERS,
PROP_PLUGIN,
PROP_VENDOR_ID,
PROP_PRODUCT_ID,
@@ -59,7 +59,7 @@ struct _MMBaseModemPrivate {
gulong invalid_if_cancelled;
gchar *device;
gchar *driver;
gchar **drivers;
gchar *plugin;
guint vendor_id;
@@ -809,12 +809,12 @@ mm_base_modem_get_device (MMBaseModem *self)
return self->priv->device;
}
const gchar *
mm_base_modem_get_driver (MMBaseModem *self)
const gchar **
mm_base_modem_get_drivers (MMBaseModem *self)
{
g_return_val_if_fail (MM_IS_BASE_MODEM (self), NULL);
return self->priv->driver;
return (const gchar **)self->priv->drivers;
}
const gchar *
@@ -909,9 +909,9 @@ set_property (GObject *object,
g_free (self->priv->device);
self->priv->device = g_value_dup_string (value);
break;
case PROP_DRIVER:
g_free (self->priv->driver);
self->priv->driver = g_value_dup_string (value);
case PROP_DRIVERS:
g_strfreev (self->priv->drivers);
self->priv->drivers = g_value_dup_boxed (value);
break;
case PROP_PLUGIN:
g_free (self->priv->plugin);
@@ -951,8 +951,8 @@ get_property (GObject *object,
case PROP_DEVICE:
g_value_set_string (value, self->priv->device);
break;
case PROP_DRIVER:
g_value_set_string (value, self->priv->driver);
case PROP_DRIVERS:
g_value_set_boxed (value, self->priv->drivers);
break;
case PROP_PLUGIN:
g_value_set_string (value, self->priv->plugin);
@@ -986,7 +986,7 @@ finalize (GObject *object)
self->priv->device);
g_free (self->priv->device);
g_free (self->priv->driver);
g_strfreev (self->priv->drivers);
g_free (self->priv->plugin);
G_OBJECT_CLASS (mm_base_modem_parent_class)->finalize (object);
@@ -1065,13 +1065,13 @@ mm_base_modem_class_init (MMBaseModemClass *klass)
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
g_object_class_install_property (object_class, PROP_DEVICE, properties[PROP_DEVICE]);
properties[PROP_DRIVER] =
g_param_spec_string (MM_BASE_MODEM_DRIVER,
"Driver",
"Kernel driver",
NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
g_object_class_install_property (object_class, PROP_DRIVER, properties[PROP_DRIVER]);
properties[PROP_DRIVERS] =
g_param_spec_boxed (MM_BASE_MODEM_DRIVERS,
"Drivers",
"Kernel drivers",
G_TYPE_STRV,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
g_object_class_install_property (object_class, PROP_DRIVERS, properties[PROP_DRIVERS]);
properties[PROP_PLUGIN] =
g_param_spec_string (MM_BASE_MODEM_PLUGIN,