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 Copyright (c) 1997-2003, Olivier Lapicque
All rights reserved. All rights reserved.

View File

@ -1,6 +1,6 @@
# libopenmpt mingw-w64 binary info # 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 binaries (.dll): `bin/[x86 or x86_64]/mingw`
* mingw import libraries (.dll.a): `lib/[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 For fully detailed change log, please see the source repository directly. This
is just a high-level summary. 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) ### libopenmpt 0.4.0 (2018-12-23)
* [**New**] libopenmpt now includes emulation of the OPL chip and thus plays * [**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 OPL instruments in S3M, C67 and MPTM files. OPL chip emulation volume can be
changed with the new ctl `render.opl.volume_factor`. 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 * [**New**] Autotools `configure` and plain `Makefile` now honor the variable
`CXXSTDLIB_PCLIBSPRIVATE` which serves the sole purpose of listing the `CXXSTDLIB_PCLIBSPRIVATE` which serves the sole purpose of listing the
standard library (or libraries) required for static linking. The contents of 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 /*! \brief Stream callbacks
* *
* Stream callbacks used by libopenmpt for stream operations. * 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 { typedef struct openmpt_stream_callbacks {

View File

@ -27,6 +27,10 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
/*! \addtogroup libopenmpt_c
* @{
*/
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #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 ) #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) { static openmpt_stream_callbacks openmpt_stream_get_buffer_callbacks(void) {
openmpt_stream_callbacks retval; openmpt_stream_callbacks retval;
memset( &retval, 0, sizeof( openmpt_stream_callbacks ) ); memset( &retval, 0, sizeof( openmpt_stream_callbacks ) );
@ -175,5 +190,9 @@ static openmpt_stream_callbacks openmpt_stream_get_buffer_callbacks(void) {
} }
#endif #endif
/*!
* @}
*/
#endif /* LIBOPENMPT_STREAM_CALLBACKS_BUFFER_H */ #endif /* LIBOPENMPT_STREAM_CALLBACKS_BUFFER_H */

View File

@ -23,6 +23,10 @@
#include <unistd.h> #include <unistd.h>
#endif #endif
/*! \addtogroup libopenmpt_c
* @{
*/
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@ -67,6 +71,17 @@ static size_t openmpt_stream_fd_read_func( void * stream, void * dst, size_t byt
return retval; 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) { static openmpt_stream_callbacks openmpt_stream_get_fd_callbacks(void) {
openmpt_stream_callbacks retval; openmpt_stream_callbacks retval;
memset( &retval, 0, sizeof( openmpt_stream_callbacks ) ); memset( &retval, 0, sizeof( openmpt_stream_callbacks ) );
@ -78,5 +93,9 @@ static openmpt_stream_callbacks openmpt_stream_get_fd_callbacks(void) {
} }
#endif #endif
/*!
* @}
*/
#endif /* LIBOPENMPT_STREAM_CALLBACKS_FD_H */ #endif /* LIBOPENMPT_STREAM_CALLBACKS_FD_H */

View File

@ -20,6 +20,10 @@
#include <wchar.h> /* off_t */ #include <wchar.h> /* off_t */
#endif #endif
/*! \addtogroup libopenmpt_c
* @{
*/
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@ -96,6 +100,17 @@ static int64_t openmpt_stream_file_tell_func( void * stream ) {
return retval; 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) { static openmpt_stream_callbacks openmpt_stream_get_file_callbacks(void) {
openmpt_stream_callbacks retval; openmpt_stream_callbacks retval;
memset( &retval, 0, sizeof( openmpt_stream_callbacks ) ); memset( &retval, 0, sizeof( openmpt_stream_callbacks ) );
@ -109,5 +124,9 @@ static openmpt_stream_callbacks openmpt_stream_get_file_callbacks(void) {
} }
#endif #endif
/*!
* @}
*/
#endif /* LIBOPENMPT_STREAM_CALLBACKS_FILE_H */ #endif /* LIBOPENMPT_STREAM_CALLBACKS_FILE_H */

View File

@ -19,7 +19,7 @@
/*! \brief libopenmpt minor version number */ /*! \brief libopenmpt minor version number */
#define OPENMPT_API_VERSION_MINOR 4 #define OPENMPT_API_VERSION_MINOR 4
/*! \brief libopenmpt patch version number */ /*! \brief libopenmpt patch version number */
#define OPENMPT_API_VERSION_PATCH 0 #define OPENMPT_API_VERSION_PATCH 4
/*! \brief libopenmpt pre-release tag */ /*! \brief libopenmpt pre-release tag */
#define OPENMPT_API_VERSION_PREREL "" #define OPENMPT_API_VERSION_PREREL ""
/*! \brief libopenmpt pre-release flag */ /*! \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) if (!openmpt_mhandle || songpaused)
return; return;
// Play module into stream
openmpt_module_read_interleaved_stereo(openmpt_mhandle, SAMPLERATE, BUFFERSIZE, (short *)stream); openmpt_module_read_interleaved_stereo(openmpt_mhandle, SAMPLERATE, BUFFERSIZE, (short *)stream);
// Limiter to prevent music from being disorted with some formats // Limiter to prevent music from being disorted with some formats