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

39 lines
1.3 KiB
C

#ifndef SPECTRUMSHOW_API_H
#define SPECTRUMSHOW_API_H
#include "effects/AudioEffect_DataType.h"
#ifdef WIN32
#define AT_SPECTRUMSHOW(x)
#define AT_SPECTRUMSHOW_CODE
#define AT_SPECTRUMSHOW_CONST
#define AT_SPECTRUMSHOW_SPARSE_CODE
#define AT_SPECTRUMSHOW_SPARSE_CONST
#else
#define AT_SPECTRUMSHOW(x) __attribute__((section(#x)))
#define AT_SPECTRUMSHOW_CODE AT_SPECTRUMSHOW(.specshow.text.cache.L1)
#define AT_SPECTRUMSHOW_CONST AT_SPECTRUMSHOW(.specshow.text.cache.L2.const)
#define AT_SPECTRUMSHOW_SPARSE_CODE AT_SPECTRUMSHOW(.specshow.text)
#define AT_SPECTRUMSHOW_SPARSE_CONST AT_SPECTRUMSHOW(.specshow.text.const)
#endif
typedef struct _SpectrumShowParam {
float attackFactor;//下降因子[0,1)
float releaseFactor;//上升因子[0,1) */
int SampleRate;
int channel;
int mode;//模式,双声道起作用,0 计算的是第一声道的频谱值,//1计算的是第二声道频谱值,2为第一声道与第二声道相加除2的频谱值
af_DataType pcm_info;
} SpectrumShowParam;
int getSpectrumShowBuf();
int SpectrumShowInit(void *workBuf, SpectrumShowParam *param);
int SpectrumShowRun(void *workBuf, short *in, int len);
int getSpectrumNum(void *workBuf);
float *getCentreFreq(void *workBuf);
short *getSpectrumValue(void *workBuf);
#endif // !SPECTRUMSHOW_API_H