Program Listing for File dm_fx_mixers.h¶
↰ Return to documentation for file (src/effects/dm_fx_mixers.h)
// Copyright (c) 2020 Run Jump Labs LLC. All right reserved.
// This code is licensed under MIT license (see license.txt for details)
#ifndef DM_FX_MIXERS_H
#define DM_FX_MIXERS_H
class fx_mixer_2: public fx_effect {
private:
// Additional audio nodes
fx_audio_node node_input_2;
public:
fx_audio_node * input_1;
fx_audio_node * input_2;
fx_audio_node * output;
fx_mixer_2(void) : node_input_2(NODE_IN, "input_2", this) {
// Set class
type = FX_MIXER_2;
// Set name
strcpy(effect_name, "mixer_2");
input_1 = &node_input;
input_2 = &node_input_2;
output = &node_output;
// Add additional nodes to the audio stack
audio_node_stack[total_audio_nodes++] = &node_input_2;
}
void print_params(void) {
Serial.println("Audio Routing:");
print_audio_node_status(&node_input);
print_audio_node_status(&node_input_2);
print_audio_node_status(&node_output);
}
};
class fx_mixer_3: public fx_effect {
private:
// Additional audio nodes
fx_audio_node node_input_2;
fx_audio_node node_input_3;
fx_audio_node node_dummy_output;
public:
fx_audio_node * input_1;
fx_audio_node * input_2;
fx_audio_node * input_3;
fx_audio_node * output;
fx_mixer_3(void) : node_input_2(NODE_IN, "input_2", this), node_input_3(NODE_IN, "input_3", this), node_dummy_output(NODE_OUT, "dummy", this) {
// Set class
type = FX_MIXER_3;
// Set name
strcpy(effect_name, "mixer_3");
input_1 = &node_input;
input_2 = &node_input_2;
input_3 = &node_input_3;
output = &node_output;
// Add additional nodes to the audio stack
audio_node_stack[total_audio_nodes++] = &node_input_2;
audio_node_stack[total_audio_nodes++] = &node_dummy_output; // dummy output node since inputs and outputs go in pairs
audio_node_stack[total_audio_nodes++] = &node_input_3;
}
void print_params(void) {
Serial.println("Audio Routing:");
print_audio_node_status(&node_input);
print_audio_node_status(&node_input_2);
print_audio_node_status(&node_input_3);
print_audio_node_status(&node_output);
}
};
class fx_mixer_4: public fx_effect {
private:
// Additional audio nodes
fx_audio_node node_input_2;
fx_audio_node node_input_3;
fx_audio_node node_input_4;
fx_audio_node node_dummy_output;
public:
fx_audio_node * input_1;
fx_audio_node * input_2;
fx_audio_node * input_3;
fx_audio_node * input_4;
fx_audio_node * output;
fx_mixer_4(void) : node_input_2(NODE_IN, "input_2", this), node_input_3(NODE_IN, "input_3", this), node_input_4(NODE_IN, "input_3", this), node_dummy_output(NODE_OUT, "dummy", this){
// Set class
type = FX_MIXER_4;
// Set name
strcpy(effect_name, "mixer_4");
input_1 = &node_input;
input_2 = &node_input_2;
input_3 = &node_input_3;
input_4 = &node_input_4;
output = &node_output;
// Add additional nodes to the audio stack
audio_node_stack[total_audio_nodes++] = &node_input_2;
audio_node_stack[total_audio_nodes++] = &node_dummy_output; // dummy output node since inputs and outputs go in pairs
audio_node_stack[total_audio_nodes++] = &node_input_3;
audio_node_stack[total_audio_nodes++] = &node_dummy_output; // dummy output node since inputs and outputs go in pairs
audio_node_stack[total_audio_nodes++] = &node_input_4;
}
void print_params(void) {
Serial.println("Audio Routing:");
print_audio_node_status(&node_input);
print_audio_node_status(&node_input_2);
print_audio_node_status(&node_input_3);
print_audio_node_status(&node_input_4);
print_audio_node_status(&node_output);
}
};
#endif // DM_FX_MIXERS_H