base-cbm,cbm-list,iface-cbm: remove usage of MMBaseModem
CBM isn't as complicated as SMS, and the CBM class itself doesn't need to be overridden by QMI/MBIM/etc. Now that the log parent and connection binding no longer require MMBaseModem we can flatten the CBM object creation and remove usage of MMBaseModem. Signed-off-by: Dan Williams <dan@ioncontrol.co>
This commit is contained in:
+3
-30
@@ -25,12 +25,7 @@
|
|||||||
#include <libmm-glib.h>
|
#include <libmm-glib.h>
|
||||||
|
|
||||||
#include "mm-base-cbm.h"
|
#include "mm-base-cbm.h"
|
||||||
#include "mm-broadband-modem.h"
|
|
||||||
#include "mm-iface-modem.h"
|
|
||||||
#include "mm-iface-modem-cell-broadcast.h"
|
|
||||||
#include "mm-cbm-part.h"
|
#include "mm-cbm-part.h"
|
||||||
#include "mm-base-modem-at.h"
|
|
||||||
#include "mm-base-modem.h"
|
|
||||||
#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"
|
||||||
@@ -48,7 +43,6 @@ enum {
|
|||||||
PROP_PATH,
|
PROP_PATH,
|
||||||
PROP_CONNECTION,
|
PROP_CONNECTION,
|
||||||
PROP_BIND_TO,
|
PROP_BIND_TO,
|
||||||
PROP_MODEM,
|
|
||||||
PROP_MAX_PARTS,
|
PROP_MAX_PARTS,
|
||||||
PROP_SERIAL,
|
PROP_SERIAL,
|
||||||
PROP_LAST
|
PROP_LAST
|
||||||
@@ -64,8 +58,6 @@ struct _MMBaseCbmPrivate {
|
|||||||
/* The object this CBM is bound to */
|
/* The object this CBM is bound to */
|
||||||
GObject *bind_to;
|
GObject *bind_to;
|
||||||
|
|
||||||
/* The modem which owns this CBM */
|
|
||||||
MMBaseModem *modem;
|
|
||||||
/* The path where the CBM object is exported */
|
/* The path where the CBM object is exported */
|
||||||
gchar *path;
|
gchar *path;
|
||||||
|
|
||||||
@@ -330,17 +322,15 @@ mm_base_cbm_take_part (MMBaseCbm *self,
|
|||||||
}
|
}
|
||||||
|
|
||||||
MMBaseCbm *
|
MMBaseCbm *
|
||||||
mm_base_cbm_new (MMBaseModem *modem,
|
mm_base_cbm_new (GObject *bind_to)
|
||||||
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_BIND_TO, bind_to,
|
MM_BIND_TO, bind_to,
|
||||||
NULL));
|
NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
MMBaseCbm *
|
MMBaseCbm *
|
||||||
mm_base_cbm_new_with_part (MMBaseModem *modem,
|
mm_base_cbm_new_with_part (GObject *bind_to,
|
||||||
MMCbmState state,
|
MMCbmState state,
|
||||||
guint max_parts,
|
guint max_parts,
|
||||||
MMCbmPart *first_part,
|
MMCbmPart *first_part,
|
||||||
@@ -348,13 +338,11 @@ mm_base_cbm_new_with_part (MMBaseModem *modem,
|
|||||||
{
|
{
|
||||||
MMBaseCbm *self;
|
MMBaseCbm *self;
|
||||||
|
|
||||||
g_assert (MM_IS_IFACE_MODEM_CELL_BROADCAST (modem));
|
|
||||||
|
|
||||||
if (state == MM_CBM_STATE_RECEIVED)
|
if (state == MM_CBM_STATE_RECEIVED)
|
||||||
state = MM_CBM_STATE_RECEIVING;
|
state = MM_CBM_STATE_RECEIVING;
|
||||||
|
|
||||||
/* Create a CBM object as defined by the interface */
|
/* Create a CBM object as defined by the interface */
|
||||||
self = mm_iface_modem_cell_broadcast_create_cbm (MM_IFACE_MODEM_CELL_BROADCAST (modem));
|
self = mm_base_cbm_new (bind_to);
|
||||||
g_object_set (self,
|
g_object_set (self,
|
||||||
MM_BASE_CBM_MAX_PARTS, max_parts,
|
MM_BASE_CBM_MAX_PARTS, max_parts,
|
||||||
"state", state,
|
"state", state,
|
||||||
@@ -419,10 +407,6 @@ set_property (GObject *object,
|
|||||||
self->priv->bind_to = g_value_dup_object (value);
|
self->priv->bind_to = g_value_dup_object (value);
|
||||||
mm_bind_to (MM_BIND (self), MM_BASE_CBM_CONNECTION, self->priv->bind_to);
|
mm_bind_to (MM_BIND (self), MM_BASE_CBM_CONNECTION, self->priv->bind_to);
|
||||||
break;
|
break;
|
||||||
case PROP_MODEM:
|
|
||||||
g_clear_object (&self->priv->modem);
|
|
||||||
self->priv->modem = g_value_dup_object (value);
|
|
||||||
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);
|
||||||
break;
|
break;
|
||||||
@@ -453,9 +437,6 @@ get_property (GObject *object,
|
|||||||
case PROP_BIND_TO:
|
case PROP_BIND_TO:
|
||||||
g_value_set_object (value, self->priv->bind_to);
|
g_value_set_object (value, self->priv->bind_to);
|
||||||
break;
|
break;
|
||||||
case PROP_MODEM:
|
|
||||||
g_value_set_object (value, self->priv->modem);
|
|
||||||
break;
|
|
||||||
case PROP_MAX_PARTS:
|
case PROP_MAX_PARTS:
|
||||||
g_value_set_uint (value, self->priv->max_parts);
|
g_value_set_uint (value, self->priv->max_parts);
|
||||||
break;
|
break;
|
||||||
@@ -504,7 +485,6 @@ dispose (GObject *object)
|
|||||||
g_clear_object (&self->priv->connection);
|
g_clear_object (&self->priv->connection);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_clear_object (&self->priv->modem);
|
|
||||||
g_clear_object (&self->priv->bind_to);
|
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);
|
||||||
@@ -550,13 +530,6 @@ mm_base_cbm_class_init (MMBaseCbmClass *klass)
|
|||||||
|
|
||||||
g_object_class_override_property (object_class, PROP_BIND_TO, MM_BIND_TO);
|
g_object_class_override_property (object_class, PROP_BIND_TO, MM_BIND_TO);
|
||||||
|
|
||||||
properties[PROP_MODEM] =
|
|
||||||
g_param_spec_object (MM_BASE_CBM_MODEM,
|
|
||||||
"Modem",
|
|
||||||
"The Modem which owns this CBM",
|
|
||||||
MM_TYPE_BASE_MODEM,
|
|
||||||
G_PARAM_READWRITE);
|
|
||||||
|
|
||||||
properties[PROP_MAX_PARTS] =
|
properties[PROP_MAX_PARTS] =
|
||||||
g_param_spec_uint (MM_BASE_CBM_MAX_PARTS,
|
g_param_spec_uint (MM_BASE_CBM_MAX_PARTS,
|
||||||
"Max parts",
|
"Max parts",
|
||||||
|
|||||||
+2
-5
@@ -23,7 +23,6 @@
|
|||||||
#include <libmm-glib.h>
|
#include <libmm-glib.h>
|
||||||
|
|
||||||
#include "mm-cbm-part.h"
|
#include "mm-cbm-part.h"
|
||||||
#include "mm-base-modem.h"
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
@@ -40,7 +39,6 @@ typedef struct _MMBaseCbmPrivate MMBaseCbmPrivate;
|
|||||||
|
|
||||||
#define MM_BASE_CBM_PATH "cbm-path"
|
#define MM_BASE_CBM_PATH "cbm-path"
|
||||||
#define MM_BASE_CBM_CONNECTION "cbm-connection"
|
#define MM_BASE_CBM_CONNECTION "cbm-connection"
|
||||||
#define MM_BASE_CBM_MODEM "cbm-modem"
|
|
||||||
#define MM_BASE_CBM_MAX_PARTS "cbm-max-parts"
|
#define MM_BASE_CBM_MAX_PARTS "cbm-max-parts"
|
||||||
#define MM_BASE_CBM_SERIAL "cbm-serial"
|
#define MM_BASE_CBM_SERIAL "cbm-serial"
|
||||||
|
|
||||||
@@ -56,12 +54,11 @@ 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 (GObject *bind_to);
|
||||||
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);
|
||||||
MMBaseCbm *mm_base_cbm_new_with_part (MMBaseModem *modem,
|
MMBaseCbm *mm_base_cbm_new_with_part (GObject *bind_to,
|
||||||
MMCbmState state,
|
MMCbmState state,
|
||||||
guint max_parts,
|
guint max_parts,
|
||||||
MMCbmPart *first_part,
|
MMCbmPart *first_part,
|
||||||
|
|||||||
@@ -10959,7 +10959,7 @@ add_new_read_cbm_part (MMIfaceModemCellBroadcast *self,
|
|||||||
GArray *data)
|
GArray *data)
|
||||||
{
|
{
|
||||||
MMCbmPart *part = NULL;
|
MMCbmPart *part = NULL;
|
||||||
GError *error = NULL;
|
g_autoptr(GError) error = NULL;
|
||||||
|
|
||||||
switch (format) {
|
switch (format) {
|
||||||
/* Cell Broadcasts need to be broadcast messages */
|
/* Cell Broadcasts need to be broadcast messages */
|
||||||
@@ -10968,6 +10968,10 @@ add_new_read_cbm_part (MMIfaceModemCellBroadcast *self,
|
|||||||
data->len,
|
data->len,
|
||||||
self,
|
self,
|
||||||
&error);
|
&error);
|
||||||
|
if (error) {
|
||||||
|
/* Don't treat the error as critical */
|
||||||
|
mm_obj_dbg (self, "error parsing PDU: %s", error->message);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case QMI_WMS_MESSAGE_FORMAT_MWI:
|
case QMI_WMS_MESSAGE_FORMAT_MWI:
|
||||||
case QMI_WMS_MESSAGE_FORMAT_GSM_WCDMA_POINT_TO_POINT:
|
case QMI_WMS_MESSAGE_FORMAT_GSM_WCDMA_POINT_TO_POINT:
|
||||||
@@ -10979,13 +10983,14 @@ add_new_read_cbm_part (MMIfaceModemCellBroadcast *self,
|
|||||||
|
|
||||||
if (part) {
|
if (part) {
|
||||||
mm_obj_dbg (self, "correctly parsed PDU");
|
mm_obj_dbg (self, "correctly parsed PDU");
|
||||||
mm_iface_modem_cell_broadcast_take_part (self,
|
if (!mm_iface_modem_cell_broadcast_take_part (self,
|
||||||
part,
|
G_OBJECT (self),
|
||||||
mm_cbm_state_from_qmi_message_tag (tag));
|
part,
|
||||||
} else if (error) {
|
mm_cbm_state_from_qmi_message_tag (tag),
|
||||||
/* Don't treat the error as critical */
|
&error)) {
|
||||||
mm_obj_dbg (self, "error parsing PDU: %s", error->message);
|
/* Don't treat the error as critical */
|
||||||
g_error_free (error);
|
mm_obj_dbg (self, "error adding CBM: %s", error->message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -11537,22 +11542,6 @@ cell_broadcast_set_channels (MMIfaceModemCellBroadcast *_self,
|
|||||||
g_task_new (self, NULL, callback, user_data));
|
g_task_new (self, NULL, callback, user_data));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/* Create CBM (CellBroadcast interface) */
|
|
||||||
|
|
||||||
static MMBaseCbm *
|
|
||||||
cell_broadcast_create_cbm (MMIfaceModemCellBroadcast *_self)
|
|
||||||
{
|
|
||||||
MMBroadbandModemQmi *self = MM_BROADBAND_MODEM_QMI (_self);
|
|
||||||
|
|
||||||
/* Handle AT URC only fallback */
|
|
||||||
if (self->priv->cell_broadcast_fallback_at_only) {
|
|
||||||
return iface_modem_cell_broadcast_parent->create_cbm (_self);
|
|
||||||
}
|
|
||||||
|
|
||||||
return mm_base_cbm_new (MM_BASE_MODEM (self), G_OBJECT (self));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* Check support (Voice interface) */
|
/* Check support (Voice interface) */
|
||||||
|
|
||||||
@@ -15316,7 +15305,6 @@ iface_modem_cell_broadcast_init (MMIfaceModemCellBroadcastInterface *iface)
|
|||||||
iface->cleanup_unsolicited_events_finish = cell_broadcast_cleanup_unsolicited_events_finish;
|
iface->cleanup_unsolicited_events_finish = cell_broadcast_cleanup_unsolicited_events_finish;
|
||||||
iface->set_channels = cell_broadcast_set_channels;
|
iface->set_channels = cell_broadcast_set_channels;
|
||||||
iface->set_channels_finish = cell_broadcast_set_channels_finish;
|
iface->set_channels_finish = cell_broadcast_set_channels_finish;
|
||||||
iface->create_cbm = cell_broadcast_create_cbm;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
+12
-18
@@ -10606,7 +10606,7 @@ cbc_cbm_received (MMPortSerialAt *port,
|
|||||||
GMatchInfo *info,
|
GMatchInfo *info,
|
||||||
MMBroadbandModem *self)
|
MMBroadbandModem *self)
|
||||||
{
|
{
|
||||||
GError *error = NULL;
|
g_autoptr(GError) error = NULL;
|
||||||
MMCbmPart *part;
|
MMCbmPart *part;
|
||||||
guint length;
|
guint length;
|
||||||
gchar *pdu;
|
gchar *pdu;
|
||||||
@@ -10621,15 +10621,19 @@ cbc_cbm_received (MMPortSerialAt *port,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
part = mm_cbm_part_new_from_pdu (pdu, self, &error);
|
part = mm_cbm_part_new_from_pdu (pdu, self, &error);
|
||||||
if (part) {
|
if (!part) {
|
||||||
mm_obj_dbg (self, "correctly parsed PDU");
|
|
||||||
mm_iface_modem_cell_broadcast_take_part (MM_IFACE_MODEM_CELL_BROADCAST (self),
|
|
||||||
part,
|
|
||||||
MM_CBM_STATE_RECEIVED);
|
|
||||||
} else {
|
|
||||||
/* Don't treat the error as critical */
|
/* Don't treat the error as critical */
|
||||||
mm_obj_dbg (self, "error parsing PDU: %s", error->message);
|
mm_obj_dbg (self, "error parsing PDU: %s", error->message);
|
||||||
g_error_free (error);
|
} else {
|
||||||
|
mm_obj_dbg (self, "correctly parsed PDU");
|
||||||
|
if (!mm_iface_modem_cell_broadcast_take_part (MM_IFACE_MODEM_CELL_BROADCAST (self),
|
||||||
|
G_OBJECT (self),
|
||||||
|
part,
|
||||||
|
MM_CBM_STATE_RECEIVED,
|
||||||
|
&error)) {
|
||||||
|
/* Don't treat the error as critical */
|
||||||
|
mm_obj_dbg (self, "error adding CBM: %s", error->message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -10686,15 +10690,6 @@ modem_cell_broadcast_cleanup_unsolicited_events (MMIfaceModemCellBroadcast *self
|
|||||||
set_cell_broadcast_unsolicited_events_handlers (self, FALSE, callback, user_data);
|
set_cell_broadcast_unsolicited_events_handlers (self, FALSE, callback, user_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/* Create CBM (CellBroadcast interface) */
|
|
||||||
|
|
||||||
static MMBaseCbm *
|
|
||||||
modem_cell_broadcast_create_cbm (MMIfaceModemCellBroadcast *self)
|
|
||||||
{
|
|
||||||
return mm_base_cbm_new (MM_BASE_MODEM (self), G_OBJECT (self));
|
|
||||||
}
|
|
||||||
|
|
||||||
/***********************************************************************************/
|
/***********************************************************************************/
|
||||||
/* Get channels (CellBroadcast interface) */
|
/* Get channels (CellBroadcast interface) */
|
||||||
|
|
||||||
@@ -14507,7 +14502,6 @@ iface_modem_cell_broadcast_init (MMIfaceModemCellBroadcastInterface *iface)
|
|||||||
iface->cleanup_unsolicited_events_finish = modem_cell_broadcast_setup_cleanup_unsolicited_events_finish;
|
iface->cleanup_unsolicited_events_finish = modem_cell_broadcast_setup_cleanup_unsolicited_events_finish;
|
||||||
iface->set_channels = modem_cell_broadcast_set_channels;
|
iface->set_channels = modem_cell_broadcast_set_channels;
|
||||||
iface->set_channels_finish = modem_cell_broadcast_set_channels_finish;
|
iface->set_channels_finish = modem_cell_broadcast_set_channels_finish;
|
||||||
iface->create_cbm = modem_cell_broadcast_create_cbm;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
+4
-2
@@ -179,6 +179,7 @@ cmp_cbm_by_serial_and_id (MMBaseCbm *cbm,
|
|||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
take_part (MMCbmList *self,
|
take_part (MMCbmList *self,
|
||||||
|
GObject *bind_to,
|
||||||
MMCbmPart *part,
|
MMCbmPart *part,
|
||||||
MMCbmState state,
|
MMCbmState state,
|
||||||
GError **error)
|
GError **error)
|
||||||
@@ -202,7 +203,7 @@ take_part (MMCbmList *self,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Create new cbm */
|
/* Create new cbm */
|
||||||
cbm = mm_base_cbm_new_with_part (self->priv->modem,
|
cbm = mm_base_cbm_new_with_part (bind_to,
|
||||||
state,
|
state,
|
||||||
mm_cbm_part_get_num_parts (part),
|
mm_cbm_part_get_num_parts (part),
|
||||||
part,
|
part,
|
||||||
@@ -256,6 +257,7 @@ mm_cbm_list_has_part (MMCbmList *self,
|
|||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
mm_cbm_list_take_part (MMCbmList *self,
|
mm_cbm_list_take_part (MMCbmList *self,
|
||||||
|
GObject *bind_to,
|
||||||
MMCbmPart *part,
|
MMCbmPart *part,
|
||||||
MMCbmState state,
|
MMCbmState state,
|
||||||
GError **error)
|
GError **error)
|
||||||
@@ -275,7 +277,7 @@ mm_cbm_list_take_part (MMCbmList *self,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return take_part (self, part, state, error);
|
return take_part (self, bind_to, part, state, error);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ gboolean mm_cbm_list_has_part (MMCbmList *self,
|
|||||||
guint8 part_num);
|
guint8 part_num);
|
||||||
|
|
||||||
gboolean mm_cbm_list_take_part (MMCbmList *self,
|
gboolean mm_cbm_list_take_part (MMCbmList *self,
|
||||||
|
GObject *bind_to,
|
||||||
MMCbmPart *part,
|
MMCbmPart *part,
|
||||||
MMCbmState state,
|
MMCbmState state,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
|||||||
@@ -275,16 +275,6 @@ handle_list (MmGdbusModemCellBroadcast *skeleton,
|
|||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
MMBaseCbm *
|
|
||||||
mm_iface_modem_cell_broadcast_create_cbm (MMIfaceModemCellBroadcast *self)
|
|
||||||
{
|
|
||||||
g_assert (MM_IFACE_MODEM_CELL_BROADCAST_GET_IFACE (self)->create_cbm != NULL);
|
|
||||||
|
|
||||||
return MM_IFACE_MODEM_CELL_BROADCAST_GET_IFACE (self)->create_cbm (self);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
typedef struct _InitializationContext InitializationContext;
|
typedef struct _InitializationContext InitializationContext;
|
||||||
static void interface_initialization_step (GTask *task);
|
static void interface_initialization_step (GTask *task);
|
||||||
|
|
||||||
@@ -742,22 +732,22 @@ mm_iface_modem_cell_broadcast_enable (MMIfaceModemCellBroadcast *self,
|
|||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
mm_iface_modem_cell_broadcast_take_part (MMIfaceModemCellBroadcast *self,
|
mm_iface_modem_cell_broadcast_take_part (MMIfaceModemCellBroadcast *self,
|
||||||
MMCbmPart *cbm_part,
|
GObject *bind_to,
|
||||||
MMCbmState state)
|
MMCbmPart *cbm_part,
|
||||||
|
MMCbmState state,
|
||||||
|
GError **error)
|
||||||
{
|
{
|
||||||
g_autoptr(MMCbmList) list = NULL;
|
g_autoptr(MMCbmList) list = NULL;
|
||||||
g_autoptr(GError) error = NULL;
|
|
||||||
gboolean added = FALSE;
|
gboolean added = FALSE;
|
||||||
|
|
||||||
g_object_get (self,
|
g_object_get (self,
|
||||||
MM_IFACE_MODEM_CELL_BROADCAST_CBM_LIST, &list,
|
MM_IFACE_MODEM_CELL_BROADCAST_CBM_LIST, &list,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
if (list) {
|
if (list) {
|
||||||
added = mm_cbm_list_take_part (list, cbm_part, state, &error);
|
added = mm_cbm_list_take_part (list, bind_to, cbm_part, state, error);
|
||||||
if (!added)
|
if (!added)
|
||||||
mm_obj_dbg (self, "Can't take part in CBM list: %s", error->message);
|
g_prefix_error (error, "couldn't take part in CBM list: ");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If part wasn't taken, we need to free the part ourselves */
|
/* If part wasn't taken, we need to free the part ourselves */
|
||||||
|
|||||||
@@ -83,9 +83,6 @@ struct _MMIfaceModemCellBroadcastInterface {
|
|||||||
GAsyncReadyCallback callback,
|
GAsyncReadyCallback callback,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
||||||
/* Create Cbm objects */
|
|
||||||
MMBaseCbm * (* create_cbm) (MMIfaceModemCellBroadcast *self);
|
|
||||||
|
|
||||||
/* Set channel list */
|
/* Set channel list */
|
||||||
void (* set_channels) (MMIfaceModemCellBroadcast *self,
|
void (* set_channels) (MMIfaceModemCellBroadcast *self,
|
||||||
GArray *channels,
|
GArray *channels,
|
||||||
@@ -129,10 +126,9 @@ void mm_iface_modem_cell_broadcast_bind_simple_status (MMIfaceModemCellBroadcast
|
|||||||
|
|
||||||
/* Report new CBM part */
|
/* Report new CBM part */
|
||||||
gboolean mm_iface_modem_cell_broadcast_take_part (MMIfaceModemCellBroadcast *self,
|
gboolean mm_iface_modem_cell_broadcast_take_part (MMIfaceModemCellBroadcast *self,
|
||||||
|
GObject *bind_to,
|
||||||
MMCbmPart *cbm_part,
|
MMCbmPart *cbm_part,
|
||||||
MMCbmState state);
|
MMCbmState state,
|
||||||
|
GError **error);
|
||||||
/* CBM creation */
|
|
||||||
MMBaseCbm *mm_iface_modem_cell_broadcast_create_cbm (MMIfaceModemCellBroadcast *self);
|
|
||||||
|
|
||||||
#endif /* MM_IFACE_MODEM_CELLBROADCAST_H */
|
#endif /* MM_IFACE_MODEM_CELLBROADCAST_H */
|
||||||
|
|||||||
Reference in New Issue
Block a user