aboutsummaryrefslogtreecommitdiff
path: root/src/mm-plugin.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-plugin.h')
-rw-r--r--src/mm-plugin.h58
1 files changed, 34 insertions, 24 deletions
diff --git a/src/mm-plugin.h b/src/mm-plugin.h
index 0f9a600b..07f7f60c 100644
--- a/src/mm-plugin.h
+++ b/src/mm-plugin.h
@@ -4,10 +4,9 @@
#define MM_PLUGIN_H
#include <glib-object.h>
-#include <libhal.h>
#include <mm-modem.h>
-#define MM_PLUGIN_MAJOR_VERSION 1
+#define MM_PLUGIN_MAJOR_VERSION 2
#define MM_PLUGIN_MINOR_VERSION 0
#define MM_TYPE_PLUGIN (mm_plugin_get_type ())
@@ -23,33 +22,44 @@ struct _MMPlugin {
GTypeInterface g_iface;
/* Methods */
- const char *(*get_name) (MMPlugin *self);
-
- char **(*list_supported_udis) (MMPlugin *self,
- LibHalContext *hal_ctx);
-
- gboolean (*supports_udi) (MMPlugin *self,
- LibHalContext *hal_ctx,
- const char *udi);
-
- MMModem *(*create_modem) (MMPlugin *self,
- LibHalContext *hal_ctx,
- const char *udi);
+ const char *(*get_name) (MMPlugin *self);
+
+ /* Check whether a plugin supports a particular modem port, and what level
+ * of support the plugin has for the device. The plugin should return a
+ * value between 0 and 100 inclusive, where 0 means the plugin has no
+ * support for the device, and 100 means the plugin has full support for the
+ * device.
+ */
+ guint32 (*supports_port) (MMPlugin *self,
+ const char *subsys,
+ const char *name);
+
+ /* Will only be called if the plugin returns a value greater than 0 for
+ * the supports_port() method for this port. The plugin should create and
+ * return a new modem for the port's device if there is no existing modem
+ * to handle the port's hardware device, or should add the port to an
+ * existing modem and return that modem object. If an error is encountered
+ * 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,
+ GError **error);
};
GType mm_plugin_get_type (void);
-const char *mm_plugin_get_name (MMPlugin *plugin);
+const char *mm_plugin_get_name (MMPlugin *plugin);
-char **mm_plugin_list_supported_udis (MMPlugin *plugin,
- LibHalContext *hal_ctx);
+guint32 mm_plugin_supports_port (MMPlugin *plugin,
+ const char *subsys,
+ const char *name);
-gboolean mm_plugin_supports_udi (MMPlugin *plugin,
- LibHalContext *hal_ctx,
- const char *udi);
-
-MMModem *mm_plugin_create_modem (MMPlugin *plugin,
- LibHalContext *hal_ctx,
- const char *udi);
+MMModem *mm_plugin_grab_port (MMPlugin *plugin,
+ const char *subsys,
+ const char *name,
+ GError **error);
#endif /* MM_PLUGIN_H */
+