aboutsummaryrefslogtreecommitdiff
path: root/src/mm-modem.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-modem.h')
-rw-r--r--src/mm-modem.h219
1 files changed, 219 insertions, 0 deletions
diff --git a/src/mm-modem.h b/src/mm-modem.h
new file mode 100644
index 0000000..e8dd7ea
--- /dev/null
+++ b/src/mm-modem.h
@@ -0,0 +1,219 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details:
+ *
+ * Copyright (C) 2008 - 2009 Novell, Inc.
+ * Copyright (C) 2009 Red Hat, Inc.
+ */
+
+#ifndef MM_MODEM_H
+#define MM_MODEM_H
+
+#include <glib-object.h>
+
+#include "mm-port.h"
+
+typedef enum {
+ MM_MODEM_STATE_UNKNOWN = 0,
+ MM_MODEM_STATE_DISABLED = 10,
+ MM_MODEM_STATE_DISABLING = 20,
+ MM_MODEM_STATE_ENABLING = 30,
+ MM_MODEM_STATE_ENABLED = 40,
+ MM_MODEM_STATE_SEARCHING = 50,
+ MM_MODEM_STATE_REGISTERED = 60,
+ MM_MODEM_STATE_DISCONNECTING = 70,
+ MM_MODEM_STATE_CONNECTING = 80,
+ MM_MODEM_STATE_CONNECTED = 90,
+
+ MM_MODEM_STATE_LAST = MM_MODEM_STATE_CONNECTED
+} MMModemState;
+
+typedef enum {
+ MM_MODEM_STATE_REASON_NONE = 0
+} MMModemStateReason;
+
+#define DBUS_PATH_TAG "dbus-path"
+
+#define MM_TYPE_MODEM (mm_modem_get_type ())
+#define MM_MODEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_MODEM, MMModem))
+#define MM_IS_MODEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_MODEM))
+#define MM_MODEM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), MM_TYPE_MODEM, MMModem))
+
+#define MM_MODEM_DBUS_INTERFACE "org.freedesktop.ModemManager.Modem"
+
+#define MM_MODEM_DATA_DEVICE "device"
+#define MM_MODEM_MASTER_DEVICE "master-device"
+#define MM_MODEM_DRIVER "driver"
+#define MM_MODEM_TYPE "type"
+#define MM_MODEM_IP_METHOD "ip-method"
+#define MM_MODEM_ENABLED "enabled"
+#define MM_MODEM_VALID "valid" /* not exported */
+#define MM_MODEM_PLUGIN "plugin" /* not exported */
+#define MM_MODEM_STATE "state" /* not exported */
+
+#define MM_MODEM_TYPE_UNKNOWN 0
+#define MM_MODEM_TYPE_GSM 1
+#define MM_MODEM_TYPE_CDMA 2
+
+#define MM_MODEM_IP_METHOD_PPP 0
+#define MM_MODEM_IP_METHOD_STATIC 1
+#define MM_MODEM_IP_METHOD_DHCP 2
+
+typedef enum {
+ MM_MODEM_PROP_FIRST = 0x1000,
+
+ MM_MODEM_PROP_DATA_DEVICE = MM_MODEM_PROP_FIRST,
+ MM_MODEM_PROP_MASTER_DEVICE,
+ MM_MODEM_PROP_DRIVER,
+ MM_MODEM_PROP_TYPE,
+ MM_MODEM_PROP_IP_METHOD,
+ MM_MODEM_PROP_VALID, /* Not exported */
+ MM_MODEM_PROP_PLUGIN, /* Not exported */
+ MM_MODEM_PROP_STATE, /* Not exported */
+ MM_MODEM_PROP_ENABLED
+} MMModemProp;
+
+typedef struct _MMModem MMModem;
+
+typedef void (*MMModemFn) (MMModem *modem,
+ GError *error,
+ gpointer user_data);
+
+typedef void (*MMModemUIntFn) (MMModem *modem,
+ guint32 result,
+ GError *error,
+ gpointer user_data);
+
+typedef void (*MMModemStringFn) (MMModem *modem,
+ const char *result,
+ GError *error,
+ gpointer user_data);
+
+typedef void (*MMModemIp4Fn) (MMModem *modem,
+ guint32 address,
+ GArray *dns,
+ GError *error,
+ gpointer user_data);
+
+typedef void (*MMModemInfoFn) (MMModem *modem,
+ const char *manufacturer,
+ const char *model,
+ const char *version,
+ GError *error,
+ gpointer user_data);
+
+struct _MMModem {
+ GTypeInterface g_iface;
+
+ /* Methods */
+ gboolean (*owns_port) (MMModem *self,
+ const char *subsys,
+ const char *name);
+
+ gboolean (*grab_port) (MMModem *self,
+ const char *subsys,
+ const char *name,
+ MMPortType suggested_type,
+ gpointer user_data,
+ GError **error);
+
+ void (*release_port) (MMModem *self,
+ const char *subsys,
+ const char *name);
+
+ void (*enable) (MMModem *self,
+ MMModemFn callback,
+ gpointer user_data);
+
+ void (*disable) (MMModem *self,
+ MMModemFn callback,
+ gpointer user_data);
+
+ void (*connect) (MMModem *self,
+ const char *number,
+ MMModemFn callback,
+ gpointer user_data);
+
+ void (*get_ip4_config) (MMModem *self,
+ MMModemIp4Fn callback,
+ gpointer user_data);
+
+ void (*disconnect) (MMModem *self,
+ MMModemFn callback,
+ gpointer user_data);
+
+ void (*get_info) (MMModem *self,
+ MMModemInfoFn callback,
+ gpointer user_data);
+
+ /* Signals */
+ void (*state_changed) (MMModem *self,
+ MMModemState new_state,
+ MMModemState old_state,
+ MMModemStateReason reason);
+};
+
+GType mm_modem_get_type (void);
+
+gboolean mm_modem_owns_port (MMModem *self,
+ const char *subsys,
+ const char *name);
+
+gboolean mm_modem_grab_port (MMModem *self,
+ const char *subsys,
+ const char *name,
+ MMPortType suggested_type,
+ gpointer user_data,
+ GError **error);
+
+void mm_modem_release_port (MMModem *self,
+ const char *subsys,
+ const char *name);
+
+void mm_modem_enable (MMModem *self,
+ MMModemFn callback,
+ gpointer user_data);
+
+void mm_modem_disable (MMModem *self,
+ MMModemFn callback,
+ gpointer user_data);
+
+void mm_modem_connect (MMModem *self,
+ const char *number,
+ MMModemFn callback,
+ gpointer user_data);
+
+void mm_modem_get_ip4_config (MMModem *self,
+ MMModemIp4Fn callback,
+ gpointer user_data);
+
+void mm_modem_disconnect (MMModem *self,
+ MMModemFn callback,
+ gpointer user_data);
+
+void mm_modem_get_info (MMModem *self,
+ MMModemInfoFn callback,
+ gpointer user_data);
+
+gboolean mm_modem_get_valid (MMModem *self);
+
+char *mm_modem_get_device (MMModem *self);
+
+MMModemState mm_modem_get_state (MMModem *self);
+
+void mm_modem_set_state (MMModem *self,
+ MMModemState new_state,
+ MMModemStateReason reason);
+
+GError *mm_modem_check_removed (MMModem *self, const GError *error);
+
+#endif /* MM_MODEM_H */
+