Added setting for input audio device + use extended audio devices list for now
This commit is contained in:
parent
d7642dabef
commit
b414dfcbeb
3 changed files with 40 additions and 1 deletions
|
@ -85,6 +85,18 @@ class AudioSettingsViewModel : GenericSettingsViewModel() {
|
||||||
}
|
}
|
||||||
val adaptiveRateControl = MutableLiveData<Boolean>()
|
val adaptiveRateControl = MutableLiveData<Boolean>()
|
||||||
|
|
||||||
|
val inputAudioDeviceListener = object : SettingListenerStub() {
|
||||||
|
override fun onListValueChanged(position: Int) {
|
||||||
|
val values = inputAudioDeviceValues.value.orEmpty()
|
||||||
|
if (values.size > position) {
|
||||||
|
core.defaultInputAudioDevice = values[position]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val inputAudioDeviceIndex = MutableLiveData<Int>()
|
||||||
|
val inputAudioDeviceLabels = MutableLiveData<ArrayList<String>>()
|
||||||
|
private val inputAudioDeviceValues = MutableLiveData<ArrayList<AudioDevice>>()
|
||||||
|
|
||||||
val outputAudioDeviceListener = object : SettingListenerStub() {
|
val outputAudioDeviceListener = object : SettingListenerStub() {
|
||||||
override fun onListValueChanged(position: Int) {
|
override fun onListValueChanged(position: Int) {
|
||||||
val values = outputAudioDeviceValues.value.orEmpty()
|
val values = outputAudioDeviceValues.value.orEmpty()
|
||||||
|
@ -135,6 +147,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)
|
||||||
|
initInputAudioDevicesList()
|
||||||
initOutputAudioDevicesList()
|
initOutputAudioDevicesList()
|
||||||
initCodecBitrateList()
|
initCodecBitrateList()
|
||||||
microphoneGain.value = core.micGainDb
|
microphoneGain.value = core.micGainDb
|
||||||
|
@ -181,10 +194,26 @@ class AudioSettingsViewModel : GenericSettingsViewModel() {
|
||||||
core.stopEchoTester()
|
core.stopEchoTester()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun initInputAudioDevicesList() {
|
||||||
|
val labels = arrayListOf<String>()
|
||||||
|
val values = arrayListOf<AudioDevice>()
|
||||||
|
for (audioDevice in core.extendedAudioDevices) {
|
||||||
|
if (audioDevice.hasCapability(AudioDevice.Capabilities.CapabilityRecord)) {
|
||||||
|
labels.add(audioDevice.id)
|
||||||
|
values.add(audioDevice)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
inputAudioDeviceLabels.value = labels
|
||||||
|
inputAudioDeviceValues.value = values
|
||||||
|
|
||||||
|
val default = core.defaultInputAudioDevice
|
||||||
|
inputAudioDeviceIndex.value = values.indexOf(default)
|
||||||
|
}
|
||||||
|
|
||||||
private fun initOutputAudioDevicesList() {
|
private fun initOutputAudioDevicesList() {
|
||||||
val labels = arrayListOf<String>()
|
val labels = arrayListOf<String>()
|
||||||
val values = arrayListOf<AudioDevice>()
|
val values = arrayListOf<AudioDevice>()
|
||||||
for (audioDevice in core.audioDevices) {
|
for (audioDevice in core.extendedAudioDevices) {
|
||||||
if (audioDevice.hasCapability(AudioDevice.Capabilities.CapabilityPlay)) {
|
if (audioDevice.hasCapability(AudioDevice.Capabilities.CapabilityPlay)) {
|
||||||
labels.add(audioDevice.id)
|
labels.add(audioDevice.id)
|
||||||
values.add(audioDevice)
|
values.add(audioDevice)
|
||||||
|
|
|
@ -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_input_device_title}"
|
||||||
|
linphone:subtitle="@{@string/audio_settings_input_device_summary}"
|
||||||
|
linphone:listener="@{viewModel.inputAudioDeviceListener}"
|
||||||
|
linphone:selectedIndex="@{viewModel.inputAudioDeviceIndex}"
|
||||||
|
linphone:labels="@{viewModel.inputAudioDeviceLabels}"/>
|
||||||
|
|
||||||
<include
|
<include
|
||||||
layout="@layout/settings_widget_list"
|
layout="@layout/settings_widget_list"
|
||||||
linphone:title="@{@string/audio_settings_output_device_title}"
|
linphone:title="@{@string/audio_settings_output_device_title}"
|
||||||
|
|
|
@ -297,6 +297,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_input_device_title">Default input audio device</string>
|
||||||
|
<string name="audio_settings_input_device_summary">Changes will take effect starting next call</string>
|
||||||
<string name="audio_settings_output_device_title">Default output audio device</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_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>
|
||||||
|
|
Loading…
Reference in a new issue