BogaudioModules

BogaudioModules for VCV Rack
Log | Files | Refs | README | LICENSE

PEQ14_shared.hpp (1246B)


      1 #pragma once
      2 
      3 #include "bogaudio.hpp"
      4 #include "expanders.hpp"
      5 #include "parametric_eq.hpp"
      6 
      7 extern Model* modelPEQ14;
      8 extern Model* modelPEQ14XF;
      9 extern Model* modelPEQ14XR;
     10 extern Model* modelPEQ14XV;
     11 
     12 namespace bogaudio {
     13 
     14 struct PEQ14ExpanderMessage : ExpanderMessage {
     15 	bool valid = false;
     16 	float outs[BGModule::maxChannels][14];
     17 	float frequencies[BGModule::maxChannels][14];
     18 	float bandwidths[BGModule::maxChannels];
     19 	bool lowLP = false;
     20 	bool highHP = false;
     21 
     22 	PEQ14ExpanderMessage() {
     23 		reset();
     24 	}
     25 
     26 	void reset() {
     27 		valid = false;
     28 		const int n = BGModule::maxChannels * 14;
     29 		std::fill((float*)outs, (float*)outs + n, 0.0f);
     30 		std::fill((float*)frequencies, (float*)frequencies + n, 0.0f);
     31 		std::fill((float*)bandwidths, (float*)bandwidths + BGModule::maxChannels, 0.0f);
     32 		lowLP = false;
     33 		highHP = false;
     34 	}
     35 
     36 	void copyTo(PEQ14ExpanderMessage* o) {
     37 		o->valid = valid;
     38 		const int n = BGModule::maxChannels * 14;
     39 		std::copy((float*)outs, (float*)outs + n, (float*)o->outs);
     40 		std::copy((float*)frequencies, (float*)frequencies + n, (float*)o->frequencies);
     41 		std::copy((float*)bandwidths, (float*)bandwidths + BGModule::maxChannels, (float*)o->bandwidths);
     42 		o->lowLP = lowLP;
     43 		o->highHP = highHP;
     44 	}
     45 };
     46 
     47 } // namespace bogaudio