Files
2025-12-03 11:12:34 +08:00

39 lines
1.2 KiB
C

#ifndef __NOTCH_HOWLING_API_H
#define __NOTCH_HOWLING_API_H
#include "effects/AudioEffect_DataType.h"
#ifdef WIN32
#define AT_NOTCHHOWLING(x)
#define AT_NOTCHHOWLING_CODE
#define AT_NOTCHHOWLING_CONST
#define AT_NOTCHHOWLING_SPARSE_CODE
#define AT_NOTCHHOWLING_SPARSE_CONST
#else
#define AT_NOTCHHOWLING(x) __attribute__((section(#x)))
#define AT_NOTCHHOWLING_CODE AT_NOTCHHOWLING(.notchhowling.text.cache.L2.code)
#define AT_NOTCHHOWLING_CONST AT_NOTCHHOWLING(.notchhowling.text.cache.L2.const)
#define AT_NOTCHHOWLING_SPARSE_CODE AT_NOTCHHOWLING(.notchhowling.text)
#define AT_NOTCHHOWLING_SPARSE_CONST AT_NOTCHHOWLING(.notchhowling.text.const)
#endif
typedef struct _NotchHowlingParam {
int fade_time;
float notch_gain;
float notch_Q;
float threshold;
int SampleRate;
af_DataType pcm_info;
} NotchHowlingParam;
int get_howling_buf(NotchHowlingParam *param);
int howling_init(void *workbuf, NotchHowlingParam *param);
int howling_run(void *workbuf, short *in, short *out, int len);
void SetHowlingDetection(void *workbuf, int OnlyDetection);
float *getHowlingFreq(void *workbuf, int *num);
#endif // !NOTCH_HOWLING_API_H