diff options
| -rw-r--r-- | drumgizmo/output/jackaudio.cc | 7 | ||||
| -rw-r--r-- | plugin/drumgizmo_plugin.cc | 16 | ||||
| -rw-r--r-- | src/drumgizmo.cc | 20 | 
3 files changed, 24 insertions, 19 deletions
| diff --git a/drumgizmo/output/jackaudio.cc b/drumgizmo/output/jackaudio.cc index 2274bea..2620b84 100644 --- a/drumgizmo/output/jackaudio.cc +++ b/drumgizmo/output/jackaudio.cc @@ -26,6 +26,7 @@   */  #include <cassert>  #include <iostream> +#include <cstring>  #include "jackaudio.h" @@ -83,6 +84,12 @@ void JackAudioOutputEngine::stop()  void JackAudioOutputEngine::pre(size_t nsamples)  { +	// Clear all channels +	for(auto& channel : channels) +	{ +		assert(channel.samples.size() == nsamples); +		std::memset(channel.samples.data(), 0, nsamples * sizeof(sample_t)); +	}  }  void JackAudioOutputEngine::run(int ch, sample_t* samples, size_t nsamples) diff --git a/plugin/drumgizmo_plugin.cc b/plugin/drumgizmo_plugin.cc index 5e4ebeb..fa51575 100644 --- a/plugin/drumgizmo_plugin.cc +++ b/plugin/drumgizmo_plugin.cc @@ -26,13 +26,7 @@   */  #include "drumgizmo_plugin.h" -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> - -#include <iostream> +#include <cstring>  #include <midievent.h> @@ -292,6 +286,14 @@ void DrumGizmoPlugin::Output::stop()  void DrumGizmoPlugin::Output::pre(size_t nsamples)  { +	// Clear all channels +	for(auto& channel : *plugin.output_samples) +	{ +		if(channel) +		{ +			std::memset(channel, 0, nsamples * sizeof(sample_t)); +		} +	}  }  void DrumGizmoPlugin::Output::run(int ch, sample_t *samples, size_t nsamples) diff --git a/src/drumgizmo.cc b/src/drumgizmo.cc index fa601e6..18cbbb7 100644 --- a/src/drumgizmo.cc +++ b/src/drumgizmo.cc @@ -26,21 +26,16 @@   */  #include "drumgizmo.h" -#include <math.h> -#include <stdio.h> -#include <assert.h> +#include <cmath> +#include <cstdio> +#include <cassert> +#include <cstring>  #include <event.h>  #include <audiotypes.h> - -#include <string.h> - -#include <hugin.hpp> - -#include <memory>  #include <config.h> -#include <iostream> +#include <hugin.hpp>  #include "drumkitparser.h"  #include "audioinputenginemidi.h" @@ -122,7 +117,8 @@ bool DrumGizmo::run(size_t pos, sample_t *samples, size_t nsamples)  	setFreeWheel(ie.isFreewheeling() && oe.isFreewheeling());  	ie.pre(); -	oe.pre(nsamples); +	oe.pre(nsamples); // Clears all output buffers +	std::memset(samples, 0, nsamples * sizeof(sample_t));  	//  	// Read new events @@ -161,7 +157,7 @@ bool DrumGizmo::run(size_t pos, sample_t *samples, size_t nsamples)  			if(buf)  			{ -				memset(buf, 0, nsamples * sizeof(sample_t)); +				std::memset(buf, 0, nsamples * sizeof(sample_t));  				getSamples(c, pos, buf, nsamples); | 
