D++ (DPP)
C++ Discord API Bot Library
dpp::audio_mixer Class Reference

A class for audio mixing operations using x64 instructions. More...

+ Collaboration diagram for dpp::audio_mixer:

Static Public Member Functions

static void collect_single_register (int32_t *data_in, int16_t *data_out, float current_gain, float increment)
 Collect a single register worth of data from data_in, apply gain and increment, and store the result in data_out. This version uses x64 instructions. More...
 
static void combine_samples (int32_t *up_sampled_vector, const int16_t *decoded_data)
 Combine a register worth of elements from decoded_data and store the result in up_sampled_vector. This version uses x64 instructions. More...
 

Static Public Attributes

static constexpr int32_t byte_blocks_per_register { 2 }
 

Detailed Description

A class for audio mixing operations using x64 instructions.

Member Function Documentation

◆ collect_single_register()

static void dpp::audio_mixer::collect_single_register ( int32_t *  data_in,
int16_t *  data_out,
float  current_gain,
float  increment 
)
inlinestatic

Collect a single register worth of data from data_in, apply gain and increment, and store the result in data_out. This version uses x64 instructions.

Parameters
data_inPointer to the input array of int32_t values.
data_outPointer to the output array of int16_t values.
current_gainThe gain to be applied to the elements.
incrementThe increment value to be added to each element.

◆ combine_samples()

static void dpp::audio_mixer::combine_samples ( int32_t *  up_sampled_vector,
const int16_t *  decoded_data 
)
inlinestatic

Combine a register worth of elements from decoded_data and store the result in up_sampled_vector. This version uses x64 instructions.

Parameters
up_sampled_vectorPointer to the array of int32_t values.
decoded_dataPointer to the array of int16_t values.

Member Data Documentation

◆ byte_blocks_per_register

constexpr int32_t dpp::audio_mixer::byte_blocks_per_register { 2 }
inlinestaticconstexpr
D++ Library version 9.0.13D++ Library version 9.0.12D++ Library version 9.0.11D++ Library version 9.0.10D++ Library version 9.0.9D++ Library version 9.0.8D++ Library version 9.0.7D++ Library version 9.0.6D++ Library version 9.0.5D++ Library version 9.0.4D++ Library version 9.0.3D++ Library version 9.0.2D++ Library version 9.0.1D++ Library version 9.0.0D++ Library version 1.0.2D++ Library version 1.0.1D++ Library version 1.0.0