Move log parent and connection property binding to helper

Continues removing usage of MMBaseModem in a bunch of files
by splitting out bits of its usage to separate interfaces.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
This commit is contained in:
Dan Williams
2025-05-08 20:08:06 -05:00
parent ef5cee3ab5
commit ec5104c9a8
55 changed files with 376 additions and 75 deletions
+1
View File
@@ -298,6 +298,7 @@ sources = files(
'mm-base-modem.c', 'mm-base-modem.c',
'mm-base-sim.c', 'mm-base-sim.c',
'mm-base-sms.c', 'mm-base-sms.c',
'mm-bind.c',
'mm-bearer-list.c', 'mm-bearer-list.c',
'mm-broadband-bearer.c', 'mm-broadband-bearer.c',
'mm-broadband-modem.c', 'mm-broadband-modem.c',
+24 -8
View File
@@ -42,6 +42,7 @@
#include "mm-bearer-stats.h" #include "mm-bearer-stats.h"
#include "mm-dispatcher-connection.h" #include "mm-dispatcher-connection.h"
#include "mm-auth-provider.h" #include "mm-auth-provider.h"
#include "mm-bind.h"
/* We require up to 20s to get a proper IP when using PPP */ /* We require up to 20s to get a proper IP when using PPP */
#define BEARER_IP_TIMEOUT_DEFAULT 20 #define BEARER_IP_TIMEOUT_DEFAULT 20
@@ -55,9 +56,11 @@
#define BEARER_CONNECTION_MONITOR_TIMEOUT 5 #define BEARER_CONNECTION_MONITOR_TIMEOUT 5
static void log_object_iface_init (MMLogObjectInterface *iface); static void log_object_iface_init (MMLogObjectInterface *iface);
static void bind_iface_init (MMBindInterface *iface);
G_DEFINE_TYPE_EXTENDED (MMBaseBearer, mm_base_bearer, MM_GDBUS_TYPE_BEARER_SKELETON, 0, G_DEFINE_TYPE_EXTENDED (MMBaseBearer, mm_base_bearer, MM_GDBUS_TYPE_BEARER_SKELETON, 0,
G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init)) G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_BIND, bind_iface_init))
typedef enum { typedef enum {
CONNECTION_FORBIDDEN_REASON_NONE, CONNECTION_FORBIDDEN_REASON_NONE,
@@ -71,6 +74,7 @@ enum {
PROP_0, PROP_0,
PROP_PATH, PROP_PATH,
PROP_CONNECTION, PROP_CONNECTION,
PROP_BIND_TO,
PROP_MODEM, PROP_MODEM,
PROP_STATUS, PROP_STATUS,
PROP_CONFIG, PROP_CONFIG,
@@ -88,6 +92,9 @@ struct _MMBaseBearerPrivate {
MMAuthProvider *authp; MMAuthProvider *authp;
GCancellable *authp_cancellable; GCancellable *authp_cancellable;
/* The object this bearer is bound to */
GObject *bind_to;
/* The modem which owns this BEARER */ /* The modem which owns this BEARER */
MMBaseModem *modem; MMBaseModem *modem;
/* The path where the BEARER object is exported */ /* The path where the BEARER object is exported */
@@ -1744,17 +1751,15 @@ set_property (GObject *object,
else if (self->priv->path) else if (self->priv->path)
base_bearer_dbus_export (self); base_bearer_dbus_export (self);
break; break;
case PROP_BIND_TO:
g_clear_object (&self->priv->bind_to);
self->priv->bind_to = g_value_dup_object (value);
mm_bind_to (MM_BIND (self), MM_BASE_BEARER_CONNECTION, self->priv->bind_to);
break;
case PROP_MODEM: case PROP_MODEM:
g_clear_object (&self->priv->modem); g_clear_object (&self->priv->modem);
self->priv->modem = g_value_dup_object (value); self->priv->modem = g_value_dup_object (value);
if (self->priv->modem) { if (self->priv->modem) {
/* Set owner ID */
mm_log_object_set_owner_id (MM_LOG_OBJECT (self), mm_log_object_get_id (MM_LOG_OBJECT (self->priv->modem)));
/* Bind the modem's connection (which is set when it is exported,
* and unset when unexported) to the BEARER's connection */
g_object_bind_property (self->priv->modem, MM_BASE_MODEM_CONNECTION,
self, MM_BASE_BEARER_CONNECTION,
G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
if (self->priv->config) { if (self->priv->config) {
/* Listen to 3GPP/CDMA registration state changes. We need both /* Listen to 3GPP/CDMA registration state changes. We need both
* 'config' and 'modem' set. */ * 'config' and 'modem' set. */
@@ -1804,6 +1809,9 @@ get_property (GObject *object,
case PROP_CONNECTION: case PROP_CONNECTION:
g_value_set_object (value, self->priv->connection); g_value_set_object (value, self->priv->connection);
break; break;
case PROP_BIND_TO:
g_value_set_object (value, self->priv->bind_to);
break;
case PROP_MODEM: case PROP_MODEM:
g_value_set_object (value, self->priv->modem); g_value_set_object (value, self->priv->modem);
break; break;
@@ -1886,6 +1894,7 @@ dispose (GObject *object)
reset_deferred_unregistration (self); reset_deferred_unregistration (self);
g_clear_object (&self->priv->modem); g_clear_object (&self->priv->modem);
g_clear_object (&self->priv->bind_to);
g_clear_object (&self->priv->config); g_clear_object (&self->priv->config);
g_cancellable_cancel (self->priv->authp_cancellable); g_cancellable_cancel (self->priv->authp_cancellable);
g_clear_object (&self->priv->authp_cancellable); g_clear_object (&self->priv->authp_cancellable);
@@ -1899,6 +1908,11 @@ log_object_iface_init (MMLogObjectInterface *iface)
iface->build_id = log_object_build_id; iface->build_id = log_object_build_id;
} }
static void
bind_iface_init (MMBindInterface *iface)
{
}
static void static void
mm_base_bearer_class_init (MMBaseBearerClass *klass) mm_base_bearer_class_init (MMBaseBearerClass *klass)
{ {
@@ -1930,6 +1944,8 @@ mm_base_bearer_class_init (MMBaseBearerClass *klass)
G_PARAM_READWRITE); G_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_PATH, properties[PROP_PATH]); g_object_class_install_property (object_class, PROP_PATH, properties[PROP_PATH]);
g_object_class_override_property (object_class, PROP_BIND_TO, MM_BIND_TO);
properties[PROP_MODEM] = properties[PROP_MODEM] =
g_param_spec_object (MM_BASE_BEARER_MODEM, g_param_spec_object (MM_BASE_BEARER_MODEM,
"Modem", "Modem",
+26 -10
View File
@@ -35,16 +35,20 @@
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-error-helpers.h" #include "mm-error-helpers.h"
#include "mm-bind.h"
static void log_object_iface_init (MMLogObjectInterface *iface); static void log_object_iface_init (MMLogObjectInterface *iface);
static void bind_iface_init (MMBindInterface *iface);
G_DEFINE_TYPE_EXTENDED (MMBaseCall, mm_base_call, MM_GDBUS_TYPE_CALL_SKELETON, 0, G_DEFINE_TYPE_EXTENDED (MMBaseCall, mm_base_call, MM_GDBUS_TYPE_CALL_SKELETON, 0,
G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init)) G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_BIND, bind_iface_init))
enum { enum {
PROP_0, PROP_0,
PROP_PATH, PROP_PATH,
PROP_CONNECTION, PROP_CONNECTION,
PROP_BIND_TO,
PROP_MODEM, PROP_MODEM,
PROP_SKIP_INCOMING_TIMEOUT, PROP_SKIP_INCOMING_TIMEOUT,
PROP_SUPPORTS_DIALING_TO_RINGING, PROP_SUPPORTS_DIALING_TO_RINGING,
@@ -63,6 +67,9 @@ struct _MMBaseCallPrivate {
MMAuthProvider *authp; MMAuthProvider *authp;
GCancellable *authp_cancellable; GCancellable *authp_cancellable;
/* The object this Call is bound to */
GObject *bind_to;
/* The modem which owns this call */ /* The modem which owns this call */
MMBaseModem *modem; MMBaseModem *modem;
/* The path where the call object is exported */ /* The path where the call object is exported */
@@ -1304,6 +1311,7 @@ log_object_build_id (MMLogObject *_self)
MMBaseCall * MMBaseCall *
mm_base_call_new (MMBaseModem *modem, mm_base_call_new (MMBaseModem *modem,
GObject *bind_to,
MMCallDirection direction, MMCallDirection direction,
const gchar *number, const gchar *number,
gboolean skip_incoming_timeout, gboolean skip_incoming_timeout,
@@ -1312,6 +1320,7 @@ mm_base_call_new (MMBaseModem *modem,
{ {
return MM_BASE_CALL (g_object_new (MM_TYPE_BASE_CALL, return MM_BASE_CALL (g_object_new (MM_TYPE_BASE_CALL,
MM_BASE_CALL_MODEM, modem, MM_BASE_CALL_MODEM, modem,
MM_BIND_TO, bind_to,
"direction", direction, "direction", direction,
"number", number, "number", number,
MM_BASE_CALL_SKIP_INCOMING_TIMEOUT, skip_incoming_timeout, MM_BASE_CALL_SKIP_INCOMING_TIMEOUT, skip_incoming_timeout,
@@ -1351,18 +1360,14 @@ set_property (GObject *object,
else if (self->priv->path) else if (self->priv->path)
call_dbus_export (self); call_dbus_export (self);
break; break;
case PROP_BIND_TO:
g_clear_object (&self->priv->bind_to);
self->priv->bind_to = g_value_dup_object (value);
mm_bind_to (MM_BIND (self), MM_BASE_CALL_CONNECTION, self->priv->bind_to);
break;
case PROP_MODEM: case PROP_MODEM:
g_clear_object (&self->priv->modem); g_clear_object (&self->priv->modem);
self->priv->modem = g_value_dup_object (value); self->priv->modem = g_value_dup_object (value);
if (self->priv->modem) {
/* Set owner ID */
mm_log_object_set_owner_id (MM_LOG_OBJECT (self), mm_log_object_get_id (MM_LOG_OBJECT (self->priv->modem)));
/* Bind the modem's connection (which is set when it is exported,
* and unset when unexported) to the call's connection */
g_object_bind_property (self->priv->modem, MM_BASE_MODEM_CONNECTION,
self, MM_BASE_CALL_CONNECTION,
G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
}
break; break;
case PROP_SKIP_INCOMING_TIMEOUT: case PROP_SKIP_INCOMING_TIMEOUT:
self->priv->skip_incoming_timeout = g_value_get_boolean (value); self->priv->skip_incoming_timeout = g_value_get_boolean (value);
@@ -1394,6 +1399,9 @@ get_property (GObject *object,
case PROP_CONNECTION: case PROP_CONNECTION:
g_value_set_object (value, self->priv->connection); g_value_set_object (value, self->priv->connection);
break; break;
case PROP_BIND_TO:
g_value_set_object (value, self->priv->bind_to);
break;
case PROP_MODEM: case PROP_MODEM:
g_value_set_object (value, self->priv->modem); g_value_set_object (value, self->priv->modem);
break; break;
@@ -1459,6 +1467,7 @@ dispose (GObject *object)
} }
g_clear_object (&self->priv->modem); g_clear_object (&self->priv->modem);
g_clear_object (&self->priv->bind_to);
g_cancellable_cancel (self->priv->authp_cancellable); g_cancellable_cancel (self->priv->authp_cancellable);
g_clear_object (&self->priv->authp_cancellable); g_clear_object (&self->priv->authp_cancellable);
@@ -1471,6 +1480,11 @@ log_object_iface_init (MMLogObjectInterface *iface)
iface->build_id = log_object_build_id; iface->build_id = log_object_build_id;
} }
static void
bind_iface_init (MMBindInterface *iface)
{
}
static void static void
mm_base_call_class_init (MMBaseCallClass *klass) mm_base_call_class_init (MMBaseCallClass *klass)
{ {
@@ -1511,6 +1525,8 @@ mm_base_call_class_init (MMBaseCallClass *klass)
G_PARAM_READWRITE); G_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_PATH, properties[PROP_PATH]); g_object_class_install_property (object_class, PROP_PATH, properties[PROP_PATH]);
g_object_class_override_property (object_class, PROP_BIND_TO, MM_BIND_TO);
properties[PROP_MODEM] = properties[PROP_MODEM] =
g_param_spec_object (MM_BASE_CALL_MODEM, g_param_spec_object (MM_BASE_CALL_MODEM,
"Modem", "Modem",
+1
View File
@@ -101,6 +101,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMBaseCall, g_object_unref)
/* This one can be overridden by plugins */ /* This one can be overridden by plugins */
MMBaseCall *mm_base_call_new (MMBaseModem *modem, MMBaseCall *mm_base_call_new (MMBaseModem *modem,
GObject *bind_to,
MMCallDirection direction, MMCallDirection direction,
const gchar *number, const gchar *number,
gboolean skip_incoming_timeout, gboolean skip_incoming_timeout,
+27 -11
View File
@@ -34,16 +34,20 @@
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-error-helpers.h" #include "mm-error-helpers.h"
#include "mm-bind.h"
static void log_object_iface_init (MMLogObjectInterface *iface); static void log_object_iface_init (MMLogObjectInterface *iface);
static void bind_iface_init (MMBindInterface *iface);
G_DEFINE_TYPE_EXTENDED (MMBaseCbm, mm_base_cbm, MM_GDBUS_TYPE_CBM_SKELETON, 0, G_DEFINE_TYPE_EXTENDED (MMBaseCbm, mm_base_cbm, MM_GDBUS_TYPE_CBM_SKELETON, 0,
G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init)) G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_BIND, bind_iface_init))
enum { enum {
PROP_0, PROP_0,
PROP_PATH, PROP_PATH,
PROP_CONNECTION, PROP_CONNECTION,
PROP_BIND_TO,
PROP_MODEM, PROP_MODEM,
PROP_MAX_PARTS, PROP_MAX_PARTS,
PROP_SERIAL, PROP_SERIAL,
@@ -57,6 +61,9 @@ struct _MMBaseCbmPrivate {
GDBusConnection *connection; GDBusConnection *connection;
guint dbus_id; guint dbus_id;
/* The object this CBM is bound to */
GObject *bind_to;
/* The modem which owns this CBM */ /* The modem which owns this CBM */
MMBaseModem *modem; MMBaseModem *modem;
/* The path where the CBM object is exported */ /* The path where the CBM object is exported */
@@ -323,10 +330,12 @@ mm_base_cbm_take_part (MMBaseCbm *self,
} }
MMBaseCbm * MMBaseCbm *
mm_base_cbm_new (MMBaseModem *modem) mm_base_cbm_new (MMBaseModem *modem,
GObject *bind_to)
{ {
return MM_BASE_CBM (g_object_new (MM_TYPE_BASE_CBM, return MM_BASE_CBM (g_object_new (MM_TYPE_BASE_CBM,
MM_BASE_CBM_MODEM, modem, MM_BASE_CBM_MODEM, modem,
MM_BIND_TO, bind_to,
NULL)); NULL));
} }
@@ -405,18 +414,14 @@ set_property (GObject *object,
else if (self->priv->path) else if (self->priv->path)
cbm_dbus_export (self); cbm_dbus_export (self);
break; break;
case PROP_BIND_TO:
g_clear_object (&self->priv->bind_to);
self->priv->bind_to = g_value_dup_object (value);
mm_bind_to (MM_BIND (self), MM_BASE_CBM_CONNECTION, self->priv->bind_to);
break;
case PROP_MODEM: case PROP_MODEM:
g_clear_object (&self->priv->modem); g_clear_object (&self->priv->modem);
self->priv->modem = g_value_dup_object (value); self->priv->modem = g_value_dup_object (value);
if (self->priv->modem) {
/* Set owner ID */
mm_log_object_set_owner_id (MM_LOG_OBJECT (self), mm_log_object_get_id (MM_LOG_OBJECT (self->priv->modem)));
/* Bind the modem's connection (which is set when it is exported,
* and unset when unexported) to the CBM's connection */
g_object_bind_property (self->priv->modem, MM_BASE_MODEM_CONNECTION,
self, MM_BASE_CBM_CONNECTION,
G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
}
break; break;
case PROP_MAX_PARTS: case PROP_MAX_PARTS:
self->priv->max_parts = g_value_get_uint (value); self->priv->max_parts = g_value_get_uint (value);
@@ -445,6 +450,9 @@ get_property (GObject *object,
case PROP_CONNECTION: case PROP_CONNECTION:
g_value_set_object (value, self->priv->connection); g_value_set_object (value, self->priv->connection);
break; break;
case PROP_BIND_TO:
g_value_set_object (value, self->priv->bind_to);
break;
case PROP_MODEM: case PROP_MODEM:
g_value_set_object (value, self->priv->modem); g_value_set_object (value, self->priv->modem);
break; break;
@@ -497,6 +505,7 @@ dispose (GObject *object)
} }
g_clear_object (&self->priv->modem); g_clear_object (&self->priv->modem);
g_clear_object (&self->priv->bind_to);
G_OBJECT_CLASS (mm_base_cbm_parent_class)->dispose (object); G_OBJECT_CLASS (mm_base_cbm_parent_class)->dispose (object);
} }
@@ -507,6 +516,11 @@ log_object_iface_init (MMLogObjectInterface *iface)
iface->build_id = log_object_build_id; iface->build_id = log_object_build_id;
} }
static void
bind_iface_init (MMBindInterface *iface)
{
}
static void static void
mm_base_cbm_class_init (MMBaseCbmClass *klass) mm_base_cbm_class_init (MMBaseCbmClass *klass)
{ {
@@ -534,6 +548,8 @@ mm_base_cbm_class_init (MMBaseCbmClass *klass)
NULL, NULL,
G_PARAM_READWRITE); G_PARAM_READWRITE);
g_object_class_override_property (object_class, PROP_BIND_TO, MM_BIND_TO);
properties[PROP_MODEM] = properties[PROP_MODEM] =
g_param_spec_object (MM_BASE_CBM_MODEM, g_param_spec_object (MM_BASE_CBM_MODEM,
"Modem", "Modem",
+2 -1
View File
@@ -56,7 +56,8 @@ struct _MMBaseCbmClass {
GType mm_base_cbm_get_type (void); GType mm_base_cbm_get_type (void);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMBaseCbm, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMBaseCbm, g_object_unref)
MMBaseCbm *mm_base_cbm_new (MMBaseModem *modem); MMBaseCbm *mm_base_cbm_new (MMBaseModem *modem,
GObject *bind_to);
gboolean mm_base_cbm_take_part (MMBaseCbm *self, gboolean mm_base_cbm_take_part (MMBaseCbm *self,
MMCbmPart *part, MMCbmPart *part,
GError **error); GError **error);
+2 -1
View File
@@ -39,6 +39,7 @@
#include "mm-daemon-enums-types.h" #include "mm-daemon-enums-types.h"
#include "mm-serial-parsers.h" #include "mm-serial-parsers.h"
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-bind.h"
static void log_object_iface_init (MMLogObjectInterface *iface); static void log_object_iface_init (MMLogObjectInterface *iface);
static void auth_iface_init (MMIfaceAuthInterface *iface); static void auth_iface_init (MMIfaceAuthInterface *iface);
@@ -2752,7 +2753,7 @@ mm_base_modem_class_init (MMBaseModemClass *klass)
g_object_class_install_property (object_class, PROP_SUBSYSTEM_DEVICE_ID, properties[PROP_SUBSYSTEM_DEVICE_ID]); g_object_class_install_property (object_class, PROP_SUBSYSTEM_DEVICE_ID, properties[PROP_SUBSYSTEM_DEVICE_ID]);
properties[PROP_CONNECTION] = properties[PROP_CONNECTION] =
g_param_spec_object (MM_BASE_MODEM_CONNECTION, g_param_spec_object (MM_BINDABLE_CONNECTION,
"Connection", "Connection",
"GDBus connection to the system bus.", "GDBus connection to the system bus.",
G_TYPE_DBUS_CONNECTION, G_TYPE_DBUS_CONNECTION,
-1
View File
@@ -57,7 +57,6 @@ typedef struct _MMBaseModem MMBaseModem;
typedef struct _MMBaseModemClass MMBaseModemClass; typedef struct _MMBaseModemClass MMBaseModemClass;
typedef struct _MMBaseModemPrivate MMBaseModemPrivate; typedef struct _MMBaseModemPrivate MMBaseModemPrivate;
#define MM_BASE_MODEM_CONNECTION "base-modem-connection"
#define MM_BASE_MODEM_MAX_TIMEOUTS "base-modem-max-timeouts" #define MM_BASE_MODEM_MAX_TIMEOUTS "base-modem-max-timeouts"
#define MM_BASE_MODEM_VALID "base-modem-valid" #define MM_BASE_MODEM_VALID "base-modem-valid"
#define MM_BASE_MODEM_DEVICE "base-modem-device" #define MM_BASE_MODEM_DEVICE "base-modem-device"
+28 -10
View File
@@ -34,18 +34,22 @@
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-error-helpers.h" #include "mm-error-helpers.h"
#include "mm-bind.h"
static void async_initable_iface_init (GAsyncInitableIface *iface); static void async_initable_iface_init (GAsyncInitableIface *iface);
static void log_object_iface_init (MMLogObjectInterface *iface); static void log_object_iface_init (MMLogObjectInterface *iface);
static void bind_iface_init (MMBindInterface *iface);
G_DEFINE_TYPE_EXTENDED (MMBaseSim, mm_base_sim, MM_GDBUS_TYPE_SIM_SKELETON, 0, G_DEFINE_TYPE_EXTENDED (MMBaseSim, mm_base_sim, MM_GDBUS_TYPE_SIM_SKELETON, 0,
G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_INITABLE, async_initable_iface_init) G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_INITABLE, async_initable_iface_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init)) G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_BIND, bind_iface_init))
enum { enum {
PROP_0, PROP_0,
PROP_PATH, PROP_PATH,
PROP_CONNECTION, PROP_CONNECTION,
PROP_BIND_TO,
PROP_MODEM, PROP_MODEM,
PROP_SLOT_NUMBER, PROP_SLOT_NUMBER,
PROP_LAST PROP_LAST
@@ -67,6 +71,9 @@ struct _MMBaseSimPrivate {
MMAuthProvider *authp; MMAuthProvider *authp;
GCancellable *authp_cancellable; GCancellable *authp_cancellable;
/* The object this SIM is bound to */
GObject *bind_to;
/* The modem which owns this SIM */ /* The modem which owns this SIM */
MMBaseModem *modem; MMBaseModem *modem;
/* The path where the SIM object is exported */ /* The path where the SIM object is exported */
@@ -2295,6 +2302,7 @@ load_gid2 (MMBaseSim *self,
MMBaseSim * MMBaseSim *
mm_base_sim_new_initialized (MMBaseModem *modem, mm_base_sim_new_initialized (MMBaseModem *modem,
GObject *bind_to,
guint slot_number, guint slot_number,
gboolean active, gboolean active,
const gchar *sim_identifier, const gchar *sim_identifier,
@@ -2308,6 +2316,7 @@ mm_base_sim_new_initialized (MMBaseModem *modem,
sim = MM_BASE_SIM (g_object_new (MM_TYPE_BASE_SIM, sim = MM_BASE_SIM (g_object_new (MM_TYPE_BASE_SIM,
MM_BASE_SIM_MODEM, modem, MM_BASE_SIM_MODEM, modem,
MM_BIND_TO, bind_to,
MM_BASE_SIM_SLOT_NUMBER, slot_number, MM_BASE_SIM_SLOT_NUMBER, slot_number,
"active", active, "active", active,
"sim-identifier", sim_identifier, "sim-identifier", sim_identifier,
@@ -2897,6 +2906,7 @@ initable_init_async (GAsyncInitable *initable,
void void
mm_base_sim_new (MMBaseModem *modem, mm_base_sim_new (MMBaseModem *modem,
GObject *bind_to,
GCancellable *cancellable, GCancellable *cancellable,
GAsyncReadyCallback callback, GAsyncReadyCallback callback,
gpointer user_data) gpointer user_data)
@@ -2907,6 +2917,7 @@ mm_base_sim_new (MMBaseModem *modem,
callback, callback,
user_data, user_data,
MM_BASE_SIM_MODEM, modem, MM_BASE_SIM_MODEM, modem,
MM_BIND_TO, bind_to,
"active", TRUE, /* by default always active */ "active", TRUE, /* by default always active */
NULL); NULL);
} }
@@ -2972,18 +2983,14 @@ set_property (GObject *object,
else if (self->priv->path) else if (self->priv->path)
sim_dbus_export (self); sim_dbus_export (self);
break; break;
case PROP_BIND_TO:
g_clear_object (&self->priv->bind_to);
self->priv->bind_to = g_value_dup_object (value);
mm_bind_to (MM_BIND (self), MM_BASE_SIM_CONNECTION, self->priv->bind_to);
break;
case PROP_MODEM: case PROP_MODEM:
g_clear_object (&self->priv->modem); g_clear_object (&self->priv->modem);
self->priv->modem = g_value_dup_object (value); self->priv->modem = g_value_dup_object (value);
if (self->priv->modem) {
/* Set owner ID */
mm_log_object_set_owner_id (MM_LOG_OBJECT (self), mm_log_object_get_id (MM_LOG_OBJECT (self->priv->modem)));
/* Bind the modem's connection (which is set when it is exported,
* and unset when unexported) to the SIM's connection */
g_object_bind_property (self->priv->modem, MM_BASE_MODEM_CONNECTION,
self, MM_BASE_SIM_CONNECTION,
G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
}
break; break;
case PROP_SLOT_NUMBER: case PROP_SLOT_NUMBER:
self->priv->slot_number = g_value_get_uint (value); self->priv->slot_number = g_value_get_uint (value);
@@ -3009,6 +3016,9 @@ get_property (GObject *object,
case PROP_CONNECTION: case PROP_CONNECTION:
g_value_set_object (value, self->priv->connection); g_value_set_object (value, self->priv->connection);
break; break;
case PROP_BIND_TO:
g_value_set_object (value, self->priv->bind_to);
break;
case PROP_MODEM: case PROP_MODEM:
g_value_set_object (value, self->priv->modem); g_value_set_object (value, self->priv->modem);
break; break;
@@ -3056,6 +3066,7 @@ dispose (GObject *object)
} }
g_clear_object (&self->priv->modem); g_clear_object (&self->priv->modem);
g_clear_object (&self->priv->bind_to);
g_cancellable_cancel (self->priv->authp_cancellable); g_cancellable_cancel (self->priv->authp_cancellable);
g_clear_object (&self->priv->authp_cancellable); g_clear_object (&self->priv->authp_cancellable);
@@ -3075,6 +3086,11 @@ log_object_iface_init (MMLogObjectInterface *iface)
iface->build_id = log_object_build_id; iface->build_id = log_object_build_id;
} }
static void
bind_iface_init (MMBindInterface *iface)
{
}
static void static void
mm_base_sim_class_init (MMBaseSimClass *klass) mm_base_sim_class_init (MMBaseSimClass *klass)
{ {
@@ -3139,6 +3155,8 @@ mm_base_sim_class_init (MMBaseSimClass *klass)
G_PARAM_READWRITE); G_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_MODEM, properties[PROP_MODEM]); g_object_class_install_property (object_class, PROP_MODEM, properties[PROP_MODEM]);
g_object_class_override_property (object_class, PROP_BIND_TO, MM_BIND_TO);
properties[PROP_SLOT_NUMBER] = properties[PROP_SLOT_NUMBER] =
g_param_spec_uint (MM_BASE_SIM_SLOT_NUMBER, g_param_spec_uint (MM_BASE_SIM_SLOT_NUMBER,
"Slot number", "Slot number",
+2
View File
@@ -213,6 +213,7 @@ GType mm_base_sim_get_type (void);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMBaseSim, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMBaseSim, g_object_unref)
void mm_base_sim_new (MMBaseModem *modem, void mm_base_sim_new (MMBaseModem *modem,
GObject *bind_to,
GCancellable *cancellable, GCancellable *cancellable,
GAsyncReadyCallback callback, GAsyncReadyCallback callback,
gpointer user_data); gpointer user_data);
@@ -228,6 +229,7 @@ gboolean mm_base_sim_initialize_finish (MMBaseSim *self,
GError **error); GError **error);
MMBaseSim *mm_base_sim_new_initialized (MMBaseModem *modem, MMBaseSim *mm_base_sim_new_initialized (MMBaseModem *modem,
GObject *bind_to,
guint slot_number, guint slot_number,
gboolean active, gboolean active,
const gchar *sim_identifier, const gchar *sim_identifier,
+25 -10
View File
@@ -37,16 +37,20 @@
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-error-helpers.h" #include "mm-error-helpers.h"
#include "mm-auth-provider.h" #include "mm-auth-provider.h"
#include "mm-bind.h"
static void log_object_iface_init (MMLogObjectInterface *iface); static void log_object_iface_init (MMLogObjectInterface *iface);
static void bind_iface_init (MMBindInterface *iface);
G_DEFINE_TYPE_EXTENDED (MMBaseSms, mm_base_sms, MM_GDBUS_TYPE_SMS_SKELETON, 0, G_DEFINE_TYPE_EXTENDED (MMBaseSms, mm_base_sms, MM_GDBUS_TYPE_SMS_SKELETON, 0,
G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init)) G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_BIND, bind_iface_init))
enum { enum {
PROP_0, PROP_0,
PROP_PATH, PROP_PATH,
PROP_CONNECTION, PROP_CONNECTION,
PROP_BIND_TO,
PROP_MODEM, PROP_MODEM,
PROP_IS_MULTIPART, PROP_IS_MULTIPART,
PROP_MAX_PARTS, PROP_MAX_PARTS,
@@ -65,6 +69,9 @@ struct _MMBaseSmsPrivate {
MMAuthProvider *authp; MMAuthProvider *authp;
GCancellable *authp_cancellable; GCancellable *authp_cancellable;
/* The object this SMS is bound to */
GObject *bind_to;
/* The modem which owns this SMS */ /* The modem which owns this SMS */
MMBaseModem *modem; MMBaseModem *modem;
/* The path where the SMS object is exported */ /* The path where the SMS object is exported */
@@ -1798,6 +1805,7 @@ mm_base_sms_new (MMBaseModem *modem)
{ {
return MM_BASE_SMS (g_object_new (MM_TYPE_BASE_SMS, return MM_BASE_SMS (g_object_new (MM_TYPE_BASE_SMS,
MM_BASE_SMS_MODEM, modem, MM_BASE_SMS_MODEM, modem,
MM_BIND_TO, modem,
NULL)); NULL));
} }
@@ -1995,18 +2003,14 @@ set_property (GObject *object,
else if (self->priv->path) else if (self->priv->path)
sms_dbus_export (self); sms_dbus_export (self);
break; break;
case PROP_BIND_TO:
g_clear_object (&self->priv->bind_to);
self->priv->bind_to = g_value_dup_object (value);
mm_bind_to (MM_BIND (self), MM_BASE_SMS_CONNECTION, self->priv->bind_to);
break;
case PROP_MODEM: case PROP_MODEM:
g_clear_object (&self->priv->modem); g_clear_object (&self->priv->modem);
self->priv->modem = g_value_dup_object (value); self->priv->modem = g_value_dup_object (value);
if (self->priv->modem) {
/* Set owner ID */
mm_log_object_set_owner_id (MM_LOG_OBJECT (self), mm_log_object_get_id (MM_LOG_OBJECT (self->priv->modem)));
/* Bind the modem's connection (which is set when it is exported,
* and unset when unexported) to the SMS's connection */
g_object_bind_property (self->priv->modem, MM_BASE_MODEM_CONNECTION,
self, MM_BASE_SMS_CONNECTION,
G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
}
break; break;
case PROP_IS_MULTIPART: case PROP_IS_MULTIPART:
self->priv->is_multipart = g_value_get_boolean (value); self->priv->is_multipart = g_value_get_boolean (value);
@@ -2038,6 +2042,9 @@ get_property (GObject *object,
case PROP_CONNECTION: case PROP_CONNECTION:
g_value_set_object (value, self->priv->connection); g_value_set_object (value, self->priv->connection);
break; break;
case PROP_BIND_TO:
g_value_set_object (value, self->priv->bind_to);
break;
case PROP_MODEM: case PROP_MODEM:
g_value_set_object (value, self->priv->modem); g_value_set_object (value, self->priv->modem);
break; break;
@@ -2098,6 +2105,7 @@ dispose (GObject *object)
} }
g_clear_object (&self->priv->modem); g_clear_object (&self->priv->modem);
g_clear_object (&self->priv->bind_to);
g_cancellable_cancel (self->priv->authp_cancellable); g_cancellable_cancel (self->priv->authp_cancellable);
g_clear_object (&self->priv->authp_cancellable); g_clear_object (&self->priv->authp_cancellable);
@@ -2110,6 +2118,11 @@ log_object_iface_init (MMLogObjectInterface *iface)
iface->build_id = log_object_build_id; iface->build_id = log_object_build_id;
} }
static void
bind_iface_init (MMBindInterface *iface)
{
}
static void static void
mm_base_sms_class_init (MMBaseSmsClass *klass) mm_base_sms_class_init (MMBaseSmsClass *klass)
{ {
@@ -2146,6 +2159,8 @@ mm_base_sms_class_init (MMBaseSmsClass *klass)
G_PARAM_READWRITE); G_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_PATH, properties[PROP_PATH]); g_object_class_install_property (object_class, PROP_PATH, properties[PROP_PATH]);
g_object_class_override_property (object_class, PROP_BIND_TO, MM_BIND_TO);
properties[PROP_MODEM] = properties[PROP_MODEM] =
g_param_spec_object (MM_BASE_SMS_MODEM, g_param_spec_object (MM_BASE_SMS_MODEM,
"Modem", "Modem",
+2
View File
@@ -33,6 +33,7 @@
#include "mm-bearer-mbim.h" #include "mm-bearer-mbim.h"
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-context.h" #include "mm-context.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMBearerMbim, mm_bearer_mbim, MM_TYPE_BASE_BEARER) G_DEFINE_TYPE (MMBearerMbim, mm_bearer_mbim, MM_TYPE_BASE_BEARER)
@@ -2019,6 +2020,7 @@ mm_bearer_mbim_new (MMBroadbandModemMbim *modem,
* g_object_new() here */ * g_object_new() here */
bearer = g_object_new (MM_TYPE_BEARER_MBIM, bearer = g_object_new (MM_TYPE_BEARER_MBIM,
MM_BASE_BEARER_MODEM, modem, MM_BASE_BEARER_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
MM_BASE_BEARER_CONFIG, config, MM_BASE_BEARER_CONFIG, config,
NULL); NULL);
+2
View File
@@ -37,6 +37,7 @@
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-context.h" #include "mm-context.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMBearerQmi, mm_bearer_qmi, MM_TYPE_BASE_BEARER) G_DEFINE_TYPE (MMBearerQmi, mm_bearer_qmi, MM_TYPE_BASE_BEARER)
@@ -2959,6 +2960,7 @@ mm_bearer_qmi_new (MMBroadbandModemQmi *modem,
* g_object_new() here */ * g_object_new() here */
bearer = g_object_new (MM_TYPE_BEARER_QMI, bearer = g_object_new (MM_TYPE_BEARER_QMI,
MM_BASE_BEARER_MODEM, modem, MM_BASE_BEARER_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
MM_BASE_BEARER_CONFIG, config, MM_BASE_BEARER_CONFIG, config,
NULL); NULL);
+62
View File
@@ -0,0 +1,62 @@
/* -*- 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) 2025 Dan Williams <dan@ioncontrol.co>
*/
#include "mm-bind.h"
#include "mm-log-object.h"
G_DEFINE_INTERFACE (MMBind, mm_bind, MM_TYPE_LOG_OBJECT)
gboolean
mm_bind_to (MMBind *self, const gchar *local_propname, GObject *other_object)
{
if (other_object) {
/* Set log owner ID */
mm_log_object_set_owner_id (MM_LOG_OBJECT (self),
mm_log_object_get_id (MM_LOG_OBJECT (other_object)));
if (local_propname) {
/* Bind the other object's connection property (which is set when it is
* exported, and unset when unexported) to this object's connection
* property.
*/
g_object_bind_property (other_object,
MM_BINDABLE_CONNECTION,
self,
local_propname,
G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
}
}
return !!other_object;
}
static void
mm_bind_default_init (MMBindInterface *iface)
{
static gsize initialized = 0;
if (!g_once_init_enter (&initialized))
return;
/* Properties */
g_object_interface_install_property (
iface,
g_param_spec_object (MM_BIND_TO,
"Bind to",
"Bind to this object",
G_TYPE_OBJECT,
G_PARAM_READWRITE));
g_once_init_leave (&initialized, 1);
}
+42
View File
@@ -0,0 +1,42 @@
/* -*- 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) 2025 Dan Williams <dan@ioncontrol.co>
*/
#ifndef MM_CHILD_H
#define MM_CHILD_H
#include <glib.h>
#include <glib-object.h>
/* Properties */
#define MM_BIND_TO "bind-to"
/* Property name used by an object that wants to allow others
* to bind its connection property.
*/
#define MM_BINDABLE_CONNECTION "bind-connection"
#define MM_TYPE_BIND mm_bind_get_type ()
G_DECLARE_INTERFACE (MMBind, mm_bind, MM, BIND, MMBind)
struct _MMBindInterface
{
GTypeInterface g_iface;
};
gboolean mm_bind_to (MMBind *self,
const gchar *local_propname,
GObject *other_object);
#endif /* MM_LOG_OBJECT_H */
+2
View File
@@ -37,6 +37,7 @@
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-port-enums-types.h" #include "mm-port-enums-types.h"
#include "mm-helper-enums-types.h" #include "mm-helper-enums-types.h"
#include "mm-bind.h"
static void async_initable_iface_init (GAsyncInitableIface *iface); static void async_initable_iface_init (GAsyncInitableIface *iface);
@@ -1966,6 +1967,7 @@ mm_broadband_bearer_new (MMBroadbandModem *modem,
callback, callback,
user_data, user_data,
MM_BASE_BEARER_MODEM, modem, MM_BASE_BEARER_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
MM_BASE_BEARER_CONFIG, bearer_properties, MM_BASE_BEARER_CONFIG, bearer_properties,
MM_BROADBAND_BEARER_FLOW_CONTROL, flow_control, MM_BROADBAND_BEARER_FLOW_CONTROL, flow_control,
NULL); NULL);
+1 -1
View File
@@ -11550,7 +11550,7 @@ cell_broadcast_create_cbm (MMIfaceModemCellBroadcast *_self)
return iface_modem_cell_broadcast_parent->create_cbm (_self); return iface_modem_cell_broadcast_parent->create_cbm (_self);
} }
return mm_base_cbm_new (MM_BASE_MODEM (self)); return mm_base_cbm_new (MM_BASE_MODEM (self), G_OBJECT (self));
} }
/*****************************************************************************/ /*****************************************************************************/
+5 -1
View File
@@ -63,6 +63,7 @@
#include "libqcdm/src/logs.h" #include "libqcdm/src/logs.h"
#include "libqcdm/src/log-items.h" #include "libqcdm/src/log-items.h"
#include "mm-helper-enums-types.h" #include "mm-helper-enums-types.h"
#include "mm-bind.h"
static void iface_modem_init (MMIfaceModemInterface *iface); static void iface_modem_init (MMIfaceModemInterface *iface);
static void iface_modem_3gpp_init (MMIfaceModem3gppInterface *iface); static void iface_modem_3gpp_init (MMIfaceModem3gppInterface *iface);
@@ -504,6 +505,7 @@ modem_create_sim (MMIfaceModem *self,
{ {
/* New generic SIM */ /* New generic SIM */
mm_base_sim_new (MM_BASE_MODEM (self), mm_base_sim_new (MM_BASE_MODEM (self),
G_OBJECT (self),
NULL, /* cancellable */ NULL, /* cancellable */
callback, callback,
user_data); user_data);
@@ -5905,6 +5907,7 @@ modem_3gpp_create_initial_eps_bearer (MMIfaceModem3gpp *self,
* attempt connection through this bearer object. */ * attempt connection through this bearer object. */
bearer = g_object_new (MM_TYPE_BASE_BEARER, bearer = g_object_new (MM_TYPE_BASE_BEARER,
MM_BASE_BEARER_MODEM, MM_BASE_MODEM (self), MM_BASE_BEARER_MODEM, MM_BASE_MODEM (self),
MM_BIND_TO, G_OBJECT (self),
MM_BASE_BEARER_CONFIG, config, MM_BASE_BEARER_CONFIG, config,
"bearer-type", MM_BEARER_TYPE_DEFAULT_ATTACH, "bearer-type", MM_BEARER_TYPE_DEFAULT_ATTACH,
"connected", TRUE, "connected", TRUE,
@@ -8896,6 +8899,7 @@ modem_voice_create_call (MMIfaceModemVoice *_self,
MMBroadbandModem *self = MM_BROADBAND_MODEM (_self); MMBroadbandModem *self = MM_BROADBAND_MODEM (_self);
return mm_base_call_new (MM_BASE_MODEM (self), return mm_base_call_new (MM_BASE_MODEM (self),
G_OBJECT (self),
direction, direction,
number, number,
/* If +CLCC is supported, we want no incoming timeout. /* If +CLCC is supported, we want no incoming timeout.
@@ -10688,7 +10692,7 @@ modem_cell_broadcast_cleanup_unsolicited_events (MMIfaceModemCellBroadcast *self
static MMBaseCbm * static MMBaseCbm *
modem_cell_broadcast_create_cbm (MMIfaceModemCellBroadcast *self) modem_cell_broadcast_create_cbm (MMIfaceModemCellBroadcast *self)
{ {
return mm_base_cbm_new (MM_BASE_MODEM (self)); return mm_base_cbm_new (MM_BASE_MODEM (self), G_OBJECT (self));
} }
/***********************************************************************************/ /***********************************************************************************/
+2
View File
@@ -31,6 +31,7 @@
#include "mm-call-qmi.h" #include "mm-call-qmi.h"
#include "mm-base-modem.h" #include "mm-base-modem.h"
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMCallQmi, mm_call_qmi, MM_TYPE_BASE_CALL) G_DEFINE_TYPE (MMCallQmi, mm_call_qmi, MM_TYPE_BASE_CALL)
@@ -492,6 +493,7 @@ mm_call_qmi_new (MMBaseModem *modem,
{ {
return MM_BASE_CALL (g_object_new (MM_TYPE_CALL_QMI, return MM_BASE_CALL (g_object_new (MM_TYPE_CALL_QMI,
MM_BASE_CALL_MODEM, modem, MM_BASE_CALL_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
"direction", direction, "direction", direction,
"number", number, "number", number,
MM_BASE_CALL_SKIP_INCOMING_TIMEOUT, TRUE, MM_BASE_CALL_SKIP_INCOMING_TIMEOUT, TRUE,
+25 -7
View File
@@ -32,14 +32,18 @@
#include "mm-cbm-list.h" #include "mm-cbm-list.h"
#include "mm-base-cbm.h" #include "mm-base-cbm.h"
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-bind.h"
static void log_object_iface_init (MMLogObjectInterface *iface); static void log_object_iface_init (MMLogObjectInterface *iface);
static void bind_iface_init (MMBindInterface *iface);
G_DEFINE_TYPE_EXTENDED (MMCbmList, mm_cbm_list, G_TYPE_OBJECT, 0, G_DEFINE_TYPE_EXTENDED (MMCbmList, mm_cbm_list, G_TYPE_OBJECT, 0,
G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init)) G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_BIND, bind_iface_init))
enum { enum {
PROP_0, PROP_0,
PROP_BIND_TO,
PROP_MODEM, PROP_MODEM,
PROP_LAST PROP_LAST
}; };
@@ -53,6 +57,8 @@ enum {
static guint signals[SIGNAL_LAST]; static guint signals[SIGNAL_LAST];
struct _MMCbmListPrivate { struct _MMCbmListPrivate {
/* The object this CBM list is bound to */
GObject *bind_to;
/* The owner modem */ /* The owner modem */
MMBaseModem *modem; MMBaseModem *modem;
/* List of cbm objects */ /* List of cbm objects */
@@ -283,11 +289,12 @@ log_object_build_id (MMLogObject *_self)
/*****************************************************************************/ /*****************************************************************************/
MMCbmList * MMCbmList *
mm_cbm_list_new (MMBaseModem *modem) mm_cbm_list_new (MMBaseModem *modem, GObject *bind_to)
{ {
/* Create the object */ /* Create the object */
return g_object_new (MM_TYPE_CBM_LIST, return g_object_new (MM_TYPE_CBM_LIST,
MM_CBM_LIST_MODEM, modem, MM_CBM_LIST_MODEM, modem,
MM_BIND_TO, bind_to,
NULL); NULL);
} }
@@ -300,14 +307,14 @@ set_property (GObject *object,
MMCbmList *self = MM_CBM_LIST (object); MMCbmList *self = MM_CBM_LIST (object);
switch (prop_id) { switch (prop_id) {
case PROP_BIND_TO:
g_clear_object (&self->priv->bind_to);
self->priv->bind_to = g_value_dup_object (value);
mm_bind_to (MM_BIND (self), NULL, self->priv->bind_to);
break;
case PROP_MODEM: case PROP_MODEM:
g_clear_object (&self->priv->modem); g_clear_object (&self->priv->modem);
self->priv->modem = g_value_dup_object (value); self->priv->modem = g_value_dup_object (value);
if (self->priv->modem) {
/* Set owner ID */
mm_log_object_set_owner_id (MM_LOG_OBJECT (self),
mm_log_object_get_id (MM_LOG_OBJECT (self->priv->modem)));
}
break; break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -324,6 +331,9 @@ get_property (GObject *object,
MMCbmList *self = MM_CBM_LIST (object); MMCbmList *self = MM_CBM_LIST (object);
switch (prop_id) { switch (prop_id) {
case PROP_BIND_TO:
g_value_set_object (value, self->priv->bind_to);
break;
case PROP_MODEM: case PROP_MODEM:
g_value_set_object (value, self->priv->modem); g_value_set_object (value, self->priv->modem);
break; break;
@@ -348,6 +358,7 @@ dispose (GObject *object)
MMCbmList *self = MM_CBM_LIST (object); MMCbmList *self = MM_CBM_LIST (object);
g_clear_object (&self->priv->modem); g_clear_object (&self->priv->modem);
g_clear_object (&self->priv->bind_to);
g_list_free_full (self->priv->list, g_object_unref); g_list_free_full (self->priv->list, g_object_unref);
self->priv->list = NULL; self->priv->list = NULL;
@@ -360,6 +371,11 @@ log_object_iface_init (MMLogObjectInterface *iface)
iface->build_id = log_object_build_id; iface->build_id = log_object_build_id;
} }
static void
bind_iface_init (MMBindInterface *iface)
{
}
static void static void
mm_cbm_list_class_init (MMCbmListClass *klass) mm_cbm_list_class_init (MMCbmListClass *klass)
{ {
@@ -381,6 +397,8 @@ mm_cbm_list_class_init (MMCbmListClass *klass)
G_PARAM_READWRITE); G_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_MODEM, properties[PROP_MODEM]); g_object_class_install_property (object_class, PROP_MODEM, properties[PROP_MODEM]);
g_object_class_override_property (object_class, PROP_BIND_TO, MM_BIND_TO);
/* Signals */ /* Signals */
signals[SIGNAL_ADDED] = signals[SIGNAL_ADDED] =
g_signal_new (MM_CBM_ADDED, g_signal_new (MM_CBM_ADDED,
+2 -1
View File
@@ -57,7 +57,8 @@ struct _MMCbmListClass {
GType mm_cbm_list_get_type (void); GType mm_cbm_list_get_type (void);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMCbmList, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMCbmList, g_object_unref)
MMCbmList *mm_cbm_list_new (MMBaseModem *modem); MMCbmList *mm_cbm_list_new (MMBaseModem *modem,
GObject *bind_to);
GStrv mm_cbm_list_get_paths (MMCbmList *self); GStrv mm_cbm_list_get_paths (MMCbmList *self);
guint mm_cbm_list_get_count (MMCbmList *self); guint mm_cbm_list_get_count (MMCbmList *self);
+3 -2
View File
@@ -27,6 +27,7 @@
#include "mm-plugin.h" #include "mm-plugin.h"
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-daemon-enums-types.h" #include "mm-daemon-enums-types.h"
#include "mm-bind.h"
static void log_object_iface_init (MMLogObjectInterface *iface); static void log_object_iface_init (MMLogObjectInterface *iface);
@@ -341,7 +342,7 @@ unexport_modem (MMDevice *self)
if (path != NULL) { if (path != NULL) {
g_dbus_object_manager_server_unexport (self->priv->object_manager, path); g_dbus_object_manager_server_unexport (self->priv->object_manager, path);
g_object_set (self->priv->modem, g_object_set (self->priv->modem,
MM_BASE_MODEM_CONNECTION, NULL, MM_BINDABLE_CONNECTION, NULL,
NULL); NULL);
mm_obj_dbg (self, "unexported modem from path '%s'", path); mm_obj_dbg (self, "unexported modem from path '%s'", path);
g_free (path); g_free (path);
@@ -389,7 +390,7 @@ export_modem (MMDevice *self)
path = g_strdup_printf (MM_DBUS_MODEM_PREFIX "/%d", mm_base_modem_get_dbus_id (self->priv->modem)); path = g_strdup_printf (MM_DBUS_MODEM_PREFIX "/%d", mm_base_modem_get_dbus_id (self->priv->modem));
g_object_set (self->priv->modem, g_object_set (self->priv->modem,
"g-object-path", path, "g-object-path", path,
MM_BASE_MODEM_CONNECTION, connection, MM_BINDABLE_CONNECTION, connection,
NULL); NULL);
g_dbus_object_manager_server_export (self->priv->object_manager, g_dbus_object_manager_server_export (self->priv->object_manager,
+1 -1
View File
@@ -640,7 +640,7 @@ interface_enabling_step (GTask *task)
case ENABLING_STEP_FIRST: { case ENABLING_STEP_FIRST: {
g_autoptr (MMCbmList) list = NULL; g_autoptr (MMCbmList) list = NULL;
list = mm_cbm_list_new (MM_BASE_MODEM (self)); list = mm_cbm_list_new (MM_BASE_MODEM (self), G_OBJECT (self));
g_object_set (self, g_object_set (self,
MM_IFACE_MODEM_CELL_BROADCAST_CBM_LIST, list, MM_IFACE_MODEM_CELL_BROADCAST_CBM_LIST, list,
NULL); NULL);
+1 -1
View File
@@ -1008,7 +1008,7 @@ interface_enabling_step (GTask *task)
case ENABLING_STEP_FIRST: { case ENABLING_STEP_FIRST: {
MMSmsList *list; MMSmsList *list;
list = mm_sms_list_new (MM_BASE_MODEM (self)); list = mm_sms_list_new (MM_BASE_MODEM (self), G_OBJECT (self));
g_object_set (self, g_object_set (self,
MM_IFACE_MODEM_MESSAGING_SMS_LIST, list, MM_IFACE_MODEM_MESSAGING_SMS_LIST, list,
NULL); NULL);
+3
View File
@@ -31,6 +31,7 @@
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-modem-helpers-mbim.h" #include "mm-modem-helpers-mbim.h"
#include "mm-sim-mbim.h" #include "mm-sim-mbim.h"
#include "mm-bind.h"
#define MS_UICC_LOW_LEVEL_SUPPORTED_VERSION 0x01 #define MS_UICC_LOW_LEVEL_SUPPORTED_VERSION 0x01
@@ -1734,6 +1735,7 @@ mm_sim_mbim_new (MMBaseModem *modem,
callback, callback,
user_data, user_data,
MM_BASE_SIM_MODEM, modem, MM_BASE_SIM_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
"active", TRUE, /* by default always active */ "active", TRUE, /* by default always active */
NULL); NULL);
} }
@@ -1755,6 +1757,7 @@ mm_sim_mbim_new_initialized (MMBaseModem *modem,
sim = MM_BASE_SIM (g_object_new (MM_TYPE_SIM_MBIM, sim = MM_BASE_SIM (g_object_new (MM_TYPE_SIM_MBIM,
MM_BASE_SIM_MODEM, modem, MM_BASE_SIM_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
MM_BASE_SIM_SLOT_NUMBER, slot_number, MM_BASE_SIM_SLOT_NUMBER, slot_number,
"active", active, "active", active,
"sim-type", sim_type, "sim-type", sim_type,
+3
View File
@@ -31,6 +31,7 @@
#include "mm-sim-qmi.h" #include "mm-sim-qmi.h"
#include "mm-modem-helpers-qmi.h" #include "mm-modem-helpers-qmi.h"
#include "mm-shared-qmi.h" #include "mm-shared-qmi.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMSimQmi, mm_sim_qmi, MM_TYPE_BASE_SIM) G_DEFINE_TYPE (MMSimQmi, mm_sim_qmi, MM_TYPE_BASE_SIM)
@@ -1819,6 +1820,7 @@ mm_sim_qmi_new (MMBaseModem *modem,
callback, callback,
user_data, user_data,
MM_BASE_SIM_MODEM, modem, MM_BASE_SIM_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
MM_SIM_QMI_DMS_UIM_DEPRECATED, dms_uim_deprecated, MM_SIM_QMI_DMS_UIM_DEPRECATED, dms_uim_deprecated,
"active", TRUE, /* by default always active */ "active", TRUE, /* by default always active */
NULL); NULL);
@@ -1840,6 +1842,7 @@ mm_sim_qmi_new_initialized (MMBaseModem *modem,
sim = MM_BASE_SIM (g_object_new (MM_TYPE_SIM_QMI, sim = MM_BASE_SIM (g_object_new (MM_TYPE_SIM_QMI,
MM_BASE_SIM_MODEM, modem, MM_BASE_SIM_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
MM_SIM_QMI_DMS_UIM_DEPRECATED, dms_uim_deprecated, MM_SIM_QMI_DMS_UIM_DEPRECATED, dms_uim_deprecated,
MM_BASE_SIM_SLOT_NUMBER, slot_number, MM_BASE_SIM_SLOT_NUMBER, slot_number,
"active", active, "active", active,
+25 -6
View File
@@ -28,14 +28,18 @@
#include "mm-sms-list.h" #include "mm-sms-list.h"
#include "mm-base-sms.h" #include "mm-base-sms.h"
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-bind.h"
static void log_object_iface_init (MMLogObjectInterface *iface); static void log_object_iface_init (MMLogObjectInterface *iface);
static void bind_iface_init (MMBindInterface *iface);
G_DEFINE_TYPE_EXTENDED (MMSmsList, mm_sms_list, G_TYPE_OBJECT, 0, G_DEFINE_TYPE_EXTENDED (MMSmsList, mm_sms_list, G_TYPE_OBJECT, 0,
G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init)) G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_BIND, bind_iface_init))
enum { enum {
PROP_0, PROP_0,
PROP_BIND_TO,
PROP_MODEM, PROP_MODEM,
PROP_LAST PROP_LAST
}; };
@@ -49,6 +53,8 @@ enum {
static guint signals[SIGNAL_LAST]; static guint signals[SIGNAL_LAST];
struct _MMSmsListPrivate { struct _MMSmsListPrivate {
/* The object this SMS list is bound to */
GObject *bind_to;
/* The owner modem */ /* The owner modem */
MMBaseModem *modem; MMBaseModem *modem;
/* List of sms objects */ /* List of sms objects */
@@ -397,11 +403,12 @@ log_object_build_id (MMLogObject *_self)
/*****************************************************************************/ /*****************************************************************************/
MMSmsList * MMSmsList *
mm_sms_list_new (MMBaseModem *modem) mm_sms_list_new (MMBaseModem *modem, GObject *bind_to)
{ {
/* Create the object */ /* Create the object */
return g_object_new (MM_TYPE_SMS_LIST, return g_object_new (MM_TYPE_SMS_LIST,
MM_SMS_LIST_MODEM, modem, MM_SMS_LIST_MODEM, modem,
MM_BIND_TO, bind_to,
NULL); NULL);
} }
@@ -414,13 +421,14 @@ set_property (GObject *object,
MMSmsList *self = MM_SMS_LIST (object); MMSmsList *self = MM_SMS_LIST (object);
switch (prop_id) { switch (prop_id) {
case PROP_BIND_TO:
g_clear_object (&self->priv->bind_to);
self->priv->bind_to = g_value_dup_object (value);
mm_bind_to (MM_BIND (self), NULL, self->priv->bind_to);
break;
case PROP_MODEM: case PROP_MODEM:
g_clear_object (&self->priv->modem); g_clear_object (&self->priv->modem);
self->priv->modem = g_value_dup_object (value); self->priv->modem = g_value_dup_object (value);
if (self->priv->modem) {
/* Set owner ID */
mm_log_object_set_owner_id (MM_LOG_OBJECT (self), mm_log_object_get_id (MM_LOG_OBJECT (self->priv->modem)));
}
break; break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -437,6 +445,9 @@ get_property (GObject *object,
MMSmsList *self = MM_SMS_LIST (object); MMSmsList *self = MM_SMS_LIST (object);
switch (prop_id) { switch (prop_id) {
case PROP_BIND_TO:
g_value_set_object (value, self->priv->bind_to);
break;
case PROP_MODEM: case PROP_MODEM:
g_value_set_object (value, self->priv->modem); g_value_set_object (value, self->priv->modem);
break; break;
@@ -461,6 +472,7 @@ dispose (GObject *object)
MMSmsList *self = MM_SMS_LIST (object); MMSmsList *self = MM_SMS_LIST (object);
g_clear_object (&self->priv->modem); g_clear_object (&self->priv->modem);
g_clear_object (&self->priv->bind_to);
g_list_free_full (self->priv->list, g_object_unref); g_list_free_full (self->priv->list, g_object_unref);
self->priv->list = NULL; self->priv->list = NULL;
@@ -473,6 +485,11 @@ log_object_iface_init (MMLogObjectInterface *iface)
iface->build_id = log_object_build_id; iface->build_id = log_object_build_id;
} }
static void
bind_iface_init (MMBindInterface *iface)
{
}
static void static void
mm_sms_list_class_init (MMSmsListClass *klass) mm_sms_list_class_init (MMSmsListClass *klass)
{ {
@@ -494,6 +511,8 @@ mm_sms_list_class_init (MMSmsListClass *klass)
G_PARAM_READWRITE); G_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_MODEM, properties[PROP_MODEM]); g_object_class_install_property (object_class, PROP_MODEM, properties[PROP_MODEM]);
g_object_class_override_property (object_class, PROP_BIND_TO, MM_BIND_TO);
/* Signals */ /* Signals */
signals[SIGNAL_ADDED] = signals[SIGNAL_ADDED] =
g_signal_new (MM_SMS_ADDED, g_signal_new (MM_SMS_ADDED,
+2 -1
View File
@@ -57,7 +57,8 @@ struct _MMSmsListClass {
GType mm_sms_list_get_type (void); GType mm_sms_list_get_type (void);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMSmsList, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMSmsList, g_object_unref)
MMSmsList *mm_sms_list_new (MMBaseModem *modem); MMSmsList *mm_sms_list_new (MMBaseModem *modem,
GObject *bind_to);
GStrv mm_sms_list_get_paths (MMSmsList *self); GStrv mm_sms_list_get_paths (MMSmsList *self);
guint mm_sms_list_get_count (MMSmsList *self); guint mm_sms_list_get_count (MMSmsList *self);
+2
View File
@@ -31,6 +31,7 @@
#include "mm-base-modem.h" #include "mm-base-modem.h"
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-sms-part-3gpp.h" #include "mm-sms-part-3gpp.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMSmsMbim, mm_sms_mbim, MM_TYPE_BASE_SMS) G_DEFINE_TYPE (MMSmsMbim, mm_sms_mbim, MM_TYPE_BASE_SMS)
@@ -345,6 +346,7 @@ mm_sms_mbim_new (MMBaseModem *modem)
{ {
return MM_BASE_SMS (g_object_new (MM_TYPE_SMS_MBIM, return MM_BASE_SMS (g_object_new (MM_TYPE_SMS_MBIM,
MM_BASE_SMS_MODEM, modem, MM_BASE_SMS_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
NULL)); NULL));
} }
+2
View File
@@ -33,6 +33,7 @@
#include "mm-sms-part-3gpp.h" #include "mm-sms-part-3gpp.h"
#include "mm-sms-part-cdma.h" #include "mm-sms-part-cdma.h"
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMSmsQmi, mm_sms_qmi, MM_TYPE_BASE_SMS) G_DEFINE_TYPE (MMSmsQmi, mm_sms_qmi, MM_TYPE_BASE_SMS)
@@ -789,6 +790,7 @@ mm_sms_qmi_new (MMBaseModem *modem)
{ {
return MM_BASE_SMS (g_object_new (MM_TYPE_SMS_QMI, return MM_BASE_SMS (g_object_new (MM_TYPE_SMS_QMI,
MM_BASE_SMS_MODEM, modem, MM_BASE_SMS_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
NULL)); NULL));
} }
@@ -32,6 +32,7 @@
#include "mm-iface-modem-3gpp.h" #include "mm-iface-modem-3gpp.h"
#include "mm-log.h" #include "mm-log.h"
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-bind.h"
#define CONNECTION_CHECK_TIMEOUT_SEC 5 #define CONNECTION_CHECK_TIMEOUT_SEC 5
#define STATCM_TAG "%STATCM:" #define STATCM_TAG "%STATCM:"
@@ -340,6 +341,7 @@ mm_broadband_bearer_altair_lte_new (MMBroadbandModemAltairLte *modem,
callback, callback,
user_data, user_data,
MM_BASE_BEARER_MODEM, modem, MM_BASE_BEARER_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
MM_BASE_BEARER_CONFIG, config, MM_BASE_BEARER_CONFIG, config,
NULL); NULL);
} }
@@ -28,6 +28,7 @@
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-modem-helpers-cinterion.h" #include "mm-modem-helpers-cinterion.h"
#include "mm-daemon-enums-types.h" #include "mm-daemon-enums-types.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMBroadbandBearerCinterion, mm_broadband_bearer_cinterion, MM_TYPE_BROADBAND_BEARER) G_DEFINE_TYPE (MMBroadbandBearerCinterion, mm_broadband_bearer_cinterion, MM_TYPE_BROADBAND_BEARER)
@@ -767,6 +768,7 @@ mm_broadband_bearer_cinterion_new (MMBroadbandModemCinterion *modem,
callback, callback,
user_data, user_data,
MM_BASE_BEARER_MODEM, modem, MM_BASE_BEARER_MODEM, modem,
MM_BIND_TO, modem,
MM_BASE_BEARER_CONFIG, config, MM_BASE_BEARER_CONFIG, config,
NULL); NULL);
} }
@@ -3128,7 +3128,9 @@ cinterion_simlocal_unsolicited_handler (MMPortSerialAt *port,
if (sim == NULL && is_available) { if (sim == NULL && is_available) {
mm_obj_info (self, "SIM in slot %i inserted", i + 1); mm_obj_info (self, "SIM in slot %i inserted", i + 1);
sim = mm_base_sim_new_initialized (MM_BASE_MODEM (self), i + 1, FALSE, sim = mm_base_sim_new_initialized (MM_BASE_MODEM (self),
G_OBJECT (self),
i + 1, FALSE,
NULL, NULL, NULL, NULL, NULL, NULL); NULL, NULL, NULL, NULL, NULL, NULL);
mm_iface_modem_modify_sim (MM_IFACE_MODEM (self), i, sim); mm_iface_modem_modify_sim (MM_IFACE_MODEM (self), i, sim);
} else if (sim != NULL && !is_available) { } else if (sim != NULL && !is_available) {
@@ -3185,7 +3187,9 @@ cinterion_slot_availability_init_ready (MMBaseModem *_self,
is_available = g_array_index (available, gboolean, i); is_available = g_array_index (available, gboolean, i);
if (is_available) if (is_available)
sim = mm_base_sim_new_initialized (MM_BASE_MODEM (self), i + 1, FALSE, sim = mm_base_sim_new_initialized (MM_BASE_MODEM (self),
G_OBJECT (self),
i + 1, FALSE,
NULL, NULL, NULL, NULL, NULL, NULL); NULL, NULL, NULL, NULL, NULL, NULL);
g_ptr_array_add (ctx->sim_slots, sim); g_ptr_array_add (ctx->sim_slots, sim);
} }
@@ -1006,6 +1006,7 @@ mm_shared_cinterion_create_call (MMIfaceModemVoice *self,
if (priv->slcc_support == FEATURE_SUPPORTED) { if (priv->slcc_support == FEATURE_SUPPORTED) {
mm_obj_dbg (self, "created new call with ^SLCC support"); mm_obj_dbg (self, "created new call with ^SLCC support");
return mm_base_call_new (MM_BASE_MODEM (self), return mm_base_call_new (MM_BASE_MODEM (self),
G_OBJECT (self),
direction, direction,
number, number,
/* When SLCC is supported we have support for detailed /* When SLCC is supported we have support for detailed
@@ -20,6 +20,7 @@
#include "mm-base-modem-at.h" #include "mm-base-modem-at.h"
#include "mm-iface-modem-3gpp.h" #include "mm-iface-modem-3gpp.h"
#include "mm-log.h" #include "mm-log.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMBroadbandBearerFibocomEcm, mm_broadband_bearer_fibocom_ecm, MM_TYPE_BROADBAND_BEARER) G_DEFINE_TYPE (MMBroadbandBearerFibocomEcm, mm_broadband_bearer_fibocom_ecm, MM_TYPE_BROADBAND_BEARER)
@@ -513,6 +514,7 @@ mm_broadband_bearer_fibocom_ecm_new (MMBroadbandModemFibocom *modem,
callback, callback,
user_data, user_data,
MM_BASE_BEARER_MODEM, modem, MM_BASE_BEARER_MODEM, modem,
MM_BIND_TO, modem,
MM_BASE_BEARER_CONFIG, config, MM_BASE_BEARER_CONFIG, config,
NULL); NULL);
} }
@@ -31,6 +31,7 @@
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-modem-helpers-huawei.h" #include "mm-modem-helpers-huawei.h"
#include "mm-daemon-enums-types.h" #include "mm-daemon-enums-types.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMBroadbandBearerHuawei, mm_broadband_bearer_huawei, MM_TYPE_BROADBAND_BEARER) G_DEFINE_TYPE (MMBroadbandBearerHuawei, mm_broadband_bearer_huawei, MM_TYPE_BROADBAND_BEARER)
@@ -841,6 +842,7 @@ mm_broadband_bearer_huawei_new (MMBroadbandModemHuawei *modem,
callback, callback,
user_data, user_data,
MM_BASE_BEARER_MODEM, modem, MM_BASE_BEARER_MODEM, modem,
MM_BIND_TO, modem,
MM_BASE_BEARER_CONFIG, config, MM_BASE_BEARER_CONFIG, config,
NULL); NULL);
} }
@@ -3881,6 +3881,7 @@ create_call (MMIfaceModemVoice *self,
const gchar *number) const gchar *number)
{ {
return mm_base_call_new (MM_BASE_MODEM (self), return mm_base_call_new (MM_BASE_MODEM (self),
G_OBJECT (self),
direction, direction,
number, number,
TRUE, /* skip_incoming_timeout */ TRUE, /* skip_incoming_timeout */
+2
View File
@@ -27,6 +27,7 @@
#include <libmm-glib.h> #include <libmm-glib.h>
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-base-modem-at.h" #include "mm-base-modem-at.h"
#include "mm-bind.h"
#include "mm-sim-huawei.h" #include "mm-sim-huawei.h"
@@ -148,6 +149,7 @@ mm_sim_huawei_new (MMBaseModem *modem,
callback, callback,
user_data, user_data,
MM_BASE_SIM_MODEM, modem, MM_BASE_SIM_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
"active", TRUE, /* by default always active */ "active", TRUE, /* by default always active */
NULL); NULL);
} }
@@ -34,6 +34,7 @@
#include "mm-error-helpers.h" #include "mm-error-helpers.h"
#include "mm-daemon-enums-types.h" #include "mm-daemon-enums-types.h"
#include "mm-modem-helpers-icera.h" #include "mm-modem-helpers-icera.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMBroadbandBearerIcera, mm_broadband_bearer_icera, MM_TYPE_BROADBAND_BEARER); G_DEFINE_TYPE (MMBroadbandBearerIcera, mm_broadband_bearer_icera, MM_TYPE_BROADBAND_BEARER);
@@ -791,6 +792,7 @@ mm_broadband_bearer_icera_new (MMBroadbandModem *modem,
callback, callback,
user_data, user_data,
MM_BASE_BEARER_MODEM, modem, MM_BASE_BEARER_MODEM, modem,
MM_BIND_TO, modem,
MM_BASE_BEARER_CONFIG, config, MM_BASE_BEARER_CONFIG, config,
MM_BROADBAND_BEARER_ICERA_DEFAULT_IP_METHOD, ip_method, MM_BROADBAND_BEARER_ICERA_DEFAULT_IP_METHOD, ip_method,
NULL); NULL);
+2
View File
@@ -26,6 +26,7 @@
#include "mm-bearer-iridium.h" #include "mm-bearer-iridium.h"
#include "mm-base-modem-at.h" #include "mm-base-modem-at.h"
#include "mm-bind.h"
/* Allow up to 200s to get a proper IP connection */ /* Allow up to 200s to get a proper IP connection */
#define BEARER_IRIDIUM_IP_TIMEOUT_DEFAULT 200 #define BEARER_IRIDIUM_IP_TIMEOUT_DEFAULT 200
@@ -234,6 +235,7 @@ mm_bearer_iridium_new (MMBroadbandModemIridium *modem,
* g_object_get() here */ * g_object_get() here */
bearer = g_object_new (MM_TYPE_BEARER_IRIDIUM, bearer = g_object_new (MM_TYPE_BEARER_IRIDIUM,
MM_BASE_BEARER_MODEM, modem, MM_BASE_BEARER_MODEM, modem,
MM_BIND_TO, modem,
MM_BASE_BEARER_CONFIG, config, MM_BASE_BEARER_CONFIG, config,
"ip-timeout", BEARER_IRIDIUM_IP_TIMEOUT_DEFAULT, "ip-timeout", BEARER_IRIDIUM_IP_TIMEOUT_DEFAULT,
NULL); NULL);
+2
View File
@@ -25,6 +25,7 @@
#define _LIBMM_INSIDE_MM #define _LIBMM_INSIDE_MM
#include <libmm-glib.h> #include <libmm-glib.h>
#include "mm-bind.h"
#include "mm-sim-iridium.h" #include "mm-sim-iridium.h"
G_DEFINE_TYPE (MMSimIridium, mm_sim_iridium, MM_TYPE_BASE_SIM) G_DEFINE_TYPE (MMSimIridium, mm_sim_iridium, MM_TYPE_BASE_SIM)
@@ -63,6 +64,7 @@ mm_sim_iridium_new (MMBaseModem *modem,
callback, callback,
user_data, user_data,
MM_BASE_SIM_MODEM, modem, MM_BASE_SIM_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
"active", TRUE, /* by default always active */ "active", TRUE, /* by default always active */
NULL); NULL);
} }
@@ -42,6 +42,7 @@
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-modem-helpers-mbm.h" #include "mm-modem-helpers-mbm.h"
#include "mm-daemon-enums-types.h" #include "mm-daemon-enums-types.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMBroadbandBearerMbm, mm_broadband_bearer_mbm, MM_TYPE_BROADBAND_BEARER) G_DEFINE_TYPE (MMBroadbandBearerMbm, mm_broadband_bearer_mbm, MM_TYPE_BROADBAND_BEARER)
@@ -871,6 +872,7 @@ mm_broadband_bearer_mbm_new (MMBroadbandModemMbm *modem,
callback, callback,
user_data, user_data,
MM_BASE_BEARER_MODEM, modem, MM_BASE_BEARER_MODEM, modem,
MM_BIND_TO, modem,
MM_BASE_BEARER_CONFIG, config, MM_BASE_BEARER_CONFIG, config,
NULL); NULL);
} }
+2
View File
@@ -27,6 +27,7 @@
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-base-modem-at.h" #include "mm-base-modem-at.h"
#include "mm-sim-mbm.h" #include "mm-sim-mbm.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMSimMbm, mm_sim_mbm, MM_TYPE_BASE_SIM) G_DEFINE_TYPE (MMSimMbm, mm_sim_mbm, MM_TYPE_BASE_SIM)
@@ -221,6 +222,7 @@ mm_sim_mbm_new (MMBaseModem *modem,
callback, callback,
user_data, user_data,
MM_BASE_SIM_MODEM, modem, MM_BASE_SIM_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
"active", TRUE, /* by default always active */ "active", TRUE, /* by default always active */
NULL); NULL);
} }
@@ -21,6 +21,7 @@
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-bearer-mbim-mtk-fibocom.h" #include "mm-bearer-mbim-mtk-fibocom.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMBearerMbimMtkFibocom, mm_bearer_mbim_mtk_fibocom, MM_TYPE_BEARER_MBIM) G_DEFINE_TYPE (MMBearerMbimMtkFibocom, mm_bearer_mbim_mtk_fibocom, MM_TYPE_BEARER_MBIM)
@@ -151,6 +152,7 @@ mm_bearer_mbim_mtk_fibocom_new (MMBroadbandModemMbim *modem,
* g_object_new() here */ * g_object_new() here */
self = g_object_new (MM_TYPE_BEARER_MBIM_MTK_FIBOCOM, self = g_object_new (MM_TYPE_BEARER_MBIM_MTK_FIBOCOM,
MM_BASE_BEARER_MODEM, modem, MM_BASE_BEARER_MODEM, modem,
MM_BIND_TO, modem,
MM_BASE_BEARER_CONFIG, config, MM_BASE_BEARER_CONFIG, config,
MM_BEARER_MBIM_ASYNC_SLAAC, is_async_slaac_supported, MM_BEARER_MBIM_ASYNC_SLAAC, is_async_slaac_supported,
NULL); NULL);
+2
View File
@@ -25,6 +25,7 @@
#include <libmm-glib.h> #include <libmm-glib.h>
#include "mm-sim-nokia.h" #include "mm-sim-nokia.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMSimNokia, mm_sim_nokia, MM_TYPE_BASE_SIM) G_DEFINE_TYPE (MMSimNokia, mm_sim_nokia, MM_TYPE_BASE_SIM)
@@ -62,6 +63,7 @@ mm_sim_nokia_new (MMBaseModem *modem,
callback, callback,
user_data, user_data,
MM_BASE_SIM_MODEM, modem, MM_BASE_SIM_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
"active", TRUE, /* by default always active */ "active", TRUE, /* by default always active */
NULL); NULL);
} }
@@ -32,6 +32,7 @@
#include "mm-broadband-bearer-novatel-lte.h" #include "mm-broadband-bearer-novatel-lte.h"
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-bind.h"
#define QMISTATUS_TAG "$NWQMISTATUS:" #define QMISTATUS_TAG "$NWQMISTATUS:"
@@ -551,6 +552,7 @@ mm_broadband_bearer_novatel_lte_new (MMBroadbandModemNovatelLte *modem,
callback, callback,
user_data, user_data,
MM_BASE_BEARER_MODEM, modem, MM_BASE_BEARER_MODEM, modem,
MM_BIND_TO, modem,
MM_BASE_BEARER_CONFIG, config, MM_BASE_BEARER_CONFIG, config,
NULL); NULL);
} }
+2
View File
@@ -25,6 +25,7 @@
#include <libmm-glib.h> #include <libmm-glib.h>
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-base-modem-at.h" #include "mm-base-modem-at.h"
#include "mm-bind.h"
#include "mm-sim-novatel-lte.h" #include "mm-sim-novatel-lte.h"
@@ -215,6 +216,7 @@ mm_sim_novatel_lte_new (MMBaseModem *modem,
callback, callback,
user_data, user_data,
MM_BASE_SIM_MODEM, modem, MM_BASE_SIM_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
"active", TRUE, /* by default always active */ "active", TRUE, /* by default always active */
NULL); NULL);
} }
@@ -33,6 +33,7 @@
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-daemon-enums-types.h" #include "mm-daemon-enums-types.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMBroadbandBearerHso, mm_broadband_bearer_hso, MM_TYPE_BROADBAND_BEARER); G_DEFINE_TYPE (MMBroadbandBearerHso, mm_broadband_bearer_hso, MM_TYPE_BROADBAND_BEARER);
@@ -779,6 +780,7 @@ mm_broadband_bearer_hso_new (MMBroadbandModemHso *modem,
callback, callback,
user_data, user_data,
MM_BASE_BEARER_MODEM, modem, MM_BASE_BEARER_MODEM, modem,
MM_BIND_TO, modem,
MM_BASE_BEARER_CONFIG, config, MM_BASE_BEARER_CONFIG, config,
NULL); NULL);
} }
+2
View File
@@ -25,6 +25,7 @@
#include <libmm-glib.h> #include <libmm-glib.h>
#include "mm-sim-option.h" #include "mm-sim-option.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMSimOption, mm_sim_option, MM_TYPE_BASE_SIM) G_DEFINE_TYPE (MMSimOption, mm_sim_option, MM_TYPE_BASE_SIM)
@@ -62,6 +63,7 @@ mm_sim_option_new (MMBaseModem *modem,
callback, callback,
user_data, user_data,
MM_BASE_SIM_MODEM, modem, MM_BASE_SIM_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
"active", TRUE, /* by default always active */ "active", TRUE, /* by default always active */
NULL); NULL);
} }
+2
View File
@@ -25,6 +25,7 @@
#include <libmm-glib.h> #include <libmm-glib.h>
#include "mm-sim-pantech.h" #include "mm-sim-pantech.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMSimPantech, mm_sim_pantech, MM_TYPE_BASE_SIM) G_DEFINE_TYPE (MMSimPantech, mm_sim_pantech, MM_TYPE_BASE_SIM)
@@ -62,6 +63,7 @@ mm_sim_pantech_new (MMBaseModem *modem,
callback, callback,
user_data, user_data,
MM_BASE_SIM_MODEM, modem, MM_BASE_SIM_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
"active", TRUE, /* by default always active */ "active", TRUE, /* by default always active */
NULL); NULL);
} }
@@ -32,6 +32,7 @@
#include "mm-log-object.h" #include "mm-log-object.h"
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-modem-helpers-sierra.h" #include "mm-modem-helpers-sierra.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMBroadbandBearerSierra, mm_broadband_bearer_sierra, MM_TYPE_BROADBAND_BEARER); G_DEFINE_TYPE (MMBroadbandBearerSierra, mm_broadband_bearer_sierra, MM_TYPE_BROADBAND_BEARER);
@@ -599,6 +600,7 @@ mm_broadband_bearer_sierra_new (MMBroadbandModem *modem,
callback, callback,
user_data, user_data,
MM_BASE_BEARER_MODEM, modem, MM_BASE_BEARER_MODEM, modem,
MM_BIND_TO, modem,
MM_BASE_BEARER_CONFIG, config, MM_BASE_BEARER_CONFIG, config,
MM_BROADBAND_BEARER_SIERRA_IS_ICERA, is_icera, MM_BROADBAND_BEARER_SIERRA_IS_ICERA, is_icera,
NULL); NULL);
+2
View File
@@ -27,6 +27,7 @@
#include <libmm-glib.h> #include <libmm-glib.h>
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-base-modem-at.h" #include "mm-base-modem-at.h"
#include "mm-bind.h"
#include "mm-sim-sierra.h" #include "mm-sim-sierra.h"
@@ -139,6 +140,7 @@ mm_sim_sierra_new (MMBaseModem *modem,
callback, callback,
user_data, user_data,
MM_BASE_SIM_MODEM, modem, MM_BASE_SIM_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
"active", TRUE, /* by default always active */ "active", TRUE, /* by default always active */
NULL); NULL);
} }
@@ -32,6 +32,7 @@
#include "mm-ublox-enums-types.h" #include "mm-ublox-enums-types.h"
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-modem-helpers-ublox.h" #include "mm-modem-helpers-ublox.h"
#include "mm-bind.h"
G_DEFINE_TYPE (MMBroadbandBearerUblox, mm_broadband_bearer_ublox, MM_TYPE_BROADBAND_BEARER) G_DEFINE_TYPE (MMBroadbandBearerUblox, mm_broadband_bearer_ublox, MM_TYPE_BROADBAND_BEARER)
@@ -927,6 +928,7 @@ mm_broadband_bearer_ublox_new (MMBroadbandModem *modem,
callback, callback,
user_data, user_data,
MM_BASE_BEARER_MODEM, modem, MM_BASE_BEARER_MODEM, modem,
MM_BIND_TO, modem,
MM_BASE_BEARER_CONFIG, config, MM_BASE_BEARER_CONFIG, config,
MM_BROADBAND_BEARER_UBLOX_USB_PROFILE, profile, MM_BROADBAND_BEARER_UBLOX_USB_PROFILE, profile,
MM_BROADBAND_BEARER_UBLOX_NETWORKING_MODE, mode, MM_BROADBAND_BEARER_UBLOX_NETWORKING_MODE, mode,
@@ -1506,6 +1506,7 @@ create_call (MMIfaceModemVoice *self,
const gchar *number) const gchar *number)
{ {
return mm_base_call_new (MM_BASE_MODEM (self), return mm_base_call_new (MM_BASE_MODEM (self),
G_OBJECT (self),
direction, direction,
number, number,
TRUE, /* skip_incoming_timeout */ TRUE, /* skip_incoming_timeout */
+2
View File
@@ -26,6 +26,7 @@
#include "mm-log.h" #include "mm-log.h"
#include "mm-modem-helpers.h" #include "mm-modem-helpers.h"
#include "mm-base-modem-at.h" #include "mm-base-modem-at.h"
#include "mm-bind.h"
#include "mm-sim-ublox.h" #include "mm-sim-ublox.h"
@@ -144,6 +145,7 @@ mm_sim_ublox_new (MMBaseModem *modem,
callback, callback,
user_data, user_data,
MM_BASE_SIM_MODEM, modem, MM_BASE_SIM_MODEM, modem,
MM_BIND_TO, G_OBJECT (modem),
"active", TRUE, /* by default always active */ "active", TRUE, /* by default always active */
NULL); NULL);
} }