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:
@@ -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,
|
||||
|
Reference in New Issue
Block a user