static void on_audio_state()

in prpl/chat.c [445:470]


static void on_audio_state(ChimeCall *call, ChimeAudioState audio_state,
			    const gchar *message, struct chime_chat *chat)
{
	purple_debug(PURPLE_DEBUG_INFO, "chime", "Audio state %d (%s)\n", audio_state, message);

	const gchar *name = chime_call_get_alert_body(chat->call);
	if (audio_state == CHIME_AUDIO_STATE_FAILED) {
		if (chat->media) {
			purple_media_error(chat->media, "Failed to connect audio transport: %s\n",
					   message);
			purple_media_end(chat->media, NULL, NULL);
			chat->media = NULL;
		}
	} else if (audio_state == CHIME_AUDIO_STATE_CONNECTING && !chat->media &&
	    !chime_call_get_silent(call)) {
		call_media_setup(call, chat);
	} else if (audio_state == CHIME_AUDIO_STATE_AUDIO_MUTED && chat->media) {
		purple_media_stream_info(chat->media, PURPLE_MEDIA_INFO_MUTE, "chime", name, FALSE);
	} else if (audio_state == CHIME_AUDIO_STATE_AUDIO && chat->media) {
		if (!chat->media_connected) {
			chat->media_connected = TRUE;
			purple_media_stream_info(chat->media, PURPLE_MEDIA_INFO_ACCEPT, "chime", name, FALSE);
		}
		purple_media_stream_info(chat->media, PURPLE_MEDIA_INFO_UNMUTE, "chime", name, FALSE);
	}
}