1 // Copyright 2022 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "media/mojo/mojom/audio_processing_mojom_traits.h"
9 // Deserializes has_field and field into a absl::optional.
10 #define DESERIALIZE_INTO_OPT(field) \
11 if (input.has_##field()) \
12 out_stats->field = input.field()
16 bool StructTraits<media::mojom::AudioProcessingStatsDataView,
17 media::AudioProcessingStats>::
18 Read(media::mojom::AudioProcessingStatsDataView input,
19 media::AudioProcessingStats* out_stats) {
20 DESERIALIZE_INTO_OPT(echo_return_loss);
21 DESERIALIZE_INTO_OPT(echo_return_loss_enhancement);
26 bool StructTraits<media::mojom::AudioProcessingSettingsDataView,
27 media::AudioProcessingSettings>::
28 Read(media::mojom::AudioProcessingSettingsDataView input,
29 media::AudioProcessingSettings* out_settings) {
30 *out_settings = media::AudioProcessingSettings();
31 out_settings->echo_cancellation = input.echo_cancellation();
32 out_settings->noise_suppression = input.noise_suppression();
33 out_settings->transient_noise_suppression =
34 input.transient_noise_suppression();
35 out_settings->automatic_gain_control = input.automatic_gain_control();
36 out_settings->high_pass_filter = input.high_pass_filter();
37 out_settings->multi_channel_capture_processing =
38 input.multi_channel_capture_processing();
39 out_settings->stereo_mirroring = input.stereo_mirroring();
40 out_settings->force_apm_creation = input.force_apm_creation();