-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
223 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
# Maintainer: Alexey Pavlov <[email protected]> | ||
|
||
_realname=SDL_mixer | ||
pkgbase=mingw-w64-${_realname} | ||
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} | ||
pkgver=1.2.12 | ||
pkgrel=1 | ||
pkgdesc="A simple multi-channel audio mixer (mingw-w64)" | ||
arch=('any') | ||
url="http://www.libsdl.org/projects/SDL_mixer/" | ||
license=('custom') | ||
depends=("${MINGW_PACKAGE_PREFIX}-SDL" | ||
"${MINGW_PACKAGE_PREFIX}-libvorbis" | ||
"${MINGW_PACKAGE_PREFIX}-libmikmod" | ||
"${MINGW_PACKAGE_PREFIX}-smpeg" | ||
) | ||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" | ||
"${MINGW_PACKAGE_PREFIX}-pkg-config" | ||
"${MINGW_PACKAGE_PREFIX}-fluidsynth") | ||
optdepends=("${MINGW_PACKAGE_PREFIX}-fluidsynth: MIDI software synth, replaces built-in timidity") | ||
source=(http://www.libsdl.org/projects/SDL_mixer/release/${_realname}-${pkgver}.tar.gz | ||
mikmod1.patch | ||
mikmod2.patch | ||
fluidsynth-volume.patch | ||
double-free-crash.patch) | ||
md5sums=('e03ff73d77a55e3572ad0217131dc4a1' | ||
'c335d4ff1fe86950d1fc730745c9c96d' | ||
'd13d98fef8ec51167a370fa7976a7a7f' | ||
'eceb06e3a8b31fee300d7f33478401d4' | ||
'b38c1b23751ca95631badeb9327d085e') | ||
noextract=(${_realname}-${pkgver}.tar.gz) | ||
|
||
prepare() { | ||
[[ -d ${srcdir}/${_realname}-${pkgver} ]] && rm -rf ${srcdir}/${_realname}-${pkgver} | ||
tar -xzf ${srcdir}/${_realname}-${pkgver}.tar.gz -C ${srcdir} || true | ||
|
||
cd "${srcdir}/${_realname}-${pkgver}" | ||
|
||
patch -Np1 -i ${srcdir}/mikmod1.patch | ||
patch -Np1 -i ${srcdir}/mikmod2.patch | ||
patch -Np1 -i ${srcdir}/fluidsynth-volume.patch | ||
patch -Np1 -i ${srcdir}/double-free-crash.patch | ||
|
||
#sed -e "/CONFIG_FILE_ETC/s|/etc/timidity.cfg|/etc/timidity++/timidity.cfg|" \ | ||
# -e "/DEFAULT_PATH/s|/etc/timidity|/etc/timidity++|" \ | ||
# -e "/DEFAULT_PATH2/s|/usr/local/lib/timidity|/usr/lib/timidity|" \ | ||
# -i timidity/config.h | ||
} | ||
|
||
build() { | ||
[[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" | ||
mkdir -p "${srcdir}/build-${MINGW_CHOST}" | ||
cd "${srcdir}/build-${MINGW_CHOST}" | ||
../${_realname}-${pkgver}/configure \ | ||
--prefix=${MINGW_PREFIX} \ | ||
--build=${MINGW_CHOST} \ | ||
--host=${MINGW_CHOST} \ | ||
--enable-shared \ | ||
--enable-static | ||
|
||
make | ||
} | ||
|
||
package() { | ||
cd "${srcdir}/build-${MINGW_CHOST}/" | ||
|
||
make DESTDIR="${pkgdir}/" install | ||
install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" \ | ||
"${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
|
||
# HG changeset patch | ||
# User Sam Lantinga <[email protected]> | ||
# Date 1329087437 18000 | ||
# Node ID 2d713670db9b832b0c5aa700824900bc1fc3c3cd | ||
# Parent df72f22b4b411ad4b08f924329678aabd5ac97d6 | ||
Fixed 1418 - crash on double free if loading WAV file failed | ||
|
||
diff -r df72f22b4b41 -r 2d713670db9b mixer.c | ||
--- a/mixer.c Mon Jan 30 21:41:45 2012 -0500 | ||
+++ b/mixer.c Sun Feb 12 17:57:17 2012 -0500 | ||
@@ -610,13 +610,15 @@ | ||
break; | ||
default: | ||
SDL_SetError("Unrecognized sound file type"); | ||
- return(0); | ||
+ if ( freesrc ) { | ||
+ SDL_RWclose(src); | ||
+ } | ||
+ loaded = NULL; | ||
+ break; | ||
} | ||
if ( !loaded ) { | ||
+ /* The individual loaders have closed src if needed */ | ||
SDL_free(chunk); | ||
- if ( freesrc ) { | ||
- SDL_RWclose(src); | ||
- } | ||
return(NULL); | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
|
||
# HG changeset patch | ||
# User James Le Cuirot <[email protected]> | ||
# Date 1330896767 0 | ||
# Node ID c92001a2c18f628698c58aa4e05a7335d10d0e9e | ||
# Parent 2d713670db9b832b0c5aa700824900bc1fc3c3cd | ||
Raise the maximum FluidSynth gain from 0.8 to 1.2 because apparently the former is too quiet in some cases. | ||
|
||
diff -r 2d713670db9b -r c92001a2c18f fluidsynth.c | ||
--- a/fluidsynth.c Sun Feb 12 17:57:17 2012 -0500 | ||
+++ b/fluidsynth.c Sun Mar 04 21:32:47 2012 +0000 | ||
@@ -176,8 +176,8 @@ | ||
|
||
void fluidsynth_setvolume(FluidSynthMidiSong *song, int volume) | ||
{ | ||
- /* FluidSynth's default is 0.2. Make 0.8 the maximum. */ | ||
- fluidsynth.fluid_synth_set_gain(song->synth, (float) (volume * 0.00625)); | ||
+ /* FluidSynth's default is 0.2. Make 1.2 the maximum. */ | ||
+ fluidsynth.fluid_synth_set_gain(song->synth, (float) (volume * 1.2 / MIX_MAX_VOLUME)); | ||
} | ||
|
||
int fluidsynth_playsome(FluidSynthMidiSong *song, void *dest, int dest_len) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
|
||
# HG changeset patch | ||
# User Sam Lantinga <[email protected]> | ||
# Date 1342998807 25200 | ||
# Node ID 56cad6484b04f83c8d42428c755a046678506436 | ||
# Parent c92001a2c18f628698c58aa4e05a7335d10d0e9e | ||
Paul P Komkoff Jr fixed malloc/free mismatch in the MikMod driver | ||
|
||
diff -r c92001a2c18f -r 56cad6484b04 CHANGES | ||
--- a/CHANGES Sun Mar 04 21:32:47 2012 +0000 | ||
+++ b/CHANGES Sun Jul 22 16:13:27 2012 -0700 | ||
@@ -1,3 +1,7 @@ | ||
+1.2.13: | ||
+Paul P Komkoff Jr - Sun Jul 22 16:12:28 PDT 2012 | ||
+ * Fixed malloc/free mismatch in the MikMod driver | ||
+ | ||
1.2.12: | ||
Sam Lantinga - Sat Jan 14 22:00:29 2012 -0500 | ||
* Fixed seek offset with SMPEG (was relative, should be absolute) | ||
diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.c | ||
--- a/dynamic_mod.c Sun Mar 04 21:32:47 2012 +0000 | ||
+++ b/dynamic_mod.c Sun Jul 22 16:13:27 2012 -0700 | ||
@@ -93,6 +93,13 @@ | ||
SDL_UnloadObject(mikmod.handle); | ||
return -1; | ||
} | ||
+ mikmod.MikMod_free = | ||
+ (void (*)(void*)) | ||
+ SDL_LoadFunction(mikmod.handle, "MikMod_free"); | ||
+ if ( mikmod.MikMod_free == NULL ) { | ||
+ SDL_UnloadObject(mikmod.handle); | ||
+ return -1; | ||
+ } | ||
mikmod.Player_Active = | ||
(BOOL (*)(void)) | ||
SDL_LoadFunction(mikmod.handle, "Player_Active"); | ||
diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.h | ||
--- a/dynamic_mod.h Sun Mar 04 21:32:47 2012 +0000 | ||
+++ b/dynamic_mod.h Sun Jul 22 16:13:27 2012 -0700 | ||
@@ -35,6 +35,7 @@ | ||
void (*MikMod_RegisterDriver)(struct MDRIVER*); | ||
int* MikMod_errno; | ||
char* (*MikMod_strerror)(int); | ||
+ void (*MikMod_free)(void*); | ||
BOOL (*Player_Active)(void); | ||
void (*Player_Free)(MODULE*); | ||
MODULE* (*Player_LoadGeneric)(MREADER*,int,BOOL); | ||
diff -r c92001a2c18f -r 56cad6484b04 music_mod.c | ||
--- a/music_mod.c Sun Mar 04 21:32:47 2012 +0000 | ||
+++ b/music_mod.c Sun Jul 22 16:13:27 2012 -0700 | ||
@@ -109,13 +109,13 @@ | ||
|
||
list = mikmod.MikMod_InfoDriver(); | ||
if ( list ) | ||
- free(list); | ||
+ mikmod.MikMod_free(list); | ||
else | ||
mikmod.MikMod_RegisterDriver(mikmod.drv_nos); | ||
|
||
list = mikmod.MikMod_InfoLoader(); | ||
if ( list ) | ||
- free(list); | ||
+ mikmod.MikMod_free(list); | ||
else | ||
mikmod.MikMod_RegisterAllLoaders(); | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
|
||
# HG changeset patch | ||
# User Sam Lantinga <[email protected]> | ||
# Date 1343000017 25200 | ||
# Node ID 2ebb0d016f277f7f643d8a66ed0e1099e10d1fba | ||
# Parent 56cad6484b04f83c8d42428c755a046678506436 | ||
Fixed normal linking with libmikmod and linking with earlier versions of libmikmod. | ||
|
||
diff -r 56cad6484b04 -r 2ebb0d016f27 dynamic_mod.c | ||
--- a/dynamic_mod.c Sun Jul 22 16:13:27 2012 -0700 | ||
+++ b/dynamic_mod.c Sun Jul 22 16:33:37 2012 -0700 | ||
@@ -97,8 +97,8 @@ | ||
(void (*)(void*)) | ||
SDL_LoadFunction(mikmod.handle, "MikMod_free"); | ||
if ( mikmod.MikMod_free == NULL ) { | ||
- SDL_UnloadObject(mikmod.handle); | ||
- return -1; | ||
+ /* libmikmod 3.1 and earlier doesn't have it */ | ||
+ mikmod.MikMod_free = free; | ||
} | ||
mikmod.Player_Active = | ||
(BOOL (*)(void)) | ||
@@ -246,6 +246,11 @@ | ||
mikmod.MikMod_RegisterDriver = MikMod_RegisterDriver; | ||
mikmod.MikMod_errno = &MikMod_errno; | ||
mikmod.MikMod_strerror = MikMod_strerror; | ||
+#if LIBMIKMOD_VERSION < ((3<<16)|(2<<8)) | ||
+ mikmod.MikMod_free = free; | ||
+#else | ||
+ mikmod.MikMod_free = MikMod_free; | ||
+#endif | ||
mikmod.Player_Active = Player_Active; | ||
mikmod.Player_Free = Player_Free; | ||
mikmod.Player_LoadGeneric = Player_LoadGeneric; |