From be5e17c29c09d58b9515c48284ad11358570966a Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Thu, 6 Feb 2014 22:55:41 +0100 Subject: [PATCH] MixHelpers: added isSilent() A simple function for testing whether a given sample buffer is silent. Maybe we have to adjust/lower the threshold. --- include/MixHelpers.h | 2 ++ src/core/MixHelpers.cpp | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/include/MixHelpers.h b/include/MixHelpers.h index 5c24450a9..a1ddd3307 100644 --- a/include/MixHelpers.h +++ b/include/MixHelpers.h @@ -30,6 +30,8 @@ namespace MixHelpers { +bool isSilent( const sampleFrame* src, int frames ); + /*! \brief Add samples from src to dst */ void add( sampleFrame* dst, const sampleFrame* src, int frames ); diff --git a/src/core/MixHelpers.cpp b/src/core/MixHelpers.cpp index 346bf5cde..76e00cae3 100644 --- a/src/core/MixHelpers.cpp +++ b/src/core/MixHelpers.cpp @@ -22,6 +22,8 @@ * */ +#include + #include "MixHelpers.h" @@ -51,6 +53,22 @@ static inline void run( sampleFrame* dst, const sample_t* srcLeft, const sample_ +bool isSilent( const sampleFrame* src, int frames ) +{ + const float silenceThreshold = 0.0000001f; + + for( int i = 0; i < frames; ++i ) + { + if( fabsf( src[i][0] ) >= silenceThreshold || fabsf( src[i][1] ) >= silenceThreshold ) + { + return false; + } + } + + return true; +} + + struct AddOp { void operator()( sampleFrame& dst, const sampleFrame& src ) const