OpenTera WebRTC API (C++) 1.2.5
AudioSourceConfiguration.h
1 #ifndef OPENTERA_WEBRTC_NATIVE_CLIENT_CONFIGURATIONS_AUDIO_SOURCE_CONFIGURATION_H
2 #define OPENTERA_WEBRTC_NATIVE_CLIENT_CONFIGURATIONS_AUDIO_SOURCE_CONFIGURATION_H
3 
4 #include <api/audio_options.h>
5 #include <modules/audio_processing/include/audio_processing.h>
6 
7 namespace opentera
8 {
13  {
14  uint32_t m_soundCardTotalDelayMs;
15  absl::optional<bool> m_echoCancellation;
16  absl::optional<bool> m_autoGainControl;
17  absl::optional<bool> m_noiseSuppression;
18  absl::optional<bool> m_highpassFilter;
19  absl::optional<bool> m_stereoSwapping;
20  absl::optional<bool> m_transientSuppression;
21 
23  uint32_t soundCardTotalDelayMs,
24  absl::optional<bool> echoCancellation,
25  absl::optional<bool> autoGainControl,
26  absl::optional<bool> noiseSuppression,
27  absl::optional<bool> highpassFilter,
28  absl::optional<bool> stereoSwapping,
29  absl::optional<bool> transientSuppression);
30 
31  public:
32  AudioSourceConfiguration(const AudioSourceConfiguration& other) = default;
34  virtual ~AudioSourceConfiguration() = default;
35 
38  uint32_t soundCardTotalDelayMs,
39  absl::optional<bool> echoCancellation,
40  absl::optional<bool> autoGainControl,
41  absl::optional<bool> noiseSuppression,
42  absl::optional<bool> highpassFilter,
43  absl::optional<bool> stereoSwapping,
44  absl::optional<bool> transientSuppression);
45 
46  [[nodiscard]] uint32_t soundCardTotalDelayMs() const;
47  [[nodiscard]] absl::optional<bool> echoCancellation() const;
48  [[nodiscard]] absl::optional<bool> autoGainControl() const;
49  [[nodiscard]] absl::optional<bool> noiseSuppression() const;
50  [[nodiscard]] absl::optional<bool> highpassFilter() const;
51  [[nodiscard]] absl::optional<bool> stereoSwapping() const;
52  [[nodiscard]] absl::optional<bool> transientSuppression() const;
53 
54  explicit operator cricket::AudioOptions() const;
55  explicit operator webrtc::AudioProcessing::Config() const;
56 
57  AudioSourceConfiguration& operator=(const AudioSourceConfiguration& other) = default;
58  AudioSourceConfiguration& operator=(AudioSourceConfiguration&& other) = default;
59  };
60 
66  inline AudioSourceConfiguration AudioSourceConfiguration::create(uint32_t soundCardTotalDelayMs)
67  {
68  return {
70  absl::nullopt,
71  absl::nullopt,
72  absl::nullopt,
73  absl::nullopt,
74  absl::nullopt,
75  absl::nullopt};
76  }
77 
91  uint32_t soundCardTotalDelayMs,
92  absl::optional<bool> echoCancellation,
93  absl::optional<bool> autoGainControl,
94  absl::optional<bool> noiseSuppression,
95  absl::optional<bool> highpassFilter,
96  absl::optional<bool> stereoSwapping,
97  absl::optional<bool> transientSuppression)
98  {
99  return {
107  }
108 
113  inline uint32_t AudioSourceConfiguration::soundCardTotalDelayMs() const { return m_soundCardTotalDelayMs; }
114 
119  inline absl::optional<bool> AudioSourceConfiguration::echoCancellation() const { return m_echoCancellation; }
120 
125  inline absl::optional<bool> AudioSourceConfiguration::autoGainControl() const { return m_autoGainControl; }
126 
131  inline absl::optional<bool> AudioSourceConfiguration::noiseSuppression() const { return m_noiseSuppression; }
132 
137  inline absl::optional<bool> AudioSourceConfiguration::highpassFilter() const { return m_highpassFilter; }
138 
143  inline absl::optional<bool> AudioSourceConfiguration::stereoSwapping() const { return m_stereoSwapping; }
144 
149  inline absl::optional<bool> AudioSourceConfiguration::transientSuppression() const
150  {
151  return m_transientSuppression;
152  }
153 }
154 
155 #endif
Represents a configuration of an audio source that can be added to a WebRTC call.
Definition: AudioSourceConfiguration.h:13
uint32_t soundCardTotalDelayMs() const
Returns the sum of the playback and recording delays.
Definition: AudioSourceConfiguration.h:113
absl::optional< bool > noiseSuppression() const
Indicates if the noise suppression is enabled.
Definition: AudioSourceConfiguration.h:131
static AudioSourceConfiguration create(uint32_t soundCardTotalDelayMs)
Creates an audio source configuration with default values.
Definition: AudioSourceConfiguration.h:66
absl::optional< bool > stereoSwapping() const
Indicates if the stereo swapping is enabled.
Definition: AudioSourceConfiguration.h:143
absl::optional< bool > autoGainControl() const
Indicates if the auto gain control is enabled.
Definition: AudioSourceConfiguration.h:125
absl::optional< bool > transientSuppression() const
Indicates if the transient suppression is enabled.
Definition: AudioSourceConfiguration.h:149
absl::optional< bool > highpassFilter() const
Indicates if the highpass filter is enabled.
Definition: AudioSourceConfiguration.h:137
absl::optional< bool > echoCancellation() const
Indicates if the echo cancellation is enabled.
Definition: AudioSourceConfiguration.h:119