Switched from mikmod to libmodplug, which is now in the public domain.
authorSam Lantinga <slouken@libsdl.org>
Sun, 09 Jun 2013 16:22:42 -0700
changeset 639f8901a7ff3f1
parent 638 0ff9b7b8ba7b
child 640 a6ea4f0348a3
Switched from mikmod to libmodplug, which is now in the public domain.
This allows us to add MOD support for iOS and Android, yay!
Android.mk
CHANGES.txt
SDL_mixer.h
VisualC/SDL_mixer_VS2008.vcproj
VisualC/external/include/mikmod.h
VisualC/external/include/modplug.h
VisualC/external/lib/x64/LICENSE.modplug.txt
VisualC/external/lib/x64/libmodplug-1.dll
VisualC/external/lib/x86/LICENSE.mikmod.txt
VisualC/external/lib/x86/LICENSE.modplug.txt
VisualC/external/lib/x86/libmikmod-2.dll
VisualC/external/lib/x86/libmodplug-1.dll
Xcode-iOS/SDL_mixer.xcodeproj/project.pbxproj
Xcode/Frameworks/mikmod.framework/Headers
Xcode/Frameworks/mikmod.framework/LICENSE.mikmod.txt
Xcode/Frameworks/mikmod.framework/Resources
Xcode/Frameworks/mikmod.framework/Versions/A/Headers/mikmod.h
Xcode/Frameworks/mikmod.framework/Versions/A/Resources/English.lproj/InfoPlist.strings
Xcode/Frameworks/mikmod.framework/Versions/A/Resources/Info.plist
Xcode/Frameworks/mikmod.framework/Versions/A/mikmod
Xcode/Frameworks/mikmod.framework/Versions/Current
Xcode/Frameworks/mikmod.framework/mikmod
Xcode/Frameworks/modplug.framework/Headers
Xcode/Frameworks/modplug.framework/LICENSE.modplug.txt
Xcode/Frameworks/modplug.framework/Resources
Xcode/Frameworks/modplug.framework/Versions/A/Headers/modplug.h
Xcode/Frameworks/modplug.framework/Versions/A/Resources/Info.plist
Xcode/Frameworks/modplug.framework/Versions/A/modplug
Xcode/Frameworks/modplug.framework/Versions/Current
Xcode/Frameworks/modplug.framework/modplug
Xcode/SDL_mixer.xcodeproj/project.pbxproj
configure
configure.in
debian/rules
dynamic_modplug.c
dynamic_modplug.h
external/libmodplug-0.8.8.4/AUTHORS
external/libmodplug-0.8.8.4/COPYING
external/libmodplug-0.8.8.4/ChangeLog
external/libmodplug-0.8.8.4/INSTALL
external/libmodplug-0.8.8.4/Makefile.am
external/libmodplug-0.8.8.4/Makefile.in
external/libmodplug-0.8.8.4/NEWS
external/libmodplug-0.8.8.4/README
external/libmodplug-0.8.8.4/TODO
external/libmodplug-0.8.8.4/aclocal.m4
external/libmodplug-0.8.8.4/config.guess
external/libmodplug-0.8.8.4/config.sub
external/libmodplug-0.8.8.4/configure
external/libmodplug-0.8.8.4/configure.in
external/libmodplug-0.8.8.4/depcomp
external/libmodplug-0.8.8.4/install-sh
external/libmodplug-0.8.8.4/libmodplug.pc.in
external/libmodplug-0.8.8.4/ltmain.sh
external/libmodplug-0.8.8.4/missing
external/libmodplug-0.8.8.4/src/Makefile.am
external/libmodplug-0.8.8.4/src/Makefile.in
external/libmodplug-0.8.8.4/src/config.h.in
external/libmodplug-0.8.8.4/src/fastmix.cpp
external/libmodplug-0.8.8.4/src/libmodplug/it_defs.h
external/libmodplug-0.8.8.4/src/libmodplug/sndfile.h
external/libmodplug-0.8.8.4/src/libmodplug/stdafx.h
external/libmodplug-0.8.8.4/src/load_669.cpp
external/libmodplug-0.8.8.4/src/load_abc.cpp
external/libmodplug-0.8.8.4/src/load_amf.cpp
external/libmodplug-0.8.8.4/src/load_ams.cpp
external/libmodplug-0.8.8.4/src/load_dbm.cpp
external/libmodplug-0.8.8.4/src/load_dmf.cpp
external/libmodplug-0.8.8.4/src/load_dsm.cpp
external/libmodplug-0.8.8.4/src/load_far.cpp
external/libmodplug-0.8.8.4/src/load_it.cpp
external/libmodplug-0.8.8.4/src/load_j2b.cpp
external/libmodplug-0.8.8.4/src/load_mdl.cpp
external/libmodplug-0.8.8.4/src/load_med.cpp
external/libmodplug-0.8.8.4/src/load_mid.cpp
external/libmodplug-0.8.8.4/src/load_mod.cpp
external/libmodplug-0.8.8.4/src/load_mt2.cpp
external/libmodplug-0.8.8.4/src/load_mtm.cpp
external/libmodplug-0.8.8.4/src/load_okt.cpp
external/libmodplug-0.8.8.4/src/load_pat.cpp
external/libmodplug-0.8.8.4/src/load_pat.h
external/libmodplug-0.8.8.4/src/load_psm.cpp
external/libmodplug-0.8.8.4/src/load_ptm.cpp
external/libmodplug-0.8.8.4/src/load_s3m.cpp
external/libmodplug-0.8.8.4/src/load_stm.cpp
external/libmodplug-0.8.8.4/src/load_ult.cpp
external/libmodplug-0.8.8.4/src/load_umx.cpp
external/libmodplug-0.8.8.4/src/load_wav.cpp
external/libmodplug-0.8.8.4/src/load_xm.cpp
external/libmodplug-0.8.8.4/src/mmcmp.cpp
external/libmodplug-0.8.8.4/src/modplug.cpp
external/libmodplug-0.8.8.4/src/modplug.h
external/libmodplug-0.8.8.4/src/snd_dsp.cpp
external/libmodplug-0.8.8.4/src/snd_flt.cpp
external/libmodplug-0.8.8.4/src/snd_fx.cpp
external/libmodplug-0.8.8.4/src/sndfile.cpp
external/libmodplug-0.8.8.4/src/sndmix.cpp
external/libmodplug-0.8.8.4/src/tables.h
mixer.c
music_modplug.c
music_modplug.h
     1.1 --- a/Android.mk	Sat Jun 08 17:35:37 2013 -0700
     1.2 +++ b/Android.mk	Sun Jun 09 16:22:42 2013 -0700
     1.3 @@ -4,15 +4,20 @@
     1.4  
     1.5  LOCAL_MODULE := SDL2_mixer
     1.6  
     1.7 +# Enable this if you want to support loading MOD music via modplug
     1.8 +# The library path should be a relative path to this directory.
     1.9 +SUPPORT_MOD_MODPLUG := true
    1.10 +MODPLUG_LIBRARY_PATH := external/libmodplug-0.8.8.4
    1.11 +
    1.12  # Enable this if you want to support loading MOD music via mikmod
    1.13  # The library path should be a relative path to this directory.
    1.14 -SUPPORT_MOD := true
    1.15 -MOD_LIBRARY_PATH := external/libmikmod-3.1.12
    1.16 +SUPPORT_MOD_MIKMOD := true
    1.17 +MIKMOD_LIBRARY_PATH := external/libmikmod-3.1.12
    1.18  
    1.19  # Enable this if you want to support loading MP3 music via SMPEG
    1.20  # The library path should be a relative path to this directory.
    1.21 -SUPPORT_MP3 := true
    1.22 -MP3_LIBRARY_PATH := external/smpeg2-2.0.0
    1.23 +SUPPORT_MP3_SMPEG := true
    1.24 +SMPEG_LIBRARY_PATH := external/smpeg2-2.0.0
    1.25  
    1.26  # Enable this if you want to support loading OGG Vorbis music via Tremor
    1.27  # The library path should be a relative path to this directory.
    1.28 @@ -30,14 +35,54 @@
    1.29  LOCAL_STATIC_LIBRARIES :=
    1.30  LOCAL_SHARED_LIBRARIES := SDL2
    1.31  
    1.32 -ifeq ($(SUPPORT_MOD),true)
    1.33 -    LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(MOD_LIBRARY_PATH)/include
    1.34 +ifeq ($(SUPPORT_MOD_MODPLUG),true)
    1.35 +    LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(MODPLUG_LIBRARY_PATH)/src $(LOCAL_PATH)/$(MODPLUG_LIBRARY_PATH)/src/libmodplug
    1.36 +    LOCAL_CFLAGS += -DMODPLUG_MUSIC -DHAVE_SETENV -DHAVE_SINF
    1.37 +    LOCAL_SRC_FILES += \
    1.38 +        $(MODPLUG_LIBRARY_PATH)/src/fastmix.cpp \
    1.39 +        $(MODPLUG_LIBRARY_PATH)/src/load_669.cpp \
    1.40 +        $(MODPLUG_LIBRARY_PATH)/src/load_abc.cpp \
    1.41 +        $(MODPLUG_LIBRARY_PATH)/src/load_amf.cpp \
    1.42 +        $(MODPLUG_LIBRARY_PATH)/src/load_ams.cpp \
    1.43 +        $(MODPLUG_LIBRARY_PATH)/src/load_dbm.cpp \
    1.44 +        $(MODPLUG_LIBRARY_PATH)/src/load_dmf.cpp \
    1.45 +        $(MODPLUG_LIBRARY_PATH)/src/load_dsm.cpp \
    1.46 +        $(MODPLUG_LIBRARY_PATH)/src/load_far.cpp \
    1.47 +        $(MODPLUG_LIBRARY_PATH)/src/load_it.cpp \
    1.48 +        $(MODPLUG_LIBRARY_PATH)/src/load_j2b.cpp \
    1.49 +        $(MODPLUG_LIBRARY_PATH)/src/load_mdl.cpp \
    1.50 +        $(MODPLUG_LIBRARY_PATH)/src/load_med.cpp \
    1.51 +        $(MODPLUG_LIBRARY_PATH)/src/load_mid.cpp \
    1.52 +        $(MODPLUG_LIBRARY_PATH)/src/load_mod.cpp \
    1.53 +        $(MODPLUG_LIBRARY_PATH)/src/load_mt2.cpp \
    1.54 +        $(MODPLUG_LIBRARY_PATH)/src/load_mtm.cpp \
    1.55 +        $(MODPLUG_LIBRARY_PATH)/src/load_okt.cpp \
    1.56 +        $(MODPLUG_LIBRARY_PATH)/src/load_pat.cpp \
    1.57 +        $(MODPLUG_LIBRARY_PATH)/src/load_psm.cpp \
    1.58 +        $(MODPLUG_LIBRARY_PATH)/src/load_ptm.cpp \
    1.59 +        $(MODPLUG_LIBRARY_PATH)/src/load_s3m.cpp \
    1.60 +        $(MODPLUG_LIBRARY_PATH)/src/load_stm.cpp \
    1.61 +        $(MODPLUG_LIBRARY_PATH)/src/load_ult.cpp \
    1.62 +        $(MODPLUG_LIBRARY_PATH)/src/load_umx.cpp \
    1.63 +        $(MODPLUG_LIBRARY_PATH)/src/load_wav.cpp \
    1.64 +        $(MODPLUG_LIBRARY_PATH)/src/load_xm.cpp \
    1.65 +        $(MODPLUG_LIBRARY_PATH)/src/mmcmp.cpp \
    1.66 +        $(MODPLUG_LIBRARY_PATH)/src/modplug.cpp \
    1.67 +        $(MODPLUG_LIBRARY_PATH)/src/snd_dsp.cpp \
    1.68 +        $(MODPLUG_LIBRARY_PATH)/src/snd_flt.cpp \
    1.69 +        $(MODPLUG_LIBRARY_PATH)/src/snd_fx.cpp \
    1.70 +        $(MODPLUG_LIBRARY_PATH)/src/sndfile.cpp \
    1.71 +        $(MODPLUG_LIBRARY_PATH)/src/sndmix.cpp
    1.72 +endif
    1.73 +
    1.74 +ifeq ($(SUPPORT_MOD_MIKMOD),true)
    1.75 +    LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(MIKMOD_LIBRARY_PATH)/include
    1.76      LOCAL_CFLAGS += -DMOD_MUSIC
    1.77      LOCAL_SHARED_LIBRARIES += mikmod
    1.78  endif
    1.79  
    1.80 -ifeq ($(SUPPORT_MP3),true)
    1.81 -    LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(MP3_LIBRARY_PATH)
    1.82 +ifeq ($(SUPPORT_MP3_SMPEG),true)
    1.83 +    LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(SMPEG_LIBRARY_PATH)
    1.84      LOCAL_CFLAGS += -DMP3_MUSIC
    1.85      LOCAL_SHARED_LIBRARIES += smpeg2
    1.86  endif
     2.1 --- a/CHANGES.txt	Sat Jun 08 17:35:37 2013 -0700
     2.2 +++ b/CHANGES.txt	Sun Jun 09 16:22:42 2013 -0700
     2.3 @@ -1,4 +1,6 @@
     2.4  2.0.0:
     2.5 +Sam Lantinga - Sun Jun  9 14:45:30 PDT 2013
     2.6 + * Made libmodplug the default MOD player as it is now in the public domain
     2.7  Sam Lantinga - Sat Jun  1 19:11:08 PDT 2013
     2.8   * Updated for SDL 2.0 release
     2.9   * SDL_LoadMUS_RW() now takes an argument telling whether or not the data source should be freed when done.
     3.1 --- a/SDL_mixer.h	Sat Jun 08 17:35:37 2013 -0700
     3.2 +++ b/SDL_mixer.h	Sun Jun 09 16:22:42 2013 -0700
     3.3 @@ -68,9 +68,10 @@
     3.4  {
     3.5      MIX_INIT_FLAC        = 0x00000001,
     3.6      MIX_INIT_MOD         = 0x00000002,
     3.7 -    MIX_INIT_MP3         = 0x00000004,
     3.8 -    MIX_INIT_OGG         = 0x00000008,
     3.9 -    MIX_INIT_FLUIDSYNTH  = 0x00000010
    3.10 +    MIX_INIT_MODPLUG     = 0x00000004,
    3.11 +    MIX_INIT_MP3         = 0x00000008,
    3.12 +    MIX_INIT_OGG         = 0x00000010,
    3.13 +    MIX_INIT_FLUIDSYNTH  = 0x00000020
    3.14  } MIX_InitFlags;
    3.15  
    3.16  /* Loads dynamic libraries and prepares them for use.  Flags should be
     4.1 --- a/VisualC/SDL_mixer_VS2008.vcproj	Sat Jun 08 17:35:37 2013 -0700
     4.2 +++ b/VisualC/SDL_mixer_VS2008.vcproj	Sun Jun 09 16:22:42 2013 -0700
     4.3 @@ -53,7 +53,7 @@
     4.4  				AdditionalOptions="/D OGG_DYNAMIC=\&quot;libvorbisfile-3.dll\&quot;"
     4.5  				Optimization="0"
     4.6  				AdditionalIncludeDirectories="..\timidity;..\native_midi;external\include"
     4.7 -				PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;WAV_MUSIC;MOD_MUSIC;MOD_DYNAMIC=\&quot;libmikmod-2.dll\&quot;;OGG_MUSIC;OGG_DYNAMIC=\&quot;libvorbisfile-3.dll\&quot;;FLAC_MUSIC;FLAC_DYNAMIC=\&quot;libFLAC-8.dll\&quot;;MP3_MUSIC;MP3_DYNAMIC=\&quot;smpeg2.dll\&quot;;MID_MUSIC;USE_TIMIDITY_MIDI;USE_NATIVE_MIDI"
     4.8 +				PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;WAV_MUSIC;MODPLUG_MUSIC;MODPLUG_DYNAMIC=\&quot;libmodplug-1.dll\&quot;;OGG_MUSIC;OGG_DYNAMIC=\&quot;libvorbisfile-3.dll\&quot;;FLAC_MUSIC;FLAC_DYNAMIC=\&quot;libFLAC-8.dll\&quot;;MP3_MUSIC;MP3_DYNAMIC=\&quot;smpeg2.dll\&quot;;MID_MUSIC;USE_TIMIDITY_MIDI;USE_NATIVE_MIDI"
     4.9  				MinimalRebuild="true"
    4.10  				RuntimeLibrary="2"
    4.11  				PrecompiledHeaderFile=".\Debug/SDL2_mixer.pch"
    4.12 @@ -140,7 +140,7 @@
    4.13  				AdditionalOptions="/D OGG_DYNAMIC=\&quot;libvorbisfile-3.dll\&quot;"
    4.14  				Optimization="0"
    4.15  				AdditionalIncludeDirectories="..\timidity;..\native_midi;external\include"
    4.16 -				PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;WAV_MUSIC;MOD_MUSIC;MOD_DYNAMIC=\&quot;libmikmod-2.dll\&quot;;OGG_MUSIC;OGG_DYNAMIC=\&quot;libvorbisfile-3.dll\&quot;;FLAC_MUSIC;FLAC_DYNAMIC=\&quot;libFLAC-8.dll\&quot;;MP3_MUSIC;MP3_DYNAMIC=\&quot;smpeg2.dll\&quot;;MID_MUSIC;USE_TIMIDITY_MIDI;USE_NATIVE_MIDI"
    4.17 +				PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;WAV_MUSIC;MODPLUG_MUSIC;MODPLUG_DYNAMIC=\&quot;libmodplug-1.dll\&quot;;OGG_MUSIC;OGG_DYNAMIC=\&quot;libvorbisfile-3.dll\&quot;;FLAC_MUSIC;FLAC_DYNAMIC=\&quot;libFLAC-8.dll\&quot;;MP3_MUSIC;MP3_DYNAMIC=\&quot;smpeg2.dll\&quot;;MID_MUSIC;USE_TIMIDITY_MIDI;USE_NATIVE_MIDI"
    4.18  				MinimalRebuild="true"
    4.19  				RuntimeLibrary="2"
    4.20  				PrecompiledHeaderFile=".\Debug/SDL2_mixer.pch"
    4.21 @@ -228,7 +228,7 @@
    4.22  				Optimization="2"
    4.23  				InlineFunctionExpansion="1"
    4.24  				AdditionalIncludeDirectories="..\timidity;..\native_midi;external\include"
    4.25 -				PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;WAV_MUSIC;MOD_MUSIC;MOD_DYNAMIC=\&quot;libmikmod-2.dll\&quot;;OGG_MUSIC;OGG_DYNAMIC=\&quot;libvorbisfile-3.dll\&quot;;FLAC_MUSIC;FLAC_DYNAMIC=\&quot;libFLAC-8.dll\&quot;;MP3_MUSIC;MP3_DYNAMIC=\&quot;smpeg2.dll\&quot;;MID_MUSIC;USE_TIMIDITY_MIDI;USE_NATIVE_MIDI"
    4.26 +				PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;WAV_MUSIC;MODPLUG_MUSIC;MODPLUG_DYNAMIC=\&quot;libmodplug-1.dll\&quot;;OGG_MUSIC;OGG_DYNAMIC=\&quot;libvorbisfile-3.dll\&quot;;FLAC_MUSIC;FLAC_DYNAMIC=\&quot;libFLAC-8.dll\&quot;;MP3_MUSIC;MP3_DYNAMIC=\&quot;smpeg2.dll\&quot;;MID_MUSIC;USE_TIMIDITY_MIDI;USE_NATIVE_MIDI"
    4.27  				StringPooling="true"
    4.28  				RuntimeLibrary="2"
    4.29  				EnableFunctionLevelLinking="true"
    4.30 @@ -314,7 +314,7 @@
    4.31  				Optimization="2"
    4.32  				InlineFunctionExpansion="1"
    4.33  				AdditionalIncludeDirectories="..\timidity;..\native_midi;external\include"
    4.34 -				PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;WAV_MUSIC;MOD_MUSIC;MOD_DYNAMIC=\&quot;libmikmod-2.dll\&quot;;OGG_MUSIC;OGG_DYNAMIC=\&quot;libvorbisfile-3.dll\&quot;;FLAC_MUSIC;FLAC_DYNAMIC=\&quot;libFLAC-8.dll\&quot;;MP3_MUSIC;MP3_DYNAMIC=\&quot;smpeg2.dll\&quot;;MID_MUSIC;USE_TIMIDITY_MIDI;USE_NATIVE_MIDI"
    4.35 +				PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;WAV_MUSIC;MODPLUG_MUSIC;MODPLUG_DYNAMIC=\&quot;libmodplug-1.dll\&quot;;OGG_MUSIC;OGG_DYNAMIC=\&quot;libvorbisfile-3.dll\&quot;;FLAC_MUSIC;FLAC_DYNAMIC=\&quot;libFLAC-8.dll\&quot;;MP3_MUSIC;MP3_DYNAMIC=\&quot;smpeg2.dll\&quot;;MID_MUSIC;USE_TIMIDITY_MIDI;USE_NATIVE_MIDI"
    4.36  				StringPooling="true"
    4.37  				RuntimeLibrary="2"
    4.38  				EnableFunctionLevelLinking="true"
    4.39 @@ -393,6 +393,14 @@
    4.40  			>
    4.41  		</File>
    4.42  		<File
    4.43 +			RelativePath="..\dynamic_modplug.c"
    4.44 +			>
    4.45 +		</File>
    4.46 +		<File
    4.47 +			RelativePath="..\dynamic_modplug.h"
    4.48 +			>
    4.49 +		</File>
    4.50 +		<File
    4.51  			RelativePath="..\dynamic_mp3.c"
    4.52  			>
    4.53  			<FileConfiguration
    4.54 @@ -901,6 +909,14 @@
    4.55  			>
    4.56  		</File>
    4.57  		<File
    4.58 +			RelativePath="..\music_modplug.c"
    4.59 +			>
    4.60 +		</File>
    4.61 +		<File
    4.62 +			RelativePath="..\music_modplug.h"
    4.63 +			>
    4.64 +		</File>
    4.65 +		<File
    4.66  			RelativePath="..\music_ogg.c"
    4.67  			>
    4.68  			<FileConfiguration
     5.1 --- a/VisualC/external/include/mikmod.h	Sat Jun 08 17:35:37 2013 -0700
     5.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.3 @@ -1,725 +0,0 @@
     5.4 -/*	MikMod sound library
     5.5 -	(c) 1998, 1999, 2000 Miodrag Vallat and others - see file AUTHORS
     5.6 -	for complete list.
     5.7 -
     5.8 -	This library is free software; you can redistribute it and/or modify
     5.9 -	it under the terms of the GNU Library General Public License as
    5.10 -	published by the Free Software Foundation; either version 2 of
    5.11 -	the License, or (at your option) any later version.
    5.12 - 
    5.13 -	This program is distributed in the hope that it will be useful,
    5.14 -	but WITHOUT ANY WARRANTY; without even the implied warranty of
    5.15 -	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    5.16 -	GNU Library General Public License for more details.
    5.17 - 
    5.18 -	You should have received a copy of the GNU Library General Public
    5.19 -	License along with this library; if not, write to the Free Software
    5.20 -	Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    5.21 -	02111-1307, USA.
    5.22 -*/
    5.23 -
    5.24 -/*==============================================================================
    5.25 -
    5.26 -  $Id: mikmod.h.in,v 1.2 2004/06/01 16:43:45 raph Exp $
    5.27 -
    5.28 -  MikMod sound library include file
    5.29 -
    5.30 -==============================================================================*/
    5.31 -
    5.32 -#ifndef _MIKMOD_H_
    5.33 -#define _MIKMOD_H_
    5.34 -
    5.35 -#include <stdio.h>
    5.36 -#include <stdlib.h>
    5.37 -
    5.38 -#ifdef __cplusplus
    5.39 -extern "C" {
    5.40 -#endif
    5.41 -
    5.42 -/*
    5.43 - * ========== Compiler magic for shared libraries
    5.44 - */
    5.45 -
    5.46 -#if defined WIN32 && defined _DLL
    5.47 -#ifdef DLL_EXPORTS
    5.48 -#define MIKMODAPI __declspec(dllexport)
    5.49 -#else
    5.50 -#define MIKMODAPI __declspec(dllimport)
    5.51 -#endif
    5.52 -#else
    5.53 -#define MIKMODAPI
    5.54 -#endif
    5.55 -
    5.56 -/*
    5.57 - *	========== Library version
    5.58 - */
    5.59 -
    5.60 -#define LIBMIKMOD_VERSION_MAJOR 3L
    5.61 -#define LIBMIKMOD_VERSION_MINOR 1L
    5.62 -#define LIBMIKMOD_REVISION      10L
    5.63 -
    5.64 -#define LIBMIKMOD_VERSION \
    5.65 -	((LIBMIKMOD_VERSION_MAJOR<<16)| \
    5.66 -	 (LIBMIKMOD_VERSION_MINOR<< 8)| \
    5.67 -	 (LIBMIKMOD_REVISION))
    5.68 -
    5.69 -MIKMODAPI extern long MikMod_GetVersion(void);
    5.70 -
    5.71 -/*
    5.72 - *	========== Platform independent-type definitions
    5.73 - */
    5.74 -
    5.75 -#ifdef WIN32
    5.76 -#define WIN32_LEAN_AND_MEAN
    5.77 -#include <windows.h>
    5.78 -#include <io.h>
    5.79 -#include <mmsystem.h>
    5.80 -
    5.81 -/* Avoid conflicts with windef.h */
    5.82 -#define SBYTE   _mm_SBYTE
    5.83 -#define UBYTE   _mm_UBYTE
    5.84 -#define SWORD   _mm_SWORD
    5.85 -#define UWORD   _mm_UWORD
    5.86 -#define SLONG   _mm_SLONG
    5.87 -#define ULONG   _mm_ULONG
    5.88 -#define BOOL    _mm_BOOL
    5.89 -
    5.90 -#endif /* WIN32 */
    5.91 -
    5.92 -#if defined(__OS2__)||defined(__EMX__)
    5.93 -#define INCL_DOSSEMAPHORES
    5.94 -#include <os2.h>
    5.95 -#else
    5.96 -typedef char CHAR;
    5.97 -#endif
    5.98 -
    5.99 -
   5.100 -
   5.101 -#if defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(_LP64)
   5.102 -/* 64 bit architectures */
   5.103 -
   5.104 -typedef signed char     SBYTE;      /* 1 byte, signed */
   5.105 -typedef unsigned char   UBYTE;      /* 1 byte, unsigned */
   5.106 -typedef signed short    SWORD;      /* 2 bytes, signed */
   5.107 -typedef unsigned short  UWORD;      /* 2 bytes, unsigned */
   5.108 -typedef signed int      SLONG;      /* 4 bytes, signed */
   5.109 -typedef unsigned int    ULONG;      /* 4 bytes, unsigned */
   5.110 -typedef int             BOOL;       /* 0=false, <>0 true */
   5.111 -
   5.112 -#else
   5.113 -/* 32 bit architectures */
   5.114 -
   5.115 -typedef signed char     SBYTE;      /* 1 byte, signed */
   5.116 -typedef unsigned char   UBYTE;      /* 1 byte, unsigned */
   5.117 -typedef signed short    SWORD;      /* 2 bytes, signed */
   5.118 -typedef unsigned short  UWORD;      /* 2 bytes, unsigned */
   5.119 -typedef signed long     SLONG;      /* 4 bytes, signed */
   5.120 -typedef unsigned long   ULONG;      /* 4 bytes, unsigned */
   5.121 -typedef int             BOOL;       /* 0=false, <>0 true */
   5.122 -#endif
   5.123 -
   5.124 -/*
   5.125 - *	========== Error codes
   5.126 - */
   5.127 -
   5.128 -enum {
   5.129 -	MMERR_OPENING_FILE = 1,
   5.130 -	MMERR_OUT_OF_MEMORY,
   5.131 -	MMERR_DYNAMIC_LINKING,
   5.132 -
   5.133 -	MMERR_SAMPLE_TOO_BIG,
   5.134 -	MMERR_OUT_OF_HANDLES,
   5.135 -	MMERR_UNKNOWN_WAVE_TYPE,
   5.136 -
   5.137 -	MMERR_LOADING_PATTERN,
   5.138 -	MMERR_LOADING_TRACK,
   5.139 -	MMERR_LOADING_HEADER,
   5.140 -	MMERR_LOADING_SAMPLEINFO,
   5.141 -	MMERR_NOT_A_MODULE,
   5.142 -	MMERR_NOT_A_STREAM,
   5.143 -	MMERR_MED_SYNTHSAMPLES,
   5.144 -	MMERR_ITPACK_INVALID_DATA,
   5.145 -
   5.146 -	MMERR_DETECTING_DEVICE,
   5.147 -	MMERR_INVALID_DEVICE,
   5.148 -	MMERR_INITIALIZING_MIXER,
   5.149 -	MMERR_OPENING_AUDIO,
   5.150 -	MMERR_8BIT_ONLY,
   5.151 -	MMERR_16BIT_ONLY,
   5.152 -	MMERR_STEREO_ONLY,
   5.153 -	MMERR_ULAW,
   5.154 -	MMERR_NON_BLOCK,
   5.155 -
   5.156 -	MMERR_AF_AUDIO_PORT,
   5.157 -
   5.158 -	MMERR_AIX_CONFIG_INIT,
   5.159 -	MMERR_AIX_CONFIG_CONTROL,
   5.160 -	MMERR_AIX_CONFIG_START,
   5.161 -
   5.162 -	MMERR_GUS_SETTINGS,
   5.163 -	MMERR_GUS_RESET,
   5.164 -	MMERR_GUS_TIMER,
   5.165 -
   5.166 -	MMERR_HP_SETSAMPLESIZE,
   5.167 -	MMERR_HP_SETSPEED,
   5.168 -	MMERR_HP_CHANNELS,
   5.169 -	MMERR_HP_AUDIO_OUTPUT,
   5.170 -	MMERR_HP_AUDIO_DESC,
   5.171 -	MMERR_HP_BUFFERSIZE,
   5.172 -
   5.173 -	MMERR_OSS_SETFRAGMENT,
   5.174 -	MMERR_OSS_SETSAMPLESIZE,
   5.175 -	MMERR_OSS_SETSTEREO,
   5.176 -	MMERR_OSS_SETSPEED,
   5.177 -
   5.178 -	MMERR_SGI_SPEED,
   5.179 -	MMERR_SGI_16BIT,
   5.180 -	MMERR_SGI_8BIT,
   5.181 -	MMERR_SGI_STEREO,
   5.182 -	MMERR_SGI_MONO,
   5.183 -
   5.184 -	MMERR_SUN_INIT,
   5.185 -
   5.186 -	MMERR_OS2_MIXSETUP,
   5.187 -	MMERR_OS2_SEMAPHORE,
   5.188 -	MMERR_OS2_TIMER,
   5.189 -	MMERR_OS2_THREAD,
   5.190 -
   5.191 -	MMERR_DS_PRIORITY,
   5.192 -	MMERR_DS_BUFFER,
   5.193 -	MMERR_DS_FORMAT,
   5.194 -	MMERR_DS_NOTIFY,
   5.195 -	MMERR_DS_EVENT,
   5.196 -	MMERR_DS_THREAD,
   5.197 -	MMERR_DS_UPDATE,
   5.198 -
   5.199 -	MMERR_WINMM_HANDLE,
   5.200 -	MMERR_WINMM_ALLOCATED,
   5.201 -	MMERR_WINMM_DEVICEID,
   5.202 -	MMERR_WINMM_FORMAT,
   5.203 -	MMERR_WINMM_UNKNOWN,
   5.204 -
   5.205 -	MMERR_MAC_SPEED,
   5.206 -	MMERR_MAC_START,
   5.207 -
   5.208 -	MMERR_MAX
   5.209 -};
   5.210 -
   5.211 -/*
   5.212 - *	========== Error handling
   5.213 - */
   5.214 -
   5.215 -typedef void (MikMod_handler)(void);
   5.216 -typedef MikMod_handler *MikMod_handler_t;
   5.217 -
   5.218 -MIKMODAPI extern int  MikMod_errno;
   5.219 -MIKMODAPI extern BOOL MikMod_critical;
   5.220 -MIKMODAPI extern char *MikMod_strerror(int);
   5.221 -
   5.222 -MIKMODAPI extern MikMod_handler_t MikMod_RegisterErrorHandler(MikMod_handler_t);
   5.223 -
   5.224 -/*
   5.225 - *	========== Library initialization and core functions
   5.226 - */
   5.227 -
   5.228 -struct MDRIVER;
   5.229 -
   5.230 -MIKMODAPI extern void   MikMod_RegisterAllDrivers(void);
   5.231 -
   5.232 -MIKMODAPI extern CHAR*  MikMod_InfoDriver(void);
   5.233 -MIKMODAPI extern void   MikMod_RegisterDriver(struct MDRIVER*);
   5.234 -MIKMODAPI extern int    MikMod_DriverFromAlias(CHAR*);
   5.235 -
   5.236 -MIKMODAPI extern BOOL   MikMod_Init(CHAR*);
   5.237 -MIKMODAPI extern void   MikMod_Exit(void);
   5.238 -MIKMODAPI extern BOOL   MikMod_Reset(CHAR*);
   5.239 -MIKMODAPI extern BOOL   MikMod_SetNumVoices(int,int);
   5.240 -MIKMODAPI extern BOOL   MikMod_Active(void);
   5.241 -MIKMODAPI extern BOOL   MikMod_EnableOutput(void);
   5.242 -MIKMODAPI extern void   MikMod_DisableOutput(void);
   5.243 -MIKMODAPI extern void   MikMod_Update(void);
   5.244 -
   5.245 -MIKMODAPI extern BOOL   MikMod_InitThreads(void);
   5.246 -MIKMODAPI extern void   MikMod_Lock(void);
   5.247 -MIKMODAPI extern void   MikMod_Unlock(void);
   5.248 -
   5.249 -/*
   5.250 - *	========== Reader, Writer
   5.251 - */
   5.252 -
   5.253 -typedef struct MREADER {
   5.254 -	BOOL (*Seek)(struct MREADER*,long,int);
   5.255 -	long (*Tell)(struct MREADER*);
   5.256 -	BOOL (*Read)(struct MREADER*,void*,size_t);
   5.257 -	int  (*Get)(struct MREADER*);
   5.258 -	BOOL (*Eof)(struct MREADER*);
   5.259 -} MREADER;
   5.260 -
   5.261 -typedef struct MWRITER {
   5.262 -	BOOL (*Seek)(struct MWRITER*,long,int);
   5.263 -	long (*Tell)(struct MWRITER*);
   5.264 -	BOOL (*Write)(struct MWRITER*,void*,size_t);
   5.265 -	BOOL (*Put)(struct MWRITER*,int);
   5.266 -} MWRITER;
   5.267 -
   5.268 -/*
   5.269 - *	========== Samples
   5.270 - */
   5.271 -
   5.272 -/* Sample playback should not be interrupted */
   5.273 -#define SFX_CRITICAL 1
   5.274 -
   5.275 -/* Sample format [loading and in-memory] flags: */
   5.276 -#define SF_16BITS       0x0001
   5.277 -#define SF_STEREO       0x0002
   5.278 -#define SF_SIGNED       0x0004
   5.279 -#define SF_BIG_ENDIAN   0x0008
   5.280 -#define SF_DELTA        0x0010
   5.281 -#define SF_ITPACKED		0x0020
   5.282 -
   5.283 -#define	SF_FORMATMASK	0x003F
   5.284 -
   5.285 -/* General Playback flags */
   5.286 -
   5.287 -#define SF_LOOP         0x0100
   5.288 -#define SF_BIDI         0x0200
   5.289 -#define SF_REVERSE      0x0400
   5.290 -#define SF_SUSTAIN      0x0800
   5.291 -
   5.292 -#define SF_PLAYBACKMASK	0x0C00
   5.293 -
   5.294 -/* Module-only Playback Flags */
   5.295 -
   5.296 -#define SF_OWNPAN		0x1000
   5.297 -#define SF_UST_LOOP     0x2000
   5.298 -
   5.299 -#define SF_EXTRAPLAYBACKMASK	0x3000
   5.300 -
   5.301 -/* Panning constants */
   5.302 -#define PAN_LEFT		0
   5.303 -#define PAN_HALFLEFT 	64
   5.304 -#define PAN_CENTER		128
   5.305 -#define PAN_HALFRIGHT	192
   5.306 -#define PAN_RIGHT		255
   5.307 -#define PAN_SURROUND	512 /* panning value for Dolby Surround */
   5.308 -
   5.309 -typedef struct SAMPLE {
   5.310 -	SWORD  panning;     /* panning (0-255 or PAN_SURROUND) */
   5.311 -	ULONG  speed;       /* Base playing speed/frequency of note */
   5.312 -	UBYTE  volume;      /* volume 0-64 */
   5.313 -	UWORD  inflags;		/* sample format on disk */
   5.314 -	UWORD  flags;       /* sample format in memory */
   5.315 -	ULONG  length;      /* length of sample (in samples!) */
   5.316 -	ULONG  loopstart;   /* repeat position (relative to start, in samples) */
   5.317 -	ULONG  loopend;     /* repeat end */
   5.318 -	ULONG  susbegin;    /* sustain loop begin (in samples) \  Not Supported */
   5.319 -	ULONG  susend;      /* sustain loop end                /      Yet! */
   5.320 -
   5.321 -	/* Variables used by the module player only! (ignored for sound effects) */
   5.322 -	UBYTE  globvol;     /* global volume */
   5.323 -	UBYTE  vibflags;    /* autovibrato flag stuffs */
   5.324 -	UBYTE  vibtype;     /* Vibratos moved from INSTRUMENT to SAMPLE */
   5.325 -	UBYTE  vibsweep;
   5.326 -	UBYTE  vibdepth;
   5.327 -	UBYTE  vibrate;
   5.328 -	CHAR*  samplename;  /* name of the sample */
   5.329 -
   5.330 -	/* Values used internally only */
   5.331 -	UWORD  avibpos;     /* autovibrato pos [player use] */
   5.332 -	UBYTE  divfactor;   /* for sample scaling, maintains proper period slides */
   5.333 -	ULONG  seekpos;     /* seek position in file */
   5.334 -	SWORD  handle;      /* sample handle used by individual drivers */
   5.335 -} SAMPLE;
   5.336 -
   5.337 -/* Sample functions */
   5.338 -
   5.339 -MIKMODAPI extern SAMPLE *Sample_Load(CHAR*);
   5.340 -MIKMODAPI extern SAMPLE *Sample_LoadFP(FILE*);
   5.341 -MIKMODAPI extern SAMPLE *Sample_LoadGeneric(MREADER*);
   5.342 -MIKMODAPI extern void   Sample_Free(SAMPLE*);
   5.343 -MIKMODAPI extern SBYTE  Sample_Play(SAMPLE*,ULONG,UBYTE);
   5.344 -
   5.345 -MIKMODAPI extern void   Voice_SetVolume(SBYTE,UWORD);
   5.346 -MIKMODAPI extern UWORD  Voice_GetVolume(SBYTE);
   5.347 -MIKMODAPI extern void   Voice_SetFrequency(SBYTE,ULONG);
   5.348 -MIKMODAPI extern ULONG  Voice_GetFrequency(SBYTE);
   5.349 -MIKMODAPI extern void   Voice_SetPanning(SBYTE,ULONG);
   5.350 -MIKMODAPI extern ULONG  Voice_GetPanning(SBYTE);
   5.351 -MIKMODAPI extern void   Voice_Play(SBYTE,SAMPLE*,ULONG);
   5.352 -MIKMODAPI extern void   Voice_Stop(SBYTE);
   5.353 -MIKMODAPI extern BOOL   Voice_Stopped(SBYTE);
   5.354 -MIKMODAPI extern SLONG  Voice_GetPosition(SBYTE);
   5.355 -MIKMODAPI extern ULONG  Voice_RealVolume(SBYTE);
   5.356 -
   5.357 -/*
   5.358 - *	========== Internal module representation (UniMod)
   5.359 - */
   5.360 -
   5.361 -/*
   5.362 -	Instrument definition - for information only, the only field which may be
   5.363 -	of use in user programs is the name field
   5.364 -*/
   5.365 -
   5.366 -/* Instrument note count */
   5.367 -#define INSTNOTES 120
   5.368 -
   5.369 -/* Envelope point */
   5.370 -typedef struct ENVPT {
   5.371 -	SWORD pos;
   5.372 -	SWORD val;
   5.373 -} ENVPT;
   5.374 -
   5.375 -/* Envelope point count */
   5.376 -#define ENVPOINTS 32
   5.377 -
   5.378 -/* Instrument structure */
   5.379 -typedef struct INSTRUMENT {
   5.380 -	CHAR* insname;
   5.381 -
   5.382 -	UBYTE flags;
   5.383 -	UWORD samplenumber[INSTNOTES];
   5.384 -	UBYTE samplenote[INSTNOTES];
   5.385 -
   5.386 -	UBYTE nnatype;
   5.387 -	UBYTE dca;              /* duplicate check action */
   5.388 -	UBYTE dct;              /* duplicate check type */
   5.389 -	UBYTE globvol;
   5.390 -	UWORD volfade;
   5.391 -	SWORD panning;          /* instrument-based panning var */
   5.392 -
   5.393 -	UBYTE pitpansep;        /* pitch pan separation (0 to 255) */
   5.394 -	UBYTE pitpancenter;     /* pitch pan center (0 to 119) */
   5.395 -	UBYTE rvolvar;          /* random volume varations (0 - 100%) */
   5.396 -	UBYTE rpanvar;          /* random panning varations (0 - 100%) */
   5.397 -
   5.398 -	/* volume envelope */
   5.399 -	UBYTE volflg;           /* bit 0: on 1: sustain 2: loop */
   5.400 -	UBYTE volpts;
   5.401 -	UBYTE volsusbeg;
   5.402 -	UBYTE volsusend;
   5.403 -	UBYTE volbeg;
   5.404 -	UBYTE volend;
   5.405 -	ENVPT volenv[ENVPOINTS];
   5.406 -	/* panning envelope */
   5.407 -	UBYTE panflg;           /* bit 0: on 1: sustain 2: loop */
   5.408 -	UBYTE panpts;
   5.409 -	UBYTE pansusbeg;
   5.410 -	UBYTE pansusend;
   5.411 -	UBYTE panbeg;
   5.412 -	UBYTE panend;
   5.413 -	ENVPT panenv[ENVPOINTS];
   5.414 -	/* pitch envelope */
   5.415 -	UBYTE pitflg;           /* bit 0: on 1: sustain 2: loop */
   5.416 -	UBYTE pitpts;
   5.417 -	UBYTE pitsusbeg;
   5.418 -	UBYTE pitsusend;
   5.419 -	UBYTE pitbeg;
   5.420 -	UBYTE pitend;
   5.421 -	ENVPT pitenv[ENVPOINTS];
   5.422 -} INSTRUMENT;
   5.423 -
   5.424 -struct MP_CONTROL;
   5.425 -struct MP_VOICE;
   5.426 -
   5.427 -/*
   5.428 -	Module definition
   5.429 -*/
   5.430 -
   5.431 -/* maximum master channels supported */
   5.432 -#define UF_MAXCHAN	64
   5.433 -
   5.434 -/* Module flags */
   5.435 -#define UF_XMPERIODS	0x0001 /* XM periods / finetuning */
   5.436 -#define UF_LINEAR		0x0002 /* LINEAR periods (UF_XMPERIODS must be set) */
   5.437 -#define UF_INST			0x0004 /* Instruments are used */
   5.438 -#define UF_NNA			0x0008 /* IT: NNA used, set numvoices rather
   5.439 -								  than numchn */
   5.440 -#define UF_S3MSLIDES	0x0010 /* uses old S3M volume slides */
   5.441 -#define UF_BGSLIDES		0x0020 /* continue volume slides in the background */
   5.442 -#define UF_HIGHBPM		0x0040 /* MED: can use >255 bpm */
   5.443 -#define UF_NOWRAP		0x0080 /* XM-type (i.e. illogical) pattern break
   5.444 -								  semantics */
   5.445 -#define UF_ARPMEM		0x0100 /* IT: need arpeggio memory */
   5.446 -#define UF_FT2QUIRKS	0x0200 /* emulate some FT2 replay quirks */
   5.447 -#define UF_PANNING		0x0400 /* module uses panning effects or have
   5.448 -								  non-tracker default initial panning */
   5.449 -
   5.450 -typedef struct MODULE {
   5.451 -	/* general module information */
   5.452 -		CHAR*       songname;    /* name of the song */
   5.453 -		CHAR*       modtype;     /* string type of module loaded */
   5.454 -		CHAR*       comment;     /* module comments */
   5.455 -
   5.456 -		UWORD       flags;       /* See module flags above */
   5.457 -		UBYTE       numchn;      /* number of module channels */
   5.458 -		UBYTE       numvoices;   /* max # voices used for full NNA playback */
   5.459 -		UWORD       numpos;      /* number of positions in this song */
   5.460 -		UWORD       numpat;      /* number of patterns in this song */
   5.461 -		UWORD       numins;      /* number of instruments */
   5.462 -		UWORD       numsmp;      /* number of samples */
   5.463 -struct  INSTRUMENT* instruments; /* all instruments */
   5.464 -struct  SAMPLE*     samples;     /* all samples */
   5.465 -		UBYTE       realchn;     /* real number of channels used */
   5.466 -		UBYTE       totalchn;    /* total number of channels used (incl NNAs) */
   5.467 -
   5.468 -	/* playback settings */
   5.469 -		UWORD       reppos;      /* restart position */
   5.470 -		UBYTE       initspeed;   /* initial song speed */
   5.471 -		UWORD       inittempo;   /* initial song tempo */
   5.472 -		UBYTE       initvolume;  /* initial global volume (0 - 128) */
   5.473 -		UWORD       panning[UF_MAXCHAN]; /* panning positions */
   5.474 -		UBYTE       chanvol[UF_MAXCHAN]; /* channel positions */
   5.475 -		UWORD       bpm;         /* current beats-per-minute speed */
   5.476 -		UWORD       sngspd;      /* current song speed */
   5.477 -		SWORD       volume;      /* song volume (0-128) (or user volume) */
   5.478 -
   5.479 -		BOOL        extspd;      /* extended speed flag (default enabled) */
   5.480 -		BOOL        panflag;     /* panning flag (default enabled) */
   5.481 -		BOOL        wrap;        /* wrap module ? (default disabled) */
   5.482 -		BOOL        loop;		 /* allow module to loop ? (default enabled) */
   5.483 -		BOOL        fadeout;	 /* volume fade out during last pattern */
   5.484 -
   5.485 -		UWORD       patpos;      /* current row number */
   5.486 -		SWORD       sngpos;      /* current song position */
   5.487 -		ULONG       sngtime;     /* current song time in 2^-10 seconds */
   5.488 -
   5.489 -		SWORD       relspd;      /* relative speed factor */
   5.490 -
   5.491 -	/* internal module representation */
   5.492 -		UWORD       numtrk;      /* number of tracks */
   5.493 -		UBYTE**     tracks;      /* array of numtrk pointers to tracks */
   5.494 -		UWORD*      patterns;    /* array of Patterns */
   5.495 -		UWORD*      pattrows;    /* array of number of rows for each pattern */
   5.496 -		UWORD*      positions;   /* all positions */
   5.497 -
   5.498 -		BOOL        forbid;      /* if true, no player update! */
   5.499 -		UWORD       numrow;      /* number of rows on current pattern */
   5.500 -		UWORD       vbtick;      /* tick counter (counts from 0 to sngspd) */
   5.501 -		UWORD       sngremainder;/* used for song time computation */
   5.502 -
   5.503 -struct MP_CONTROL*  control;     /* Effects Channel info (size pf->numchn) */
   5.504 -struct MP_VOICE*    voice;       /* Audio Voice information (size md_numchn) */
   5.505 -
   5.506 -		UBYTE       globalslide; /* global volume slide rate */
   5.507 -		UBYTE       pat_repcrazy;/* module has just looped to position -1 */
   5.508 -		UWORD       patbrk;      /* position where to start a new pattern */
   5.509 -		UBYTE       patdly;      /* patterndelay counter (command memory) */
   5.510 -		UBYTE       patdly2;     /* patterndelay counter (real one) */
   5.511 -		SWORD       posjmp;      /* flag to indicate a jump is needed... */
   5.512 -		UWORD		bpmlimit;	 /* threshold to detect bpm or speed values */
   5.513 -} MODULE;
   5.514 -
   5.515 -/*
   5.516 - *	========== Module loaders
   5.517 - */
   5.518 -
   5.519 -struct MLOADER;
   5.520 -
   5.521 -MIKMODAPI extern CHAR*   MikMod_InfoLoader(void);
   5.522 -MIKMODAPI extern void    MikMod_RegisterAllLoaders(void);
   5.523 -MIKMODAPI extern void    MikMod_RegisterLoader(struct MLOADER*);
   5.524 -
   5.525 -MIKMODAPI extern struct MLOADER load_669; /* 669 and Extended-669 (by Tran/Renaissance) */
   5.526 -MIKMODAPI extern struct MLOADER load_amf; /* DMP Advanced Module Format (by Otto Chrons) */
   5.527 -MIKMODAPI extern struct MLOADER load_dsm; /* DSIK internal module format */
   5.528 -MIKMODAPI extern struct MLOADER load_far; /* Farandole Composer (by Daniel Potter) */
   5.529 -MIKMODAPI extern struct MLOADER load_gdm; /* General DigiMusic (by Edward Schlunder) */
   5.530 -MIKMODAPI extern struct MLOADER load_it;  /* Impulse Tracker (by Jeffrey Lim) */
   5.531 -MIKMODAPI extern struct MLOADER load_imf; /* Imago Orpheus (by Lutz Roeder) */
   5.532 -MIKMODAPI extern struct MLOADER load_med; /* Amiga MED modules (by Teijo Kinnunen) */
   5.533 -MIKMODAPI extern struct MLOADER load_m15; /* Soundtracker 15-instrument */
   5.534 -MIKMODAPI extern struct MLOADER load_mod; /* Standard 31-instrument Module loader */
   5.535 -MIKMODAPI extern struct MLOADER load_mtm; /* Multi-Tracker Module (by Renaissance) */
   5.536 -MIKMODAPI extern struct MLOADER load_okt; /* Amiga Oktalyzer */
   5.537 -MIKMODAPI extern struct MLOADER load_stm; /* ScreamTracker 2 (by Future Crew) */
   5.538 -MIKMODAPI extern struct MLOADER load_stx; /* STMIK 0.2 (by Future Crew) */
   5.539 -MIKMODAPI extern struct MLOADER load_s3m; /* ScreamTracker 3 (by Future Crew) */
   5.540 -MIKMODAPI extern struct MLOADER load_ult; /* UltraTracker (by MAS) */
   5.541 -MIKMODAPI extern struct MLOADER load_uni; /* MikMod and APlayer internal module format */
   5.542 -MIKMODAPI extern struct MLOADER load_xm;  /* FastTracker 2 (by Triton) */
   5.543 -
   5.544 -/*
   5.545 - *	========== Module player
   5.546 - */
   5.547 -
   5.548 -MIKMODAPI extern MODULE* Player_Load(CHAR*,int,BOOL);
   5.549 -MIKMODAPI extern MODULE* Player_LoadFP(FILE*,int,BOOL);
   5.550 -MIKMODAPI extern MODULE* Player_LoadGeneric(MREADER*,int,BOOL);
   5.551 -MIKMODAPI extern CHAR*   Player_LoadTitle(CHAR*);
   5.552 -MIKMODAPI extern CHAR*   Player_LoadTitleFP(FILE*);
   5.553 -MIKMODAPI extern void    Player_Free(MODULE*);
   5.554 -MIKMODAPI extern void    Player_Start(MODULE*);
   5.555 -MIKMODAPI extern BOOL    Player_Active(void);
   5.556 -MIKMODAPI extern void    Player_Stop(void);
   5.557 -MIKMODAPI extern void    Player_TogglePause(void);
   5.558 -MIKMODAPI extern BOOL    Player_Paused(void);
   5.559 -MIKMODAPI extern void    Player_NextPosition(void);
   5.560 -MIKMODAPI extern void    Player_PrevPosition(void);
   5.561 -MIKMODAPI extern void    Player_SetPosition(UWORD);
   5.562 -MIKMODAPI extern BOOL    Player_Muted(UBYTE);
   5.563 -MIKMODAPI extern void    Player_SetVolume(SWORD);
   5.564 -MIKMODAPI extern MODULE* Player_GetModule(void);
   5.565 -MIKMODAPI extern void    Player_SetSpeed(UWORD);
   5.566 -MIKMODAPI extern void    Player_SetTempo(UWORD);
   5.567 -MIKMODAPI extern void    Player_Unmute(SLONG,...);
   5.568 -MIKMODAPI extern void    Player_Mute(SLONG,...);
   5.569 -MIKMODAPI extern void    Player_ToggleMute(SLONG,...);
   5.570 -MIKMODAPI extern int     Player_GetChannelVoice(UBYTE);
   5.571 -MIKMODAPI extern UWORD   Player_GetChannelPeriod(UBYTE);
   5.572 -
   5.573 -typedef void (MikMod_player)(void);
   5.574 -typedef MikMod_player *MikMod_player_t;
   5.575 -
   5.576 -MIKMODAPI extern MikMod_player_t MikMod_RegisterPlayer(MikMod_player_t);
   5.577 -
   5.578 -#define MUTE_EXCLUSIVE  32000
   5.579 -#define MUTE_INCLUSIVE  32001
   5.580 -
   5.581 -/*
   5.582 - *	========== Drivers
   5.583 - */
   5.584 -
   5.585 -enum {
   5.586 -	MD_MUSIC = 0,
   5.587 -	MD_SNDFX
   5.588 -};
   5.589 -
   5.590 -enum {
   5.591 -	MD_HARDWARE = 0,
   5.592 -	MD_SOFTWARE
   5.593 -};
   5.594 -
   5.595 -/* Mixing flags */
   5.596 -
   5.597 -/* These ones take effect only after MikMod_Init or MikMod_Reset */
   5.598 -#define DMODE_16BITS     0x0001 /* enable 16 bit output */
   5.599 -#define DMODE_STEREO     0x0002 /* enable stereo output */
   5.600 -#define DMODE_SOFT_SNDFX 0x0004 /* Process sound effects via software mixer */
   5.601 -#define DMODE_SOFT_MUSIC 0x0008 /* Process music via software mixer */
   5.602 -#define DMODE_HQMIXER    0x0010 /* Use high-quality (slower) software mixer */
   5.603 -/* These take effect immediately. */
   5.604 -#define DMODE_SURROUND   0x0100 /* enable surround sound */
   5.605 -#define DMODE_INTERP     0x0200 /* enable interpolation */
   5.606 -#define DMODE_REVERSE    0x0400 /* reverse stereo */
   5.607 -
   5.608 -struct SAMPLOAD;
   5.609 -typedef struct MDRIVER {
   5.610 -struct MDRIVER* next;
   5.611 -	CHAR*       Name;
   5.612 -	CHAR*       Version;
   5.613 -
   5.614 -	UBYTE       HardVoiceLimit; /* Limit of hardware mixer voices */
   5.615 -	UBYTE       SoftVoiceLimit; /* Limit of software mixer voices */
   5.616 -
   5.617 -	CHAR*       Alias;
   5.618 -
   5.619 -	void        (*CommandLine)      (CHAR*);
   5.620 -	BOOL        (*IsPresent)        (void);
   5.621 -	SWORD       (*SampleLoad)       (struct SAMPLOAD*,int);
   5.622 -	void        (*SampleUnload)     (SWORD);
   5.623 -	ULONG       (*FreeSampleSpace)  (int);
   5.624 -	ULONG       (*RealSampleLength) (int,struct SAMPLE*);
   5.625 -	BOOL        (*Init)             (void);
   5.626 -	void        (*Exit)             (void);
   5.627 -	BOOL        (*Reset)            (void);
   5.628 -	BOOL        (*SetNumVoices)     (void);
   5.629 -	BOOL        (*PlayStart)        (void);
   5.630 -	void        (*PlayStop)         (void);
   5.631 -	void        (*Update)           (void);
   5.632 -	void		(*Pause)			(void);
   5.633 -	void        (*VoiceSetVolume)   (UBYTE,UWORD);
   5.634 -	UWORD       (*VoiceGetVolume)   (UBYTE);
   5.635 -	void        (*VoiceSetFrequency)(UBYTE,ULONG);
   5.636 -	ULONG       (*VoiceGetFrequency)(UBYTE);
   5.637 -	void        (*VoiceSetPanning)  (UBYTE,ULONG);
   5.638 -	ULONG       (*VoiceGetPanning)  (UBYTE);
   5.639 -	void        (*VoicePlay)        (UBYTE,SWORD,ULONG,ULONG,ULONG,ULONG,UWORD);
   5.640 -	void        (*VoiceStop)        (UBYTE);
   5.641 -	BOOL        (*VoiceStopped)     (UBYTE);
   5.642 -	SLONG       (*VoiceGetPosition) (UBYTE);
   5.643 -	ULONG       (*VoiceRealVolume)  (UBYTE);
   5.644 -} MDRIVER;
   5.645 -
   5.646 -/* These variables can be changed at ANY time and results will be immediate */
   5.647 -MIKMODAPI extern UBYTE md_volume;      /* global sound volume (0-128) */
   5.648 -MIKMODAPI extern UBYTE md_musicvolume; /* volume of song */
   5.649 -MIKMODAPI extern UBYTE md_sndfxvolume; /* volume of sound effects */
   5.650 -MIKMODAPI extern UBYTE md_reverb;      /* 0 = none;  15 = chaos */
   5.651 -MIKMODAPI extern UBYTE md_pansep;      /* 0 = mono;  128 == 100% (full left/right) */
   5.652 -
   5.653 -/* The variables below can be changed at any time, but changes will not be
   5.654 -   implemented until MikMod_Reset is called. A call to MikMod_Reset may result
   5.655 -   in a skip or pop in audio (depending on the soundcard driver and the settings
   5.656 -   changed). */
   5.657 -MIKMODAPI extern UWORD md_device;      /* device */
   5.658 -MIKMODAPI extern UWORD md_mixfreq;     /* mixing frequency */
   5.659 -MIKMODAPI extern UWORD md_mode;        /* mode. See DMODE_? flags above */
   5.660 -
   5.661 -/* The following variable should not be changed! */
   5.662 -MIKMODAPI extern MDRIVER* md_driver;   /* Current driver in use. */
   5.663 -
   5.664 -/* Known drivers list */
   5.665 -
   5.666 -MIKMODAPI extern struct MDRIVER drv_nos;    /* no sound */
   5.667 -MIKMODAPI extern struct MDRIVER drv_pipe;   /* piped output */
   5.668 -MIKMODAPI extern struct MDRIVER drv_raw;    /* raw file disk writer [music.raw] */
   5.669 -MIKMODAPI extern struct MDRIVER drv_stdout; /* output to stdout */
   5.670 -MIKMODAPI extern struct MDRIVER drv_wav;    /* RIFF WAVE file disk writer [music.wav] */
   5.671 -
   5.672 -MIKMODAPI extern struct MDRIVER drv_ultra;  /* Linux Ultrasound driver */
   5.673 -MIKMODAPI extern struct MDRIVER drv_sam9407;	/* Linux sam9407 driver */
   5.674 -
   5.675 -MIKMODAPI extern struct MDRIVER drv_AF;     /* Dec Alpha AudioFile */
   5.676 -MIKMODAPI extern struct MDRIVER drv_aix;    /* AIX audio device */
   5.677 -MIKMODAPI extern struct MDRIVER drv_alsa;   /* Advanced Linux Sound Architecture (ALSA) */
   5.678 -MIKMODAPI extern struct MDRIVER drv_esd;    /* Enlightened sound daemon (EsounD) */
   5.679 -MIKMODAPI extern struct MDRIVER drv_hp;     /* HP-UX audio device */
   5.680 -MIKMODAPI extern struct MDRIVER drv_oss;    /* OpenSound System (Linux,FreeBSD...) */
   5.681 -MIKMODAPI extern struct MDRIVER drv_sgi;    /* SGI audio library */
   5.682 -MIKMODAPI extern struct MDRIVER drv_sun;    /* Sun/NetBSD/OpenBSD audio device */
   5.683 -
   5.684 -MIKMODAPI extern struct MDRIVER drv_dart;   /* OS/2 Direct Audio RealTime */
   5.685 -MIKMODAPI extern struct MDRIVER drv_os2;    /* OS/2 MMPM/2 */
   5.686 -
   5.687 -MIKMODAPI extern struct MDRIVER drv_ds;     /* Win32 DirectSound driver */
   5.688 -MIKMODAPI extern struct MDRIVER drv_win;    /* Win32 multimedia API driver */
   5.689 -
   5.690 -MIKMODAPI extern struct MDRIVER drv_mac;    /* Macintosh Sound Manager driver */
   5.691 -
   5.692 -/*========== Virtual channel mixer interface (for user-supplied drivers only) */
   5.693 -
   5.694 -MIKMODAPI extern BOOL  VC_Init(void);
   5.695 -MIKMODAPI extern void  VC_Exit(void);
   5.696 -MIKMODAPI extern BOOL  VC_SetNumVoices(void);
   5.697 -MIKMODAPI extern ULONG VC_SampleSpace(int);
   5.698 -MIKMODAPI extern ULONG VC_SampleLength(int,SAMPLE*);
   5.699 -
   5.700 -MIKMODAPI extern BOOL  VC_PlayStart(void);
   5.701 -MIKMODAPI extern void  VC_PlayStop(void);
   5.702 -
   5.703 -MIKMODAPI extern SWORD VC_SampleLoad(struct SAMPLOAD*,int);
   5.704 -MIKMODAPI extern void  VC_SampleUnload(SWORD);
   5.705 -
   5.706 -MIKMODAPI extern ULONG VC_WriteBytes(SBYTE*,ULONG);
   5.707 -MIKMODAPI extern ULONG VC_SilenceBytes(SBYTE*,ULONG);
   5.708 -
   5.709 -MIKMODAPI extern void  VC_VoiceSetVolume(UBYTE,UWORD);
   5.710 -MIKMODAPI extern UWORD VC_VoiceGetVolume(UBYTE);
   5.711 -MIKMODAPI extern void  VC_VoiceSetFrequency(UBYTE,ULONG);
   5.712 -MIKMODAPI extern ULONG VC_VoiceGetFrequency(UBYTE);
   5.713 -MIKMODAPI extern void  VC_VoiceSetPanning(UBYTE,ULONG);
   5.714 -MIKMODAPI extern ULONG VC_VoiceGetPanning(UBYTE);
   5.715 -MIKMODAPI extern void  VC_VoicePlay(UBYTE,SWORD,ULONG,ULONG,ULONG,ULONG,UWORD);
   5.716 -
   5.717 -MIKMODAPI extern void  VC_VoiceStop(UBYTE);
   5.718 -MIKMODAPI extern BOOL  VC_VoiceStopped(UBYTE);
   5.719 -MIKMODAPI extern SLONG VC_VoiceGetPosition(UBYTE);
   5.720 -MIKMODAPI extern ULONG VC_VoiceRealVolume(UBYTE);
   5.721 -
   5.722 -#ifdef __cplusplus
   5.723 -}
   5.724 -#endif
   5.725 -
   5.726 -#endif
   5.727 -
   5.728 -/* ex:set ts=4: */
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/VisualC/external/include/modplug.h	Sun Jun 09 16:22:42 2013 -0700
     6.3 @@ -0,0 +1,171 @@
     6.4 +/*
     6.5 + * This source code is public domain.
     6.6 + *
     6.7 + * Authors: Kenton Varda <temporal@gauge3d.org> (C interface wrapper)
     6.8 + */
     6.9 +
    6.10 +#ifndef MODPLUG_H__INCLUDED
    6.11 +#define MODPLUG_H__INCLUDED
    6.12 +
    6.13 +#ifdef __cplusplus
    6.14 +extern "C" {
    6.15 +#endif
    6.16 +
    6.17 +struct _ModPlugFile;
    6.18 +typedef struct _ModPlugFile ModPlugFile;
    6.19 +
    6.20 +struct _ModPlugNote {
    6.21 +	unsigned char Note;
    6.22 +	unsigned char Instrument;
    6.23 +	unsigned char VolumeEffect;
    6.24 +	unsigned char Effect;
    6.25 +	unsigned char Volume;
    6.26 +	unsigned char Parameter;
    6.27 +};
    6.28 +typedef struct _ModPlugNote ModPlugNote;
    6.29 +
    6.30 +typedef void (*ModPlugMixerProc)(int*, unsigned long, unsigned long);
    6.31 +
    6.32 +/* Load a mod file.  [data] should point to a block of memory containing the complete
    6.33 + * file, and [size] should be the size of that block.
    6.34 + * Return the loaded mod file on success, or NULL on failure. */
    6.35 +ModPlugFile* ModPlug_Load(const void* data, int size);
    6.36 +/* Unload a mod file. */
    6.37 +void ModPlug_Unload(ModPlugFile* file);
    6.38 +
    6.39 +/* Read sample data into the buffer.  Returns the number of bytes read.  If the end
    6.40 + * of the mod has been reached, zero is returned. */
    6.41 +int  ModPlug_Read(ModPlugFile* file, void* buffer, int size);
    6.42 +
    6.43 +/* Get the name of the mod.  The returned buffer is stored within the ModPlugFile
    6.44 + * structure and will remain valid until you unload the file. */
    6.45 +const char* ModPlug_GetName(ModPlugFile* file);
    6.46 +
    6.47 +/* Get the length of the mod, in milliseconds.  Note that this result is not always
    6.48 + * accurate, especially in the case of mods with loops. */
    6.49 +int ModPlug_GetLength(ModPlugFile* file);
    6.50 +
    6.51 +/* Seek to a particular position in the song.  Note that seeking and MODs don't mix very
    6.52 + * well.  Some mods will be missing instruments for a short time after a seek, as ModPlug
    6.53 + * does not scan the sequence backwards to find out which instruments were supposed to be
    6.54 + * playing at that time.  (Doing so would be difficult and not very reliable.)  Also,
    6.55 + * note that seeking is not very exact in some mods -- especially those for which
    6.56 + * ModPlug_GetLength() does not report the full length. */
    6.57 +void ModPlug_Seek(ModPlugFile* file, int millisecond);
    6.58 +
    6.59 +enum _ModPlug_Flags
    6.60 +{
    6.61 +	MODPLUG_ENABLE_OVERSAMPLING     = 1 << 0,  /* Enable oversampling (*highly* recommended) */
    6.62 +	MODPLUG_ENABLE_NOISE_REDUCTION  = 1 << 1,  /* Enable noise reduction */
    6.63 +	MODPLUG_ENABLE_REVERB           = 1 << 2,  /* Enable reverb */
    6.64 +	MODPLUG_ENABLE_MEGABASS         = 1 << 3,  /* Enable megabass */
    6.65 +	MODPLUG_ENABLE_SURROUND         = 1 << 4   /* Enable surround sound. */
    6.66 +};
    6.67 +
    6.68 +enum _ModPlug_ResamplingMode
    6.69 +{
    6.70 +	MODPLUG_RESAMPLE_NEAREST = 0,  /* No interpolation (very fast, extremely bad sound quality) */
    6.71 +	MODPLUG_RESAMPLE_LINEAR  = 1,  /* Linear interpolation (fast, good quality) */
    6.72 +	MODPLUG_RESAMPLE_SPLINE  = 2,  /* Cubic spline interpolation (high quality) */
    6.73 +	MODPLUG_RESAMPLE_FIR     = 3   /* 8-tap fir filter (extremely high quality) */
    6.74 +};
    6.75 +
    6.76 +typedef struct _ModPlug_Settings
    6.77 +{
    6.78 +	int mFlags;  /* One or more of the MODPLUG_ENABLE_* flags above, bitwise-OR'ed */
    6.79 +	
    6.80 +	/* Note that ModPlug always decodes sound at 44100kHz, 32 bit, stereo and then
    6.81 +	 * down-mixes to the settings you choose. */
    6.82 +	int mChannels;       /* Number of channels - 1 for mono or 2 for stereo */
    6.83 +	int mBits;           /* Bits per sample - 8, 16, or 32 */
    6.84 +	int mFrequency;      /* Sampling rate - 11025, 22050, or 44100 */
    6.85 +	int mResamplingMode; /* One of MODPLUG_RESAMPLE_*, above */
    6.86 +
    6.87 +	int mStereoSeparation; /* Stereo separation, 1 - 256 */
    6.88 +	int mMaxMixChannels; /* Maximum number of mixing channels (polyphony), 32 - 256 */
    6.89 +	
    6.90 +	int mReverbDepth;    /* Reverb level 0(quiet)-100(loud)      */
    6.91 +	int mReverbDelay;    /* Reverb delay in ms, usually 40-200ms */
    6.92 +	int mBassAmount;     /* XBass level 0(quiet)-100(loud)       */
    6.93 +	int mBassRange;      /* XBass cutoff in Hz 10-100            */
    6.94 +	int mSurroundDepth;  /* Surround level 0(quiet)-100(heavy)   */
    6.95 +	int mSurroundDelay;  /* Surround delay in ms, usually 5-40ms */
    6.96 +	int mLoopCount;      /* Number of times to loop.  Zero prevents looping.
    6.97 +	                        -1 loops forever. */
    6.98 +} ModPlug_Settings;
    6.99 +
   6.100 +/* Get and set the mod decoder settings.  All options, except for channels, bits-per-sample,
   6.101 + * sampling rate, and loop count, will take effect immediately.  Those options which don't
   6.102 + * take effect immediately will take effect the next time you load a mod. */
   6.103 +void ModPlug_GetSettings(ModPlug_Settings* settings);
   6.104 +void ModPlug_SetSettings(const ModPlug_Settings* settings);
   6.105 +
   6.106 +/* New ModPlug API Functions */
   6.107 +/* NOTE: Master Volume (1-512) */
   6.108 +unsigned int ModPlug_GetMasterVolume(ModPlugFile* file) ;
   6.109 +void ModPlug_SetMasterVolume(ModPlugFile* file,unsigned int cvol) ;
   6.110 +
   6.111 +int ModPlug_GetCurrentSpeed(ModPlugFile* file);
   6.112 +int ModPlug_GetCurrentTempo(ModPlugFile* file);
   6.113 +int ModPlug_GetCurrentOrder(ModPlugFile* file);
   6.114 +int ModPlug_GetCurrentPattern(ModPlugFile* file);
   6.115 +int ModPlug_GetCurrentRow(ModPlugFile* file);
   6.116 +int ModPlug_GetPlayingChannels(ModPlugFile* file);
   6.117 +
   6.118 +void ModPlug_SeekOrder(ModPlugFile* file,int order);
   6.119 +int ModPlug_GetModuleType(ModPlugFile* file);
   6.120 +char* ModPlug_GetMessage(ModPlugFile* file);
   6.121 +
   6.122 +
   6.123 +#ifndef MODPLUG_NO_FILESAVE
   6.124 +/*
   6.125 + * EXPERIMENTAL Export Functions
   6.126 + */
   6.127 +/*Export to a Scream Tracker 3 S3M module. EXPERIMENTAL (only works on Little-Endian platforms)*/
   6.128 +char ModPlug_ExportS3M(ModPlugFile* file, const char* filepath);
   6.129 +
   6.130 +/*Export to a Extended Module (XM). EXPERIMENTAL (only works on Little-Endian platforms)*/
   6.131 +char ModPlug_ExportXM(ModPlugFile* file, const char* filepath);
   6.132 +
   6.133 +/*Export to a Amiga MOD file. EXPERIMENTAL.*/
   6.134 +char ModPlug_ExportMOD(ModPlugFile* file, const char* filepath);
   6.135 +
   6.136 +/*Export to a Impulse Tracker IT file. Should work OK in Little-Endian & Big-Endian platforms :-) */
   6.137 +char ModPlug_ExportIT(ModPlugFile* file, const char* filepath);
   6.138 +#endif // MODPLUG_NO_FILESAVE
   6.139 +
   6.140 +unsigned int ModPlug_NumInstruments(ModPlugFile* file);
   6.141 +unsigned int ModPlug_NumSamples(ModPlugFile* file);
   6.142 +unsigned int ModPlug_NumPatterns(ModPlugFile* file);
   6.143 +unsigned int ModPlug_NumChannels(ModPlugFile* file);
   6.144 +unsigned int ModPlug_SampleName(ModPlugFile* file, unsigned int qual, char* buff);
   6.145 +unsigned int ModPlug_InstrumentName(ModPlugFile* file, unsigned int qual, char* buff);
   6.146 +
   6.147 +/*
   6.148 + * Retrieve pattern note-data
   6.149 + */
   6.150 +ModPlugNote* ModPlug_GetPattern(ModPlugFile* file, int pattern, unsigned int* numrows);
   6.151 +
   6.152 +/*
   6.153 + * =================
   6.154 + * Mixer callback
   6.155 + * =================
   6.156 + *
   6.157 + * Use this callback if you want to 'modify' the mixed data of LibModPlug.
   6.158 + * 
   6.159 + * void proc(int* buffer,unsigned long channels,unsigned long nsamples) ;
   6.160 + *
   6.161 + * 'buffer': A buffer of mixed samples
   6.162 + * 'channels': N. of channels in the buffer
   6.163 + * 'nsamples': N. of samples in the buffeer (without taking care of n.channels)
   6.164 + *
   6.165 + * (Samples are signed 32-bit integers)
   6.166 + */
   6.167 +void ModPlug_InitMixerCallback(ModPlugFile* file,ModPlugMixerProc proc) ;
   6.168 +void ModPlug_UnloadMixerCallback(ModPlugFile* file) ;
   6.169 +
   6.170 +#ifdef __cplusplus
   6.171 +} /* extern "C" */
   6.172 +#endif
   6.173 +
   6.174 +#endif
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/VisualC/external/lib/x64/LICENSE.modplug.txt	Sun Jun 09 16:22:42 2013 -0700
     7.3 @@ -0,0 +1,1 @@
     7.4 +ModPlug-XMMS and libmodplug are now in the public domain.
     8.1 Binary file VisualC/external/lib/x64/libmodplug-1.dll has changed
     9.1 --- a/VisualC/external/lib/x86/LICENSE.mikmod.txt	Sat Jun 08 17:35:37 2013 -0700
     9.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.3 @@ -1,486 +0,0 @@
     9.4 -The source code to this library used with SDL_mixer can be found here:
     9.5 -http://www.libsdl.org/projects/SDL_mixer/libs/
     9.6 ----
     9.7 -
     9.8 -		  GNU LIBRARY GENERAL PUBLIC LICENSE
     9.9 -		       Version 2, June 1991
    9.10 -
    9.11 - Copyright (C) 1991 Free Software Foundation, Inc.
    9.12 - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
    9.13 - Everyone is permitted to copy and distribute verbatim copies
    9.14 - of this license document, but changing it is not allowed.
    9.15 -
    9.16 -[This is the first released version of the library GPL.  It is
    9.17 - numbered 2 because it goes with version 2 of the ordinary GPL.]
    9.18 -
    9.19 -			    Preamble
    9.20 -
    9.21 -  The licenses for most software are designed to take away your
    9.22 -freedom to share and change it.  By contrast, the GNU General Public
    9.23 -Licenses are intended to guarantee your freedom to share and change
    9.24 -free software--to make sure the software is free for all its users.
    9.25 -
    9.26 -  This license, the Library General Public License, applies to some
    9.27 -specially designated Free Software Foundation software, and to any
    9.28 -other libraries whose authors decide to use it.  You can use it for
    9.29 -your libraries, too.
    9.30 -
    9.31 -  When we speak of free software, we are referring to freedom, not
    9.32 -price.  Our General Public Licenses are designed to make sure that you
    9.33 -have the freedom to distribute copies of free software (and charge for
    9.34 -this service if you wish), that you receive source code or can get it
    9.35 -if you want it, that you can change the software or use pieces of it
    9.36 -in new free programs; and that you know you can do these things.
    9.37 -
    9.38 -  To protect your rights, we need to make restrictions that forbid
    9.39 -anyone to deny you these rights or to ask you to surrender the rights.
    9.40 -These restrictions translate to certain responsibilities for you if
    9.41 -you distribute copies of the library, or if you modify it.
    9.42 -
    9.43 -  For example, if you distribute copies of the library, whether gratis
    9.44 -or for a fee, you must give the recipients all the rights that we gave
    9.45 -you.  You must make sure that they, too, receive or can get the source
    9.46 -code.  If you link a program with the library, you must provide
    9.47 -complete object files to the recipients so that they can relink them
    9.48 -with the library, after making changes to the library and recompiling
    9.49 -it.  And you must show them these terms so they know their rights.
    9.50 -
    9.51 -  Our method of protecting your rights has two steps: (1) copyright
    9.52 -the library, and (2) offer you this license which gives you legal
    9.53 -permission to copy, distribute and/or modify the library.
    9.54 -
    9.55 -  Also, for each distributor's protection, we want to make certain
    9.56 -that everyone understands that there is no warranty for this free
    9.57 -library.  If the library is modified by someone else and passed on, we
    9.58 -want its recipients to know that what they have is not the original
    9.59 -version, so that any problems introduced by others will not reflect on
    9.60 -the original authors' reputations.
    9.61 -
    9.62 -  Finally, any free program is threatened constantly by software
    9.63 -patents.  We wish to avoid the danger that companies distributing free
    9.64 -software will individually obtain patent licenses, thus in effect
    9.65 -transforming the program into proprietary software.  To prevent this,
    9.66 -we have made it clear that any patent must be licensed for everyone's
    9.67 -free use or not licensed at all.
    9.68 -
    9.69 -  Most GNU software, including some libraries, is covered by the ordinary
    9.70 -GNU General Public License, which was designed for utility programs.  This
    9.71 -license, the GNU Library General Public License, applies to certain
    9.72 -designated libraries.  This license is quite different from the ordinary
    9.73 -one; be sure to read it in full, and don't assume that anything in it is
    9.74 -the same as in the ordinary license.
    9.75 -
    9.76 -  The reason we have a separate public license for some libraries is that
    9.77 -they blur the distinction we usually make between modifying or adding to a
    9.78 -program and simply using it.  Linking a program with a library, without
    9.79 -changing the library, is in some sense simply using the library, and is
    9.80 -analogous to running a utility program or application program.  However, in
    9.81 -a textual and legal sense, the linked executable is a combined work, a
    9.82 -derivative of the original library, and the ordinary General Public License
    9.83 -treats it as such.
    9.84 -
    9.85 -  Because of this blurred distinction, using the ordinary General
    9.86 -Public License for libraries did not effectively promote software
    9.87 -sharing, because most developers did not use the libraries.  We
    9.88 -concluded that weaker conditions might promote sharing better.
    9.89 -
    9.90 -  However, unrestricted linking of non-free programs would deprive the
    9.91 -users of those programs of all benefit from the free status of the
    9.92 -libraries themselves.  This Library General Public License is intended to
    9.93 -permit developers of non-free programs to use free libraries, while
    9.94 -preserving your freedom as a user of such programs to change the free
    9.95 -libraries that are incorporated in them.  (We have not seen how to achieve
    9.96 -this as regards changes in header files, but we have achieved it as regards
    9.97 -changes in the actual functions of the Library.)  The hope is that this
    9.98 -will lead to faster development of free libraries.
    9.99 -
   9.100 -  The precise terms and conditions for copying, distribution and
   9.101 -modification follow.  Pay close attention to the difference between a
   9.102 -"work based on the library" and a "work that uses the library".  The
   9.103 -former contains code derived from the library, while the latter only
   9.104 -works together with the library.
   9.105 -
   9.106 -  Note that it is possible for a library to be covered by the ordinary
   9.107 -General Public License rather than by this special one.
   9.108 -
   9.109 -		  GNU LIBRARY GENERAL PUBLIC LICENSE
   9.110 -   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
   9.111 -
   9.112 -  0. This License Agreement applies to any software library which
   9.113 -contains a notice placed by the copyright holder or other authorized
   9.114 -party saying it may be distributed under the terms of this Library
   9.115 -General Public License (also called "this License").  Each licensee is
   9.116 -addressed as "you".
   9.117 -
   9.118 -  A "library" means a collection of software functions and/or data
   9.119 -prepared so as to be conveniently linked with application programs
   9.120 -(which use some of those functions and data) to form executables.
   9.121 -
   9.122 -  The "Library", below, refers to any such software library or work
   9.123 -which has been distributed under these terms.  A "work based on the
   9.124 -Library" means either the Library or any derivative work under
   9.125 -copyright law: that is to say, a work containing the Library or a
   9.126 -portion of it, either verbatim or with modifications and/or translated
   9.127 -straightforwardly into another language.  (Hereinafter, translation is
   9.128 -included without limitation in the term "modification".)
   9.129 -
   9.130 -  "Source code" for a work means the preferred form of the work for
   9.131 -making modifications to it.  For a library, complete source code means
   9.132 -all the source code for all modules it contains, plus any associated
   9.133 -interface definition files, plus the scripts used to control compilation
   9.134 -and installation of the library.
   9.135 -
   9.136 -  Activities other than copying, distribution and modification are not
   9.137 -covered by this License; they are outside its scope.  The act of
   9.138 -running a program using the Library is not restricted, and output from
   9.139 -such a program is covered only if its contents constitute a work based
   9.140 -on the Library (independent of the use of the Library in a tool for
   9.141 -writing it).  Whether that is true depends on what the Library does
   9.142 -and what the program that uses the Library does.
   9.143 -  
   9.144 -  1. You may copy and distribute verbatim copies of the Library's
   9.145 -complete source code as you receive it, in any medium, provided that
   9.146 -you conspicuously and appropriately publish on each copy an
   9.147 -appropriate copyright notice and disclaimer of warranty; keep intact
   9.148 -all the notices that refer to this License and to the absence of any
   9.149 -warranty; and distribute a copy of this License along with the
   9.150 -Library.
   9.151 -
   9.152 -  You may charge a fee for the physical act of transferring a copy,
   9.153 -and you may at your option offer warranty protection in exchange for a
   9.154 -fee.
   9.155 -
   9.156 -  2. You may modify your copy or copies of the Library or any portion
   9.157 -of it, thus forming a work based on the Library, and copy and
   9.158 -distribute such modifications or work under the terms of Section 1
   9.159 -above, provided that you also meet all of these conditions:
   9.160 -
   9.161 -    a) The modified work must itself be a software library.
   9.162 -
   9.163 -    b) You must cause the files modified to carry prominent notices
   9.164 -    stating that you changed the files and the date of any change.
   9.165 -
   9.166 -    c) You must cause the whole of the work to be licensed at no
   9.167 -    charge to all third parties under the terms of this License.
   9.168 -
   9.169 -    d) If a facility in the modified Library refers to a function or a
   9.170 -    table of data to be supplied by an application program that uses
   9.171 -    the facility, other than as an argument passed when the facility
   9.172 -    is invoked, then you must make a good faith effort to ensure that,
   9.173 -    in the event an application does not supply such function or
   9.174 -    table, the facility still operates, and performs whatever part of
   9.175 -    its purpose remains meaningful.
   9.176 -
   9.177 -    (For example, a function in a library to compute square roots has
   9.178 -    a purpose that is entirely well-defined independent of the
   9.179 -    application.  Therefore, Subsection 2d requires that any
   9.180 -    application-supplied function or table used by this function must
   9.181 -    be optional: if the application does not supply it, the square
   9.182 -    root function must still compute square roots.)
   9.183 -
   9.184 -These requirements apply to the modified work as a whole.  If
   9.185 -identifiable sections of that work are not derived from the Library,
   9.186 -and can be reasonably considered independent and separate works in
   9.187 -themselves, then this License, and its terms, do not apply to those
   9.188 -sections when you distribute them as separate works.  But when you
   9.189 -distribute the same sections as part of a whole which is a work based
   9.190 -on the Library, the distribution of the whole must be on the terms of
   9.191 -this License, whose permissions for other licensees extend to the
   9.192 -entire whole, and thus to each and every part regardless of who wrote
   9.193 -it.
   9.194 -
   9.195 -Thus, it is not the intent of this section to claim rights or contest
   9.196 -your rights to work written entirely by you; rather, the intent is to
   9.197 -exercise the right to control the distribution of derivative or
   9.198 -collective works based on the Library.
   9.199 -
   9.200 -In addition, mere aggregation of another work not based on the Library
   9.201 -with the Library (or with a work based on the Library) on a volume of
   9.202 -a storage or distribution medium does not bring the other work under
   9.203 -the scope of this License.
   9.204 -
   9.205 -  3. You may opt to apply the terms of the ordinary GNU General Public
   9.206 -License instead of this License to a given copy of the Library.  To do
   9.207 -this, you must alter all the notices that refer to this License, so
   9.208 -that they refer to the ordinary GNU General Public License, version 2,
   9.209 -instead of to this License.  (If a newer version than version 2 of the
   9.210 -ordinary GNU General Public License has appeared, then you can specify
   9.211 -that version instead if you wish.)  Do not make any other change in
   9.212 -these notices.
   9.213 -
   9.214 -  Once this change is made in a given copy, it is irreversible for
   9.215 -that copy, so the ordinary GNU General Public License applies to all
   9.216 -subsequent copies and derivative works made from that copy.
   9.217 -
   9.218 -  This option is useful when you wish to copy part of the code of
   9.219 -the Library into a program that is not a library.
   9.220 -
   9.221 -  4. You may copy and distribute the Library (or a portion or
   9.222 -derivative of it, under Section 2) in object code or executable form
   9.223 -under the terms of Sections 1 and 2 above provided that you accompany
   9.224 -it with the complete corresponding machine-readable source code, which
   9.225 -must be distributed under the terms of Sections 1 and 2 above on a
   9.226 -medium customarily used for software interchange.
   9.227 -
   9.228 -  If distribution of object code is made by offering access to copy
   9.229 -from a designated place, then offering equivalent access to copy the
   9.230 -source code from the same place satisfies the requirement to
   9.231 -distribute the source code, even though third parties are not
   9.232 -compelled to copy the source along with the object code.
   9.233 -
   9.234 -  5. A program that contains no derivative of any portion of the
   9.235 -Library, but is designed to work with the Library by being compiled or
   9.236 -linked with it, is called a "work that uses the Library".  Such a
   9.237 -work, in isolation, is not a derivative work of the Library, and
   9.238 -therefore falls outside the scope of this License.
   9.239 -
   9.240 -  However, linking a "work that uses the Library" with the Library
   9.241 -creates an executable that is a derivative of the Library (because it
   9.242 -contains portions of the Library), rather than a "work that uses the
   9.243 -library".  The executable is therefore covered by this License.
   9.244 -Section 6 states terms for distribution of such executables.
   9.245 -
   9.246 -  When a "work that uses the Library" uses material from a header file
   9.247 -that is part of the Library, the object code for the work may be a
   9.248 -derivative work of the Library even though the source code is not.
   9.249 -Whether this is true is especially significant if the work can be
   9.250 -linked without the Library, or if the work is itself a library.  The
   9.251 -threshold for this to be true is not precisely defined by law.
   9.252 -
   9.253 -  If such an object file uses only numerical parameters, data
   9.254 -structure layouts and accessors, and small macros and small inline
   9.255 -functions (ten lines or less in length), then the use of the object
   9.256 -file is unrestricted, regardless of whether it is legally a derivative
   9.257 -work.  (Executables containing this object code plus portions of the
   9.258 -Library will still fall under Section 6.)
   9.259 -
   9.260 -  Otherwise, if the work is a derivative of the Library, you may
   9.261 -distribute the object code for the work under the terms of Section 6.
   9.262 -Any executables containing that work also fall under Section 6,
   9.263 -whether or not they are linked directly with the Library itself.
   9.264 -
   9.265 -  6. As an exception to the Sections above, you may also compile or
   9.266 -link a "work that uses the Library" with the Library to produce a
   9.267 -work containing portions of the Library, and distribute that work
   9.268 -under terms of your choice, provided that the terms permit
   9.269 -modification of the work for the customer's own use and reverse
   9.270 -engineering for debugging such modifications.
   9.271 -
   9.272 -  You must give prominent notice with each copy of the work that the
   9.273 -Library is used in it and that the Library and its use are covered by
   9.274 -this License.  You must supply a copy of this License.  If the work
   9.275 -during execution displays copyright notices, you must include the
   9.276 -copyright notice for the Library among them, as well as a reference
   9.277 -directing the user to the copy of this License.  Also, you must do one
   9.278 -of these things:
   9.279 -
   9.280 -    a) Accompany the work with the complete corresponding
   9.281 -    machine-readable source code for the Library including whatever
   9.282 -    changes were used in the work (which must be distributed under
   9.283 -    Sections 1 and 2 above); and, if the work is an executable linked
   9.284 -    with the Library, with the complete machine-readable "work that
   9.285 -    uses the Library", as object code and/or source code, so that the
   9.286 -    user can modify the Library and then relink to produce a modified
   9.287 -    executable containing the modified Library.  (It is understood
   9.288 -    that the user who changes the contents of definitions files in the
   9.289 -    Library will not necessarily be able to recompile the application
   9.290 -    to use the modified definitions.)
   9.291 -
   9.292 -    b) Accompany the work with a written offer, valid for at
   9.293 -    least three years, to give the same user the materials
   9.294 -    specified in Subsection 6a, above, for a charge no more
   9.295 -    than the cost of performing this distribution.
   9.296 -
   9.297 -    c) If distribution of the work is made by offering access to copy
   9.298 -    from a designated place, offer equivalent access to copy the above
   9.299 -    specified materials from the same place.
   9.300 -
   9.301 -    d) Verify that the user has already received a copy of these
   9.302 -    materials or that you have already sent this user a copy.
   9.303 -
   9.304 -  For an executable, the required form of the "work that uses the
   9.305 -Library" must include any data and utility programs needed for
   9.306 -reproducing the executable from it.  However, as a special exception,
   9.307 -the source code distributed need not include anything that is normally
   9.308 -distributed (in either source or binary form) with the major
   9.309 -components (compiler, kernel, and so on) of the operating system on
   9.310 -which the executable runs, unless that component itself accompanies
   9.311 -the executable.
   9.312 -
   9.313 -  It may happen that this requirement contradicts the license
   9.314 -restrictions of other proprietary libraries that do not normally
   9.315 -accompany the operating system.  Such a contradiction means you cannot
   9.316 -use both them and the Library together in an executable that you
   9.317 -distribute.
   9.318 -
   9.319 -  7. You may place library facilities that are a work based on the
   9.320 -Library side-by-side in a single library together with other library
   9.321 -facilities not covered by this License, and distribute such a combined
   9.322 -library, provided that the separate distribution of the work based on
   9.323 -the Library and of the other library facilities is otherwise
   9.324 -permitted, and provided that you do these two things:
   9.325 -
   9.326 -    a) Accompany the combined library with a copy of the same work
   9.327 -    based on the Library, uncombined with any other library
   9.328 -    facilities.  This must be distributed under the terms of the
   9.329 -    Sections above.
   9.330 -
   9.331 -    b) Give prominent notice with the combined library of the fact
   9.332 -    that part of it is a work based on the Library, and explaining
   9.333 -    where to find the accompanying uncombined form of the same work.
   9.334 -
   9.335 -  8. You may not copy, modify, sublicense, link with, or distribute
   9.336 -the Library except as expressly provided under this License.  Any
   9.337 -attempt otherwise to copy, modify, sublicense, link with, or
   9.338 -distribute the Library is void, and will automatically terminate your
   9.339 -rights under this License.  However, parties who have received copies,
   9.340 -or rights, from you under this License will not have their licenses
   9.341 -terminated so long as such parties remain in full compliance.
   9.342 -
   9.343 -  9. You are not required to accept this License, since you have not
   9.344 -signed it.  However, nothing else grants you permission to modify or
   9.345 -distribute the Library or its derivative works.  These actions are
   9.346 -prohibited by law if you do not accept this License.  Therefore, by
   9.347 -modifying or distributing the Library (or any work based on the
   9.348 -Library), you indicate your acceptance of this License to do so, and
   9.349 -all its terms and conditions for copying, distributing or modifying
   9.350 -the Library or works based on it.
   9.351 -
   9.352 -  10. Each time you redistribute the Library (or any work based on the
   9.353 -Library), the recipient automatically receives a license from the
   9.354 -original licensor to copy, distribute, link with or modify the Library
   9.355 -subject to these terms and conditions.  You may not impose any further
   9.356 -restrictions on the recipients' exercise of the rights granted herein.
   9.357 -You are not responsible for enforcing compliance by third parties to
   9.358 -this License.
   9.359 -
   9.360 -  11. If, as a consequence of a court judgment or allegation of patent
   9.361 -infringement or for any other reason (not limited to patent issues),
   9.362 -conditions are imposed on you (whether by court order, agreement or
   9.363 -otherwise) that contradict the conditions of this License, they do not
   9.364 -excuse you from the conditions of this License.  If you cannot
   9.365 -distribute so as to satisfy simultaneously your obligations under this
   9.366 -License and any other pertinent obligations, then as a consequence you
   9.367 -may not distribute the Library at all.  For example, if a patent
   9.368 -license would not permit royalty-free redistribution of the Library by
   9.369 -all those who receive copies directly or indirectly through you, then
   9.370 -the only way you could satisfy both it and this License would be to
   9.371 -refrain entirely from distribution of the Library.
   9.372 -
   9.373 -If any portion of this section is held invalid or unenforceable under any
   9.374 -particular circumstance, the balance of the section is intended to apply,
   9.375 -and the section as a whole is intended to apply in other circumstances.
   9.376 -
   9.377 -It is not the purpose of this section to induce you to infringe any
   9.378 -patents or other property right claims or to contest validity of any
   9.379 -such claims; this section has the sole purpose of protecting the
   9.380 -integrity of the free software distribution system which is
   9.381 -implemented by public license practices.  Many people have made
   9.382 -generous contributions to the wide range of software distributed
   9.383 -through that system in reliance on consistent application of that
   9.384 -system; it is up to the author/donor to decide if he or she is willing
   9.385 -to distribute software through any other system and a licensee cannot
   9.386 -impose that choice.
   9.387 -
   9.388 -This section is intended to make thoroughly clear what is believed to
   9.389 -be a consequence of the rest of this License.
   9.390 -
   9.391 -  12. If the distribution and/or use of the Library is restricted in
   9.392 -certain countries either by patents or by copyrighted interfaces, the
   9.393 -original copyright holder who places the Library under this License may add
   9.394 -an explicit geographical distribution limitation excluding those countries,
   9.395 -so that distribution is permitted only in or among countries not thus
   9.396 -excluded.  In such case, this License incorporates the limitation as if
   9.397 -written in the body of this License.
   9.398 -
   9.399 -  13. The Free Software Foundation may publish revised and/or new
   9.400 -versions of the Library General Public License from time to time.
   9.401 -Such new versions will be similar in spirit to the present version,
   9.402 -but may differ in detail to address new problems or concerns.
   9.403 -
   9.404 -Each version is given a distinguishing version number.  If the Library
   9.405 -specifies a version number of this License which applies to it and
   9.406 -"any later version", you have the option of following the terms and
   9.407 -conditions either of that version or of any later version published by
   9.408 -the Free Software Foundation.  If the Library does not specify a
   9.409 -license version number, you may choose any version ever published by
   9.410 -the Free Software Foundation.
   9.411 -
   9.412 -  14. If you wish to incorporate parts of the Library into other free
   9.413 -programs whose distribution conditions are incompatible with these,
   9.414 -write to the author to ask for permission.  For software which is
   9.415 -copyrighted by the Free Software Foundation, write to the Free
   9.416 -Software Foundation; we sometimes make exceptions for this.  Our
   9.417 -decision will be guided by the two goals of preserving the free status
   9.418 -of all derivatives of our free software and of promoting the sharing
   9.419 -and reuse of software generally.
   9.420 -
   9.421 -			    NO WARRANTY
   9.422 -
   9.423 -  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
   9.424 -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
   9.425 -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
   9.426 -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
   9.427 -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
   9.428 -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   9.429 -PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
   9.430 -LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
   9.431 -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
   9.432 -
   9.433 -  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
   9.434 -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
   9.435 -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
   9.436 -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
   9.437 -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
   9.438 -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
   9.439 -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
   9.440 -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
   9.441 -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
   9.442 -DAMAGES.
   9.443 -
   9.444 -		     END OF TERMS AND CONDITIONS
   9.445 -
   9.446 -     Appendix: How to Apply These Terms to Your New Libraries
   9.447 -
   9.448 -  If you develop a new library, and you want it to be of the greatest
   9.449 -possible use to the public, we recommend making it free software that
   9.450 -everyone can redistribute and change.  You can do so by permitting
   9.451 -redistribution under these terms (or, alternatively, under the terms of the
   9.452 -ordinary General Public License).
   9.453 -
   9.454 -  To apply these terms, attach the following notices to the library.  It is
   9.455 -safest to attach them to the start of each source file to most effectively
   9.456 -convey the exclusion of warranty; and each file should have at least the
   9.457 -"copyright" line and a pointer to where the full notice is found.
   9.458 -
   9.459 -    <one line to give the library's name and a brief idea of what it does.>
   9.460 -    Copyright (C) <year>  <name of author>
   9.461 -
   9.462 -    This library is free software; you can redistribute it and/or
   9.463 -    modify it under the terms of the GNU Library General Public
   9.464 -    License as published by the Free Software Foundation; either
   9.465 -    version 2 of the License, or (at your option) any later version.
   9.466 -
   9.467 -    This library is distributed in the hope that it will be useful,
   9.468 -    but WITHOUT ANY WARRANTY; without even the implied warranty of
   9.469 -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   9.470 -    Library General Public License for more details.
   9.471 -
   9.472 -    You should have received a copy of the GNU Library General Public
   9.473 -    License along with this library; if not, write to the Free
   9.474 -    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
   9.475 -    MA 02111-1307, USA
   9.476 -
   9.477 -Also add information on how to contact you by electronic and paper mail.
   9.478 -
   9.479 -You should also get your employer (if you work as a programmer) or your
   9.480 -school, if any, to sign a "copyright disclaimer" for the library, if
   9.481 -necessary.  Here is a sample; alter the names:
   9.482 -
   9.483 -  Yoyodyne, Inc., hereby disclaims all copyright interest in the
   9.484 -  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
   9.485 -
   9.486 -  <signature of Ty Coon>, 1 April 1990
   9.487 -  Ty Coon, President of Vice
   9.488 -
   9.489 -That's all there is to it!
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/VisualC/external/lib/x86/LICENSE.modplug.txt	Sun Jun 09 16:22:42 2013 -0700
    10.3 @@ -0,0 +1,1 @@
    10.4 +ModPlug-XMMS and libmodplug are now in the public domain.
    11.1 Binary file VisualC/external/lib/x86/libmikmod-2.dll has changed
    12.1 Binary file VisualC/external/lib/x86/libmodplug-1.dll has changed
    13.1 --- a/Xcode-iOS/SDL_mixer.xcodeproj/project.pbxproj	Sat Jun 08 17:35:37 2013 -0700
    13.2 +++ b/Xcode-iOS/SDL_mixer.xcodeproj/project.pbxproj	Sun Jun 09 16:22:42 2013 -0700
    13.3 @@ -21,6 +21,45 @@
    13.4  		AA5F0F0D14B6A6490036992F /* fluidsynth.h in Headers */ = {isa = PBXBuildFile; fileRef = AA5F0F0614B6A6490036992F /* fluidsynth.h */; };
    13.5  		AA5F0F0E14B6A6490036992F /* music_modplug.c in Sources */ = {isa = PBXBuildFile; fileRef = AA5F0F0714B6A6490036992F /* music_modplug.c */; };
    13.6  		AA5F0F0F14B6A6490036992F /* music_modplug.h in Headers */ = {isa = PBXBuildFile; fileRef = AA5F0F0814B6A6490036992F /* music_modplug.h */; };
    13.7 +		AA60217217653A9800662B9C /* fastmix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60214D17653A9800662B9C /* fastmix.cpp */; };
    13.8 +		AA60217317653A9800662B9C /* load_669.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60214E17653A9800662B9C /* load_669.cpp */; };
    13.9 +		AA60217417653A9800662B9C /* load_abc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60214F17653A9800662B9C /* load_abc.cpp */; };
   13.10 +		AA60217517653A9800662B9C /* load_amf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60215017653A9800662B9C /* load_amf.cpp */; };
   13.11 +		AA60217617653A9800662B9C /* load_ams.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60215117653A9800662B9C /* load_ams.cpp */; };
   13.12 +		AA60217717653A9800662B9C /* load_dbm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60215217653A9800662B9C /* load_dbm.cpp */; };
   13.13 +		AA60217817653A9800662B9C /* load_dmf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60215317653A9800662B9C /* load_dmf.cpp */; };
   13.14 +		AA60217917653A9800662B9C /* load_dsm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60215417653A9800662B9C /* load_dsm.cpp */; };
   13.15 +		AA60217A17653A9800662B9C /* load_far.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60215517653A9800662B9C /* load_far.cpp */; };
   13.16 +		AA60217B17653A9800662B9C /* load_it.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60215617653A9800662B9C /* load_it.cpp */; };
   13.17 +		AA60217C17653A9800662B9C /* load_j2b.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60215717653A9800662B9C /* load_j2b.cpp */; };
   13.18 +		AA60217D17653A9800662B9C /* load_mdl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60215817653A9800662B9C /* load_mdl.cpp */; };
   13.19 +		AA60217E17653A9800662B9C /* load_med.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60215917653A9800662B9C /* load_med.cpp */; };
   13.20 +		AA60217F17653A9800662B9C /* load_mid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60215A17653A9800662B9C /* load_mid.cpp */; };
   13.21 +		AA60218017653A9800662B9C /* load_mod.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60215B17653A9800662B9C /* load_mod.cpp */; };
   13.22 +		AA60218117653A9800662B9C /* load_mt2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60215C17653A9800662B9C /* load_mt2.cpp */; };
   13.23 +		AA60218217653A9800662B9C /* load_mtm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60215D17653A9800662B9C /* load_mtm.cpp */; };
   13.24 +		AA60218317653A9800662B9C /* load_okt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60215E17653A9800662B9C /* load_okt.cpp */; };
   13.25 +		AA60218417653A9800662B9C /* load_pat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60215F17653A9800662B9C /* load_pat.cpp */; };
   13.26 +		AA60218517653A9800662B9C /* load_pat.h in Headers */ = {isa = PBXBuildFile; fileRef = AA60216017653A9800662B9C /* load_pat.h */; };
   13.27 +		AA60218617653A9800662B9C /* load_psm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60216117653A9800662B9C /* load_psm.cpp */; };
   13.28 +		AA60218717653A9800662B9C /* load_ptm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60216217653A9800662B9C /* load_ptm.cpp */; };
   13.29 +		AA60218817653A9800662B9C /* load_s3m.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60216317653A9800662B9C /* load_s3m.cpp */; };
   13.30 +		AA60218917653A9800662B9C /* load_stm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60216417653A9800662B9C /* load_stm.cpp */; };
   13.31 +		AA60218A17653A9800662B9C /* load_ult.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60216517653A9800662B9C /* load_ult.cpp */; };
   13.32 +		AA60218B17653A9800662B9C /* load_umx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60216617653A9800662B9C /* load_umx.cpp */; };
   13.33 +		AA60218C17653A9800662B9C /* load_wav.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60216717653A9800662B9C /* load_wav.cpp */; };
   13.34 +		AA60218D17653A9800662B9C /* load_xm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60216817653A9800662B9C /* load_xm.cpp */; };
   13.35 +		AA60218E17653A9800662B9C /* mmcmp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60216917653A9800662B9C /* mmcmp.cpp */; };
   13.36 +		AA60218F17653A9800662B9C /* modplug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60216A17653A9800662B9C /* modplug.cpp */; };
   13.37 +		AA60219017653A9800662B9C /* modplug.h in Headers */ = {isa = PBXBuildFile; fileRef = AA60216B17653A9800662B9C /* modplug.h */; };
   13.38 +		AA60219117653A9800662B9C /* snd_dsp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60216C17653A9800662B9C /* snd_dsp.cpp */; };
   13.39 +		AA60219217653A9800662B9C /* snd_flt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60216D17653A9800662B9C /* snd_flt.cpp */; };
   13.40 +		AA60219317653A9800662B9C /* snd_fx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60216E17653A9800662B9C /* snd_fx.cpp */; };
   13.41 +		AA60219417653A9800662B9C /* sndfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60216F17653A9800662B9C /* sndfile.cpp */; };
   13.42 +		AA60219517653A9800662B9C /* sndmix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA60217017653A9800662B9C /* sndmix.cpp */; };
   13.43 +		AA60219617653A9800662B9C /* tables.h in Headers */ = {isa = PBXBuildFile; fileRef = AA60217117653A9800662B9C /* tables.h */; };
   13.44 +		AA60219917653B8700662B9C /* dynamic_modplug.c in Sources */ = {isa = PBXBuildFile; fileRef = AA60219717653B8700662B9C /* dynamic_modplug.c */; };
   13.45 +		AA60219A17653B8700662B9C /* dynamic_modplug.h in Headers */ = {isa = PBXBuildFile; fileRef = AA60219817653B8700662B9C /* dynamic_modplug.h */; };
   13.46  		AA644294175B0E0600A2125A /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = AA644292175B0E0600A2125A /* bitwise.c */; };
   13.47  		AA644295175B0E0600A2125A /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = AA644293175B0E0600A2125A /* framing.c */; };
   13.48  		AA64429E175B0E2500A2125A /* asm_arm.h in Headers */ = {isa = PBXBuildFile; fileRef = AA644296175B0E2500A2125A /* asm_arm.h */; };
   13.49 @@ -154,6 +193,45 @@
   13.50  		AA5F0F0614B6A6490036992F /* fluidsynth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fluidsynth.h; path = ../fluidsynth.h; sourceTree = "<group>"; };
   13.51  		AA5F0F0714B6A6490036992F /* music_modplug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = music_modplug.c; path = ../music_modplug.c; sourceTree = "<group>"; };
   13.52  		AA5F0F0814B6A6490036992F /* music_modplug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = music_modplug.h; path = ../music_modplug.h; sourceTree = "<group>"; };
   13.53 +		AA60214D17653A9800662B9C /* fastmix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fastmix.cpp; path = src/fastmix.cpp; sourceTree = "<group>"; };
   13.54 +		AA60214E17653A9800662B9C /* load_669.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_669.cpp; path = src/load_669.cpp; sourceTree = "<group>"; };
   13.55 +		AA60214F17653A9800662B9C /* load_abc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_abc.cpp; path = src/load_abc.cpp; sourceTree = "<group>"; };
   13.56 +		AA60215017653A9800662B9C /* load_amf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_amf.cpp; path = src/load_amf.cpp; sourceTree = "<group>"; };
   13.57 +		AA60215117653A9800662B9C /* load_ams.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_ams.cpp; path = src/load_ams.cpp; sourceTree = "<group>"; };
   13.58 +		AA60215217653A9800662B9C /* load_dbm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_dbm.cpp; path = src/load_dbm.cpp; sourceTree = "<group>"; };
   13.59 +		AA60215317653A9800662B9C /* load_dmf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_dmf.cpp; path = src/load_dmf.cpp; sourceTree = "<group>"; };
   13.60 +		AA60215417653A9800662B9C /* load_dsm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_dsm.cpp; path = src/load_dsm.cpp; sourceTree = "<group>"; };
   13.61 +		AA60215517653A9800662B9C /* load_far.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_far.cpp; path = src/load_far.cpp; sourceTree = "<group>"; };
   13.62 +		AA60215617653A9800662B9C /* load_it.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_it.cpp; path = src/load_it.cpp; sourceTree = "<group>"; };
   13.63 +		AA60215717653A9800662B9C /* load_j2b.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_j2b.cpp; path = src/load_j2b.cpp; sourceTree = "<group>"; };
   13.64 +		AA60215817653A9800662B9C /* load_mdl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_mdl.cpp; path = src/load_mdl.cpp; sourceTree = "<group>"; };
   13.65 +		AA60215917653A9800662B9C /* load_med.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_med.cpp; path = src/load_med.cpp; sourceTree = "<group>"; };
   13.66 +		AA60215A17653A9800662B9C /* load_mid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_mid.cpp; path = src/load_mid.cpp; sourceTree = "<group>"; };
   13.67 +		AA60215B17653A9800662B9C /* load_mod.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_mod.cpp; path = src/load_mod.cpp; sourceTree = "<group>"; };
   13.68 +		AA60215C17653A9800662B9C /* load_mt2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_mt2.cpp; path = src/load_mt2.cpp; sourceTree = "<group>"; };
   13.69 +		AA60215D17653A9800662B9C /* load_mtm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_mtm.cpp; path = src/load_mtm.cpp; sourceTree = "<group>"; };
   13.70 +		AA60215E17653A9800662B9C /* load_okt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_okt.cpp; path = src/load_okt.cpp; sourceTree = "<group>"; };
   13.71 +		AA60215F17653A9800662B9C /* load_pat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_pat.cpp; path = src/load_pat.cpp; sourceTree = "<group>"; };
   13.72 +		AA60216017653A9800662B9C /* load_pat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = load_pat.h; path = src/load_pat.h; sourceTree = "<group>"; };
   13.73 +		AA60216117653A9800662B9C /* load_psm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_psm.cpp; path = src/load_psm.cpp; sourceTree = "<group>"; };
   13.74 +		AA60216217653A9800662B9C /* load_ptm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_ptm.cpp; path = src/load_ptm.cpp; sourceTree = "<group>"; };
   13.75 +		AA60216317653A9800662B9C /* load_s3m.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_s3m.cpp; path = src/load_s3m.cpp; sourceTree = "<group>"; };
   13.76 +		AA60216417653A9800662B9C /* load_stm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_stm.cpp; path = src/load_stm.cpp; sourceTree = "<group>"; };
   13.77 +		AA60216517653A9800662B9C /* load_ult.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_ult.cpp; path = src/load_ult.cpp; sourceTree = "<group>"; };
   13.78 +		AA60216617653A9800662B9C /* load_umx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_umx.cpp; path = src/load_umx.cpp; sourceTree = "<group>"; };
   13.79 +		AA60216717653A9800662B9C /* load_wav.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_wav.cpp; path = src/load_wav.cpp; sourceTree = "<group>"; };
   13.80 +		AA60216817653A9800662B9C /* load_xm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = load_xm.cpp; path = src/load_xm.cpp; sourceTree = "<group>"; };
   13.81 +		AA60216917653A9800662B9C /* mmcmp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mmcmp.cpp; path = src/mmcmp.cpp; sourceTree = "<group>"; };
   13.82 +		AA60216A17653A9800662B9C /* modplug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = modplug.cpp; path = src/modplug.cpp; sourceTree = "<group>"; };
   13.83 +		AA60216B17653A9800662B9C /* modplug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = modplug.h; path = src/modplug.h; sourceTree = "<group>"; };
   13.84 +		AA60216C17653A9800662B9C /* snd_dsp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = snd_dsp.cpp; path = src/snd_dsp.cpp; sourceTree = "<group>"; };
   13.85 +		AA60216D17653A9800662B9C /* snd_flt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = snd_flt.cpp; path = src/snd_flt.cpp; sourceTree = "<group>"; };
   13.86 +		AA60216E17653A9800662B9C /* snd_fx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = snd_fx.cpp; path = src/snd_fx.cpp; sourceTree = "<group>"; };
   13.87 +		AA60216F17653A9800662B9C /* sndfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = sndfile.cpp; path = src/sndfile.cpp; sourceTree = "<group>"; };
   13.88 +		AA60217017653A9800662B9C /* sndmix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = sndmix.cpp; path = src/sndmix.cpp; sourceTree = "<group>"; };
   13.89 +		AA60217117653A9800662B9C /* tables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tables.h; path = src/tables.h; sourceTree = "<group>"; };
   13.90 +		AA60219717653B8700662B9C /* dynamic_modplug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dynamic_modplug.c; path = ../dynamic_modplug.c; sourceTree = "<group>"; };
   13.91 +		AA60219817653B8700662B9C /* dynamic_modplug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dynamic_modplug.h; path = ../dynamic_modplug.h; sourceTree = "<group>"; };
   13.92  		AA644292175B0E0600A2125A /* bitwise.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bitwise.c; path = "libogg-1.3.1/src/bitwise.c"; sourceTree = "<group>"; };
   13.93  		AA644293175B0E0600A2125A /* framing.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = framing.c; path = "libogg-1.3.1/src/framing.c"; sourceTree = "<group>"; };
   13.94  		AA644296175B0E2500A2125A /* asm_arm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asm_arm.h; path = "libvorbisidec-1.2.1/asm_arm.h"; sourceTree = "<group>"; };
   13.95 @@ -246,14 +324,17 @@
   13.96  		08FB77ACFE841707C02AAC07 /* Library Source */ = {
   13.97  			isa = PBXGroup;
   13.98  			children = (
   13.99 +				AA60214C17653A5900662B9C /* modplug */,
  13.100 +				5CC1B87F012FB8CD7F000001 /* timidity */,
  13.101  				AA644291175B0D6E00A2125A /* tremor */,
  13.102 -				5CC1B87F012FB8CD7F000001 /* timidity */,
  13.103  				00938E49108A397A0009CF19 /* dynamic_flac.c */,
  13.104  				00938E4A108A397A0009CF19 /* dynamic_flac.h */,
  13.105  				AA5F0F0214B6A6490036992F /* dynamic_fluidsynth.c */,
  13.106  				AA5F0F0314B6A6490036992F /* dynamic_fluidsynth.h */,
  13.107  				00938E4B108A397A0009CF19 /* dynamic_mod.c */,
  13.108  				AA5F0F0414B6A6490036992F /* dynamic_mod.h */,
  13.109 +				AA60219717653B8700662B9C /* dynamic_modplug.c */,
  13.110 +				AA60219817653B8700662B9C /* dynamic_modplug.h */,
  13.111  				04A8FCA40A19CAEC0046373F /* dynamic_mp3.c */,
  13.112  				00938E4C108A397A0009CF19 /* dynamic_mp3.h */,
  13.113  				04A8FCA90A19CB070046373F /* dynamic_ogg.c */,
  13.114 @@ -325,6 +406,51 @@
  13.115  			path = ../timidity;
  13.116  			sourceTree = "<group>";
  13.117  		};
  13.118 +		AA60214C17653A5900662B9C /* modplug */ = {
  13.119 +			isa = PBXGroup;
  13.120 +			children = (
  13.121 +				AA60214D17653A9800662B9C /* fastmix.cpp */,
  13.122 +				AA60214E17653A9800662B9C /* load_669.cpp */,
  13.123 +				AA60214F17653A9800662B9C /* load_abc.cpp */,
  13.124 +				AA60215017653A9800662B9C /* load_amf.cpp */,
  13.125 +				AA60215117653A9800662B9C /* load_ams.cpp */,
  13.126 +				AA60215217653A9800662B9C /* load_dbm.cpp */,
  13.127 +				AA60215317653A9800662B9C /* load_dmf.cpp */,
  13.128 +				AA60215417653A9800662B9C /* load_dsm.cpp */,
  13.129 +				AA60215517653A9800662B9C /* load_far.cpp */,
  13.130 +				AA60215617653A9800662B9C /* load_it.cpp */,
  13.131 +				AA60215717653A9800662B9C /* load_j2b.cpp */,
  13.132 +				AA60215817653A9800662B9C /* load_mdl.cpp */,
  13.133 +				AA60215917653A9800662B9C /* load_med.cpp */,
  13.134 +				AA60215A17653A9800662B9C /* load_mid.cpp */,
  13.135 +				AA60215B17653A9800662B9C /* load_mod.cpp */,
  13.136 +				AA60215C17653A9800662B9C /* load_mt2.cpp */,
  13.137 +				AA60215D17653A9800662B9C /* load_mtm.cpp */,
  13.138 +				AA60215E17653A9800662B9C /* load_okt.cpp */,
  13.139 +				AA60215F17653A9800662B9C /* load_pat.cpp */,
  13.140 +				AA60216017653A9800662B9C /* load_pat.h */,
  13.141 +				AA60216117653A9800662B9C /* load_psm.cpp */,
  13.142 +				AA60216217653A9800662B9C /* load_ptm.cpp */,
  13.143 +				AA60216317653A9800662B9C /* load_s3m.cpp */,
  13.144 +				AA60216417653A9800662B9C /* load_stm.cpp */,
  13.145 +				AA60216517653A9800662B9C /* load_ult.cpp */,
  13.146 +				AA60216617653A9800662B9C /* load_umx.cpp */,
  13.147 +				AA60216717653A9800662B9C /* load_wav.cpp */,
  13.148 +				AA60216817653A9800662B9C /* load_xm.cpp */,
  13.149 +				AA60216917653A9800662B9C /* mmcmp.cpp */,
  13.150 +				AA60216A17653A9800662B9C /* modplug.cpp */,
  13.151 +				AA60216B17653A9800662B9C /* modplug.h */,
  13.152 +				AA60216C17653A9800662B9C /* snd_dsp.cpp */,
  13.153 +				AA60216D17653A9800662B9C /* snd_flt.cpp */,
  13.154 +				AA60216E17653A9800662B9C /* snd_fx.cpp */,
  13.155 +				AA60216F17653A9800662B9C /* sndfile.cpp */,
  13.156 +				AA60217017653A9800662B9C /* sndmix.cpp */,
  13.157 +				AA60217117653A9800662B9C /* tables.h */,
  13.158 +			);
  13.159 +			name = modplug;
  13.160 +			path = "../external/libmodplug-0.8.8.4";
  13.161 +			sourceTree = "<group>";
  13.162 +		};
  13.163  		AA644291175B0D6E00A2125A /* tremor */ = {
  13.164  			isa = PBXGroup;
  13.165  			children = (
  13.166 @@ -413,6 +539,10 @@
  13.167  				AA6442C8175B0E5000A2125A /* registry.h in Headers */,
  13.168  				AA6442CD175B0E5000A2125A /* window_lookup.h in Headers */,
  13.169  				AA6442CF175B0E5000A2125A /* window.h in Headers */,
  13.170 +				AA60218517653A9800662B9C /* load_pat.h in Headers */,
  13.171 +				AA60219017653A9800662B9C /* modplug.h in Headers */,
  13.172 +				AA60219617653A9800662B9C /* tables.h in Headers */,
  13.173 +				AA60219A17653B8700662B9C /* dynamic_modplug.h in Headers */,
  13.174  			);
  13.175  			runOnlyForDeploymentPostprocessing = 0;
  13.176  		};
  13.177 @@ -527,6 +657,41 @@
  13.178  				AA6442CB175B0E5000A2125A /* synthesis.c in Sources */,
  13.179  				AA6442CC175B0E5000A2125A /* vorbisfile.c in Sources */,
  13.180  				AA6442CE175B0E5000A2125A /* window.c in Sources */,
  13.181 +				AA60217217653A9800662B9C /* fastmix.cpp in Sources */,
  13.182 +				AA60217317653A9800662B9C /* load_669.cpp in Sources */,
  13.183 +				AA60217417653A9800662B9C /* load_abc.cpp in Sources */,
  13.184 +				AA60217517653A9800662B9C /* load_amf.cpp in Sources */,
  13.185 +				AA60217617653A9800662B9C /* load_ams.cpp in Sources */,
  13.186 +				AA60217717653A9800662B9C /* load_dbm.cpp in Sources */,
  13.187 +				AA60217817653A9800662B9C /* load_dmf.cpp in Sources */,
  13.188 +				AA60217917653A9800662B9C /* load_dsm.cpp in Sources */,
  13.189 +				AA60217A17653A9800662B9C /* load_far.cpp in Sources */,
  13.190 +				AA60217B17653A9800662B9C /* load_it.cpp in Sources */,
  13.191 +				AA60217C17653A9800662B9C /* load_j2b.cpp in Sources */,
  13.192 +				AA60217D17653A9800662B9C /* load_mdl.cpp in Sources */,
  13.193 +				AA60217E17653A9800662B9C /* load_med.cpp in Sources */,
  13.194 +				AA60217F17653A9800662B9C /* load_mid.cpp in Sources */,
  13.195 +				AA60218017653A9800662B9C /* load_mod.cpp in Sources */,
  13.196 +				AA60218117653A9800662B9C /* load_mt2.cpp in Sources */,
  13.197 +				AA60218217653A9800662B9C /* load_mtm.cpp in Sources */,
  13.198 +				AA60218317653A9800662B9C /* load_okt.cpp in Sources */,
  13.199 +				AA60218417653A9800662B9C /* load_pat.cpp in Sources */,
  13.200 +				AA60218617653A9800662B9C /* load_psm.cpp in Sources */,
  13.201 +				AA60218717653A9800662B9C /* load_ptm.cpp in Sources */,
  13.202 +				AA60218817653A9800662B9C /* load_s3m.cpp in Sources */,
  13.203 +				AA60218917653A9800662B9C /* load_stm.cpp in Sources */,
  13.204 +				AA60218A17653A9800662B9C /* load_ult.cpp in Sources */,
  13.205 +				AA60218B17653A9800662B9C /* load_umx.cpp in Sources */,
  13.206 +				AA60218C17653A9800662B9C /* load_wav.cpp in Sources */,
  13.207 +				AA60218D17653A9800662B9C /* load_xm.cpp in Sources */,
  13.208 +				AA60218E17653A9800662B9C /* mmcmp.cpp in Sources */,
  13.209 +				AA60218F17653A9800662B9C /* modplug.cpp in Sources */,
  13.210 +				AA60219117653A9800662B9C /* snd_dsp.cpp in Sources */,
  13.211 +				AA60219217653A9800662B9C /* snd_flt.cpp in Sources */,
  13.212 +				AA60219317653A9800662B9C /* snd_fx.cpp in Sources */,
  13.213 +				AA60219417653A9800662B9C /* sndfile.cpp in Sources */,
  13.214 +				AA60219517653A9800662B9C /* sndmix.cpp in Sources */,
  13.215 +				AA60219917653B8700662B9C /* dynamic_modplug.c in Sources */,
  13.216  			);
  13.217  			runOnlyForDeploymentPostprocessing = 0;
  13.218  		};
  13.219 @@ -564,9 +729,13 @@
  13.220  				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
  13.221  				GCC_PREPROCESSOR_DEFINITIONS = (
  13.222  					WAV_MUSIC,
  13.223 +					MODPLUG_MUSIC,
  13.224  					MID_MUSIC,
  13.225  					OGG_MUSIC,
  13.226  					OGG_USE_TREMOR,
  13.227 +					HAVE_STDINT_H,
  13.228 +					HAVE_SETENV,
  13.229 +					HAVE_SINF,
  13.230  				);
  13.231  				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
  13.232  				HEADER_SEARCH_PATHS = (
  13.233 @@ -574,7 +743,7 @@
  13.234  					"$(HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_2)",
  13.235  				);
  13.236  				HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_1 = "\"$(SRCROOT)/../../SDL/include\"";
  13.237 -				HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_2 = "\"$(SRCROOT)/../external/libvorbisidec-1.2.1\" \"$(SRCROOT)/../external/libogg-1.3.1/include\"";
  13.238 +				HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_2 = "\"$(SRCROOT)/../external/libmodplug-0.8.8.4/src\" \"$(SRCROOT)/../external/libmodplug-0.8.8.4/src/libmodplug\" \"$(SRCROOT)/../external/libvorbisidec-1.2.1\" \"$(SRCROOT)/../external/libogg-1.3.1/include\"";
  13.239  				IPHONEOS_DEPLOYMENT_TARGET = 3.0;
  13.240  				SDKROOT = iphoneos;
  13.241  				TARGETED_DEVICE_FAMILY = "1,2";
  13.242 @@ -588,9 +757,13 @@
  13.243  				GCC_OPTIMIZATION_LEVEL = 0;
  13.244  				GCC_PREPROCESSOR_DEFINITIONS = (
  13.245  					WAV_MUSIC,
  13.246 +					MODPLUG_MUSIC,
  13.247  					MID_MUSIC,
  13.248  					OGG_MUSIC,
  13.249  					OGG_USE_TREMOR,
  13.250 +					HAVE_STDINT_H,
  13.251 +					HAVE_SETENV,
  13.252 +					HAVE_SINF,
  13.253  				);
  13.254  				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
  13.255  				HEADER_SEARCH_PATHS = (
  13.256 @@ -598,7 +771,7 @@
  13.257  					"$(HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_2)",
  13.258  				);
  13.259  				HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_1 = "\"$(SRCROOT)/../../SDL/include\"";
  13.260 -				HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_2 = "\"$(SRCROOT)/../external/libvorbisidec-1.2.1\" \"$(SRCROOT)/../external/libogg-1.3.1/include\"";
  13.261 +				HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_2 = "\"$(SRCROOT)/../external/libmodplug-0.8.8.4/src\" \"$(SRCROOT)/../external/libmodplug-0.8.8.4/src/libmodplug\" \"$(SRCROOT)/../external/libvorbisidec-1.2.1\" \"$(SRCROOT)/../external/libogg-1.3.1/include\"";
  13.262  				IPHONEOS_DEPLOYMENT_TARGET = 3.0;
  13.263  				SDKROOT = iphoneos;
  13.264  				TARGETED_DEVICE_FAMILY = "1,2";
    14.1 --- a/Xcode/Frameworks/mikmod.framework/Headers	Sat Jun 08 17:35:37 2013 -0700
    14.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.3 @@ -1,1 +0,0 @@
    14.4 -Versions/Current/Headers
    14.5 \ No newline at end of file
    15.1 --- a/Xcode/Frameworks/mikmod.framework/LICENSE.mikmod.txt	Sat Jun 08 17:35:37 2013 -0700
    15.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.3 @@ -1,486 +0,0 @@
    15.4 -The source code to this library used with SDL_mixer can be found here:
    15.5 -http://www.libsdl.org/projects/SDL_mixer/libs/
    15.6 ----
    15.7 -
    15.8 -		  GNU LIBRARY GENERAL PUBLIC LICENSE
    15.9 -		       Version 2, June 1991
   15.10 -
   15.11 - Copyright (C) 1991 Free Software Foundation, Inc.
   15.12 - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
   15.13 - Everyone is permitted to copy and distribute verbatim copies
   15.14 - of this license document, but changing it is not allowed.
   15.15 -
   15.16 -[This is the first released version of the library GPL.  It is
   15.17 - numbered 2 because it goes with version 2 of the ordinary GPL.]
   15.18 -
   15.19 -			    Preamble
   15.20 -
   15.21 -  The licenses for most software are designed to take away your
   15.22 -freedom to share and change it.  By contrast, the GNU General Public
   15.23 -Licenses are intended to guarantee your freedom to share and change
   15.24 -free software--to make sure the software is free for all its users.
   15.25 -
   15.26 -  This license, the Library General Public License, applies to some
   15.27 -specially designated Free Software Foundation software, and to any
   15.28 -other libraries whose authors decide to use it.  You can use it for
   15.29 -your libraries, too.
   15.30 -
   15.31 -  When we speak of free software, we are referring to freedom, not
   15.32 -price.  Our General Public Licenses are designed to make sure that you
   15.33 -have the freedom to distribute copies of free software (and charge for
   15.34 -this service if you wish), that you receive source code or can get it
   15.35 -if you want it, that you can change the software or use pieces of it
   15.36 -in new free programs; and that you know you can do these things.
   15.37 -
   15.38 -  To protect your rights, we need to make restrictions that forbid
   15.39 -anyone to deny you these rights or to ask you to surrender the rights.
   15.40 -These restrictions translate to certain responsibilities for you if
   15.41 -you distribute copies of the library, or if you modify it.
   15.42 -
   15.43 -  For example, if you distribute copies of the library, whether gratis
   15.44 -or for a fee, you must give the recipients all the rights that we gave
   15.45 -you.  You must make sure that they, too, receive or can get the source
   15.46 -code.  If you link a program with the library, you must provide
   15.47 -complete object files to the recipients so that they can relink them
   15.48 -with the library, after making changes to the library and recompiling
   15.49 -it.  And you must show them these terms so they know their rights.
   15.50 -
   15.51 -  Our method of protecting your rights has two steps: (1) copyright
   15.52 -the library, and (2) offer you this license which gives you legal
   15.53 -permission to copy, distribute and/or modify the library.
   15.54 -
   15.55 -  Also, for each distributor's protection, we want to make certain
   15.56 -that everyone understands that there is no warranty for this free
   15.57 -library.  If the library is modified by someone else and passed on, we
   15.58 -want its recipients to know that what they have is not the original
   15.59 -version, so that any problems introduced by others will not reflect on
   15.60 -the original authors' reputations.
   15.61 -
   15.62 -  Finally, any free program is threatened constantly by software
   15.63 -patents.  We wish to avoid the danger that companies distributing free
   15.64 -software will individually obtain patent licenses, thus in effect
   15.65 -transforming the program into proprietary software.  To prevent this,
   15.66 -we have made it clear that any patent must be licensed for everyone's
   15.67 -free use or not licensed at all.
   15.68 -
   15.69 -  Most GNU software, including some libraries, is covered by the ordinary
   15.70 -GNU General Public License, which was designed for utility programs.  This
   15.71 -license, the GNU Library General Public License, applies to certain
   15.72 -designated libraries.  This license is quite different from the ordinary
   15.73 -one; be sure to read it in full, and don't assume that anything in it is
   15.74 -the same as in the ordinary license.
   15.75 -
   15.76 -  The reason we have a separate public license for some libraries is that
   15.77 -they blur the distinction we usually make between modifying or adding to a
   15.78 -program and simply using it.  Linking a program with a library, without
   15.79 -changing the library, is in some sense simply using the library, and is
   15.80 -analogous to running a utility program or application program.  However, in
   15.81 -a textual and legal sense, the linked executable is a combined work, a
   15.82 -derivative of the original library, and the ordinary General Public License
   15.83 -treats it as such.
   15.84 -
   15.85 -  Because of this blurred distinction, using the ordinary General
   15.86 -Public License for libraries did not effectively promote software
   15.87 -sharing, because most developers did not use the libraries.  We
   15.88 -concluded that weaker conditions might promote sharing better.
   15.89 -
   15.90 -  However, unrestricted linking of non-free programs would deprive the
   15.91 -users of those programs of all benefit from the free status of the
   15.92 -libraries themselves.  This Library General Public License is intended to
   15.93 -permit developers of non-free programs to use free libraries, while
   15.94 -preserving your freedom as a user of such programs to change the free
   15.95 -libraries that are incorporated in them.  (We have not seen how to achieve
   15.96 -this as regards changes in header files, but we have achieved it as regards
   15.97 -changes in the actual functions of the Library.)  The hope is that this
   15.98 -will lead to faster development of free libraries.
   15.99 -
  15.100 -  The precise terms and conditions for copying, distribution and
  15.101 -modification follow.  Pay close attention to the difference between a
  15.102 -"work based on the library" and a "work that uses the library".  The
  15.103 -former contains code derived from the library, while the latter only
  15.104 -works together with the library.
  15.105 -
  15.106 -  Note that it is possible for a library to be covered by the ordinary
  15.107 -General Public License rather than by this special one.
  15.108 -
  15.109 -		  GNU LIBRARY GENERAL PUBLIC LICENSE
  15.110 -   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
  15.111 -
  15.112 -  0. This License Agreement applies to any software library which
  15.113 -contains a notice placed by the copyright holder or other authorized
  15.114 -party saying it may be distributed under the terms of this Library
  15.115 -General Public License (also called "this License").  Each licensee is
  15.116 -addressed as "you".
  15.117 -
  15.118 -  A "library" means a collection of software functions and/or data
  15.119 -prepared so as to be conveniently linked with application programs
  15.120 -(which use some of those functions and data) to form executables.
  15.121 -
  15.122 -  The "Library", below, refers to any such software library or work
  15.123 -which has been distributed under these terms.  A "work based on the
  15.124 -Library" means either the Library or any derivative work under
  15.125 -copyright law: that is to say, a work containing the Library or a
  15.126 -portion of it, either verbatim or with modifications and/or translated
  15.127 -straightforwardly into another language.  (Hereinafter, translation is
  15.128 -included without limitation in the term "modification".)
  15.129 -
  15.130 -  "Source code" for a work means the preferred form of the work for
  15.131 -making modifications to it.  For a library, complete source code means
  15.132 -all the source code for all modules it contains, plus any associated
  15.133 -interface definition files, plus the scripts used to control compilation
  15.134 -and installation of the library.
  15.135 -
  15.136 -  Activities other than copying, distribution and modification are not
  15.137 -covered by this License; they are outside its scope.  The act of
  15.138 -running a program using the Library is not restricted, and output from
  15.139 -such a program is covered only if its contents constitute a work based
  15.140 -on the Library (independent of the use of the Library in a tool for
  15.141 -writing it).  Whether that is true depends on what the Library does
  15.142 -and what the program that uses the Library does.
  15.143 -  
  15.144 -  1. You may copy and distribute verbatim copies of the Library's
  15.145 -complete source code as you receive it, in any medium, provided that
  15.146 -you conspicuously and appropriately publish on each copy an
  15.147 -appropriate copyright notice and disclaimer of warranty; keep intact
  15.148 -all the notices that refer to this License and to the absence of any
  15.149 -warranty; and distribute a copy of this License along with the
  15.150 -Library.
  15.151 -
  15.152 -  You may charge a fee for the physical act of transferring a copy,
  15.153 -and you may at your option offer warranty protection in exchange for a
  15.154 -fee.
  15.155 -
  15.156 -  2. You may modify your copy or copies of the Library or any portion
  15.157 -of it, thus forming a work based on the Library, and copy and
  15.158 -distribute such modifications or work under the terms of Section 1
  15.159 -above, provided that you also meet all of these conditions:
  15.160 -
  15.161 -    a) The modified work must itself be a software library.
  15.162 -
  15.163 -    b) You must cause the files modified to carry prominent notices
  15.164 -    stating that you changed the files and the date of any change.
  15.165 -
  15.166 -    c) You must cause the whole of the work to be licensed at no
  15.167 -    charge to all third parties under the terms of this License.
  15.168 -
  15.169 -    d) If a facility in the modified Library refers to a function or a
  15.170 -    table of data to be supplied by an application program that uses
  15.171 -    the facility, other than as an argument passed when the facility
  15.172 -    is invoked, then you must make a good faith effort to ensure that,
  15.173 -    in the event an application does not supply such function or
  15.174 -    table, the facility still operates, and performs whatever part of
  15.175 -    its purpose remains meaningful.
  15.176 -
  15.177 -    (For example, a function in a library to compute square roots has
  15.178 -    a purpose that is entirely well-defined independent of the
  15.179 -    application.  Therefore, Subsection 2d requires that any
  15.180 -    application-supplied function or table used by this function must
  15.181 -    be optional: if the application does not supply it, the square
  15.182 -    root function must still compute square roots.)
  15.183 -
  15.184 -These requirements apply to the modified work as a whole.  If
  15.185 -identifiable sections of that work are not derived from the Library,
  15.186 -and can be reasonably considered independent and separate works in
  15.187 -themselves, then this License, and its terms, do not apply to those
  15.188 -sections when you distribute them as separate works.  But when you
  15.189 -distribute the same sections as part of a whole which is a work based
  15.190 -on the Library, the distribution of the whole must be on the terms of
  15.191 -this License, whose permissions for other licensees extend to the
  15.192 -entire whole, and thus to each and every part regardless of who wrote
  15.193 -it.
  15.194 -
  15.195 -Thus, it is not the intent of this section to claim rights or contest
  15.196 -your rights to work written entirely by you; rather, the intent is to
  15.197 -exercise the right to control the distribution of derivative or
  15.198 -collective works based on the Library.
  15.199 -
  15.200 -In addition, mere aggregation of another work not based on the Library
  15.201 -with the Library (or with a work based on the Library) on a volume of
  15.202 -a storage or distribution medium does not bring the other work under
  15.203 -the scope of this License.
  15.204 -
  15.205 -  3. You may opt to apply the terms of the ordinary GNU General Public
  15.206 -License instead of this License to a given copy of the Library.  To do
  15.207 -this, you must alter all the notices that refer to this License, so
  15.208 -that they refer to the ordinary GNU General Public License, version 2,
  15.209 -instead of to this License.  (If a newer version than version 2 of the
  15.210 -ordinary GNU General Public License has appeared, then you can specify
  15.211 -that version instead if you wish.)  Do not make any other change in
  15.212 -these notices.
  15.213 -
  15.214 -  Once this change is made in a given copy, it is irreversible for
  15.215 -that copy, so the ordinary GNU General Public License applies to all
  15.216 -subsequent copies and derivative works made from that copy.
  15.217 -
  15.218 -  This option is useful when you wish to copy part of the code of
  15.219 -the Library into a program that is not a library.
  15.220 -
  15.221 -  4. You may copy and distribute the Library (or a portion or
  15.222 -derivative of it, under Section 2) in object code or executable form
  15.223 -under the terms of Sections 1 and 2 above provided that you accompany
  15.224 -it with the complete corresponding machine-readable source code, which
  15.225 -must be distributed under the terms of Sections 1 and 2 above on a
  15.226 -medium customarily used for software interchange.
  15.227 -
  15.228 -  If distribution of object code is made by offering access to copy
  15.229 -from a designated place, then offering equivalent access to copy the
  15.230 -source code from the same place satisfies the requirement to
  15.231 -distribute the source code, even though third parties are not
  15.232 -compelled to copy the source along with the object code.
  15.233 -
  15.234 -  5. A program that contains no derivative of any portion of the
  15.235 -Library, but is designed to work with the Library by being compiled or
  15.236 -linked with it, is called a "work that uses the Library".  Such a
  15.237 -work, in isolation, is not a derivative work of the Library, and
  15.238 -therefore falls outside the scope of this License.
  15.239 -
  15.240 -  However, linking a "work that uses the Library" with the Library
  15.241 -creates an executable that is a derivative of the Library (because it
  15.242 -contains portions of the Library), rather than a "work that uses the
  15.243 -library".  The executable is therefore covered by this License.
  15.244 -Section 6 states terms for distribution of such executables.
  15.245 -
  15.246 -  When a "work that uses the Library" uses material from a header file
  15.247 -that is part of the Library, the object code for the work may be a
  15.248 -derivative work of the Library even though the source code is not.
  15.249 -Whether this is true is especially significant if the work can be
  15.250 -linked without the Library, or if the work is itself a library.  The
  15.251 -threshold for this to be true is not precisely defined by law.
  15.252 -
  15.253 -  If such an object file uses only numerical parameters, data
  15.254 -structure layouts and accessors, and small macros and small inline
  15.255 -functions (ten lines or less in length), then the use of the object
  15.256 -file is unrestricted, regardless of whether it is legally a derivative
  15.257 -work.  (Executables containing this object code plus portions of the
  15.258 -Library will still fall under Section 6.)
  15.259 -
  15.260 -  Otherwise, if the work is a derivative of the Library, you may
  15.261 -distribute the object code for the work under the terms of Section 6.
  15.262 -Any executables containing that work also fall under Section 6,
  15.263 -whether or not they are linked directly with the Library itself.
  15.264 -
  15.265 -  6. As an exception to the Sections above, you may also compile or
  15.266 -link a "work that uses the Library" with the Library to produce a
  15.267 -work containing portions of the Library, and distribute that work
  15.268 -under terms of your choice, provided that the terms permit
  15.269 -modification of the work for the customer's own use and reverse
  15.270 -engineering for debugging such modifications.
  15.271 -
  15.272 -  You must give prominent notice with each copy of the work that the
  15.273 -Library is used in it and that the Library and its use are covered by
  15.274 -this License.  You must supply a copy of this License.  If the work
  15.275 -during execution displays copyright notices, you must include the
  15.276 -copyright notice for the Library among them, as well as a reference
  15.277 -directing the user to the copy of this License.  Also, you must do one
  15.278 -of these things:
  15.279 -
  15.280 -    a) Accompany the work with the complete corresponding
  15.281 -    machine-readable source code for the Library including whatever
  15.282 -    changes were used in the work (which must be distributed under
  15.283 -    Sections 1 and 2 above); and, if the work is an executable linked
  15.284 -    with the Library, with the complete machine-readable "work that
  15.285 -    uses the Library", as object code and/or source code, so that the
  15.286 -    user can modify the Library and then relink to produce a modified
  15.287 -    executable containing the modified Library.  (It is understood
  15.288 -    that the user who changes the contents of definitions files in the
  15.289 -    Library will not necessarily be able to recompile the application
  15.290 -    to use the modified definitions.)
  15.291 -
  15.292 -    b) Accompany the work with a written offer, valid for at
  15.293 -    least three years, to give the same user the materials
  15.294 -    specified in Subsection 6a, above, for a charge no more
  15.295 -    than the cost of performing this distribution.
  15.296 -
  15.297 -    c) If distribution of the work is made by offering access to copy
  15.298 -    from a designated place, offer equivalent access to copy the above
  15.299 -    specified materials from the same place.
  15.300 -
  15.301 -    d) Verify that the user has already received a copy of these
  15.302 -    materials or that you have already sent this user a copy.
  15.303 -
  15.304 -  For an executable, the required form of the "work that uses the
  15.305 -Library" must include any data and utility programs needed for
  15.306 -reproducing the executable from it.  However, as a special exception,
  15.307 -the source code distributed need not include anything that is normally
  15.308 -distributed (in either source or binary form) with the major
  15.309 -components (compiler, kernel, and so on) of the operating system on
  15.310 -which the executable runs, unless that component itself accompanies
  15.311 -the executable.
  15.312 -
  15.313 -  It may happen that this requirement contradicts the license
  15.314 -restrictions of other proprietary libraries that do not normally
  15.315 -accompany the operating system.  Such a contradiction means you cannot
  15.316 -use both them and the Library together in an executable that you
  15.317 -distribute.
  15.318 -
  15.319 -  7. You may place library facilities that are a work based on the
  15.320 -Library side-by-side in a single library together with other library
  15.321 -facilities not covered by this License, and distribute such a combined
  15.322 -library, provided that the separate distribution of the work based on
  15.323 -the Library and of the other library facilities is otherwise
  15.324 -permitted, and provided that you do these two things:
  15.325 -
  15.326 -    a) Accompany the combined library with a copy of the same work
  15.327 -    based on the Library, uncombined with any other library
  15.328 -    facilities.  This must be distributed under the terms of the
  15.329 -    Sections above.
  15.330 -
  15.331 -    b) Give prominent notice with the combined library of the fact
  15.332 -    that part of it is a work based on the Library, and explaining
  15.333 -    where to find the accompanying uncombined form of the same work.
  15.334 -
  15.335 -  8. You may not copy, modify, sublicense, link with, or distribute
  15.336 -the Library except as expressly provided under this License.  Any
  15.337 -attempt otherwise to copy, modify, sublicense, link with, or
  15.338 -distribute the Library is void, and will automatically terminate your
  15.339 -rights under this License.  However, parties who have received copies,
  15.340 -or rights, from you under this License will not have their licenses
  15.341 -terminated so long as such parties remain in full compliance.
  15.342 -
  15.343 -  9. You are not required to accept this License, since you have not
  15.344 -signed it.  However, nothing else grants you permission to modify or
  15.345 -distribute the Library or its derivative works.  These actions are
  15.346 -prohibited by law if you do not accept this License.  Therefore, by
  15.347 -modifying or distributing the Library (or any work based on the
  15.348 -Library), you indicate your acceptance of this License to do so, and
  15.349 -all its terms and conditions for copying, distributing or modifying
  15.350 -the Library or works based on it.
  15.351 -
  15.352 -  10. Each time you redistribute the Library (or any work based on the
  15.353 -Library), the recipient automatically receives a license from the
  15.354 -original licensor to copy, distribute, link with or modify the Library
  15.355 -subject to these terms and conditions.  You may not impose any further
  15.356 -restrictions on the recipients' exercise of the rights granted herein.
  15.357 -You are not responsible for enforcing compliance by third parties to
  15.358 -this License.
  15.359 -
  15.360 -  11. If, as a consequence of a court judgment or allegation of patent
  15.361 -infringement or for any other reason (not limited to patent issues),
  15.362 -conditions are imposed on you (whether by court order, agreement or
  15.363 -otherwise) that contradict the conditions of this License, they do not
  15.364 -excuse you from the conditions of this License.  If you cannot
  15.365 -distribute so as to satisfy simultaneously your obligations under this
  15.366 -License and any other pertinent obligations, then as a consequence you
  15.367 -may not distribute the Library at all.  For example, if a patent
  15.368 -license would not permit royalty-free redistribution of the Library by
  15.369 -all those who receive copies directly or indirectly through you, then
  15.370 -the only way you could satisfy both it and this License would be to
  15.371 -refrain entirely from distribution of the Library.
  15.372 -
  15.373 -If any portion of this section is held invalid or unenforceable under any
  15.374 -particular circumstance, the balance of the section is intended to apply,
  15.375 -and the section as a whole is intended to apply in other circumstances.
  15.376 -
  15.377 -It is not the purpose of this section to induce you to infringe any
  15.378 -patents or other property right claims or to contest validity of any
  15.379 -such claims; this section has the sole purpose of protecting the
  15.380 -integrity of the free software distribution system which is
  15.381 -implemented by public license practices.  Many people have made
  15.382 -generous contributions to the wide range of software distributed
  15.383 -through that system in reliance on consistent application of that
  15.384 -system; it is up to the author/donor to decide if he or she is willing
  15.385 -to distribute software through any other system and a licensee cannot
  15.386 -impose that choice.
  15.387 -
  15.388 -This section is intended to make thoroughly clear what is believed to
  15.389 -be a consequence of the rest of this License.
  15.390 -
  15.391 -  12. If the distribution and/or use of the Library is restricted in
  15.392 -certain countries either by patents or by copyrighted interfaces, the
  15.393 -original copyright holder who places the Library under this License may add
  15.394 -an explicit geographical distribution limitation excluding those countries,
  15.395 -so that distribution is permitted only in or among countries not thus
  15.396 -excluded.  In such case, this License incorporates the limitation as if
  15.397 -written in the body of this License.
  15.398 -
  15.399 -  13. The Free Software Foundation may publish revised and/or new
  15.400 -versions of the Library General Public License from time to time.
  15.401 -Such new versions will be similar in spirit to the present version,
  15.402 -but may differ in detail to address new problems or concerns.
  15.403 -
  15.404 -Each version is given a distinguishing version number.  If the Library
  15.405 -specifies a version number of this License which applies to it and
  15.406 -"any later version", you have the option of following the terms and
  15.407 -conditions either of that version or of any later version published by
  15.408 -the Free Software Foundation.  If the Library does not specify a
  15.409 -license version number, you may choose any version ever published by
  15.410 -the Free Software Foundation.
  15.411 -
  15.412 -  14. If you wish to incorporate parts of the Library into other free
  15.413 -programs whose distribution conditions are incompatible with these,
  15.414 -write to the author to ask for permission.  For software which is
  15.415 -copyrighted by the Free Software Foundation, write to the Free
  15.416 -Software Foundation; we sometimes make exceptions for this.  Our
  15.417 -decision will be guided by the two goals of preserving the free status
  15.418 -of all derivatives of our free software and of promoting the sharing
  15.419 -and reuse of software generally.
  15.420 -
  15.421 -			    NO WARRANTY
  15.422 -
  15.423 -  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
  15.424 -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
  15.425 -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
  15.426 -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
  15.427 -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
  15.428 -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  15.429 -PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
  15.430 -LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
  15.431 -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
  15.432 -
  15.433 -  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
  15.434 -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
  15.435 -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
  15.436 -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
  15.437 -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
  15.438 -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
  15.439 -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
  15.440 -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
  15.441 -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
  15.442 -DAMAGES.
  15.443 -
  15.444 -		     END OF TERMS AND CONDITIONS
  15.445 -
  15.446 -     Appendix: How to Apply These Terms to Your New Libraries
  15.447 -
  15.448 -  If you develop a new library, and you want it to be of the greatest
  15.449 -possible use to the public, we recommend making it free software that
  15.450 -everyone can redistribute and change.  You can do so by permitting
  15.451 -redistribution under these terms (or, alternatively, under the terms of the
  15.452 -ordinary General Public License).
  15.453 -
  15.454 -  To apply these terms, attach the following notices to the library.  It is
  15.455 -safest to attach them to the start of each source file to most effectively
  15.456 -convey the exclusion of warranty; and each file should have at least the
  15.457 -"copyright" line and a pointer to where the full notice is found.
  15.458 -
  15.459 -    <one line to give the library's name and a brief idea of what it does.>
  15.460 -    Copyright (C) <year>  <name of author>
  15.461 -
  15.462 -    This library is free software; you can redistribute it and/or
  15.463 -    modify it under the terms of the GNU Library General Public
  15.464 -    License as published by the Free Software Foundation; either
  15.465 -    version 2 of the License, or (at your option) any later version.
  15.466 -
  15.467 -    This library is distributed in the hope that it will be useful,
  15.468 -    but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.469 -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15.470 -    Library General Public License for more details.
  15.471 -
  15.472 -    You should have received a copy of the GNU Library General Public
  15.473 -    License along with this library; if not, write to the Free
  15.474 -    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
  15.475 -    MA 02111-1307, USA
  15.476 -
  15.477 -Also add information on how to contact you by electronic and paper mail.
  15.478 -
  15.479 -You should also get your employer (if you work as a programmer) or your
  15.480 -school, if any, to sign a "copyright disclaimer" for the library, if
  15.481 -necessary.  Here is a sample; alter the names:
  15.482 -
  15.483 -  Yoyodyne, Inc., hereby disclaims all copyright interest in the
  15.484 -  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
  15.485 -
  15.486 -  <signature of Ty Coon>, 1 April 1990
  15.487 -  Ty Coon, President of Vice
  15.488 -
  15.489 -That's all there is to it!
    16.1 --- a/Xcode/Frameworks/mikmod.framework/Resources	Sat Jun 08 17:35:37 2013 -0700
    16.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.3 @@ -1,1 +0,0 @@
    16.4 -Versions/Current/Resources
    16.5 \ No newline at end of file
    17.1 --- a/Xcode/Frameworks/mikmod.framework/Versions/A/Headers/mikmod.h	Sat Jun 08 17:35:37 2013 -0700
    17.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.3 @@ -1,725 +0,0 @@
    17.4 -/*	MikMod sound library
    17.5 -	(c) 1998, 1999, 2000 Miodrag Vallat and others - see file AUTHORS
    17.6 -	for complete list.
    17.7 -
    17.8 -	This library is free software; you can redistribute it and/or modify
    17.9 -	it under the terms of the GNU Library General Public License as
   17.10 -	published by the Free Software Foundation; either version 2 of
   17.11 -	the License, or (at your option) any later version.
   17.12 - 
   17.13 -	This program is distributed in the hope that it will be useful,
   17.14 -	but WITHOUT ANY WARRANTY; without even the implied warranty of
   17.15 -	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   17.16 -	GNU Library General Public License for more details.
   17.17 - 
   17.18 -	You should have received a copy of the GNU Library General Public
   17.19 -	License along with this library; if not, write to the Free Software
   17.20 -	Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
   17.21 -	02111-1307, USA.
   17.22 -*/
   17.23 -
   17.24 -/*==============================================================================
   17.25 -
   17.26 -  $Id: mikmod.h.in,v 1.2 2004/06/01 16:43:45 raph Exp $
   17.27 -
   17.28 -  MikMod sound library include file
   17.29 -
   17.30 -==============================================================================*/
   17.31 -
   17.32 -#ifndef _MIKMOD_H_
   17.33 -#define _MIKMOD_H_
   17.34 -
   17.35 -#include <stdio.h>
   17.36 -#include <stdlib.h>
   17.37 -
   17.38 -#ifdef __cplusplus
   17.39 -extern "C" {
   17.40 -#endif
   17.41 -
   17.42 -/*
   17.43 - * ========== Compiler magic for shared libraries
   17.44 - */
   17.45 -
   17.46 -#if defined WIN32 && defined _DLL
   17.47 -#ifdef DLL_EXPORTS
   17.48 -#define MIKMODAPI __declspec(dllexport)
   17.49 -#else
   17.50 -#define MIKMODAPI __declspec(dllimport)
   17.51 -#endif
   17.52 -#else
   17.53 -#define MIKMODAPI
   17.54 -#endif
   17.55 -
   17.56 -/*
   17.57 - *	========== Library version
   17.58 - */
   17.59 -
   17.60 -#define LIBMIKMOD_VERSION_MAJOR 3L
   17.61 -#define LIBMIKMOD_VERSION_MINOR 1L
   17.62 -#define LIBMIKMOD_REVISION      10L
   17.63 -
   17.64 -#define LIBMIKMOD_VERSION \
   17.65 -	((LIBMIKMOD_VERSION_MAJOR<<16)| \
   17.66 -	 (LIBMIKMOD_VERSION_MINOR<< 8)| \
   17.67 -	 (LIBMIKMOD_REVISION))
   17.68 -
   17.69 -MIKMODAPI extern long MikMod_GetVersion(void);
   17.70 -
   17.71 -/*
   17.72 - *	========== Platform independent-type definitions
   17.73 - */
   17.74 -
   17.75 -#ifdef WIN32
   17.76 -#define WIN32_LEAN_AND_MEAN
   17.77 -#include <windows.h>
   17.78 -#include <io.h>
   17.79 -#include <mmsystem.h>
   17.80 -
   17.81 -/* Avoid conflicts with windef.h */
   17.82 -#define SBYTE   _mm_SBYTE
   17.83 -#define UBYTE   _mm_UBYTE
   17.84 -#define SWORD   _mm_SWORD
   17.85 -#define UWORD   _mm_UWORD
   17.86 -#define SLONG   _mm_SLONG
   17.87 -#define ULONG   _mm_ULONG
   17.88 -#define BOOL    _mm_BOOL
   17.89 -
   17.90 -#endif /* WIN32 */
   17.91 -
   17.92 -#if defined(__OS2__)||defined(__EMX__)
   17.93 -#define INCL_DOSSEMAPHORES
   17.94 -#include <os2.h>
   17.95 -#else
   17.96 -typedef char CHAR;
   17.97 -#endif
   17.98 -
   17.99 -
  17.100 -
  17.101 -#if defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(_LP64)
  17.102 -/* 64 bit architectures */
  17.103 -
  17.104 -typedef signed char     SBYTE;      /* 1 byte, signed */
  17.105 -typedef unsigned char   UBYTE;      /* 1 byte, unsigned */
  17.106 -typedef signed short    SWORD;      /* 2 bytes, signed */
  17.107 -typedef unsigned short  UWORD;      /* 2 bytes, unsigned */
  17.108 -typedef signed int      SLONG;      /* 4 bytes, signed */
  17.109 -typedef unsigned int    ULONG;      /* 4 bytes, unsigned */
  17.110 -typedef int             BOOL;       /* 0=false, <>0 true */
  17.111 -
  17.112 -#else
  17.113 -/* 32 bit architectures */
  17.114 -
  17.115 -typedef signed char     SBYTE;      /* 1 byte, signed */
  17.116 -typedef unsigned char   UBYTE;      /* 1 byte, unsigned */
  17.117 -typedef signed short    SWORD;      /* 2 bytes, signed */
  17.118 -typedef unsigned short  UWORD;      /* 2 bytes, unsigned */
  17.119 -typedef signed long     SLONG;      /* 4 bytes, signed */
  17.120 -typedef unsigned long   ULONG;      /* 4 bytes, unsigned */
  17.121 -typedef int             BOOL;       /* 0=false, <>0 true */
  17.122 -#endif
  17.123 -
  17.124 -/*
  17.125 - *	========== Error codes
  17.126 - */
  17.127 -
  17.128 -enum {
  17.129 -	MMERR_OPENING_FILE = 1,
  17.130 -	MMERR_OUT_OF_MEMORY,
  17.131 -	MMERR_DYNAMIC_LINKING,
  17.132 -
  17.133 -	MMERR_SAMPLE_TOO_BIG,
  17.134 -	MMERR_OUT_OF_HANDLES,
  17.135 -	MMERR_UNKNOWN_WAVE_TYPE,
  17.136 -
  17.137 -	MMERR_LOADING_PATTERN,
  17.138 -	MMERR_LOADING_TRACK,
  17.139 -	MMERR_LOADING_HEADER,
  17.140 -	MMERR_LOADING_SAMPLEINFO,
  17.141 -	MMERR_NOT_A_MODULE,
  17.142 -	MMERR_NOT_A_STREAM,
  17.143 -	MMERR_MED_SYNTHSAMPLES,
  17.144 -	MMERR_ITPACK_INVALID_DATA,
  17.145 -
  17.146 -	MMERR_DETECTING_DEVICE,
  17.147 -	MMERR_INVALID_DEVICE,
  17.148 -	MMERR_INITIALIZING_MIXER,
  17.149 -	MMERR_OPENING_AUDIO,
  17.150 -	MMERR_8BIT_ONLY,
  17.151 -	MMERR_16BIT_ONLY,
  17.152 -	MMERR_STEREO_ONLY,
  17.153 -	MMERR_ULAW,
  17.154 -	MMERR_NON_BLOCK,
  17.155 -
  17.156 -	MMERR_AF_AUDIO_PORT,
  17.157 -
  17.158 -	MMERR_AIX_CONFIG_INIT,
  17.159 -	MMERR_AIX_CONFIG_CONTROL,
  17.160 -	MMERR_AIX_CONFIG_START,
  17.161 -
  17.162 -	MMERR_GUS_SETTINGS,
  17.163 -	MMERR_GUS_RESET,
  17.164 -	MMERR_GUS_TIMER,
  17.165 -
  17.166 -	MMERR_HP_SETSAMPLESIZE,
  17.167 -	MMERR_HP_SETSPEED,
  17.168 -	MMERR_HP_CHANNELS,
  17.169 -	MMERR_HP_AUDIO_OUTPUT,
  17.170 -	MMERR_HP_AUDIO_DESC,
  17.171 -	MMERR_HP_BUFFERSIZE,
  17.172 -
  17.173 -	MMERR_OSS_SETFRAGMENT,
  17.174 -	MMERR_OSS_SETSAMPLESIZE,
  17.175 -	MMERR_OSS_SETSTEREO,
  17.176 -	MMERR_OSS_SETSPEED,
  17.177 -
  17.178 -	MMERR_SGI_SPEED,
  17.179 -	MMERR_SGI_16BIT,
  17.180 -	MMERR_SGI_8BIT,
  17.181 -	MMERR_SGI_STEREO,
  17.182 -	MMERR_SGI_MONO,
  17.183 -
  17.184 -	MMERR_SUN_INIT,
  17.185 -
  17.186 -	MMERR_OS2_MIXSETUP,
  17.187 -	MMERR_OS2_SEMAPHORE,
  17.188 -	MMERR_OS2_TIMER,
  17.189 -	MMERR_OS2_THREAD,
  17.190 -
  17.191 -	MMERR_DS_PRIORITY,
  17.192 -	MMERR_DS_BUFFER,
  17.193 -	MMERR_DS_FORMAT,
  17.194 -	MMERR_DS_NOTIFY,
  17.195 -	MMERR_DS_EVENT,
  17.196 -	MMERR_DS_THREAD,
  17.197 -	MMERR_DS_UPDATE,
  17.198 -
  17.199 -	MMERR_WINMM_HANDLE,
  17.200 -	MMERR_WINMM_ALLOCATED,
  17.201 -	MMERR_WINMM_DEVICEID,
  17.202 -	MMERR_WINMM_FORMAT,
  17.203 -	MMERR_WINMM_UNKNOWN,
  17.204 -
  17.205 -	MMERR_MAC_SPEED,
  17.206 -	MMERR_MAC_START,
  17.207 -
  17.208 -	MMERR_MAX
  17.209 -};
  17.210 -
  17.211 -/*
  17.212 - *	========== Error handling
  17.213 - */
  17.214 -
  17.215 -typedef void (MikMod_handler)(void);
  17.216 -typedef MikMod_handler *MikMod_handler_t;
  17.217 -
  17.218 -MIKMODAPI extern int  MikMod_errno;
  17.219 -MIKMODAPI extern BOOL MikMod_critical;
  17.220 -MIKMODAPI extern char *MikMod_strerror(int);
  17.221 -
  17.222 -MIKMODAPI extern MikMod_handler_t MikMod_RegisterErrorHandler(MikMod_handler_t);
  17.223 -
  17.224 -/*
  17.225 - *	========== Library initialization and core functions
  17.226 - */
  17.227 -
  17.228 -struct MDRIVER;
  17.229 -
  17.230 -MIKMODAPI extern void   MikMod_RegisterAllDrivers(void);
  17.231 -
  17.232 -MIKMODAPI extern CHAR*  MikMod_InfoDriver(void);
  17.233 -MIKMODAPI extern void   MikMod_RegisterDriver(struct MDRIVER*);
  17.234 -MIKMODAPI extern int    MikMod_DriverFromAlias(CHAR*);
  17.235 -
  17.236 -MIKMODAPI extern BOOL   MikMod_Init(CHAR*);
  17.237 -MIKMODAPI extern void   MikMod_Exit(void);
  17.238 -MIKMODAPI extern BOOL   MikMod_Reset(CHAR*);
  17.239 -MIKMODAPI extern BOOL   MikMod_SetNumVoices(int,int);
  17.240 -MIKMODAPI extern BOOL   MikMod_Active(void);
  17.241 -MIKMODAPI extern BOOL   MikMod_EnableOutput(void);
  17.242 -MIKMODAPI extern void   MikMod_DisableOutput(void);
  17.243 -MIKMODAPI extern void   MikMod_Update(void);
  17.244 -
  17.245 -MIKMODAPI extern BOOL   MikMod_InitThreads(void);
  17.246 -MIKMODAPI extern void   MikMod_Lock(void);
  17.247 -MIKMODAPI extern void   MikMod_Unlock(void);
  17.248 -
  17.249 -/*
  17.250 - *	========== Reader, Writer
  17.251 - */
  17.252 -
  17.253 -typedef struct MREADER {
  17.254 -	BOOL (*Seek)(struct MREADER*,long,int);
  17.255 -	long (*Tell)(struct MREADER*);
  17.256 -	BOOL (*Read)(struct MREADER*,void*,size_t);
  17.257 -	int  (*Get)(struct MREADER*);
  17.258 -	BOOL (*Eof)(struct MREADER*);
  17.259 -} MREADER;
  17.260 -
  17.261 -typedef struct MWRITER {
  17.262 -	BOOL (*Seek)(struct MWRITER*,long,int);
  17.263 -	long (*Tell)(struct MWRITER*);
  17.264 -	BOOL (*Write)(struct MWRITER*,void*,size_t);
  17.265 -	BOOL (*Put)(struct MWRITER*,int);
  17.266 -} MWRITER;
  17.267 -
  17.268 -/*
  17.269 - *	========== Samples
  17.270 - */
  17.271 -
  17.272 -/* Sample playback should not be interrupted */
  17.273 -#define SFX_CRITICAL 1
  17.274 -
  17.275 -/* Sample format [loading and in-memory] flags: */
  17.276 -#define SF_16BITS       0x0001
  17.277 -#define SF_STEREO       0x0002
  17.278 -#define SF_SIGNED       0x0004
  17.279 -#define SF_BIG_ENDIAN   0x0008
  17.280 -#define SF_DELTA        0x0010
  17.281 -#define SF_ITPACKED		0x0020
  17.282 -
  17.283 -#define	SF_FORMATMASK	0x003F
  17.284 -
  17.285 -/* General Playback flags */
  17.286 -
  17.287 -#define SF_LOOP         0x0100
  17.288 -#define SF_BIDI         0x0200
  17.289 -#define SF_REVERSE      0x0400
  17.290 -#define SF_SUSTAIN      0x0800
  17.291 -
  17.292 -#define SF_PLAYBACKMASK	0x0C00
  17.293 -
  17.294 -/* Module-only Playback Flags */
  17.295 -
  17.296 -#define SF_OWNPAN		0x1000
  17.297 -#define SF_UST_LOOP     0x2000
  17.298 -
  17.299 -#define SF_EXTRAPLAYBACKMASK	0x3000
  17.300 -
  17.301 -/* Panning constants */
  17.302 -#define PAN_LEFT		0
  17.303 -#define PAN_HALFLEFT 	64
  17.304 -#define PAN_CENTER		128
  17.305 -#define PAN_HALFRIGHT	192
  17.306 -#define PAN_RIGHT		255
  17.307 -#define PAN_SURROUND	512 /* panning value for Dolby Surround */
  17.308 -
  17.309 -typedef struct SAMPLE {
  17.310 -	SWORD  panning;     /* panning (0-255 or PAN_SURROUND) */
  17.311 -	ULONG  speed;       /* Base playing speed/frequency of note */
  17.312 -	UBYTE  volume;      /* volume 0-64 */
  17.313 -	UWORD  inflags;		/* sample format on disk */
  17.314 -	UWORD  flags;       /* sample format in memory */
  17.315 -	ULONG  length;      /* length of sample (in samples!) */
  17.316 -	ULONG  loopstart;   /* repeat position (relative to start, in samples) */
  17.317 -	ULONG  loopend;     /* repeat end */
  17.318 -	ULONG  susbegin;    /* sustain loop begin (in samples) \  Not Supported */
  17.319 -	ULONG  susend;      /* sustain loop end                /      Yet! */
  17.320 -
  17.321 -	/* Variables used by the module player only! (ignored for sound effects) */
  17.322 -	UBYTE  globvol;     /* global volume */
  17.323 -	UBYTE  vibflags;    /* autovibrato flag stuffs */
  17.324 -	UBYTE  vibtype;     /* Vibratos moved from INSTRUMENT to SAMPLE */
  17.325 -	UBYTE  vibsweep;
  17.326 -	UBYTE  vibdepth;
  17.327 -	UBYTE  vibrate;
  17.328 -	CHAR*  samplename;  /* name of the sample */
  17.329 -
  17.330 -	/* Values used internally only */
  17.331 -	UWORD  avibpos;     /* autovibrato pos [player use] */
  17.332 -	UBYTE  divfactor;   /* for sample scaling, maintains proper period slides */
  17.333 -	ULONG  seekpos;     /* seek position in file */
  17.334 -	SWORD  handle;      /* sample handle used by individual drivers */
  17.335 -} SAMPLE;
  17.336 -
  17.337 -/* Sample functions */
  17.338 -
  17.339 -MIKMODAPI extern SAMPLE *Sample_Load(CHAR*);
  17.340 -MIKMODAPI extern SAMPLE *Sample_LoadFP(FILE*);
  17.341 -MIKMODAPI extern SAMPLE *Sample_LoadGeneric(MREADER*);
  17.342 -MIKMODAPI extern void   Sample_Free(SAMPLE*);
  17.343 -MIKMODAPI extern SBYTE  Sample_Play(SAMPLE*,ULONG,UBYTE);
  17.344 -
  17.345 -MIKMODAPI extern void   Voice_SetVolume(SBYTE,UWORD);
  17.346 -MIKMODAPI extern UWORD  Voice_GetVolume(SBYTE);
  17.347 -MIKMODAPI extern void   Voice_SetFrequency(SBYTE,ULONG);
  17.348 -MIKMODAPI extern ULONG  Voice_GetFrequency(SBYTE);
  17.349 -MIKMODAPI extern void   Voice_SetPanning(SBYTE,ULONG);
  17.350 -MIKMODAPI extern ULONG  Voice_GetPanning(SBYTE);
  17.351 -MIKMODAPI extern void   Voice_Play(SBYTE,SAMPLE*,ULONG);
  17.352 -MIKMODAPI extern void   Voice_Stop(SBYTE);
  17.353 -MIKMODAPI extern BOOL   Voice_Stopped(SBYTE);
  17.354 -MIKMODAPI extern SLONG  Voice_GetPosition(SBYTE);
  17.355 -MIKMODAPI extern ULONG  Voice_RealVolume(SBYTE);
  17.356 -
  17.357 -/*
  17.358 - *	========== Internal module representation (UniMod)
  17.359 - */
  17.360 -
  17.361 -/*
  17.362 -	Instrument definition - for information only, the only field which may be
  17.363 -	of use in user programs is the name field
  17.364 -*/
  17.365 -
  17.366 -/* Instrument note count */
  17.367 -#define INSTNOTES 120
  17.368 -
  17.369 -/* Envelope point */
  17.370 -typedef struct ENVPT {
  17.371 -	SWORD pos;
  17.372 -	SWORD val;
  17.373 -} ENVPT;
  17.374 -
  17.375 -/* Envelope point count */
  17.376 -#define ENVPOINTS 32
  17.377 -
  17.378 -/* Instrument structure */
  17.379 -typedef struct INSTRUMENT {
  17.380 -	CHAR* insname;
  17.381 -
  17.382 -	UBYTE flags;
  17.383 -	UWORD samplenumber[INSTNOTES];
  17.384 -	UBYTE samplenote[INSTNOTES];
  17.385 -
  17.386 -	UBYTE nnatype;
  17.387 -	UBYTE dca;              /* duplicate check action */
  17.388 -	UBYTE dct;              /* duplicate check type */
  17.389 -	UBYTE globvol;
  17.390 -	UWORD volfade;
  17.391 -	SWORD panning;          /* instrument-based panning var */
  17.392 -
  17.393 -	UBYTE pitpansep;        /* pitch pan separation (0 to 255) */
  17.394 -	UBYTE pitpancenter;     /* pitch pan center (0 to 119) */
  17.395 -	UBYTE rvolvar;          /* random volume varations (0 - 100%) */
  17.396 -	UBYTE rpanvar;          /* random panning varations (0 - 100%) */
  17.397 -
  17.398 -	/* volume envelope */
  17.399 -	UBYTE volflg;           /* bit 0: on 1: sustain 2: loop */
  17.400 -	UBYTE volpts;
  17.401 -	UBYTE volsusbeg;
  17.402 -	UBYTE volsusend;
  17.403 -	UBYTE volbeg;
  17.404 -	UBYTE volend;
  17.405 -	ENVPT volenv[ENVPOINTS];
  17.406 -	/* panning envelope */
  17.407 -	UBYTE panflg;           /* bit 0: on 1: sustain 2: loop */
  17.408 -	UBYTE panpts;
  17.409 -	UBYTE pansusbeg;
  17.410 -	UBYTE pansusend;
  17.411 -	UBYTE panbeg;
  17.412 -	UBYTE panend;
  17.413 -	ENVPT panenv[ENVPOINTS];
  17.414 -	/* pitch envelope */
  17.415 -	UBYTE pitflg;           /* bit 0: on 1: sustain 2: loop */
  17.416 -	UBYTE pitpts;
  17.417 -	UBYTE pitsusbeg;
  17.418 -	UBYTE pitsusend;
  17.419 -	UBYTE pitbeg;
  17.420 -	UBYTE pitend;
  17.421 -	ENVPT pitenv[ENVPOINTS];
  17.422 -} INSTRUMENT;
  17.423 -
  17.424 -struct MP_CONTROL;
  17.425 -struct MP_VOICE;
  17.426 -
  17.427 -/*
  17.428 -	Module definition
  17.429 -*/
  17.430 -
  17.431 -/* maximum master channels supported */
  17.432 -#define UF_MAXCHAN	64
  17.433 -
  17.434 -/* Module flags */
  17.435 -#define UF_XMPERIODS	0x0001 /* XM periods / finetuning */
  17.436 -#define UF_LINEAR		0x0002 /* LINEAR periods (UF_XMPERIODS must be set) */
  17.437 -#define UF_INST			0x0004 /* Instruments are used */
  17.438 -#define UF_NNA			0x0008 /* IT: NNA used, set numvoices rather
  17.439 -								  than numchn */
  17.440 -#define UF_S3MSLIDES	0x0010 /* uses old S3M volume slides */
  17.441 -#define UF_BGSLIDES		0x0020 /* continue volume slides in the background */
  17.442 -#define UF_HIGHBPM		0x0040 /* MED: can use >255 bpm */
  17.443 -#define UF_NOWRAP		0x0080 /* XM-type (i.e. illogical) pattern break
  17.444 -								  semantics */
  17.445 -#define UF_ARPMEM		0x0100 /* IT: need arpeggio memory */
  17.446 -#define UF_FT2QUIRKS	0x0200 /* emulate some FT2 replay quirks */
  17.447 -#define UF_PANNING		0x0400 /* module uses panning effects or have
  17.448 -								  non-tracker default initial panning */
  17.449 -
  17.450 -typedef struct MODULE {
  17.451 -	/* general module information */
  17.452 -		CHAR*       songname;    /* name of the song */
  17.453 -		CHAR*       modtype;     /* string type of module loaded */
  17.454 -		CHAR*       comment;     /* module comments */
  17.455 -
  17.456 -		UWORD       flags;       /* See module flags above */
  17.457 -		UBYTE       numchn;      /* number of module channels */
  17.458 -		UBYTE       numvoices;   /* max # voices used for full NNA playback */
  17.459 -		UWORD       numpos;      /* number of positions in this song */
  17.460 -		UWORD       numpat;      /* number of patterns in this song */
  17.461 -		UWORD       numins;      /* number of instruments */
  17.462 -		UWORD       numsmp;      /* number of samples */
  17.463 -struct  INSTRUMENT* instruments; /* all instruments */
  17.464 -struct  SAMPLE*     samples;     /* all samples */
  17.465 -		UBYTE       realchn;     /* real number of channels used */
  17.466 -		UBYTE       totalchn;    /* total number of channels used (incl NNAs) */
  17.467 -
  17.468 -	/* playback settings */
  17.469 -		UWORD       reppos;      /* restart position */
  17.470 -		UBYTE       initspeed;   /* initial song speed */
  17.471 -		UWORD       inittempo;   /* initial song tempo */
  17.472 -		UBYTE       initvolume;  /* initial global volume (0 - 128) */
  17.473 -		UWORD       panning[UF_MAXCHAN]; /* panning positions */
  17.474 -		UBYTE       chanvol[UF_MAXCHAN]; /* channel positions */
  17.475 -		UWORD       bpm;         /* current beats-per-minute speed */
  17.476 -		UWORD       sngspd;      /* current song speed */
  17.477 -		SWORD       volume;      /* song volume (0-128) (or user volume) */
  17.478 -
  17.479 -		BOOL        extspd;      /* extended speed flag (default enabled) */
  17.480 -		BOOL        panflag;     /* panning flag (default enabled) */
  17.481 -		BOOL        wrap;        /* wrap module ? (default disabled) */
  17.482 -		BOOL        loop;		 /* allow module to loop ? (default enabled) */
  17.483 -		BOOL        fadeout;	 /* volume fade out during last pattern */
  17.484 -
  17.485 -		UWORD       patpos;      /* current row number */
  17.486 -		SWORD       sngpos;      /* current song position */
  17.487 -		ULONG       sngtime;     /* current song time in 2^-10 seconds */
  17.488 -
  17.489 -		SWORD       relspd;      /* relative speed factor */
  17.490 -
  17.491 -	/* internal module representation */
  17.492 -		UWORD       numtrk;      /* number of tracks */
  17.493 -		UBYTE**     tracks;      /* array of numtrk pointers to tracks */
  17.494 -		UWORD*      patterns;    /* array of Patterns */
  17.495 -		UWORD*      pattrows;    /* array of number of rows for each pattern */
  17.496 -		UWORD*      positions;   /* all positions */
  17.497 -
  17.498 -		BOOL        forbid;      /* if true, no player update! */
  17.499 -		UWORD       numrow;      /* number of rows on current pattern */
  17.500 -		UWORD       vbtick;      /* tick counter (counts from 0 to sngspd) */
  17.501 -		UWORD       sngremainder;/* used for song time computation */
  17.502 -
  17.503 -struct MP_CONTROL*  control;     /* Effects Channel info (size pf->numchn) */
  17.504 -struct MP_VOICE*    voice;       /* Audio Voice information (size md_numchn) */
  17.505 -
  17.506 -		UBYTE       globalslide; /* global volume slide rate */
  17.507 -		UBYTE       pat_repcrazy;/* module has just looped to position -1 */
  17.508 -		UWORD       patbrk;      /* position where to start a new pattern */
  17.509 -		UBYTE       patdly;      /* patterndelay counter (command memory) */
  17.510 -		UBYTE       patdly2;     /* patterndelay counter (real one) */
  17.511 -		SWORD       posjmp;      /* flag to indicate a jump is needed... */
  17.512 -		UWORD		bpmlimit;	 /* threshold to detect bpm or speed values */
  17.513 -} MODULE;
  17.514 -
  17.515 -/*
  17.516 - *	========== Module loaders
  17.517 - */
  17.518 -
  17.519 -struct MLOADER;
  17.520 -
  17.521 -MIKMODAPI extern CHAR*   MikMod_InfoLoader(void);
  17.522 -MIKMODAPI extern void    MikMod_RegisterAllLoaders(void);
  17.523 -MIKMODAPI extern void    MikMod_RegisterLoader(struct MLOADER*);
  17.524 -
  17.525 -MIKMODAPI extern struct MLOADER load_669; /* 669 and Extended-669 (by Tran/Renaissance) */
  17.526 -MIKMODAPI extern struct MLOADER load_amf; /* DMP Advanced Module Format (by Otto Chrons) */
  17.527 -MIKMODAPI extern struct MLOADER load_dsm; /* DSIK internal module format */
  17.528 -MIKMODAPI extern struct MLOADER load_far; /* Farandole Composer (by Daniel Potter) */
  17.529 -MIKMODAPI extern struct MLOADER load_gdm; /* General DigiMusic (by Edward Schlunder) */
  17.530 -MIKMODAPI extern struct MLOADER load_it;  /* Impulse Tracker (by Jeffrey Lim) */
  17.531 -MIKMODAPI extern struct MLOADER load_imf; /* Imago Orpheus (by Lutz Roeder) */
  17.532 -MIKMODAPI extern struct MLOADER load_med; /* Amiga MED modules (by Teijo Kinnunen) */
  17.533 -MIKMODAPI extern struct MLOADER load_m15; /* Soundtracker 15-instrument */
  17.534 -MIKMODAPI extern struct MLOADER load_mod; /* Standard 31-instrument Module loader */
  17.535 -MIKMODAPI extern struct MLOADER load_mtm; /* Multi-Tracker Module (by Renaissance) */
  17.536 -MIKMODAPI extern struct MLOADER load_okt; /* Amiga Oktalyzer */
  17.537 -MIKMODAPI extern struct MLOADER load_stm; /* ScreamTracker 2 (by Future Crew) */
  17.538 -MIKMODAPI extern struct MLOADER load_stx; /* STMIK 0.2 (by Future Crew) */
  17.539 -MIKMODAPI extern struct MLOADER load_s3m; /* ScreamTracker 3 (by Future Crew) */
  17.540 -MIKMODAPI extern struct MLOADER load_ult; /* UltraTracker (by MAS) */
  17.541 -MIKMODAPI extern struct MLOADER load_uni; /* MikMod and APlayer internal module format */
  17.542 -MIKMODAPI extern struct MLOADER load_xm;  /* FastTracker 2 (by Triton) */
  17.543 -
  17.544 -/*
  17.545 - *	========== Module player
  17.546 - */
  17.547 -
  17.548 -MIKMODAPI extern MODULE* Player_Load(CHAR*,int,BOOL);
  17.549 -MIKMODAPI extern MODULE* Player_LoadFP(FILE*,int,BOOL);
  17.550 -MIKMODAPI extern MODULE* Player_LoadGeneric(MREADER*,int,BOOL);
  17.551 -MIKMODAPI extern CHAR*   Player_LoadTitle(CHAR*);
  17.552 -MIKMODAPI extern CHAR*   Player_LoadTitleFP(FILE*);
  17.553 -MIKMODAPI extern void    Player_Free(MODULE*);
  17.554 -MIKMODAPI extern void    Player_Start(MODULE*);
  17.555 -MIKMODAPI extern BOOL    Player_Active(void);
  17.556 -MIKMODAPI extern void    Player_Stop(void);
  17.557 -MIKMODAPI extern void    Player_TogglePause(void);
  17.558 -MIKMODAPI extern BOOL    Player_Paused(void);
  17.559 -MIKMODAPI extern void    Player_NextPosition(void);
  17.560 -MIKMODAPI extern void    Player_PrevPosition(void);
  17.561 -MIKMODAPI extern void    Player_SetPosition(UWORD);
  17.562 -MIKMODAPI extern BOOL    Player_Muted(UBYTE);
  17.563 -MIKMODAPI extern void    Player_SetVolume(SWORD);
  17.564 -MIKMODAPI extern MODULE* Player_GetModule(void);
  17.565 -MIKMODAPI extern void    Player_SetSpeed(UWORD);
  17.566 -MIKMODAPI extern void    Player_SetTempo(UWORD);
  17.567 -MIKMODAPI extern void    Player_Unmute(SLONG,...);
  17.568 -MIKMODAPI extern void    Player_Mute(SLONG,...);
  17.569 -MIKMODAPI extern void    Player_ToggleMute(SLONG,...);
  17.570 -MIKMODAPI extern int     Player_GetChannelVoice(UBYTE);
  17.571 -MIKMODAPI extern UWORD   Player_GetChannelPeriod(UBYTE);
  17.572 -
  17.573 -typedef void (MikMod_player)(void);
  17.574 -typedef MikMod_player *MikMod_player_t;
  17.575 -
  17.576 -MIKMODAPI extern MikMod_player_t MikMod_RegisterPlayer(MikMod_player_t);
  17.577 -
  17.578 -#define MUTE_EXCLUSIVE  32000
  17.579 -#define MUTE_INCLUSIVE  32001
  17.580 -
  17.581 -/*
  17.582 - *	========== Drivers
  17.583 - */
  17.584 -
  17.585 -enum {
  17.586 -	MD_MUSIC = 0,
  17.587 -	MD_SNDFX
  17.588 -};
  17.589 -
  17.590 -enum {
  17.591 -	MD_HARDWARE = 0,
  17.592 -	MD_SOFTWARE
  17.593 -};
  17.594 -
  17.595 -/* Mixing flags */
  17.596 -
  17.597 -/* These ones take effect only after MikMod_Init or MikMod_Reset */
  17.598 -#define DMODE_16BITS     0x0001 /* enable 16 bit output */
  17.599 -#define DMODE_STEREO     0x0002 /* enable stereo output */
  17.600 -#define DMODE_SOFT_SNDFX 0x0004 /* Process sound effects via software mixer */
  17.601 -#define DMODE_SOFT_MUSIC 0x0008 /* Process music via software mixer */
  17.602 -#define DMODE_HQMIXER    0x0010 /* Use high-quality (slower) software mixer */
  17.603 -/* These take effect immediately. */
  17.604 -#define DMODE_SURROUND   0x0100 /* enable surround sound */
  17.605 -#define DMODE_INTERP     0x0200 /* enable interpolation */
  17.606 -#define DMODE_REVERSE    0x0400 /* reverse stereo */
  17.607 -
  17.608 -struct SAMPLOAD;
  17.609 -typedef struct MDRIVER {
  17.610 -struct MDRIVER* next;
  17.611 -	CHAR*       Name;
  17.612 -	CHAR*       Version;
  17.613 -
  17.614 -	UBYTE       HardVoiceLimit; /* Limit of hardware mixer voices */
  17.615 -	UBYTE       SoftVoiceLimit; /* Limit of software mixer voices */
  17.616 -
  17.617 -	CHAR*       Alias;
  17.618 -
  17.619 -	void        (*CommandLine)      (CHAR*);
  17.620 -	BOOL        (*IsPresent)        (void);
  17.621 -	SWORD       (*SampleLoad)       (struct SAMPLOAD*,int);
  17.622 -	void        (*SampleUnload)     (SWORD);
  17.623 -	ULONG       (*FreeSampleSpace)  (int);
  17.624 -	ULONG       (*RealSampleLength) (int,struct SAMPLE*);
  17.625 -	BOOL        (*Init)             (void);
  17.626 -	void        (*Exit)             (void);
  17.627 -	BOOL        (*Reset)            (void);
  17.628 -	BOOL        (*SetNumVoices)     (void);
  17.629 -	BOOL        (*PlayStart)        (void);
  17.630 -	void        (*PlayStop)         (void);
  17.631 -	void        (*Update)           (void);
  17.632 -	void		(*Pause)			(void);
  17.633 -	void        (*VoiceSetVolume)   (UBYTE,UWORD);
  17.634 -	UWORD       (*VoiceGetVolume)   (UBYTE);
  17.635 -	void        (*VoiceSetFrequency)(UBYTE,ULONG);
  17.636 -	ULONG       (*VoiceGetFrequency)(UBYTE);
  17.637 -	void        (*VoiceSetPanning)  (UBYTE,ULONG);
  17.638 -	ULONG       (*VoiceGetPanning)  (UBYTE);
  17.639 -	void        (*VoicePlay)        (UBYTE,SWORD,ULONG,ULONG,ULONG,ULONG,UWORD);
  17.640 -	void        (*VoiceStop)        (UBYTE);
  17.641 -	BOOL        (*VoiceStopped)     (UBYTE);
  17.642 -	SLONG       (*VoiceGetPosition) (UBYTE);
  17.643 -	ULONG       (*VoiceRealVolume)  (UBYTE);
  17.644 -} MDRIVER;
  17.645 -
  17.646 -/* These variables can be changed at ANY time and results will be immediate */
  17.647 -MIKMODAPI extern UBYTE md_volume;      /* global sound volume (0-128) */
  17.648 -MIKMODAPI extern UBYTE md_musicvolume; /* volume of song */
  17.649 -MIKMODAPI extern UBYTE md_sndfxvolume; /* volume of sound effects */
  17.650 -MIKMODAPI extern UBYTE md_reverb;      /* 0 = none;  15 = chaos */
  17.651 -MIKMODAPI extern UBYTE md_pansep;      /* 0 = mono;  128 == 100% (full left/right) */
  17.652 -
  17.653 -/* The variables below can be changed at any time, but changes will not be
  17.654 -   implemented until MikMod_Reset is called. A call to MikMod_Reset may result
  17.655 -   in a skip or pop in audio (depending on the soundcard driver and the settings
  17.656 -   changed). */
  17.657 -MIKMODAPI extern UWORD md_device;      /* device */
  17.658 -MIKMODAPI extern UWORD md_mixfreq;     /* mixing frequency */
  17.659 -MIKMODAPI extern UWORD md_mode;        /* mode. See DMODE_? flags above */
  17.660 -
  17.661 -/* The following variable should not be changed! */
  17.662 -MIKMODAPI extern MDRIVER* md_driver;   /* Current driver in use. */
  17.663 -
  17.664 -/* Known drivers list */
  17.665 -
  17.666 -MIKMODAPI extern struct MDRIVER drv_nos;    /* no sound */
  17.667 -MIKMODAPI extern struct MDRIVER drv_pipe;   /* piped output */
  17.668 -MIKMODAPI extern struct MDRIVER drv_raw;    /* raw file disk writer [music.raw] */
  17.669 -MIKMODAPI extern struct MDRIVER drv_stdout; /* output to stdout */
  17.670 -MIKMODAPI extern struct MDRIVER drv_wav;    /* RIFF WAVE file disk writer [music.wav] */
  17.671 -
  17.672 -MIKMODAPI extern struct MDRIVER drv_ultra;  /* Linux Ultrasound driver */
  17.673 -MIKMODAPI extern struct MDRIVER drv_sam9407;	/* Linux sam9407 driver */
  17.674 -
  17.675 -MIKMODAPI extern struct MDRIVER drv_AF;     /* Dec Alpha AudioFile */
  17.676 -MIKMODAPI extern struct MDRIVER drv_aix;    /* AIX audio device */
  17.677 -MIKMODAPI extern struct MDRIVER drv_alsa;   /* Advanced Linux Sound Architecture (ALSA) */
  17.678 -MIKMODAPI extern struct MDRIVER drv_esd;    /* Enlightened sound daemon (EsounD) */
  17.679 -MIKMODAPI extern struct MDRIVER drv_hp;     /* HP-UX audio device */
  17.680 -MIKMODAPI extern struct MDRIVER drv_oss;    /* OpenSound System (Linux,FreeBSD...) */
  17.681 -MIKMODAPI extern struct MDRIVER drv_sgi;    /* SGI audio library */
  17.682 -MIKMODAPI extern struct MDRIVER drv_sun;    /* Sun/NetBSD/OpenBSD audio device */
  17.683 -
  17.684 -MIKMODAPI extern struct MDRIVER drv_dart;   /* OS/2 Direct Audio RealTime */
  17.685 -MIKMODAPI extern struct MDRIVER drv_os2;    /* OS/2 MMPM/2 */
  17.686 -
  17.687 -MIKMODAPI extern struct MDRIVER drv_ds;     /* Win32 DirectSound driver */
  17.688 -MIKMODAPI extern struct MDRIVER drv_win;    /* Win32 multimedia API driver */
  17.689 -
  17.690 -MIKMODAPI extern struct MDRIVER drv_mac;    /* Macintosh Sound Manager driver */
  17.691 -
  17.692 -/*========== Virtual channel mixer interface (for user-supplied drivers only) */
  17.693 -
  17.694 -MIKMODAPI extern BOOL  VC_Init(void);
  17.695 -MIKMODAPI extern void  VC_Exit(void);
  17.696 -MIKMODAPI extern BOOL  VC_SetNumVoices(void);
  17.697 -MIKMODAPI extern ULONG VC_SampleSpace(int);
  17.698 -MIKMODAPI extern ULONG VC_SampleLength(int,SAMPLE*);
  17.699 -
  17.700 -MIKMODAPI extern BOOL  VC_PlayStart(void);
  17.701 -MIKMODAPI extern void  VC_PlayStop(void);
  17.702 -
  17.703 -MIKMODAPI extern SWORD VC_SampleLoad(struct SAMPLOAD*,int);
  17.704 -MIKMODAPI extern void  VC_SampleUnload(SWORD);
  17.705 -
  17.706 -MIKMODAPI extern ULONG VC_WriteBytes(SBYTE*,ULONG);
  17.707 -MIKMODAPI extern ULONG VC_SilenceBytes(SBYTE*,ULONG);
  17.708 -
  17.709 -MIKMODAPI extern void  VC_VoiceSetVolume(UBYTE,UWORD);
  17.710 -MIKMODAPI extern UWORD VC_VoiceGetVolume(UBYTE);
  17.711 -MIKMODAPI extern void  VC_VoiceSetFrequency(UBYTE,ULONG);
  17.712 -MIKMODAPI extern ULONG VC_VoiceGetFrequency(UBYTE);
  17.713 -MIKMODAPI extern void  VC_VoiceSetPanning(UBYTE,ULONG);
  17.714 -MIKMODAPI extern ULONG VC_VoiceGetPanning(UBYTE);
  17.715 -MIKMODAPI extern void  VC_VoicePlay(UBYTE,SWORD,ULONG,ULONG,ULONG,ULONG,UWORD);
  17.716 -
  17.717 -MIKMODAPI extern void  VC_VoiceStop(UBYTE);
  17.718 -MIKMODAPI extern BOOL  VC_VoiceStopped(UBYTE);
  17.719 -MIKMODAPI extern SLONG VC_VoiceGetPosition(UBYTE);
  17.720 -MIKMODAPI extern ULONG VC_VoiceRealVolume(UBYTE);
  17.721 -
  17.722 -#ifdef __cplusplus
  17.723 -}
  17.724 -#endif
  17.725 -
  17.726 -#endif
  17.727 -
  17.728 -/* ex:set ts=4: */
    18.1 Binary file Xcode/Frameworks/mikmod.framework/Versions/A/Resources/English.lproj/InfoPlist.strings has changed
    19.1 --- a/Xcode/Frameworks/mikmod.framework/Versions/A/Resources/Info.plist	Sat Jun 08 17:35:37 2013 -0700
    19.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.3 @@ -1,24 +0,0 @@
    19.4 -<?xml version="1.0" encoding="UTF-8"?>
    19.5 -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    19.6 -<plist version="1.0">
    19.7 -<dict>
    19.8 -	<key>CFBundleDevelopmentRegion</key>
    19.9 -	<string>English</string>
   19.10 -	<key>CFBundleExecutable</key>
   19.11 -	<string>mikmod</string>
   19.12 -	<key>CFBundleGetInfoString</key>
   19.13 -	<string>libmikmod 3.1.12</string>
   19.14 -	<key>CFBundleInfoDictionaryVersion</key>
   19.15 -	<string>6.0</string>
   19.16 -	<key>CFBundleName</key>
   19.17 -	<string>mikmod</string>
   19.18 -	<key>CFBundlePackageType</key>
   19.19 -	<string>FMWK</string>
   19.20 -	<key>CFBundleShortVersionString</key>
   19.21 -	<string>3.1.12</string>
   19.22 -	<key>CFBundleSignature</key>
   19.23 -	<string>????</string>
   19.24 -	<key>CFBundleVersion</key>
   19.25 -	<string>3.1.12</string>
   19.26 -</dict>
   19.27 -</plist>
    20.1 Binary file Xcode/Frameworks/mikmod.framework/Versions/A/mikmod has changed
    21.1 --- a/Xcode/Frameworks/mikmod.framework/Versions/Current	Sat Jun 08 17:35:37 2013 -0700
    21.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.3 @@ -1,1 +0,0 @@
    21.4 -A
    21.5 \ No newline at end of file
    22.1 --- a/Xcode/Frameworks/mikmod.framework/mikmod	Sat Jun 08 17:35:37 2013 -0700
    22.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.3 @@ -1,1 +0,0 @@
    22.4 -Versions/Current/mikmod
    22.5 \ No newline at end of file
    23.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    23.2 +++ b/Xcode/Frameworks/modplug.framework/Headers	Sun Jun 09 16:22:42 2013 -0700
    23.3 @@ -0,0 +1,1 @@
    23.4 +Versions/Current/Headers
    23.5 \ No newline at end of file
    24.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.2 +++ b/Xcode/Frameworks/modplug.framework/LICENSE.modplug.txt	Sun Jun 09 16:22:42 2013 -0700
    24.3 @@ -0,0 +1,1 @@
    24.4 +ModPlug-XMMS and libmodplug are now in the public domain.
    25.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.2 +++ b/Xcode/Frameworks/modplug.framework/Resources	Sun Jun 09 16:22:42 2013 -0700
    25.3 @@ -0,0 +1,1 @@
    25.4 +Versions/Current/Resources
    25.5 \ No newline at end of file
    26.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.2 +++ b/Xcode/Frameworks/modplug.framework/Versions/A/Headers/modplug.h	Sun Jun 09 16:22:42 2013 -0700
    26.3 @@ -0,0 +1,171 @@
    26.4 +/*
    26.5 + * This source code is public domain.
    26.6 + *
    26.7 + * Authors: Kenton Varda <temporal@gauge3d.org> (C interface wrapper)
    26.8 + */
    26.9 +
   26.10 +#ifndef MODPLUG_H__INCLUDED
   26.11 +#define MODPLUG_H__INCLUDED
   26.12 +
   26.13 +#ifdef __cplusplus
   26.14 +extern "C" {
   26.15 +#endif
   26.16 +
   26.17 +struct _ModPlugFile;
   26.18 +typedef struct _ModPlugFile ModPlugFile;
   26.19 +
   26.20 +struct _ModPlugNote {
   26.21 +	unsigned char Note;
   26.22 +	unsigned char Instrument;
   26.23 +	unsigned char VolumeEffect;
   26.24 +	unsigned char Effect;
   26.25 +	unsigned char Volume;
   26.26 +	unsigned char Parameter;
   26.27 +};
   26.28 +typedef struct _ModPlugNote ModPlugNote;
   26.29 +
   26.30 +typedef void (*ModPlugMixerProc)(int*, unsigned long, unsigned long);
   26.31 +
   26.32 +/* Load a mod file.  [data] should point to a block of memory containing the complete
   26.33 + * file, and [size] should be the size of that block.
   26.34 + * Return the loaded mod file on success, or NULL on failure. */
   26.35 +ModPlugFile* ModPlug_Load(const void* data, int size);
   26.36 +/* Unload a mod file. */
   26.37 +void ModPlug_Unload(ModPlugFile* file);
   26.38 +
   26.39 +/* Read sample data into the buffer.  Returns the number of bytes read.  If the end
   26.40 + * of the mod has been reached, zero is returned. */
   26.41 +int  ModPlug_Read(ModPlugFile* file, void* buffer, int size);
   26.42 +
   26.43 +/* Get the name of the mod.  The returned buffer is stored within the ModPlugFile
   26.44 + * structure and will remain valid until you unload the file. */
   26.45 +const char* ModPlug_GetName(ModPlugFile* file);
   26.46 +
   26.47 +/* Get the length of the mod, in milliseconds.  Note that this result is not always
   26.48 + * accurate, especially in the case of mods with loops. */
   26.49 +int ModPlug_GetLength(ModPlugFile* file);
   26.50 +
   26.51 +/* Seek to a particular position in the song.  Note that seeking and MODs don't mix very
   26.52 + * well.  Some mods will be missing instruments for a short time after a seek, as ModPlug
   26.53 + * does not scan the sequence backwards to find out which instruments were supposed to be
   26.54 + * playing at that time.  (Doing so would be difficult and not very reliable.)  Also,
   26.55 + * note that seeking is not very exact in some mods -- especially those for which
   26.56 + * ModPlug_GetLength() does not report the full length. */
   26.57 +void ModPlug_Seek(ModPlugFile* file, int millisecond);
   26.58 +
   26.59 +enum _ModPlug_Flags
   26.60 +{
   26.61 +	MODPLUG_ENABLE_OVERSAMPLING     = 1 << 0,  /* Enable oversampling (*highly* recommended) */
   26.62 +	MODPLUG_ENABLE_NOISE_REDUCTION  = 1 << 1,  /* Enable noise reduction */
   26.63 +	MODPLUG_ENABLE_REVERB           = 1 << 2,  /* Enable reverb */
   26.64 +	MODPLUG_ENABLE_MEGABASS         = 1 << 3,  /* Enable megabass */
   26.65 +	MODPLUG_ENABLE_SURROUND         = 1 << 4   /* Enable surround sound. */
   26.66 +};
   26.67 +
   26.68 +enum _ModPlug_ResamplingMode
   26.69 +{
   26.70 +	MODPLUG_RESAMPLE_NEAREST = 0,  /* No interpolation (very fast, extremely bad sound quality) */
   26.71 +	MODPLUG_RESAMPLE_LINEAR  = 1,  /* Linear interpolation (fast, good quality) */
   26.72 +	MODPLUG_RESAMPLE_SPLINE  = 2,  /* Cubic spline interpolation (high quality) */
   26.73 +	MODPLUG_RESAMPLE_FIR     = 3   /* 8-tap fir filter (extremely high quality) */
   26.74 +};
   26.75 +
   26.76 +typedef struct _ModPlug_Settings
   26.77 +{
   26.78 +	int mFlags;  /* One or more of the MODPLUG_ENABLE_* flags above, bitwise-OR'ed */
   26.79 +	
   26.80 +	/* Note that ModPlug always decodes sound at 44100kHz, 32 bit, stereo and then
   26.81 +	 * down-mixes to the settings you choose. */
   26.82 +	int mChannels;       /* Number of channels - 1 for mono or 2 for stereo */
   26.83 +	int mBits;           /* Bits per sample - 8, 16, or 32 */
   26.84 +	int mFrequency;      /* Sampling rate - 11025, 22050, or 44100 */
   26.85 +	int mResamplingMode; /* One of MODPLUG_RESAMPLE_*, above */
   26.86 +
   26.87 +	int mStereoSeparation; /* Stereo separation, 1 - 256 */
   26.88 +	int mMaxMixChannels; /* Maximum number of mixing channels (polyphony), 32 - 256 */
   26.89 +	
   26.90 +	int mReverbDepth;    /* Reverb level 0(quiet)-100(loud)      */
   26.91 +	int mReverbDelay;    /* Reverb delay in ms, usually 40-200ms */
   26.92 +	int mBassAmount;     /* XBass level 0(quiet)-100(loud)       */
   26.93 +	int mBassRange;      /* XBass cutoff in Hz 10-100            */
   26.94 +	int mSurroundDepth;  /* Surround level 0(quiet)-100(heavy)   */
   26.95 +	int mSurroundDelay;  /* Surround delay in ms, usually 5-40ms */
   26.96 +	int mLoopCount;      /* Number of times to loop.  Zero prevents looping.
   26.97 +	                        -1 loops forever. */
   26.98 +} ModPlug_Settings;
   26.99 +
  26.100 +/* Get and set the mod decoder settings.  All options, except for channels, bits-per-sample,
  26.101 + * sampling rate, and loop count, will take effect immediately.  Those options which don't
  26.102 + * take effect immediately will take effect the next time you load a mod. */
  26.103 +void ModPlug_GetSettings(ModPlug_Settings* settings);
  26.104 +void ModPlug_SetSettings(const ModPlug_Settings* settings);
  26.105 +
  26.106 +/* New ModPlug API Functions */
  26.107 +/* NOTE: Master Volume (1-512) */
  26.108 +unsigned int ModPlug_GetMasterVolume(ModPlugFile* file) ;
  26.109 +void ModPlug_SetMasterVolume(ModPlugFile* file,unsigned int cvol) ;
  26.110 +
  26.111 +int ModPlug_GetCurrentSpeed(ModPlugFile* file);
  26.112 +int ModPlug_GetCurrentTempo(ModPlugFile* file);
  26.113 +int ModPlug_GetCurrentOrder(ModPlugFile* file);
  26.114 +int ModPlug_GetCurrentPattern(ModPlugFile* file);
  26.115 +int ModPlug_GetCurrentRow(ModPlugFile* file);
  26.116 +int ModPlug_GetPlayingChannels(ModPlugFile* file);
  26.117 +
  26.118 +void ModPlug_SeekOrder(ModPlugFile* file,int order);
  26.119 +int ModPlug_GetModuleType(ModPlugFile* file);
  26.120 +char* ModPlug_GetMessage(ModPlugFile* file);
  26.121 +
  26.122 +
  26.123 +#ifndef MODPLUG_NO_FILESAVE
  26.124 +/*
  26.125 + * EXPERIMENTAL Export Functions
  26.126 + */
  26.127 +/*Export to a Scream Tracker 3 S3M module. EXPERIMENTAL (only works on Little-Endian platforms)*/
  26.128 +char ModPlug_ExportS3M(ModPlugFile* file, const char* filepath);
  26.129 +
  26.130 +/*Export to a Extended Module (XM). EXPERIMENTAL (only works on Little-Endian platforms)*/
  26.131 +char ModPlug_ExportXM(ModPlugFile* file, const char* filepath);
  26.132 +
  26.133 +/*Export to a Amiga MOD file. EXPERIMENTAL.*/
  26.134 +char ModPlug_ExportMOD(ModPlugFile* file, const char* filepath);
  26.135 +
  26.136 +/*Export to a Impulse Tracker IT file. Should work OK in Little-Endian & Big-Endian platforms :-) */
  26.137 +char ModPlug_ExportIT(ModPlugFile* file, const char* filepath);
  26.138 +#endif // MODPLUG_NO_FILESAVE
  26.139 +
  26.140 +unsigned int ModPlug_NumInstruments(ModPlugFile* file);
  26.141 +unsigned int ModPlug_NumSamples(ModPlugFile* file);
  26.142 +unsigned int ModPlug_NumPatterns(ModPlugFile* file);
  26.143 +unsigned int ModPlug_NumChannels(ModPlugFile* file);
  26.144 +unsigned int ModPlug_SampleName(ModPlugFile* file, unsigned int qual, char* buff);
  26.145 +unsigned int ModPlug_InstrumentName(ModPlugFile* file, unsigned int qual, char* buff);
  26.146 +
  26.147 +/*
  26.148 + * Retrieve pattern note-data
  26.149 + */
  26.150 +ModPlugNote* ModPlug_GetPattern(ModPlugFile* file, int pattern, unsigned int* numrows);
  26.151 +
  26.152 +/*
  26.153 + * =================
  26.154 + * Mixer callback
  26.155 + * =================
  26.156 + *
  26.157 + * Use this callback if you want to 'modify' the mixed data of LibModPlug.
  26.158 + * 
  26.159 + * void proc(int* buffer,unsigned long channels,unsigned long nsamples) ;
  26.160 + *
  26.161 + * 'buffer': A buffer of mixed samples
  26.162 + * 'channels': N. of channels in the buffer
  26.163 + * 'nsamples': N. of samples in the buffeer (without taking care of n.channels)
  26.164 + *
  26.165 + * (Samples are signed 32-bit integers)
  26.166 + */
  26.167 +void ModPlug_InitMixerCallback(ModPlugFile* file,ModPlugMixerProc proc) ;
  26.168 +void ModPlug_UnloadMixerCallback(ModPlugFile* file) ;
  26.169 +
  26.170 +#ifdef __cplusplus
  26.171 +} /* extern "C" */
  26.172 +#endif
  26.173 +
  26.174 +#endif
    27.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.2 +++ b/Xcode/Frameworks/modplug.framework/Versions/A/Resources/Info.plist	Sun Jun 09 16:22:42 2013 -0700
    27.3 @@ -0,0 +1,24 @@
    27.4 +<?xml version="1.0" encoding="UTF-8"?>
    27.5 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    27.6 +<plist version="1.0">
    27.7 +<dict>
    27.8 +	<key>CFBundleDevelopmentRegion</key>
    27.9 +	<string>English</string>
   27.10 +	<key>CFBundleExecutable</key>
   27.11 +	<string>modplug</string>
   27.12 +	<key>CFBundleGetInfoString</key>
   27.13 +	<string>libmodplug 0.8.8</string>
   27.14 +	<key>CFBundleInfoDictionaryVersion</key>
   27.15 +	<string>6.0</string>
   27.16 +	<key>CFBundleName</key>
   27.17 +	<string>modplug</string>
   27.18 +	<key>CFBundlePackageType</key>
   27.19 +	<string>FMWK</string>
   27.20 +	<key>CFBundleShortVersionString</key>
   27.21 +	<string>0.8.8</string>
   27.22 +	<key>CFBundleSignature</key>
   27.23 +	<string>????</string>
   27.24 +	<key>CFBundleVersion</key>
   27.25 +	<string>0.8.8</string>
   27.26 +</dict>
   27.27 +</plist>
    28.1 Binary file Xcode/Frameworks/modplug.framework/Versions/A/modplug has changed
    29.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    29.2 +++ b/Xcode/Frameworks/modplug.framework/Versions/Current	Sun Jun 09 16:22:42 2013 -0700
    29.3 @@ -0,0 +1,1 @@
    29.4 +A
    29.5 \ No newline at end of file
    30.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    30.2 +++ b/Xcode/Frameworks/modplug.framework/modplug	Sun Jun 09 16:22:42 2013 -0700
    30.3 @@ -0,0 +1,1 @@
    30.4 +Versions/Current/modplug
    30.5 \ No newline at end of file
    31.1 --- a/Xcode/SDL_mixer.xcodeproj/project.pbxproj	Sat Jun 08 17:35:37 2013 -0700
    31.2 +++ b/Xcode/SDL_mixer.xcodeproj/project.pbxproj	Sun Jun 09 16:22:42 2013 -0700
    31.3 @@ -31,12 +31,30 @@
    31.4  		04A8FCA70A19CAEC0046373F /* dynamic_mp3.c in Sources */ = {isa = PBXBuildFile; fileRef = 04A8FCA40A19CAEC0046373F /* dynamic_mp3.c */; };
    31.5  		04A8FCAB0A19CB070046373F /* dynamic_ogg.c in Sources */ = {isa = PBXBuildFile; fileRef = 04A8FCA90A19CB070046373F /* dynamic_ogg.c */; };
    31.6  		04A8FCAC0A19CB070046373F /* dynamic_ogg.c in Sources */ = {isa = PBXBuildFile; fileRef = 04A8FCA90A19CB070046373F /* dynamic_ogg.c */; };
    31.7 +		AA6021301765383B00662B9C /* modplug.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = AA60212F1765382200662B9C /* modplug.framework */; };
    31.8 +		AA60213A176538EB00662B9C /* dynamic_fluidsynth.c in Sources */ = {isa = PBXBuildFile; fileRef = AA602131176538EB00662B9C /* dynamic_fluidsynth.c */; };
    31.9 +		AA60213B176538EB00662B9C /* dynamic_fluidsynth.c in Sources */ = {isa = PBXBuildFile; fileRef = AA602131176538EB00662B9C /* dynamic_fluidsynth.c */; };
   31.10 +		AA60213C176538EB00662B9C /* dynamic_fluidsynth.h in Headers */ = {isa = PBXBuildFile; fileRef = AA602132176538EB00662B9C /* dynamic_fluidsynth.h */; };
   31.11 +		AA60213D176538EB00662B9C /* dynamic_fluidsynth.h in Headers */ = {isa = PBXBuildFile; fileRef = AA602132176538EB00662B9C /* dynamic_fluidsynth.h */; };
   31.12 +		AA60213E176538EB00662B9C /* dynamic_mod.h in Headers */ = {isa = PBXBuildFile; fileRef = AA602133176538EB00662B9C /* dynamic_mod.h */; };
   31.13 +		AA60213F176538EB00662B9C /* dynamic_mod.h in Headers */ = {isa = PBXBuildFile; fileRef = AA602133176538EB00662B9C /* dynamic_mod.h */; };
   31.14 +		AA602140176538EB00662B9C /* dynamic_modplug.c in Sources */ = {isa = PBXBuildFile; fileRef = AA602134176538EB00662B9C /* dynamic_modplug.c */; };
   31.15 +		AA602141176538EB00662B9C /* dynamic_modplug.c in Sources */ = {isa = PBXBuildFile; fileRef = AA602134176538EB00662B9C /* dynamic_modplug.c */; };
   31.16 +		AA602142176538EB00662B9C /* dynamic_modplug.h in Headers */ = {isa = PBXBuildFile; fileRef = AA602135176538EB00662B9C /* dynamic_modplug.h */; };
   31.17 +		AA602143176538EB00662B9C /* dynamic_modplug.h in Headers */ = {isa = PBXBuildFile; fileRef = AA602135176538EB00662B9C /* dynamic_modplug.h */; };
   31.18 +		AA602144176538EB00662B9C /* fluidsynth.c in Sources */ = {isa = PBXBuildFile; fileRef = AA602136176538EB00662B9C /* fluidsynth.c */; };
   31.19 +		AA602145176538EB00662B9C /* fluidsynth.c in Sources */ = {isa = PBXBuildFile; fileRef = AA602136176538EB00662B9C /* fluidsynth.c */; };
   31.20 +		AA602146176538EB00662B9C /* fluidsynth.h in Headers */ = {isa = PBXBuildFile; fileRef = AA602137176538EB00662B9C /* fluidsynth.h */; };
   31.21 +		AA602147176538EB00662B9C /* fluidsynth.h in Headers */ = {isa = PBXBuildFile; fileRef = AA602137176538EB00662B9C /* fluidsynth.h */; };
   31.22 +		AA602148176538EB00662B9C /* music_modplug.c in Sources */ = {isa = PBXBuildFile; fileRef = AA602138176538EB00662B9C /* music_modplug.c */; };
   31.23 +		AA602149176538EB00662B9C /* music_modplug.c in Sources */ = {isa = PBXBuildFile; fileRef = AA602138176538EB00662B9C /* music_modplug.c */; };
   31.24 +		AA60214A176538EB00662B9C /* music_modplug.h in Headers */ = {isa = PBXBuildFile; fileRef = AA602139176538EB00662B9C /* music_modplug.h */; };
   31.25 +		AA60214B176538EB00662B9C /* music_modplug.h in Headers */ = {isa = PBXBuildFile; fileRef = AA602139176538EB00662B9C /* music_modplug.h */; };
   31.26  		AA644290175AA7C900A2125A /* smpeg2.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = AA64428E175AA7A500A2125A /* smpeg2.framework */; };
   31.27  		AA6442D1175B181300A2125A /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA6442D0175B181300A2125A /* AudioToolbox.framework */; };
   31.28  		AA6442D3175B181D00A2125A /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA6442D2175B181D00A2125A /* AudioUnit.framework */; };
   31.29  		AA6442D5175B185800A2125A /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA6442D4175B185800A2125A /* CoreServices.framework */; };
   31.30  		AA9F7DB914B15D3300278D1E /* FLAC.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = AA9F7DB714B15AE700278D1E /* FLAC.framework */; };
   31.31 -		AA9F7DBA14B15D4100278D1E /* mikmod.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 00938E1B108A36520009CF19 /* mikmod.framework */; };
   31.32  		AA9F7DBB14B15D4400278D1E /* Ogg.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = AA9F7DB314B15ADC00278D1E /* Ogg.framework */; };
   31.33  		AA9F7DBE14B15D5400278D1E /* Vorbis.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = AA9F7DB414B15ADC00278D1E /* Vorbis.framework */; };
   31.34  		BE1FA8B907AF96B2004B6283 /* music_cmd.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B87B012FB8CD7F000001 /* music_cmd.h */; };
   31.35 @@ -147,8 +165,8 @@
   31.36  			dstSubfolderSpec = 10;
   31.37  			files = (
   31.38  				AA9F7DB914B15D3300278D1E /* FLAC.framework in Copy Frameworks */,
   31.39 +				AA6021301765383B00662B9C /* modplug.framework in Copy Frameworks */,
   31.40  				AA644290175AA7C900A2125A /* smpeg2.framework in Copy Frameworks */,
   31.41 -				AA9F7DBA14B15D4100278D1E /* mikmod.framework in Copy Frameworks */,
   31.42  				AA9F7DBB14B15D4400278D1E /* Ogg.framework in Copy Frameworks */,
   31.43  				AA9F7DBE14B15D5400278D1E /* Vorbis.framework in Copy Frameworks */,
   31.44  			);
   31.45 @@ -158,7 +176,6 @@
   31.46  /* End PBXCopyFilesBuildPhase section */
   31.47  
   31.48  /* Begin PBXFileReference section */
   31.49 -		00938E1B108A36520009CF19 /* mikmod.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = mikmod.framework; path = Frameworks/mikmod.framework; sourceTree = "<group>"; };
   31.50  		00938E2B108A37800009CF19 /* load_flac.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = load_flac.c; path = ../load_flac.c; sourceTree = SOURCE_ROOT; };
   31.51  		00938E2C108A37800009CF19 /* load_flac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = load_flac.h; path = ../load_flac.h; sourceTree = SOURCE_ROOT; };
   31.52  		00938E2D108A37800009CF19 /* music_flac.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = music_flac.c; path = ../music_flac.c; sourceTree = SOURCE_ROOT; };
   31.53 @@ -209,6 +226,16 @@
   31.54  		5CC1B898012FB8CD7F000001 /* timidity.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = timidity.h; sourceTree = "<group>"; };
   31.55  		5CC1B89B012FB8CD7F000001 /* wavestream.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = wavestream.c; path = ../wavestream.c; sourceTree = "<group>"; };
   31.56  		5CC1B89C012FB8CD7F000001 /* wavestream.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = wavestream.h; path = ../wavestream.h; sourceTree = "<group>"; };
   31.57 +		AA60212F1765382200662B9C /* modplug.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = modplug.framework; path = Frameworks/modplug.framework; sourceTree = "<group>"; };
   31.58 +		AA602131176538EB00662B9C /* dynamic_fluidsynth.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dynamic_fluidsynth.c; path = ../dynamic_fluidsynth.c; sourceTree = "<group>"; };
   31.59 +		AA602132176538EB00662B9C /* dynamic_fluidsynth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dynamic_fluidsynth.h; path = ../dynamic_fluidsynth.h; sourceTree = "<group>"; };
   31.60 +		AA602133176538EB00662B9C /* dynamic_mod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dynamic_mod.h; path = ../dynamic_mod.h; sourceTree = "<group>"; };
   31.61 +		AA602134176538EB00662B9C /* dynamic_modplug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dynamic_modplug.c; path = ../dynamic_modplug.c; sourceTree = "<group>"; };
   31.62 +		AA602135176538EB00662B9C /* dynamic_modplug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dynamic_modplug.h; path = ../dynamic_modplug.h; sourceTree = "<group>"; };
   31.63 +		AA602136176538EB00662B9C /* fluidsynth.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fluidsynth.c; path = ../fluidsynth.c; sourceTree = "<group>"; };
   31.64 +		AA602137176538EB00662B9C /* fluidsynth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fluidsynth.h; path = ../fluidsynth.h; sourceTree = "<group>"; };
   31.65 +		AA602138176538EB00662B9C /* music_modplug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = music_modplug.c; path = ../music_modplug.c; sourceTree = "<group>"; };
   31.66 +		AA602139176538EB00662B9C /* music_modplug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = music_modplug.h; path = ../music_modplug.h; sourceTree = "<group>"; };
   31.67  		AA64428E175AA7A500A2125A /* smpeg2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = smpeg2.framework; path = Frameworks/smpeg2.framework; sourceTree = "<group>"; };
   31.68  		AA6442D0175B181300A2125A /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
   31.69  		AA6442D2175B181D00A2125A /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; };
   31.70 @@ -301,9 +328,16 @@
   31.71  		08FB77ACFE841707C02AAC07 /* Library Source */ = {
   31.72  			isa = PBXGroup;
   31.73  			children = (
   31.74 +				F51BFAFD01F724BE01D3D55B /* native_midi */,
   31.75 +				5CC1B87F012FB8CD7F000001 /* timidity */,
   31.76  				00938E49108A397A0009CF19 /* dynamic_flac.c */,
   31.77  				00938E4A108A397A0009CF19 /* dynamic_flac.h */,
   31.78 +				AA602131176538EB00662B9C /* dynamic_fluidsynth.c */,
   31.79 +				AA602132176538EB00662B9C /* dynamic_fluidsynth.h */,
   31.80  				00938E4B108A397A0009CF19 /* dynamic_mod.c */,
   31.81 +				AA602133176538EB00662B9C /* dynamic_mod.h */,
   31.82 +				AA602134176538EB00662B9C /* dynamic_modplug.c */,
   31.83 +				AA602135176538EB00662B9C /* dynamic_modplug.h */,
   31.84  				04A8FCA40A19CAEC0046373F /* dynamic_mp3.c */,
   31.85  				00938E4C108A397A0009CF19 /* dynamic_mp3.h */,
   31.86  				04A8FCA90A19CB070046373F /* dynamic_ogg.c */,
   31.87 @@ -312,6 +346,8 @@
   31.88  				F567D63C01CD881401F3E8B9 /* effect_stereoreverse.c */,
   31.89  				F567D63D01CD881401F3E8B9 /* effects_internal.c */,
   31.90  				F567D63E01CD881401F3E8B9 /* effects_internal.h */,
   31.91 +				AA602136176538EB00662B9C /* fluidsynth.c */,
   31.92 +				AA602137176538EB00662B9C /* fluidsynth.h */,
   31.93  				F567D64701CD88A701F3E8B9 /* load_aiff.c */,
   31.94  				F567D64801CD88A701F3E8B9 /* load_aiff.h */,
   31.95  				00938E2B108A37800009CF19 /* load_flac.c */,
   31.96 @@ -330,10 +366,10 @@
   31.97  				00938E30108A37800009CF19 /* music_mad.h */,
   31.98  				00938E31108A37800009CF19 /* music_mod.c */,
   31.99  				00938E32108A37800009CF19 /* music_mod.h */,
  31.100 +				AA602138176538EB00662B9C /* music_modplug.c */,
  31.101 +				AA602139176538EB00662B9C /* music_modplug.h */,
  31.102  				5CC1B87C012FB8CD7F000001 /* music_ogg.c */,
  31.103  				5CC1B87D012FB8CD7F000001 /* music_ogg.h */,
  31.104 -				F51BFAFD01F724BE01D3D55B /* native_midi */,
  31.105 -				5CC1B87F012FB8CD7F000001 /* timidity */,
  31.106  				5CC1B89B012FB8CD7F000001 /* wavestream.c */,
  31.107  				5CC1B89C012FB8CD7F000001 /* wavestream.h */,
  31.108  			);
  31.109 @@ -388,7 +424,7 @@
  31.110  				AA6442D2175B181D00A2125A /* AudioUnit.framework */,
  31.111  				AA6442D4175B185800A2125A /* CoreServices.framework */,
  31.112  				AA9F7DB714B15AE700278D1E /* FLAC.framework */,
  31.113 -				00938E1B108A36520009CF19 /* mikmod.framework */,
  31.114 +				AA60212F1765382200662B9C /* modplug.framework */,
  31.115  				AA9F7DB314B15ADC00278D1E /* Ogg.framework */,
  31.116  				BE1FA8AE07AF95F7004B6283 /* SDL2.framework */,
  31.117  				AA64428E175AA7A500A2125A /* smpeg2.framework */,
  31.118 @@ -459,6 +495,11 @@
  31.119  				00938E4F108A397A0009CF19 /* dynamic_flac.h in Headers */,
  31.120  				00938E51108A397A0009CF19 /* dynamic_mp3.h in Headers */,
  31.121  				00938E52108A397A0009CF19 /* dynamic_ogg.h in Headers */,
  31.122 +				AA60213C176538EB00662B9C /* dynamic_fluidsynth.h in Headers */,
  31.123 +				AA60213E176538EB00662B9C /* dynamic_mod.h in Headers */,
  31.124 +				AA602142176538EB00662B9C /* dynamic_modplug.h in Headers */,
  31.125 +				AA602146176538EB00662B9C /* fluidsynth.h in Headers */,
  31.126 +				AA60214A176538EB00662B9C /* music_modplug.h in Headers */,
  31.127  			);
  31.128  			runOnlyForDeploymentPostprocessing = 0;
  31.129  		};
  31.130 @@ -488,6 +529,11 @@
  31.131  				00938E54108A397A0009CF19 /* dynamic_flac.h in Headers */,
  31.132  				00938E56108A397A0009CF19 /* dynamic_mp3.h in Headers */,
  31.133  				00938E57108A397A0009CF19 /* dynamic_ogg.h in Headers */,
  31.134 +				AA60213D176538EB00662B9C /* dynamic_fluidsynth.h in Headers */,
  31.135 +				AA60213F176538EB00662B9C /* dynamic_mod.h in Headers */,
  31.136 +				AA602143176538EB00662B9C /* dynamic_modplug.h in Headers */,
  31.137 +				AA602147176538EB00662B9C /* fluidsynth.h in Headers */,
  31.138 +				AA60214B176538EB00662B9C /* music_modplug.h in Headers */,
  31.139  			);
  31.140  			runOnlyForDeploymentPostprocessing = 0;
  31.141  		};
  31.142 @@ -686,6 +732,10 @@
  31.143  				00938E4E108A397A0009CF19 /* dynamic_flac.c in Sources */,
  31.144  				00938E50108A397A0009CF19 /* dynamic_mod.c in Sources */,
  31.145  				0448E8AE108B937A00C9D3EA /* native_midi_macosx.c in Sources */,
  31.146 +				AA60213A176538EB00662B9C /* dynamic_fluidsynth.c in Sources */,
  31.147 +				AA602140176538EB00662B9C /* dynamic_modplug.c in Sources */,
  31.148 +				AA602144176538EB00662B9C /* fluidsynth.c in Sources */,
  31.149 +				AA602148176538EB00662B9C /* music_modplug.c in Sources */,
  31.150  			);
  31.151  			runOnlyForDeploymentPostprocessing = 0;
  31.152  		};
  31.153 @@ -722,6 +772,10 @@
  31.154  				00938E53108A397A0009CF19 /* dynamic_flac.c in Sources */,
  31.155  				00938E55108A397A0009CF19 /* dynamic_mod.c in Sources */,
  31.156  				0448E8AF108B937A00C9D3EA /* native_midi_macosx.c in Sources */,
  31.157 +				AA60213B176538EB00662B9C /* dynamic_fluidsynth.c in Sources */,
  31.158 +				AA602141176538EB00662B9C /* dynamic_modplug.c in Sources */,
  31.159 +				AA602145176538EB00662B9C /* fluidsynth.c in Sources */,
  31.160 +				AA602149176538EB00662B9C /* music_modplug.c in Sources */,
  31.161  			);
  31.162  			runOnlyForDeploymentPostprocessing = 0;
  31.163  		};
  31.164 @@ -745,6 +799,16 @@
  31.165  					"$(inherited)",
  31.166  					"\"$(SRCROOT)/Frameworks\"",
  31.167  				);
  31.168 +				GCC_PREPROCESSOR_DEFINITIONS = (
  31.169 +					CMD_MUSIC,
  31.170 +					WAV_MUSIC,
  31.171 +					MODPLUG_MUSIC,
  31.172 +					MP3_MUSIC,
  31.173 +					MID_MUSIC,
  31.174 +					USE_NATIVE_MIDI,
  31.175 +					OGG_MUSIC,
  31.176 +					FLAC_MUSIC,
  31.177 +				);
  31.178  				INFOPLIST_FILE = "Info-Framework.plist";
  31.179  				INSTALL_PATH = "@executable_path/../Frameworks";
  31.180  				LD_RUNPATH_SEARCH_PATHS = "@loader_path/Frameworks";
  31.181 @@ -752,7 +816,7 @@
  31.182  					"-weak_framework",
  31.183  					FLAC,
  31.184  					"-weak_framework",
  31.185 -					mikmod,
  31.186 +					modplug,
  31.187  					"-weak_framework",
  31.188  					smpeg2,
  31.189  					"-weak_framework",
  31.190 @@ -771,6 +835,16 @@
  31.191  					"$(inherited)",
  31.192  					"\"$(SRCROOT)/Frameworks\"",
  31.193  				);
  31.194 +				GCC_PREPROCESSOR_DEFINITIONS = (
  31.195 +					CMD_MUSIC,
  31.196 +					WAV_MUSIC,
  31.197 +					MODPLUG_MUSIC,
  31.198 +					MP3_MUSIC,
  31.199 +					MID_MUSIC,
  31.200 +					USE_NATIVE_MIDI,
  31.201 +					OGG_MUSIC,
  31.202 +					FLAC_MUSIC,
  31.203 +				);
  31.204  				INFOPLIST_FILE = "Info-Framework.plist";
  31.205  				INSTALL_PATH = "@executable_path/../Frameworks";
  31.206  				LD_RUNPATH_SEARCH_PATHS = "@loader_path/Frameworks";
  31.207 @@ -778,7 +852,7 @@
  31.208  					"-weak_framework",
  31.209  					FLAC,
  31.210  					"-weak_framework",
  31.211 -					mikmod,
  31.212 +					modplug,
  31.213  					"-weak_framework",
  31.214  					smpeg2,
  31.215  					"-weak_framework",
  31.216 @@ -896,7 +970,7 @@
  31.217  					"$(HOME)/Library/Frameworks/SDL2.framework/Headers",
  31.218  					/Library/Frameworks/SDL2.framework/Headers,
  31.219  				);
  31.220 -				HEADER_SEARCH_PATHS_QUOTED = "\"$(SRCROOT)/Frameworks/mikmod.framework/Headers\" \"$(SRCROOT)/Frameworks/Ogg.framework/Headers\" \"$(SRCROOT)/Frameworks/Vorbis.framework/Headers\" \"$(SRCROOT)/Frameworks/FLAC.framework/Headers\" \"$(SRCROOT)/Frameworks/smpeg2.framework/Headers\"";
  31.221 +				HEADER_SEARCH_PATHS_QUOTED = "\"$(SRCROOT)/Frameworks/modplug.framework/Headers\" \"$(SRCROOT)/Frameworks/Ogg.framework/Headers\" \"$(SRCROOT)/Frameworks/Vorbis.framework/Headers\" \"$(SRCROOT)/Frameworks/FLAC.framework/Headers\" \"$(SRCROOT)/Frameworks/smpeg2.framework/Headers\"";
  31.222  				MACOSX_DEPLOYMENT_TARGET = 10.5;
  31.223  				PRODUCT_NAME = SDL2_mixer;
  31.224  				SDKROOT = macosx;
  31.225 @@ -932,7 +1006,7 @@
  31.226  					"$(HOME)/Library/Frameworks/SDL2.framework/Headers",
  31.227  					/Library/Frameworks/SDL2.framework/Headers,
  31.228  				);
  31.229 -				HEADER_SEARCH_PATHS_QUOTED = "\"$(SRCROOT)/Frameworks/mikmod.framework/Headers\" \"$(SRCROOT)/Frameworks/Ogg.framework/Headers\" \"$(SRCROOT)/Frameworks/Vorbis.framework/Headers\" \"$(SRCROOT)/Frameworks/FLAC.framework/Headers\" \"$(SRCROOT)/Frameworks/smpeg2.framework/Headers\"";
  31.230 +				HEADER_SEARCH_PATHS_QUOTED = "\"$(SRCROOT)/Frameworks/modplug.framework/Headers\" \"$(SRCROOT)/Frameworks/Ogg.framework/Headers\" \"$(SRCROOT)/Frameworks/Vorbis.framework/Headers\" \"$(SRCROOT)/Frameworks/FLAC.framework/Headers\" \"$(SRCROOT)/Frameworks/smpeg2.framework/Headers\"";
  31.231  				MACOSX_DEPLOYMENT_TARGET = 10.5;
  31.232  				PRODUCT_NAME = SDL2_mixer;
  31.233  				SDKROOT = macosx;
    32.1 --- a/configure	Sat Jun 08 17:35:37 2013 -0700
    32.2 +++ b/configure	Sun Jun 09 16:22:42 2013 -0700
    32.3 @@ -784,9 +784,9 @@
    32.4  SMPEG_LIBS
    32.5  SMPEG_CFLAGS
    32.6  SMPEG_CONFIG
    32.7 +LIBMIKMOD_CONFIG
    32.8  MODPLUG_LIBS
    32.9  MODPLUG_CFLAGS
   32.10 -LIBMIKMOD_CONFIG
   32.11  SDL_CONFIG
   32.12  SDL_LIBS
   32.13  SDL_CFLAGS
   32.14 @@ -898,12 +898,14 @@
   32.15  enable_music_cmd
   32.16  enable_music_wave
   32.17  enable_music_mod
   32.18 -enable_music_mod_shared
   32.19  enable_music_mod_modplug
   32.20 +enable_music_mod_modplug_shared
   32.21 +enable_music_mod_mikmod
   32.22 +enable_music_mod_mikmod_shared
   32.23  enable_music_midi
   32.24 -enable_music_timidity_midi
   32.25 -enable_music_native_midi
   32.26 -enable_music_fluidsynth_midi
   32.27 +enable_music_midi_timidity
   32.28 +enable_music_midi_native
   32.29 +enable_music_midi_fluidsynth
   32.30  enable_music_fluidsynth_shared
   32.31  enable_music_ogg
   32.32  enable_music_ogg_tremor
   32.33 @@ -911,7 +913,8 @@
   32.34  enable_music_flac
   32.35  enable_music_flac_shared
   32.36  enable_music_mp3
   32.37 -enable_music_mp3_shared
   32.38 +enable_music_mp3_smpeg
   32.39 +enable_music_mp3_smpeg_shared
   32.40  with_smpeg_prefix
   32.41  with_smpeg_exec_prefix
   32.42  enable_smpegtest
   32.43 @@ -1552,31 +1555,37 @@
   32.44    --disable-sdltest       Do not try to compile and run a test SDL program
   32.45    --enable-music-cmd      support an external music player [[default=yes]]
   32.46    --enable-music-wave     enable streaming WAVE music [[default=yes]]
   32.47 -  --enable-music-mod      enable MOD music via mikmod [[default=yes]]
   32.48 -  --enable-music-mod-shared
   32.49 -                          dynamically load MOD support [[default=yes]]
   32.50 +  --enable-music-mod      enable MOD music [[default=yes]]
   32.51    --enable-music-mod-modplug
   32.52 -                          enable MOD music via modplug [[default=no]]
   32.53 -  --enable-music-midi     enable MIDI music via timidity [[default=yes]]
   32.54 -  --enable-music-timidity-midi
   32.55 +                          enable MOD music via modplug [[default=yes]]
   32.56 +  --enable-music-mod-modplug-shared
   32.57 +                          dynamically load modplug library [[default=yes]]
   32.58 +  --enable-music-mod-mikmod
   32.59 +                          enable MOD music via mikmod [[default=no]]
   32.60 +  --enable-music-mod-mikmod-shared
   32.61 +                          dynamically load mikmod library [[default=yes]]
   32.62 +  --enable-music-midi     enable MIDI music [[default=yes]]
   32.63 +  --enable-music-midi-timidity
   32.64                            enable timidity MIDI output [[default=yes]]
   32.65 -  --enable-music-native-midi
   32.66 +  --enable-music-midi-native
   32.67                            enable native MIDI music output [[default=yes]]
   32.68 -  --enable-music-fluidsynth-midi
   32.69 +  --enable-music-midi-fluidsynth
   32.70                            enable FluidSynth MIDI output [[default=yes]]
   32.71 -  --enable-music-fluidsynth-shared
   32.72 -                          dynamically load FluidSynth support [[default=yes]]
   32.73 +  --enable-music-midi-fluidsynth-shared
   32.74 +                          dynamically load FluidSynth library [[default=yes]]
   32.75    --enable-music-ogg      enable Ogg Vorbis music [[default=yes]]
   32.76    --enable-music-ogg-tremor
   32.77                            enable OGG Vorbis music via libtremor [[default=no]]
   32.78    --enable-music-ogg-shared
   32.79 -                          dynamically load Ogg Vorbis support [[default=yes]]
   32.80 +                          dynamically load Ogg Vorbis library [[default=yes]]
   32.81    --enable-music-flac     enable FLAC music [[default=yes]]
   32.82    --enable-music-flac-shared
   32.83 -                          dynamically load FLAC support [[default=yes]]
   32.84 -  --enable-music-mp3      enable MP3 music via smpeg [[default=no]]
   32.85 -  --enable-music-mp3-shared
   32.86 -                          dynamically load MP3 support [[default=yes]]
   32.87 +                          dynamically load FLAC library [[default=yes]]
   32.88 +  --enable-music-mp3      enable MP3 music [[default=yes]]
   32.89 +  --enable-music-mp3-smpeg
   32.90 +                          enable MP3 music via smpeg [[default=yes]]
   32.91 +  --enable-music-mp3-smpeg-shared
   32.92 +                          dynamically load smpeg library [[default=yes]]
   32.93    --disable-smpegtest     Do not try to compile and run a test SMPEG program
   32.94    --enable-music-mp3-mad-gpl
   32.95                            enable MP3 music via libmad GPL code [[default=no]]
   32.96 @@ -3912,13 +3921,13 @@
   32.97  else
   32.98    lt_cv_nm_interface="BSD nm"
   32.99    echo "int some_variable = 0;" > conftest.$ac_ext
  32.100 -  (eval echo "\"\$as_me:3915: $ac_compile\"" >&5)
  32.101 +  (eval echo "\"\$as_me:3924: $ac_compile\"" >&5)
  32.102    (eval "$ac_compile" 2>conftest.err)
  32.103    cat conftest.err >&5
  32.104 -  (eval echo "\"\$as_me:3918: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
  32.105 +  (eval echo "\"\$as_me:3927: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
  32.106    (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
  32.107    cat conftest.err >&5
  32.108 -  (eval echo "\"\$as_me:3921: output\"" >&5)
  32.109 +  (eval echo "\"\$as_me:3930: output\"" >&5)
  32.110    cat conftest.out >&5
  32.111    if $GREP 'External.*some_variable' conftest.out > /dev/null; then
  32.112      lt_cv_nm_interface="MS dumpbin"
  32.113 @@ -5129,7 +5138,7 @@
  32.114    ;;
  32.115  *-*-irix6*)
  32.116    # Find out which ABI we are using.
  32.117 -  echo '#line 5132 "configure"' > conftest.$ac_ext
  32.118 +  echo '#line 5141 "configure"' > conftest.$ac_ext
  32.119    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
  32.120    (eval $ac_compile) 2>&5
  32.121    ac_status=$?
  32.122 @@ -6956,11 +6965,11 @@
  32.123     -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
  32.124     -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
  32.125     -e 's:$: $lt_compiler_flag:'`
  32.126 -   (eval echo "\"\$as_me:6959: $lt_compile\"" >&5)
  32.127 +   (eval echo "\"\$as_me:6968: $lt_compile\"" >&5)
  32.128     (eval "$lt_compile" 2>conftest.err)
  32.129     ac_status=$?
  32.130     cat conftest.err >&5
  32.131 -   echo "$as_me:6963: \$? = $ac_status" >&5
  32.132 +   echo "$as_me:6972: \$? = $ac_status" >&5
  32.133     if (exit $ac_status) && test -s "$ac_outfile"; then
  32.134       # The compiler can only warn and ignore the option if not recognized
  32.135       # So say no if there are warnings other than the usual output.
  32.136 @@ -7295,11 +7304,11 @@
  32.137     -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
  32.138     -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
  32.139     -e 's:$: $lt_compiler_flag:'`
  32.140 -   (eval echo "\"\$as_me:7298: $lt_compile\"" >&5)
  32.141 +   (eval echo "\"\$as_me:7307: $lt_compile\"" >&5)
  32.142     (eval "$lt_compile" 2>conftest.err)
  32.143     ac_status=$?
  32.144     cat conftest.err >&5
  32.145 -   echo "$as_me:7302: \$? = $ac_status" >&5
  32.146 +   echo "$as_me:7311: \$? = $ac_status" >&5
  32.147     if (exit $ac_status) && test -s "$ac_outfile"; then
  32.148       # The compiler can only warn and ignore the option if not recognized
  32.149       # So say no if there are warnings other than the usual output.
  32.150 @@ -7400,11 +7409,11 @@
  32.151     -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
  32.152     -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
  32.153     -e 's:$: $lt_compiler_flag:'`
  32.154 -   (eval echo "\"\$as_me:7403: $lt_compile\"" >&5)
  32.155 +   (eval echo "\"\$as_me:7412: $lt_compile\"" >&5)
  32.156     (eval "$lt_compile" 2>out/conftest.err)
  32.157     ac_status=$?
  32.158     cat out/conftest.err >&5
  32.159 -   echo "$as_me:7407: \$? = $ac_status" >&5
  32.160 +   echo "$as_me:7416: \$? = $ac_status" >&5
  32.161     if (exit $ac_status) && test -s out/conftest2.$ac_objext
  32.162     then
  32.163       # The compiler can only warn and ignore the option if not recognized
  32.164 @@ -7455,11 +7464,11 @@
  32.165     -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
  32.166     -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
  32.167     -e 's:$: $lt_compiler_flag:'`
  32.168 -   (eval echo "\"\$as_me:7458: $lt_compile\"" >&5)
  32.169 +   (eval echo "\"\$as_me:7467: $lt_compile\"" >&5)
  32.170     (eval "$lt_compile" 2>out/conftest.err)
  32.171     ac_status=$?
  32.172     cat out/conftest.err >&5
  32.173 -   echo "$as_me:7462: \$? = $ac_status" >&5
  32.174 +   echo "$as_me:7471: \$? = $ac_status" >&5
  32.175     if (exit $ac_status) && test -s out/conftest2.$ac_objext
  32.176     then
  32.177       # The compiler can only warn and ignore the option if not recognized
  32.178 @@ -9824,7 +9833,7 @@
  32.179    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
  32.180    lt_status=$lt_dlunknown
  32.181    cat > conftest.$ac_ext <<_LT_EOF
  32.182 -#line 9827 "configure"
  32.183 +#line 9836 "configure"
  32.184  #include "confdefs.h"
  32.185  
  32.186  #if HAVE_DLFCN_H
  32.187 @@ -9920,7 +9929,7 @@
  32.188    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
  32.189    lt_status=$lt_dlunknown
  32.190    cat > conftest.$ac_ext <<_LT_EOF
  32.191 -#line 9923 "configure"
  32.192 +#line 9932 "configure"
  32.193  #include "confdefs.h"
  32.194  
  32.195  #if HAVE_DLFCN_H
  32.196 @@ -11650,6 +11659,30 @@
  32.197  fi
  32.198  
  32.199  
  32.200 +for ac_header in signal.h
  32.201 +do :
  32.202 +  ac_fn_c_check_header_mongrel "$LINENO" "signal.h" "ac_cv_header_signal_h" "$ac_includes_default"
  32.203 +if test "x$ac_cv_header_signal_h" = xyes; then :
  32.204 +  cat >>confdefs.h <<_ACEOF
  32.205 +#define HAVE_SIGNAL_H 1
  32.206 +_ACEOF
  32.207 + EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_SIGNAL_H"
  32.208 +fi
  32.209 +
  32.210 +done
  32.211 +
  32.212 +for ac_func in setbuf
  32.213 +do :
  32.214 +  ac_fn_c_check_func "$LINENO" "setbuf" "ac_cv_func_setbuf"
  32.215 +if test "x$ac_cv_func_setbuf" = xyes; then :
  32.216 +  cat >>confdefs.h <<_ACEOF
  32.217 +#define HAVE_SETBUF 1
  32.218 +_ACEOF
  32.219 + EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_SETBUF"
  32.220 +fi
  32.221 +done
  32.222 +
  32.223 +
  32.224  
  32.225  CheckVisibilityHidden
  32.226  
  32.227 @@ -11707,14 +11740,243 @@
  32.228    enable_music_mod=yes
  32.229  fi
  32.230  
  32.231 -# Check whether --enable-music-mod-shared was given.
  32.232 -if test "${enable_music_mod_shared+set}" = set; then :
  32.233 -  enableval=$enable_music_mod_shared;
  32.234 -else
  32.235 -  enable_music_mod_shared=yes
  32.236 -fi
  32.237 -
  32.238 -if test x$enable_music_mod = xyes; then
  32.239 +
  32.240 +# Check whether --enable-music-mod-modplug was given.
  32.241 +if test "${enable_music_mod_modplug+set}" = set; then :
  32.242 +  enableval=$enable_music_mod_modplug;
  32.243 +else
  32.244 +  enable_music_mod_modplug=yes
  32.245 +fi
  32.246 +
  32.247 +# Check whether --enable-music-mod-modplug-shared was given.
  32.248 +if test "${enable_music_mod_modplug_shared+set}" = set; then :
  32.249 +  enableval=$enable_music_mod_modplug_shared;
  32.250 +else
  32.251 +  enable_music_mod_modplug_shared=yes
  32.252 +fi
  32.253 +
  32.254 +if test x$enable_music_mod = xyes -a x$enable_music_mod_modplug = xyes; then
  32.255 +
  32.256 +pkg_failed=no
  32.257 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MODPLUG" >&5
  32.258 +$as_echo_n "checking for MODPLUG... " >&6; }
  32.259 +
  32.260 +if test -n "$PKG_CONFIG"; then
  32.261 +    if test -n "$MODPLUG_CFLAGS"; then
  32.262 +        pkg_cv_MODPLUG_CFLAGS="$MODPLUG_CFLAGS"
  32.263 +    else
  32.264 +        if test -n "$PKG_CONFIG" && \
  32.265 +    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmodplug >= 0.8.8\""; } >&5
  32.266 +  ($PKG_CONFIG --exists --print-errors "libmodplug >= 0.8.8") 2>&5
  32.267 +  ac_status=$?
  32.268 +  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  32.269 +  test $ac_status = 0; }; then
  32.270 +  pkg_cv_MODPLUG_CFLAGS=`$PKG_CONFIG --cflags "libmodplug >= 0.8.8" 2>/dev/null`
  32.271 +else
  32.272 +  pkg_failed=yes
  32.273 +fi
  32.274 +    fi
  32.275 +else
  32.276 +	pkg_failed=untried
  32.277 +fi
  32.278 +if test -n "$PKG_CONFIG"; then
  32.279 +    if test -n "$MODPLUG_LIBS"; then
  32.280 +        pkg_cv_MODPLUG_LIBS="$MODPLUG_LIBS"
  32.281 +    else
  32.282 +        if test -n "$PKG_CONFIG" && \
  32.283 +    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmodplug >= 0.8.8\""; } >&5
  32.284 +  ($PKG_CONFIG --exists --print-errors "libmodplug >= 0.8.8") 2>&5
  32.285 +  ac_status=$?
  32.286 +  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  32.287 +  test $ac_status = 0; }; then
  32.288 +  pkg_cv_MODPLUG_LIBS=`$PKG_CONFIG --libs "libmodplug >= 0.8.8" 2>/dev/null`
  32.289 +else
  32.290 +  pkg_failed=yes
  32.291 +fi
  32.292 +    fi
  32.293 +else
  32.294 +	pkg_failed=untried
  32.295 +fi
  32.296 +
  32.297 +
  32.298 +
  32.299 +if test $pkg_failed = yes; then
  32.300 +
  32.301 +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
  32.302 +        _pkg_short_errors_supported=yes
  32.303 +else
  32.304 +        _pkg_short_errors_supported=no
  32.305 +fi
  32.306 +        if test $_pkg_short_errors_supported = yes; then
  32.307 +	        MODPLUG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libmodplug >= 0.8.8"`
  32.308 +        else
  32.309 +	        MODPLUG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libmodplug >= 0.8.8"`
  32.310 +        fi
  32.311 +	# Put the nasty error message in config.log where it belongs
  32.312 +	echo "$MODPLUG_PKG_ERRORS" >&5
  32.313 +
  32.314 +	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
  32.315 +$as_echo "no" >&6; }
  32.316 +                            ac_fn_c_check_header_mongrel "$LINENO" "modplug.h" "ac_cv_header_modplug_h" "$ac_includes_default"
  32.317 +if test "x$ac_cv_header_modplug_h" = xyes; then :
  32.318 +  have_libmodplug_hdr=yes
  32.319 +fi
  32.320 +
  32.321 +
  32.322 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for have_libmodplug_hdr=yes in -lmodplug" >&5
  32.323 +$as_echo_n "checking for have_libmodplug_hdr=yes in -lmodplug... " >&6; }
  32.324 +if ${ac_cv_lib_modplug_have_libmodplug_hdr_yes+:} false; then :
  32.325 +  $as_echo_n "(cached) " >&6
  32.326 +else
  32.327 +  ac_check_lib_save_LIBS=$LIBS
  32.328 +LIBS="-lmodplug  $LIBS"
  32.329 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  32.330 +/* end confdefs.h.  */
  32.331 +
  32.332 +/* Override any GCC internal prototype to avoid an error.
  32.333 +   Use char because int might match the return type of a GCC
  32.334 +   builtin and then its argument prototype would still apply.  */
  32.335 +#ifdef __cplusplus
  32.336 +extern "C"
  32.337 +#endif
  32.338 +char have_libmodplug_hdr=yes ();
  32.339 +int
  32.340 +main ()
  32.341 +{
  32.342 +return have_libmodplug_hdr=yes ();
  32.343 +  ;
  32.344 +  return 0;
  32.345 +}
  32.346 +_ACEOF
  32.347 +if ac_fn_c_try_link "$LINENO"; then :
  32.348 +  ac_cv_lib_modplug_have_libmodplug_hdr_yes=yes
  32.349 +else
  32.350 +  ac_cv_lib_modplug_have_libmodplug_hdr_yes=no
  32.351 +fi
  32.352 +rm -f core conftest.err conftest.$ac_objext \
  32.353 +    conftest$ac_exeext conftest.$ac_ext
  32.354 +LIBS=$ac_check_lib_save_LIBS
  32.355 +fi
  32.356 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_modplug_have_libmodplug_hdr_yes" >&5
  32.357 +$as_echo "$ac_cv_lib_modplug_have_libmodplug_hdr_yes" >&6; }
  32.358 +if test "x$ac_cv_lib_modplug_have_libmodplug_hdr_yes" = xyes; then :
  32.359 +  cat >>confdefs.h <<_ACEOF
  32.360 +#define HAVE_LIBMODPLUG 1
  32.361 +_ACEOF
  32.362 +
  32.363 +  LIBS="-lmodplug $LIBS"
  32.364 +
  32.365 +fi
  32.366 +
  32.367 +
  32.368 +elif test $pkg_failed = untried; then
  32.369 +	            ac_fn_c_check_header_mongrel "$LINENO" "modplug.h" "ac_cv_header_modplug_h" "$ac_includes_default"
  32.370 +if test "x$ac_cv_header_modplug_h" = xyes; then :
  32.371 +  have_libmodplug_hdr=yes
  32.372 +fi
  32.373 +
  32.374 +
  32.375 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for have_libmodplug_hdr=yes in -lmodplug" >&5
  32.376 +$as_echo_n "checking for have_libmodplug_hdr=yes in -lmodplug... " >&6; }
  32.377 +if ${ac_cv_lib_modplug_have_libmodplug_hdr_yes+:} false; then :
  32.378 +  $as_echo_n "(cached) " >&6
  32.379 +else
  32.380 +  ac_check_lib_save_LIBS=$LIBS
  32.381 +LIBS="-lmodplug  $LIBS"
  32.382 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  32.383 +/* end confdefs.h.  */
  32.384 +
  32.385 +/* Override any GCC internal prototype to avoid an error.
  32.386 +   Use char because int might match the return type of a GCC
  32.387 +   builtin and then its argument prototype would still apply.  */
  32.388 +#ifdef __cplusplus
  32.389 +extern "C"
  32.390 +#endif
  32.391 +char have_libmodplug_hdr=yes ();
  32.392 +int
  32.393 +main ()
  32.394 +{
  32.395 +return have_libmodplug_hdr=yes ();
  32.396 +  ;
  32.397 +  return 0;
  32.398 +}
  32.399 +_ACEOF
  32.400 +if ac_fn_c_try_link "$LINENO"; then :
  32.401 +  ac_cv_lib_modplug_have_libmodplug_hdr_yes=yes
  32.402 +else
  32.403 +  ac_cv_lib_modplug_have_libmodplug_hdr_yes=no
  32.404 +fi
  32.405 +rm -f core conftest.err conftest.$ac_objext \
  32.406 +    conftest$ac_exeext conftest.$ac_ext
  32.407 +LIBS=$ac_check_lib_save_LIBS
  32.408 +fi
  32.409 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_modplug_have_libmodplug_hdr_yes" >&5
  32.410 +$as_echo "$ac_cv_lib_modplug_have_libmodplug_hdr_yes" >&6; }
  32.411 +if test "x$ac_cv_lib_modplug_have_libmodplug_hdr_yes" = xyes; then :
  32.412 +  cat >>confdefs.h <<_ACEOF
  32.413 +#define HAVE_LIBMODPLUG 1
  32.414 +_ACEOF
  32.415 +
  32.416 +  LIBS="-lmodplug $LIBS"
  32.417 +
  32.418 +fi
  32.419 +
  32.420 +
  32.421 +else
  32.422 +	MODPLUG_CFLAGS=$pkg_cv_MODPLUG_CFLAGS
  32.423 +	MODPLUG_LIBS=$pkg_cv_MODPLUG_LIBS
  32.424 +        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
  32.425 +$as_echo "yes" >&6; }
  32.426 +	            have_libmodplug_hdr=yes
  32.427 +            have_libmodplug_lib=yes
  32.428 +
  32.429 +fi
  32.430 +
  32.431 +    if test x$have_libmodplug_hdr = xyes -a x$have_libmodplug_lib = xyes; then
  32.432 +        have_libmodplug=yes
  32.433 +        case "$host" in
  32.434 +            *-*-darwin*)
  32.435 +                modplug_lib=`find_lib libmodplug.dylib`
  32.436 +                ;;
  32.437 +            *-*-cygwin* | *-*-mingw32*)
  32.438 +                modplug_lib=`find_lib "libmodplug*.dll"`
  32.439 +                ;;
  32.440 +            *)
  32.441 +                modplug_lib=`find_lib "libmodplug[0-9]*.so.*"`
  32.442 +                if test x$modplug_lib = x; then
  32.443 +                    modplug_lib=`find_lib "libmodplug.so.*"`
  32.444 +                fi
  32.445 +                ;;
  32.446 +        esac
  32.447 +        SOURCES="$SOURCES $srcdir/*_modplug.c"
  32.448 +        EXTRA_CFLAGS="$EXTRA_CFLAGS -DMODPLUG_MUSIC $MODPLUG_CFLAGS"
  32.449 +        if test x$enable_music_mod_modplug_shared = xyes && test x$modplug_lib != x; then
  32.450 +            echo "-- dynamic libmodplug -> $modplug_lib"
  32.451 +            EXTRA_CFLAGS="$EXTRA_CFLAGS -DMODPLUG_DYNAMIC=\\\"$modplug_lib\\\""
  32.452 +        else
  32.453 +	        EXTRA_LDFLAGS="$EXTRA_LDFLAGS $MODPLUG_LIBS"
  32.454 +        fi
  32.455 +    else
  32.456 +        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Unable to find ModPlug library (http://modplug-xmms.sourceforge.net/)" >&5
  32.457 +$as_echo "$as_me: WARNING: *** Unable to find ModPlug library (http://modplug-xmms.sourceforge.net/)" >&2;}
  32.458 +    fi
  32.459 +fi
  32.460 +
  32.461 +# Check whether --enable-music-mod-mikmod was given.
  32.462 +if test "${enable_music_mod_mikmod+set}" = set; then :
  32.463 +  enableval=$enable_music_mod_mikmod;
  32.464 +else
  32.465 +  enable_music_mod_mikmod=no
  32.466 +fi
  32.467 +
  32.468 +# Check whether --enable-music-mod-mikmod-shared was given.
  32.469 +if test "${enable_music_mod_mikmod_shared+set}" = set; then :
  32.470 +  enableval=$enable_music_mod_mikmod_shared;
  32.471 +else
  32.472 +  enable_music_mod_mikmod_shared=yes
  32.473 +fi
  32.474 +
  32.475 +if test x$enable_music_mod = xyes -a x$enable_music_mod_mikmod = xyes; then
  32.476      have_libmikmod=no
  32.477      libmikmod_maj=3
  32.478      libmikmod_min=1
  32.479 @@ -11812,7 +12074,7 @@
  32.480                  mikmod_lib=`find_lib "libmikmod*.dll"`
  32.481                  ;;
  32.482              *)
  32.483 -                mikmod_lib=`find_lib "libmikmod[0-9].so.*"`
  32.484 +                mikmod_lib=`find_lib "libmikmod[0-9]*.so.*"`
  32.485                  if test x$mikmod_lib = x; then
  32.486                      mikmod_lib=`find_lib "libmikmod.so.*"`
  32.487                  fi
  32.488 @@ -11820,7 +12082,7 @@
  32.489          esac
  32.490          SOURCES="$SOURCES $srcdir/*_mod.c"
  32.491          EXTRA_CFLAGS="$EXTRA_CFLAGS -DMOD_MUSIC `$LIBMIKMOD_CONFIG --cflags`"
  32.492 -        if test x$enable_music_mod_shared = xyes && test x$mikmod_lib != x; then
  32.493 +        if test x$enable_music_mod_mikmod_shared = xyes && test x$mikmod_lib != x; then
  32.494              echo "-- dynamic libmikmod -> $mikmod_lib"
  32.495              EXTRA_CFLAGS="$EXTRA_CFLAGS -DMOD_DYNAMIC=\\\"$mikmod_lib\\\""
  32.496          else
  32.497 @@ -11832,113 +12094,7 @@
  32.498      fi
  32.499  fi
  32.500  
  32.501 -# Check whether --enable-music-mod-modplug was given.
  32.502 -if test "${enable_music_mod_modplug+set}" = set; then :
  32.503 -  enableval=$enable_music_mod_modplug;
  32.504 -else
  32.505 -  enable_music_mod_modplug=no
  32.506 -fi
  32.507 -
  32.508 -if test x$enable_music_mod_modplug = xyes; then
  32.509 -
  32.510 -pkg_failed=no
  32.511 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MODPLUG" >&5
  32.512 -$as_echo_n "checking for MODPLUG... " >&6; }
  32.513 -
  32.514 -if test -n "$PKG_CONFIG"; then
  32.515 -    if test -n "$MODPLUG_CFLAGS"; then
  32.516 -        pkg_cv_MODPLUG_CFLAGS="$MODPLUG_CFLAGS"
  32.517 -    else
  32.518 -        if test -n "$PKG_CONFIG" && \
  32.519 -    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmodplug >= 0.8.7\""; } >&5
  32.520 -  ($PKG_CONFIG --exists --print-errors "libmodplug >= 0.8.7") 2>&5
  32.521 -  ac_status=$?
  32.522 -  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  32.523 -  test $ac_status = 0; }; then
  32.524 -  pkg_cv_MODPLUG_CFLAGS=`$PKG_CONFIG --cflags "libmodplug >= 0.8.7" 2>/dev/null`
  32.525 -else
  32.526 -  pkg_failed=yes
  32.527 -fi
  32.528 -    fi
  32.529 -else
  32.530 -	pkg_failed=untried
  32.531 -fi
  32.532 -if test -n "$PKG_CONFIG"; then
  32.533 -    if test -n "$MODPLUG_LIBS"; then
  32.534 -        pkg_cv_MODPLUG_LIBS="$MODPLUG_LIBS"
  32.535 -    else
  32.536 -        if test -n "$PKG_CONFIG" && \
  32.537 -    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmodplug >= 0.8.7\""; } >&5
  32.538 -  ($PKG_CONFIG --exists --print-errors "libmodplug >= 0.8.7") 2>&5
  32.539 -  ac_status=$?
  32.540 -  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  32.541 -  test $ac_status = 0; }; then
  32.542 -  pkg_cv_MODPLUG_LIBS=`$PKG_CONFIG --libs "libmodplug >= 0.8.7" 2>/dev/null`
  32.543 -else
  32.544 -  pkg_failed=yes
  32.545 -fi
  32.546 -    fi
  32.547 -else
  32.548 -	pkg_failed=untried
  32.549 -fi
  32.550 -
  32.551 -
  32.552 -
  32.553 -if test $pkg_failed = yes; then
  32.554 -
  32.555 -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
  32.556 -        _pkg_short_errors_supported=yes
  32.557 -else
  32.558 -        _pkg_short_errors_supported=no
  32.559 -fi
  32.560 -        if test $_pkg_short_errors_supported = yes; then
  32.561 -	        MODPLUG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libmodplug >= 0.8.7"`
  32.562 -        else
  32.563 -	        MODPLUG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libmodplug >= 0.8.7"`
  32.564 -        fi
  32.565 -	# Put the nasty error message in config.log where it belongs
  32.566 -	echo "$MODPLUG_PKG_ERRORS" >&5
  32.567 -
  32.568 -	as_fn_error $? "Package requirements (libmodplug >= 0.8.7) were not met:
  32.569 -
  32.570 -$MODPLUG_PKG_ERRORS
  32.571 -
  32.572 -Consider adjusting the PKG_CONFIG_PATH environment variable if you
  32.573 -installed software in a non-standard prefix.
  32.574 -
  32.575 -Alternatively, you may set the environment variables MODPLUG_CFLAGS
  32.576 -and MODPLUG_LIBS to avoid the need to call pkg-config.
  32.577 -See the pkg-config man page for more details.
  32.578 -" "$LINENO" 5
  32.579 -elif test $pkg_failed = untried; then
  32.580 -	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
  32.581 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
  32.582 -as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
  32.583 -is in your PATH or set the PKG_CONFIG environment variable to the full
  32.584 -path to pkg-config.
  32.585 -
  32.586 -Alternatively, you may set the environment variables MODPLUG_CFLAGS
  32.587 -and MODPLUG_LIBS to avoid the need to call pkg-config.
  32.588 -See the pkg-config man page for more details.
  32.589 -
  32.590 -To get pkg-config, see <http://pkg-config.freedesktop.org/>.
  32.591 -See \`config.log' for more details" "$LINENO" 5; }
  32.592 -else
  32.593 -	MODPLUG_CFLAGS=$pkg_cv_MODPLUG_CFLAGS
  32.594 -	MODPLUG_LIBS=$pkg_cv_MODPLUG_LIBS
  32.595 -        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
  32.596 -$as_echo "yes" >&6; }
  32.597 -	:
  32.598 -fi
  32.599 -	EXTRA_CFLAGS="$EXTRA_CFLAGS -DMODPLUG_MUSIC  $MODPLUG_CFLAGS"
  32.600 -	EXTRA_LDFLAGS="$EXTRA_LDFLAGS $MODPLUG_LIBS"
  32.601 -    have_libmodplug=yes
  32.602 -    SOURCES="$SOURCES $srcdir/music_modplug.c"
  32.603 -else
  32.604 -	have_libmodplug=no
  32.605 -fi
  32.606 -
  32.607 -if test x$have_libmikmod != xyes -a x$have_libmodplug != xyes ; then
  32.608 +if test x$have_libmodplug != xyes -a x$have_libmikmod != xyes ; then
  32.609  	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MOD support disabled" >&5
  32.610  $as_echo "$as_me: WARNING: MOD support disabled" >&2;}
  32.611  fi
  32.612 @@ -11952,67 +12108,67 @@
  32.613  
  32.614  if test x$enable_music_midi = xyes; then
  32.615      EXTRA_CFLAGS="$EXTRA_CFLAGS -DMID_MUSIC"
  32.616 -    # Check whether --enable-music-timidity-midi was given.
  32.617 -if test "${enable_music_timidity_midi+set}" = set; then :
  32.618 -  enableval=$enable_music_timidity_midi;
  32.619 -else
  32.620 -  enable_music_timidity_midi=yes
  32.621 -fi
  32.622 -
  32.623 -    if test x$enable_music_timidity_midi = xyes; then
  32.624 +    # Check whether --enable-music-midi-timidity was given.
  32.625 +if test "${enable_music_midi_timidity+set}" = set; then :
  32.626 +  enableval=$enable_music_midi_timidity;
  32.627 +else
  32.628 +  enable_music_midi_timidity=yes
  32.629 +fi
  32.630 +
  32.631 +    if test x$enable_music_midi_timidity = xyes; then
  32.632          EXTRA_CFLAGS="$EXTRA_CFLAGS -DUSE_TIMIDITY_MIDI -I\$(srcdir)/timidity"
  32.633          SOURCES="$SOURCES $srcdir/timidity/*.c"
  32.634      fi
  32.635 -    # Check whether --enable-music-native-midi was given.
  32.636 -if test "${enable_music_native_midi+set}" = set; then :
  32.637 -  enableval=$enable_music_native_midi;
  32.638 -else
  32.639 -  enable_music_native_midi=yes
  32.640 -fi
  32.641 -
  32.642 -    if test x$enable_music_native_midi = xyes; then
  32.643 -        use_music_native_midi=no
  32.644 +    # Check whether --enable-music-midi-native was given.
  32.645 +if test "${enable_music_midi_native+set}" = set; then :
  32.646 +  enableval=$enable_music_midi_native;
  32.647 +else
  32.648 +  enable_music_midi_native=yes
  32.649 +fi
  32.650 +
  32.651 +    if test x$enable_music_midi_native = xyes; then
  32.652 +        use_music_midi_native=no
  32.653          case "$host" in
  32.654              *mingw32ce*)
  32.655 -                use_music_native_midi=no
  32.656 +                use_music_midi_native=no
  32.657                  ;;
  32.658              *-*-cygwin* | *-*-mingw32*)
  32.659 -                use_music_native_midi=yes
  32.660 +                use_music_midi_native=yes
  32.661                  EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lwinmm"
  32.662                  ;;
  32.663              *-*-darwin*)
  32.664 -                use_music_native_midi=yes
  32.665 +                use_music_midi_native=yes
  32.666                  EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit -Wl,-framework,CoreServices"
  32.667                  ;;
  32.668              *-*-haiku*)
  32.669 -                use_music_native_midi=yes_cpp
  32.670 +                use_music_midi_native=yes_cpp
  32.671                  EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lmidi"
  32.672                  ;;
  32.673          esac
  32.674 -        if test x$use_music_native_midi = xyes; then
  32.675 +        if test x$use_music_midi_native = xyes; then
  32.676              EXTRA_CFLAGS="$EXTRA_CFLAGS -DUSE_NATIVE_MIDI -I\$(srcdir)/native_midi"
  32.677              SOURCES="$SOURCES $srcdir/native_midi/*.c"
  32.678 -        elif test x$use_music_native_midi = xyes_cpp; then
  32.679 +        elif test x$use_music_midi_native = xyes_cpp; then
  32.680              EXTRA_CFLAGS="$EXTRA_CFLAGS -DUSE_NATIVE_MIDI -I\$(srcdir)/native_midi"
  32.681              SOURCES="$SOURCES $srcdir/native_midi/*.c"
  32.682              SOURCES_CXX="$SOURCES_CXX $srcdir/native_midi/*.cpp"
  32.683          fi
  32.684      fi
  32.685 -    # Check whether --enable-music-fluidsynth-midi was given.
  32.686 -if test "${enable_music_fluidsynth_midi+set}" = set; then :
  32.687 -  enableval=$enable_music_fluidsynth_midi;
  32.688 -else
  32.689 -  enable_music_fluidsynth_midi=yes
  32.690 +    # Check whether --enable-music-midi-fluidsynth was given.
  32.691 +if test "${enable_music_midi_fluidsynth+set}" = set; then :
  32.692 +  enableval=$enable_music_midi_fluidsynth;
  32.693 +else
  32.694 +  enable_music_midi_fluidsynth=yes
  32.695  fi
  32.696  
  32.697      # Check whether --enable-music-fluidsynth-shared was given.
  32.698  if test "${enable_music_fluidsynth_shared+set}" = set; then :
  32.699    enableval=$enable_music_fluidsynth_shared;
  32.700  else
  32.701 -  enable_music_fluidsynth_shared=yes
  32.702 -fi
  32.703 -
  32.704 -    if test x$enable_music_fluidsynth_midi = xyes; then
  32.705 +  enable_music_midi_fluidsynth_shared=yes
  32.706 +fi
  32.707 +
  32.708 +    if test x$enable_music_midi_fluidsynth = xyes; then
  32.709          ac_fn_c_check_header_mongrel "$LINENO" "fluidsynth.h" "ac_cv_header_fluidsynth_h" "$ac_includes_default"
  32.710  if test "x$ac_cv_header_fluidsynth_h" = xyes; then :
  32.711    have_fluidsynth_hdr=yes
  32.712 @@ -12060,6 +12216,7 @@
  32.713  fi
  32.714  
  32.715          if test x$have_fluidsynth_hdr = xyes -a x$have_fluidsynth_lib = xyes; then
  32.716 +            have_fluidsynth=yes
  32.717              case "$host" in
  32.718                  *-*-darwin*)
  32.719                      fluidsynth_lib=`find_lib libfluidsynth.dylib`
  32.720 @@ -12076,7 +12233,7 @@
  32.721              esac
  32.722              SOURCES="$SOURCES $srcdir/dynamic_fluidsynth.c $srcdir/fluidsynth.c"
  32.723              EXTRA_CFLAGS="$EXTRA_CFLAGS -DUSE_FLUIDSYNTH_MIDI"
  32.724 -            if test x$enable_music_fluidsynth_shared = xyes && test x$fluidsynth_lib != x; then
  32.725 +            if test x$enable_music_midi_fluidsynth_shared = xyes && test x$fluidsynth_lib != x; then
  32.726                  echo "-- dynamic libfluidsyth -> $fluidsynth_lib"
  32.727                  EXTRA_CFLAGS="$EXTRA_CFLAGS -DFLUIDSYNTH_DYNAMIC=\\\"$fluidsynth_lib\\\""
  32.728              else
  32.729 @@ -12091,6 +12248,13 @@
  32.730      fi
  32.731  fi
  32.732  
  32.733 +if test x$enable_music_midi_timidity != xyes -a \
  32.734 +        x$use_music_midi_native != xyes -a x$use_music_midi_native != xyes_cpp -a \
  32.735 +        x$have_fluidsynth != xyes; then
  32.736 +	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MIDI support disabled" >&5
  32.737 +$as_echo "$as_me: WARNING: MIDI support disabled" >&2;}
  32.738 +fi
  32.739 +
  32.740  # Check whether --enable-music-ogg was given.
  32.741  if test "${enable_music_ogg+set}" = set; then :
  32.742    enableval=$enable_music_ogg;
  32.743 @@ -12408,30 +12572,6 @@
  32.744      fi
  32.745  fi
  32.746  
  32.747 -for ac_header in signal.h
  32.748 -do :
  32.749 -  ac_fn_c_check_header_mongrel "$LINENO" "signal.h" "ac_cv_header_signal_h" "$ac_includes_default"
  32.750 -if test "x$ac_cv_header_signal_h" = xyes; then :
  32.751 -  cat >>confdefs.h <<_ACEOF
  32.752 -#define HAVE_SIGNAL_H 1
  32.753 -_ACEOF
  32.754 - EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_SIGNAL_H"
  32.755 -fi
  32.756 -
  32.757 -done
  32.758 -
  32.759 -for ac_func in setbuf
  32.760 -do :
  32.761 -  ac_fn_c_check_func "$LINENO" "setbuf" "ac_cv_func_setbuf"
  32.762 -if test "x$ac_cv_func_setbuf" = xyes; then :
  32.763 -  cat >>confdefs.h <<_ACEOF
  32.764 -#define HAVE_SETBUF 1
  32.765 -_ACEOF
  32.766 - EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_SETBUF"
  32.767 -fi
  32.768 -done
  32.769 -
  32.770 -
  32.771  # Check whether --enable-music-mp3 was given.
  32.772  if test "${enable_music_mp3+set}" = set; then :
  32.773    enableval=$enable_music_mp3;
  32.774 @@ -12439,14 +12579,22 @@
  32.775    enable_music_mp3=yes
  32.776  fi
  32.777  
  32.778 -# Check whether --enable-music-mp3-shared was given.
  32.779 -if test "${enable_music_mp3_shared+set}" = set; then :
  32.780 -  enableval=$enable_music_mp3_shared;
  32.781 -else
  32.782 -  enable_music_mp3_shared=yes
  32.783 -fi
  32.784 -
  32.785 -if test x$enable_music_mp3 = xyes; then
  32.786 +
  32.787 +# Check whether --enable-music-mp3-smpeg was given.
  32.788 +if test "${enable_music_mp3_smpeg+set}" = set; then :
  32.789 +  enableval=$enable_music_mp3_smpeg;
  32.790 +else
  32.791 +  enable_music_mp3_smpeg=yes
  32.792 +fi
  32.793 +
  32.794 +# Check whether --enable-music-mp3-smpeg-shared was given.
  32.795 +if test "${enable_music_mp3_smpeg_shared+set}" = set; then :
  32.796 +  enableval=$enable_music_mp3_smpeg_shared;
  32.797 +else
  32.798 +  enable_music_mp3_smpeg_shared=yes
  32.799 +fi
  32.800 +
  32.801 +if test x$enable_music_mp3 = xyes -a x$enable_music_mp3_smpeg = xyes; then
  32.802      SMPEG_VERSION=2.0.0
  32.803  
  32.804  # Check whether --with-smpeg-prefix was given.
  32.805 @@ -12702,7 +12850,7 @@
  32.806          esac
  32.807          SOURCES="$SOURCES $srcdir/*_mp3.c"
  32.808          EXTRA_CFLAGS="$EXTRA_CFLAGS -DMP3_MUSIC $SMPEG_CFLAGS"
  32.809 -        if test x$enable_music_mp3_shared = xyes && test x$smpeg_lib != x; then
  32.810 +        if test x$enable_music_mp3_smpeg_shared = xyes && test x$smpeg_lib != x; then
  32.811              echo "-- dynamic libsmpeg -> $smpeg_lib"
  32.812              EXTRA_CFLAGS="$EXTRA_CFLAGS -DMP3_DYNAMIC=\\\"$smpeg_lib\\\""
  32.813          else
  32.814 @@ -12721,7 +12869,7 @@
  32.815    enable_music_mp3_mad_gpl=no
  32.816  fi
  32.817  
  32.818 -if test x$enable_music_mp3_mad_gpl = xyes; then
  32.819 +if test x$enable_music_mp3 = xyes -a x$enable_music_mp3_mad_gpl = xyes; then
  32.820      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libmad headers" >&5
  32.821  $as_echo_n "checking for libmad headers... " >&6; }
  32.822      have_libmad=no
    33.1 --- a/configure.in	Sat Jun 08 17:35:37 2013 -0700
    33.2 +++ b/configure.in	Sun Jun 09 16:22:42 2013 -0700
    33.3 @@ -207,6 +207,9 @@
    33.4  dnl Check for math library
    33.5  AC_CHECK_LIB(m, pow, [LIBM="-lm"])
    33.6  
    33.7 +AC_CHECK_HEADERS([signal.h], [EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_SIGNAL_H"])
    33.8 +AC_CHECK_FUNCS(setbuf, [EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_SETBUF"])
    33.9 +
   33.10  dnl Check command-line options
   33.11  
   33.12  CheckVisibilityHidden
   33.13 @@ -240,12 +243,60 @@
   33.14  fi
   33.15  
   33.16  AC_ARG_ENABLE([music-mod],
   33.17 -AC_HELP_STRING([--enable-music-mod], [enable MOD music via mikmod [[default=yes]]]),
   33.18 +AC_HELP_STRING([--enable-music-mod], [enable MOD music [[default=yes]]]),
   33.19                [], [enable_music_mod=yes])
   33.20 -AC_ARG_ENABLE([music-mod-shared],
   33.21 -AC_HELP_STRING([--enable-music-mod-shared], [dynamically load MOD support [[default=yes]]]),
   33.22 -              [], [enable_music_mod_shared=yes])
   33.23 -if test x$enable_music_mod = xyes; then
   33.24 +
   33.25 +AC_ARG_ENABLE([music-mod-modplug],
   33.26 +AC_HELP_STRING([--enable-music-mod-modplug], [enable MOD music via modplug [[default=yes]]]),
   33.27 +              [], [enable_music_mod_modplug=yes])
   33.28 +AC_ARG_ENABLE([music-mod-modplug-shared],
   33.29 +AC_HELP_STRING([--enable-music-mod-modplug-shared], [dynamically load modplug library [[default=yes]]]),
   33.30 +              [], [enable_music_mod_modplug_shared=yes])
   33.31 +if test x$enable_music_mod = xyes -a x$enable_music_mod_modplug = xyes; then
   33.32 +    PKG_CHECK_MODULES([MODPLUG], [libmodplug >= 0.8.8], [dnl
   33.33 +            have_libmodplug_hdr=yes
   33.34 +            have_libmodplug_lib=yes
   33.35 +        ], [dnl
   33.36 +            AC_CHECK_HEADER([modplug.h], [have_libmodplug_hdr=yes])
   33.37 +            AC_CHECK_LIB([modplug], [have_libmodplug_hdr=yes])
   33.38 +        ])
   33.39 +
   33.40 +    if test x$have_libmodplug_hdr = xyes -a x$have_libmodplug_lib = xyes; then
   33.41 +        have_libmodplug=yes
   33.42 +        case "$host" in
   33.43 +            *-*-darwin*)
   33.44 +                modplug_lib=[`find_lib libmodplug.dylib`]
   33.45 +                ;;
   33.46 +            *-*-cygwin* | *-*-mingw32*)
   33.47 +                modplug_lib=[`find_lib "libmodplug*.dll"`]
   33.48 +                ;;
   33.49 +            *)
   33.50 +                modplug_lib=[`find_lib "libmodplug[0-9]*.so.*"`]
   33.51 +                if test x$modplug_lib = x; then
   33.52 +                    modplug_lib=[`find_lib "libmodplug.so.*"`]
   33.53 +                fi
   33.54 +                ;;
   33.55 +        esac
   33.56 +        SOURCES="$SOURCES $srcdir/*_modplug.c"
   33.57 +        EXTRA_CFLAGS="$EXTRA_CFLAGS -DMODPLUG_MUSIC $MODPLUG_CFLAGS"
   33.58 +        if test x$enable_music_mod_modplug_shared = xyes && test x$modplug_lib != x; then
   33.59 +            echo "-- dynamic libmodplug -> $modplug_lib"
   33.60 +            EXTRA_CFLAGS="$EXTRA_CFLAGS -DMODPLUG_DYNAMIC=\\\"$modplug_lib\\\""
   33.61 +        else
   33.62 +	        EXTRA_LDFLAGS="$EXTRA_LDFLAGS $MODPLUG_LIBS"
   33.63 +        fi
   33.64 +    else
   33.65 +        AC_MSG_WARN([*** Unable to find ModPlug library (http://modplug-xmms.sourceforge.net/)])
   33.66 +    fi
   33.67 +fi
   33.68 +
   33.69 +AC_ARG_ENABLE([music-mod-mikmod],
   33.70 +AC_HELP_STRING([--enable-music-mod-mikmod], [enable MOD music via mikmod [[default=no]]]),
   33.71 +              [], [enable_music_mod_mikmod=no])
   33.72 +AC_ARG_ENABLE([music-mod-mikmod-shared],
   33.73 +AC_HELP_STRING([--enable-music-mod-mikmod-shared], [dynamically load mikmod library [[default=yes]]]),
   33.74 +              [], [enable_music_mod_mikmod_shared=yes])
   33.75 +if test x$enable_music_mod = xyes -a x$enable_music_mod_mikmod = xyes; then
   33.76      have_libmikmod=no
   33.77      libmikmod_maj=3
   33.78      libmikmod_min=1
   33.79 @@ -288,7 +339,7 @@
   33.80                  mikmod_lib=[`find_lib "libmikmod*.dll"`]
   33.81                  ;;
   33.82              *)
   33.83 -                mikmod_lib=[`find_lib "libmikmod[0-9].so.*"`]
   33.84 +                mikmod_lib=[`find_lib "libmikmod[0-9]*.so.*"`]
   33.85                  if test x$mikmod_lib = x; then
   33.86                      mikmod_lib=[`find_lib "libmikmod.so.*"`]
   33.87                  fi
   33.88 @@ -296,7 +347,7 @@
   33.89          esac
   33.90          SOURCES="$SOURCES $srcdir/*_mod.c"
   33.91          EXTRA_CFLAGS="$EXTRA_CFLAGS -DMOD_MUSIC `$LIBMIKMOD_CONFIG --cflags`"
   33.92 -        if test x$enable_music_mod_shared = xyes && test x$mikmod_lib != x; then
   33.93 +        if test x$enable_music_mod_mikmod_shared = xyes && test x$mikmod_lib != x; then
   33.94              echo "-- dynamic libmikmod -> $mikmod_lib"
   33.95              EXTRA_CFLAGS="$EXTRA_CFLAGS -DMOD_DYNAMIC=\\\"$mikmod_lib\\\""
   33.96          else
   33.97 @@ -307,81 +358,64 @@
   33.98      fi
   33.99  fi
  33.100  
  33.101 -AC_ARG_ENABLE([music-mod-modplug],
  33.102 -AC_HELP_STRING([--enable-music-mod-modplug], [enable MOD music via modplug [[default=no]]]),
  33.103 -              [], [enable_music_mod_modplug=no])
  33.104 -if test x$enable_music_mod_modplug = xyes; then
  33.105 -	PKG_CHECK_MODULES([MODPLUG], [libmodplug >= 0.8.7])
  33.106 -	EXTRA_CFLAGS="$EXTRA_CFLAGS -DMODPLUG_MUSIC  $MODPLUG_CFLAGS"
  33.107 -	EXTRA_LDFLAGS="$EXTRA_LDFLAGS $MODPLUG_LIBS"
  33.108 -dnl	AC_TRY_COMPILE([
  33.109 -dnl     #include "modplug.h"
  33.110 -dnl    ],[
  33.111 -dnl    ],[
  33.112 -    have_libmodplug=yes
  33.113 -    SOURCES="$SOURCES $srcdir/music_modplug.c"
  33.114 -dnl    ])
  33.115 -else
  33.116 -	have_libmodplug=no
  33.117 -fi
  33.118 -
  33.119 -if test x$have_libmikmod != xyes -a x$have_libmodplug != xyes ; then
  33.120 +if test x$have_libmodplug != xyes -a x$have_libmikmod != xyes ; then
  33.121  	AC_MSG_WARN([MOD support disabled])
  33.122  fi
  33.123  
  33.124  AC_ARG_ENABLE([music-midi],
  33.125 -AC_HELP_STRING([--enable-music-midi], [enable MIDI music via timidity [[default=yes]]]),
  33.126 +AC_HELP_STRING([--enable-music-midi], [enable MIDI music [[default=yes]]]),
  33.127                [], [enable_music_midi=yes])
  33.128  if test x$enable_music_midi = xyes; then
  33.129      EXTRA_CFLAGS="$EXTRA_CFLAGS -DMID_MUSIC"
  33.130 -    AC_ARG_ENABLE([music-timidity-midi],
  33.131 -AC_HELP_STRING([--enable-music-timidity-midi], [enable timidity MIDI output [[default=yes]]]),
  33.132 -                  [], [enable_music_timidity_midi=yes])
  33.133 -    if test x$enable_music_timidity_midi = xyes; then
  33.134 +    AC_ARG_ENABLE([music-midi-timidity],
  33.135 +AC_HELP_STRING([--enable-music-midi-timidity], [enable timidity MIDI output [[default=yes]]]),
  33.136 +                  [], [enable_music_midi_timidity=yes])
  33.137 +    if test x$enable_music_midi_timidity = xyes; then
  33.138          EXTRA_CFLAGS="$EXTRA_CFLAGS -DUSE_TIMIDITY_MIDI -I\$(srcdir)/timidity"
  33.139          SOURCES="$SOURCES $srcdir/timidity/*.c"
  33.140      fi
  33.141 -    AC_ARG_ENABLE([music-native-midi],
  33.142 -AC_HELP_STRING([--enable-music-native-midi], [enable native MIDI music output [[default=yes]]]),
  33.143 -                  [], [enable_music_native_midi=yes])
  33.144 -    if test x$enable_music_native_midi = xyes; then
  33.145 -        use_music_native_midi=no
  33.146 +    AC_ARG_ENABLE([music-midi-native],
  33.147 +AC_HELP_STRING([--enable-music-midi-native], [enable native MIDI music output [[default=yes]]]),
  33.148 +                  [], [enable_music_midi_native=yes])
  33.149 +    if test x$enable_music_midi_native = xyes; then
  33.150 +        use_music_midi_native=no
  33.151          case "$host" in
  33.152              *mingw32ce*)
  33.153 -                use_music_native_midi=no
  33.154 +                use_music_midi_native=no
  33.155                  ;;
  33.156              *-*-cygwin* | *-*-mingw32*)
  33.157 -                use_music_native_midi=yes
  33.158 +                use_music_midi_native=yes
  33.159                  EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lwinmm"
  33.160                  ;;
  33.161              *-*-darwin*)
  33.162 -                use_music_native_midi=yes
  33.163 +                use_music_midi_native=yes
  33.164                  EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit -Wl,-framework,CoreServices"
  33.165                  ;;
  33.166              *-*-haiku*)
  33.167 -                use_music_native_midi=yes_cpp
  33.168 +                use_music_midi_native=yes_cpp
  33.169                  EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lmidi" 
  33.170                  ;;
  33.171          esac
  33.172 -        if test x$use_music_native_midi = xyes; then
  33.173 +        if test x$use_music_midi_native = xyes; then
  33.174              EXTRA_CFLAGS="$EXTRA_CFLAGS -DUSE_NATIVE_MIDI -I\$(srcdir)/native_midi"
  33.175              SOURCES="$SOURCES $srcdir/native_midi/*.c"
  33.176 -        elif test x$use_music_native_midi = xyes_cpp; then
  33.177 +        elif test x$use_music_midi_native = xyes_cpp; then
  33.178              EXTRA_CFLAGS="$EXTRA_CFLAGS -DUSE_NATIVE_MIDI -I\$(srcdir)/native_midi"
  33.179              SOURCES="$SOURCES $srcdir/native_midi/*.c"
  33.180              SOURCES_CXX="$SOURCES_CXX $srcdir/native_midi/*.cpp"
  33.181          fi
  33.182      fi
  33.183 -    AC_ARG_ENABLE([music-fluidsynth-midi],
  33.184 -AC_HELP_STRING([--enable-music-fluidsynth-midi], [enable FluidSynth MIDI output [[default=yes]]]),
  33.185 -                  [], [enable_music_fluidsynth_midi=yes])
  33.186 +    AC_ARG_ENABLE([music-midi-fluidsynth],
  33.187 +AC_HELP_STRING([--enable-music-midi-fluidsynth], [enable FluidSynth MIDI output [[default=yes]]]),
  33.188 +                  [], [enable_music_midi_fluidsynth=yes])
  33.189      AC_ARG_ENABLE([music-fluidsynth-shared],
  33.190 -AC_HELP_STRING([--enable-music-fluidsynth-shared], [dynamically load FluidSynth support [[default=yes]]]),
  33.191 -                  [], [enable_music_fluidsynth_shared=yes])
  33.192 -    if test x$enable_music_fluidsynth_midi = xyes; then
  33.193 +AC_HELP_STRING([--enable-music-midi-fluidsynth-shared], [dynamically load FluidSynth library [[default=yes]]]),
  33.194 +                  [], [enable_music_midi_fluidsynth_shared=yes])
  33.195 +    if test x$enable_music_midi_fluidsynth = xyes; then
  33.196          AC_CHECK_HEADER([fluidsynth.h], [have_fluidsynth_hdr=yes])
  33.197          AC_CHECK_LIB([fluidsynth], [fluid_player_add_mem], [have_fluidsynth_lib=yes])
  33.198          if test x$have_fluidsynth_hdr = xyes -a x$have_fluidsynth_lib = xyes; then
  33.199 +            have_fluidsynth=yes
  33.200              case "$host" in
  33.201                  *-*-darwin*)
  33.202                      fluidsynth_lib=[`find_lib libfluidsynth.dylib`]
  33.203 @@ -398,7 +432,7 @@
  33.204              esac
  33.205              SOURCES="$SOURCES $srcdir/dynamic_fluidsynth.c $srcdir/fluidsynth.c"
  33.206              EXTRA_CFLAGS="$EXTRA_CFLAGS -DUSE_FLUIDSYNTH_MIDI"
  33.207 -            if test x$enable_music_fluidsynth_shared = xyes && test x$fluidsynth_lib != x; then
  33.208 +            if test x$enable_music_midi_fluidsynth_shared = xyes && test x$fluidsynth_lib != x; then
  33.209                  echo "-- dynamic libfluidsyth -> $fluidsynth_lib"
  33.210                  EXTRA_CFLAGS="$EXTRA_CFLAGS -DFLUIDSYNTH_DYNAMIC=\\\"$fluidsynth_lib\\\""
  33.211              else
  33.212 @@ -411,6 +445,12 @@
  33.213      fi
  33.214  fi
  33.215  
  33.216 +if test x$enable_music_midi_timidity != xyes -a \
  33.217 +        x$use_music_midi_native != xyes -a x$use_music_midi_native != xyes_cpp -a \
  33.218 +        x$have_fluidsynth != xyes; then
  33.219 +	AC_MSG_WARN([MIDI support disabled])
  33.220 +fi
  33.221 +
  33.222  AC_ARG_ENABLE([music-ogg],
  33.223  AC_HELP_STRING([--enable-music-ogg], [enable Ogg Vorbis music [[default=yes]]]),
  33.224                [], [enable_music_ogg=yes])
  33.225 @@ -418,7 +458,7 @@
  33.226  AC_HELP_STRING([--enable-music-ogg-tremor], [enable OGG Vorbis music via libtremor [[default=no]]]),
  33.227                [], enable_music_ogg_tremor=no)
  33.228  AC_ARG_ENABLE([music-ogg-shared],
  33.229 -AC_HELP_STRING([--enable-music-ogg-shared], [dynamically load Ogg Vorbis support [[default=yes]]]),
  33.230 +AC_HELP_STRING([--enable-music-ogg-shared], [dynamically load Ogg Vorbis library [[default=yes]]]),
  33.231                [], [enable_music_ogg_shared=yes])
  33.232  if test x$enable_music_ogg = xyes; then
  33.233      if test x$enable_music_ogg_tremor = xyes; then
  33.234 @@ -490,7 +530,7 @@
  33.235                [], [enable_music_flac=yes])
  33.236  AC_ARG_ENABLE([music-flac-shared],
  33.237  AC_HELP_STRING([--enable-music-flac-shared],
  33.238 -              [dynamically load FLAC support [[default=yes]]]),
  33.239 +              [dynamically load FLAC library [[default=yes]]]),
  33.240                [], [enable_music_flac_shared=yes])
  33.241  if test x$enable_music_flac = xyes; then
  33.242      AC_CHECK_HEADER([FLAC/export.h], [have_flac_export=yes])
  33.243 @@ -544,16 +584,17 @@
  33.244      fi
  33.245  fi
  33.246  
  33.247 -AC_CHECK_HEADERS([signal.h], [EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_SIGNAL_H"])
  33.248 -AC_CHECK_FUNCS(setbuf, [EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_SETBUF"])
  33.249 +AC_ARG_ENABLE(music-mp3,
  33.250 +AC_HELP_STRING([--enable-music-mp3], [enable MP3 music [[default=yes]]]),
  33.251 +              [], enable_music_mp3=yes)
  33.252  
  33.253 -AC_ARG_ENABLE(music-mp3,
  33.254 -AC_HELP_STRING([--enable-music-mp3], [enable MP3 music via smpeg [[default=no]]]),
  33.255 -              [], enable_music_mp3=yes)
  33.256 -AC_ARG_ENABLE([music-mp3-shared],
  33.257 -AC_HELP_STRING([--enable-music-mp3-shared], [dynamically load MP3 support [[default=yes]]]),
  33.258 -              [], [enable_music_mp3_shared=yes])
  33.259 -if test x$enable_music_mp3 = xyes; then
  33.260 +AC_ARG_ENABLE(music-mp3-smpeg,
  33.261 +AC_HELP_STRING([--enable-music-mp3-smpeg], [enable MP3 music via smpeg [[default=yes]]]),
  33.262 +              [], enable_music_mp3_smpeg=yes)
  33.263 +AC_ARG_ENABLE([music-mp3-smpeg-shared],
  33.264 +AC_HELP_STRING([--enable-music-mp3-smpeg-shared], [dynamically load smpeg library [[default=yes]]]),
  33.265 +              [], [enable_music_mp3_smpeg_shared=yes])
  33.266 +if test x$enable_music_mp3 = xyes -a x$enable_music_mp3_smpeg = xyes; then
  33.267      SMPEG_VERSION=2.0.0
  33.268      AM_PATH_SMPEG2($SMPEG_VERSION, have_smpeg=yes, have_smpeg=no)
  33.269      if test x$have_smpeg = xyes; then
  33.270 @@ -570,7 +611,7 @@
  33.271          esac
  33.272          SOURCES="$SOURCES $srcdir/*_mp3.c"
  33.273          EXTRA_CFLAGS="$EXTRA_CFLAGS -DMP3_MUSIC $SMPEG_CFLAGS"
  33.274 -        if test x$enable_music_mp3_shared = xyes && test x$smpeg_lib != x; then
  33.275 +        if test x$enable_music_mp3_smpeg_shared = xyes && test x$smpeg_lib != x; then
  33.276              echo "-- dynamic libsmpeg -> $smpeg_lib"
  33.277              EXTRA_CFLAGS="$EXTRA_CFLAGS -DMP3_DYNAMIC=\\\"$smpeg_lib\\\""
  33.278          else
  33.279 @@ -584,7 +625,7 @@
  33.280  AC_ARG_ENABLE(music-mp3-mad-gpl,
  33.281  AC_HELP_STRING([--enable-music-mp3-mad-gpl], [enable MP3 music via libmad GPL code [[default=no]]]),
  33.282                    [], [enable_music_mp3_mad_gpl=no])
  33.283 -if test x$enable_music_mp3_mad_gpl = xyes; then
  33.284 +if test x$enable_music_mp3 = xyes -a x$enable_music_mp3_mad_gpl = xyes; then
  33.285      AC_MSG_CHECKING(for libmad headers)
  33.286      have_libmad=no
  33.287      AC_TRY_COMPILE([
    34.1 --- a/debian/rules	Sat Jun 08 17:35:37 2013 -0700
    34.2 +++ b/debian/rules	Sun Jun 09 16:22:42 2013 -0700
    34.3 @@ -10,17 +10,21 @@
    34.4  confflags = --enable-music-cmd
    34.5  
    34.6  # explicitly enable/disable all supported sound
    34.7 -# MP3 support is disabled by default because SMPEG isn't updated for SDL 2.0 and libmad is GPL and not allowed to link with commercial closed-source programs
    34.8 -confflags += --disable-music-mp3
    34.9 +# For mp3 support, libmad disabled by default because it is GPL and not allowed to link with commercial closed-source programs
   34.10 +# For mod support, modplug is the default because it is in the public domain and used across all platforms.
   34.11 +confflags += --enable-music-mp3
   34.12 +confflags += --enable-music-mp3-smpeg
   34.13  confflags += --disable-music-mp3-mad-gpl
   34.14  confflags += --enable-music-mod
   34.15 -confflags += --enable-music-mod
   34.16 +confflags += --enable-music-mod-modplug
   34.17 +confflags += --disable-music-mod-mikmod
   34.18  confflags += --enable-music-ogg
   34.19  confflags += --enable-music-wave
   34.20  
   34.21  # MIDI: explicitly state that we use (an in-source copy of) timidity
   34.22 -confflags += --enable-music-fluidsynth
   34.23 -confflags += --enable-music-timidity-midi
   34.24 +confflags += --enable-music-midi
   34.25 +confflags += --enable-music-midi-fluidsynth
   34.26 +confflags += --enable-music-midi-timidity
   34.27  
   34.28  # mafm 20111203: removed the "disable shared" support from previous versions, I
   34.29  # couldn't find any reason for it in the changelog
   34.30 @@ -30,10 +34,11 @@
   34.31  # SDL_LoadObject), and dpkg-shlibdeps doesn't seem to generate the needed
   34.32  # dependencies in the binary library package
   34.33  confflags += --disable-music-flac-shared
   34.34 +confflags += --disable-music-ogg-shared
   34.35 +confflags += --disable-music-mp3-smpeg-shared
   34.36 +confflags += --disable-music-mod-mikmod-shared
   34.37 +confflags += --disable-music-mod-modplug-shared
   34.38  confflags += --disable-music-fluidsynth-shared
   34.39 -confflags += --disable-music-mod-shared
   34.40 -confflags += --disable-music-mp3-shared
   34.41 -confflags += --disable-music-ogg-shared
   34.42  
   34.43  %:
   34.44  	dh $@ --with autoreconf --parallel
    35.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    35.2 +++ b/dynamic_modplug.c	Sun Jun 09 16:22:42 2013 -0700
    35.3 @@ -0,0 +1,120 @@
    35.4 +/*
    35.5 +  SDL_mixer:  An audio mixer library based on the SDL library
    35.6 +  Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
    35.7 +
    35.8 +  This software is provided 'as-is', without any express or implied
    35.9 +  warranty.  In no event will the authors be held liable for any damages
   35.10 +  arising from the use of this software.
   35.11 +
   35.12 +  Permission is granted to anyone to use this software for any purpose,
   35.13 +  including commercial applications, and to alter it and redistribute it
   35.14 +  freely, subject to the following restrictions:
   35.15 +
   35.16 +  1. The origin of this software must not be misrepresented; you must not
   35.17 +     claim that you wrote the original software. If you use this software
   35.18 +     in a product, an acknowledgment in the product documentation would be
   35.19 +     appreciated but is not required.
   35.20 +  2. Altered source versions must be plainly marked as such, and must not be
   35.21 +     misrepresented as being the original software.
   35.22 +  3. This notice may not be removed or altered from any source distribution.
   35.23 +*/
   35.24 +
   35.25 +#ifdef MODPLUG_MUSIC
   35.26 +
   35.27 +#include "SDL_loadso.h"
   35.28 +#include "SDL_mixer.h"
   35.29 +#include "dynamic_modplug.h"
   35.30 +
   35.31 +modplug_loader modplug = {
   35.32 +    0, NULL
   35.33 +};
   35.34 +
   35.35 +#ifdef MODPLUG_DYNAMIC
   35.36 +int Mix_InitModPlug()
   35.37 +{
   35.38 +    if ( modplug.loaded == 0 ) {
   35.39 +        modplug.handle = SDL_LoadObject(MODPLUG_DYNAMIC);
   35.40 +        if ( modplug.handle == NULL ) {
   35.41 +            return -1;
   35.42 +        }
   35.43 +
   35.44 +        modplug.ModPlug_Load =
   35.45 +            (ModPlugFile* (*)(const void* data, int size))
   35.46 +            SDL_LoadFunction(modplug.handle, "ModPlug_Load");
   35.47 +
   35.48 +        modplug.ModPlug_Unload =
   35.49 +            (void (*)(ModPlugFile* file))
   35.50 +            SDL_LoadFunction(modplug.handle, "ModPlug_Unload");
   35.51 +
   35.52 +        modplug.ModPlug_Read =
   35.53 +            (int  (*)(ModPlugFile* file, void* buffer, int size))
   35.54 +            SDL_LoadFunction(modplug.handle, "ModPlug_Read");
   35.55 +
   35.56 +        modplug.ModPlug_Seek =
   35.57 +            (void (*)(ModPlugFile* file, int millisecond))
   35.58 +            SDL_LoadFunction(modplug.handle, "ModPlug_Seek");
   35.59 +
   35.60 +        modplug.ModPlug_GetSettings =
   35.61 +            (void (*)(ModPlug_Settings* settings))
   35.62 +            SDL_LoadFunction(modplug.handle, "ModPlug_GetSettings");
   35.63 +
   35.64 +        modplug.ModPlug_SetSettings =
   35.65 +            (void (*)(const ModPlug_Settings* settings))
   35.66 +            SDL_LoadFunction(modplug.handle, "ModPlug_SetSettings");
   35.67 +
   35.68 +        modplug.ModPlug_SetMasterVolume =
   35.69 +            (void (*)(ModPlugFile* file,unsigned int cvol))
   35.70 +            SDL_LoadFunction(modplug.handle, "ModPlug_SetMasterVolume");
   35.71 +    }
   35.72 +    ++modplug.loaded;
   35.73 +
   35.74 +    return 0;
   35.75 +}
   35.76 +void Mix_QuitModPlug()
   35.77 +{
   35.78 +    if ( modplug.loaded == 0 ) {
   35.79 +        return;
   35.80 +    }
   35.81 +    if ( modplug.loaded == 1 ) {
   35.82 +        SDL_UnloadObject(modplug.handle);
   35.83 +    }
   35.84 +    --modplug.loaded;
   35.85 +}
   35.86 +#else
   35.87 +int Mix_InitModPlug()
   35.88 +{
   35.89 +    if ( modplug.loaded == 0 ) {
   35.90 +#ifdef __MACOSX__
   35.91 +        extern ModPlugFile* ModPlug_Load(const void* data, int size) __attribute__((weak_import));
   35.92 +        if ( ModPlug_Load == NULL )
   35.93 +        {
   35.94 +            /* Missing weakly linked framework */
   35.95 +            Mix_SetError("Missing modplug.framework");
   35.96 +            return -1;
   35.97 +        }
   35.98 +#endif // __MACOSX__
   35.99 +
  35.100 +        modplug.ModPlug_Load = ModPlug_Load;
  35.101 +        modplug.ModPlug_Unload = ModPlug_Unload;
  35.102 +        modplug.ModPlug_Read = ModPlug_Read;
  35.103 +        modplug.ModPlug_Seek = ModPlug_Seek;
  35.104 +        modplug.ModPlug_GetSettings = ModPlug_GetSettings;
  35.105 +        modplug.ModPlug_SetSettings = ModPlug_SetSettings;
  35.106 +        modplug.ModPlug_SetMasterVolume = ModPlug_SetMasterVolume;
  35.107 +    }
  35.108 +    ++modplug.loaded;
  35.109 +
  35.110 +    return 0;
  35.111 +}
  35.112 +void Mix_QuitModPlug()
  35.113 +{
  35.114 +    if ( modplug.loaded == 0 ) {
  35.115 +        return;
  35.116 +    }
  35.117 +    if ( modplug.loaded == 1 ) {
  35.118 +    }
  35.119 +    --modplug.loaded;
  35.120 +}
  35.121 +#endif /* MODPLUG_DYNAMIC */
  35.122 +
  35.123 +#endif /* MODPLUG_MUSIC */
    36.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    36.2 +++ b/dynamic_modplug.h	Sun Jun 09 16:22:42 2013 -0700
    36.3 @@ -0,0 +1,44 @@
    36.4 +/*
    36.5 +  SDL_mixer:  An audio mixer library based on the SDL library
    36.6 +  Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
    36.7 +
    36.8 +  This software is provided 'as-is', without any express or implied
    36.9 +  warranty.  In no event will the authors be held liable for any damages
   36.10 +  arising from the use of this software.
   36.11 +
   36.12 +  Permission is granted to anyone to use this software for any purpose,
   36.13 +  including commercial applications, and to alter it and redistribute it
   36.14 +  freely, subject to the following restrictions:
   36.15 +
   36.16 +  1. The origin of this software must not be misrepresented; you must not
   36.17 +     claim that you wrote the original software. If you use this software
   36.18 +     in a product, an acknowledgment in the product documentation would be
   36.19 +     appreciated but is not required.
   36.20 +  2. Altered source versions must be plainly marked as such, and must not be
   36.21 +     misrepresented as being the original software.
   36.22 +  3. This notice may not be removed or altered from any source distribution.
   36.23 +*/
   36.24 +
   36.25 +#ifdef MODPLUG_MUSIC
   36.26 +
   36.27 +#include "modplug.h"
   36.28 +
   36.29 +typedef struct {
   36.30 +    int loaded;
   36.31 +    void *handle;
   36.32 +
   36.33 +    ModPlugFile* (*ModPlug_Load)(const void* data, int size);
   36.34 +    void (*ModPlug_Unload)(ModPlugFile* file);
   36.35 +    int  (*ModPlug_Read)(ModPlugFile* file, void* buffer, int size);
   36.36 +    void (*ModPlug_Seek)(ModPlugFile* file, int millisecond);
   36.37 +    void (*ModPlug_GetSettings)(ModPlug_Settings* settings);
   36.38 +    void (*ModPlug_SetSettings)(const ModPlug_Settings* settings);
   36.39 +    void (*ModPlug_SetMasterVolume)(ModPlugFile* file,unsigned int cvol) ;
   36.40 +} modplug_loader;
   36.41 +
   36.42 +extern modplug_loader modplug;
   36.43 +
   36.44 +#endif /* MODPLUG_MUSIC */
   36.45 +
   36.46 +extern int Mix_InitModPlug();
   36.47 +extern void Mix_QuitModPlug();
    37.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    37.2 +++ b/external/libmodplug-0.8.8.4/AUTHORS	Sun Jun 09 16:22:42 2013 -0700
    37.3 @@ -0,0 +1,22 @@
    37.4 +XMMS plugin:
    37.5 +  Kenton Varda <temporal@gauge3d.org>
    37.6 +  Konstanty Bialkowski <konstanty@ieee.org>
    37.7 +
    37.8 +General Maintainence:
    37.9 +  Konstanty Bialkowski <konstanty@ieee.org>
   37.10 +
   37.11 +Sound Engine:
   37.12 +  Olivier Lapicque <olivierl@jps.net>
   37.13 +
   37.14 +BZip2 support:
   37.15 +  Colin DeVilbiss <crdevilb@mtu.edu>
   37.16 +Spline and Fir resamplers:
   37.17 +  Markus Fick <marf@gmx.net>
   37.18 +Endianness Fixes:
   37.19 +  Adam Goode <adam@evdebs.org>
   37.20 +Endianness Fixes + Implementation of C 24bit,32bit functions:
   37.21 +  Marco Trillo <toad@arsystel.com>
   37.22 +Fixes to AGC/Clipping, Frequency Limit, Other Fixes:
   37.23 +  Alistair John Strachan <s0348365@sms.ed.ac.uk>
   37.24 +AMD64 Fix (long long vs long vs int)
   37.25 +  Tyler Montbriand <tsm@accesscomm.ca>
    38.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    38.2 +++ b/external/libmodplug-0.8.8.4/COPYING	Sun Jun 09 16:22:42 2013 -0700
    38.3 @@ -0,0 +1,1 @@
    38.4 +ModPlug-XMMS and libmodplug are now in the public domain.
    38.5 \ No newline at end of file
    39.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    39.2 +++ b/external/libmodplug-0.8.8.4/ChangeLog	Sun Jun 09 16:22:42 2013 -0700
    39.3 @@ -0,0 +1,296 @@
    39.4 +changes:
    39.5 +date = 21-apr-2009 [Konstanty Bialkowski/OpenMPT/Novell (Stanislav Brabec)]
    39.6 +->file: src/load_amf.cpp
    39.7 +		where: whole file
    39.8 +		what: added const declarations to read only variables
    39.9 +		what: fixed delete function
   39.10 +->file: src/fastmix.cpp
   39.11 +		where: X86_Convert32To24
   39.12 +		what: conversion to 24bit was incorrect
   39.13 +->file: src/load_mdl.cpp
   39.14 +		where: init of m_lpszSongComments
   39.15 +		what: fixed delete function to be array version (Reported by
   39.16 +		David Binderman / Stanislav Brabec)
   39.17 +->file: src/load_pat.cpp
   39.18 +		where: memcpy to .reserved
   39.19 +		what: changed fixed valid of 36 to sizeof(reserved)
   39.20 +		(Reported by Manfred Tremmel / Stanislav Brabec)
   39.21 +date = 20-apr-2009 [Konstanty Bialkowski]
   39.22 +->file: src/load_meb.cpp
   39.23 +		where: LoadMED
   39.24 +		what: fixed integer boundary condition checking code (fixing
   39.25 +		exploit)
   39.26 +		Details of exploit (and creator of test.s3m for exploit)
   39.27 +		http://www.securityfocus.com/bid/30801/info
   39.28 +		http://www.15897.com/blog/post/QianQianJingTing-mod-buffer-overflow-POC.html
   39.29 +->file: src/load_abc.cpp
   39.30 +		where: TestABC
   39.31 +		what: Made ABC detection code more robust
   39.32 +->file: src/load_abc.cpp, sndfile.cpp, snd_fx.cpp
   39.33 +		where: various
   39.34 +		what: change constant variables to explicitly use const
   39.35 +		definition
   39.36 +		(Thanks to Leandro Nini/Diego "Flameeyes" Pettenò)
   39.37 +->file: src/table.cpp -> src/table.h
   39.38 +		where: rename of file
   39.39 +		what: moved tables to seperate file 
   39.40 +		(Thanks to Leandro Nini/Diego "Flameeyes" Pettenò)
   39.41 +
   39.42 +date = 15-apr-2009 [Konstanty Bialkowski]
   39.43 +->file: src/load_abc.cpp
   39.44 +		where: TestABC
   39.45 +		what: made sure obviously binary files do not try to get
   39.46 +		loaded as ABC
   39.47 +		where: abc_addchordname
   39.48 +		what: made sure first argument was const char * (not just char
   39.49 +		*)
   39.50 +->file: src/sndfile.cpp
   39.51 +		where: format conversion routines
   39.52 +		what: made sure (*a++) = func(*a), is executed properly, by
   39.53 +		splitting into two lines
   39.54 +-file: src/libmodplug/sndfile.h
   39.55 +		where: IMixPlugin
   39.56 +		what: made sure there is a virtual destructor (to avoid
   39.57 +		warnings)
   39.58 +->file: src/load_ptm.cpp
   39.59 +		where: mixing routine
   39.60 +		what: bswap32 was used on a uint16_t [2] array, and when gcc
   39.61 +		uses -O2 (or greater) optimization, this may not do what is
   39.62 +		intended.
   39.63 +date = 7-apr-2009 [Konstanty Bialkowski/Anthony Ramine]
   39.64 +-> file: src/load_abc.cpp,load_mid.cpp,load_pat.cpp
   39.65 +		where: whole file(s)
   39.66 +		what: removed use of ULONG, and changed to uint32_t
   39.67 +		where: few functions
   39.68 +		what: removed uint, and replaced with uint32_t
   39.69 +date = 7-apr-2009 [Zed Pobre/Debian]
   39.70 +-> file: src/libmodplug.pc
   39.71 +		where: file.
   39.72 +		what: split Libs into Libs.private
   39.73 +date = 2-nov-2006 [Alec Berryman/CVE-2006-4192]
   39.74 +-> file: src/sndfile.cpp
   39.75 +		where: ReadSample
   39.76 +		what: prevent buffer overflow [as reported in CVE-2006-4192]
   39.77 +date = 2-nov-2006 [Konstanty Bialkowski/Macro Trillo]
   39.78 +-> file: configure.in,config.h,load_abc.cpp,fastmix.cpp
   39.79 +		where: Automake 2.60 used
   39.80 +		what: In order to properly use stdint.h we should make use of the new macros for its detection, on systems with automake 2.59 but where stdint.h is available, this can be removed. (Patch by Macro Trillo)
   39.81 +-> file: src/load_amf.cpp, src/fastmix.cpp
   39.82 +		where: Licensing
   39.83 +		what: all old code was relicensed for public domain, and somehow an old version was included with GPL notices
   39.84 +date = 20-jul-2006 [Peter Grootswagers]
   39.85 
   39.86 +-> file: src/load_abc.cpp
   39.87 
   39.88 +		where: instrument loader functions
   39.89 
   39.90 +		what: replaced with correspondig functions in load_pat.cpp
   39.91 
   39.92 +-> file: src/load_mid.cpp
   39.93 
   39.94 +		where: whole source
   39.95 
   39.96 +		what: new loader for midi files
   39.97 
   39.98 +-> file: src/load_pat.cpp
   39.99 
  39.100 +		where: whole source
  39.101 
  39.102 +		what: new loader for GUS instrument patch files (pat)
  39.103 
  39.104 +-> file: src/load_pat.h
  39.105 
  39.106 +		where: whole source
  39.107 
  39.108 +		what: new header declaring reuseable GUS instrument patch functions (pat)
  39.109 
  39.110 +-> file: README
  39.111 
  39.112 +		where: 2. Features
  39.113 
  39.114 +		what: added description of load_mid.cpp and load_pat.cpp
  39.115 
  39.116 +-> file: src/Makefile.am
  39.117 
  39.118 +		where: libmodplug_la_SOURCES
  39.119 
  39.120 +		what: added load_mid.cpp and load_pat.cpp
  39.121 
  39.122 +		where: libmodpluginclude_HEADERS
  39.123 
  39.124 +		what: added load_pat.h
  39.125 
  39.126 +-> file: src/sndfile.cpp
  39.127 
  39.128 +		where: function CSoundFile::Create()
  39.129 
  39.130 +		what: added call to ReadMID and ReadPAT
  39.131 
  39.132 +-> file: src/libmodplug/sndfile.h
  39.133 
  39.134 +		where: #define
  39.135 
  39.136 +		what: added MOD_TYPE_PAT (MOD_TYPE_MID already there...)
  39.137 
  39.138 +		where: class CSoundFile
  39.139 
  39.140 +		what: added public function members ReadMID, TestMID, ReadPat, TestPAT and PATsample
  39.141 
  39.142 +date = 24-jun-2006 [Peter Grootswagers]
  39.143 
  39.144 +-> file: src/load_abc.cpp
  39.145 
  39.146 +		where: whole source
  39.147 
  39.148 +		what: new loader for abc files
  39.149 +-> file: README
  39.150 +		where: 2. Features
  39.151 +		what: added description of load_abc.cpp
  39.152 +-> file: src/Makefile.am
  39.153 +		where: libmodplug_la_SOURCES
  39.154 +		what: added load_abc.cpp
  39.155 +-> file: src/sndfile.cpp
  39.156 +		where: function CSoundFile::Create()
  39.157 +		what: added call to ReadABC
  39.158 +-> file: src/libmodplug/sndfile.h
  39.159 +		where: #define
  39.160 +		what: added MOD_TYPE_ABC
  39.161 +		where: class CSoundFile
  39.162 +		what: added public function members ReadABC and TestABC
  39.163 +date = 20-mar-2006 [Macro Trillo / "Custom libmodplug project"]
  39.164 +-> file : src/load_s3m.cpp
  39.165 +-> file : src/load_far.cpp
  39.166 +		what: fixed endianness 
  39.167 +date = 20-mar-2006 [Alistair John Strachan]
  39.168 +....
  39.169 +
  39.170 +Many other changes need to be documented here...
  39.171 +
  39.172 +GCC3 fixes, GCC4 fixes, More Archive Types.
  39.173 +	
  39.174 +date = 09-feb-2001 [Markus Fick]
  39.175 +-> file: fastmix.cpp
  39.176 +		where: spline creation, spline macros
  39.177 +		what: added unity gain clamp code, added Quantizer_Bits(shift) preprocessor constants
  39.178 +		where: fir creation, fir macros
  39.179 +		what: - removed x<pi/2 condition in coef creation
  39.180 +		      - added quantizer_bits(shift) preprocessor constants
  39.181 +		      - set default quantizer bits to 15 instead 14 (scale now 32768 instead 16384)
  39.182 +		        there should not occure any overflows during fir response calculation because
  39.183 +		        of the symmetric form of filter and the position of the negative fir coefs
  39.184 +		      - changed final volume calculation for 16bit samples (quality enhancement)
  39.185 +
  39.186 +date = 08-feb-2001 [Markus Fick]
  39.187 +-> file: sndmix.cpp
  39.188 +		where: function ReadNote()
  39.189 +		what: modified behaviour of modplug so that interpolation is only deactivated if
  39.190 +		      a) the user selects "no interpolation"
  39.191 +			  b) linear interpolation is set and speed incr. > 0xff00
  39.192 +			 => if spline or fir is active then we use always interpolation
  39.193 +
  39.194 +-> file: fastmix.cpp
  39.195 +		where: spline macros
  39.196 +		what: changed spline macros to use precalculated tables (way faster)
  39.197 +		where: file
  39.198 +		what: - implemented spline table precalculator
  39.199 +		      - changed fir precalculator + macros (for higher quality and clearer source)
  39.200 +		      - added some comments and documentation
  39.201 +		comment: 
  39.202 +		  - preprocessor constant: SPLINE_FRACBITS
  39.203 +		     ) controls quality/memory usage
  39.204 +			   range is [4..14] inclusive
  39.205 +			   4 = low quality, low memory usage
  39.206 +			   14 = highest quality, highest memory usage (1L<<14)*4*2 bytes
  39.207 +		  - preprocessor constant: WFIR_FRACBITS
  39.208 +		     ) controls quality/memory usage
  39.209 +			   range is [4..12] inclusive
  39.210 +			   4 = low quality, low mu
  39.211 +			   12 = highest quality, highest memory usage ((1L<<(12+1))+1)*8*2 bytes
  39.212 +
  39.213 +date = 07-feb-2001 [Markus Fick]
  39.214 +-> file: fastmix.cpp
  39.215 +		where: spline macros
  39.216 +		what: fixed error in coef calculation
  39.217 +
  39.218 +date = 07-feb-2001 [Markus Fick]
  39.219 +-> file: sndfile.h
  39.220 +		where: class definition of soundfile 
  39.221 +		what: removed InitFIR + DoneFIR function prototypes
  39.222 +-> file: sndfile.cpp
  39.223 +		function:CSoundFile::CSoundFile()
  39.224 +		what: [modify] removed call to CSoundFile::InitFIRMixer( )
  39.225 +
  39.226 +		function:CSoundFile::~CSoundFile()
  39.227 +		what: [modify] removed call to CSoundFile::DoneFIRMixer( )
  39.228 +-> file: fastmix.cpp
  39.229 +		where: spline macros
  39.230 +		what: changed formula + added some guard bits to calculation
  39.231 +
  39.232 +		where: fir macros + implementation
  39.233 +		what: - moved CSoundfile::FIR funtions to CzFIR (single instance sfir)
  39.234 +		      - changed fir macros to support CzFIR class
  39.235 +
  39.236 +date = 06-feb-2001 [Markus Fick]
  39.237 +-> file: fastmix.cpp
  39.238 +         where: macros
  39.239 +		 what: - removed fir filter with coef interpolation
  39.240 +		       - add spline interpolation
  39.241 +			RM: now modplug->select( SPLINE ) selects spline and
  39.242 +			        modplug->select( POLYPHASE ) selects 8tap fir filter
  39.243 +
  39.244 +date = 05-feb-2001 [Markus Fick]
  39.245 +-> file: fastmix.cpp
  39.246 +         where: macros + filter order
  39.247 +         what: [modify] changed filter order to 8 instead of 10
  39.248 +
  39.249 +-> file: fastmix.cpp
  39.250 +         what: new macros+switch for fir-interpolator with coef interpolation
  39.251 +
  39.252 +date = 04-feb-2001 [Markus Fick]
  39.253 +
  39.254 +-> file: sndfile.h
  39.255 +	 where: class CSoundFile (bottom)
  39.256 +	 what: [add] methods for FIR mixer support
  39.257 +	             1. int InitFIRInterpolator( );
  39.258 +				 2. int DoneFIRInterpolator( );
  39.259 +
  39.260 +-> file: sndfile.cpp
  39.261 +     function:CSoundFile::CSoundFile()
  39.262 +	 what: [modify] add call to CSoundFile::InitFIRMixer( )
  39.263 +	 
  39.264 +	 function:CSoundFile::~CSoundFile()
  39.265 +	 what: [modify] add call to CSoundFile::DoneFIRMixer( )
  39.266 +
  39.267 +-> file:  fastmix.cpp
  39.268 +	 new include: <math.h>
  39.269 +		why: need it for fir-coef calculation
  39.270 +     new function: CSoundFile::InitFIRMixer( ) // initializes fir filter lookup (if necessary)
  39.271 +	 new function: CSoundFile::DoneFIRMixer( ) // decrements ReferenceCounter (for static vars) and deinitializes fir struct (if possible).
  39.272 +	 new defs:
  39.273 +		#define FIRCPWBN 10							// log2 of number of precalculated wings (-(1L<<FIRCPWBN)..(1L<<FIRCPWBN))
  39.274 +		#define FIRLOPOSSHIFT (16-(FIRCPWBN+1))		// shift for lopos of sampleposition -> (16 - FIRCPWBN - 1)
  39.275 +		#define FIRLEN 9							// number(-1) of multiplications per sample
  39.276 +		#define FIRCUT 0.90f						// cutoff of filter
  39.277 +		#define MIXNDX_FIRMIXERSRC  0x20			// src-type for firfilter
  39.278 +	 new vars:
  39.279 +		static signed short *cFirLut;				// lulines
  39.280 +		static int bFirInitialized	= 0;			// initialized?
  39.281 +		static int nFirOrder		= FIRLEN;		// order (modplug has 4smps pre/post extension, so limit this to 9)
  39.282 +		static float nFirFC			= FIRCUT;		// cutoff (normalized to pi/2)
  39.283 +		static int nFirCpw			= (1L<<FIRCPWBN);	// number of precalculted filter lines
  39.284 +		static int nFirUsers		= 0;			// reference counter
  39.285 +	 new macros:
  39.286 +		#define SNDMIX_GETMONOVOL8FIRFILTER
  39.287 +		#define SNDMIX_GETMONOVOL16FIRFILTER
  39.288 +		#define SNDMIX_GETSTEREOVOL8FIRFILTER
  39.289 +		#define SNDMIX_GETSTEREOVOL16FIRFILTER
  39.290 +	new mixer interface macros:
  39.291 +		BEGIN_MIX_INTERFACE(Mono8BitFirFilterMix)
  39.292 +		BEGIN_MIX_INTERFACE(Mono16BitFirFilterMix)
  39.293 +		BEGIN_RAMPMIX_INTERFACE(Mono8BitFirFilterRampMix)
  39.294 +		BEGIN_RAMPMIX_INTERFACE(Mono16BitFirFilterRampMix)
  39.295 +		BEGIN_MIX_INTERFACE(FastMono8BitFirFilterMix)
  39.296 +		BEGIN_MIX_INTERFACE(FastMono16BitFirFilterMix)
  39.297 +		BEGIN_FASTRAMPMIX_INTERFACE(FastMono8BitFirFilterRampMix)
  39.298 +		BEGIN_FASTRAMPMIX_INTERFACE(FastMono16BitFirFilterRampMix)
  39.299 +		BEGIN_MIX_INTERFACE(Stereo8BitFirFilterMix)
  39.300 +		BEGIN_MIX_INTERFACE(Stereo16BitFirFilterMix)
  39.301 +		BEGIN_RAMPMIX_INTERFACE(Stereo8BitFirFilterRampMix)
  39.302 +		BEGIN_RAMPMIX_INTERFACE(Stereo16BitFirFilterRampMix)
  39.303 +		BEGIN_MIX_FLT_INTERFACE(FilterMono8BitFirFilterMix)
  39.304 +		BEGIN_MIX_FLT_INTERFACE(FilterMono16BitFirFilterMix)
  39.305 +		BEGIN_RAMPMIX_FLT_INTERFACE(FilterMono8BitFirFilterRampMix)
  39.306 +		BEGIN_RAMPMIX_FLT_INTERFACE(FilterMono16BitFirFilterRampMix)
  39.307 +		BEGIN_MIX_STFLT_INTERFACE(FilterStereo8BitFirFilterMix)
  39.308 +		BEGIN_MIX_STFLT_INTERFACE(FilterStereo16BitFirFilterMix)
  39.309 +		BEGIN_RAMPMIX_STFLT_INTERFACE(FilterStereo8BitFirFilterRampMix)
  39.310 +		BEGIN_RAMPMIX_STFLT_INTERFACE(FilterStereo16BitFirFilterRampMix)
  39.311 +	modified:
  39.312 +		const LPMIXINTERFACE gpMixFunctionTable[2*2*16] // to hold new fir mixer interface
  39.313 +		const LPMIXINTERFACE gpFastMixFunctionTable[2*2*16] // to hold new fir mixer interface
  39.314 +		functioN: UINT CSoundFile::CreateStereoMix(int count)
  39.315 +			new: 
  39.316 +				if (!(pChannel->dwFlags & CHN_NOIDO))
  39.317 +				{
  39.318 +					// use hq-fir mixer?
  39.319 +					if( ((gdwSoundSetup & (SNDMIX_HQRESAMPLER|SNDMIX_ULTRAHQSRCMODE)) == (SNDMIX_HQRESAMPLER|SNDMIX_ULTRAHQSRCMODE)) ||
  39.320 +						((gdwSoundSetup & (SNDMIX_HQRESAMPLER)) == (SNDMIX_HQRESAMPLER)) )
  39.321 +						nFlags += MIXNDX_FIRMIXERSRC;
  39.322 +					else
  39.323 +						nFlags += MIXNDX_LINEARSRC; // use 
  39.324 +				}
  39.325 +			was:
  39.326 +				if (!(pChannel->dwFlags & CHN_NOIDO))
  39.327 +				{
  39.328 +					nFlags += MIXNDX_LINEARSRC; // use 
  39.329 +				}
  39.330 +
  39.331 +
    40.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    40.2 +++ b/external/libmodplug-0.8.8.4/INSTALL	Sun Jun 09 16:22:42 2013 -0700
    40.3 @@ -0,0 +1,365 @@
    40.4 +Installation Instructions
    40.5 +*************************
    40.6 +
    40.7 +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
    40.8 +2006, 2007, 2008, 2009 Free Software Foundation, Inc.
    40.9 +
   40.10 +   Copying and distribution of this file, with or without modification,
   40.11 +are permitted in any medium without royalty provided the copyright
   40.12 +notice and this notice are preserved.  This file is offered as-is,
   40.13 +without warranty of any kind.
   40.14 +
   40.15 +Basic Installation
   40.16 +==================
   40.17 +
   40.18 +   Briefly, the shell commands `./configure; make; make install' should
   40.19 +configure, build, and install this package.  The following
   40.20 +more-detailed instructions are generic; see the `README' file for
   40.21 +instructions specific to this package.  Some packages provide this
   40.22 +`INSTALL' file but do not implement all of the features documented
   40.23 +below.  The lack of an optional feature in a given package is not
   40.24 +necessarily a bug.  More recommendations for GNU packages can be found
   40.25 +in *note Makefile Conventions: (standards)Makefile Conventions.
   40.26 +
   40.27 +   The `configure' shell script attempts to guess correct values for
   40.28 +various system-dependent variables used during compilation.  It uses
   40.29 +those values to create a `Makefile' in each directory of the package.
   40.30 +It may also create one or more `.h' files containing system-dependent
   40.31 +definitions.  Finally, it creates a shell script `config.status' that
   40.32 +you can run in the future to recreate the current configuration, and a
   40.33 +file `config.log' containing compiler output (useful mainly for
   40.34 +debugging `configure').
   40.35 +
   40.36 +   It can also use an optional file (typically called `config.cache'
   40.37 +and enabled with `--cache-file=config.cache' or simply `-C') that saves
   40.38 +the results of its tests to speed up reconfiguring.  Caching is
   40.39 +disabled by default to prevent problems with accidental use of stale
   40.40 +cache files.
   40.41 +
   40.42 +   If you need to do unusual things to compile the package, please try
   40.43 +to figure out how `configure' could check whether to do them, and mail
   40.44 +diffs or instructions to the address given in the `README' so they can
   40.45 +be considered for the next release.  If you are using the cache, and at
   40.46 +some point `config.cache' contains results you don't want to keep, you
   40.47 +may remove or edit it.
   40.48 +
   40.49 +   The file `configure.ac' (or `configure.in') is used to create
   40.50 +`configure' by a program called `autoconf'.  You need `configure.ac' if
   40.51 +you want to change it or regenerate `configure' using a newer version
   40.52 +of `autoconf'.
   40.53 +
   40.54 +   The simplest way to compile this package is:
   40.55 +
   40.56 +  1. `cd' to the directory containing the package's source code and type
   40.57 +     `./configure' to configure the package for your system.
   40.58 +
   40.59 +     Running `configure' might take a while.  While running, it prints
   40.60 +     some messages telling which features it is checking for.
   40.61 +
   40.62 +  2. Type `make' to compile the package.
   40.63 +
   40.64 +  3. Optionally, type `make check' to run any self-tests that come with
   40.65 +     the package, generally using the just-built uninstalled binaries.
   40.66 +
   40.67 +  4. Type `make install' to install the programs and any data files and
   40.68 +     documentation.  When installing into a prefix owned by root, it is
   40.69 +     recommended that the package be configured and built as a regular
   40.70 +     user, and only the `make install' phase executed with root
   40.71 +     privileges.
   40.72 +
   40.73 +  5. Optionally, type `make installcheck' to repeat any self-tests, but
   40.74 +     this time using the binaries in their final installed location.
   40.75 +     This target does not install anything.  Running this target as a
   40.76 +     regular user, particularly if the prior `make install' required
   40.77 +     root privileges, verifies that the installation completed
   40.78 +     correctly.
   40.79 +
   40.80 +  6. You can remove the program binaries and object files from the
   40.81 +     source code directory by typing `make clean'.  To also remove the
   40.82 +     files that `configure' created (so you can compile the package for
   40.83 +     a different kind of computer), type `make distclean'.  There is
   40.84 +     also a `make maintainer-clean' target, but that is intended mainly
   40.85 +     for the package's developers.  If you use it, you may have to get
   40.86 +     all sorts of other programs in order to regenerate files that came
   40.87 +     with the distribution.
   40.88 +
   40.89 +  7. Often, you can also type `make uninstall' to remove the installed
   40.90 +     files again.  In practice, not all packages have tested that
   40.91 +     uninstallation works correctly, even though it is required by the
   40.92 +     GNU Coding Standards.
   40.93 +
   40.94 +  8. Some packages, particularly those that use Automake, provide `make
   40.95 +     distcheck', which can by used by developers to test that all other
   40.96 +     targets like `make install' and `make uninstall' work correctly.
   40.97 +     This target is generally not run by end users.
   40.98 +
   40.99 +Compilers and Options
  40.100 +=====================
  40.101 +
  40.102 +   Some systems require unusual options for compilation or linking that
  40.103 +the `configure' script does not know about.  Run `./configure --help'
  40.104 +for details on some of the pertinent environment variables.
  40.105 +
  40.106 +   You can give `configure' initial values for configuration parameters
  40.107 +by setting variables in the command line or in the environment.  Here
  40.108 +is an example:
  40.109 +
  40.110 +     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
  40.111 +
  40.112 +   *Note Defining Variables::, for more details.
  40.113 +
  40.114 +Compiling For Multiple Architectures
  40.115 +====================================
  40.116 +
  40.117 +   You can compile the package for more than one kind of computer at the
  40.118 +same time, by placing the object files for each architecture in their
  40.119 +own directory.  To do this, you can use GNU `make'.  `cd' to the
  40.120 +directory where you want the object files and executables to go and run
  40.121 +the `configure' script.  `configure' automatically checks for the
  40.122 +source code in the directory that `configure' is in and in `..'.  This
  40.123 +is known as a "VPATH" build.
  40.124 +
  40.125 +   With a non-GNU `make', it is safer to compile the package for one
  40.126 +architecture at a time in the source code directory.  After you have
  40.127 +installed the package for one architecture, use `make distclean' before
  40.128 +reconfiguring for another architecture.
  40.129 +
  40.130 +   On MacOS X 10.5 and later systems, you can create libraries and
  40.131 +executables that work on multiple system types--known as "fat" or
  40.132 +"universal" binaries--by specifying multiple `-arch' options to the
  40.133 +compiler but only a single `-arch' option to the preprocessor.  Like
  40.134 +this:
  40.135 +
  40.136 +     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
  40.137 +                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
  40.138 +                 CPP="gcc -E" CXXCPP="g++ -E"
  40.139 +
  40.140 +   This is not guaranteed to produce working output in all cases, you
  40.141 +may have to build one architecture at a time and combine the results
  40.142 +using the `lipo' tool if you have problems.
  40.143 +
  40.144 +Installation Names
  40.145 +==================
  40.146 +
  40.147 +   By default, `make install' installs the package's commands under
  40.148 +`/usr/local/bin', include files under `/usr/local/include', etc.  You
  40.149 +can specify an installation prefix other than `/usr/local' by giving
  40.150 +`configure' the option `--prefix=PREFIX', where PREFIX must be an
  40.151 +absolute file name.
  40.152 +
  40.153 +   You can specify separate installation prefixes for
  40.154 +architecture-specific files and architecture-independent files.  If you
  40.155 +pass the option `--exec-prefix=PREFIX' to `configure', the package uses
  40.156 +PREFIX as the prefix for installing programs and libraries.
  40.157 +Documentation and other data files still use the regular prefix.
  40.158 +
  40.159 +   In addition, if you use an unusual directory layout you can give
  40.160 +options like `--bindir=DIR' to specify different values for particular
  40.161 +kinds of files.  Run `configure --help' for a list of the directories
  40.162 +you can set and what kinds of files go in them.  In general, the
  40.163 +default for these options is expressed in terms of `${prefix}', so that
  40.164 +specifying just `--prefix' will affect all of the other directory
  40.165 +specifications that were not explicitly provided.
  40.166 +
  40.167 +   The most portable way to affect installation locations is to pass the
  40.168 +correct locations to `configure'; however, many packages provide one or
  40.169 +both of the following shortcuts of passing variable assignments to the
  40.170 +`make install' command line to change installation locations without
  40.171 +having to reconfigure or recompile.
  40.172 +
  40.173 +   The first method involves providing an override variable for each
  40.174 +affected directory.  For example, `make install
  40.175 +prefix=/alternate/directory' will choose an alternate location for all
  40.176 +directory configuration variables that were expressed in terms of
  40.177 +`${prefix}'.  Any directories that were specified during `configure',
  40.178 +but not in terms of `${prefix}', must each be overridden at install
  40.179 +time for the entire installation to be relocated.  The approach of
  40.180 +makefile variable overrides for each directory variable is required by
  40.181 +the GNU Coding Standards, and ideally causes no recompilation.
  40.182 +However, some platforms have known limitations with the semantics of
  40.183 +shared libraries that end up requiring recompilation when using this
  40.184 +method, particularly noticeable in packages that use GNU Libtool.
  40.185 +
  40.186 +   The second method involves providing the `DESTDIR' variable.  For
  40.187 +example, `make install DESTDIR=/alternate/directory' will prepend
  40.188 +`/alternate/directory' before all installation names.  The approach of
  40.189 +`DESTDIR' overrides is not required by the GNU Coding Standards, and
  40.190 +does not work on platforms that have drive letters.  On the other hand,
  40.191 +it does better at avoiding recompilation issues, and works well even
  40.192 +when some directory options were not specified in terms of `${prefix}'
  40.193 +at `configure' time.
  40.194 +
  40.195 +Optional Features
  40.196 +=================
  40.197 +
  40.198 +   If the package supports it, you can cause programs to be installed
  40.199 +with an extra prefix or suffix on their names by giving `configure' the
  40.200 +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
  40.201 +
  40.202 +   Some packages pay attention to `--enable-FEATURE' options to
  40.203 +`configure', where FEATURE indicates an optional part of the package.
  40.204 +They may also pay attention to `--with-PACKAGE' options, where PACKAGE
  40.205 +is something like `gnu-as' or `x' (for the X Window System).  The
  40.206 +`README' should mention any `--enable-' and `--with-' options that the
  40.207 +package recognizes.
  40.208 +
  40.209 +   For packages that use the X Window System, `configure' can usually
  40.210 +find the X include and library files automatically, but if it doesn't,
  40.211 +you can use the `configure' options `--x-includes=DIR' and
  40.212 +`--x-libraries=DIR' to specify their locations.
  40.213 +
  40.214 +   Some packages offer the ability to configure how verbose the
  40.215 +execution of `make' will be.  For these packages, running `./configure
  40.216 +--enable-silent-rules' sets the default to minimal output, which can be
  40.217 +overridden with `make V=1'; while running `./configure
  40.218 +--disable-silent-rules' sets the default to verbose, which can be
  40.219 +overridden with `make V=0'.
  40.220 +
  40.221 +Particular systems
  40.222 +==================
  40.223 +
  40.224 +   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
  40.225 +CC is not installed, it is recommended to use the following options in
  40.226 +order to use an ANSI C compiler:
  40.227 +
  40.228 +     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
  40.229 +
  40.230 +and if that doesn't work, install pre-built binaries of GCC for HP-UX.
  40.231 +
  40.232 +   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
  40.233 +parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
  40.234 +a workaround.  If GNU CC is not installed, it is therefore recommended
  40.235 +to try
  40.236 +
  40.237 +     ./configure CC="cc"
  40.238 +
  40.239 +and if that doesn't work, try
  40.240 +
  40.241 +     ./configure CC="cc -nodtk"
  40.242 +
  40.243 +   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
  40.244 +directory contains several dysfunctional programs; working variants of
  40.245 +these programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
  40.246 +in your `PATH', put it _after_ `/usr/bin'.
  40.247 +
  40.248 +   On Haiku, software installed for all users goes in `/boot/common',
  40.249 +not `/usr/local'.  It is recommended to use the following options:
  40.250 +
  40.251 +     ./configure --prefix=/boot/common
  40.252 +
  40.253 +Specifying the System Type
  40.254 +==========================
  40.255 +
  40.256 +   There may be some features `configure' cannot figure out
  40.257 +automatically, but needs to determine by the type of machine the package
  40.258 +will run on.  Usually, assuming the package is built to be run on the
  40.259 +_same_ architectures, `configure' can figure that out, but if it prints
  40.260 +a message saying it cannot guess the machine type, give it the
  40.261 +`--build=TYPE' option.  TYPE can either be a short name for the system
  40.262 +type, such as `sun4', or a canonical name which has the form:
  40.263 +
  40.264 +     CPU-COMPANY-SYSTEM
  40.265 +
  40.266 +where SYSTEM can have one of these forms:
  40.267 +
  40.268 +     OS
  40.269 +     KERNEL-OS
  40.270 +
  40.271 +   See the file `config.sub' for the possible values of each field.  If
  40.272 +`config.sub' isn't included in this package, then this package doesn't
  40.273 +need to know the machine type.
  40.274 +
  40.275 +   If you are _building_ compiler tools for cross-compiling, you should
  40.276 +use the option `--target=TYPE' to select the type of system they will
  40.277 +produce code for.
  40.278 +
  40.279 +   If you want to _use_ a cross compiler, that generates code for a
  40.280 +platform different from the build platform, you should specify the
  40.281 +"host" platform (i.e., that on which the generated programs will
  40.282 +eventually be run) with `--host=TYPE'.
  40.283 +
  40.284 +Sharing Defaults
  40.285 +================
  40.286 +
  40.287 +   If you want to set default values for `configure' scripts to share,
  40.288 +you can create a site shell script called `config.site' that gives
  40.289 +default values for variables like `CC', `cache_file', and `prefix'.
  40.290 +`configure' looks for `PREFIX/share/config.site' if it exists, then
  40.291 +`PREFIX/etc/config.site' if it exists.  Or, you can set the
  40.292 +`CONFIG_SITE' environment variable to the location of the site script.
  40.293 +A warning: not all `configure' scripts look for a site script.
  40.294 +
  40.295 +Defining Variables
  40.296 +==================
  40.297 +
  40.298 +   Variables not defined in a site shell script can be set in the
  40.299 +environment passed to `configure'.  However, some packages may run
  40.300 +configure again during the build, and the customized values of these
  40.301 +variables may be lost.  In order to avoid this problem, you should set
  40.302 +them in the `configure' command line, using `VAR=value'.  For example:
  40.303 +
  40.304 +     ./configure CC=/usr/local2/bin/gcc
  40.305 +
  40.306 +causes the specified `gcc' to be used as the C compiler (unless it is
  40.307 +overridden in the site shell script).
  40.308 +
  40.309 +Unfortunately, this technique does not work for `CONFIG_SHELL' due to
  40.310 +an Autoconf bug.  Until the bug is fixed you can use this workaround:
  40.311 +
  40.312 +     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
  40.313 +
  40.314 +`configure' Invocation
  40.315 +======================
  40.316 +
  40.317 +   `configure' recognizes the following options to control how it
  40.318 +operates.
  40.319 +
  40.320 +`--help'
  40.321 +`-h'
  40.322 +     Print a summary of all of the options to `configure', and exit.
  40.323 +
  40.324 +`--help=short'
  40.325 +`--help=recursive'
  40.326 +     Print a summary of the options unique to this package's
  40.327 +     `configure', and exit.  The `short' variant lists options used
  40.328 +     only in the top level, while the `recursive' variant lists options
  40.329 +     also present in any nested packages.
  40.330 +
  40.331 +`--version'
  40.332 +`-V'
  40.333 +     Print the version of Autoconf used to generate the `configure'
  40.334 +     script, and exit.
  40.335 +
  40.336 +`--cache-file=FILE'
  40.337 +     Enable the cache: use and save the results of the tests in FILE,
  40.338 +     traditionally `config.cache'.  FILE defaults to `/dev/null' to
  40.339 +     disable caching.
  40.340 +
  40.341 +`--config-cache'
  40.342 +`-C'
  40.343 +     Alias for `--cache-file=config.cache'.
  40.344 +
  40.345 +`--quiet'
  40.346 +`--silent'
  40.347 +`-q'
  40.348 +     Do not print messages saying which checks are being made.  To
  40.349 +     suppress all normal output, redirect it to `/dev/null' (any error
  40.350 +     messages will still be shown).
  40.351 +
  40.352 +`--srcdir=DIR'
  40.353 +     Look for the package's source code in directory DIR.  Usually
  40.354 +     `configure' can determine that directory automatically.
  40.355 +
  40.356 +`--prefix=DIR'
  40.357 +     Use DIR as the installation prefix.  *note Installation Names::
  40.358 +     for more details, including other options available for fine-tuning
  40.359 +     the installation locations.
  40.360 +
  40.361 +`--no-create'
  40.362 +`-n'
  40.363 +     Run the configure checks, but stop before creating any output
  40.364 +     files.
  40.365 +
  40.366 +`configure' also accepts some other, not widely useful, options.  Run
  40.367 +`configure --help' for more details.
  40.368 +
    41.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    41.2 +++ b/external/libmodplug-0.8.8.4/Makefile.am	Sun Jun 09 16:22:42 2013 -0700
    41.3 @@ -0,0 +1,9 @@
    41.4 +SUBDIRS = src
    41.5 +
    41.6 +EXTRA_DIST =	 \
    41.7 +	AUTHORS COPYING ChangeLog \
    41.8 +	INSTALL README TODO
    41.9 +
   41.10 +pkgconfigdir=${libdir}/pkgconfig
   41.11 +pkgconfig_DATA=libmodplug.pc
   41.12 +
    42.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    42.2 +++ b/external/libmodplug-0.8.8.4/Makefile.in	Sun Jun 09 16:22:42 2013 -0700
    42.3 @@ -0,0 +1,767 @@
    42.4 +# Makefile.in generated by automake 1.11.1 from Makefile.am.
    42.5 +# @configure_input@
    42.6 +
    42.7 +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
    42.8 +# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
    42.9 +# Inc.
   42.10 +# This Makefile.in is free software; the Free Software Foundation
   42.11 +# gives unlimited permission to copy and/or distribute it,
   42.12 +# with or without modifications, as long as this notice is preserved.
   42.13 +
   42.14 +# This program is distributed in the hope that it will be useful,
   42.15 +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
   42.16 +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
   42.17 +# PARTICULAR PURPOSE.
   42.18 +
   42.19 +@SET_MAKE@
   42.20 +
   42.21 +VPATH = @srcdir@
   42.22 +pkgdatadir = $(datadir)/@PACKAGE@
   42.23 +pkgincludedir = $(includedir)/@PACKAGE@
   42.24 +pkglibdir = $(libdir)/@PACKAGE@
   42.25 +pkglibexecdir = $(libexecdir)/@PACKAGE@
   42.26 +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
   42.27 +install_sh_DATA = $(install_sh) -c -m 644
   42.28 +install_sh_PROGRAM = $(install_sh) -c
   42.29 +install_sh_SCRIPT = $(install_sh) -c
   42.30 +INSTALL_HEADER = $(INSTALL_DATA)
   42.31 +transform = $(program_transform_name)
   42.32 +NORMAL_INSTALL = :
   42.33 +PRE_INSTALL = :
   42.34 +POST_INSTALL = :
   42.35 +NORMAL_UNINSTALL = :
   42.36 +PRE_UNINSTALL = :
   42.37 +POST_UNINSTALL = :
   42.38 +build_triplet = @build@
   42.39 +host_triplet = @host@
   42.40 +subdir = .
   42.41 +DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
   42.42 +	$(srcdir)/Makefile.in $(srcdir)/libmodplug.pc.in \
   42.43 +	$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
   42.44 +	TODO config.guess config.sub depcomp install-sh ltmain.sh \
   42.45 +	missing
   42.46 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
   42.47 +am__aclocal_m4_deps = $(top_srcdir)/configure.in
   42.48 +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
   42.49 +	$(ACLOCAL_M4)
   42.50 +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
   42.51 + configure.lineno config.status.lineno
   42.52 +mkinstalldirs = $(install_sh) -d
   42.53 +CONFIG_HEADER = $(top_builddir)/src/config.h
   42.54 +CONFIG_CLEAN_FILES = libmodplug.pc
   42.55 +CONFIG_CLEAN_VPATH_FILES =
   42.56 +AM_V_GEN = $(am__v_GEN_$(V))
   42.57 +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
   42.58 +am__v_GEN_0 = @echo "  GEN   " $@;
   42.59 +AM_V_at = $(am__v_at_$(V))
   42.60 +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
   42.61 +am__v_at_0 = @
   42.62 +SOURCES =
   42.63 +DIST_SOURCES =
   42.64 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
   42.65 +	html-recursive info-recursive install-data-recursive \
   42.66 +	install-dvi-recursive install-exec-recursive \
   42.67 +	install-html-recursive install-info-recursive \
   42.68 +	install-pdf-recursive install-ps-recursive install-recursive \
   42.69 +	installcheck-recursive installdirs-recursive pdf-recursive \
   42.70 +	ps-recursive uninstall-recursive
   42.71 +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
   42.72 +am__vpath_adj = case $$p in \
   42.73 +    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
   42.74 +    *) f=$$p;; \
   42.75 +  esac;
   42.76 +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
   42.77 +am__install_max = 40
   42.78 +am__nobase_strip_setup = \
   42.79 +  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
   42.80 +am__nobase_strip = \
   42.81 +  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
   42.82 +am__nobase_list = $(am__nobase_strip_setup); \
   42.83 +  for p in $$list; do echo "$$p $$p"; done | \
   42.84 +  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
   42.85 +  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
   42.86 +    if (++n[$$2] == $(am__install_max)) \
   42.87 +      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
   42.88 +    END { for (dir in files) print dir, files[dir] }'
   42.89 +am__base_list = \
   42.90 +  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   42.91 +  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
   42.92 +am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
   42.93 +DATA = $(pkgconfig_DATA)
   42.94 +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   42.95 +  distclean-recursive maintainer-clean-recursive
   42.96 +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
   42.97 +	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
   42.98 +	distdir dist dist-all distcheck
   42.99 +ETAGS = etags
  42.100 +CTAGS = ctags
  42.101 +DIST_SUBDIRS = $(SUBDIRS)
  42.102 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
  42.103 +distdir = $(PACKAGE)-$(VERSION)
  42.104 +top_distdir = $(distdir)
  42.105 +am__remove_distdir = \
  42.106 +  { test ! -d "$(distdir)" \
  42.107 +    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
  42.108 +         && rm -fr "$(distdir)"; }; }
  42.109 +am__relativize = \
  42.110 +  dir0=`pwd`; \
  42.111 +  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
  42.112 +  sed_rest='s,^[^/]*/*,,'; \
  42.113 +  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
  42.114 +  sed_butlast='s,/*[^/]*$$,,'; \
  42.115 +  while test -n "$$dir1"; do \
  42.116 +    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
  42.117 +    if test "$$first" != "."; then \
  42.118 +      if test "$$first" = ".."; then \
  42.119 +        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
  42.120 +        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
  42.121 +      else \
  42.122 +        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
  42.123 +        if test "$$first2" = "$$first"; then \
  42.124 +          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
  42.125 +        else \
  42.126 +          dir2="../$$dir2"; \
  42.127 +        fi; \
  42.128 +        dir0="$$dir0"/"$$first"; \
  42.129 +      fi; \
  42.130 +    fi; \
  42.131 +    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
  42.132 +  done; \
  42.133 +  reldir="$$dir2"
  42.134 +DIST_ARCHIVES = $(distdir).tar.gz
  42.135 +GZIP_ENV = --best
  42.136 +distuninstallcheck_listfiles = find . -type f -print
  42.137 +distcleancheck_listfiles = find . -type f -print
  42.138 +ACLOCAL = @ACLOCAL@
  42.139 +AMTAR = @AMTAR@
  42.140 +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
  42.141 +AR = @AR@
  42.142 +AUTOCONF = @AUTOCONF@
  42.143 +AUTOHEADER = @AUTOHEADER@
  42.144 +AUTOMAKE = @AUTOMAKE@
  42.145 +AWK = @AWK@
  42.146 +CC = @CC@
  42.147 +CCDEPMODE = @CCDEPMODE@
  42.148 +CFLAGS = @CFLAGS@
  42.149 +CPPFLAGS = @CPPFLAGS@
  42.150 +CXX = @CXX@
  42.151 +CXXCPP = @CXXCPP@
  42.152 +CXXDEPMODE = @CXXDEPMODE@
  42.153 +CXXFLAGS = @CXXFLAGS@
  42.154 +CYGPATH_W = @CYGPATH_W@
  42.155 +DEFS = @DEFS@
  42.156 +DEPDIR = @DEPDIR@
  42.157 +DLLTOOL = @DLLTOOL@
  42.158 +DSYMUTIL = @DSYMUTIL@
  42.159 +DUMPBIN = @DUMPBIN@
  42.160 +ECHO_C = @ECHO_C@
  42.161 +ECHO_N = @ECHO_N@
  42.162 +ECHO_T = @ECHO_T@
  42.163 +EGREP = @EGREP@
  42.164 +EXEEXT = @EXEEXT@
  42.165 +FGREP = @FGREP@
  42.166 +GREP = @GREP@
  42.167 +INSTALL = @INSTALL@
  42.168 +INSTALL_DATA = @INSTALL_DATA@
  42.169 +INSTALL_PROGRAM = @INSTALL_PROGRAM@
  42.170 +INSTALL_SCRIPT = @INSTALL_SCRIPT@
  42.171 +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
  42.172 +LD = @LD@
  42.173 +LDFLAGS = @LDFLAGS@
  42.174 +LIBOBJS = @LIBOBJS@
  42.175 +LIBS = @LIBS@
  42.176 +LIBTOOL = @LIBTOOL@
  42.177 +LIPO = @LIPO@
  42.178 +LN_S = @LN_S@
  42.179 +LTLIBOBJS = @LTLIBOBJS@
  42.180 +LT_LDFLAGS = @LT_LDFLAGS@
  42.181 +MAKEINFO = @MAKEINFO@
  42.182 +MANIFEST_TOOL = @MANIFEST_TOOL@
  42.183 +MKDIR_P = @MKDIR_P@
  42.184 +MODPLUG_LIBRARY_VERSION = @MODPLUG_LIBRARY_VERSION@
  42.185 +NM = @NM@
  42.186 +NMEDIT = @NMEDIT@
  42.187 +OBJDUMP = @OBJDUMP@
  42.188 +OBJEXT = @OBJEXT@
  42.189 +OTOOL = @OTOOL@
  42.190 +OTOOL64 = @OTOOL64@
  42.191 +PACKAGE = @PACKAGE@
  42.192 +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
  42.193 +PACKAGE_NAME = @PACKAGE_NAME@
  42.194 +PACKAGE_STRING = @PACKAGE_STRING@
  42.195 +PACKAGE_TARNAME = @PACKAGE_TARNAME@
  42.196 +PACKAGE_URL = @PACKAGE_URL@
  42.197 +PACKAGE_VERSION = @PACKAGE_VERSION@
  42.198 +PATH_SEPARATOR = @PATH_SEPARATOR@
  42.199 +RANLIB = @RANLIB@
  42.200 +SED = @SED@
  42.201 +SET_MAKE = @SET_MAKE@
  42.202 +SHELL = @SHELL@
  42.203 +STRIP = @STRIP@
  42.204 +VERSION = @VERSION@
  42.205 +abs_builddir = @abs_builddir@
  42.206 +abs_srcdir = @abs_srcdir@
  42.207 +abs_top_builddir = @abs_top_builddir@
  42.208 +abs_top_srcdir = @abs_top_srcdir@
  42.209 +ac_ct_AR = @ac_ct_AR@
  42.210 +ac_ct_CC = @ac_ct_CC@
  42.211 +ac_ct_CXX = @ac_ct_CXX@
  42.212 +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
  42.213 +am__include = @am__include@
  42.214 +am__leading_dot = @am__leading_dot@
  42.215 +am__quote = @am__quote@
  42.216 +am__tar = @am__tar@
  42.217 +am__untar = @am__untar@
  42.218 +bindir = @bindir@
  42.219 +build = @build@
  42.220 +build_alias = @build_alias@
  42.221 +build_cpu = @build_cpu@
  42.222 +build_os = @build_os@
  42.223 +build_vendor = @build_vendor@
  42.224 +builddir = @builddir@
  42.225 +datadir = @datadir@
  42.226 +datarootdir = @datarootdir@
  42.227 +docdir = @docdir@
  42.228 +dvidir = @dvidir@
  42.229 +exec_prefix = @exec_prefix@
  42.230 +host = @host@
  42.231 +host_alias = @host_alias@
  42.232 +host_cpu = @host_cpu@
  42.233 +host_os = @host_os@
  42.234 +host_vendor = @host_vendor@
  42.235 +htmldir = @htmldir@
  42.236 +includedir = @includedir@
  42.237 +infodir = @infodir@
  42.238 +install_sh = @install_sh@
  42.239 +libdir = @libdir@
  42.240 +libexecdir = @libexecdir@
  42.241 +localedir = @localedir@
  42.242 +localstatedir = @localstatedir@
  42.243 +mandir = @mandir@
  42.244 +mkdir_p = @mkdir_p@
  42.245 +oldincludedir = @oldincludedir@
  42.246 +pdfdir = @pdfdir@
  42.247 +prefix = @prefix@
  42.248 +program_transform_name = @program_transform_name@
  42.249 +psdir = @psdir@
  42.250 +sbindir = @sbindir@
  42.251 +sharedstatedir = @sharedstatedir@
  42.252 +srcdir = @srcdir@
  42.253 +sysconfdir = @sysconfdir@
  42.254 +target_alias = @target_alias@
  42.255 +top_build_prefix = @top_build_prefix@
  42.256 +top_builddir = @top_builddir@
  42.257 +top_srcdir = @top_srcdir@
  42.258 +SUBDIRS = src
  42.259 +EXTRA_DIST = \
  42.260 +	AUTHORS COPYING ChangeLog \
  42.261 +	INSTALL README TODO
  42.262 +
  42.263 +pkgconfigdir = ${libdir}/pkgconfig
  42.264 +pkgconfig_DATA = libmodplug.pc
  42.265 +all: all-recursive
  42.266 +
  42.267 +.SUFFIXES:
  42.268 +am--refresh:
  42.269 +	@:
  42.270 +$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
  42.271 +	@for dep in $?; do \
  42.272 +	  case '$(am__configure_deps)' in \
  42.273 +	    *$$dep*) \
  42.274 +	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
  42.275 +	      $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
  42.276 +		&& exit 0; \
  42.277 +	      exit 1;; \
  42.278 +	  esac; \
  42.279 +	done; \
  42.280 +	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
  42.281 +	$(am__cd) $(top_srcdir) && \
  42.282 +	  $(AUTOMAKE) --gnu Makefile
  42.283 +.PRECIOUS: Makefile
  42.284 +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
  42.285 +	@case '$?' in \
  42.286 +	  *config.status*) \
  42.287 +	    echo ' $(SHELL) ./config.status'; \
  42.288 +	    $(SHELL) ./config.status;; \
  42.289 +	  *) \
  42.290 +	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
  42.291 +	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
  42.292 +	esac;
  42.293 +
  42.294 +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
  42.295 +	$(SHELL) ./config.status --recheck
  42.296 +
  42.297 +$(top_srcdir)/configure:  $(am__configure_deps)
  42.298 +	$(am__cd) $(srcdir) && $(AUTOCONF)
  42.299 +$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
  42.300 +	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
  42.301 +$(am__aclocal_m4_deps):
  42.302 +libmodplug.pc: $(top_builddir)/config.status $(srcdir)/libmodplug.pc.in
  42.303 +	cd $(top_builddir) && $(SHELL) ./config.status $@
  42.304 +
  42.305 +mostlyclean-libtool:
  42.306 +	-rm -f *.lo
  42.307 +
  42.308 +clean-libtool:
  42.309 +	-rm -rf .libs _libs
  42.310 +
  42.311 +distclean-libtool:
  42.312 +	-rm -f libtool config.lt
  42.313 +install-pkgconfigDATA: $(pkgconfig_DATA)
  42.314 +	@$(NORMAL_INSTALL)
  42.315 +	test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
  42.316 +	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
  42.317 +	for p in $$list; do \
  42.318 +	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
  42.319 +	  echo "$$d$$p"; \
  42.320 +	done | $(am__base_list) | \
  42.321 +	while read files; do \
  42.322 +	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
  42.323 +	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
  42.324 +	done
  42.325 +
  42.326 +uninstall-pkgconfigDATA:
  42.327 +	@$(NORMAL_UNINSTALL)
  42.328 +	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
  42.329 +	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
  42.330 +	test -n "$$files" || exit 0; \
  42.331 +	echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
  42.332 +	cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
  42.333 +
  42.334 +# This directory's subdirectories are mostly independent; you can cd
  42.335 +# into them and run `make' without going through this Makefile.
  42.336 +# To change the values of `make' variables: instead of editing Makefiles,
  42.337 +# (1) if the variable is set in `config.status', edit `config.status'
  42.338 +#     (which will cause the Makefiles to be regenerated when you run `make');
  42.339 +# (2) otherwise, pass the desired values on the `make' command line.
  42.340 +$(RECURSIVE_TARGETS):
  42.341 +	@fail= failcom='exit 1'; \
  42.342 +	for f in x $$MAKEFLAGS; do \
  42.343 +	  case $$f in \
  42.344 +	    *=* | --[!k]*);; \
  42.345 +	    *k*) failcom='fail=yes';; \
  42.346 +	  esac; \
  42.347 +	done; \
  42.348 +	dot_seen=no; \
  42.349 +	target=`echo $@ | sed s/-recursive//`; \
  42.350 +	list='$(SUBDIRS)'; for subdir in $$list; do \
  42.351 +	  echo "Making $$target in $$subdir"; \
  42.352 +	  if test "$$subdir" = "."; then \
  42.353 +	    dot_seen=yes; \
  42.354 +	    local_target="$$target-am"; \
  42.355 +	  else \
  42.356 +	    local_target="$$target"; \
  42.357 +	  fi; \
  42.358 +	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
  42.359 +	  || eval $$failcom; \
  42.360 +	done; \
  42.361 +	if test "$$dot_seen" = "no"; then \
  42.362 +	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
  42.363 +	fi; test -z "$$fail"
  42.364 +
  42.365 +$(RECURSIVE_CLEAN_TARGETS):
  42.366 +	@fail= failcom='exit 1'; \
  42.367 +	for f in x $$MAKEFLAGS; do \
  42.368 +	  case $$f in \
  42.369 +	    *=* | --[!k]*);; \
  42.370 +	    *k*) failcom='fail=yes';; \
  42.371 +	  esac; \
  42.372 +	done; \
  42.373 +	dot_seen=no; \
  42.374 +	case "$@" in \
  42.375 +	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
  42.376 +	  *) list='$(SUBDIRS)' ;; \
  42.377 +	esac; \
  42.378 +	rev=''; for subdir in $$list; do \
  42.379 +	  if test "$$subdir" = "."; then :; else \
  42.380 +	    rev="$$subdir $$rev"; \
  42.381 +	  fi; \
  42.382 +	done; \
  42.383 +	rev="$$rev ."; \
  42.384 +	target=`echo $@ | sed s/-recursive//`; \
  42.385 +	for subdir in $$rev; do \
  42.386 +	  echo "Making $$target in $$subdir"; \
  42.387 +	  if test "$$subdir" = "."; then \
  42.388 +	    local_target="$$target-am"; \
  42.389 +	  else \
  42.390 +	    local_target="$$target"; \
  42.391 +	  fi; \
  42.392 +	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
  42.393 +	  || eval $$failcom; \
  42.394 +	done && test -z "$$fail"
  42.395 +tags-recursive:
  42.396 +	list='$(SUBDIRS)'; for subdir in $$list; do \
  42.397 +	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
  42.398 +	done
  42.399 +ctags-recursive:
  42.400 +	list='$(SUBDIRS)'; for subdir in $$list; do \
  42.401 +	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
  42.402 +	done
  42.403 +
  42.404 +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
  42.405 +	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
  42.406 +	unique=`for i in $$list; do \
  42.407 +	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
  42.408 +	  done | \
  42.409 +	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
  42.410 +	      END { if (nonempty) { for (i in files) print i; }; }'`; \
  42.411 +	mkid -fID $$unique
  42.412 +tags: TAGS
  42.413 +
  42.414 +TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
  42.415 +		$(TAGS_FILES) $(LISP)
  42.416 +	set x; \
  42.417 +	here=`pwd`; \
  42.418 +	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
  42.419 +	  include_option=--etags-include; \
  42.420 +	  empty_fix=.; \
  42.421 +	else \
  42.422 +	  include_option=--include; \
  42.423 +	  empty_fix=; \
  42.424 +	fi; \
  42.425 +	list='$(SUBDIRS)'; for subdir in $$list; do \
  42.426 +	  if test "$$subdir" = .; then :; else \
  42.427 +	    test ! -f $$subdir/TAGS || \
  42.428 +	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
  42.429 +	  fi; \
  42.430 +	done; \
  42.431 +	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
  42.432 +	unique=`for i in $$list; do \
  42.433 +	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
  42.434 +	  done | \
  42.435 +	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
  42.436 +	      END { if (nonempty) { for (i in files) print i; }; }'`; \
  42.437 +	shift; \
  42.438 +	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
  42.439 +	  test -n "$$unique" || unique=$$empty_fix; \
  42.440 +	  if test $$# -gt 0; then \
  42.441 +	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
  42.442 +	      "$$@" $$unique; \
  42.443 +	  else \
  42.444 +	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
  42.445 +	      $$unique; \
  42.446 +	  fi; \
  42.447 +	fi
  42.448 +ctags: CTAGS
  42.449 +CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
  42.450 +		$(TAGS_FILES) $(LISP)
  42.451 +	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
  42.452 +	unique=`for i in $$list; do \
  42.453 +	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
  42.454 +	  done | \
  42.455 +	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
  42.456 +	      END { if (nonempty) { for (i in files) print i; }; }'`; \
  42.457 +	test -z "$(CTAGS_ARGS)$$unique" \
  42.458 +	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
  42.459 +	     $$unique
  42.460 +
  42.461 +GTAGS:
  42.462 +	here=`$(am__cd) $(top_builddir) && pwd` \
  42.463 +	  && $(am__cd) $(top_srcdir) \
  42.464 +	  && gtags -i $(GTAGS_ARGS) "$$here"
  42.465 +
  42.466 +distclean-tags:
  42.467 +	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
  42.468 +
  42.469 +distdir: $(DISTFILES)
  42.470 +	$(am__remove_distdir)
  42.471 +	test -d "$(distdir)" || mkdir "$(distdir)"
  42.472 +	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
  42.473 +	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
  42.474 +	list='$(DISTFILES)'; \
  42.475 +	  dist_files=`for file in $$list; do echo $$file; done | \
  42.476 +	  sed -e "s|^$$srcdirstrip/||;t" \
  42.477 +	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
  42.478 +	case $$dist_files in \
  42.479 +	  */*) $(MKDIR_P) `echo "$$dist_files" | \
  42.480 +			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
  42.481 +			   sort -u` ;; \
  42.482 +	esac; \
  42.483 +	for file in $$dist_files; do \
  42.484 +	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
  42.485 +	  if test -d $$d/$$file; then \
  42.486 +	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
  42.487 +	    if test -d "$(distdir)/$$file"; then \
  42.488 +	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
  42.489 +	    fi; \
  42.490 +	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
  42.491 +	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
  42.492 +	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
  42.493 +	    fi; \
  42.494 +	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
  42.495 +	  else \
  42.496 +	    test -f "$(distdir)/$$file" \
  42.497 +	    || cp -p $$d/$$file "$(distdir)/$$file" \
  42.498 +	    || exit 1; \
  42.499 +	  fi; \
  42.500 +	done
  42.501 +	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
  42.502 +	  if test "$$subdir" = .; then :; else \
  42.503 +	    test -d "$(distdir)/$$subdir" \
  42.504 +	    || $(MKDIR_P) "$(distdir)/$$subdir" \
  42.505 +	    || exit 1; \
  42.506 +	  fi; \
  42.507 +	done
  42.508 +	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
  42.509 +	  if test "$$subdir" = .; then :; else \
  42.510 +	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
  42.511 +	    $(am__relativize); \
  42.512 +	    new_distdir=$$reldir; \
  42.513 +	    dir1=$$subdir; dir2="$(top_distdir)"; \
  42.514 +	    $(am__relativize); \
  42.515 +	    new_top_distdir=$$reldir; \
  42.516 +	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
  42.517 +	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
  42.518 +	    ($(am__cd) $$subdir && \
  42.519 +	      $(MAKE) $(AM_MAKEFLAGS) \
  42.520 +	        top_distdir="$$new_top_distdir" \
  42.521 +	        distdir="$$new_distdir" \
  42.522 +		am__remove_distdir=: \
  42.523 +		am__skip_length_check=: \
  42.524 +		am__skip_mode_fix=: \
  42.525 +	        distdir) \
  42.526 +	      || exit 1; \
  42.527 +	  fi; \
  42.528 +	done
  42.529 +	-test -n "$(am__skip_mode_fix)" \
  42.530 +	|| find "$(distdir)" -type d ! -perm -755 \
  42.531 +		-exec chmod u+rwx,go+rx {} \; -o \
  42.532 +	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
  42.533 +	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
  42.534 +	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
  42.535 +	|| chmod -R a+r "$(distdir)"
  42.536 +dist-gzip: distdir
  42.537 +	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
  42.538 +	$(am__remove_distdir)
  42.539 +
  42.540 +dist-bzip2: distdir
  42.541 +	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
  42.542 +	$(am__remove_distdir)
  42.543 +
  42.544 +dist-lzma: distdir
  42.545 +	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
  42.546 +	$(am__remove_distdir)
  42.547 +
  42.548 +dist-xz: distdir
  42.549 +	tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
  42.550 +	$(am__remove_distdir)
  42.551 +
  42.552 +dist-tarZ: distdir
  42.553 +	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
  42.554 +	$(am__remove_distdir)
  42.555 +
  42.556 +dist-shar: distdir
  42.557 +	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
  42.558 +	$(am__remove_distdir)
  42.559 +
  42.560 +dist-zip: distdir
  42.561 +	-rm -f $(distdir).zip
  42.562 +	zip -rq $(distdir).zip $(distdir)
  42.563 +	$(am__remove_distdir)
  42.564 +
  42.565 +dist dist-all: distdir
  42.566 +	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
  42.567 +	$(am__remove_distdir)
  42.568 +
  42.569 +# This target untars the dist file and tries a VPATH configuration.  Then
  42.570 +# it guarantees that the distribution is self-contained by making another
  42.571 +# tarfile.
  42.572 +distcheck: dist
  42.573 +	case '$(DIST_ARCHIVES)' in \
  42.574 +	*.tar.gz*) \
  42.575 +	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
  42.576 +	*.tar.bz2*) \
  42.577 +	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
  42.578 +	*.tar.lzma*) \
  42.579 +	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
  42.580 +	*.tar.xz*) \
  42.581 +	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
  42.582 +	*.tar.Z*) \
  42.583 +	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
  42.584 +	*.shar.gz*) \
  42.585 +	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
  42.586 +	*.zip*) \
  42.587 +	  unzip $(distdir).zip ;;\
  42.588 +	esac
  42.589 +	chmod -R a-w $(distdir); chmod a+w $(distdir)
  42.590 +	mkdir $(distdir)/_build
  42.591 +	mkdir $(distdir)/_inst
  42.592 +	chmod a-w $(distdir)
  42.593 +	test -d $(distdir)/_build || exit 0; \
  42.594 +	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
  42.595 +	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
  42.596 +	  && am__cwd=`pwd` \
  42.597 +	  && $(am__cd) $(distdir)/_build \
  42.598 +	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
  42.599 +	    $(DISTCHECK_CONFIGURE_FLAGS) \
  42.600 +	  && $(MAKE) $(AM_MAKEFLAGS) \
  42.601 +	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
  42.602 +	  && $(MAKE) $(AM_MAKEFLAGS) check \
  42.603 +	  && $(MAKE) $(AM_MAKEFLAGS) install \
  42.604 +	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
  42.605 +	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
  42.606 +	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
  42.607 +	        distuninstallcheck \
  42.608 +	  && chmod -R a-w "$$dc_install_base" \
  42.609 +	  && ({ \
  42.610 +	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
  42.611 +	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
  42.612 +	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
  42.613 +	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
  42.614 +	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
  42.615 +	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
  42.616 +	  && rm -rf "$$dc_destdir" \
  42.617 +	  && $(MAKE) $(AM_MAKEFLAGS) dist \
  42.618 +	  && rm -rf $(DIST_ARCHIVES) \
  42.619 +	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
  42.620 +	  && cd "$$am__cwd" \
  42.621 +	  || exit 1
  42.622 +	$(am__remove_distdir)
  42.623 +	@(echo "$(distdir) archives ready for distribution: "; \
  42.624 +	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
  42.625 +	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
  42.626 +distuninstallcheck:
  42.627 +	@$(am__cd) '$(distuninstallcheck_dir)' \
  42.628 +	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
  42.629 +	   || { echo "ERROR: files left after uninstall:" ; \
  42.630 +	        if test -n "$(DESTDIR)"; then \
  42.631 +	          echo "  (check DESTDIR support)"; \
  42.632 +	        fi ; \
  42.633 +	        $(distuninstallcheck_listfiles) ; \
  42.634 +	        exit 1; } >&2
  42.635 +distcleancheck: distclean
  42.636 +	@if test '$(srcdir)' = . ; then \
  42.637 +	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
  42.638 +	  exit 1 ; \
  42.639 +	fi
  42.640 +	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
  42.641 +	  || { echo "ERROR: files left in build directory after distclean:" ; \
  42.642 +	       $(distcleancheck_listfiles) ; \
  42.643 +	       exit 1; } >&2
  42.644 +check-am: all-am
  42.645 +check: check-recursive
  42.646 +all-am: Makefile $(DATA)
  42.647 +installdirs: installdirs-recursive
  42.648 +installdirs-am:
  42.649 +	for dir in "$(DESTDIR)$(pkgconfigdir)"; do \
  42.650 +	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
  42.651 +	done
  42.652 +install: install-recursive
  42.653 +install-exec: install-exec-recursive
  42.654 +install-data: install-data-recursive
  42.655 +uninstall: uninstall-recursive
  42.656 +
  42.657 +install-am: all-am
  42.658 +	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
  42.659 +
  42.660 +installcheck: installcheck-recursive
  42.661 +install-strip:
  42.662 +	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
  42.663 +	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
  42.664 +	  `test -z '$(STRIP)' || \
  42.665 +	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
  42.666 +mostlyclean-generic:
  42.667 +
  42.668 +clean-generic:
  42.669 +
  42.670 +distclean-generic:
  42.671 +	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
  42.672 +	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
  42.673 +
  42.674 +maintainer-clean-generic:
  42.675 +	@echo "This command is intended for maintainers to use"
  42.676 +	@echo "it deletes files that may require special tools to rebuild."
  42.677 +clean: clean-recursive
  42.678 +
  42.679 +clean-am: clean-generic clean-libtool mostlyclean-am
  42.680 +
  42.681 +distclean: distclean-recursive
  42.682 +	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
  42.683 +	-rm -f Makefile
  42.684 +distclean-am: clean-am distclean-generic distclean-libtool \
  42.685 +	distclean-tags
  42.686 +
  42.687 +dvi: dvi-recursive
  42.688 +
  42.689 +dvi-am:
  42.690 +
  42.691 +html: html-recursive
  42.692 +
  42.693 +html-am:
  42.694 +
  42.695 +info: info-recursive
  42.696 +
  42.697 +info-am:
  42.698 +
  42.699 +install-data-am: install-pkgconfigDATA
  42.700 +
  42.701 +install-dvi: install-dvi-recursive
  42.702 +
  42.703 +install-dvi-am:
  42.704 +
  42.705 +install-exec-am:
  42.706 +
  42.707 +install-html: install-html-recursive
  42.708 +
  42.709 +install-html-am:
  42.710 +
  42.711 +install-info: install-info-recursive
  42.712 +
  42.713 +install-info-am:
  42.714 +
  42.715 +install-man:
  42.716 +
  42.717 +install-pdf: install-pdf-recursive
  42.718 +
  42.719 +install-pdf-am:
  42.720 +
  42.721 +install-ps: install-ps-recursive
  42.722 +
  42.723 +install-ps-am:
  42.724 +
  42.725 +installcheck-am:
  42.726 +
  42.727 +maintainer-clean: maintainer-clean-recursive
  42.728 +	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
  42.729 +	-rm -rf $(top_srcdir)/autom4te.cache
  42.730 +	-rm -f Makefile
  42.731 +maintainer-clean-am: distclean-am maintainer-clean-generic
  42.732 +
  42.733 +mostlyclean: mostlyclean-recursive
  42.734 +
  42.735 +mostlyclean-am: mostlyclean-generic mostlyclean-libtool
  42.736 +
  42.737 +pdf: pdf-recursive
  42.738 +
  42.739 +pdf-am:
  42.740 +
  42.741 +ps: ps-recursive
  42.742 +
  42.743 +ps-am:
  42.744 +
  42.745 +uninstall-am: uninstall-pkgconfigDATA
  42.746 +
  42.747 +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
  42.748 +	install-am install-strip tags-recursive
  42.749 +
  42.750 +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
  42.751 +	all all-am am--refresh check check-am clean clean-generic \
  42.752 +	clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
  42.753 +	dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
  42.754 +	distcheck distclean distclean-generic distclean-libtool \
  42.755 +	distclean-tags distcleancheck distdir distuninstallcheck dvi \
  42.756 +	dvi-am html html-am info info-am install install-am \
  42.757 +	install-data install-data-am install-dvi install-dvi-am \
  42.758 +	install-exec install-exec-am install-html install-html-am \
  42.759 +	install-info install-info-am install-man install-pdf \
  42.760 +	install-pdf-am install-pkgconfigDATA install-ps install-ps-am \
  42.761 +	install-strip installcheck installcheck-am installdirs \
  42.762 +	installdirs-am maintainer-clean maintainer-clean-generic \
  42.763 +	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
  42.764 +	ps ps-am tags tags-recursive uninstall uninstall-am \
  42.765 +	uninstall-pkgconfigDATA
  42.766 +
  42.767 +
  42.768 +# Tell versions [3.59,3.63) of GNU make to not export all variables.
  42.769 +# Otherwise a system limit (for SysV at least) may be exceeded.
  42.770 +.NOEXPORT:
    43.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    43.2 +++ b/external/libmodplug-0.8.8.4/NEWS	Sun Jun 09 16:22:42 2013 -0700
    43.3 @@ -0,0 +1,6 @@
    43.4 +Konstanty Bialkowski <konstanty@ieee.org> Tue Apr  7 15:00:00 AEST 2009
    43.5 +	New release of small fixes from contributers and downstream distributions. (Package config Libs.private addin (from Debian)), usage of uint32_t vs uint for load_abc.cpp,load_mid.cpp,load_pat.cpp.
    43.6 +
    43.7 +Konstanty Bialkowski <konstanty@ieee.org> Mon Mar 20 10:00:00 AEST 2006
    43.8 +	New Release based on fixes contributed since last release.
    43.9 +	
    44.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    44.2 +++ b/external/libmodplug-0.8.8.4/README	Sun Jun 09 16:22:42 2013 -0700
    44.3 @@ -0,0 +1,233 @@
    44.4 +Modplug Plugin for XMMS v2.0 / libmodplug v0.8.5
    44.5 + Based on the ModPlug sound engine by Olivier Lapicque <olivierl@jps.net>
    44.6 + XMMS plugin by Kenton Varda <temporal@gauge3d.org>
    44.7 + Maintainer is now Konstanty Bialkowski <konstanty@ieee.org>
    44.8 +
    44.9 +Olivier Lapicque, author of Modplug, which is arguably the best quality
   44.10 +MOD-playing software available, has placed his sound rendering code in the
   44.11 +public domain.  This library and plugin is based on that code.
   44.12 +
   44.13 +For more information on libmodplug, the library for decoding mod-like music
   44.14 +formats, see libmodplug/README.
   44.15 +
   44.16 +Contents
   44.17 +--------
   44.18 + 1. Requirements
   44.19 + 2. Features
   44.20 + 3. Options
   44.21 + 4. Troubleshooting
   44.22 +
   44.23 +---------------
   44.24 +1. Requirements
   44.25 +---------------
   44.26 +- POSIX OS (Linux or other unix*)
   44.27 +- XMMS 1.0.0 or higher (only for modplug-xmms plugin).
   44.28 +
   44.29 +* This library is only guaranteed to work on Linux.  I have received
   44.30 +  conflicting reports on whether or not it will work on Solaris x86.
   44.31 +  One person reported that the plugin compiled fine with the
   44.32 +  "-fpermissive" compiler flag, which I have added.  Others had far
   44.33 +  more trouble.  Note that a recent change to the library should allow
   44.34 +  it to work on PPC and other big-endian systems.
   44.35 +
   44.36 +* Under linux there is also modplugplay contributed, which allows command
   44.37 + line playing of mod files under Linux.
   44.38 +
   44.39 +-----------
   44.40 +2. Features
   44.41 +-----------
   44.42 +- Plays 22 different mod formats, including:
   44.43 +    MOD, S3M, XM, IT, 669, AMF (both of them), AMS, DBM, DMF, DSM, FAR,
   44.44 +    MDL, MED, MTM, OKT, PTM, STM, ULT, UMX, MT2, PSM
   44.45 +- Plays zip, rar, gzip, and bzip2 compressed mods.  The following
   44.46 +    extensions are recognized:
   44.47 +    zip:  MDZ,  S3Z,  XMZ,  ITZ
   44.48 +    rar:  MDR,  S3R,  XMR,  ITR
   44.49 +    gzip: MDGZ, S3GZ, XMGZ, ITGZ
   44.50 +   You can also load plain old ZIP, RAR, and GZ files.  If ModPlug finds
   44.51 +   a mod in them, it will play it.
   44.52 +   Note: To play these formats, you need to have the associated
   44.53 +    decompression utilities (unzip, gunzip, unrar) installed.
   44.54 +   Note(2): The format of the mod is NOT determined from the extension on
   44.55 +    compressed mods.  For example, if you zipped a UMX mod and gave it the
   44.56 +    extension MDZ, it would work fine.
   44.57 +- plays timidity's GUS patch files (*.pat):
   44.58 +   a multi sample pat file with n samples can be played with a Frere Jacques 
   44.59 +   canon with n voices.
   44.60 +- plays all types of MIDI files (*.mid):
   44.61 +   uses the timidity .pat files for samples (when available)
   44.62 +   recognizes environment variables:
   44.63 +
   44.64 +     MMPAT_PATH_TO_CFG	set to the directory where the file "timidity.cfg" and
   44.65 +      the subdirectory "instruments" can be found,
   44.66 +       default: "/usr/local/share/timidity".
   44.67 +      MMMID_SPEED for experimenting with the mod speed (1 thru 9)
   44.68 +      MMMID_VERBOSE for feedback on the conversion process
   44.69 +      MMMID_DEBUG for sake of completeness, only useful for maintainers
   44.70 +
   44.71 +- plays textfiles written in the ABC music notation (*.abc):
   44.72 +   uses the timidity .pat files for samples (when available)
   44.73 +   recognizes environment variables:
   44.74 +
   44.75 +      MMPAT_PATH_TO_CFG	set to the directory where the file "timidity.cfg" and
   44.76 +       the subdirectory "instruments" can be found,
   44.77 +       default: "/usr/local/share/timidity".
   44.78 +
   44.79 +      MMABC_NO_RANDOM_PICK when not set and the abc file contains multiple songs
   44.80 +       (X:n) the first song to be played will be picked at random another click 
   44.81 +       on the play button advances to the next
   44.82 +       song in the file (or the first when the last song has been
   44.83 +       played), when set it can be 0 (zero) or not numeric
   44.84 +       to let it play all songs in the file, a positive number n to
   44.85 +       let it play the n-th song in the file, a negative number -n to
   44.86 +       let it play the n-th song in the file and advancing to the next
   44.87 +       song when the play button is clicked.
   44.88 +
   44.89 +      MMABC_DUMPTRACKS when set it gives diagnostic information on stdout, 
   44.90 +       values can be:
   44.91 +
   44.92 +        all - every event is printed
   44.93 +        nonotes - only the control events (looping, breaks etc.) are printed
   44.94 +           any other value prints the control events and every note event
   44.95 +           immediately succeeding the control events.
   44.96 +- Slightly better sound quality than Mikmod.  Vastly superior quality
   44.97 +   over Winamp.
   44.98 +- All XMMS calls are supported exept for the band gains on the
   44.99 +   equalizer.  The preamp is supported, but MOD music is not anywhere
  44.100 +   near as cheap to equalize as MP3.  Thus, equalization does is not
  44.101 +   supported in this version.  However, a variable bass boost option
  44.102 +   is available in the configuration dialog (see below).
  44.103 +- Tons of playback options (see below).
  44.104 +
  44.105 +----------
  44.106 +3. Options
  44.107 +----------
  44.108 +All of the following items are configurable from the plugin
  44.109 +configuration dialog box.
  44.110 +
  44.111 +Sampling rate: Higher is better.  Note that the sound is rendered at a
  44.112 + higher sampling rate and converted down to increase quality.
  44.113 +
  44.114 +Bits per sample: 8-bit or 16-bit sound.  Note that all computations are
  44.115 + done at 32-bit and converted down to the sampling rate you specify.
  44.116 +
  44.117 +Channels: mono/stereo.  Note that all computations are done in stereo.
  44.118 + If you choose mono, the channels will be mixed.
  44.119 +
  44.120 +Resampling: Method used to convert samples to different sampling rates.
  44.121 + "Nearest" is the fastest setting (but sounds terrible), while
  44.122 + "8-tap fir" is the best-quality setting.
  44.123 +
  44.124 +Noise Reduction: Reduces noise. :)
  44.125 +
  44.126 +Fast Playlist Info: When this option is on, names of songs in your
  44.127 + playlist will load considerably faster, but song lengths will not be
  44.128 + shown and only MOD, S3M, XM, and IT formats will have their names shown.
  44.129 + Don't worry, though, because all the data which is skipped will still be
  44.130 + loaded when you actually play the song.  This should probably always be
  44.131 + on.
  44.132 +
  44.133 +Reverb: A nice reverb effect.  The depth and delay of the reverb can be
  44.134 + tuned to your liking using the sliders.
  44.135 +
  44.136 +Bass boost: Variable bass boost effect.  The "range" slider controls the
  44.137 + frequency range of the bass boost.  If you increase this value, higher
  44.138 + frequencies will be boosted, but the overall volume increase will be
  44.139 + less.  (you can compensate by using the volume slider:)
  44.140 +
  44.141 +Surround: Dolby Pro-Logic surround effect.  Depth and delay can be fine
  44.142 + tuned.
  44.143 +
  44.144 +Preamp: A global volume boost.  Note that setting the preamp too high
  44.145 + will cause clipping (nasty clicks and pops).
  44.146 +
  44.147 +Looping: Some mods have loops built-in.  Normally, these loops are
  44.148 + ignored because otherwise the same mod would play forever.  However,
  44.149 + you can choose to respect the loops, or even set a number of times to
  44.150 + follow a loop.
  44.151 +
  44.152 +------------------
  44.153 +4. Troubleshooting
  44.154 +------------------
  44.155 +
  44.156 +Problem:
  44.157 + None of the config options seem to have any affect on the sound quality.
  44.158 +
  44.159 +Possible cause:
  44.160 + You did not disable MikMod, so mods are being played by it rather than
  44.161 + by ModPlug.
  44.162 +
  44.163 +Solution:
  44.164 + Disable MikMod in the XMMS input plugins configuration dialog.
  44.165 +
  44.166 +Alternative cause:
  44.167 + You are not playing a mod-like file.  ModPlug only plays mod-like file
  44.168 + formats, and has no affect on mp3's or other non-mod formats.  (Note:
  44.169 + Yes, I have actually had people e-mail me with this problem.)
  44.170 +
  44.171 +Solution:
  44.172 + Download some mods.  You can start at <http://www.traxinspace.org>.
  44.173 +
  44.174 +
  44.175 +Problem:
  44.176 + Some of my files load up, but show garbled info in the playlist and/or
  44.177 + don't play correctly.
  44.178 +
  44.179 +Possible cause:
  44.180 + The mod is in a different format than its file format suggests.
  44.181 + Modplug-XMMS uses a combination of file extension and contents to figure
  44.182 + out what format a mod is in, and can be thrown off if a mod is
  44.183 + incorrectly labeled.
  44.184 +
  44.185 +Solution:
  44.186 + Turning off "fast info" in the configuration may fix the problem.  This
  44.187 + will cause Modplug-XMMS to detect all basic mod types by content, but
  44.188 + archive types will still be detected by extension.  If this doesn't
  44.189 + solve the problem, then you probably have files which are actually
  44.190 + compressed archives but are not labeled as such.  For example, you may
  44.191 + have a file "aws_anew.xm" which is actually a ZIP archive.  You will
  44.192 + have to either unzip these files or rename them to have an extension
  44.193 + associated with their type.  In the case of a ZIP, you can use any of
  44.194 + the extensions "ZIP, MDZ, S3Z, XMZ, ITZ".  (Note that these five types
  44.195 + are all treated exactly the same -- the actual format of the mod is
  44.196 + detected by contents.)
  44.197 +
  44.198 +
  44.199 +Problem:
  44.200 + Everything appears to be working, but no sound is being generated.
  44.201 + MP3's play just fine.
  44.202 +
  44.203 +Possible cause:
  44.204 + Modplug has a relatively low default volume, and you may just not be
  44.205 + hearing it.  (Note:  Yes, more that one person has e-mailed me with
  44.206 + this problem.)
  44.207 +
  44.208 +Solution:
  44.209 + Turn up your volume.  You may wish to do this via the "preamp"
  44.210 + setting in the ModPlug configuration.  This way, you won't have to
  44.211 + turn down your volume again when you play an MP3.
  44.212 +
  44.213 +
  44.214 +Problem:
  44.215 + You have a mod which is rendered incorrectly by ModPlug-XMMS.
  44.216 +
  44.217 +Possible cause:
  44.218 + This could be our fault. :)
  44.219 +
  44.220 +Solution:
  44.221 + First, test the mod using the Windows version of ModPlug, if you can.
  44.222 + If it sounds wrong there, then send the mod and a bug report to
  44.223 + Olivier Lapicque <olivierl@jps.net>.  If the mod plays correctly in
  44.224 + Windows, however, then the bug is my fault.  In that case, e-mail
  44.225 + me (Konstanty) <konstanty@ieee.org>. (previously Kenton Varda at 
  44.226 + <temporal@gauge3d.org>).
  44.227 +
  44.228 +
  44.229 +Problem:
  44.230 + I have a problem which is not listed here, or an idea for a cool
  44.231 + feature.
  44.232 +
  44.233 +Solution:
  44.234 + E-mail me (Konstanty) at <konstanty@ieee.org>.  I would be
  44.235 + happy to hear any suggestions or problems you have.
  44.236 +
    45.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    45.2 +++ b/external/libmodplug-0.8.8.4/TODO	Sun Jun 09 16:22:42 2013 -0700
    45.3 @@ -0,0 +1,2 @@
    45.4 +Fix and check endian-ness issues.
    45.5 +Add looping flag to sound file / API function for this.
    46.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    46.2 +++ b/external/libmodplug-0.8.8.4/aclocal.m4	Sun Jun 09 16:22:42 2013 -0700
    46.3 @@ -0,0 +1,9409 @@
    46.4 +# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
    46.5 +
    46.6 +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
    46.7 +# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
    46.8 +# This file is free software; the Free Software Foundation
    46.9 +# gives unlimited permission to copy and/or distribute it,
   46.10 +# with or without modifications, as long as this notice is preserved.
   46.11 +
   46.12 +# This program is distributed in the hope that it will be useful,
   46.13 +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
   46.14 +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
   46.15 +# PARTICULAR PURPOSE.
   46.16 +
   46.17 +m4_ifndef([AC_AUTOCONF_VERSION],
   46.18 +  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
   46.19 +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
   46.20 +[m4_warning([this file was generated for autoconf 2.68.
   46.21 +You have another version of autoconf.  It may work, but is not guaranteed to.
   46.22 +If you have problems, you may need to regenerate the build system entirely.
   46.23 +To do so, use the procedure documented by the package, typically `autoreconf'.])])
   46.24 +
   46.25 +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
   46.26 +#
   46.27 +#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
   46.28 +#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
   46.29 +#                 Inc.
   46.30 +#   Written by Gordon Matzigkeit, 1996
   46.31 +#
   46.32 +# This file is free software; the Free Software Foundation gives
   46.33 +# unlimited permission to copy and/or distribute it, with or without
   46.34 +# modifications, as long as this notice is preserved.
   46.35 +
   46.36 +m4_define([_LT_COPYING], [dnl
   46.37 +#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
   46.38 +#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
   46.39 +#                 Inc.
   46.40 +#   Written by Gordon Matzigkeit, 1996
   46.41 +#
   46.42 +#   This file is part of GNU Libtool.
   46.43 +#
   46.44 +# GNU Libtool is free software; you can redistribute it and/or
   46.45 +# modify it under the terms of the GNU General Public License as
   46.46 +# published by the Free Software Foundation; either version 2 of
   46.47 +# the License, or (at your option) any later version.
   46.48 +#
   46.49 +# As a special exception to the GNU General Public License,
   46.50 +# if you distribute this file as part of a program or library that
   46.51 +# is built using GNU Libtool, you may include this file under the
   46.52 +# same distribution terms that you use for the rest of that program.
   46.53 +#
   46.54 +# GNU Libtool is distributed in the hope that it will be useful,
   46.55 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
   46.56 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   46.57 +# GNU General Public License for more details.
   46.58 +#
   46.59 +# You should have received a copy of the GNU General Public License
   46.60 +# along with GNU Libtool; see the file COPYING.  If not, a copy
   46.61 +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
   46.62 +# obtained by writing to the Free Software Foundation, Inc.,
   46.63 +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
   46.64 +])
   46.65 +
   46.66 +# serial 57 LT_INIT
   46.67 +
   46.68 +
   46.69 +# LT_PREREQ(VERSION)
   46.70 +# ------------------
   46.71 +# Complain and exit if this libtool version is less that VERSION.
   46.72 +m4_defun([LT_PREREQ],
   46.73 +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
   46.74 +       [m4_default([$3],
   46.75 +		   [m4_fatal([Libtool version $1 or higher is required],
   46.76 +		             63)])],
   46.77 +       [$2])])
   46.78 +
   46.79 +
   46.80 +# _LT_CHECK_BUILDDIR
   46.81 +# ------------------
   46.82 +# Complain if the absolute build directory name contains unusual characters
   46.83 +m4_defun([_LT_CHECK_BUILDDIR],
   46.84 +[case `pwd` in
   46.85 +  *\ * | *\	*)
   46.86 +    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
   46.87 +esac
   46.88 +])
   46.89 +
   46.90 +
   46.91 +# LT_INIT([OPTIONS])
   46.92 +# ------------------
   46.93 +AC_DEFUN([LT_INIT],
   46.94 +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
   46.95 +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
   46.96 +AC_BEFORE([$0], [LT_LANG])dnl
   46.97 +AC_BEFORE([$0], [LT_OUTPUT])dnl
   46.98 +AC_BEFORE([$0], [LTDL_INIT])dnl
   46.99 +m4_require([_LT_CHECK_BUILDDIR])dnl
  46.100 +
  46.101 +dnl Autoconf doesn't catch unexpanded LT_ macros by default:
  46.102 +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
  46.103 +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
  46.104 +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
  46.105 +dnl unless we require an AC_DEFUNed macro:
  46.106 +AC_REQUIRE([LTOPTIONS_VERSION])dnl
  46.107 +AC_REQUIRE([LTSUGAR_VERSION])dnl
  46.108 +AC_REQUIRE([LTVERSION_VERSION])dnl
  46.109 +AC_REQUIRE([LTOBSOLETE_VERSION])dnl
  46.110 +m4_require([_LT_PROG_LTMAIN])dnl
  46.111 +
  46.112 +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
  46.113 +
  46.114 +dnl Parse OPTIONS
  46.115 +_LT_SET_OPTIONS([$0], [$1])
  46.116 +
  46.117 +# This can be used to rebuild libtool when needed
  46.118 +LIBTOOL_DEPS="$ltmain"
  46.119 +
  46.120 +# Always use our own libtool.
  46.121 +LIBTOOL='$(SHELL) $(top_builddir)/libtool'
  46.122 +AC_SUBST(LIBTOOL)dnl
  46.123 +
  46.124 +_LT_SETUP
  46.125 +
  46.126 +# Only expand once:
  46.127 +m4_define([LT_INIT])
  46.128 +])# LT_INIT
  46.129 +
  46.130 +# Old names:
  46.131 +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
  46.132 +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
  46.133 +dnl aclocal-1.4 backwards compatibility:
  46.134 +dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
  46.135 +dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
  46.136 +
  46.137 +
  46.138 +# _LT_CC_BASENAME(CC)
  46.139 +# -------------------
  46.140 +# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
  46.141 +m4_defun([_LT_CC_BASENAME],
  46.142 +[for cc_temp in $1""; do
  46.143 +  case $cc_temp in
  46.144 +    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
  46.145 +    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
  46.146 +    \-*) ;;
  46.147 +    *) break;;
  46.148 +  esac
  46.149 +done
  46.150 +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
  46.151 +])
  46.152 +
  46.153 +
  46.154 +# _LT_FILEUTILS_DEFAULTS
  46.155 +# ----------------------
  46.156 +# It is okay to use these file commands and assume they have been set
  46.157 +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
  46.158 +m4_defun([_LT_FILEUTILS_DEFAULTS],
  46.159 +[: ${CP="cp -f"}
  46.160 +: ${MV="mv -f"}
  46.161 +: ${RM="rm -f"}
  46.162 +])# _LT_FILEUTILS_DEFAULTS
  46.163 +
  46.164 +
  46.165 +# _LT_SETUP
  46.166 +# ---------
  46.167 +m4_defun([_LT_SETUP],
  46.168 +[AC_REQUIRE([AC_CANONICAL_HOST])dnl
  46.169 +AC_REQUIRE([AC_CANONICAL_BUILD])dnl
  46.170 +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
  46.171 +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
  46.172 +
  46.173 +_LT_DECL([], [host_alias], [0], [The host system])dnl
  46.174 +_LT_DECL([], [host], [0])dnl
  46.175 +_LT_DECL([], [host_os], [0])dnl
  46.176 +dnl
  46.177 +_LT_DECL([], [build_alias], [0], [The build system])dnl
  46.178 +_LT_DECL([], [build], [0])dnl
  46.179 +_LT_DECL([], [build_os], [0])dnl
  46.180 +dnl
  46.181 +AC_REQUIRE([AC_PROG_CC])dnl
  46.182 +AC_REQUIRE([LT_PATH_LD])dnl
  46.183 +AC_REQUIRE([LT_PATH_NM])dnl
  46.184 +dnl
  46.185 +AC_REQUIRE([AC_PROG_LN_S])dnl
  46.186 +test -z "$LN_S" && LN_S="ln -s"
  46.187 +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
  46.188 +dnl
  46.189 +AC_REQUIRE([LT_CMD_MAX_LEN])dnl
  46.190 +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
  46.191 +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
  46.192 +dnl
  46.193 +m4_require([_LT_FILEUTILS_DEFAULTS])dnl
  46.194 +m4_require([_LT_CHECK_SHELL_FEATURES])dnl
  46.195 +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
  46.196 +m4_require([_LT_CMD_RELOAD])dnl
  46.197 +m4_require([_LT_CHECK_MAGIC_METHOD])dnl
  46.198 +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
  46.199 +m4_require([_LT_CMD_OLD_ARCHIVE])dnl
  46.200 +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
  46.201 +m4_require([_LT_WITH_SYSROOT])dnl
  46.202 +
  46.203 +_LT_CONFIG_LIBTOOL_INIT([
  46.204 +# See if we are running on zsh, and set the options which allow our
  46.205 +# commands through without removal of \ escapes INIT.
  46.206 +if test -n "\${ZSH_VERSION+set}" ; then
  46.207 +   setopt NO_GLOB_SUBST
  46.208 +fi
  46.209 +])
  46.210 +if test -n "${ZSH_VERSION+set}" ; then
  46.211 +   setopt NO_GLOB_SUBST
  46.212 +fi
  46.213 +
  46.214 +_LT_CHECK_OBJDIR
  46.215 +
  46.216 +m4_require([_LT_TAG_COMPILER])dnl
  46.217 +
  46.218 +case $host_os in
  46.219 +aix3*)
  46.220 +  # AIX sometimes has problems with the GCC collect2 program.  For some
  46.221 +  # reason, if we set the COLLECT_NAMES environment variable, the problems
  46.222 +  # vanish in a puff of smoke.
  46.223 +  if test "X${COLLECT_NAMES+set}" != Xset; then
  46.224 +    COLLECT_NAMES=
  46.225 +    export COLLECT_NAMES
  46.226 +  fi
  46.227 +  ;;
  46.228 +esac
  46.229 +
  46.230 +# Global variables:
  46.231 +ofile=libtool
  46.232 +can_build_shared=yes
  46.233 +
  46.234 +# All known linkers require a `.a' archive for static linking (except MSVC,
  46.235 +# which needs '.lib').
  46.236 +libext=a
  46.237 +
  46.238 +with_gnu_ld="$lt_cv_prog_gnu_ld"
  46.239 +
  46.240 +old_CC="$CC"
  46.241 +old_CFLAGS="$CFLAGS"
  46.242 +
  46.243 +# Set sane defaults for various variables
  46.244 +test -z "$CC" && CC=cc
  46.245 +test -z "$LTCC" && LTCC=$CC
  46.246 +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
  46.247 +test -z "$LD" && LD=ld
  46.248 +test -z "$ac_objext" && ac_objext=o
  46.249 +
  46.250 +_LT_CC_BASENAME([$compiler])
  46.251 +
  46.252 +# Only perform the check for file, if the check method requires it
  46.253 +test -z "$MAGIC_CMD" && MAGIC_CMD=file
  46.254 +case $deplibs_check_method in
  46.255 +file_magic*)
  46.256 +  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
  46.257 +    _LT_PATH_MAGIC
  46.258 +  fi
  46.259 +  ;;
  46.260 +esac
  46.261 +
  46.262 +# Use C for the default configuration in the libtool script
  46.263 +LT_SUPPORTED_TAG([CC])
  46.264 +_LT_LANG_C_CONFIG
  46.265 +_LT_LANG_DEFAULT_CONFIG
  46.266 +_LT_CONFIG_COMMANDS
  46.267 +])# _LT_SETUP
  46.268 +
  46.269 +
  46.270 +# _LT_PREPARE_SED_QUOTE_VARS
  46.271 +# --------------------------
  46.272 +# Define a few sed substitution that help us do robust quoting.
  46.273 +m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
  46.274 +[# Backslashify metacharacters that are still active within
  46.275 +# double-quoted strings.
  46.276 +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
  46.277 +
  46.278 +# Same as above, but do not quote variable references.
  46.279 +double_quote_subst='s/\([["`\\]]\)/\\\1/g'
  46.280 +
  46.281 +# Sed substitution to delay expansion of an escaped shell variable in a
  46.282 +# double_quote_subst'ed string.
  46.283 +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
  46.284 +
  46.285 +# Sed substitution to delay expansion of an escaped single quote.
  46.286 +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
  46.287 +
  46.288 +# Sed substitution to avoid accidental globbing in evaled expressions
  46.289 +no_glob_subst='s/\*/\\\*/g'
  46.290 +])
  46.291 +
  46.292 +# _LT_PROG_LTMAIN
  46.293 +# ---------------
  46.294 +# Note that this code is called both from `configure', and `config.status'
  46.295 +# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
  46.296 +# `config.status' has no value for ac_aux_dir unless we are using Automake,
  46.297 +# so we pass a copy along to make sure it has a sensible value anyway.
  46.298 +m4_defun([_LT_PROG_LTMAIN],
  46.299 +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
  46.300 +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
  46.301 +ltmain="$ac_aux_dir/ltmain.sh"
  46.302 +])# _LT_PROG_LTMAIN
  46.303 +
  46.304 +
  46.305 +
  46.306 +# So that we can recreate a full libtool script including additional
  46.307 +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
  46.308 +# in macros and then make a single call at the end using the `libtool'
  46.309 +# label.
  46.310 +
  46.311 +
  46.312 +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
  46.313 +# ----------------------------------------
  46.314 +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
  46.315 +m4_define([_LT_CONFIG_LIBTOOL_INIT],
  46.316 +[m4_ifval([$1],
  46.317 +          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
  46.318 +                     [$1
  46.319 +])])])
  46.320 +
  46.321 +# Initialize.
  46.322 +m4_define([_LT_OUTPUT_LIBTOOL_INIT])
  46.323 +
  46.324 +
  46.325 +# _LT_CONFIG_LIBTOOL([COMMANDS])
  46.326 +# ------------------------------
  46.327 +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
  46.328 +m4_define([_LT_CONFIG_LIBTOOL],
  46.329 +[m4_ifval([$1],
  46.330 +          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
  46.331 +                     [$1
  46.332 +])])])
  46.333 +
  46.334 +# Initialize.
  46.335 +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
  46.336 +
  46.337 +
  46.338 +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
  46.339 +# -----------------------------------------------------
  46.340 +m4_defun([_LT_CONFIG_SAVE_COMMANDS],
  46.341 +[_LT_CONFIG_LIBTOOL([$1])
  46.342 +_LT_CONFIG_LIBTOOL_INIT([$2])
  46.343 +])
  46.344 +
  46.345 +
  46.346 +# _LT_FORMAT_COMMENT([COMMENT])
  46.347 +# -----------------------------
  46.348 +# Add leading comment marks to the start of each line, and a trailing
  46.349 +# full-stop to the whole comment if one is not present already.
  46.350 +m4_define([_LT_FORMAT_COMMENT],
  46.351 +[m4_ifval([$1], [
  46.352 +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
  46.353 +              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
  46.354 +)])
  46.355 +
  46.356 +
  46.357 +
  46.358 +
  46.359 +
  46.360 +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
  46.361 +# -------------------------------------------------------------------
  46.362 +# CONFIGNAME is the name given to the value in the libtool script.
  46.363 +# VARNAME is the (base) name used in the configure script.
  46.364 +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
  46.365 +# VARNAME.  Any other value will be used directly.
  46.366 +m4_define([_LT_DECL],
  46.367 +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
  46.368 +    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
  46.369 +	[m4_ifval([$1], [$1], [$2])])
  46.370 +    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
  46.371 +    m4_ifval([$4],
  46.372 +	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
  46.373 +    lt_dict_add_subkey([lt_decl_dict], [$2],
  46.374 +	[tagged?], [m4_ifval([$5], [yes], [no])])])
  46.375 +])
  46.376 +
  46.377 +
  46.378 +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
  46.379 +# --------------------------------------------------------
  46.380 +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
  46.381 +
  46.382 +
  46.383 +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
  46.384 +# ------------------------------------------------
  46.385 +m4_define([lt_decl_tag_varnames],
  46.386 +[_lt_decl_filter([tagged?], [yes], $@)])
  46.387 +
  46.388 +
  46.389 +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
  46.390 +# ---------------------------------------------------------
  46.391 +m4_define([_lt_decl_filter],
  46.392 +[m4_case([$#],
  46.393 +  [0], [m4_fatal([$0: too few arguments: $#])],
  46.394 +  [1], [m4_fatal([$0: too few arguments: $#: $1])],
  46.395 +  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
  46.396 +  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
  46.397 +  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
  46.398 +])
  46.399 +
  46.400 +
  46.401 +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
  46.402 +# --------------------------------------------------
  46.403 +m4_define([lt_decl_quote_varnames],
  46.404 +[_lt_decl_filter([value], [1], $@)])
  46.405 +
  46.406 +
  46.407 +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
  46.408 +# ---------------------------------------------------
  46.409 +m4_define([lt_decl_dquote_varnames],
  46.410 +[_lt_decl_filter([value], [2], $@)])
  46.411 +
  46.412 +
  46.413 +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
  46.414 +# ---------------------------------------------------
  46.415 +m4_define([lt_decl_varnames_tagged],
  46.416 +[m4_assert([$# <= 2])dnl
  46.417 +_$0(m4_quote(m4_default([$1], [[, ]])),
  46.418 +    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
  46.419 +    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
  46.420 +m4_define([_lt_decl_varnames_tagged],
  46.421 +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
  46.422 +
  46.423 +
  46.424 +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
  46.425 +# ------------------------------------------------
  46.426 +m4_define([lt_decl_all_varnames],
  46.427 +[_$0(m4_quote(m4_default([$1], [[, ]])),
  46.428 +     m4_if([$2], [],
  46.429 +	   m4_quote(lt_decl_varnames),
  46.430 +	m4_quote(m4_shift($@))))[]dnl
  46.431 +])
  46.432 +m4_define([_lt_decl_all_varnames],
  46.433 +[lt_join($@, lt_decl_varnames_tagged([$1],
  46.434 +			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
  46.435 +])
  46.436 +
  46.437 +
  46.438 +# _LT_CONFIG_STATUS_DECLARE([VARNAME])
  46.439 +# ------------------------------------
  46.440 +# Quote a variable value, and forward it to `config.status' so that its
  46.441 +# declaration there will have the same value as in `configure'.  VARNAME
  46.442 +# must have a single quote delimited value for this to work.
  46.443 +m4_define([_LT_CONFIG_STATUS_DECLARE],
  46.444 +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
  46.445 +
  46.446 +
  46.447 +# _LT_CONFIG_STATUS_DECLARATIONS
  46.448 +# ------------------------------
  46.449 +# We delimit libtool config variables with single quotes, so when
  46.450 +# we write them to config.status, we have to be sure to quote all
  46.451 +# embedded single quotes properly.  In configure, this macro expands
  46.452 +# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
  46.453 +#
  46.454 +#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
  46.455 +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
  46.456 +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
  46.457 +    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
  46.458 +
  46.459 +
  46.460 +# _LT_LIBTOOL_TAGS
  46.461 +# ----------------
  46.462 +# Output comment and list of tags supported by the script
  46.463 +m4_defun([_LT_LIBTOOL_TAGS],
  46.464 +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
  46.465 +available_tags="_LT_TAGS"dnl
  46.466 +])
  46.467 +
  46.468 +
  46.469 +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
  46.470 +# -----------------------------------
  46.471 +# Extract the dictionary values for VARNAME (optionally with TAG) and
  46.472 +# expand to a commented shell variable setting:
  46.473 +#
  46.474 +#    # Some comment about what VAR is for.
  46.475 +#    visible_name=$lt_internal_name
  46.476 +m4_define([_LT_LIBTOOL_DECLARE],
  46.477 +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
  46.478 +					   [description])))[]dnl
  46.479 +m4_pushdef([_libtool_name],
  46.480 +    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
  46.481 +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
  46.482 +    [0], [_libtool_name=[$]$1],
  46.483 +    [1], [_libtool_name=$lt_[]$1],
  46.484 +    [2], [_libtool_name=$lt_[]$1],
  46.485 +    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
  46.486 +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
  46.487 +])
  46.488 +
  46.489 +
  46.490 +# _LT_LIBTOOL_CONFIG_VARS
  46.491 +# -----------------------
  46.492 +# Produce commented declarations of non-tagged libtool config variables
  46.493 +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
  46.494 +# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
  46.495 +# section) are produced by _LT_LIBTOOL_TAG_VARS.
  46.496 +m4_defun([_LT_LIBTOOL_CONFIG_VARS],
  46.497 +[m4_foreach([_lt_var],