#ifndef MODULES_AUDIO_PROCESSING_AGC_LEGACY_DIGITAL_AGC_H_
#define MODULES_AUDIO_PROCESSING_AGC_LEGACY_DIGITAL_AGC_H_
#include "common_audio/signal_processing/include/signal_processing_library.h"
namespace webrtc {
AgcVad;
DigitalAgc;
int32_t WebRtcAgc_InitDigital(DigitalAgc* digitalAgcInst, int16_t agcMode);
int32_t WebRtcAgc_ComputeDigitalGains(DigitalAgc* digitalAgcInst,
const int16_t* const* inNear,
size_t num_bands,
uint32_t FS,
int16_t lowLevelSignal,
int32_t gains[11]);
int32_t WebRtcAgc_ApplyDigitalGains(const int32_t gains[11],
size_t num_bands,
uint32_t FS,
const int16_t* const* in_near,
int16_t* const* out);
int32_t WebRtcAgc_AddFarendToDigital(DigitalAgc* digitalAgcInst,
const int16_t* inFar,
size_t nrSamples);
void WebRtcAgc_InitVad(AgcVad* vadInst);
int16_t WebRtcAgc_ProcessVad(AgcVad* vadInst,
const int16_t* in,
size_t nrSamples);
int32_t WebRtcAgc_CalculateGainTable(int32_t* gainTable,
int16_t compressionGaindB,
int16_t targetLevelDbfs,
uint8_t limiterEnable,
int16_t analogTarget);
}
#endif