File Resampler_core.h¶
File List > doppler > Resampler > Resampler_core.h
Go to the documentation of this file
#ifndef DP_RESAMPLER_CORE_H
#define DP_RESAMPLER_CORE_H
#include <stdint.h>
#include "doppler/resamp/resamp_core.h"
#ifdef __cplusplus
extern "C"
{
#endif
typedef resamp_state_t dp_Resampler_state_t;
/* Maximum output samples per call (pre-allocated by ext.c at init). */
#define RESAMPLER_MAX_OUT 65536
/* ------------------------------------------------------------------ */
/* Lifecycle */
/* ------------------------------------------------------------------ */
dp_Resampler_state_t *dp_Resampler_create (double rate);
dp_Resampler_state_t *dp_Resampler_create_custom (size_t num_phases,
size_t num_taps,
const float *bank,
double rate);
void dp_Resampler_destroy (dp_Resampler_state_t *state);
void dp_Resampler_reset (dp_Resampler_state_t *state);
size_t dp_Resampler_state_bytes (const dp_Resampler_state_t *state);
void dp_Resampler_get_state (const dp_Resampler_state_t *state, void *blob);
int dp_Resampler_set_state (dp_Resampler_state_t *state, const void *blob);
/* ------------------------------------------------------------------ */
/* Execute */
/* ------------------------------------------------------------------ */
size_t dp_Resampler_execute_max_out (dp_Resampler_state_t *state);
size_t dp_Resampler_execute (dp_Resampler_state_t *state, const float _Complex *x,
size_t x_len, float _Complex *out,
size_t max_out);
size_t dp_Resampler_execute_ctrl_max_out (dp_Resampler_state_t *state);
int64_t dp_Resampler_execute_ctrl (dp_Resampler_state_t *state,
const float _Complex *x, size_t x_len,
const double *ctrl, size_t ctrl_len,
float _Complex *out, size_t max_out);
/* ------------------------------------------------------------------ */
/* Properties */
/* ------------------------------------------------------------------ */
double dp_Resampler_get_rate (const dp_Resampler_state_t *state);
void dp_Resampler_set_rate (dp_Resampler_state_t *state, double rate);
double dp_Resampler_get_ctrl_acc (const dp_Resampler_state_t *state);
size_t dp_Resampler_get_num_phases (const dp_Resampler_state_t *state);
size_t dp_Resampler_get_num_taps (const dp_Resampler_state_t *state);
double dp_Resampler_get_delay (const dp_Resampler_state_t *state);
#ifdef __cplusplus
}
#endif
#endif /* RESAMPLER_CORE_H */