diff --git a/libs/libopenmpt/LICENSE.txt b/libs/libopenmpt/LICENSE.txt index 8eed2d04918751fc980ea47c975e2f9091a53b6b..e0f012166dcc5c0ec131866434bc7497eb318a26 100644 --- a/libs/libopenmpt/LICENSE.txt +++ b/libs/libopenmpt/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018, OpenMPT contributors +Copyright (c) 2004-2019, OpenMPT contributors Copyright (c) 1997-2003, Olivier Lapicque All rights reserved. diff --git a/libs/libopenmpt/SRB2NOTE.md b/libs/libopenmpt/SRB2NOTE.md index 1b57197e1c62ce95a7390bc6f309452f01cf0746..d664ddd7e49930e69cdf6c81d7981568fb2e3d78 100644 --- a/libs/libopenmpt/SRB2NOTE.md +++ b/libs/libopenmpt/SRB2NOTE.md @@ -1,6 +1,6 @@ # libopenmpt mingw-w64 binary info -Current built version as of 2019/01/03 is 0.4.0+r11103.pkg +Current built version as of 2019/05/23 is 0.4.4+r11531.pkg * mingw binaries (.dll): `bin/[x86 or x86_64]/mingw` * mingw import libraries (.dll.a): `lib/[x86 or x86_64]/mingw` diff --git a/libs/libopenmpt/bin/x86/libopenmpt.dll b/libs/libopenmpt/bin/x86/libopenmpt.dll index 4b4f4c0486ccac5821aef945555ec5d08b1e78c0..0fc9e7656d5681b59df4a605b5f39ffe59fd55a9 100644 Binary files a/libs/libopenmpt/bin/x86/libopenmpt.dll and b/libs/libopenmpt/bin/x86/libopenmpt.dll differ diff --git a/libs/libopenmpt/bin/x86/mingw/libopenmpt.dll b/libs/libopenmpt/bin/x86/mingw/libopenmpt.dll index 91d59b4f2bad16cce74019f823252f2950f1bad4..5fa3642566039530a3ddf633d45617ef9d93f9bd 100644 Binary files a/libs/libopenmpt/bin/x86/mingw/libopenmpt.dll and b/libs/libopenmpt/bin/x86/mingw/libopenmpt.dll differ diff --git a/libs/libopenmpt/bin/x86/openmpt-mpg123.dll b/libs/libopenmpt/bin/x86/openmpt-mpg123.dll index 95bbb1374298947ac825644c039fecab8515ce4f..79148a40ef3cef8e0f745ff14d1ccc1ac4aab025 100644 Binary files a/libs/libopenmpt/bin/x86/openmpt-mpg123.dll and b/libs/libopenmpt/bin/x86/openmpt-mpg123.dll differ diff --git a/libs/libopenmpt/bin/x86/openmpt-ogg.dll b/libs/libopenmpt/bin/x86/openmpt-ogg.dll index f73f87d65539808e91a66375c313f7e27e98139c..6b5a42e8f1fd11353588880cd36c649993eebe9e 100644 Binary files a/libs/libopenmpt/bin/x86/openmpt-ogg.dll and b/libs/libopenmpt/bin/x86/openmpt-ogg.dll differ diff --git a/libs/libopenmpt/bin/x86/openmpt-vorbis.dll b/libs/libopenmpt/bin/x86/openmpt-vorbis.dll index 6ef9453ec683b7644ee86a913ba38d40ec06f392..486b30731c234696ad1feb3ca9740eebbd390668 100644 Binary files a/libs/libopenmpt/bin/x86/openmpt-vorbis.dll and b/libs/libopenmpt/bin/x86/openmpt-vorbis.dll differ diff --git a/libs/libopenmpt/bin/x86/openmpt-zlib.dll b/libs/libopenmpt/bin/x86/openmpt-zlib.dll index 1cb98af0a76829572a3f295839845881a81f7351..b6e028ab4f31b40c620983e73b76b747f9f3249e 100644 Binary files a/libs/libopenmpt/bin/x86/openmpt-zlib.dll and b/libs/libopenmpt/bin/x86/openmpt-zlib.dll differ diff --git a/libs/libopenmpt/bin/x86_64/libopenmpt.dll b/libs/libopenmpt/bin/x86_64/libopenmpt.dll index 5bbc41ace177a3bb61cdb8b9757ba614ffc15485..536492798e9167241fc526d010f6ed25e9d0686e 100644 Binary files a/libs/libopenmpt/bin/x86_64/libopenmpt.dll and b/libs/libopenmpt/bin/x86_64/libopenmpt.dll differ diff --git a/libs/libopenmpt/bin/x86_64/mingw/libopenmpt.dll b/libs/libopenmpt/bin/x86_64/mingw/libopenmpt.dll index 178b544889b65acc14861677b6067865cc949767..3f6bea95f72b0a8ee68a41128f8bb700918d568d 100644 Binary files a/libs/libopenmpt/bin/x86_64/mingw/libopenmpt.dll and b/libs/libopenmpt/bin/x86_64/mingw/libopenmpt.dll differ diff --git a/libs/libopenmpt/bin/x86_64/openmpt-mpg123.dll b/libs/libopenmpt/bin/x86_64/openmpt-mpg123.dll index 47dbb079f9745ea3b83f61abe7f2ad86d3597087..f96d446f25c61df1368c4219324e3a2bf6138723 100644 Binary files a/libs/libopenmpt/bin/x86_64/openmpt-mpg123.dll and b/libs/libopenmpt/bin/x86_64/openmpt-mpg123.dll differ diff --git a/libs/libopenmpt/bin/x86_64/openmpt-ogg.dll b/libs/libopenmpt/bin/x86_64/openmpt-ogg.dll index bbadf6bdf55e7b3de7b3c2eefe913257424fd53e..3fd9514147973966faf77c7c2e08fb61c3fa4878 100644 Binary files a/libs/libopenmpt/bin/x86_64/openmpt-ogg.dll and b/libs/libopenmpt/bin/x86_64/openmpt-ogg.dll differ diff --git a/libs/libopenmpt/bin/x86_64/openmpt-vorbis.dll b/libs/libopenmpt/bin/x86_64/openmpt-vorbis.dll index 4311f29ee4db405bb6612b390bb322589668e774..56047c82fbf4ff4eecc148718ed2b9fc1882a9da 100644 Binary files a/libs/libopenmpt/bin/x86_64/openmpt-vorbis.dll and b/libs/libopenmpt/bin/x86_64/openmpt-vorbis.dll differ diff --git a/libs/libopenmpt/bin/x86_64/openmpt-zlib.dll b/libs/libopenmpt/bin/x86_64/openmpt-zlib.dll index 1e888cb07bc2c937921a6091ffbb8ac9bc6acfaa..562d8e6a9e89b933d2ea4ef30ae2d7e500e35c97 100644 Binary files a/libs/libopenmpt/bin/x86_64/openmpt-zlib.dll and b/libs/libopenmpt/bin/x86_64/openmpt-zlib.dll differ diff --git a/libs/libopenmpt/changelog.md b/libs/libopenmpt/changelog.md index d167a7408bb47534e62e04dc4af738e1427fcbc2..9847be1197908bc6962277f54d7a68f0b7d95a79 100644 --- a/libs/libopenmpt/changelog.md +++ b/libs/libopenmpt/changelog.md @@ -5,12 +5,64 @@ Changelog {#changelog} For fully detailed change log, please see the source repository directly. This is just a high-level summary. +### libopenmpt 0.4.4 (2019-04-07) + + * [**Bug**] Channel VU meters were swapped. + + * Startrekker: Clamp speed to 31 ticks per row. + * MTM: Ignore unused Exy commands on import. Command E5x (Set Finetune) is now + applied correctly. + * MOD: Sample swapping was always enabled since it has been separated from the + ProTracker 1/2 compatibility flag. Now it is always enabled for Amiga-style + modules and otherwise the old heuristic is used again. + + * stb_vorbis: Update to v1.16 (2019-03-05). + +### libopenmpt 0.4.3 (2019-02-11) + + * [**Sec**] Possible crash due to null-pointer access when doing a portamento + from an OPL instrument to an empty instrument note map slot (r11348). + + * [**Bug**] libopenmpt did not compile on Apple platforms in C++17 mode. + + * IT: Various fixes for note-off + instrument number in Old Effects mode. + * MO3: Import IT row highlights as written by MO3 2.4.1.2 or newer. Required + for modules using modern tempo mode. + + * miniz: Update to v2.0.8 (2018-09-19). + * stb_vorbis: Update to v1.15 (2019-02-07). + +### libopenmpt 0.4.2 (2019-01-22) + + * [**Sec**] DSM: Assertion failure during file parsing with debug STLs + (r11209). + * [**Sec**] J2B: Assertion failure during file parsing with debug STLs + (r11216). + + * S3M: Allow volume change of OPL instruments after Note Cut. + +### libopenmpt 0.4.1 (2019-01-06) + + * [**Bug**] Binaries compiled for winold (Windows XP, Vista, 7, for CPUs + without SSE2 support) did not actually work on CPUs without SSE2 support. + * [**Bug**] libmodplug: Public symbols of the C++ API had `visibility=hidden` + set on non-MSVC systems, which made them not publicly accessible. + * [**Bug**] Project files for Windows 10 desktop builds on ARM and ARM64 + (`build/vs2017win10`) were missing from Windows source package. + * [**Bug**] MSVC project files in Windows source package lacked additional + files required to build DLLs. + + * MO3: Apply playback changes based on "ModPlug-made" header flag. + + * minimp3: Update to commit e9df0760e94044caded36a55d70ab4152134adc5 + (2018-12-23). + ### libopenmpt 0.4.0 (2018-12-23) * [**New**] libopenmpt now includes emulation of the OPL chip and thus plays OPL instruments in S3M, C67 and MPTM files. OPL chip emulation volume can be changed with the new ctl `render.opl.volume_factor`. - * [**New**] libopenmpt now supports C67 (CDFM Composer) files. + * [**New**] libopenmpt now supports CDFM / Composer 670 module files. * [**New**] Autotools `configure` and plain `Makefile` now honor the variable `CXXSTDLIB_PCLIBSPRIVATE` which serves the sole purpose of listing the standard library (or libraries) required for static linking. The contents of diff --git a/libs/libopenmpt/inc/libopenmpt/libopenmpt.h b/libs/libopenmpt/inc/libopenmpt/libopenmpt.h index ef7359419a1b432de3b6148de6e3f05bbc0c2bb6..d41324885e5255d0573597f610172b934c7e38e6 100644 --- a/libs/libopenmpt/inc/libopenmpt/libopenmpt.h +++ b/libs/libopenmpt/inc/libopenmpt/libopenmpt.h @@ -293,6 +293,9 @@ typedef int64_t (*openmpt_stream_tell_func)( void * stream ); /*! \brief Stream callbacks * * Stream callbacks used by libopenmpt for stream operations. + * \sa openmpt_stream_get_file_callbacks + * \sa openmpt_stream_get_fd_callbacks + * \sa openmpt_stream_get_buffer_callbacks */ typedef struct openmpt_stream_callbacks { diff --git a/libs/libopenmpt/inc/libopenmpt/libopenmpt_stream_callbacks_buffer.h b/libs/libopenmpt/inc/libopenmpt/libopenmpt_stream_callbacks_buffer.h index 8111cfde79afa74d1c220cbb31735a84aeac0e0f..575049e4d97789549a99be6cb8fe6463845fcb17 100644 --- a/libs/libopenmpt/inc/libopenmpt/libopenmpt_stream_callbacks_buffer.h +++ b/libs/libopenmpt/inc/libopenmpt/libopenmpt_stream_callbacks_buffer.h @@ -27,6 +27,10 @@ #include <stdlib.h> #include <string.h> +/*! \addtogroup libopenmpt_c + * @{ + */ + #ifdef __cplusplus extern "C" { #endif @@ -162,6 +166,17 @@ static void openmpt_stream_buffer_init( openmpt_stream_buffer * buffer, const vo #define openmpt_stream_buffer_overflowed( buffer_ ) ( (buffer_)->overflow ) +/*! \brief Provide openmpt_stream_callbacks for in-memoy buffers + * + * Fills openmpt_stream_callbacks suitable for passing an in-memory buffer as a stream parameter to functions doing file input/output. + * + * \remarks The stream argument must be passed as `(void*)(openmpt_stream_buffer*)stream_buffer`. + * \sa \ref libopenmpt_c_fileio + * \sa openmpt_stream_callbacks + * \sa openmpt_could_open_probability2 + * \sa openmpt_probe_file_header_from_stream + * \sa openmpt_module_create2 + */ static openmpt_stream_callbacks openmpt_stream_get_buffer_callbacks(void) { openmpt_stream_callbacks retval; memset( &retval, 0, sizeof( openmpt_stream_callbacks ) ); @@ -175,5 +190,9 @@ static openmpt_stream_callbacks openmpt_stream_get_buffer_callbacks(void) { } #endif +/*! + * @} + */ + #endif /* LIBOPENMPT_STREAM_CALLBACKS_BUFFER_H */ diff --git a/libs/libopenmpt/inc/libopenmpt/libopenmpt_stream_callbacks_fd.h b/libs/libopenmpt/inc/libopenmpt/libopenmpt_stream_callbacks_fd.h index 4c814cf3ff872e722be4870eac13b98c3bd7247b..46b39f12981ba3bb73b3b644a8d7e69f67bbc000 100644 --- a/libs/libopenmpt/inc/libopenmpt/libopenmpt_stream_callbacks_fd.h +++ b/libs/libopenmpt/inc/libopenmpt/libopenmpt_stream_callbacks_fd.h @@ -23,6 +23,10 @@ #include <unistd.h> #endif +/*! \addtogroup libopenmpt_c + * @{ + */ + #ifdef __cplusplus extern "C" { #endif @@ -67,6 +71,17 @@ static size_t openmpt_stream_fd_read_func( void * stream, void * dst, size_t byt return retval; } +/*! \brief Provide openmpt_stream_callbacks for standard POSIX file descriptors + * + * Fills openmpt_stream_callbacks suitable for passing a POSIX filer descriptor as a stream parameter to functions doing file input/output. + * + * \remarks The stream argument must be passed as `(void*)(uintptr_t)(int)fd`. + * \sa \ref libopenmpt_c_fileio + * \sa openmpt_stream_callbacks + * \sa openmpt_could_open_probability2 + * \sa openmpt_probe_file_header_from_stream + * \sa openmpt_module_create2 + */ static openmpt_stream_callbacks openmpt_stream_get_fd_callbacks(void) { openmpt_stream_callbacks retval; memset( &retval, 0, sizeof( openmpt_stream_callbacks ) ); @@ -78,5 +93,9 @@ static openmpt_stream_callbacks openmpt_stream_get_fd_callbacks(void) { } #endif +/*! + * @} + */ + #endif /* LIBOPENMPT_STREAM_CALLBACKS_FD_H */ diff --git a/libs/libopenmpt/inc/libopenmpt/libopenmpt_stream_callbacks_file.h b/libs/libopenmpt/inc/libopenmpt/libopenmpt_stream_callbacks_file.h index 4fa529fd99ec4735bab6965178595db4f743dde5..643049153e75fb233104c2cb5ad6eb0b9005dfe7 100644 --- a/libs/libopenmpt/inc/libopenmpt/libopenmpt_stream_callbacks_file.h +++ b/libs/libopenmpt/inc/libopenmpt/libopenmpt_stream_callbacks_file.h @@ -20,6 +20,10 @@ #include <wchar.h> /* off_t */ #endif +/*! \addtogroup libopenmpt_c + * @{ + */ + #ifdef __cplusplus extern "C" { #endif @@ -96,6 +100,17 @@ static int64_t openmpt_stream_file_tell_func( void * stream ) { return retval; } +/*! \brief Provide openmpt_stream_callbacks for standard C FILE objects + * + * Fills openmpt_stream_callbacks suitable for passing a standard C FILE object as a stream parameter to functions doing file input/output. + * + * \remarks The stream argument must be passed as `(void*)(FILE*)file`. + * \sa \ref libopenmpt_c_fileio + * \sa openmpt_stream_callbacks + * \sa openmpt_could_open_probability2 + * \sa openmpt_probe_file_header_from_stream + * \sa openmpt_module_create2 + */ static openmpt_stream_callbacks openmpt_stream_get_file_callbacks(void) { openmpt_stream_callbacks retval; memset( &retval, 0, sizeof( openmpt_stream_callbacks ) ); @@ -109,5 +124,9 @@ static openmpt_stream_callbacks openmpt_stream_get_file_callbacks(void) { } #endif +/*! + * @} + */ + #endif /* LIBOPENMPT_STREAM_CALLBACKS_FILE_H */ diff --git a/libs/libopenmpt/inc/libopenmpt/libopenmpt_version.h b/libs/libopenmpt/inc/libopenmpt/libopenmpt_version.h index d3538e5230606e954348dfaac2e9abe7b24a6a1e..5ca7f21d0ff4a776d8011fc72b67d140aa237b9d 100644 --- a/libs/libopenmpt/inc/libopenmpt/libopenmpt_version.h +++ b/libs/libopenmpt/inc/libopenmpt/libopenmpt_version.h @@ -19,7 +19,7 @@ /*! \brief libopenmpt minor version number */ #define OPENMPT_API_VERSION_MINOR 4 /*! \brief libopenmpt patch version number */ -#define OPENMPT_API_VERSION_PATCH 0 +#define OPENMPT_API_VERSION_PATCH 4 /*! \brief libopenmpt pre-release tag */ #define OPENMPT_API_VERSION_PREREL "" /*! \brief libopenmpt pre-release flag */ diff --git a/libs/libopenmpt/lib/x86/libopenmpt.lib b/libs/libopenmpt/lib/x86/libopenmpt.lib index dd8b5f0e7aa3a11a402ffcad609f88cb76163bc3..3f814528acc851cec1e764547570756c24d65225 100644 Binary files a/libs/libopenmpt/lib/x86/libopenmpt.lib and b/libs/libopenmpt/lib/x86/libopenmpt.lib differ diff --git a/libs/libopenmpt/lib/x86/mingw/libopenmpt.dll.a b/libs/libopenmpt/lib/x86/mingw/libopenmpt.dll.a index e06293ef0e12b4337a418a3236f321a20bf1584a..e3fa0c58fcd082319ea3b6365cb566dd7a3efa24 100644 Binary files a/libs/libopenmpt/lib/x86/mingw/libopenmpt.dll.a and b/libs/libopenmpt/lib/x86/mingw/libopenmpt.dll.a differ diff --git a/libs/libopenmpt/lib/x86_64/libopenmpt.lib b/libs/libopenmpt/lib/x86_64/libopenmpt.lib index aca91fd0a48855ce56fcfe9a543432c179939ca5..75e3849fac966542b457684ca6f55a41237211d3 100644 Binary files a/libs/libopenmpt/lib/x86_64/libopenmpt.lib and b/libs/libopenmpt/lib/x86_64/libopenmpt.lib differ diff --git a/libs/libopenmpt/lib/x86_64/mingw/libopenmpt.dll.a b/libs/libopenmpt/lib/x86_64/mingw/libopenmpt.dll.a index e3eb180d39cb48d1ff59f73ee34965046e0c0f12..72940372211829f26b413075496f7e201d5fb357 100644 Binary files a/libs/libopenmpt/lib/x86_64/mingw/libopenmpt.dll.a and b/libs/libopenmpt/lib/x86_64/mingw/libopenmpt.dll.a differ diff --git a/src/sdl/mixer_sound.c b/src/sdl/mixer_sound.c index 5e550eb27541a9babda5cc110c734c4a83aac874..3c4a5c7b55833b3c9d7a2555441a817de6b066d4 100644 --- a/src/sdl/mixer_sound.c +++ b/src/sdl/mixer_sound.c @@ -672,6 +672,7 @@ static void mix_openmpt(void *udata, Uint8 *stream, int len) if (!openmpt_mhandle || songpaused) return; + // Play module into stream openmpt_module_read_interleaved_stereo(openmpt_mhandle, SAMPLERATE, BUFFERSIZE, (short *)stream); // Limiter to prevent music from being disorted with some formats