Add config of audio device
Use audioConfig{bool useMicrophone, bool useSpeaker} to configure the
audio device.
Bug: 325930215
Test: play and capture sound on a Pixel device
Test: arecord -D hw:0,0 -f dat /tmp/tmp
Test: aplay -D hw:0,0 -f dat /tmp/tmp
Change-Id: I2949e48abd9a9226007e069a5141813021557977
diff --git a/virtualizationmanager/src/aidl.rs b/virtualizationmanager/src/aidl.rs
index 10dafdf..671a012 100644
--- a/virtualizationmanager/src/aidl.rs
+++ b/virtualizationmanager/src/aidl.rs
@@ -17,7 +17,7 @@
use crate::{get_calling_pid, get_calling_uid, get_this_pid};
use crate::atom::{write_vm_booted_stats, write_vm_creation_stats};
use crate::composite::make_composite_image;
-use crate::crosvm::{CrosvmConfig, DiskFile, DisplayConfig, GpuConfig, InputDeviceOption, PayloadState, VmContext, VmInstance, VmState};
+use crate::crosvm::{AudioConfig, CrosvmConfig, DiskFile, DisplayConfig, GpuConfig, InputDeviceOption, PayloadState, VmContext, VmInstance, VmState};
use crate::debug_config::DebugConfig;
use crate::dt_overlay::{create_device_tree_overlay, VM_DT_OVERLAY_MAX_SIZE, VM_DT_OVERLAY_PATH};
use crate::payload::{add_microdroid_payload_images, add_microdroid_system_images, add_microdroid_vendor_image};
@@ -578,8 +578,12 @@
} else {
None
};
- let virtio_snd_backend =
- if cfg!(paravirtualized_devices) { Some(String::from("aaudio")) } else { None };
+
+ let audio_config = if cfg!(paravirtualized_devices) {
+ config.audioConfig.as_ref().map(AudioConfig::new)
+ } else {
+ None
+ };
// Actually start the VM.
let crosvm_config = CrosvmConfig {
@@ -610,10 +614,10 @@
input_device_options,
hugepages: config.hugePages,
tap,
- virtio_snd_backend,
console_input_device: config.consoleInputDevice.clone(),
boost_uclamp: config.boostUclamp,
gpu_config,
+ audio_config,
};
let instance = Arc::new(
VmInstance::new(