|  |  | @@ -23,36 +23,6 @@ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | USE_NAMESPACE_DISTRHO; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | /* | 
		
	
		
			
			|  |  |  | * Find the highest absolute and normalized value within a float array. | 
		
	
		
			
			|  |  |  | */ | 
		
	
		
			
			|  |  |  | static inline | 
		
	
		
			
			|  |  |  | float d_findMaxNormalizedFloat(const float floats[], const std::size_t count) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | DISTRHO_SAFE_ASSERT_RETURN(floats != nullptr, 0.0f); | 
		
	
		
			
			|  |  |  | DISTRHO_SAFE_ASSERT_RETURN(count > 0, 0.0f); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | static const float kEmptyFloats[8192] = {}; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (count <= 8192 && std::memcmp(floats, kEmptyFloats, count) == 0) | 
		
	
		
			
			|  |  |  | return 0.0f; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | float tmp, maxf2 = std::abs(floats[0]); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | for (std::size_t i=1; i<count; ++i) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | tmp = std::abs(*floats++); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (tmp > maxf2) | 
		
	
		
			
			|  |  |  | maxf2 = tmp; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (maxf2 > 1.0f) | 
		
	
		
			
			|  |  |  | maxf2 = 1.0f; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | return maxf2; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | template<int numIO> | 
		
	
		
			
			|  |  |  | struct HostAudio : Module { | 
		
	
		
			
			|  |  |  | CardinalPluginContext* const pcontext; | 
		
	
	
		
			
				|  |  | @@ -65,6 +35,8 @@ struct HostAudio : Module { | 
		
	
		
			
			|  |  |  | // for rack core audio module compatibility | 
		
	
		
			
			|  |  |  | dsp::RCFilter dcFilters[numIO]; | 
		
	
		
			
			|  |  |  | bool dcFilterEnabled = (numIO == 2); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | // for stereo meter | 
		
	
		
			
			|  |  |  | volatile bool resetMeters = true; | 
		
	
		
			
			|  |  |  | float gainMeterL = 0.0f; | 
		
	
		
			
			|  |  |  | float gainMeterR = 0.0f; | 
		
	
	
		
			
				|  |  | @@ -190,7 +162,10 @@ struct HostAudioNanoMeter : NanoMeter { | 
		
	
		
			
			|  |  |  | HostAudio<numIO>* const module; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | HostAudioNanoMeter(HostAudio<numIO>* const m) | 
		
	
		
			
			|  |  |  | : module(m) {} | 
		
	
		
			
			|  |  |  | : module(m) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | hasGainKnob = true; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | void updateMeters() override | 
		
	
		
			
			|  |  |  | { | 
		
	
	
		
			
				|  |  | 
 |