Commit graph

2462 commits

Author SHA1 Message Date
getraid-gg
1cdeebef37 Enable the use of UTF-8 filenames under Windows (#718)
While `fopen` (used through the macro `FLUID_FOPEN`) uses UTF-8 on *nix, it's restricted to ANSI on Windows. A change to enable using paths containing non-ANSI characters was suggested before in issue #128 but was rejected due to requiring large parts of both the public API and private implementation to be modified to accommodate Windows.

This PR instead changes the macro definition for `FLUID_FOPEN` from `fopen` to a new wrapper, `fluid_fopen`. This wrapper is defined in `fluidsynth_priv.h` and defined in `fluid_sys.c` (following the pattern of `fluid_alloc`). Under Windows, it converts the `const char*` UTF-8 parameters to Unicode `wchar_t*` strings using the Windows API function `MultiByteToWideChar` and opens the file using the Windows API-specific `_wfopen`. On all other platforms, it simply calls `fopen`.

The public API is unchanged. This solution will require Windows users of the API to convert UTF-16 strings to UTF-8 (which then get converted back into UTF-16 anyway), but that's still an improvement over only being able to use ANSI paths.

This PR also adds a new test, `test_utf8_open`, which tests `FLUID_FOPEN` directly and through `fluid_is_soundfont` and `fluid_synth_sfload` using a new soundfont file, `sf2/â– VintageDreamsWaves-v2â– .sf2`, which is just a copy of `VintageDreamsWaves-v2.sf2` with Unicode characters in the filename.
2020-12-22 11:30:14 +01:00
derselbst
468f6ff082 Update Issue templates to point to GitHub discussion 2020-12-20 12:30:42 +01:00
derselbst
e5f5bb5471 Breaking unit tests for WindowsXP should be fatal 2020-12-19 14:42:17 +01:00
derselbst
b14265cf99 Elaborate on synth.device-id 2020-12-18 11:57:11 +01:00
Carlo Bramini
f15147d43a
Replace g_ascii_strtoll() with FLUID_STRTOL() (#717) 2020-12-16 09:15:04 +01:00
Carlo Bramini
3719c58246
Make some strings const (#716) 2020-12-16 00:05:28 +01:00
Marcus Weseloh
e68f4b22de Revert "Commit to test API doc build"
This reverts commit fd39f6e1e0.
2020-12-13 16:37:20 +01:00
Marcus Weseloh
fd39f6e1e0
Commit to test API doc build
Will be removed with next commit again.
2020-12-13 16:31:45 +01:00
Marcus Weseloh
b7f7d818a7
Also set commit name and email for api doc build commits 2020-12-13 16:26:55 +01:00
Marcus Weseloh
01ecf9e3b9
Fix commit message for deploying API doc 2020-12-13 14:56:16 +01:00
Marcus Weseloh
5ff3b73a4d
Clean existing files in API doc on GH pages 2020-12-13 14:53:32 +01:00
Marcus Weseloh
fcad97bacd
Fix build path in API doc publish step 2020-12-13 14:50:32 +01:00
Marcus Weseloh
9f853e7d53
Update API doc build to upload to GH pages 2020-12-13 14:48:51 +01:00
Tom M
9cd0fbdbf8
Re-enable unit tests with mingw
and allow them to fail to ensure build artifacts are being published
2020-12-11 12:37:52 +01:00
Tom M
f6276a14ab
Fix Windows CI
Remove fake pkg-config
2020-12-11 12:22:00 +01:00
Chris Xiong
9b485fad7c
Handle GS SysEx messages for setting whether a channel is used for rhythm part. (#708)
Some MIDI files that uses the GS standard uses channels other than channel 10 as percussion channel. Currently FluidSynth ignores the messages setting that up, causing notes meant to be played with a drum instrument played with a melodic instrument or vice versa. This patch will partially fix the issue.

Currently the implementation in this patch doesn't cover a specific "quirk" in Roland GS Modules: they seem to remember the last used instrument in the selected mode. This patch simply sets the instrument number to 0 instead.

A test file is attached. If played correctly (with `-o synth.device-id=16`) no out of place drum or piano sounds should be heard.

[wikipedia_MIDI_sample_gstest.mid.gz](https://github.com/FluidSynth/fluidsynth/files/5610727/wikipedia_MIDI_sample_gstest.mid.gz)
2020-11-29 00:20:04 +01:00
Nathan Umali
33c147402b
Update owner of the SoundFont registered trademark. (#706)
As of the time of this PR, the SoundFont registered trademark is owned by Creative Technology Ltd.
http://tmsearch.uspto.gov/bin/showfield?f=doc&state=4803:rj74xq.2.1
http://assignments.uspto.gov/assignments/q?db=tm&qt=sno&reel=&frame=&sno=74325965
2020-11-25 12:31:16 +01:00
jjceresa
c9b187bd85
Fx unit api (#673)
This PR addresses #669 point 2.1.
It proposes set/get API functions to change/read fx unit parameters.
The deprecated shell commands are updated. Now the commands line have 2 parameters:
- first parameter is the fx unit index.
- second parameter is the value to apply to the fx unit.
2020-11-22 21:02:06 +01:00
Marcus Weseloh
0c34b3d56c Update generated fluidsettings.txt for API doc build on fluidsynth.org 2020-11-19 21:07:06 +01:00
Tom M
bfe0f26d96
Merge pull request #703 from mawe42/doc-improvements
API documentation cleanup and improvements
2020-11-16 22:57:22 +01:00
Marcus Weseloh
4a7d7ad688 Settings reference style more consistent with rest of reference pages 2020-11-16 22:29:42 +01:00
Marcus Weseloh
602a2bcdc1 Remove unused command alias and sync Doxyfile.cmake and Doxyfile 2020-11-16 22:09:06 +01:00
Marcus Weseloh
c7f9d05190
GitHub Action to build the API docs from master branch (#704)
Uploads the complete HTML API docs as an artifact called api_docs.zip
2020-11-16 15:27:56 +01:00
Marcus Weseloh
9971f9372c Workaround for doxygen bug with linebreaks in ALIASES
Using \_linebr is not ideal, as it's an internal command. But that
seems to be the most compatible way to specify line breaks in ALIASES
accross different doxygen versions at the moment.
2020-11-15 00:31:32 +01:00
Marcus Weseloh
42f91986cd Use SVG for fluid mixer image 2020-11-14 21:16:23 +01:00
Marcus Weseloh
7d994ff9be Add intro text to deprecated list 2020-11-14 18:46:17 +01:00
Marcus Weseloh
0a23598126 Remove obsolete doxygen config options 2020-11-14 18:32:39 +01:00
Marcus Weseloh
3d930ffda4 Remove debug leftover 2020-11-14 17:12:39 +01:00
Marcus Weseloh
36280b9788 Add missing group brief descriptions 2020-11-14 17:10:26 +01:00
Marcus Weseloh
a279b2b397 Make top links black on hover, not white 2020-11-14 17:10:06 +01:00
Marcus Weseloh
961579774d Add documentation hints to style guide 2020-11-14 16:59:25 +01:00
Marcus Weseloh
d0db0cc119 Document how to revert the styling and layout changes 2020-11-14 16:27:43 +01:00
Marcus Weseloh
6113c15f94 Improve styling of field tables (enum values) 2020-11-14 16:22:50 +01:00
Marcus Weseloh
a03362a155 Style improvements for small screens
- hide side nav
- hide search box
- make content full height
2020-11-14 16:13:10 +01:00
Marcus Weseloh
5ccc7543ae Hide nav sync toggle button 2020-11-14 16:12:17 +01:00
Marcus Weseloh
3c1c796396 Add generated fluidsettings.txt for fluidsynth.org API doc build
Probably not the final solution, but works for now.
2020-11-14 15:10:57 +01:00
Marcus Weseloh
eebbfb6a62 Smaller cleanup and reformatting of long lines. 2020-11-14 14:59:29 +01:00
Marcus Weseloh
b565b3ebc3 Use custom \setting{} alias to link to fluid settings 2020-11-14 14:56:18 +01:00
Marcus Weseloh
0f9aed6f83 Use \image for images and improve quality of FluidMixer image 2020-11-14 14:25:44 +01:00
Marcus Weseloh
cb16f8d32d Split HTML_EXTRA_FILEs into separate lines 2020-11-14 14:04:05 +01:00
Marcus Weseloh
c4512367c4 Move examples into doc/examples directory 2020-11-14 13:40:46 +01:00
Marcus Weseloh
20ec6f3376 Move usage guide pages into separate files in doc/usage 2020-11-14 13:26:05 +01:00
Marcus Weseloh
67cb344a20 Move recent changes into separate file 2020-11-14 13:23:55 +01:00
Marcus Weseloh
cc84da2094 Split doxygen INPUT into separate lines, for easier readability 2020-11-14 13:21:57 +01:00
Marcus Weseloh
3c68eaa619 Sync the static Doxyfile with Doxyfile.cmake
Still missing is the integration of the generated fluidsettings.txt,
as that requires a build script currently not available on the
server generating the public API docs.
2020-11-13 23:21:47 +01:00
Marcus Weseloh
2a2027085e Separate new_* and delete_* functions from the rest 2020-11-13 22:23:29 +01:00
Marcus Weseloh
ee2ac9e1d9 Mark settings with callbacks as realtime and output this in the generated docs 2020-11-13 20:46:02 +01:00
Marcus Weseloh
1d9d7e9042 Also update the styling of the deprecated list 2020-11-12 22:31:19 +01:00
Marcus Weseloh
d2a29ec4c5 Make sure libxslt is only searched if doxygen is available as well 2020-11-12 21:50:35 +01:00
Marcus Weseloh
5a70df1cb7 Remove footer, as it takes away valuable vertical space 2020-11-12 21:27:00 +01:00