| // Copyright 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef MEDIA_AUDIO_AUDIO_SOURCE_PARAMETERS_H_ |
| #define MEDIA_AUDIO_AUDIO_SOURCE_PARAMETERS_H_ |
| |
| #include "base/unguessable_token.h" |
| #include "media/base/audio_processing.h" |
| #include "media/base/media_export.h" |
| #include "third_party/abseil-cpp/absl/types/optional.h" |
| |
| namespace media { |
| |
| // The set of parameters used to create an AudioInputDevice. |
| // If |session_id| is nonzero, it is used by the browser |
| // to select the correct input device ID. If |session_id| is zero, the default |
| // input device will be selected. This is the state when default constructed. |
| struct MEDIA_EXPORT AudioSourceParameters final { |
| AudioSourceParameters(); |
| explicit AudioSourceParameters(const base::UnguessableToken& session_id); |
| AudioSourceParameters(const AudioSourceParameters& params); |
| ~AudioSourceParameters(); |
| |
| base::UnguessableToken session_id; |
| |
| struct MEDIA_EXPORT ProcessingConfig { |
| ProcessingConfig(base::UnguessableToken id, |
| AudioProcessingSettings settings); |
| base::UnguessableToken id; |
| AudioProcessingSettings settings; |
| }; |
| |
| absl::optional<ProcessingConfig> processing; |
| }; |
| |
| } // namespace media |
| |
| #endif // MEDIA_AUDIO_AUDIO_SOURCE_PARAMETERS_H_ |