From 4cb83acddbe154312b74d2d63985ac1100bad7c5 Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Mon, 28 Nov 2022 20:16:46 +0100 Subject: Initial --- lib/resample_s16func.cpp | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 lib/resample_s16func.cpp (limited to 'lib/resample_s16func.cpp') diff --git a/lib/resample_s16func.cpp b/lib/resample_s16func.cpp new file mode 100644 index 0000000..07c086e --- /dev/null +++ b/lib/resample_s16func.cpp @@ -0,0 +1,51 @@ +/* Copyright 2012 Dietrich Epp */ +#include "defs.h" +#include "filter.h" +#include "resample.h" +#include "resample_func.h" + +namespace { + template + void helper(lfr_fixed_t* pos, lfr_fixed_t inv_ratio, unsigned* dither, void* out, int outlen, const void* in, int inlen, const lfr_filter* filter) + { + return func(*pos, inv_ratio, *dither, out, outlen, in, inlen, *filter); + } +} + +lfr_resample_func_t +lfr_resample_s16func(int nchan, const struct lfr_filter *filter) +{ + const auto ftype = filter->type; + switch (nchan) { + case 1: + switch (ftype) { + case LFR_FTYPE_S16: + return helper>; + + case LFR_FTYPE_F32: + return helper>; + + default: + break; + } + break; + + case 2: + switch (ftype) { + case LFR_FTYPE_S16: + return helper>; + + case LFR_FTYPE_F32: + return helper>; + + default: + break; + } + break; + + default: + break; + } + + return NULL; +} -- cgit v1.2.3-54-g00ecf