24 lines
759 B
C
24 lines
759 B
C
#include "../libfilter/iir_filter.h"
|
|
|
|
typedef struct samplerate {
|
|
double factor;
|
|
double filter_cutoff;
|
|
struct {
|
|
iir_filter_t lp;
|
|
sample_t last_sample;
|
|
double in_index;
|
|
} down;
|
|
struct {
|
|
iir_filter_t lp;
|
|
sample_t current_sample;
|
|
sample_t last_sample;
|
|
double in_index;
|
|
} up;
|
|
} samplerate_t;
|
|
|
|
int init_samplerate(samplerate_t *state, double low_samplerate, double high_samplerate, double filter_cutoff);
|
|
int samplerate_downsample(samplerate_t *state, sample_t *samples, int input_num);
|
|
int samplerate_upsample_input_num(samplerate_t *state, int output_num);
|
|
int samplerate_upsample_output_num(samplerate_t *state, int input_num);
|
|
void samplerate_upsample(samplerate_t *state, sample_t *input, int input_num, sample_t *output, int output_num);
|