cinterion: when ^SLCC is supported, detailed call state updates are implicit
This commit is contained in:
@@ -1965,6 +1965,8 @@ iface_modem_voice_init (MMIfaceModemVoice *iface)
|
||||
{
|
||||
iface_modem_voice_parent = g_type_interface_peek_parent (iface);
|
||||
|
||||
iface->create_call = mm_shared_cinterion_create_call;
|
||||
|
||||
iface->enable_unsolicited_events = mm_shared_cinterion_voice_enable_unsolicited_events;
|
||||
iface->enable_unsolicited_events_finish = mm_shared_cinterion_voice_enable_unsolicited_events_finish;
|
||||
iface->disable_unsolicited_events = mm_shared_cinterion_voice_disable_unsolicited_events;
|
||||
|
||||
@@ -89,6 +89,8 @@ iface_modem_voice_init (MMIfaceModemVoice *iface)
|
||||
{
|
||||
iface_modem_voice_parent = g_type_interface_peek_parent (iface);
|
||||
|
||||
iface->create_call = mm_shared_cinterion_create_call;
|
||||
|
||||
iface->enable_unsolicited_events = mm_shared_cinterion_voice_enable_unsolicited_events;
|
||||
iface->enable_unsolicited_events_finish = mm_shared_cinterion_voice_enable_unsolicited_events_finish;
|
||||
iface->disable_unsolicited_events = mm_shared_cinterion_voice_disable_unsolicited_events;
|
||||
|
||||
@@ -798,6 +798,35 @@ mm_shared_cinterion_enable_location_gathering (MMIfaceModemLocation *self,
|
||||
enable_location_gathering_context_gps_step (task);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
MMBaseCall *
|
||||
mm_shared_cinterion_create_call (MMIfaceModemVoice *self,
|
||||
MMCallDirection direction,
|
||||
const gchar *number)
|
||||
{
|
||||
Private *priv;
|
||||
|
||||
/* If ^SLCC is supported create a cinterion call object */
|
||||
priv = get_private (MM_SHARED_CINTERION (self));
|
||||
if (priv->slcc_support == FEATURE_SUPPORTED) {
|
||||
mm_dbg ("Created new call with ^SLCC support");
|
||||
return mm_base_call_new (MM_BASE_MODEM (self),
|
||||
direction,
|
||||
number,
|
||||
/* When SLCC is supported we have support for detailed
|
||||
* call list events via call list report URCs */
|
||||
TRUE, /* incoming timeout not required */
|
||||
TRUE, /* dialing->ringing supported */
|
||||
TRUE); /* ringing->active supported */
|
||||
}
|
||||
|
||||
/* otherwise, run parent's generic base call logic */
|
||||
g_assert (priv->iface_modem_voice_parent);
|
||||
g_assert (priv->iface_modem_voice_parent->create_call);
|
||||
return priv->iface_modem_voice_parent->create_call (self, direction, number);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Common enable/disable voice unsolicited events */
|
||||
|
||||
|
||||
@@ -70,6 +70,13 @@ gboolean mm_shared_cinterion_disable_location_gathering_finish (MMI
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Create call (Voice interface) */
|
||||
|
||||
MMBaseCall *mm_shared_cinterion_create_call (MMIfaceModemVoice *self,
|
||||
MMCallDirection direction,
|
||||
const gchar *number);
|
||||
|
||||
void mm_shared_cinterion_voice_setup_unsolicited_events (MMIfaceModemVoice *self,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
|
||||
Reference in New Issue
Block a user