1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| typedef struct
{
float * tab;
uint32_t size;
uint32_t wrptr;
uint32_t rdptr;
float n;
float acc;
float mean;
}fir_mov_avrg_t;
fir_mov_avrg_t * new_fir_mov_avrg(const uint32_t size)
{
fir_mov_avrg_t * this = malloc(sizeof(this));
if(this)
{
memset(this,0,sizeof(*this));
if((this->tab = calloc(size,sizeof(*(this->tab)))))
{
this->size = size;
}
else
{
destroy_fir_mov_avrg(&this);
}
}
return this;
}/* end new_fir_mov_avrg*/
void destroy_fir_mov_avrg(fir_mov_avrg_t ** const pthis)
{
if(pthis && *pthis)
{
fir_mov_avrg_t * this = *pthis;
if(this->tab){free(this->tab);}
free(this);
*pthis = NULL;
}
}/* end destroy_fir_mov_avrg*/ |