diff --git a/common.mk b/common.mk index 40abb575..23d2c1c9 100644 --- a/common.mk +++ b/common.mk @@ -134,6 +134,9 @@ ifeq ($(SFIZZ_USE_SNDFILE),1) SFIZZ_SNDFILE_C_FLAGS ?= $(shell $(SFIZZ_PKG_CONFIG) --cflags sndfile) SFIZZ_SNDFILE_CXX_FLAGS ?= $(SFIZZ_SNDFILE_C_FLAGS) SFIZZ_SNDFILE_LINK_FLAGS ?= $(shell $(SFIZZ_PKG_CONFIG) --libs sndfile) + +SFIZZ_C_FLAGS += -DSFIZZ_USE_SNDFILE=1 +SFIZZ_CXX_FLAGS += -DSFIZZ_USE_SNDFILE=1 endif # st_audiofile dependency diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 539a2ec0..2eb30262 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -222,6 +222,9 @@ target_include_directories (sfizz_static PUBLIC external) target_link_libraries (sfizz_static PUBLIC absl::strings absl::span) target_link_libraries (sfizz_static PRIVATE sfizz_parser absl::flat_hash_map Threads::Threads st_audiofile sfizz-pugixml sfizz-spline sfizz-tunings sfizz-kissfft sfizz-cpuid sfizz-jsl sfizz-atomic) set_target_properties (sfizz_static PROPERTIES OUTPUT_NAME sfizz PUBLIC_HEADER "sfizz.h;sfizz.hpp") +if(SFIZZ_USE_SNDFILE) + target_compile_definitions (sfizz_static PUBLIC SFIZZ_USE_SNDFILE=1) +endif() if (WIN32) target_compile_definitions (sfizz_static PRIVATE _USE_MATH_DEFINES) endif() @@ -248,6 +251,9 @@ if (SFIZZ_SHARED) target_include_directories (sfizz_shared PRIVATE .) target_include_directories (sfizz_shared PRIVATE external) target_link_libraries (sfizz_shared PRIVATE absl::strings absl::span sfizz_parser absl::flat_hash_map Threads::Threads st_audiofile sfizz-pugixml sfizz-spline sfizz-tunings sfizz-kissfft sfizz-cpuid sfizz-jsl sfizz-atomic) + if(SFIZZ_USE_SNDFILE) + target_compile_definitions (sfizz_shared PUBLIC SFIZZ_USE_SNDFILE=1) + endif() if (WIN32) target_compile_definitions (sfizz_shared PRIVATE _USE_MATH_DEFINES) endif() diff --git a/src/sfizz/AudioReader.cpp b/src/sfizz/AudioReader.cpp index 6f9fe1b9..029428b1 100644 --- a/src/sfizz/AudioReader.cpp +++ b/src/sfizz/AudioReader.cpp @@ -7,7 +7,7 @@ #include "AudioReader.h" #include "FileMetadata.h" #include -#if defined(ST_AUDIO_FILE_USE_SNDFILE) +#if defined(SFIZZ_USE_SNDFILE) #include #endif #include @@ -51,9 +51,10 @@ unsigned BasicSndfileReader::sampleRate() const bool BasicSndfileReader::getInstrument(InstrumentInfo* instrument) { -#if defined(ST_AUDIO_FILE_USE_SNDFILE) +#if defined(SFIZZ_USE_SNDFILE) SNDFILE* sndfile = reinterpret_cast(handle_.get_sndfile_handle()); - if (sf_command(sndfile, SFC_GET_INSTRUMENT, &instrument, sizeof(instrument)) == SF_TRUE) + SF_INSTRUMENT* sfins = instrument; + if (sf_command(sndfile, SFC_GET_INSTRUMENT, sfins, sizeof(SF_INSTRUMENT)) == SF_TRUE) return true; #else (void)instrument; @@ -238,7 +239,7 @@ void NoSeekReverseReader::readWholeFile() //------------------------------------------------------------------------------ -#if defined(ST_AUDIO_FILE_USE_SNDFILE) +#if defined(SFIZZ_USE_SNDFILE) const std::error_category& sndfile_category() { class sndfile_category : public std::error_category { @@ -298,7 +299,7 @@ private: //------------------------------------------------------------------------------ -#if defined(ST_AUDIO_FILE_USE_SNDFILE) +#if defined(SFIZZ_USE_SNDFILE) static bool formatHasFastSeeking(int format) { bool fast; @@ -348,7 +349,7 @@ static AudioReaderPtr createAudioReaderWithHandle(ST_AudioFile handle, bool reve else if (!reverse) reader.reset(new ForwardReader(std::move(handle))); else { -#if defined(ST_AUDIO_FILE_USE_SNDFILE) +#if defined(SFIZZ_USE_SNDFILE) bool hasFastSeeking = formatHasFastSeeking(handle.get_sndfile_format()); #else bool hasFastSeeking = true; diff --git a/src/sfizz/FileMetadata.h b/src/sfizz/FileMetadata.h index b4094381..96facb03 100644 --- a/src/sfizz/FileMetadata.h +++ b/src/sfizz/FileMetadata.h @@ -5,7 +5,7 @@ // If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz #pragma once -#if defined(ST_AUDIO_FILE_USE_SNDFILE) +#if defined(SFIZZ_USE_SNDFILE) #include #endif #include "ghc/fs_std.hpp" @@ -24,7 +24,7 @@ struct RiffChunkInfo { uint32_t length; }; -#if !defined(ST_AUDIO_FILE_USE_SNDFILE) +#if !defined(SFIZZ_USE_SNDFILE) /** @brief Loop mode, like SF_LOOP_* */