Added default output audio device setting
This commit is contained in:
parent
2dfbdd8958
commit
57e00931fc
3 changed files with 40 additions and 0 deletions
|
@ -23,6 +23,7 @@ import androidx.databinding.ViewDataBinding
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import org.linphone.R
|
import org.linphone.R
|
||||||
import org.linphone.activities.main.settings.SettingListenerStub
|
import org.linphone.activities.main.settings.SettingListenerStub
|
||||||
|
import org.linphone.core.AudioDevice
|
||||||
import org.linphone.core.Core
|
import org.linphone.core.Core
|
||||||
import org.linphone.core.CoreListenerStub
|
import org.linphone.core.CoreListenerStub
|
||||||
import org.linphone.core.EcCalibratorStatus
|
import org.linphone.core.EcCalibratorStatus
|
||||||
|
@ -84,6 +85,18 @@ class AudioSettingsViewModel : GenericSettingsViewModel() {
|
||||||
}
|
}
|
||||||
val adaptiveRateControl = MutableLiveData<Boolean>()
|
val adaptiveRateControl = MutableLiveData<Boolean>()
|
||||||
|
|
||||||
|
val outputAudioDeviceListener = object : SettingListenerStub() {
|
||||||
|
override fun onListValueChanged(position: Int) {
|
||||||
|
val values = outputAudioDeviceValues.value.orEmpty()
|
||||||
|
if (values.size > position) {
|
||||||
|
core.defaultOutputAudioDevice = values[position]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val outputAudioDeviceIndex = MutableLiveData<Int>()
|
||||||
|
val outputAudioDeviceLabels = MutableLiveData<ArrayList<String>>()
|
||||||
|
private val outputAudioDeviceValues = MutableLiveData<ArrayList<AudioDevice>>()
|
||||||
|
|
||||||
val codecBitrateListener = object : SettingListenerStub() {
|
val codecBitrateListener = object : SettingListenerStub() {
|
||||||
override fun onListValueChanged(position: Int) {
|
override fun onListValueChanged(position: Int) {
|
||||||
for (payloadType in core.audioPayloadTypes) {
|
for (payloadType in core.audioPayloadTypes) {
|
||||||
|
@ -122,6 +135,7 @@ class AudioSettingsViewModel : GenericSettingsViewModel() {
|
||||||
prefs.getString(R.string.audio_settings_echo_canceller_calibration_summary)
|
prefs.getString(R.string.audio_settings_echo_canceller_calibration_summary)
|
||||||
}
|
}
|
||||||
echoTesterStatus.value = prefs.getString(R.string.audio_settings_echo_tester_summary)
|
echoTesterStatus.value = prefs.getString(R.string.audio_settings_echo_tester_summary)
|
||||||
|
initOutputAudioDevicesList()
|
||||||
initCodecBitrateList()
|
initCodecBitrateList()
|
||||||
microphoneGain.value = core.micGainDb
|
microphoneGain.value = core.micGainDb
|
||||||
playbackGain.value = core.playbackGainDb
|
playbackGain.value = core.playbackGainDb
|
||||||
|
@ -167,6 +181,22 @@ class AudioSettingsViewModel : GenericSettingsViewModel() {
|
||||||
core.stopEchoTester()
|
core.stopEchoTester()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun initOutputAudioDevicesList() {
|
||||||
|
val labels = arrayListOf<String>()
|
||||||
|
val values = arrayListOf<AudioDevice>()
|
||||||
|
for (audioDevice in core.audioDevices) {
|
||||||
|
if (audioDevice.hasCapability(AudioDevice.Capabilities.CapabilityPlay)) {
|
||||||
|
labels.add(audioDevice.id)
|
||||||
|
values.add(audioDevice)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
outputAudioDeviceLabels.value = labels
|
||||||
|
outputAudioDeviceValues.value = values
|
||||||
|
|
||||||
|
val default = core.defaultOutputAudioDevice
|
||||||
|
outputAudioDeviceIndex.value = values.indexOf(default)
|
||||||
|
}
|
||||||
|
|
||||||
private fun initCodecBitrateList() {
|
private fun initCodecBitrateList() {
|
||||||
val labels = arrayListOf<String>()
|
val labels = arrayListOf<String>()
|
||||||
for (value in codecBitrateValues) {
|
for (value in codecBitrateValues) {
|
||||||
|
|
|
@ -91,6 +91,14 @@
|
||||||
linphone:listener="@{viewModel.adaptiveRateControlListener}"
|
linphone:listener="@{viewModel.adaptiveRateControlListener}"
|
||||||
linphone:checked="@={viewModel.adaptiveRateControl}"/>
|
linphone:checked="@={viewModel.adaptiveRateControl}"/>
|
||||||
|
|
||||||
|
<include
|
||||||
|
layout="@layout/settings_widget_list"
|
||||||
|
linphone:title="@{@string/audio_settings_output_device_title}"
|
||||||
|
linphone:subtitle="@{@string/audio_settings_output_device_summary}"
|
||||||
|
linphone:listener="@{viewModel.outputAudioDeviceListener}"
|
||||||
|
linphone:selectedIndex="@{viewModel.outputAudioDeviceIndex}"
|
||||||
|
linphone:labels="@{viewModel.outputAudioDeviceLabels}"/>
|
||||||
|
|
||||||
<include
|
<include
|
||||||
layout="@layout/settings_widget_list"
|
layout="@layout/settings_widget_list"
|
||||||
linphone:title="@{@string/audio_settings_codec_bitrate_title}"
|
linphone:title="@{@string/audio_settings_codec_bitrate_title}"
|
||||||
|
|
|
@ -282,6 +282,8 @@
|
||||||
<string name="audio_settings_echo_tester_summary_is_running">Echo tester is running</string>
|
<string name="audio_settings_echo_tester_summary_is_running">Echo tester is running</string>
|
||||||
<string name="audio_settings_adaptive_rate_control_title">Adaptive rate control</string>
|
<string name="audio_settings_adaptive_rate_control_title">Adaptive rate control</string>
|
||||||
<string name="audio_settings_adaptive_rate_control_summary"></string>
|
<string name="audio_settings_adaptive_rate_control_summary"></string>
|
||||||
|
<string name="audio_settings_output_device_title">Default output audio device</string>
|
||||||
|
<string name="audio_settings_output_device_summary">Changes will take effect starting next call</string>
|
||||||
<string name="audio_settings_codec_bitrate_title">Codec bitrate limit</string>
|
<string name="audio_settings_codec_bitrate_title">Codec bitrate limit</string>
|
||||||
<string name="audio_settings_codec_bitrate_summary"></string>
|
<string name="audio_settings_codec_bitrate_summary"></string>
|
||||||
<string name="audio_settings_microphone_gain_title">Microphone gain</string>
|
<string name="audio_settings_microphone_gain_title">Microphone gain</string>
|
||||||
|
|
Loading…
Reference in a new issue