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 org.linphone.R
|
||||
import org.linphone.activities.main.settings.SettingListenerStub
|
||||
import org.linphone.core.AudioDevice
|
||||
import org.linphone.core.Core
|
||||
import org.linphone.core.CoreListenerStub
|
||||
import org.linphone.core.EcCalibratorStatus
|
||||
|
@ -84,6 +85,18 @@ class AudioSettingsViewModel : GenericSettingsViewModel() {
|
|||
}
|
||||
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() {
|
||||
override fun onListValueChanged(position: Int) {
|
||||
for (payloadType in core.audioPayloadTypes) {
|
||||
|
@ -122,6 +135,7 @@ class AudioSettingsViewModel : GenericSettingsViewModel() {
|
|||
prefs.getString(R.string.audio_settings_echo_canceller_calibration_summary)
|
||||
}
|
||||
echoTesterStatus.value = prefs.getString(R.string.audio_settings_echo_tester_summary)
|
||||
initOutputAudioDevicesList()
|
||||
initCodecBitrateList()
|
||||
microphoneGain.value = core.micGainDb
|
||||
playbackGain.value = core.playbackGainDb
|
||||
|
@ -167,6 +181,22 @@ class AudioSettingsViewModel : GenericSettingsViewModel() {
|
|||
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() {
|
||||
val labels = arrayListOf<String>()
|
||||
for (value in codecBitrateValues) {
|
||||
|
|
|
@ -91,6 +91,14 @@
|
|||
linphone:listener="@{viewModel.adaptiveRateControlListener}"
|
||||
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
|
||||
layout="@layout/settings_widget_list"
|
||||
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_adaptive_rate_control_title">Adaptive rate control</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_summary"></string>
|
||||
<string name="audio_settings_microphone_gain_title">Microphone gain</string>
|
||||
|
|
Loading…
Reference in a new issue