Index: webrtc/modules/audio_processing/agc/agc_manager_direct.h |
diff --git a/webrtc/modules/audio_processing/agc/agc_manager_direct.h b/webrtc/modules/audio_processing/agc/agc_manager_direct.h |
index fae1248b195d0c1a586ae5090fadc6cf2b9b76ec..6edb0f7bf137b22b81e4cdcda76d4da083afaa58 100644 |
--- a/webrtc/modules/audio_processing/agc/agc_manager_direct.h |
+++ b/webrtc/modules/audio_processing/agc/agc_manager_direct.h |
@@ -21,9 +21,9 @@ class DebugFile; |
class GainControl; |
// Callbacks that need to be injected into AgcManagerDirect to read and control |
-// the volume values. They have different behavior if they are called from |
-// AgcManager or AudioProcessing. This is done to remove the VoiceEngine |
-// dependency in AgcManagerDirect. |
+// the volume values. This is done to remove the VoiceEngine dependency in |
+// AgcManagerDirect. |
+// TODO(aluebs): Remove VolumeCallbacks. |
class VolumeCallbacks { |
public: |
virtual ~VolumeCallbacks() {} |
@@ -33,11 +33,10 @@ class VolumeCallbacks { |
// Direct interface to use AGC to set volume and compression values. |
// AudioProcessing uses this interface directly to integrate the callback-less |
-// AGC. AgcManager delegates most of its calls here. See agc_manager.h for |
-// undocumented methods. |
+// AGC. |
// |
// This class is not thread-safe. |
-class AgcManagerDirect { |
+class AgcManagerDirect final { |
public: |
// AgcManagerDirect will configure GainControl internally. The user is |
// responsible for processing the audio using it after the call to Process. |
@@ -60,6 +59,15 @@ class AgcManagerDirect { |
size_t samples_per_channel); |
void Process(const int16_t* audio, size_t length, int sample_rate_hz); |
+ // Call when the capture stream has been muted/unmuted. This causes the |
+ // manager to disregard all incoming audio; chances are good it's background |
+ // noise to which we'd like to avoid adapting. |
+ void SetCaptureMuted(bool muted); |
+ bool capture_muted() { return capture_muted_; } |
+ |
+ float voice_probability(); |
+ |
+ private: |
// Sets a new microphone level, after first checking that it hasn't been |
// updated by the user, in which case no action is taken. |
void SetLevel(int new_level); |
@@ -69,12 +77,6 @@ class AgcManagerDirect { |
// |kClippedLevelMin|. |
void SetMaxLevel(int level); |
- void SetCaptureMuted(bool muted); |
- bool capture_muted() { return capture_muted_; } |
- |
- float voice_probability(); |
- |
- private: |
int CheckVolumeAndReset(); |
void UpdateGain(); |
void UpdateCompressor(); |
@@ -97,6 +99,8 @@ class AgcManagerDirect { |
rtc::scoped_ptr<DebugFile> file_preproc_; |
rtc::scoped_ptr<DebugFile> file_postproc_; |
+ |
+ RTC_DISALLOW_COPY_AND_ASSIGN(AgcManagerDirect); |
}; |
} // namespace webrtc |