Update libopenmpt to 0.4.4

This commit is contained in:
Steel Titanium 2019-05-23 22:05:28 -04:00
parent ce1c1d8c88
commit c8a5597492
25 changed files with 117 additions and 4 deletions

View File

@ -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.

View File

@ -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`

View File

@ -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

View File

@ -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 {

View File

@ -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 */

View File

@ -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 */

View File

@ -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 */

View File

@ -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 */

View File

@ -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