UHSDR/UHSDR-active-devel/mchf-eclipse/drivers/audio/audio_agc.h
2022-11-08 16:13:55 +01:00

47 lines
1.7 KiB
C

/* -*- mode: c; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4; coding: utf-8 -*- */
/************************************************************************************
** **
** UHSDR **
** a powerful firmware for STM32 based SDR transceivers **
** **
**--------------------------------------------------------------------------------**
** **
** Description: Code for automatic gain control based on the WDSP Lib **
** Licence: GNU GPLv3 **
************************************************************************************/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __AUDIO_AGC_H
#define __AUDIO_AGC_H
#include "uhsdr_board_config.h"
#include "uhsdr_types.h"
// these are the control parameter
// for external runtime configuration
// of the AGC
typedef struct
{
uint8_t mode;
uint8_t slope;
uint8_t hang_enable;
int thresh;
int hang_thresh;
int hang_time;
uint8_t action;
uint8_t switch_mode;
uint8_t hang_action;
int tau_decay[6];
int tau_hang_decay;
} agc_wdsp_params_t;
extern agc_wdsp_params_t agc_wdsp_conf;
void AudioAgc_RunAgcWdsp(int16_t blockSize, float32_t (*agcbuffer)[AUDIO_BLOCK_SIZE], const bool use_stereo );
void AudioAgc_SetupAgcWdsp(float32_t sample_rate, bool remove_dc);
void AudioAgc_AgcWdsp_Init(void);
#endif