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