From aff06750c0cd62e7276e3230fa5dd8220b903132 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sat, 4 Jan 2014 15:38:43 +0100 Subject: Disable/enable resample on compiletime. Enable/disable using env on runtime. --- configure.ac | 14 ++++++++++---- src/audiofile.cc | 15 +++++++++++++-- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 820c627..7c3a0ed 100644 --- a/configure.ac +++ b/configure.ac @@ -301,10 +301,16 @@ dnl Check for sndfile dnl ====================== PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.20) -dnl ====================== -dnl Check for libsamplerate -dnl ====================== -PKG_CHECK_MODULES(SAMPLERATE, samplerate >= 0.1.7) +AC_ARG_WITH(resample, [ --with-resample Build with resample support]) +if test x$with_resample == xyes; then + AC_MSG_WARN([*** Building resample support!]) + AC_DEFINE(WITH_RESAMPLE, [], [Use resample]) + + dnl ====================== + dnl Check for libsamplerate + dnl ====================== + PKG_CHECK_MODULES(SAMPLERATE, samplerate >= 0.1.7) +fi #dnl ====================== #dnl Check for libpng diff --git a/src/audiofile.cc b/src/audiofile.cc index 169e11a..bb620df 100644 --- a/src/audiofile.cc +++ b/src/audiofile.cc @@ -37,6 +37,8 @@ #include "configuration.h" +#include + AudioFile::AudioFile(std::string filename) { is_loaded = false; @@ -127,7 +129,15 @@ void AudioFile::load(int num_samples) sf_close(fh); - if(Conf::samplerate != sf_info.samplerate) { +#ifdef WITH_RESAMPLE + + // Check environment to see if resample should be disabled. + // Defaults to "1" which is 'enable'. All other values are 'disabled'. + char *env_res = getenv("DRUMGIZMO_RESAMPLE"); + if(env_res == NULL) env_res = "1"; + + if( (strcmp(env_res, "1") == 0) && + Conf::samplerate != sf_info.samplerate) { // Resample data... size_t osize = size * ratio; sample_t *odata = new sample_t[osize]; @@ -150,7 +160,8 @@ void AudioFile::load(int num_samples) DEBUG(audiofile,"Converted into %d samples %p\n", (int)size, this); } - +#endif/*WITH_RESAMPLE*/ + this->data = data; is_loaded = true; -- cgit v1.2.3