38template<u
int16_t MaxFrames = 48>
50 uint16_t
begin(uint16_t requested) {
51 uint16_t n = (requested > MaxFrames) ? MaxFrames : requested;
52 for (uint16_t i = 0; i < n; ++i) {
66 void end(int32_t* tx, uint16_t n)
const {
76 void scale(
float gain, uint16_t n) {
77 for (uint16_t i = 0; i < n; ++i) {
90 void apply(
const float* mod, uint16_t n) {
91 for (uint16_t i = 0; i < n; ++i) {
105 void mix_mono(
const float* src,
float gain, uint16_t n) {
106 for (uint16_t i = 0; i < n; ++i) {
107 float s = src[i] * gain;
118 void mix(
const Frame& other,
float gain, uint16_t n) {
119 for (uint16_t i = 0; i < n; ++i) {
131 void mix_stereo(
const float* src_l,
const float* src_r,
float gain,
133 for (uint16_t i = 0; i < n; ++i) {
134 left[i] += src_l[i] * gain;
135 right[i] += src_r[i] * gain;
148 void tap(
float* dst_l,
float* dst_r, uint16_t n)
const {
149 for (uint16_t i = 0; i < n; ++i) {
159 for (uint16_t i = 0; i < n; ++i) {
void interleave_from_float(const float *left, const float *right, int32_t *interleaved, uint16_t frames)
void mix_stereo(const float *src_l, const float *src_r, float gain, uint16_t n)
uint16_t begin(uint16_t requested)
void mix_mono(const float *src, float gain, uint16_t n)
void apply(const float *mod, uint16_t n)
void end(int32_t *tx, uint16_t n) const
void mix(const Frame &other, float gain, uint16_t n)
void tap(float *dst_l, float *dst_r, uint16_t n) const
void scale(float gain, uint16_t n)