Improved mute handling so that Android system bar mic icon is not shown when call is muted

This commit is contained in:
Juha Heinanen
2026-05-31 08:40:10 +03:00
parent 01fb30aa47
commit 908c38a1a5
4 changed files with 59 additions and 26 deletions

View File

@ -255,6 +255,7 @@ static void event_handler(enum bevent_ev ev, struct bevent *event, void *arg)
len = re_snprintf(event_buf, sizeof event_buf, "transfer failed,%s", prm);
break;
case BEVENT_CALL_CLOSED:
audio_set_source(call_audio(call), "nil", NULL);
tone = call_scode(call) ? translate_errorcode(call_scode(call)) : "";
len = re_snprintf(event_buf, sizeof event_buf, "call closed,%s,%s", prm, tone);
break;
@ -1375,7 +1376,13 @@ JNIEXPORT void JNICALL Java_com_tutpro_baresip_Api_calls_1mute(
const struct ua *ua = ua_le->data;
for (call_le = list_head(ua_calls(ua)); call_le != NULL; call_le = call_le->next) {
const struct call *call = call_le->data;
audio_mute(call_audio(call), mute);
struct audio *audio = call_audio(call);
audio_mute(audio, mute);
if (mute)
audio_set_source(audio, "nil", NULL);
else
audio_set_source(audio, conf_config()->audio.src_mod,
conf_config()->audio.src_dev);
}
}
re_thread_leave();
@ -1909,6 +1916,7 @@ JNIEXPORT void JNICALL
Java_com_tutpro_baresip_Api_AAudio_1close_1stream(JNIEnv *env, jobject obj)
{
if (AAudio_stream != NULL) {
AAudioStream_requestStop(AAudio_stream);
AAudioStream_close(AAudio_stream);
AAudio_stream = NULL;
}