void dumb_reset_resampler_n(int n, DUMB_RESAMPLER *resampler, void *src, int src_channels, long pos, long start, long end, int quality) { if (n == 8) dumb_reset_resampler_8(resampler, src, src_channels, pos, start, end, quality); else if (n == 16) dumb_reset_resampler_16(resampler, src, src_channels, pos, start, end, quality); else dumb_reset_resampler(resampler, src, src_channels, pos, start, end, quality); }
static sigrenderer_t *sample_start_sigrenderer(DUH *duh, sigdata_t *data, int n_channels, long pos) { SAMPLE_SIGDATA *sigdata = data; SAMPLE_SIGRENDERER *sigrenderer; (void)duh; sigrenderer = malloc(sizeof(*sigrenderer)); if (!sigrenderer) return NULL; sigrenderer->sigdata = data; sigrenderer->n_channels = n_channels; dumb_reset_resampler(&sigrenderer->r, sigdata->samples, pos, 0, sigdata->size); sigrenderer->r.pickup = &sample_pickup; sigrenderer->r.pickup_data = sigrenderer; sigrenderer->n_loops = 0; return sigrenderer; }