From b64f52cddc9dc1f49f167d010a8150671d0dd44a Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Wed, 11 Jul 2012 12:36:42 +0200 Subject: plugin: if no grab_port() method given, use the default one --- src/mm-plugin.c | 20 ++++++++++++++++---- src/mm-plugin.h | 6 ++---- 2 files changed, 18 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/mm-plugin.c b/src/mm-plugin.c index 40e215f8..681c1773 100644 --- a/src/mm-plugin.c +++ b/src/mm-plugin.c @@ -598,13 +598,25 @@ mm_plugin_create_modem (MMPlugin *self, /* Grab each port */ for (l = port_probes; l; l = g_list_next (l)) { GError *inner_error = NULL; + MMPortProbe *probe = MM_PORT_PROBE (l->data); + gboolean grabbed; /* If grabbing a port fails, just warn. We'll decide if the modem is * valid or not when all ports get organized */ - if (!MM_PLUGIN_GET_CLASS (self)->grab_port (MM_PLUGIN (self), - modem, - MM_PORT_PROBE (l->data), - &inner_error)) { + + if (MM_PLUGIN_GET_CLASS (self)->grab_port) + grabbed = MM_PLUGIN_GET_CLASS (self)->grab_port (MM_PLUGIN (self), + modem, + probe, + &inner_error); + else + grabbed = mm_base_modem_grab_port (modem, + mm_port_probe_get_port_subsys (probe), + mm_port_probe_get_port_name (probe), + mm_port_probe_get_port_type (probe), + MM_AT_PORT_FLAG_NONE, + &inner_error); + if (!grabbed) { mm_warn ("Could not grab port (%s/%s): '%s'", mm_port_probe_get_port_subsys (MM_PORT_PROBE (l->data)), mm_port_probe_get_port_name (MM_PORT_PROBE (l->data)), diff --git a/src/mm-plugin.h b/src/mm-plugin.h index a3d8179e..4af0f14a 100644 --- a/src/mm-plugin.h +++ b/src/mm-plugin.h @@ -75,10 +75,8 @@ struct _MMPlugin { struct _MMPluginClass { GObjectClass parent; - /* Mandatory subclass functions */ - /* Plugins need to provide a method to create a modem object given - * a list of port probes */ + * a list of port probes (Mandatory) */ MMBaseModem *(*create_modem) (MMPlugin *plugin, const gchar *sysfs_path, const gchar *driver, @@ -88,7 +86,7 @@ struct _MMPluginClass { GError **error); /* Plugins need to provide a method to grab independent ports - * identified by port probes */ + * identified by port probes (Optional) */ gboolean (*grab_port) (MMPlugin *plugin, MMBaseModem *modem, MMPortProbe *probe, -- cgit v1.2.3-70-g09d2