summaryrefslogtreecommitdiff
path: root/src/music
AgeCommit message (Collapse)Author
2021-06-13Codechange: replace IConsolePrintF with IConsolePrint and fmt formattingrubidium42
Also make some strings more consistent with the rest of the console strings.
2021-06-13Codechange: convert printf DEBUG statements to fmt Debug statementsrubidium42
2021-05-24Fix: Workarounds for BeMidi driver to work properly on Haikumilek7
2021-05-24Fix: Building on Haikumilek7
2021-05-10Cleanup: [Fluidsynth] Remove fluid_player_joinRubidium
The function fluid_player_join in the library is broken beyond compare for the usecases it was used for (see their #872). It does not wait until it is safe to delete the player, so it is up to the end user to ensure that. For OpenTTD we acquire a lock before fluid_synth_write_s16 and we acquire the same lock in the stop function. So, only one of the functions can be doing its thing, meaning we do not need to wait for the player to be stopped as it cannot be doing anything as we prevent that by the lock.
2021-05-05Cleanup: [Fluidsynth] Comply better with the coding stylerubidium42
2021-05-03Fix #9117, 04ce1f07: [Fluidsynth] Infinite wait when stopping song (#9181)rubidium42
In FluidSynth 2.2.0 an extra state was added to denote stopping. To transition from this state to a stopped state the rendering needs to be running. Since 04ce1f07 locking was added that skipped the rendering when something else held a lock, so the state would never get to stopped and join would never return.
2021-04-24Codechange: Use std::string in console commands/aliases registration, and ↵Loïc Guilloux
std::map instead our sorted linked list (#9057) * Codechange: Use std::string in console commands and aliases registration * Codechange: Use std::map to register console commands * Codechange: Use std::map to register console aliases * Cleanup: Remove now unused function
2021-04-07Fix: Honor default soundfont for FluidSynthGhislain Antony Vaillant
Debian now provides a default soundfont for FluidSynth via its alternatives system. In short, FluidSynth is configured to look for `/usr/share/sounds/sf3/default-GM.sf3` as its default soundfont, and each soundfront package (FluidR3, OPL-3, MuseScore...) may provide or override this symlink. By default, FluidSynth is installed on Debian with the `TimGM6mb` soundfont by default due to its limited size. See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=929185 for further details.
2021-04-07Fix: Use FluidSynth default soundfontGhislain Antony Vaillant
2021-04-07Fix #8713: Change OTTD2FS and FS2OTTD to return string objects instead of ↵Niels Martin Hansen
static buffers
2021-04-04Codechange: Use COINIT_MULTITHREADED in CoInitializeEx (#8938)Milek7
2021-02-23Codechange: Switch to explicit wide stringsNiels Martin Hansen
2021-02-23Remove: [Win32] Last pretenses of being able to build for Windows 95Niels Martin Hansen
2021-01-08Codechange: Remove min/max functions in favour of STL variants (#8502)Charles Pigott
2020-12-27Codechange: Convert some more FIO functions to take std::string.Michael Lutz
2020-12-27Codechange: Use std::string in FIO search path handling.Michael Lutz
2020-09-25Codechange: Make codestyle for CMake files consistent for 'control' statementsCharles Pigott
2020-07-03Fix: Globally apply preprocessor directive coding styleTechGeekNZ
Global; except for the 32-bit SSE blitter, which has some #DEFINEs in not-very-nice places.
2020-06-05Codechange: remove #ifdef from .cpp files to exclude featuresPatric Stout
With CMake, these files are simply not compiled to start with.
2020-06-05Add: introduce CMake for project managementPatric Stout
CMake works on all our supported platforms, like MSVC, Mingw, GCC, Clang, and many more. It allows for a single way of doing things, so no longer we need shell scripts and vbs scripts to work on all our supported platforms. Additionally, CMake allows to generate project files for like MSVC, KDevelop, etc. This heavily reduces the lines of code we need to support multiple platforms from a project perspective. Addtiionally, this heavily improves our detection of libraries, etc.
2020-05-21Codechange: Use std::string in the driver and blitter selection code.Michael Lutz
2020-05-08Fix: Two issues in MIDI file writerNiels Martin Hansen
Variable-length values would write threshold values with a byte too many. System Exclusive messages would cause write to fail since the end byte was treated as part of next message.
2020-04-12Remove: [OSX] Old QuickTime music driver.Michael Lutz
2020-04-12Remove: [OSX] Support for the pre-10.5 audio/music APIs.Michael Lutz
2020-02-07Fix #7885: [Fluidsynth] Use recommended method of setting sample rateNiels Martin Hansen
2020-01-12Fix: Silence all notes when stopping song in fluidsynthMilek7
2020-01-12Fix: correct checking of fluid_settings_setnum return codeMilek7
2019-11-10Cleanup: Removed SVN headersS. D. Cloudt
2019-11-01Codechange: [OSX] Use std::unique_ptr with a custom deleter to simply memory ↵Michael Lutz
management of Core Foundation types.
2019-09-30Fix: Signedness issue in midi driverCharles Pigott
2019-09-30Codechange: Fix warning about discarding qualifiers by *really* casting the ↵Charles Pigott
variable
2019-09-30Fix: Compilation error on MinGW due to usage of C++17 template deductionCharles Pigott
2019-09-29Fix: Some typos found using codespellJMcKiern
2019-09-29Fix: [OSX] Macro name conflict when trying to compile the QuickTime music ↵Michael Lutz
driver.
2019-08-31Add: [Win32] Select MIDI device by port nameNiels Martin Hansen
2019-07-07Fix 27384486e4: Error in GM Reset sysex dataNiels Martin Hansen
2019-07-04Fix: Correctly reset playback between songs in win32_m driverNiels Martin Hansen
2019-07-04Fix: Correctly reset playback between songs in DMusic driverNiels Martin Hansen
2019-07-04Fix: Don't keep mutex locked while parsing MIDI dataNiels Martin Hansen
2019-07-04Fix: Time values should be DWORD everywhere in win32_mNiels Martin Hansen
2019-07-04Codechange: Fix comment indentationNiels Martin Hansen
2019-07-04Codechange: Use common source for well-known SysEx messages in Windows music ↵Niels Martin Hansen
drivers
2019-07-04Codechange: Add some const in preparationNiels Martin Hansen
2019-07-04Codechange: Use std::mutex instead of CRITICAL_SECTION in win32_mNiels Martin Hansen
2019-05-04Codechange: replace grow() usage for MidiFileglx
2019-04-10Codechange: Use null pointer literal instead of the NULL macroHenry Wilson
2019-04-06Codechange: Use platform independent C++11 function for sleeping on a thread.Michael Lutz
2019-04-06Codechange: Replace custom thread code with C++11 thread objects.Michael Lutz
We assume a conforming C++11 compiler environment that has a valid <thread>-header. Failure to run a real thread is handled gracefully.
2019-04-06Codechange: Replace custom mutex code with C++11 mutex'es.Michael Lutz
A conforming compiler with a valid <mutex>-header is expected. Most parts of the code assume that locking a mutex will never fail unexpectedly, which is generally true on all common platforms that don't just pretend to be C++11. The use of condition variables in driver code is checked.