/* -*- 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) 2011 Google, Inc. */ #ifndef MM_IFACE_MODEM_H #define MM_IFACE_MODEM_H #include #include #include "mm-charsets.h" #include "mm-at-serial-port.h" #define MM_TYPE_IFACE_MODEM (mm_iface_modem_get_type ()) #define MM_IFACE_MODEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_IFACE_MODEM, MMIfaceModem)) #define MM_IS_IFACE_MODEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_IFACE_MODEM)) #define MM_IFACE_MODEM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), MM_TYPE_IFACE_MODEM, MMIfaceModem)) #define MM_IFACE_MODEM_DBUS_SKELETON "iface-modem-dbus-skeleton" #define MM_IFACE_MODEM_CURRENT_CAPABILITIES "iface-modem-current-capabilities" #define MM_IFACE_MODEM_STATE "iface-modem-state" #define MM_IFACE_MODEM_SIM "iface-modem-sim" typedef struct _MMIfaceModem MMIfaceModem; struct _MMIfaceModem { GTypeInterface g_iface; /* Loading of the ModemCapabilities property */ void (*load_modem_capabilities) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); MMModemCapability (*load_modem_capabilities_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Loading of the CurrentCapabilities property */ void (*load_current_capabilities) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); MMModemCapability (*load_current_capabilities_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Loading of the MaxBearers property */ void (*load_max_bearers) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); guint (*load_max_bearers_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Loading of the MaxActiveBearers property */ void (*load_max_active_bearers) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); guint (*load_max_active_bearers_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Loading of the Manufacturer property */ void (*load_manufacturer) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); gchar * (*load_manufacturer_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Loading of the Model property */ void (*load_model) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); gchar * (*load_model_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Loading of the Revision property */ void (*load_revision) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); gchar * (*load_revision_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Loading of the EquipmentIdentifier property */ void (*load_equipment_identifier) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); gchar * (*load_equipment_identifier_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Loading of the DeviceIdentifier property */ void (*load_device_identifier) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); gchar * (*load_device_identifier_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Loading of the UnlockRequired property */ void (*load_unlock_required) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); MMModemLock (*load_unlock_required_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Loading of the UnlockRetries property */ void (*load_unlock_retries) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); MMModemLock (*load_unlock_retries_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Loading of the SupportedModes property */ void (*load_supported_modes) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); MMModemMode (*load_supported_modes_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Loading of the SupportedBands property */ void (*load_supported_bands) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); MMModemBand (*load_supported_bands_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Loading of the SignalQuality property */ void (*load_signal_quality) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); guint (*load_signal_quality_finish) (MMIfaceModem *self, GAsyncResult *res, gboolean *recent, GError **error); /* Asynchronous reset operation */ void (*reset) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); gboolean (*reset_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Asynchronous factory-reset operation */ void (*factory_reset) (MMIfaceModem *self, const gchar *code, GAsyncReadyCallback callback, gpointer user_data); gboolean (*factory_reset_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Asynchronous allowed band setting operation */ void (*set_allowed_bands) (MMIfaceModem *self, MMModemBand bands, GAsyncReadyCallback callback, gpointer user_data); gboolean (*set_allowed_bands_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Asynchronous allowed mode setting operation */ void (*set_allowed_modes) (MMIfaceModem *self, MMModemMode modes, MMModemMode preferred, GAsyncReadyCallback callback, gpointer user_data); gboolean (*set_allowed_modes_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Asynchronous modem initialization operation */ void (*modem_init) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); gboolean (*modem_init_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Asynchronous modem power-up operation */ void (*modem_power_up) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); gboolean (*modem_power_up_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Asynchronous additional setup needed after power-up, * Plugins can implement this to provide custom setups. */ void (*modem_after_power_up) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); gboolean (*modem_after_power_up_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Asynchronous flow control setup */ void (*modem_flow_control) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); gboolean (*modem_flow_control_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Asynchronous loading of supported charsets */ void (*load_supported_charsets) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); MMModemCharset (*load_supported_charsets_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Asynchronous charset setting setup */ void (*modem_charset) (MMIfaceModem *self, MMModemCharset charset, GAsyncReadyCallback callback, gpointer user_data); gboolean (*modem_charset_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Asynchronous modem power-down operation */ void (*modem_power_down) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); gboolean (*modem_power_down_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Create bearer */ void (*create_bearer) (MMIfaceModem *self, GVariant *properties, GAsyncReadyCallback callback, gpointer user_data); gchar * (*create_bearer_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* List bearers */ void (*list_bearers) (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); GStrv (*list_bearers_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Delete bearer */ void (*delete_bearer) (MMIfaceModem *self, const gchar *path, GAsyncReadyCallback callback, gpointer user_data); gboolean (*delete_bearer_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); }; GType mm_iface_modem_get_type (void); /* Initialize Modem interface (async) */ void mm_iface_modem_initialize (MMIfaceModem *self, MMAtSerialPort *port, GAsyncReadyCallback callback, gpointer user_data); gboolean mm_iface_modem_initialize_finish (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Enable Modem interface (async) */ void mm_iface_modem_enable (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); gboolean mm_iface_modem_enable_finish (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Disable Modem interface (async) */ void mm_iface_modem_disable (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); gboolean mm_iface_modem_disable_finish (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Shutdown Modem interface */ void mm_iface_modem_shutdown (MMIfaceModem *self); /* Request unlock recheck. * It will not only return the lock status, but also set the property values * in the DBus interface. */ void mm_iface_modem_unlock_check (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); MMModemLock mm_iface_modem_unlock_check_finish (MMIfaceModem *self, GAsyncResult *res, GError **error); /* Request signal quality check update. * It will not only return the signal quality status, but also set the property * values in the DBus interface. */ void mm_iface_modem_signal_quality_check (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data); guint mm_iface_modem_signal_quality_check_finish (MMIfaceModem *self, GAsyncResult *res, gboolean *recent, GError **error); /* Allow reporting new modem state */ void mm_iface_modem_update_state (MMIfaceModem *self, MMModemState new_state, MMModemStateReason reason); #endif /* MM_IFACE_MODEM_H */