| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -392,7 +392,7 @@ struct carla_clap_input_events : clap_input_events_t, CarlaPluginClapEventData { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        delete[] events; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        delete[] updatedParams; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (paramCount != 0) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (portCount != 0 || paramCount != 0) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            static_assert(kPluginMaxMidiEvents > MAX_MIDI_NOTE, "Enough space for input events"); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -413,6 +413,11 @@ struct carla_clap_input_events : clap_input_events_t, CarlaPluginClapEventData { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            CarlaPluginClapEventData::createNew(portCount); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    const clap_input_events_t* cast() const noexcept | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return static_cast<const clap_input_events_t*>(this); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    // called just before plugin processing | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    void handleScheduledParameterUpdates() | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -519,7 +524,7 @@ struct carla_clap_output_events : clap_output_events_t, CarlaPluginClapEventData | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        numEventsUsed = 0; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        delete[] events; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (paramCount != 0) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (portCount != 0 || paramCount != 0) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            numEventsAllocated = paramCount + kPluginMaxMidiEvents * std::max(1u, portCount); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            events = new Event[numEventsAllocated]; | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -536,6 +541,11 @@ struct carla_clap_output_events : clap_output_events_t, CarlaPluginClapEventData | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            CarlaPluginClapEventData::createNew(portCount); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    const clap_output_events_t* cast() const noexcept | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return static_cast<const clap_output_events_t*>(this); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    bool tryPush(const clap_event_header_t* const event) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (numEventsUsed == numEventsAllocated) | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -2098,8 +2108,8 @@ public: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            fOutputAudioBuffers.cast(), // audio_outputs | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            fInputAudioBuffers.count, // audio_inputs_count | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            fOutputAudioBuffers.count, // audio_outputs_count | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            &fInputEvents, // in_events | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            &fOutputEvents  // out_events | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            fInputEvents.cast(), | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            fOutputEvents.cast() | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        fPlugin->process(fPlugin, &process); | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |