Commit Graph

1627 Commits

Author SHA1 Message Date
derselbst b34e5bbc36 reformat test/README.md 2018-04-08 09:41:15 +02:00
Marcus Weseloh fa0d103907 Remove unnecessary debug warnings for equal sample loopstart and loopend 2018-04-08 00:07:25 +02:00
derselbst 4ede11e71f remove redundant struct _fluid_sfont_info_t
integrate its members into fluid_sfont_t
2018-04-07 22:17:08 +02:00
derselbst c58f3eb868 make test_sample_cache C90 compliant
and fix link in test/README.md
2018-04-07 19:09:49 +02:00
derselbst 2c3e59f8ee disable unit tests for appveyor (without vcpkg) 2018-04-07 19:09:49 +02:00
derselbst 87bbba9069 disable unit tests on macosx
libintl is not found for some reason
2018-04-07 19:09:49 +02:00
derselbst 4ce0e3eced add unit test README 2018-04-07 19:09:49 +02:00
derselbst 6ab1c7fde3 avoid memory leak during sample import 2018-04-07 18:21:25 +02:00
derselbst 19587d343a dont exit sample processing early
when a single sample is broken
2018-04-07 18:14:09 +02:00
derselbst b1b870049b fix return value on sample validation 2018-04-07 18:09:37 +02:00
Marcus Weseloh 32961c4031
Merge pull request #360 from FluidSynth/sfont-loader-refactor
SoundFont Loading Refactor
2018-04-07 12:05:41 +02:00
derselbst de68492710 add cmake option enable-tests
forces a static build and sets up test env
2018-04-07 10:45:44 +02:00
Peter Hanappe 17204a26d6 Importing VintageDreamsWaves 2018-04-07 10:45:44 +02:00
derselbst 147dbb2aa1 fix build 2018-04-07 10:45:43 +02:00
derselbst 42a6a2153a add a macro to simplify adding unit tests 2018-04-07 10:45:43 +02:00
derselbst 2fbcd84238 appveyor: build unit tests 2018-04-07 10:45:43 +02:00
derselbst fdc943b8ad travis: build unit tests 2018-04-07 10:45:43 +02:00
derselbst bd5b2f9a9c add unit test for sample cache 2018-04-06 22:15:17 +02:00
derselbst 4032ae0a48 cmake: enable testing with ctest 2018-04-06 20:20:07 +02:00
Marcus Weseloh 9c1f3bd53e Return FLUID_OK instead if TRUE to be consistent with other return values 2018-04-05 19:20:47 +02:00
Marcus Weseloh 362a3f2a81 Fix bug in removing element from samplecache_list 2018-04-05 19:20:17 +02:00
derselbst 3e999c8a3d update API doc about fast file renderer 2018-04-04 18:45:24 +02:00
Marcus Weseloh f8bc376392 Use glib's g_stat to get file modification time 2018-04-04 11:11:41 +02:00
Marcus Weseloh 7e36bcf058 Rename parameters and variables to better reflect their contents / use
As fluid_defsfont contains code that deals with fluid_sfont_t and
fluid_defsfont_t, fluid_preset_t and fluid_defpreset_t, it sometimes gets
very confusion to know which type is currently being accessed by "sfont"
or "preset".

Also clarify some preset zone / inst zone ambiguities.
2018-04-04 11:11:41 +02:00
Marcus Weseloh d1c620f998 Use fluid_list_get to access list entry data 2018-04-04 11:11:41 +02:00
Marcus Weseloh 109e8990b8 Use FLUID_STRDUP instead of manual allocate and copy for strings in defsfont loader 2018-04-04 11:11:41 +02:00
Marcus Weseloh cf04a4ff73 Use FLUID_ARRAY instead of FLUID_MALLOC for sample buffers 2018-04-04 11:11:41 +02:00
Marcus Weseloh 312459eaf1 Treat failures while loading 24-bit sample data as not fatal 2018-04-04 11:11:41 +02:00
Marcus Weseloh 352bdef533 Properly free memory on error 2018-04-04 11:11:41 +02:00
Marcus Weseloh e8717e5b40 Remove explicit cast of FLUID_MALLOC return value 2018-04-04 11:11:41 +02:00
Marcus Weseloh c7e579aa75 Remove redundant error messages 2018-04-04 11:11:41 +02:00
Marcus Weseloh 29296b0e20 Ensure that sample_data memory is unlocked even if sample_data_24 mlock fails 2018-04-04 11:11:41 +02:00
Marcus Weseloh d5407742a6 Always release the mutex when exiting fluid_samplecache_load
And change fluid_samplecache_unload to use the same style.
2018-04-04 11:11:41 +02:00
Marcus Weseloh 8024907610 No need for fluid_sample_* functions in fluid_sfont to be public 2018-04-04 11:11:41 +02:00
Marcus Weseloh 4932b4af90 Refactor sample cache loader
- move sample reading to fluid_sffile
- refactor sample cache to use fluid_list and separate long functions into
  smaller ones
- include sample start and count in cache key, in preparation for lazy loading
- make defsfont use new sample cache loader interface
2018-04-04 11:11:41 +02:00
Marcus Weseloh 5bc2d33bb9 Differences in sample chunk sizes are not an error but simply an indication of a changed file 2018-04-04 11:11:41 +02:00
Marcus Weseloh 870fc56d6a Code cleanup and formatting in fluid_samplecache 2018-04-04 11:11:41 +02:00
Marcus Weseloh a274a394e0 Clang-format fluid_samplecache 2018-04-04 11:11:41 +02:00
Marcus Weseloh 4ec1cfe73e Move sample caching code to own file fluid_samplecache.c/h 2018-04-04 11:11:41 +02:00
Marcus Weseloh 76102f2009 Remove unnecessary fluid_sample_t::valid flag 2018-04-04 11:11:41 +02:00
Marcus Weseloh 963a5e98b4 Move sample and loop validation to fluid_sfont
Makes it possible to use the same validation logic for both SF2 and SF3
samples.
2018-04-04 11:11:41 +02:00
Marcus Weseloh 987d8a5f17 Move vorbis decompression to fluid_sfont 2018-04-04 11:11:41 +02:00
Marcus Weseloh 0a664e0797 Remove unnecessary conversion of sample pointers to offsets
SFSample should provide the sample pointers as specified in the Soundfont
file. If any mangling of the pointers is required, it should happen in the
defsfont loader.
2018-04-04 11:11:34 +02:00
Marcus Weseloh 9341059b24 Remove underscore functions for log messages
They were only used in soundfont loading code, so are probably a remnant
from Smurf. The rest of the FluidSynth code doesn't use underscore
functions, so remove them here as well for consistency.

Also use single quotes in double quoted string, to remove the need for
escaping chars.
2018-04-04 11:08:45 +02:00
Marcus Weseloh 1bc69be41b Rename fluid_sf2_* functions to fluid_sffile_* 2018-04-04 11:08:45 +02:00
Marcus Weseloh b6bdb6b059 Cleanup delete_* functions 2018-04-04 11:08:45 +02:00
Marcus Weseloh 7f09321714 Make size macro names easier to read 2018-04-04 11:08:45 +02:00
Marcus Weseloh 10b87e9d54 Rename fluid_sf2 to fluid_sffile 2018-04-04 11:08:45 +02:00
Marcus Weseloh 5dc64d1544 Cleanup function signatures, passing SFData to every function
Makes the whole file easier to read and gives the implementation a little
more "object-oriented" feel.
2018-04-04 11:08:38 +02:00
Marcus Weseloh 74e2a4b933 More expressive variable names in load_phdr 2018-04-04 11:08:38 +02:00