iface-modem-oma: new object interface to handle the OMA DBus interface
This commit is contained in:
@@ -217,6 +217,8 @@ ModemManager_SOURCES = \
|
||||
mm-iface-modem-firmware.c \
|
||||
mm-iface-modem-signal.h \
|
||||
mm-iface-modem-signal.c \
|
||||
mm-iface-modem-oma.h \
|
||||
mm-iface-modem-oma.c \
|
||||
mm-broadband-modem.h \
|
||||
mm-broadband-modem.c \
|
||||
mm-serial-parsers.c \
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "mm-iface-modem-time.h"
|
||||
#include "mm-iface-modem-firmware.h"
|
||||
#include "mm-iface-modem-signal.h"
|
||||
#include "mm-iface-modem-oma.h"
|
||||
#include "mm-broadband-bearer.h"
|
||||
#include "mm-bearer-list.h"
|
||||
#include "mm-sms-list.h"
|
||||
@@ -58,6 +59,7 @@ static void iface_modem_location_init (MMIfaceModemLocation *iface);
|
||||
static void iface_modem_messaging_init (MMIfaceModemMessaging *iface);
|
||||
static void iface_modem_time_init (MMIfaceModemTime *iface);
|
||||
static void iface_modem_signal_init (MMIfaceModemSignal *iface);
|
||||
static void iface_modem_oma_init (MMIfaceModemOma *iface);
|
||||
static void iface_modem_firmware_init (MMIfaceModemFirmware *iface);
|
||||
|
||||
G_DEFINE_TYPE_EXTENDED (MMBroadbandModem, mm_broadband_modem, MM_TYPE_BASE_MODEM, 0,
|
||||
@@ -70,6 +72,7 @@ G_DEFINE_TYPE_EXTENDED (MMBroadbandModem, mm_broadband_modem, MM_TYPE_BASE_MODEM
|
||||
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_MESSAGING, iface_modem_messaging_init)
|
||||
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_TIME, iface_modem_time_init)
|
||||
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_SIGNAL, iface_modem_signal_init)
|
||||
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_OMA, iface_modem_oma_init)
|
||||
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_FIRMWARE, iface_modem_firmware_init))
|
||||
|
||||
enum {
|
||||
@@ -83,6 +86,7 @@ enum {
|
||||
PROP_MODEM_MESSAGING_DBUS_SKELETON,
|
||||
PROP_MODEM_TIME_DBUS_SKELETON,
|
||||
PROP_MODEM_SIGNAL_DBUS_SKELETON,
|
||||
PROP_MODEM_OMA_DBUS_SKELETON,
|
||||
PROP_MODEM_FIRMWARE_DBUS_SKELETON,
|
||||
PROP_MODEM_SIM,
|
||||
PROP_MODEM_BEARER_LIST,
|
||||
@@ -192,6 +196,10 @@ struct _MMBroadbandModemPrivate {
|
||||
/* Properties */
|
||||
GObject *modem_signal_dbus_skeleton;
|
||||
|
||||
/*<--- Modem OMA interface --->*/
|
||||
/* Properties */
|
||||
GObject *modem_oma_dbus_skeleton;
|
||||
|
||||
/*<--- Modem Firmware interface --->*/
|
||||
/* Properties */
|
||||
GObject *modem_firmware_dbus_skeleton;
|
||||
@@ -7934,6 +7942,7 @@ typedef enum {
|
||||
DISABLING_STEP_IFACE_SIMPLE,
|
||||
DISABLING_STEP_IFACE_FIRMWARE,
|
||||
DISABLING_STEP_IFACE_SIGNAL,
|
||||
DISABLING_STEP_IFACE_OMA,
|
||||
DISABLING_STEP_IFACE_TIME,
|
||||
DISABLING_STEP_IFACE_MESSAGING,
|
||||
DISABLING_STEP_IFACE_LOCATION,
|
||||
@@ -8046,6 +8055,7 @@ INTERFACE_DISABLE_READY_FN (iface_modem_location, MM_IFACE_MODEM_LOCATION, FAL
|
||||
INTERFACE_DISABLE_READY_FN (iface_modem_messaging, MM_IFACE_MODEM_MESSAGING, FALSE)
|
||||
INTERFACE_DISABLE_READY_FN (iface_modem_signal, MM_IFACE_MODEM_SIGNAL, FALSE)
|
||||
INTERFACE_DISABLE_READY_FN (iface_modem_time, MM_IFACE_MODEM_TIME, FALSE)
|
||||
INTERFACE_DISABLE_READY_FN (iface_modem_oma, MM_IFACE_MODEM_OMA, FALSE)
|
||||
|
||||
static void
|
||||
bearer_list_disconnect_all_bearers_ready (MMBearerList *list,
|
||||
@@ -8155,6 +8165,18 @@ disabling_step (DisablingContext *ctx)
|
||||
/* Fall down to next step */
|
||||
ctx->step++;
|
||||
|
||||
case DISABLING_STEP_IFACE_OMA:
|
||||
if (ctx->self->priv->modem_oma_dbus_skeleton) {
|
||||
mm_dbg ("Modem has OMA capabilities, disabling the OMA interface...");
|
||||
/* Disabling the Modem Oma interface */
|
||||
mm_iface_modem_oma_disable (MM_IFACE_MODEM_OMA (ctx->self),
|
||||
(GAsyncReadyCallback)iface_modem_oma_disable_ready,
|
||||
ctx);
|
||||
return;
|
||||
}
|
||||
/* Fall down to next step */
|
||||
ctx->step++;
|
||||
|
||||
case DISABLING_STEP_IFACE_TIME:
|
||||
if (ctx->self->priv->modem_time_dbus_skeleton) {
|
||||
mm_dbg ("Modem has time capabilities, disabling the Time interface...");
|
||||
@@ -8287,6 +8309,7 @@ typedef enum {
|
||||
ENABLING_STEP_IFACE_MESSAGING,
|
||||
ENABLING_STEP_IFACE_TIME,
|
||||
ENABLING_STEP_IFACE_SIGNAL,
|
||||
ENABLING_STEP_IFACE_OMA,
|
||||
ENABLING_STEP_IFACE_FIRMWARE,
|
||||
ENABLING_STEP_IFACE_SIMPLE,
|
||||
ENABLING_STEP_LAST,
|
||||
@@ -8386,6 +8409,7 @@ INTERFACE_ENABLE_READY_FN (iface_modem_location, MM_IFACE_MODEM_LOCATION, FALS
|
||||
INTERFACE_ENABLE_READY_FN (iface_modem_messaging, MM_IFACE_MODEM_MESSAGING, FALSE)
|
||||
INTERFACE_ENABLE_READY_FN (iface_modem_signal, MM_IFACE_MODEM_SIGNAL, FALSE)
|
||||
INTERFACE_ENABLE_READY_FN (iface_modem_time, MM_IFACE_MODEM_TIME, FALSE)
|
||||
INTERFACE_ENABLE_READY_FN (iface_modem_oma, MM_IFACE_MODEM_OMA, FALSE)
|
||||
|
||||
static void
|
||||
enabling_started_ready (MMBroadbandModem *self,
|
||||
@@ -8568,6 +8592,19 @@ enabling_step (EnablingContext *ctx)
|
||||
/* Fall down to next step */
|
||||
ctx->step++;
|
||||
|
||||
case ENABLING_STEP_IFACE_OMA:
|
||||
if (ctx->self->priv->modem_oma_dbus_skeleton) {
|
||||
mm_dbg ("Modem has OMA capabilities, enabling the OMA interface...");
|
||||
/* Enabling the Modem Oma interface */
|
||||
mm_iface_modem_oma_enable (MM_IFACE_MODEM_OMA (ctx->self),
|
||||
ctx->cancellable,
|
||||
(GAsyncReadyCallback)iface_modem_oma_enable_ready,
|
||||
ctx);
|
||||
return;
|
||||
}
|
||||
/* Fall down to next step */
|
||||
ctx->step++;
|
||||
|
||||
case ENABLING_STEP_IFACE_FIRMWARE:
|
||||
/* Fall down to next step */
|
||||
ctx->step++;
|
||||
@@ -8679,6 +8716,7 @@ typedef enum {
|
||||
INITIALIZE_STEP_IFACE_MESSAGING,
|
||||
INITIALIZE_STEP_IFACE_TIME,
|
||||
INITIALIZE_STEP_IFACE_SIGNAL,
|
||||
INITIALIZE_STEP_IFACE_OMA,
|
||||
INITIALIZE_STEP_IFACE_FIRMWARE,
|
||||
INITIALIZE_STEP_IFACE_SIMPLE,
|
||||
INITIALIZE_STEP_LAST,
|
||||
@@ -8875,6 +8913,7 @@ INTERFACE_INIT_READY_FN (iface_modem_location, MM_IFACE_MODEM_LOCATION, FALSE)
|
||||
INTERFACE_INIT_READY_FN (iface_modem_messaging, MM_IFACE_MODEM_MESSAGING, FALSE)
|
||||
INTERFACE_INIT_READY_FN (iface_modem_time, MM_IFACE_MODEM_TIME, FALSE)
|
||||
INTERFACE_INIT_READY_FN (iface_modem_signal, MM_IFACE_MODEM_SIGNAL, FALSE)
|
||||
INTERFACE_INIT_READY_FN (iface_modem_oma, MM_IFACE_MODEM_OMA, FALSE)
|
||||
INTERFACE_INIT_READY_FN (iface_modem_firmware, MM_IFACE_MODEM_FIRMWARE, FALSE)
|
||||
|
||||
static void
|
||||
@@ -8995,6 +9034,14 @@ initialize_step (InitializeContext *ctx)
|
||||
ctx);
|
||||
return;
|
||||
|
||||
case INITIALIZE_STEP_IFACE_OMA:
|
||||
/* Initialize the Oma interface */
|
||||
mm_iface_modem_oma_initialize (MM_IFACE_MODEM_OMA (ctx->self),
|
||||
ctx->cancellable,
|
||||
(GAsyncReadyCallback)iface_modem_oma_initialize_ready,
|
||||
ctx);
|
||||
return;
|
||||
|
||||
case INITIALIZE_STEP_IFACE_FIRMWARE:
|
||||
/* Initialize the Firmware interface */
|
||||
mm_iface_modem_firmware_initialize (MM_IFACE_MODEM_FIRMWARE (ctx->self),
|
||||
@@ -9240,6 +9287,10 @@ set_property (GObject *object,
|
||||
g_clear_object (&self->priv->modem_signal_dbus_skeleton);
|
||||
self->priv->modem_signal_dbus_skeleton = g_value_dup_object (value);
|
||||
break;
|
||||
case PROP_MODEM_OMA_DBUS_SKELETON:
|
||||
g_clear_object (&self->priv->modem_oma_dbus_skeleton);
|
||||
self->priv->modem_oma_dbus_skeleton = g_value_dup_object (value);
|
||||
break;
|
||||
case PROP_MODEM_FIRMWARE_DBUS_SKELETON:
|
||||
g_clear_object (&self->priv->modem_firmware_dbus_skeleton);
|
||||
self->priv->modem_firmware_dbus_skeleton = g_value_dup_object (value);
|
||||
@@ -9338,6 +9389,9 @@ get_property (GObject *object,
|
||||
case PROP_MODEM_SIGNAL_DBUS_SKELETON:
|
||||
g_value_set_object (value, self->priv->modem_signal_dbus_skeleton);
|
||||
break;
|
||||
case PROP_MODEM_OMA_DBUS_SKELETON:
|
||||
g_value_set_object (value, self->priv->modem_oma_dbus_skeleton);
|
||||
break;
|
||||
case PROP_MODEM_FIRMWARE_DBUS_SKELETON:
|
||||
g_value_set_object (value, self->priv->modem_firmware_dbus_skeleton);
|
||||
break;
|
||||
@@ -9681,6 +9735,11 @@ iface_modem_signal_init (MMIfaceModemSignal *iface)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
iface_modem_oma_init (MMIfaceModemOma *iface)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
iface_modem_firmware_init (MMIfaceModemFirmware *iface)
|
||||
{
|
||||
@@ -9753,6 +9812,10 @@ mm_broadband_modem_class_init (MMBroadbandModemClass *klass)
|
||||
PROP_MODEM_SIGNAL_DBUS_SKELETON,
|
||||
MM_IFACE_MODEM_SIGNAL_DBUS_SKELETON);
|
||||
|
||||
g_object_class_override_property (object_class,
|
||||
PROP_MODEM_OMA_DBUS_SKELETON,
|
||||
MM_IFACE_MODEM_OMA_DBUS_SKELETON);
|
||||
|
||||
g_object_class_override_property (object_class,
|
||||
PROP_MODEM_FIRMWARE_DBUS_SKELETON,
|
||||
MM_IFACE_MODEM_FIRMWARE_DBUS_SKELETON);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,164 @@
|
||||
/* -*- 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) 2013 Google, Inc.
|
||||
*/
|
||||
|
||||
#ifndef MM_IFACE_MODEM_OMA_H
|
||||
#define MM_IFACE_MODEM_OMA_H
|
||||
|
||||
#include <glib-object.h>
|
||||
#include <gio/gio.h>
|
||||
|
||||
#define MM_TYPE_IFACE_MODEM_OMA (mm_iface_modem_oma_get_type ())
|
||||
#define MM_IFACE_MODEM_OMA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_IFACE_MODEM_OMA, MMIfaceModemOma))
|
||||
#define MM_IS_IFACE_MODEM_OMA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_IFACE_MODEM_OMA))
|
||||
#define MM_IFACE_MODEM_OMA_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), MM_TYPE_IFACE_MODEM_OMA, MMIfaceModemOma))
|
||||
|
||||
#define MM_IFACE_MODEM_OMA_DBUS_SKELETON "iface-modem-oma-dbus-skeleton"
|
||||
|
||||
typedef struct _MMIfaceModemOma MMIfaceModemOma;
|
||||
|
||||
struct _MMIfaceModemOma {
|
||||
GTypeInterface g_iface;
|
||||
|
||||
/* Check for Oma support (async) */
|
||||
void (* check_support) (MMIfaceModemOma *self,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
gboolean (* check_support_finish) (MMIfaceModemOma *self,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
/* Asynchronous setting up unsolicited events */
|
||||
void (* setup_unsolicited_events) (MMIfaceModemOma *self,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
gboolean (* setup_unsolicited_events_finish) (MMIfaceModemOma *self,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
/* Asynchronous cleaning up of unsolicited events */
|
||||
void (* cleanup_unsolicited_events) (MMIfaceModemOma *self,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
gboolean (* cleanup_unsolicited_events_finish) (MMIfaceModemOma *self,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
/* Asynchronous enabling unsolicited events */
|
||||
void (* enable_unsolicited_events) (MMIfaceModemOma *self,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
gboolean (* enable_unsolicited_events_finish) (MMIfaceModemOma *self,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
/* Asynchronous disabling unsolicited events */
|
||||
void (* disable_unsolicited_events) (MMIfaceModemOma *self,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
gboolean (* disable_unsolicited_events_finish) (MMIfaceModemOma *self,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
/* Get current features */
|
||||
void (* load_features) (MMIfaceModemOma *self,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
MMOmaFeature (* load_features_finish) (MMIfaceModemOma *self,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
/* Setup */
|
||||
void (* setup) (MMIfaceModemOma *self,
|
||||
MMOmaFeature features,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
gboolean (* setup_finish) (MMIfaceModemOma *self,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
/* Start client-initiated session */
|
||||
void (* start_client_initiated_session) (MMIfaceModemOma *self,
|
||||
MMOmaSessionType session_type,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
gboolean (* start_client_initiated_session_finish) (MMIfaceModemOma *self,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
/* Accept network-initiated session */
|
||||
void (* accept_network_initiated_session) (MMIfaceModemOma *self,
|
||||
guint session_id,
|
||||
gboolean accept,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
gboolean (* accept_network_initiated_session_finish) (MMIfaceModemOma *self,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
/* Cancel session */
|
||||
void (* cancel_session) (MMIfaceModemOma *self,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
gboolean (* cancel_session_finish) (MMIfaceModemOma *self,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
};
|
||||
|
||||
GType mm_iface_modem_oma_get_type (void);
|
||||
|
||||
/* Initialize Oma interface (async) */
|
||||
void mm_iface_modem_oma_initialize (MMIfaceModemOma *self,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
gboolean mm_iface_modem_oma_initialize_finish (MMIfaceModemOma *self,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
/* Enable Oma interface (async) */
|
||||
void mm_iface_modem_oma_enable (MMIfaceModemOma *self,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
gboolean mm_iface_modem_oma_enable_finish (MMIfaceModemOma *self,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
/* Disable Oma interface (async) */
|
||||
void mm_iface_modem_oma_disable (MMIfaceModemOma *self,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
gboolean mm_iface_modem_oma_disable_finish (MMIfaceModemOma *self,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
/* Shutdown Oma interface */
|
||||
void mm_iface_modem_oma_shutdown (MMIfaceModemOma *self);
|
||||
|
||||
/* Bind properties for simple GetStatus() */
|
||||
void mm_iface_modem_oma_bind_simple_status (MMIfaceModemOma *self,
|
||||
MMSimpleStatus *status);
|
||||
|
||||
/* Report new pending network-initiated session */
|
||||
void mm_iface_modem_oma_add_pending_network_initiated_session (MMIfaceModemOma *self,
|
||||
MMOmaSessionType session_type,
|
||||
guint session_id);
|
||||
|
||||
/* Report new session state */
|
||||
void mm_iface_modem_oma_update_session_state (MMIfaceModemOma *self,
|
||||
MMOmaSessionState session_state,
|
||||
MMOmaSessionStateFailedReason session_state_failed_reason);
|
||||
|
||||
#endif /* MM_IFACE_MODEM_OMA_H */
|
||||
Reference in New Issue
Block a user