base-call: allow updating audio settings from out of the call object

E.g. if we want the modem-level in-call state management to provide
what audio settings are expected in all ongoing calls.
This commit is contained in:
Aleksander Morgado
2019-07-02 13:25:09 +02:00
parent 12bad162e3
commit b7fa4e3661
2 changed files with 11 additions and 7 deletions

View File

@@ -177,8 +177,8 @@ mm_base_call_incoming_refresh (MMBaseCall *self)
/*****************************************************************************/
/* Update audio settings */
static void
update_audio_settings (MMBaseCall *self,
void
mm_base_call_change_audio_settings (MMBaseCall *self,
MMPort *audio_port,
MMCallAudioFormat *audio_format)
{
@@ -249,7 +249,7 @@ start_setup_audio_channel_ready (MMBaseCall *self,
}
if (audio_port || audio_format) {
update_audio_settings (self, audio_port, audio_format);
mm_base_call_change_audio_settings (self, audio_port, audio_format);
g_clear_object (&audio_port);
g_clear_object (&audio_format);
}
@@ -410,7 +410,7 @@ accept_setup_audio_channel_ready (MMBaseCall *self,
}
if (audio_port || audio_format) {
update_audio_settings (self, audio_port, audio_format);
mm_base_call_change_audio_settings (self, audio_port, audio_format);
g_clear_object (&audio_port);
g_clear_object (&audio_format);
}
@@ -1001,7 +1001,7 @@ mm_base_call_change_state (MMBaseCall *self,
}
if (MM_BASE_CALL_GET_CLASS (self)->cleanup_audio_channel) {
mm_info ("cleaning up audio channel...");
update_audio_settings (self, NULL, NULL);
mm_base_call_change_audio_settings (self, NULL, NULL);
MM_BASE_CALL_GET_CLASS (self)->cleanup_audio_channel (self,
(GAsyncReadyCallback) cleanup_audio_channel_ready,
NULL);

View File

@@ -144,6 +144,10 @@ void mm_base_call_change_state (MMBaseCall *self,
MMCallState new_state,
MMCallStateReason reason);
void mm_base_call_change_audio_settings (MMBaseCall *self,
MMPort *audio_port,
MMCallAudioFormat *audio_format);
void mm_base_call_received_dtmf (MMBaseCall *self,
const gchar *dtmf);