diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index ac837839..49b7e2d7 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -15,7 +15,7 @@ jobs: - script: | mkdir build && cd build export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig" - cmake -DCMAKE_INSTALL_PREFIX=$(Build.ArtifactStagingDirectory) -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=0 .. + cmake -DCMAKE_INSTALL_PREFIX=$(Build.ArtifactStagingDirectory) -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=1 .. make displayName: 'Compile fluidsynth' @@ -70,7 +70,7 @@ jobs: SET "PATH=d:\deps\bin;%PATH%" pkg-config --list-all mkdir build && cd build || exit -1 - cmake -A $(platform) -T $(toolset) -DCMAKE_INSTALL_PREFIX=$(Build.ArtifactStagingDirectory) -Denable-readline=0 -Denable-floats=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=0 .. || exit -1 + cmake -A $(platform) -T $(toolset) -DCMAKE_INSTALL_PREFIX=$(Build.ArtifactStagingDirectory) -Denable-readline=0 -Denable-floats=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=1 .. || exit -1 cmake --build . --config Release || exit -1 displayName: 'Compile fluidsynth' - script: | @@ -100,14 +100,27 @@ jobs: matrix: default: CMAKE_FLAGS: + CMAKE_CONFIG: Release + gtk-bundle: $(gtk-bundle-x64) + libsndfile-url: $(libsndfile-url-x64) + debug_prof: + CMAKE_FLAGS: -Denable-profiling=1 -Denable-trap-on-fpe=1 -Denable-fpe-check=1 + CMAKE_CONFIG: Debug gtk-bundle: $(gtk-bundle-x64) libsndfile-url: $(libsndfile-url-x64) no_network: CMAKE_FLAGS: -Denable-network=0 + CMAKE_CONFIG: Release gtk-bundle: $(gtk-bundle-x64) libsndfile-url: $(libsndfile-url-x64) static_lib: CMAKE_FLAGS: -DBUILD_SHARED_LIBS=0 + CMAKE_CONFIG: Release + gtk-bundle: $(gtk-bundle-x64) + libsndfile-url: $(libsndfile-url-x64) + minimal: + CMAKE_FLAGS: -Denable-ipv6=0 -Denable-network=0 -Denable-aufile=0 -Denable-dbus=0 -Denable-threads=0 -Denable-winmidi=0 -Denable-waveout=0 -Denable-dsound=0 -Denable-libsndfile=0 -Denable-floats=1 + CMAKE_CONFIG: Release gtk-bundle: $(gtk-bundle-x64) libsndfile-url: $(libsndfile-url-x64) pool: @@ -129,14 +142,14 @@ jobs: @ECHO ON SET "PATH=d:\deps\bin;%PATH%" mkdir build && cd build || exit -1 - cmake -A x64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=0 .. || exit -1 - cmake --build . --config Release || exit -1 + cmake -A x64 -DCMAKE_BUILD_TYPE=$(CMAKE_CONFIG) -DCMAKE_VERBOSE_MAKEFILE=1 $(CMAKE_FLAGS) .. || exit -1 + cmake --build . --config $(CMAKE_CONFIG) || exit -1 displayName: 'Compile fluidsynth' - script: | @ECHO ON SET "PATH=d:\deps\bin;%PATH%" cd build || exit -1 - cmake --build . --config Release --target check || exit -1 + cmake --build . --config $(CMAKE_CONFIG) --target check || exit -1 displayName: 'Execute Unittests' - job: WindowsMinGW diff --git a/.clang-tidy b/.clang-tidy index 687d6885..e5830620 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,5 +1,5 @@ --- -Checks: 'clang-diagnostic-*,clang-analyzer-*,-*,cert-*,clang-analyzer-*,performance-*,readability-avoid-const-params-in-decls,readability-braces-around-statements,readability-delete-null-pointer,readability-implicit-bool-conversion,readability-misleading-indentation,readability-misplaced-array-index,readability-non-const-parameter,readability-redundant-control-flow,readability-redundant-declaration,readability-redundant-function-ptr-dereference,readability-simplify-boolean-expr' +Checks: '-*,clang-diagnostic-*,clang-analyzer-*,-clang-analyzer-security.insecureAPI.strcpy,performance-*,readability-avoid-const-params-in-decls,readability-braces-around-statements,readability-delete-null-pointer,readability-implicit-bool-conversion,readability-misleading-indentation,readability-misplaced-array-index,readability-non-const-parameter,readability-redundant-control-flow,readability-redundant-declaration,readability-redundant-function-ptr-dereference,readability-simplify-boolean-expr' WarningsAsErrors: '' HeaderFilterRegex: '' AnalyzeTemporaryDtors: false diff --git a/.travis.yml b/.travis.yml index 8c302114..b9cf86d0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -59,7 +59,7 @@ before_script: - mkdir build && cd build script: - - cmake -DCMAKE_INSTALL_PREFIX=$HOME/fluidsynth_install ${CMAKE_FLAGS} -Denable-portaudio=1 -Denable-ladspa=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_VERBOSE_MAKEFILE=0 .. + - cmake -DCMAKE_INSTALL_PREFIX=$HOME/fluidsynth_install ${CMAKE_FLAGS} -Denable-portaudio=1 -Denable-ladspa=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_VERBOSE_MAKEFILE=1 .. - make -j4 - make check - if [ $TRAVIS_OS_NAME = linux ]; then make install; fi # install only on linux, as CMAKE_INSTALL_PREFIX is ignored for frameworks on macosx and I cant tell whether that's correct or a bug. diff --git a/CMakeLists.txt b/CMakeLists.txt index 6859920f..779c7b58 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -188,7 +188,7 @@ if ( CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID STREQUAL "Clang" OR CMAKE_C_ set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -W -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wno-unused-parameter -Wdeclaration-after-statement" ) # prepend to build type specific flags, to allow users to override - set ( CMAKE_C_FLAGS_DEBUG "-g -DDEBUG ${CMAKE_C_FLAGS_DEBUG}" ) + set ( CMAKE_C_FLAGS_DEBUG "-g ${CMAKE_C_FLAGS_DEBUG}" ) if ( CMAKE_C_COMPILER_ID STREQUAL "Intel" ) # icc needs the restrict flag to recognize C99 restrict pointers @@ -384,10 +384,10 @@ endif ( enable-trap-on-fpe AND NOT APPLE AND NOT WIN32 ) unset ( ENABLE_FPECHECK CACHE ) unset ( FPE_CHECK CACHE ) -if ( enable-fpe-check ) +if ( enable-fpe-check AND NOT APPLE AND NOT WIN32 ) set ( ENABLE_FPECHECK 1 ) set ( FPE_CHECK 1 ) -endif ( enable-fpe-check ) +endif ( enable-fpe-check AND NOT APPLE AND NOT WIN32 ) if ( enable-debug ) set ( CMAKE_BUILD_TYPE "Debug" CACHE STRING @@ -400,10 +400,9 @@ if ( NOT CMAKE_BUILD_TYPE ) endif ( NOT CMAKE_BUILD_TYPE ) unset ( ENABLE_DEBUG CACHE ) -unset ( DEBUG CACHE ) if ( CMAKE_BUILD_TYPE MATCHES "Debug" ) set ( ENABLE_DEBUG 1 ) - set ( DEBUG 1 ) + add_definitions(-DDEBUG) endif ( CMAKE_BUILD_TYPE MATCHES "Debug" ) # Additional targets to perform clang-format/clang-tidy @@ -568,7 +567,7 @@ else(NOT enable-pkgconfig) unset ( LIBINSTPATCH_SUPPORT CACHE ) if ( enable-libinstpatch ) - pkg_check_modules ( LIBINSTPATCH libinstpatch ) + pkg_check_modules ( LIBINSTPATCH libinstpatch-1.0 ) set ( LIBINSTPATCH_SUPPORT ${LIBINSTPATCH_FOUND} ) endif ( enable-libinstpatch ) diff --git a/src/rvoice/fluid_rev.c b/src/rvoice/fluid_rev.c index 1d90b3ab..014562e8 100644 --- a/src/rvoice/fluid_rev.c +++ b/src/rvoice/fluid_rev.c @@ -770,10 +770,10 @@ static void update_rev_time_damping(fluid_late *late, fluid_real_t gi_min, gi_max; /* values gi_min et gi_max are computed using E2 for the line with maximum delay */ - gi_max = FLUID_POW(10, -3 * delay_length[NBR_DELAYS - 1] * - sample_period / MAX_DC_REV_TIME); /* E2 */ - gi_min = FLUID_POW(10, -3 * delay_length[NBR_DELAYS - 1] * - sample_period / MIN_DC_REV_TIME); /* E2 */ + gi_max = FLUID_POW(10, (-3 * delay_length[NBR_DELAYS - 1] / MAX_DC_REV_TIME) * + sample_period); /* E2 */ + gi_min = FLUID_POW(10, (-3 * delay_length[NBR_DELAYS - 1] / MIN_DC_REV_TIME) * + sample_period); /* E2 */ /* gi = f(roomsize, gi_max, gi_min) */ gi_tmp = gi_min + roomsize * (gi_max - gi_min); /* Computes T60DC from gi using inverse of relation E2.*/ diff --git a/src/sfloader/fluid_defsfont.c b/src/sfloader/fluid_defsfont.c index 5d684d1e..cb0560b1 100644 --- a/src/sfloader/fluid_defsfont.c +++ b/src/sfloader/fluid_defsfont.c @@ -499,7 +499,7 @@ int fluid_defsfont_load(fluid_defsfont_t *defsfont, const fluid_file_callbacks_t while(p != NULL) { sfpreset = (SFPreset *)fluid_list_get(p); - defpreset = new_fluid_defpreset(defsfont); + defpreset = new_fluid_defpreset(); if(defpreset == NULL) { @@ -621,7 +621,7 @@ fluid_preset_t *fluid_defsfont_iteration_next(fluid_defsfont_t *defsfont) * new_fluid_defpreset */ fluid_defpreset_t * -new_fluid_defpreset(fluid_defsfont_t *defsfont) +new_fluid_defpreset(void) { fluid_defpreset_t *defpreset = FLUID_NEW(fluid_defpreset_t); @@ -632,7 +632,6 @@ new_fluid_defpreset(fluid_defsfont_t *defsfont) } defpreset->next = NULL; - defpreset->defsfont = defsfont; defpreset->name[0] = 0; defpreset->bank = 0; defpreset->num = 0; diff --git a/src/sfloader/fluid_defsfont.h b/src/sfloader/fluid_defsfont.h index b49f1b24..25ac9512 100644 --- a/src/sfloader/fluid_defsfont.h +++ b/src/sfloader/fluid_defsfont.h @@ -143,7 +143,6 @@ int fluid_defsfont_add_preset(fluid_defsfont_t *defsfont, fluid_defpreset_t *def struct _fluid_defpreset_t { fluid_defpreset_t *next; - fluid_defsfont_t *defsfont; /* the soundfont this preset belongs to */ char name[21]; /* the name of the preset */ unsigned int bank; /* the bank number */ unsigned int num; /* the preset number */ @@ -151,7 +150,7 @@ struct _fluid_defpreset_t fluid_preset_zone_t *zone; /* the chained list of preset zones */ }; -fluid_defpreset_t *new_fluid_defpreset(fluid_defsfont_t *defsfont); +fluid_defpreset_t *new_fluid_defpreset(void); void delete_fluid_defpreset(fluid_defpreset_t *defpreset); fluid_defpreset_t *fluid_defpreset_next(fluid_defpreset_t *defpreset); int fluid_defpreset_import_sfont(fluid_defpreset_t *defpreset, SFPreset *sfpreset, fluid_defsfont_t *defsfont); diff --git a/src/utils/fluid_sys.h b/src/utils/fluid_sys.h index 65c088ca..64903590 100644 --- a/src/utils/fluid_sys.h +++ b/src/utils/fluid_sys.h @@ -706,13 +706,13 @@ enum #ifdef FPE_CHECK #define fluid_check_fpe(expl) fluid_check_fpe_i386(expl) #define fluid_clear_fpe() fluid_clear_fpe_i386() +unsigned int fluid_check_fpe_i386(char *explanation_in_case_of_fpe); +void fluid_clear_fpe_i386(void); #else #define fluid_check_fpe(expl) #define fluid_clear_fpe() #endif -unsigned int fluid_check_fpe_i386(char *explanation_in_case_of_fpe); -void fluid_clear_fpe_i386(void); /* System control */ void fluid_msleep(unsigned int msecs);