aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/mm-plugin-generic.c100
-rw-r--r--src/mm-manager.c264
-rw-r--r--src/mm-plugin-base.c8
-rw-r--r--src/mm-plugin-base.h6
-rw-r--r--src/mm-plugin-manager.c4
-rw-r--r--src/mm-plugin-manager.h4
-rw-r--r--src/mm-plugin.c6
-rw-r--r--src/mm-plugin.h26
8 files changed, 206 insertions, 212 deletions
diff --git a/plugins/mm-plugin-generic.c b/plugins/mm-plugin-generic.c
index 4f4e95a6..4f347f53 100644
--- a/plugins/mm-plugin-generic.c
+++ b/plugins/mm-plugin-generic.c
@@ -27,8 +27,7 @@
#include <gmodule.h>
#include "mm-plugin-generic.h"
-#include "mm-generic-gsm.h"
-#include "mm-generic-cdma.h"
+#include "mm-broadband-modem.h"
#include "mm-errors.h"
#include "mm-serial-parsers.h"
#include "mm-log.h"
@@ -40,27 +39,33 @@ int mm_plugin_minor_version = MM_PLUGIN_MINOR_VERSION;
/*****************************************************************************/
-static MMModem *
+static MMBaseModem *
grab_port (MMPluginBase *base,
- MMModem *existing,
+ MMBaseModem *existing,
MMPortProbe *probe,
GError **error)
{
GUdevDevice *port;
- MMModem *modem = NULL;
- const gchar *name, *subsys, *devfile, *physdev, *driver;
- guint32 caps;
+ MMBaseModem *modem = NULL;
+ const gchar *name, *subsys, *devfile, *driver;
guint16 vendor = 0, product = 0;
subsys = mm_port_probe_get_port_subsys (probe);
name = mm_port_probe_get_port_name (probe);
+
+ /* The generic plugin cannot do anything with non-AT ports */
+ if (!mm_port_probe_is_at (probe)) {
+ g_set_error (error, 0, 0, "Ignoring non-AT port");
+ return NULL;
+ }
+
driver = mm_port_probe_get_port_driver (probe);
port = mm_port_probe_get_port (probe);
- g_assert (port);
+ /* Check device file of the port, we expect one */
devfile = g_udev_device_get_device_file (port);
if (!devfile) {
- if (!driver || strcmp (driver, "bluetooth")) {
+ if (!driver || !g_str_equal (driver, "bluetooth")) {
g_set_error (error, 0, 0, "Could not get port's sysfs file.");
return NULL;
}
@@ -71,58 +76,29 @@ grab_port (MMPluginBase *base,
name);
}
- if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) {
- g_set_error (error, 0, 0, "Could not get modem product ID.");
+ /* Vendor and Product IDs are really optional, we'll just warn if they
+ * cannot get loaded */
+ if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product))
+ mm_warn ("Could not get modem vendor/product ID");
+
+ /* If this is the first port being grabbed, create a new modem object */
+ if (!existing)
+ modem = MM_BASE_MODEM (mm_broadband_modem_new (mm_port_probe_get_port_physdev (probe),
+ driver,
+ mm_plugin_get_name (MM_PLUGIN (base)),
+ vendor,
+ product));
+
+ if (!mm_base_modem_grab_port (existing ? existing : modem,
+ subsys,
+ name,
+ MM_PORT_TYPE_UNKNOWN)) {
+ if (modem)
+ g_object_unref (modem);
return NULL;
}
- caps = mm_port_probe_get_capabilities (probe);
- physdev = mm_port_probe_get_port_physdev (probe);
- if (!existing) {
- if (caps & MM_PORT_PROBE_CAPABILITY_CDMA) {
- modem = mm_generic_cdma_new (physdev,
- driver,
- mm_plugin_get_name (MM_PLUGIN (base)),
- !!(caps & MM_PORT_PROBE_CAPABILITY_IS856),
- !!(caps & MM_PORT_PROBE_CAPABILITY_IS856_A),
- vendor,
- product);
- } else if (caps & MM_PORT_PROBE_CAPABILITY_GSM) {
- modem = mm_generic_gsm_new (physdev,
- driver,
- mm_plugin_get_name (MM_PLUGIN (base)),
- vendor,
- product);
- }
-
- if (modem) {
- if (!mm_modem_grab_port (modem,
- subsys,
- name,
- MM_PORT_TYPE_UNKNOWN,
- NULL,
- error)) {
- g_object_unref (modem);
- return NULL;
- }
- }
- } else if (caps) {
- MMPortType ptype = MM_PORT_TYPE_UNKNOWN;
-
- if (mm_port_probe_is_qcdm (probe))
- ptype = MM_PORT_TYPE_QCDM;
-
- modem = existing;
- if (!mm_modem_grab_port (modem,
- subsys,
- name,
- ptype,
- NULL,
- error))
- return NULL;
- }
-
- return modem;
+ return existing ? existing : modem;
}
/*****************************************************************************/
@@ -130,17 +106,13 @@ grab_port (MMPluginBase *base,
G_MODULE_EXPORT MMPlugin *
mm_plugin_create (void)
{
- static const gchar *name = MM_PLUGIN_GENERIC_NAME;
static const gchar *subsystems[] = { "tty", NULL };
- static const guint32 capabilities = MM_PORT_PROBE_CAPABILITY_GSM_OR_CDMA;
- static const gboolean qcdm = TRUE;
return MM_PLUGIN (
g_object_new (MM_TYPE_PLUGIN_GENERIC,
- MM_PLUGIN_BASE_NAME, name,
+ MM_PLUGIN_BASE_NAME, MM_PLUGIN_GENERIC_NAME,
MM_PLUGIN_BASE_ALLOWED_SUBSYSTEMS, subsystems,
- MM_PLUGIN_BASE_ALLOWED_CAPABILITIES, capabilities,
- MM_PLUGIN_BASE_ALLOWED_QCDM, qcdm,
+ MM_PLUGIN_BASE_ALLOWED_AT, TRUE,
NULL));
}
diff --git a/src/mm-manager.c b/src/mm-manager.c
index b1a3b8ab..e4694c51 100644
--- a/src/mm-manager.c
+++ b/src/mm-manager.c
@@ -98,24 +98,71 @@ find_port_support_context_free (FindPortSupportContext *ctx)
}
static void
-remove_modem (MMManager *manager, MMModem *modem)
+remove_modem (MMManager *manager,
+ MMBaseModem *modem)
{
- char *device;
+ gchar *path;
+ gchar *device;
- device = mm_modem_get_device (modem);
- g_assert (device);
- mm_dbg ("Removed modem %s", device);
+ device = g_strdup (mm_base_modem_get_device (modem));
+ path = g_strdup (g_dbus_object_get_object_path (G_DBUS_OBJECT (modem)));
- /* GDBus TODO: Unexport object
- * g_signal_emit (manager, signals[DEVICE_REMOVED], 0, modem); */
+ /* If we get DBus object path, modem was exported */
+ if (path) {
+ g_dbus_object_manager_server_unexport (manager->priv->object_manager, path);
+ g_object_set (modem,
+ MM_BASE_MODEM_CONNECTION, NULL,
+ NULL);
+
+ mm_dbg ("Unexported modem '%s' from path '%s'", device, path);
+ g_free (path);
+ }
+
+ /* Run dispose before unref-ing, in order to cleanup the SIM object,
+ * if any (which also holds a reference to the modem object) */
+ g_object_run_dispose (G_OBJECT (modem));
g_hash_table_remove (manager->priv->modems, device);
g_free (device);
}
static void
-check_export_modem (MMManager *self, MMModem *modem)
+debug_modem_info (MMManager *self,
+ MMBaseModem *modem)
{
- char *modem_physdev;
+ /* guint32 vid = 0; */
+ /* guint32 pid = 0; */
+ /* GUdevDevice *physdev; */
+ /* const gchar *subsys; */
+
+ /* physdev = g_udev_client_query_by_sysfs_path ( */
+ /* self->priv->udev, */
+ /* mm_base_modem_get_device (modem)); */
+ /* subsys = (physdev ? */
+ /* g_udev_device_get_subsystem (physdev) : */
+ /* NULL); */
+
+ /* g_object_get (G_OBJECT (modem), */
+ /* MM_MODEM_DATA_DEVICE, &data_device, */
+ /* MM_MODEM_HW_VID, &vid, */
+ /* MM_MODEM_HW_PID, &pid, */
+ /* NULL); */
+ /* mm_dbg ("(%s): VID 0x%04X PID 0x%04X (%s)", */
+ /* path, */
+ /* (vid & 0xFFFF), */
+ /* (pid & 0xFFFF), */
+ /* subsys ? subsys : "unknown"); */
+ /* mm_dbg ("(%s): data port is %s", path, data_device); */
+ /* g_free (data_device); */
+
+ /* if (physdev) */
+ /* g_object_unref (physdev); */
+}
+
+static void
+check_export_modem (MMManager *self,
+ MMBaseModem *modem)
+{
+ const gchar *modem_physdev;
const gchar *name;
const gchar *subsys;
@@ -132,7 +179,8 @@ check_export_modem (MMManager *self, MMModem *modem)
* chance that a port could show up after the modem is already created and
* all other ports are already handled. That chance is very small though.
*/
- modem_physdev = mm_modem_get_device (modem);
+
+ modem_physdev = mm_base_modem_get_device (modem);
g_assert (modem_physdev);
/* Check for ports that are in the process of being interrogated by plugins */
@@ -140,64 +188,42 @@ check_export_modem (MMManager *self, MMModem *modem)
modem_physdev,
&subsys,
&name)) {
- mm_dbg ("(%s/%s): outstanding support task prevents export of %s",
+ mm_dbg ("(%s/%s): outstanding support task prevents export of '%s'",
subsys, name, modem_physdev);
- goto out;
+ return;
}
- /* Already exported? This can happen if the modem is exported and the kernel
- * discovers another of the modem's ports.
- */
- if (g_object_get_data (G_OBJECT (modem), DBUS_PATH_TAG))
- goto out;
-
/* No outstanding port tasks, so if the modem is valid we can export it */
- if (mm_modem_get_valid (modem)) {
- static guint32 id = 0, vid = 0, pid = 0;
- gchar *path, *data_device = NULL;
- GUdevDevice *physdev;
-
- subsys = NULL;
+ if (mm_base_modem_get_valid (modem)) {
+ gchar *path;
+ static guint32 id = 0;
path = g_strdup_printf (MM_DBUS_PATH"/Modems/%d", id++);
- /* GDBus TODO:
- * dbus_g_connection_register_g_object (priv->connection, path, G_OBJECT (modem)); */
- g_object_set_data_full (G_OBJECT (modem), DBUS_PATH_TAG, path, (GDestroyNotify) g_free);
-
- mm_dbg ("Exported modem %s as %s", modem_physdev, path);
-
- physdev = g_udev_client_query_by_sysfs_path (self->priv->udev, modem_physdev);
- if (physdev)
- subsys = g_udev_device_get_subsystem (physdev);
-
- g_object_get (G_OBJECT (modem),
- MM_MODEM_DATA_DEVICE, &data_device,
- MM_MODEM_HW_VID, &vid,
- MM_MODEM_HW_PID, &pid,
+ g_object_set (modem,
+ "g-object-path", path,
+ MM_BASE_MODEM_CONNECTION, self->priv->connection,
NULL);
- mm_dbg ("(%s): VID 0x%04X PID 0x%04X (%s)",
- path, (vid & 0xFFFF), (pid & 0xFFFF),
- subsys ? subsys : "unknown");
- mm_dbg ("(%s): data port is %s", path, data_device);
- g_free (data_device);
-
- if (physdev)
- g_object_unref (physdev);
+ g_dbus_object_manager_server_export (self->priv->object_manager,
+ G_DBUS_OBJECT_SKELETON (modem));
+ mm_dbg ("Exported modem '%s' at path '%s'", modem_physdev, path);
+ g_free (path);
- /* GDBus TODO: export object
- * g_signal_emit (self, signals[DEVICE_ADDED], 0, modem); */
+ /* Once connected, dump additional debug info about the modem */
+ debug_modem_info (self, modem);
+ return;
}
-out:
- g_free (modem_physdev);
+ mm_dbg ("Not exporting invalid modem '%s'", modem_physdev);
}
static void
-modem_valid (MMModem *modem, GParamSpec *pspec, gpointer user_data)
+modem_valid (MMBaseModem *modem,
+ GParamSpec *pspec,
+ gpointer user_data)
{
MMManager *manager = MM_MANAGER (user_data);
- if (mm_modem_get_valid (modem))
+ if (mm_base_modem_get_valid (modem))
check_export_modem (manager, modem);
else
remove_modem (manager, modem);
@@ -206,54 +232,58 @@ modem_valid (MMModem *modem, GParamSpec *pspec, gpointer user_data)
#define MANAGER_PLUGIN_TAG "manager-plugin"
static void
-add_modem (MMManager *manager, MMModem *modem, MMPlugin *plugin)
+add_modem (MMManager *manager,
+ MMBaseModem *modem,
+ MMPlugin *plugin)
{
- char *device;
+ const gchar *device;
- device = mm_modem_get_device (modem);
- g_assert (device);
+ device = mm_base_modem_get_device (modem);
if (!g_hash_table_lookup (manager->priv->modems, device)) {
- g_hash_table_insert (manager->priv->modems, g_strdup (device), modem);
- g_object_set_data (G_OBJECT (modem), MANAGER_PLUGIN_TAG, plugin);
-
mm_dbg ("Added modem %s", device);
- g_signal_connect (modem, "notify::" MM_MODEM_VALID, G_CALLBACK (modem_valid), manager);
- check_export_modem (manager, modem);
+ g_hash_table_insert (manager->priv->modems,
+ g_strdup (device),
+ modem);
+ g_object_set_data (G_OBJECT (modem), MANAGER_PLUGIN_TAG, plugin);
+ g_signal_connect (modem, "notify::" MM_BASE_MODEM_VALID, G_CALLBACK (modem_valid), manager);
}
- g_free (device);
+
+ check_export_modem (manager, modem);
}
-static MMModem *
-find_modem_for_device (MMManager *manager, const char *device)
+static MMBaseModem *
+find_modem_for_device (MMManager *manager,
+ const gchar *device)
{
GHashTableIter iter;
gpointer key, value;
- MMModem *found = NULL;
g_hash_table_iter_init (&iter, manager->priv->modems);
- while (g_hash_table_iter_next (&iter, &key, &value) && !found) {
- MMModem *candidate = MM_MODEM (value);
- char *candidate_device = mm_modem_get_device (candidate);
+ while (g_hash_table_iter_next (&iter, &key, &value)) {
+ MMBaseModem *candidate = MM_BASE_MODEM (value);
- if (!strcmp (device, candidate_device))
- found = candidate;
- g_free (candidate_device);
+ if (g_str_equal (device,
+ mm_base_modem_get_device (candidate)))
+ return candidate;
}
- return found;
+
+ return NULL;
}
-static MMModem *
-find_modem_for_port (MMManager *manager, const char *subsys, const char *name)
+static MMBaseModem *
+find_modem_for_port (MMManager *manager,
+ const gchar *subsys,
+ const gchar *name)
{
GHashTableIter iter;
gpointer key, value;
g_hash_table_iter_init (&iter, manager->priv->modems);
while (g_hash_table_iter_next (&iter, &key, &value)) {
- MMModem *modem = MM_MODEM (value);
+ MMBaseModem *candidate = MM_BASE_MODEM (value);
- if (mm_modem_owns_port (modem, subsys, name))
- return modem;
+ if (mm_base_modem_owns_port (candidate, subsys, name))
+ return candidate;
}
return NULL;
}
@@ -270,7 +300,7 @@ find_port_support_ready_cb (MMPluginManager *plugin_manager,
result,
&error);
if (!best_plugin) {
- MMModem *existing;
+ MMBaseModem *existing;
if (error) {
mm_dbg ("(%s/%s): error checking support: '%s'",
@@ -313,51 +343,40 @@ grab_port (MMManager *manager,
GUdevDevice *device,
GUdevDevice *physical_device)
{
- MMModem *modem = NULL;
GError *error = NULL;
- /* GSList *iter; */
- MMModem *existing;
+ MMBaseModem *modem;
+ MMBaseModem *existing;
existing = g_hash_table_lookup (manager->priv->modems,
g_udev_device_get_sysfs_path (physical_device));
- /* Create the modem */
+ /* While grabbing the first port, modem will get created */
modem = mm_plugin_grab_port (plugin,
g_udev_device_get_subsystem (device),
g_udev_device_get_name (device),
existing,
&error);
- if (modem) {
- guint32 modem_type = MM_MODEM_TYPE_UNKNOWN;
- const gchar *type_name = "UNKNOWN";
- gchar *modem_device;
-
- g_object_get (G_OBJECT (modem), MM_MODEM_TYPE, &modem_type, NULL);
- if (modem_type == MM_MODEM_TYPE_GSM)
- type_name = "GSM";
- else if (modem_type == MM_MODEM_TYPE_CDMA)
- type_name = "CDMA";
-
- modem_device = mm_modem_get_device (modem);
- mm_info ("(%s): %s modem %s claimed port %s",
- mm_plugin_get_name (plugin),
- type_name,
- modem_device,
- g_udev_device_get_name (device));
- g_free (modem_device);
-
- add_modem (manager, modem, plugin);
- } else {
+ if (!modem) {
mm_warn ("plugin '%s' claimed to support %s/%s but couldn't: (%d) %s",
mm_plugin_get_name (plugin),
g_udev_device_get_subsystem (device),
g_udev_device_get_name (device),
error ? error->code : -1,
(error && error->message) ? error->message : "(unknown)");
- modem = existing;
+
+ if (existing)
+ check_export_modem (manager, existing);
+ return;
}
- check_export_modem (manager, modem);
+ mm_info ("(%s): modem %s claimed port %s",
+ mm_plugin_get_name (plugin),
+ mm_base_modem_get_device (modem),
+ g_udev_device_get_name (device));
+
+ /* If the modem was just created, store it */
+ if (!existing)
+ add_modem (manager, modem, plugin);
}
static GUdevDevice *
@@ -423,13 +442,14 @@ find_physical_device (GUdevDevice *child)
}
static void
-device_added (MMManager *manager, GUdevDevice *device)
+device_added (MMManager *manager,
+ GUdevDevice *device)
{
const char *subsys, *name, *physdev_path, *physdev_subsys;
gboolean is_candidate;
GUdevDevice *physdev = NULL;
MMPlugin *plugin;
- MMModem *existing;
+ MMBaseModem *existing;
g_return_if_fail (device != NULL);
@@ -531,11 +551,11 @@ out:
}
static void
-device_removed (MMManager *manager, GUdevDevice *device)
+device_removed (MMManager *manager,
+ GUdevDevice *device)
{
- MMModem *modem;
+ MMBaseModem *modem;
const char *subsys, *name;
- gchar *modem_device;
g_return_if_fail (device != NULL);
@@ -549,10 +569,11 @@ device_removed (MMManager *manager, GUdevDevice *device)
/* find_modem_for_port handles tty and net removal */
modem = find_modem_for_port (manager, subsys, name);
if (modem) {
- modem_device = mm_modem_get_device (modem);
- mm_info ("(%s/%s): released by modem %s", subsys, name, modem_device);
- g_free (modem_device);
- mm_modem_release_port (modem, subsys, name);
+ mm_info ("(%s/%s): released by modem %s",
+ subsys,
+ name,
+ mm_base_modem_get_device (modem));
+ mm_base_modem_release_port (modem, subsys, name);
return;
}
} else {
@@ -634,7 +655,7 @@ mm_manager_start (MMManager *manager)
typedef struct {
MMManager *manager;
- MMModem *modem;
+ MMBaseModem *modem;
} RemoveInfo;
static gboolean
@@ -648,7 +669,7 @@ remove_disable_one (gpointer user_data)
}
static void
-remove_disable_done (MMModem *modem,
+remove_disable_done (MMBaseModem *modem,
GError *error,
gpointer user_data)
{
@@ -673,12 +694,13 @@ mm_manager_shutdown (MMManager *self)
modems = g_hash_table_get_values (self->priv->modems);
for (iter = modems; iter; iter = g_list_next (iter)) {
- MMModem *modem = MM_MODEM (iter->data);
+ MMBaseModem *modem = MM_BASE_MODEM (iter->data);
- if (mm_modem_get_state (modem) >= MM_MODEM_STATE_ENABLING)
- mm_modem_disable (modem, remove_disable_done, self);
- else
- remove_disable_done (modem, NULL, self);
+ /* TODO */
+ /* if (mm_modem_get_state (modem) >= MM_MODEM_STATE_ENABLING) */
+ /* mm_modem_disable (modem, remove_disable_done, self); */
+ /* else */
+ remove_disable_done (modem, NULL, self);
}
g_list_free (modems);
diff --git a/src/mm-plugin-base.c b/src/mm-plugin-base.c
index 4cc4bf39..5bfb643d 100644
--- a/src/mm-plugin-base.c
+++ b/src/mm-plugin-base.c
@@ -544,7 +544,7 @@ supports_port (MMPlugin *plugin,
const gchar *subsys,
const gchar *name,
const gchar *physdev_path,
- MMModem *existing,
+ MMBaseModem *existing,
GAsyncReadyCallback callback,
gpointer user_data)
{
@@ -695,17 +695,17 @@ supports_port_cancel (MMPlugin *plugin,
g_free (key);
}
-static MMModem *
+static MMBaseModem *
grab_port (MMPlugin *plugin,
const char *subsys,
const char *name,
- MMModem *existing,
+ MMBaseModem *existing,
GError **error)
{
MMPluginBase *self = MM_PLUGIN_BASE (plugin);
MMPluginBasePrivate *priv = MM_PLUGIN_BASE_GET_PRIVATE (self);
MMPortProbe *probe;
- MMModem *modem = NULL;
+ MMBaseModem *modem = NULL;
char *key;
key = get_key (subsys, name);
diff --git a/src/mm-plugin-base.h b/src/mm-plugin-base.h
index a9f4b885..1f572638 100644
--- a/src/mm-plugin-base.h
+++ b/src/mm-plugin-base.h
@@ -23,7 +23,7 @@
#include <gudev/gudev.h>
#include "mm-plugin.h"
-#include "mm-modem.h"
+#include "mm-base-modem.h"
#include "mm-port.h"
#include "mm-port-probe.h"
@@ -59,8 +59,8 @@ struct _MMPluginBaseClass {
GObjectClass parent;
/* Mandatory subclass functions */
- MMModem *(*grab_port) (MMPluginBase *plugin,
- MMModem *existing,
+ MMBaseModem *(*grab_port) (MMPluginBase *plugin,
+ MMBaseModem *existing,
MMPortProbe *probe,
GError **error);
};
diff --git a/src/mm-plugin-manager.c b/src/mm-plugin-manager.c
index f1473aee..d2bfe3a6 100644
--- a/src/mm-plugin-manager.c
+++ b/src/mm-plugin-manager.c
@@ -62,7 +62,7 @@ typedef struct {
gchar *subsys;
gchar *name;
gchar *physdev_path;
- MMModem *existing;
+ MMBaseModem *existing;
/* Current context */
MMPlugin *suggested_plugin;
GSList *current;
@@ -341,7 +341,7 @@ mm_plugin_manager_find_port_support (MMPluginManager *self,
const gchar *name,
const gchar *physdev_path,
MMPlugin *suggested_plugin,
- MMModem *existing,
+ MMBaseModem *existing,
GAsyncReadyCallback callback,
gpointer user_data)
{
diff --git a/src/mm-plugin-manager.h b/src/mm-plugin-manager.h
index 42f6a750..d230dbd9 100644
--- a/src/mm-plugin-manager.h
+++ b/src/mm-plugin-manager.h
@@ -21,7 +21,7 @@
#include <glib-object.h>
#include "mm-plugin.h"
-#include "mm-modem.h"
+#include "mm-base-modem.h"
#define MM_TYPE_PLUGIN_MANAGER (mm_plugin_manager_get_type ())
#define MM_PLUGIN_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_PLUGIN_MANAGER, MMPluginManager))
@@ -52,7 +52,7 @@ void mm_plugin_manager_find_port_support (MMPluginManager *self,
const gchar *name,
const gchar *physdev_path,
MMPlugin *suggested_plugin,
- MMModem *existing,
+ MMBaseModem *existing,
GAsyncReadyCallback callback,
gpointer user_data);
MMPlugin *mm_plugin_manager_find_port_support_finish (MMPluginManager *self,
diff --git a/src/mm-plugin.c b/src/mm-plugin.c
index 26f40ae2..950efc4c 100644
--- a/src/mm-plugin.c
+++ b/src/mm-plugin.c
@@ -37,7 +37,7 @@ mm_plugin_supports_port (MMPlugin *self,
const gchar *subsys,
const gchar *name,
const gchar *physdev_path,
- MMModem *existing,
+ MMBaseModem *existing,
GAsyncReadyCallback callback,
gpointer user_data)
{
@@ -83,11 +83,11 @@ mm_plugin_supports_port_cancel (MMPlugin *plugin,
MM_PLUGIN_GET_INTERFACE (plugin)->supports_port_cancel (plugin, subsys, name);
}
-MMModem *
+MMBaseModem *
mm_plugin_grab_port (MMPlugin *plugin,
const char *subsys,
const char *name,
- MMModem *existing,
+ MMBaseModem *existing,
GError **error)
{
g_return_val_if_fail (MM_IS_PLUGIN (plugin), FALSE);
diff --git a/src/mm-plugin.h b/src/mm-plugin.h
index f3c099b9..369b6614 100644
--- a/src/mm-plugin.h
+++ b/src/mm-plugin.h
@@ -20,7 +20,7 @@
#include <glib-object.h>
#include <gio/gio.h>
-#include <mm-modem.h>
+#include "mm-base-modem.h"
#define MM_PLUGIN_GENERIC_NAME "Generic"
@@ -74,7 +74,7 @@ struct _MMPlugin {
const gchar *subsys,
const gchar *name,
const gchar *physdev_path,
- MMModem *existing,
+ MMBaseModem *existing,
GAsyncReadyCallback callback,
gpointer user_data);
@@ -101,11 +101,11 @@ struct _MMPlugin {
* while claiming the port, the error information should be returned in the
* error argument, and the plugin should return NULL.
*/
- MMModem * (*grab_port) (MMPlugin *self,
- const char *subsys,
- const char *name,
- MMModem *existing,
- GError **error);
+ MMBaseModem * (*grab_port) (MMPlugin *self,
+ const char *subsys,
+ const char *name,
+ MMBaseModem *existing,
+ GError **error);
};
GType mm_plugin_get_type (void);
@@ -118,7 +118,7 @@ void mm_plugin_supports_port (MMPlugin *plugin,
const gchar *subsys,
const gchar *name,
const gchar *physdev_path,
- MMModem *existing,
+ MMBaseModem *existing,
GAsyncReadyCallback callback,
gpointer user_data);
@@ -130,11 +130,11 @@ void mm_plugin_supports_port_cancel (MMPlugin *plugin,
const char *subsys,
const char *name);
-MMModem *mm_plugin_grab_port (MMPlugin *plugin,
- const char *subsys,
- const char *name,
- MMModem *existing,
- GError **error);
+MMBaseModem *mm_plugin_grab_port (MMPlugin *plugin,
+ const char *subsys,
+ const char *name,
+ MMBaseModem *existing,
+ GError **error);
#endif /* MM_PLUGIN_H */