broadband-modem: implement the use-pdu-mode flag property
This commit is contained in:
@@ -85,6 +85,7 @@ enum {
|
|||||||
PROP_MODEM_CDMA_CDMA1X_NETWORK_SUPPORTED,
|
PROP_MODEM_CDMA_CDMA1X_NETWORK_SUPPORTED,
|
||||||
PROP_MODEM_CDMA_EVDO_NETWORK_SUPPORTED,
|
PROP_MODEM_CDMA_EVDO_NETWORK_SUPPORTED,
|
||||||
PROP_MODEM_MESSAGING_SMS_LIST,
|
PROP_MODEM_MESSAGING_SMS_LIST,
|
||||||
|
PROP_MODEM_MESSAGING_SMS_PDU_MODE,
|
||||||
PROP_MODEM_SIMPLE_STATUS,
|
PROP_MODEM_SIMPLE_STATUS,
|
||||||
PROP_LAST
|
PROP_LAST
|
||||||
};
|
};
|
||||||
@@ -154,8 +155,8 @@ struct _MMBroadbandModemPrivate {
|
|||||||
/* Properties */
|
/* Properties */
|
||||||
GObject *modem_messaging_dbus_skeleton;
|
GObject *modem_messaging_dbus_skeleton;
|
||||||
MMBearerList *modem_messaging_sms_list;
|
MMBearerList *modem_messaging_sms_list;
|
||||||
|
gboolean modem_messaging_sms_pdu_mode;
|
||||||
/* Implementation helpers */
|
/* Implementation helpers */
|
||||||
gboolean sms_use_pdu_mode;
|
|
||||||
gboolean sms_supported_modes_checked;
|
gboolean sms_supported_modes_checked;
|
||||||
GHashTable *known_sms_parts;
|
GHashTable *known_sms_parts;
|
||||||
};
|
};
|
||||||
@@ -3524,10 +3525,10 @@ cmgf_set_ready (MMBroadbandModem *self,
|
|||||||
mm_dbg ("Failed to set preferred SMS mode: '%s'; assuming text mode'",
|
mm_dbg ("Failed to set preferred SMS mode: '%s'; assuming text mode'",
|
||||||
error->message);
|
error->message);
|
||||||
g_error_free (error);
|
g_error_free (error);
|
||||||
self->priv->sms_use_pdu_mode = FALSE;
|
self->priv->modem_messaging_sms_pdu_mode = FALSE;
|
||||||
} else
|
} else
|
||||||
mm_info ("Successfully set preferred SMS mode: '%s'",
|
mm_info ("Successfully set preferred SMS mode: '%s'",
|
||||||
self->priv->sms_use_pdu_mode ? "PDU" : "text");
|
self->priv->modem_messaging_sms_pdu_mode ? "PDU" : "text");
|
||||||
|
|
||||||
g_simple_async_result_set_op_res_gboolean (simple, TRUE);
|
g_simple_async_result_set_op_res_gboolean (simple, TRUE);
|
||||||
g_simple_async_result_complete (simple);
|
g_simple_async_result_complete (simple);
|
||||||
@@ -3541,7 +3542,7 @@ set_preferred_sms_format (MMBroadbandModem *self,
|
|||||||
gchar *cmd;
|
gchar *cmd;
|
||||||
|
|
||||||
cmd = g_strdup_printf ("+CMGF=%s",
|
cmd = g_strdup_printf ("+CMGF=%s",
|
||||||
self->priv->sms_use_pdu_mode ? "0" : "1");
|
self->priv->modem_messaging_sms_pdu_mode ? "0" : "1");
|
||||||
mm_base_modem_at_command (MM_BASE_MODEM (self),
|
mm_base_modem_at_command (MM_BASE_MODEM (self),
|
||||||
cmd,
|
cmd,
|
||||||
3,
|
3,
|
||||||
@@ -3574,7 +3575,7 @@ cmgf_format_check_ready (MMBroadbandModem *self,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* If text mode is supported, default to use it for now; othewise try PDU mode */
|
/* If text mode is supported, default to use it for now; othewise try PDU mode */
|
||||||
self->priv->sms_use_pdu_mode = !sms_text_supported;
|
self->priv->modem_messaging_sms_pdu_mode = !sms_text_supported;
|
||||||
|
|
||||||
self->priv->sms_supported_modes_checked = TRUE;
|
self->priv->sms_supported_modes_checked = TRUE;
|
||||||
|
|
||||||
@@ -4063,13 +4064,13 @@ modem_messaging_load_initial_sms_parts (MMIfaceModemMessaging *self,
|
|||||||
/* Get SMS parts from ALL types.
|
/* Get SMS parts from ALL types.
|
||||||
* Different command to be used if we are on Text or PDU mode */
|
* Different command to be used if we are on Text or PDU mode */
|
||||||
mm_base_modem_at_command (MM_BASE_MODEM (self),
|
mm_base_modem_at_command (MM_BASE_MODEM (self),
|
||||||
(MM_BROADBAND_MODEM (self)->priv->sms_use_pdu_mode ?
|
(MM_BROADBAND_MODEM (self)->priv->modem_messaging_sms_pdu_mode ?
|
||||||
"+CMGL=4" :
|
"+CMGL=4" :
|
||||||
"+CMGL=\"ALL\""),
|
"+CMGL=\"ALL\""),
|
||||||
10,
|
10,
|
||||||
FALSE,
|
FALSE,
|
||||||
NULL, /* cancellable */
|
NULL, /* cancellable */
|
||||||
(GAsyncReadyCallback) (MM_BROADBAND_MODEM (self)->priv->sms_use_pdu_mode ?
|
(GAsyncReadyCallback) (MM_BROADBAND_MODEM (self)->priv->modem_messaging_sms_pdu_mode ?
|
||||||
sms_pdu_part_list_ready :
|
sms_pdu_part_list_ready :
|
||||||
sms_text_part_list_ready),
|
sms_text_part_list_ready),
|
||||||
result);
|
result);
|
||||||
@@ -6132,6 +6133,9 @@ set_property (GObject *object,
|
|||||||
g_clear_object (&self->priv->modem_messaging_sms_list);
|
g_clear_object (&self->priv->modem_messaging_sms_list);
|
||||||
self->priv->modem_messaging_sms_list = g_value_dup_object (value);
|
self->priv->modem_messaging_sms_list = g_value_dup_object (value);
|
||||||
break;
|
break;
|
||||||
|
case PROP_MODEM_MESSAGING_SMS_PDU_MODE:
|
||||||
|
self->priv->modem_messaging_sms_pdu_mode = g_value_get_boolean (value);
|
||||||
|
break;
|
||||||
case PROP_MODEM_SIMPLE_STATUS:
|
case PROP_MODEM_SIMPLE_STATUS:
|
||||||
g_clear_object (&self->priv->modem_simple_status);
|
g_clear_object (&self->priv->modem_simple_status);
|
||||||
self->priv->modem_simple_status = g_value_dup_object (value);
|
self->priv->modem_simple_status = g_value_dup_object (value);
|
||||||
@@ -6208,6 +6212,9 @@ get_property (GObject *object,
|
|||||||
case PROP_MODEM_MESSAGING_SMS_LIST:
|
case PROP_MODEM_MESSAGING_SMS_LIST:
|
||||||
g_value_set_object (value, self->priv->modem_messaging_sms_list);
|
g_value_set_object (value, self->priv->modem_messaging_sms_list);
|
||||||
break;
|
break;
|
||||||
|
case PROP_MODEM_MESSAGING_SMS_PDU_MODE:
|
||||||
|
g_value_set_boolean (value, self->priv->modem_messaging_sms_pdu_mode);
|
||||||
|
break;
|
||||||
case PROP_MODEM_SIMPLE_STATUS:
|
case PROP_MODEM_SIMPLE_STATUS:
|
||||||
g_value_set_object (value, self->priv->modem_simple_status);
|
g_value_set_object (value, self->priv->modem_simple_status);
|
||||||
break;
|
break;
|
||||||
@@ -6568,6 +6575,10 @@ mm_broadband_modem_class_init (MMBroadbandModemClass *klass)
|
|||||||
PROP_MODEM_MESSAGING_SMS_LIST,
|
PROP_MODEM_MESSAGING_SMS_LIST,
|
||||||
MM_IFACE_MODEM_MESSAGING_SMS_LIST);
|
MM_IFACE_MODEM_MESSAGING_SMS_LIST);
|
||||||
|
|
||||||
|
g_object_class_override_property (object_class,
|
||||||
|
PROP_MODEM_MESSAGING_SMS_PDU_MODE,
|
||||||
|
MM_IFACE_MODEM_MESSAGING_SMS_PDU_MODE);
|
||||||
|
|
||||||
g_object_class_override_property (object_class,
|
g_object_class_override_property (object_class,
|
||||||
PROP_MODEM_SIMPLE_STATUS,
|
PROP_MODEM_SIMPLE_STATUS,
|
||||||
MM_IFACE_MODEM_SIMPLE_STATUS);
|
MM_IFACE_MODEM_SIMPLE_STATUS);
|
||||||
|
Reference in New Issue
Block a user