32#ifndef __OPENPDMFILTER_H
33#define __OPENPDMFILTER_H
55#define DECIMATION_MAX 128
57#define FILTER_GAIN Param->Gain
62#define HTONS(A) ((((uint16_t)(A) & 0xff00) >> 8) | \
63 (((uint16_t)(A) & 0x00ff) << 8))
64#define RoundDiv(a, b) (((a)>0)?(((a)+(b)/2)/(b)):(((a)-(b)/2)/(b)))
65#define SaturaLH(N, L, H) (((N)<(L))?(L):(((N)>(H))?(H):(N)))
75 uint8_t In_MicChannels;
76 uint8_t Out_MicChannels;
85 int64_t OldOut, OldIn, OldZ;
90} TPDMFilter_InitStruct;
95void Open_PDM_Filter_Init(TPDMFilter_InitStruct *init_struct);
96void Open_PDM_Filter_64(uint8_t* data, uint16_t* data_out, uint16_t mic_gain, TPDMFilter_InitStruct *init_struct);
97void Open_PDM_Filter_128(uint8_t* data, uint16_t* data_out, uint16_t mic_gain, TPDMFilter_InitStruct *init_struct);