Happy New Year!
authorSam Lantinga <slouken@libsdl.org>
Sat, 31 Dec 2011 10:27:48 -0500
changeset 5188bc9b5fd2aae
parent 517 db215583bdcb
child 519 46f32853e389
Happy New Year!
CHANGES
COPYING
Makefile.in
SDL_mixer.h
VisualC/Version.rc
Xcode.tar.gz
Xcode/Info-Framework__Upgraded_.plist
Xcode/SDL_mixer.xcodeproj/project.pbxproj
Xcode/mikmod/mikmod.framework/Headers
Xcode/mikmod/mikmod.framework/Resources
Xcode/mikmod/mikmod.framework/Versions/A/Headers/mikmod.h
Xcode/mikmod/mikmod.framework/Versions/A/Resources/English.lproj/InfoPlist.strings
Xcode/mikmod/mikmod.framework/Versions/A/Resources/Info.plist
Xcode/mikmod/mikmod.framework/Versions/A/mikmod
Xcode/mikmod/mikmod.framework/Versions/Current
Xcode/mikmod/mikmod.framework/mikmod
Xcode/mkxcode.csh
Xcode/package
Xcode/pkg-support/SDL_mixer.info
Xcode/pkg-support/mkpackage.sh
Xcode/pkg-support/resources/ReadMe.txt
Xcode/pkg-support/resources/Welcome.txt
Xcode/playmus/English.lproj/InfoPlist.strings
Xcode/playmus/Info-playmus__Upgraded_.plist
Xcode/playmus/SDLMain.h
Xcode/playmus/SDLMain.m
Xcode/playmus/playmus.xcodeproj/project.pbxproj
Xcode/playwave/English.lproj/InfoPlist.strings
Xcode/playwave/Info-playwave__Upgraded_.plist
Xcode/playwave/SDLMain.h
Xcode/playwave/SDLMain.m
Xcode/playwave/playwave.xcodeproj/project.pbxproj
Xcode/smpeg/smpeg.framework/Headers
Xcode/smpeg/smpeg.framework/Resources
Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEG.h
Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGaction.h
Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGaudio.h
Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGerror.h
Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGfilter.h
Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGlist.h
Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGring.h
Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGstream.h
Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGsystem.h
Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGvideo.h
Xcode/smpeg/smpeg.framework/Versions/A/Headers/smpeg.h
Xcode/smpeg/smpeg.framework/Versions/A/Resources/Info.plist
Xcode/smpeg/smpeg.framework/Versions/A/smpeg
Xcode/smpeg/smpeg.framework/Versions/Current
Xcode/smpeg/smpeg.framework/smpeg
Xcode/vorbis/XcodeProjects/Ogg.xcodeproj/project.pbxproj
Xcode/vorbis/XcodeProjects/README.txt
Xcode/vorbis/XcodeProjects/Vorbis.xcodeproj/project.pbxproj
Xcode/vorbis/include/ogg/config_types.h
Xcode/vorbis/include/ogg/ogg.h
Xcode/vorbis/include/ogg/os_types.h
Xcode/vorbis/include/vorbis/codec.h
Xcode/vorbis/include/vorbis/vorbisenc.h
Xcode/vorbis/include/vorbis/vorbisfile.h
Xcode/vorbis/lib/libogg.a
Xcode/vorbis/lib/libvorbis.a
Xcode/vorbis/lib/libvorbisfile.a
configure
configure.in
dynamic_flac.c
dynamic_flac.h
dynamic_fluidsynth.c
dynamic_fluidsynth.h
dynamic_mod.c
dynamic_mod.h
dynamic_mp3.c
dynamic_mp3.h
dynamic_ogg.c
dynamic_ogg.h
effect_position.c
effect_stereoreverse.c
effects_internal.c
effects_internal.h
fluidsynth.c
fluidsynth.h
load_aiff.c
load_flac.c
load_flac.h
load_ogg.c
load_ogg.h
load_voc.c
load_voc.h
mixer.c
music.c
music_cmd.c
music_cmd.h
music_flac.c
music_flac.h
music_mad.c
music_mad.h
music_mod.c
music_mod.h
music_ogg.c
music_ogg.h
native_midi/native_midi.h
native_midi/native_midi_common.c
native_midi/native_midi_common.h
native_midi/native_midi_haiku.cpp
native_midi/native_midi_mac.c
native_midi/native_midi_macosx.c
native_midi/native_midi_win32.c
native_midi_gpl/README
native_midi_gpl/awe_voice.h
native_midi_gpl/emumidi.c
native_midi_gpl/emumidi.h
native_midi_gpl/gmvoices.h
native_midi_gpl/gsvoices.h
native_midi_gpl/native_midi_gpl.c
native_midi_gpl/patchload.c
native_midi_gpl/playevents.c
native_midi_gpl/playmidi.h
native_midi_gpl/readmidi_native.c
playmus.c
playwave.c
timidity/COPYING
timidity/README
timidity/common.c
timidity/common.h
timidity/config.h
timidity/ctrlmode.c
timidity/ctrlmode.h
timidity/filter.c
timidity/filter.h
timidity/instrum.c
timidity/instrum.h
timidity/mix.c
timidity/mix.h
timidity/output.c
timidity/output.h
timidity/playmidi.c
timidity/playmidi.h
timidity/readmidi.c
timidity/readmidi.h
timidity/resample.c
timidity/resample.h
timidity/sdl_a.c
timidity/sdl_c.c
timidity/tables.c
timidity/tables.h
timidity/timidity.c
timidity/timidity.h
version.rc
wavestream.c
wavestream.h
     1.1 --- a/CHANGES	Thu Nov 17 00:45:43 2011 -0500
     1.2 +++ b/CHANGES	Sat Dec 31 10:27:48 2011 -0500
     1.3 @@ -1,4 +1,6 @@
     1.4  1.2.12:
     1.5 +Sam Lantinga - Sat Dec 31 10:22:05 EST 2011
     1.6 + * SDL_mixer is now under the zlib license
     1.7  James Le Cuirot - Mon Mar 21 16:54:11 PDT 2011
     1.8   * Added support for FluidSynth
     1.9  Scott MC - Tue Jan 18 11:06:47 PST 2011
     2.1 --- a/COPYING	Thu Nov 17 00:45:43 2011 -0500
     2.2 +++ b/COPYING	Sat Dec 31 10:27:48 2011 -0500
     2.3 @@ -1,458 +1,20 @@
     2.4 -		  GNU LESSER GENERAL PUBLIC LICENSE
     2.5 -		       Version 2.1, February 1999
     2.6 +/*
     2.7 +  SDL_mixer:  An audio mixer library based on the SDL library
     2.8 +  Copyright (C) 1997-2012 Sam Lantinga <slouken@libsdl.org>
     2.9  
    2.10 - Copyright (C) 1991, 1999 Free Software Foundation, Inc.
    2.11 -     51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    2.12 - Everyone is permitted to copy and distribute verbatim copies
    2.13 - of this license document, but changing it is not allowed.
    2.14 +  This software is provided 'as-is', without any express or implied
    2.15 +  warranty.  In no event will the authors be held liable for any damages
    2.16 +  arising from the use of this software.
    2.17  
    2.18 -[This is the first released version of the Lesser GPL.  It also counts
    2.19 - as the successor of the GNU Library Public License, version 2, hence
    2.20 - the version number 2.1.]
    2.21 +  Permission is granted to anyone to use this software for any purpose,
    2.22 +  including commercial applications, and to alter it and redistribute it
    2.23 +  freely, subject to the following restrictions:
    2.24  
    2.25 -			    Preamble
    2.26 -
    2.27 -  The licenses for most software are designed to take away your
    2.28 -freedom to share and change it.  By contrast, the GNU General Public
    2.29 -Licenses are intended to guarantee your freedom to share and change
    2.30 -free software--to make sure the software is free for all its users.
    2.31 -
    2.32 -  This license, the Lesser General Public License, applies to some
    2.33 -specially designated software packages--typically libraries--of the
    2.34 -Free Software Foundation and other authors who decide to use it.  You
    2.35 -can use it too, but we suggest you first think carefully about whether
    2.36 -this license or the ordinary General Public License is the better
    2.37 -strategy to use in any particular case, based on the explanations below.
    2.38 -
    2.39 -  When we speak of free software, we are referring to freedom of use,
    2.40 -not price.  Our General Public Licenses are designed to make sure that
    2.41 -you have the freedom to distribute copies of free software (and charge
    2.42 -for this service if you wish); that you receive source code or can get
    2.43 -it if you want it; that you can change the software and use pieces of
    2.44 -it in new free programs; and that you are informed that you can do
    2.45 -these things.
    2.46 -
    2.47 -  To protect your rights, we need to make restrictions that forbid
    2.48 -distributors to deny you these rights or to ask you to surrender these
    2.49 -rights.  These restrictions translate to certain responsibilities for
    2.50 -you if you distribute copies of the library or if you modify it.
    2.51 -
    2.52 -  For example, if you distribute copies of the library, whether gratis
    2.53 -or for a fee, you must give the recipients all the rights that we gave
    2.54 -you.  You must make sure that they, too, receive or can get the source
    2.55 -code.  If you link other code with the library, you must provide
    2.56 -complete object files to the recipients, so that they can relink them
    2.57 -with the library after making changes to the library and recompiling
    2.58 -it.  And you must show them these terms so they know their rights.
    2.59 -
    2.60 -  We protect your rights with a two-step method: (1) we copyright the
    2.61 -library, and (2) we offer you this license, which gives you legal
    2.62 -permission to copy, distribute and/or modify the library.
    2.63 -
    2.64 -  To protect each distributor, we want to make it very clear that
    2.65 -there is no warranty for the free library.  Also, if the library is
    2.66 -modified by someone else and passed on, the recipients should know
    2.67 -that what they have is not the original version, so that the original
    2.68 -author's reputation will not be affected by problems that might be
    2.69 -introduced by others.
    2.70 -
    2.71 -  Finally, software patents pose a constant threat to the existence of
    2.72 -any free program.  We wish to make sure that a company cannot
    2.73 -effectively restrict the users of a free program by obtaining a
    2.74 -restrictive license from a patent holder.  Therefore, we insist that
    2.75 -any patent license obtained for a version of the library must be
    2.76 -consistent with the full freedom of use specified in this license.
    2.77 -
    2.78 -  Most GNU software, including some libraries, is covered by the
    2.79 -ordinary GNU General Public License.  This license, the GNU Lesser
    2.80 -General Public License, applies to certain designated libraries, and
    2.81 -is quite different from the ordinary General Public License.  We use
    2.82 -this license for certain libraries in order to permit linking those
    2.83 -libraries into non-free programs.
    2.84 -
    2.85 -  When a program is linked with a library, whether statically or using
    2.86 -a shared library, the combination of the two is legally speaking a
    2.87 -combined work, a derivative of the original library.  The ordinary
    2.88 -General Public License therefore permits such linking only if the
    2.89 -entire combination fits its criteria of freedom.  The Lesser General
    2.90 -Public License permits more lax criteria for linking other code with
    2.91 -the library.
    2.92 -
    2.93 -  We call this license the "Lesser" General Public License because it
    2.94 -does Less to protect the user's freedom than the ordinary General
    2.95 -Public License.  It also provides other free software developers Less
    2.96 -of an advantage over competing non-free programs.  These disadvantages
    2.97 -are the reason we use the ordinary General Public License for many
    2.98 -libraries.  However, the Lesser license provides advantages in certain
    2.99 -special circumstances.
   2.100 -
   2.101 -  For example, on rare occasions, there may be a special need to
   2.102 -encourage the widest possible use of a certain library, so that it becomes
   2.103 -a de-facto standard.  To achieve this, non-free programs must be
   2.104 -allowed to use the library.  A more frequent case is that a free
   2.105 -library does the same job as widely used non-free libraries.  In this
   2.106 -case, there is little to gain by limiting the free library to free
   2.107 -software only, so we use the Lesser General Public License.
   2.108 -
   2.109 -  In other cases, permission to use a particular library in non-free
   2.110 -programs enables a greater number of people to use a large body of
   2.111 -free software.  For example, permission to use the GNU C Library in
   2.112 -non-free programs enables many more people to use the whole GNU
   2.113 -operating system, as well as its variant, the GNU/Linux operating
   2.114 -system.
   2.115 -
   2.116 -  Although the Lesser General Public License is Less protective of the
   2.117 -users' freedom, it does ensure that the user of a program that is
   2.118 -linked with the Library has the freedom and the wherewithal to run
   2.119 -that program using a modified version of the Library.
   2.120 -
   2.121 -  The precise terms and conditions for copying, distribution and
   2.122 -modification follow.  Pay close attention to the difference between a
   2.123 -"work based on the library" and a "work that uses the library".  The
   2.124 -former contains code derived from the library, whereas the latter must
   2.125 -be combined with the library in order to run.
   2.126 -
   2.127 -		  GNU LESSER GENERAL PUBLIC LICENSE
   2.128 -   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
   2.129 -
   2.130 -  0. This License Agreement applies to any software library or other
   2.131 -program which contains a notice placed by the copyright holder or
   2.132 -other authorized party saying it may be distributed under the terms of
   2.133 -this Lesser General Public License (also called "this License").
   2.134 -Each licensee is addressed as "you".
   2.135 -
   2.136 -  A "library" means a collection of software functions and/or data
   2.137 -prepared so as to be conveniently linked with application programs
   2.138 -(which use some of those functions and data) to form executables.
   2.139 -
   2.140 -  The "Library", below, refers to any such software library or work
   2.141 -which has been distributed under these terms.  A "work based on the
   2.142 -Library" means either the Library or any derivative work under
   2.143 -copyright law: that is to say, a work containing the Library or a
   2.144 -portion of it, either verbatim or with modifications and/or translated
   2.145 -straightforwardly into another language.  (Hereinafter, translation is
   2.146 -included without limitation in the term "modification".)
   2.147 -
   2.148 -  "Source code" for a work means the preferred form of the work for
   2.149 -making modifications to it.  For a library, complete source code means
   2.150 -all the source code for all modules it contains, plus any associated
   2.151 -interface definition files, plus the scripts used to control compilation
   2.152 -and installation of the library.
   2.153 -
   2.154 -  Activities other than copying, distribution and modification are not
   2.155 -covered by this License; they are outside its scope.  The act of
   2.156 -running a program using the Library is not restricted, and output from
   2.157 -such a program is covered only if its contents constitute a work based
   2.158 -on the Library (independent of the use of the Library in a tool for
   2.159 -writing it).  Whether that is true depends on what the Library does
   2.160 -and what the program that uses the Library does.
   2.161 -  
   2.162 -  1. You may copy and distribute verbatim copies of the Library's
   2.163 -complete source code as you receive it, in any medium, provided that
   2.164 -you conspicuously and appropriately publish on each copy an
   2.165 -appropriate copyright notice and disclaimer of warranty; keep intact
   2.166 -all the notices that refer to this License and to the absence of any
   2.167 -warranty; and distribute a copy of this License along with the
   2.168 -Library.
   2.169 -
   2.170 -  You may charge a fee for the physical act of transferring a copy,
   2.171 -and you may at your option offer warranty protection in exchange for a
   2.172 -fee.
   2.173 -
   2.174 -  2. You may modify your copy or copies of the Library or any portion
   2.175 -of it, thus forming a work based on the Library, and copy and
   2.176 -distribute such modifications or work under the terms of Section 1
   2.177 -above, provided that you also meet all of these conditions:
   2.178 -
   2.179 -    a) The modified work must itself be a software library.
   2.180 -
   2.181 -    b) You must cause the files modified to carry prominent notices
   2.182 -    stating that you changed the files and the date of any change.
   2.183 -
   2.184 -    c) You must cause the whole of the work to be licensed at no
   2.185 -    charge to all third parties under the terms of this License.
   2.186 -
   2.187 -    d) If a facility in the modified Library refers to a function or a
   2.188 -    table of data to be supplied by an application program that uses
   2.189 -    the facility, other than as an argument passed when the facility
   2.190 -    is invoked, then you must make a good faith effort to ensure that,
   2.191 -    in the event an application does not supply such function or
   2.192 -    table, the facility still operates, and performs whatever part of
   2.193 -    its purpose remains meaningful.
   2.194 -
   2.195 -    (For example, a function in a library to compute square roots has
   2.196 -    a purpose that is entirely well-defined independent of the
   2.197 -    application.  Therefore, Subsection 2d requires that any
   2.198 -    application-supplied function or table used by this function must
   2.199 -    be optional: if the application does not supply it, the square
   2.200 -    root function must still compute square roots.)
   2.201 -
   2.202 -These requirements apply to the modified work as a whole.  If
   2.203 -identifiable sections of that work are not derived from the Library,
   2.204 -and can be reasonably considered independent and separate works in
   2.205 -themselves, then this License, and its terms, do not apply to those
   2.206 -sections when you distribute them as separate works.  But when you
   2.207 -distribute the same sections as part of a whole which is a work based
   2.208 -on the Library, the distribution of the whole must be on the terms of
   2.209 -this License, whose permissions for other licensees extend to the
   2.210 -entire whole, and thus to each and every part regardless of who wrote
   2.211 -it.
   2.212 -
   2.213 -Thus, it is not the intent of this section to claim rights or contest
   2.214 -your rights to work written entirely by you; rather, the intent is to
   2.215 -exercise the right to control the distribution of derivative or
   2.216 -collective works based on the Library.
   2.217 -
   2.218 -In addition, mere aggregation of another work not based on the Library
   2.219 -with the Library (or with a work based on the Library) on a volume of
   2.220 -a storage or distribution medium does not bring the other work under
   2.221 -the scope of this License.
   2.222 -
   2.223 -  3. You may opt to apply the terms of the ordinary GNU General Public
   2.224 -License instead of this License to a given copy of the Library.  To do
   2.225 -this, you must alter all the notices that refer to this License, so
   2.226 -that they refer to the ordinary GNU General Public License, version 2,
   2.227 -instead of to this License.  (If a newer version than version 2 of the
   2.228 -ordinary GNU General Public License has appeared, then you can specify
   2.229 -that version instead if you wish.)  Do not make any other change in
   2.230 -these notices.
   2.231 -
   2.232 -  Once this change is made in a given copy, it is irreversible for
   2.233 -that copy, so the ordinary GNU General Public License applies to all
   2.234 -subsequent copies and derivative works made from that copy.
   2.235 -
   2.236 -  This option is useful when you wish to copy part of the code of
   2.237 -the Library into a program that is not a library.
   2.238 -
   2.239 -  4. You may copy and distribute the Library (or a portion or
   2.240 -derivative of it, under Section 2) in object code or executable form
   2.241 -under the terms of Sections 1 and 2 above provided that you accompany
   2.242 -it with the complete corresponding machine-readable source code, which
   2.243 -must be distributed under the terms of Sections 1 and 2 above on a
   2.244 -medium customarily used for software interchange.
   2.245 -
   2.246 -  If distribution of object code is made by offering access to copy
   2.247 -from a designated place, then offering equivalent access to copy the
   2.248 -source code from the same place satisfies the requirement to
   2.249 -distribute the source code, even though third parties are not
   2.250 -compelled to copy the source along with the object code.
   2.251 -
   2.252 -  5. A program that contains no derivative of any portion of the
   2.253 -Library, but is designed to work with the Library by being compiled or
   2.254 -linked with it, is called a "work that uses the Library".  Such a
   2.255 -work, in isolation, is not a derivative work of the Library, and
   2.256 -therefore falls outside the scope of this License.
   2.257 -
   2.258 -  However, linking a "work that uses the Library" with the Library
   2.259 -creates an executable that is a derivative of the Library (because it
   2.260 -contains portions of the Library), rather than a "work that uses the
   2.261 -library".  The executable is therefore covered by this License.
   2.262 -Section 6 states terms for distribution of such executables.
   2.263 -
   2.264 -  When a "work that uses the Library" uses material from a header file
   2.265 -that is part of the Library, the object code for the work may be a
   2.266 -derivative work of the Library even though the source code is not.
   2.267 -Whether this is true is especially significant if the work can be
   2.268 -linked without the Library, or if the work is itself a library.  The
   2.269 -threshold for this to be true is not precisely defined by law.
   2.270 -
   2.271 -  If such an object file uses only numerical parameters, data
   2.272 -structure layouts and accessors, and small macros and small inline
   2.273 -functions (ten lines or less in length), then the use of the object
   2.274 -file is unrestricted, regardless of whether it is legally a derivative
   2.275 -work.  (Executables containing this object code plus portions of the
   2.276 -Library will still fall under Section 6.)
   2.277 -
   2.278 -  Otherwise, if the work is a derivative of the Library, you may
   2.279 -distribute the object code for the work under the terms of Section 6.
   2.280 -Any executables containing that work also fall under Section 6,
   2.281 -whether or not they are linked directly with the Library itself.
   2.282 -
   2.283 -  6. As an exception to the Sections above, you may also combine or
   2.284 -link a "work that uses the Library" with the Library to produce a
   2.285 -work containing portions of the Library, and distribute that work
   2.286 -under terms of your choice, provided that the terms permit
   2.287 -modification of the work for the customer's own use and reverse
   2.288 -engineering for debugging such modifications.
   2.289 -
   2.290 -  You must give prominent notice with each copy of the work that the
   2.291 -Library is used in it and that the Library and its use are covered by
   2.292 -this License.  You must supply a copy of this License.  If the work
   2.293 -during execution displays copyright notices, you must include the
   2.294 -copyright notice for the Library among them, as well as a reference
   2.295 -directing the user to the copy of this License.  Also, you must do one
   2.296 -of these things:
   2.297 -
   2.298 -    a) Accompany the work with the complete corresponding
   2.299 -    machine-readable source code for the Library including whatever
   2.300 -    changes were used in the work (which must be distributed under
   2.301 -    Sections 1 and 2 above); and, if the work is an executable linked
   2.302 -    with the Library, with the complete machine-readable "work that
   2.303 -    uses the Library", as object code and/or source code, so that the
   2.304 -    user can modify the Library and then relink to produce a modified
   2.305 -    executable containing the modified Library.  (It is understood
   2.306 -    that the user who changes the contents of definitions files in the
   2.307 -    Library will not necessarily be able to recompile the application
   2.308 -    to use the modified definitions.)
   2.309 -
   2.310 -    b) Use a suitable shared library mechanism for linking with the
   2.311 -    Library.  A suitable mechanism is one that (1) uses at run time a
   2.312 -    copy of the library already present on the user's computer system,
   2.313 -    rather than copying library functions into the executable, and (2)
   2.314 -    will operate properly with a modified version of the library, if
   2.315 -    the user installs one, as long as the modified version is
   2.316 -    interface-compatible with the version that the work was made with.
   2.317 -
   2.318 -    c) Accompany the work with a written offer, valid for at
   2.319 -    least three years, to give the same user the materials
   2.320 -    specified in Subsection 6a, above, for a charge no more
   2.321 -    than the cost of performing this distribution.
   2.322 -
   2.323 -    d) If distribution of the work is made by offering access to copy
   2.324 -    from a designated place, offer equivalent access to copy the above
   2.325 -    specified materials from the same place.
   2.326 -
   2.327 -    e) Verify that the user has already received a copy of these
   2.328 -    materials or that you have already sent this user a copy.
   2.329 -
   2.330 -  For an executable, the required form of the "work that uses the
   2.331 -Library" must include any data and utility programs needed for
   2.332 -reproducing the executable from it.  However, as a special exception,
   2.333 -the materials to be distributed need not include anything that is
   2.334 -normally distributed (in either source or binary form) with the major
   2.335 -components (compiler, kernel, and so on) of the operating system on
   2.336 -which the executable runs, unless that component itself accompanies
   2.337 -the executable.
   2.338 -
   2.339 -  It may happen that this requirement contradicts the license
   2.340 -restrictions of other proprietary libraries that do not normally
   2.341 -accompany the operating system.  Such a contradiction means you cannot
   2.342 -use both them and the Library together in an executable that you
   2.343 -distribute.
   2.344 -
   2.345 -  7. You may place library facilities that are a work based on the
   2.346 -Library side-by-side in a single library together with other library
   2.347 -facilities not covered by this License, and distribute such a combined
   2.348 -library, provided that the separate distribution of the work based on
   2.349 -the Library and of the other library facilities is otherwise
   2.350 -permitted, and provided that you do these two things:
   2.351 -
   2.352 -    a) Accompany the combined library with a copy of the same work
   2.353 -    based on the Library, uncombined with any other library
   2.354 -    facilities.  This must be distributed under the terms of the
   2.355 -    Sections above.
   2.356 -
   2.357 -    b) Give prominent notice with the combined library of the fact
   2.358 -    that part of it is a work based on the Library, and explaining
   2.359 -    where to find the accompanying uncombined form of the same work.
   2.360 -
   2.361 -  8. You may not copy, modify, sublicense, link with, or distribute
   2.362 -the Library except as expressly provided under this License.  Any
   2.363 -attempt otherwise to copy, modify, sublicense, link with, or
   2.364 -distribute the Library is void, and will automatically terminate your
   2.365 -rights under this License.  However, parties who have received copies,
   2.366 -or rights, from you under this License will not have their licenses
   2.367 -terminated so long as such parties remain in full compliance.
   2.368 -
   2.369 -  9. You are not required to accept this License, since you have not
   2.370 -signed it.  However, nothing else grants you permission to modify or
   2.371 -distribute the Library or its derivative works.  These actions are
   2.372 -prohibited by law if you do not accept this License.  Therefore, by
   2.373 -modifying or distributing the Library (or any work based on the
   2.374 -Library), you indicate your acceptance of this License to do so, and
   2.375 -all its terms and conditions for copying, distributing or modifying
   2.376 -the Library or works based on it.
   2.377 -
   2.378 -  10. Each time you redistribute the Library (or any work based on the
   2.379 -Library), the recipient automatically receives a license from the
   2.380 -original licensor to copy, distribute, link with or modify the Library
   2.381 -subject to these terms and conditions.  You may not impose any further
   2.382 -restrictions on the recipients' exercise of the rights granted herein.
   2.383 -You are not responsible for enforcing compliance by third parties with
   2.384 -this License.
   2.385 -
   2.386 -  11. If, as a consequence of a court judgment or allegation of patent
   2.387 -infringement or for any other reason (not limited to patent issues),
   2.388 -conditions are imposed on you (whether by court order, agreement or
   2.389 -otherwise) that contradict the conditions of this License, they do not
   2.390 -excuse you from the conditions of this License.  If you cannot
   2.391 -distribute so as to satisfy simultaneously your obligations under this
   2.392 -License and any other pertinent obligations, then as a consequence you
   2.393 -may not distribute the Library at all.  For example, if a patent
   2.394 -license would not permit royalty-free redistribution of the Library by
   2.395 -all those who receive copies directly or indirectly through you, then
   2.396 -the only way you could satisfy both it and this License would be to
   2.397 -refrain entirely from distribution of the Library.
   2.398 -
   2.399 -If any portion of this section is held invalid or unenforceable under any
   2.400 -particular circumstance, the balance of the section is intended to apply,
   2.401 -and the section as a whole is intended to apply in other circumstances.
   2.402 -
   2.403 -It is not the purpose of this section to induce you to infringe any
   2.404 -patents or other property right claims or to contest validity of any
   2.405 -such claims; this section has the sole purpose of protecting the
   2.406 -integrity of the free software distribution system which is
   2.407 -implemented by public license practices.  Many people have made
   2.408 -generous contributions to the wide range of software distributed
   2.409 -through that system in reliance on consistent application of that
   2.410 -system; it is up to the author/donor to decide if he or she is willing
   2.411 -to distribute software through any other system and a licensee cannot
   2.412 -impose that choice.
   2.413 -
   2.414 -This section is intended to make thoroughly clear what is believed to
   2.415 -be a consequence of the rest of this License.
   2.416 -
   2.417 -  12. If the distribution and/or use of the Library is restricted in
   2.418 -certain countries either by patents or by copyrighted interfaces, the
   2.419 -original copyright holder who places the Library under this License may add
   2.420 -an explicit geographical distribution limitation excluding those countries,
   2.421 -so that distribution is permitted only in or among countries not thus
   2.422 -excluded.  In such case, this License incorporates the limitation as if
   2.423 -written in the body of this License.
   2.424 -
   2.425 -  13. The Free Software Foundation may publish revised and/or new
   2.426 -versions of the Lesser General Public License from time to time.
   2.427 -Such new versions will be similar in spirit to the present version,
   2.428 -but may differ in detail to address new problems or concerns.
   2.429 -
   2.430 -Each version is given a distinguishing version number.  If the Library
   2.431 -specifies a version number of this License which applies to it and
   2.432 -"any later version", you have the option of following the terms and
   2.433 -conditions either of that version or of any later version published by
   2.434 -the Free Software Foundation.  If the Library does not specify a
   2.435 -license version number, you may choose any version ever published by
   2.436 -the Free Software Foundation.
   2.437 -
   2.438 -  14. If you wish to incorporate parts of the Library into other free
   2.439 -programs whose distribution conditions are incompatible with these,
   2.440 -write to the author to ask for permission.  For software which is
   2.441 -copyrighted by the Free Software Foundation, write to the Free
   2.442 -Software Foundation; we sometimes make exceptions for this.  Our
   2.443 -decision will be guided by the two goals of preserving the free status
   2.444 -of all derivatives of our free software and of promoting the sharing
   2.445 -and reuse of software generally.
   2.446 -
   2.447 -			    NO WARRANTY
   2.448 -
   2.449 -  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
   2.450 -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
   2.451 -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
   2.452 -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
   2.453 -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
   2.454 -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   2.455 -PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
   2.456 -LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
   2.457 -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
   2.458 -
   2.459 -  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
   2.460 -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
   2.461 -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
   2.462 -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
   2.463 -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
   2.464 -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
   2.465 -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
   2.466 -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
   2.467 -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
   2.468 -DAMAGES.
   2.469 -
   2.470 -		     END OF TERMS AND CONDITIONS
   2.471 +  1. The origin of this software must not be misrepresented; you must not
   2.472 +     claim that you wrote the original software. If you use this software
   2.473 +     in a product, an acknowledgment in the product documentation would be
   2.474 +     appreciated but is not required.
   2.475 +  2. Altered source versions must be plainly marked as such, and must not be
   2.476 +     misrepresented as being the original software.
   2.477 +  3. This notice may not be removed or altered from any source distribution.
   2.478 +*/
     3.1 --- a/Makefile.in	Thu Nov 17 00:45:43 2011 -0500
     3.2 +++ b/Makefile.in	Sat Dec 31 10:27:48 2011 -0500
     3.3 @@ -39,7 +39,7 @@
     3.4  PLAYWAVE_OBJECTS = @PLAYWAVE_OBJECTS@
     3.5  PLAYMUS_OBJECTS = @PLAYMUS_OBJECTS@
     3.6  
     3.7 -DIST = Android.mk CHANGES COPYING CWProjects.sea.bin MPWmake.sea.bin Makefile.in SDL_mixer.pc.in README SDL_mixer.h SDL_mixer.qpg.in SDL_mixer.spec SDL_mixer.spec.in VisualC.zip Watcom-OS2.zip Xcode.tar.gz acinclude autogen.sh build-scripts configure configure.in dynamic_flac.c dynamic_flac.h dynamic_fluidsynth.c dynamic_fluidsynth.h dynamic_mod.c dynamic_mod.h dynamic_mp3.c dynamic_mp3.h dynamic_ogg.c dynamic_ogg.h effect_position.c effect_stereoreverse.c effects_internal.c effects_internal.h fluidsynth.c fluidsynth.h gcc-fat.sh libmikmod-3.1.12.zip load_aiff.c load_aiff.h load_flac.c load_flac.h load_ogg.c load_ogg.h load_voc.c load_voc.h mixer.c music.c music_cmd.c music_cmd.h music_flac.c music_flac.h music_mad.c music_mad.h music_mod.c music_mod.h music_modplug.c music_modplug.h music_ogg.c music_ogg.h native_midi native_midi_gpl playmus.c playwave.c timidity wavestream.c wavestream.h version.rc
     3.8 +DIST = Android.mk CHANGES COPYING CWProjects.sea.bin MPWmake.sea.bin Makefile.in SDL_mixer.pc.in README SDL_mixer.h SDL_mixer.qpg.in SDL_mixer.spec SDL_mixer.spec.in VisualC Watcom-OS2.zip Xcode acinclude autogen.sh build-scripts configure configure.in dynamic_flac.c dynamic_flac.h dynamic_fluidsynth.c dynamic_fluidsynth.h dynamic_mod.c dynamic_mod.h dynamic_mp3.c dynamic_mp3.h dynamic_ogg.c dynamic_ogg.h effect_position.c effect_stereoreverse.c effects_internal.c effects_internal.h fluidsynth.c fluidsynth.h gcc-fat.sh libmikmod-3.1.12.zip load_aiff.c load_aiff.h load_flac.c load_flac.h load_ogg.c load_ogg.h load_voc.c load_voc.h mixer.c music.c music_cmd.c music_cmd.h music_flac.c music_flac.h music_mad.c music_mad.h music_mod.c music_mod.h music_modplug.c music_modplug.h music_ogg.c music_ogg.h native_midi playmus.c playwave.c timidity wavestream.c wavestream.h version.rc
     3.9  
    3.10  LT_AGE      = @LT_AGE@
    3.11  LT_CURRENT  = @LT_CURRENT@
     4.1 --- a/SDL_mixer.h	Thu Nov 17 00:45:43 2011 -0500
     4.2 +++ b/SDL_mixer.h	Sat Dec 31 10:27:48 2011 -0500
     4.3 @@ -1,23 +1,22 @@
     4.4  /*
     4.5 -    SDL_mixer:  An audio mixer library based on the SDL library
     4.6 -    Copyright (C) 1997-2009 Sam Lantinga
     4.7 +  SDL_mixer:  An audio mixer library based on the SDL library
     4.8 +  Copyright (C) 1997-2012 Sam Lantinga <slouken@libsdl.org>
     4.9  
    4.10 -    This library is free software; you can redistribute it and/or
    4.11 -    modify it under the terms of the GNU Library General Public
    4.12 -    License as published by the Free Software Foundation; either
    4.13 -    version 2 of the License, or (at your option) any later version.
    4.14 +  This software is provided 'as-is', without any express or implied
    4.15 +  warranty.  In no event will the authors be held liable for any damages
    4.16 +  arising from the use of this software.
    4.17  
    4.18 -    This library is distributed in the hope that it will be useful,
    4.19 -    but WITHOUT ANY WARRANTY; without even the implied warranty of
    4.20 -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    4.21 -    Library General Public License for more details.
    4.22 +  Permission is granted to anyone to use this software for any purpose,
    4.23 +  including commercial applications, and to alter it and redistribute it
    4.24 +  freely, subject to the following restrictions:
    4.25  
    4.26 -    You should have received a copy of the GNU Library General Public
    4.27 -    License along with this library; if not, write to the Free
    4.28 -    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    4.29 -
    4.30 -    Sam Lantinga
    4.31 -    slouken@libsdl.org
    4.32 +  1. The origin of this software must not be misrepresented; you must not
    4.33 +     claim that you wrote the original software. If you use this software
    4.34 +     in a product, an acknowledgment in the product documentation would be
    4.35 +     appreciated but is not required.
    4.36 +  2. Altered source versions must be plainly marked as such, and must not be
    4.37 +     misrepresented as being the original software.
    4.38 +  3. This notice may not be removed or altered from any source distribution.
    4.39  */
    4.40  
    4.41  /* $Id$ */
     5.1 --- a/VisualC/Version.rc	Thu Nov 17 00:45:43 2011 -0500
     5.2 +++ b/VisualC/Version.rc	Sat Dec 31 10:27:48 2011 -0500
     5.3 @@ -48,7 +48,7 @@
     5.4              VALUE "FileDescription", "SDL_mixer\0"
     5.5              VALUE "FileVersion", "1, 2, 12, 0\0"
     5.6              VALUE "InternalName", "SDL_mixer\0"
     5.7 -            VALUE "LegalCopyright", "Copyright  2007 Sam Lantinga\0"
     5.8 +            VALUE "LegalCopyright", "Copyright  2012 Sam Lantinga\0"
     5.9              VALUE "OriginalFilename", "SDL_mixer.dll\0"
    5.10              VALUE "ProductName", "Simple DirectMedia Layer\0"
    5.11              VALUE "ProductVersion", "1, 2, 12, 0\0"
     6.1 Binary file Xcode.tar.gz has changed
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/Xcode/Info-Framework__Upgraded_.plist	Sat Dec 31 10:27:48 2011 -0500
     7.3 @@ -0,0 +1,28 @@
     7.4 +<?xml version="1.0" encoding="UTF-8"?>
     7.5 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
     7.6 +<plist version="1.0">
     7.7 +<dict>
     7.8 +	<key>CFBundleDevelopmentRegion</key>
     7.9 +	<string>English</string>
    7.10 +	<key>CFBundleExecutable</key>
    7.11 +	<string>SDL_mixer</string>
    7.12 +	<key>CFBundleGetInfoString</key>
    7.13 +	<string>http://www.libsdl.org</string>
    7.14 +	<key>CFBundleIconFile</key>
    7.15 +	<string></string>
    7.16 +	<key>CFBundleIdentifier</key>
    7.17 +	<string>SDL_mixer</string>
    7.18 +	<key>CFBundleInfoDictionaryVersion</key>
    7.19 +	<string>6.0</string>
    7.20 +	<key>CFBundleName</key>
    7.21 +	<string>Simple DirectMedia Layer</string>
    7.22 +	<key>CFBundlePackageType</key>
    7.23 +	<string>FMWK</string>
    7.24 +	<key>CFBundleShortVersionString</key>
    7.25 +	<string>1.2.11</string>
    7.26 +	<key>CFBundleSignature</key>
    7.27 +	<string>SDL_mixerX</string>
    7.28 +	<key>CFBundleVersion</key>
    7.29 +	<string>1.2.11</string>
    7.30 +</dict>
    7.31 +</plist>
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/Xcode/SDL_mixer.xcodeproj/project.pbxproj	Sat Dec 31 10:27:48 2011 -0500
     8.3 @@ -0,0 +1,1269 @@
     8.4 +// !$*UTF8*$!
     8.5 +{
     8.6 +	archiveVersion = 1;
     8.7 +	classes = {
     8.8 +	};
     8.9 +	objectVersion = 42;
    8.10 +	objects = {
    8.11 +
    8.12 +/* Begin PBXBuildFile section */
    8.13 +		00938E1C108A36520009CF19 /* mikmod.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00938E1B108A36520009CF19 /* mikmod.framework */; };
    8.14 +		00938E33108A37800009CF19 /* load_flac.c in Sources */ = {isa = PBXBuildFile; fileRef = 00938E2B108A37800009CF19 /* load_flac.c */; };
    8.15 +		00938E34108A37800009CF19 /* load_flac.h in Headers */ = {isa = PBXBuildFile; fileRef = 00938E2C108A37800009CF19 /* load_flac.h */; };
    8.16 +		00938E35108A37800009CF19 /* music_flac.c in Sources */ = {isa = PBXBuildFile; fileRef = 00938E2D108A37800009CF19 /* music_flac.c */; };
    8.17 +		00938E36108A37800009CF19 /* music_flac.h in Headers */ = {isa = PBXBuildFile; fileRef = 00938E2E108A37800009CF19 /* music_flac.h */; };
    8.18 +		00938E37108A37800009CF19 /* music_mad.c in Sources */ = {isa = PBXBuildFile; fileRef = 00938E2F108A37800009CF19 /* music_mad.c */; };
    8.19 +		00938E38108A37800009CF19 /* music_mad.h in Headers */ = {isa = PBXBuildFile; fileRef = 00938E30108A37800009CF19 /* music_mad.h */; };
    8.20 +		00938E39108A37800009CF19 /* music_mod.c in Sources */ = {isa = PBXBuildFile; fileRef = 00938E31108A37800009CF19 /* music_mod.c */; };
    8.21 +		00938E3A108A37800009CF19 /* music_mod.h in Headers */ = {isa = PBXBuildFile; fileRef = 00938E32108A37800009CF19 /* music_mod.h */; };
    8.22 +		00938E4E108A397A0009CF19 /* dynamic_flac.c in Sources */ = {isa = PBXBuildFile; fileRef = 00938E49108A397A0009CF19 /* dynamic_flac.c */; };
    8.23 +		00938E4F108A397A0009CF19 /* dynamic_flac.h in Headers */ = {isa = PBXBuildFile; fileRef = 00938E4A108A397A0009CF19 /* dynamic_flac.h */; };
    8.24 +		00938E50108A397A0009CF19 /* dynamic_mod.c in Sources */ = {isa = PBXBuildFile; fileRef = 00938E4B108A397A0009CF19 /* dynamic_mod.c */; };
    8.25 +		00938E51108A397A0009CF19 /* dynamic_mp3.h in Headers */ = {isa = PBXBuildFile; fileRef = 00938E4C108A397A0009CF19 /* dynamic_mp3.h */; };
    8.26 +		00938E52108A397A0009CF19 /* dynamic_ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = 00938E4D108A397A0009CF19 /* dynamic_ogg.h */; };
    8.27 +		00938E53108A397A0009CF19 /* dynamic_flac.c in Sources */ = {isa = PBXBuildFile; fileRef = 00938E49108A397A0009CF19 /* dynamic_flac.c */; };
    8.28 +		00938E54108A397A0009CF19 /* dynamic_flac.h in Headers */ = {isa = PBXBuildFile; fileRef = 00938E4A108A397A0009CF19 /* dynamic_flac.h */; };
    8.29 +		00938E55108A397A0009CF19 /* dynamic_mod.c in Sources */ = {isa = PBXBuildFile; fileRef = 00938E4B108A397A0009CF19 /* dynamic_mod.c */; };
    8.30 +		00938E56108A397A0009CF19 /* dynamic_mp3.h in Headers */ = {isa = PBXBuildFile; fileRef = 00938E4C108A397A0009CF19 /* dynamic_mp3.h */; };
    8.31 +		00938E57108A397A0009CF19 /* dynamic_ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = 00938E4D108A397A0009CF19 /* dynamic_ogg.h */; };
    8.32 +		00938EF8108A4CD20009CF19 /* mikmod.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 00938E1B108A36520009CF19 /* mikmod.framework */; };
    8.33 +		00939015108A5C470009CF19 /* smpeg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00939014108A5C470009CF19 /* smpeg.framework */; };
    8.34 +		00939025108A5C600009CF19 /* smpeg.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 00939014108A5C470009CF19 /* smpeg.framework */; };
    8.35 +		0448E8AE108B937A00C9D3EA /* native_midi_macosx.c in Sources */ = {isa = PBXBuildFile; fileRef = 0448E8AD108B937A00C9D3EA /* native_midi_macosx.c */; };
    8.36 +		0448E8AF108B937A00C9D3EA /* native_midi_macosx.c in Sources */ = {isa = PBXBuildFile; fileRef = 0448E8AD108B937A00C9D3EA /* native_midi_macosx.c */; };
    8.37 +		04A8FCA60A19CAEC0046373F /* dynamic_mp3.c in Sources */ = {isa = PBXBuildFile; fileRef = 04A8FCA40A19CAEC0046373F /* dynamic_mp3.c */; };
    8.38 +		04A8FCA70A19CAEC0046373F /* dynamic_mp3.c in Sources */ = {isa = PBXBuildFile; fileRef = 04A8FCA40A19CAEC0046373F /* dynamic_mp3.c */; };
    8.39 +		04A8FCAB0A19CB070046373F /* dynamic_ogg.c in Sources */ = {isa = PBXBuildFile; fileRef = 04A8FCA90A19CB070046373F /* dynamic_ogg.c */; };
    8.40 +		04A8FCAC0A19CB070046373F /* dynamic_ogg.c in Sources */ = {isa = PBXBuildFile; fileRef = 04A8FCA90A19CB070046373F /* dynamic_ogg.c */; };
    8.41 +		BE1FA8B907AF96B2004B6283 /* music_cmd.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B87B012FB8CD7F000001 /* music_cmd.h */; };
    8.42 +		BE1FA8BA07AF96B2004B6283 /* music_ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B87D012FB8CD7F000001 /* music_ogg.h */; };
    8.43 +		BE1FA8BB07AF96B2004B6283 /* common.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B881012FB8CD7F000001 /* common.h */; };
    8.44 +		BE1FA8BC07AF96B2004B6283 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B882012FB8CD7F000001 /* config.h */; };
    8.45 +		BE1FA8BD07AF96B2004B6283 /* ctrlmode.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B884012FB8CD7F000001 /* ctrlmode.h */; };
    8.46 +		BE1FA8BE07AF96B2004B6283 /* filter.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B886012FB8CD7F000001 /* filter.h */; };
    8.47 +		BE1FA8BF07AF96B2004B6283 /* instrum.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B888012FB8CD7F000001 /* instrum.h */; };
    8.48 +		BE1FA8C007AF96B2004B6283 /* mix.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B88A012FB8CD7F000001 /* mix.h */; };
    8.49 +		BE1FA8C107AF96B2004B6283 /* output.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B88C012FB8CD7F000001 /* output.h */; };
    8.50 +		BE1FA8C207AF96B2004B6283 /* playmidi.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B88E012FB8CD7F000001 /* playmidi.h */; };
    8.51 +		BE1FA8C307AF96B2004B6283 /* readmidi.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B890012FB8CD7F000001 /* readmidi.h */; };
    8.52 +		BE1FA8C407AF96B2004B6283 /* resample.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B892012FB8CD7F000001 /* resample.h */; };
    8.53 +		BE1FA8C507AF96B2004B6283 /* tables.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B896012FB8CD7F000001 /* tables.h */; };
    8.54 +		BE1FA8C607AF96B2004B6283 /* timidity.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B898012FB8CD7F000001 /* timidity.h */; };
    8.55 +		BE1FA8C707AF96B2004B6283 /* wavestream.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B89C012FB8CD7F000001 /* wavestream.h */; };
    8.56 +		BE1FA8C807AF96B2004B6283 /* effects_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F567D63E01CD881401F3E8B9 /* effects_internal.h */; };
    8.57 +		BE1FA8C907AF96B2004B6283 /* load_aiff.h in Headers */ = {isa = PBXBuildFile; fileRef = F567D64801CD88A701F3E8B9 /* load_aiff.h */; };
    8.58 +		BE1FA8CA07AF96B2004B6283 /* load_voc.h in Headers */ = {isa = PBXBuildFile; fileRef = F567D64A01CD88A701F3E8B9 /* load_voc.h */; };
    8.59 +		BE1FA8CD07AF96B2004B6283 /* SDL_mixer.h in Headers */ = {isa = PBXBuildFile; fileRef = 1014BAEA010A4B677F000001 /* SDL_mixer.h */; settings = {ATTRIBUTES = (Public, ); }; };
    8.60 +		BE1FA8CE07AF96B2004B6283 /* load_ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = B2A42D0F03FAC6A400A8000A /* load_ogg.h */; };
    8.61 +		BE1FA8E707AF96B2004B6283 /* mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B879012FB8CD7F000001 /* mixer.c */; };
    8.62 +		BE1FA8E807AF96B2004B6283 /* music_cmd.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B87A012FB8CD7F000001 /* music_cmd.c */; };
    8.63 +		BE1FA8E907AF96B2004B6283 /* music_ogg.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B87C012FB8CD7F000001 /* music_ogg.c */; };
    8.64 +		BE1FA8EA07AF96B2004B6283 /* music.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B87E012FB8CD7F000001 /* music.c */; };
    8.65 +		BE1FA8EB07AF96B2004B6283 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B880012FB8CD7F000001 /* common.c */; };
    8.66 +		BE1FA8EC07AF96B2004B6283 /* ctrlmode.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B883012FB8CD7F000001 /* ctrlmode.c */; };
    8.67 +		BE1FA8ED07AF96B2004B6283 /* filter.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B885012FB8CD7F000001 /* filter.c */; };
    8.68 +		BE1FA8EE07AF96B2004B6283 /* instrum.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B887012FB8CD7F000001 /* instrum.c */; };
    8.69 +		BE1FA8EF07AF96B2004B6283 /* mix.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B889012FB8CD7F000001 /* mix.c */; };
    8.70 +		BE1FA8F007AF96B2004B6283 /* output.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B88B012FB8CD7F000001 /* output.c */; };
    8.71 +		BE1FA8F107AF96B2004B6283 /* playmidi.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B88D012FB8CD7F000001 /* playmidi.c */; };
    8.72 +		BE1FA8F207AF96B2004B6283 /* readmidi.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B88F012FB8CD7F000001 /* readmidi.c */; };
    8.73 +		BE1FA8F307AF96B2004B6283 /* resample.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B891012FB8CD7F000001 /* resample.c */; };
    8.74 +		BE1FA8F407AF96B2004B6283 /* sdl_a.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B893012FB8CD7F000001 /* sdl_a.c */; };
    8.75 +		BE1FA8F507AF96B2004B6283 /* sdl_c.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B894012FB8CD7F000001 /* sdl_c.c */; };
    8.76 +		BE1FA8F607AF96B2004B6283 /* tables.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B895012FB8CD7F000001 /* tables.c */; };
    8.77 +		BE1FA8F707AF96B2004B6283 /* timidity.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B897012FB8CD7F000001 /* timidity.c */; };
    8.78 +		BE1FA8F807AF96B2004B6283 /* wavestream.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B89B012FB8CD7F000001 /* wavestream.c */; };
    8.79 +		BE1FA8F907AF96B2004B6283 /* effect_position.c in Sources */ = {isa = PBXBuildFile; fileRef = F567D63B01CD881401F3E8B9 /* effect_position.c */; };
    8.80 +		BE1FA8FA07AF96B2004B6283 /* effect_stereoreverse.c in Sources */ = {isa = PBXBuildFile; fileRef = F567D63C01CD881401F3E8B9 /* effect_stereoreverse.c */; };
    8.81 +		BE1FA8FB07AF96B2004B6283 /* effects_internal.c in Sources */ = {isa = PBXBuildFile; fileRef = F567D63D01CD881401F3E8B9 /* effects_internal.c */; };
    8.82 +		BE1FA8FC07AF96B2004B6283 /* load_aiff.c in Sources */ = {isa = PBXBuildFile; fileRef = F567D64701CD88A701F3E8B9 /* load_aiff.c */; };
    8.83 +		BE1FA8FD07AF96B2004B6283 /* load_voc.c in Sources */ = {isa = PBXBuildFile; fileRef = F567D64901CD88A701F3E8B9 /* load_voc.c */; };
    8.84 +		BE1FA90007AF96B2004B6283 /* load_ogg.c in Sources */ = {isa = PBXBuildFile; fileRef = B2A42D0E03FAC6A400A8000A /* load_ogg.c */; };
    8.85 +		BE1FA90207AF96B2004B6283 /* SDL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1FA8AE07AF95F7004B6283 /* SDL.framework */; };
    8.86 +		BE1FA90C07AF96B2004B6283 /* music_cmd.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B87B012FB8CD7F000001 /* music_cmd.h */; };
    8.87 +		BE1FA90D07AF96B2004B6283 /* music_ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B87D012FB8CD7F000001 /* music_ogg.h */; };
    8.88 +		BE1FA90E07AF96B2004B6283 /* common.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B881012FB8CD7F000001 /* common.h */; };
    8.89 +		BE1FA90F07AF96B2004B6283 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B882012FB8CD7F000001 /* config.h */; };
    8.90 +		BE1FA91007AF96B2004B6283 /* ctrlmode.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B884012FB8CD7F000001 /* ctrlmode.h */; };
    8.91 +		BE1FA91107AF96B2004B6283 /* filter.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B886012FB8CD7F000001 /* filter.h */; };
    8.92 +		BE1FA91207AF96B2004B6283 /* instrum.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B888012FB8CD7F000001 /* instrum.h */; };
    8.93 +		BE1FA91307AF96B2004B6283 /* mix.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B88A012FB8CD7F000001 /* mix.h */; };
    8.94 +		BE1FA91407AF96B2004B6283 /* output.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B88C012FB8CD7F000001 /* output.h */; };
    8.95 +		BE1FA91507AF96B2004B6283 /* playmidi.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B88E012FB8CD7F000001 /* playmidi.h */; };
    8.96 +		BE1FA91607AF96B2004B6283 /* readmidi.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B890012FB8CD7F000001 /* readmidi.h */; };
    8.97 +		BE1FA91707AF96B2004B6283 /* resample.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B892012FB8CD7F000001 /* resample.h */; };
    8.98 +		BE1FA91807AF96B2004B6283 /* tables.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B896012FB8CD7F000001 /* tables.h */; };
    8.99 +		BE1FA91907AF96B2004B6283 /* timidity.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B898012FB8CD7F000001 /* timidity.h */; };
   8.100 +		BE1FA91A07AF96B2004B6283 /* wavestream.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC1B89C012FB8CD7F000001 /* wavestream.h */; };
   8.101 +		BE1FA91B07AF96B2004B6283 /* effects_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F567D63E01CD881401F3E8B9 /* effects_internal.h */; };
   8.102 +		BE1FA91C07AF96B2004B6283 /* load_aiff.h in Headers */ = {isa = PBXBuildFile; fileRef = F567D64801CD88A701F3E8B9 /* load_aiff.h */; };
   8.103 +		BE1FA91D07AF96B2004B6283 /* load_voc.h in Headers */ = {isa = PBXBuildFile; fileRef = F567D64A01CD88A701F3E8B9 /* load_voc.h */; };
   8.104 +		BE1FA91E07AF96B2004B6283 /* load_ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = B2A42D0F03FAC6A400A8000A /* load_ogg.h */; };
   8.105 +		BE1FA93807AF96B2004B6283 /* mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B879012FB8CD7F000001 /* mixer.c */; };
   8.106 +		BE1FA93907AF96B2004B6283 /* music_cmd.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B87A012FB8CD7F000001 /* music_cmd.c */; };
   8.107 +		BE1FA93A07AF96B2004B6283 /* music_ogg.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B87C012FB8CD7F000001 /* music_ogg.c */; };
   8.108 +		BE1FA93B07AF96B2004B6283 /* music.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B87E012FB8CD7F000001 /* music.c */; };
   8.109 +		BE1FA93C07AF96B2004B6283 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B880012FB8CD7F000001 /* common.c */; };
   8.110 +		BE1FA93D07AF96B2004B6283 /* ctrlmode.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B883012FB8CD7F000001 /* ctrlmode.c */; };
   8.111 +		BE1FA93E07AF96B2004B6283 /* filter.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B885012FB8CD7F000001 /* filter.c */; };
   8.112 +		BE1FA93F07AF96B2004B6283 /* instrum.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B887012FB8CD7F000001 /* instrum.c */; };
   8.113 +		BE1FA94007AF96B2004B6283 /* mix.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B889012FB8CD7F000001 /* mix.c */; };
   8.114 +		BE1FA94107AF96B2004B6283 /* output.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B88B012FB8CD7F000001 /* output.c */; };
   8.115 +		BE1FA94207AF96B2004B6283 /* playmidi.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B88D012FB8CD7F000001 /* playmidi.c */; };
   8.116 +		BE1FA94307AF96B2004B6283 /* readmidi.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B88F012FB8CD7F000001 /* readmidi.c */; };
   8.117 +		BE1FA94407AF96B2004B6283 /* resample.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B891012FB8CD7F000001 /* resample.c */; };
   8.118 +		BE1FA94507AF96B2004B6283 /* sdl_a.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B893012FB8CD7F000001 /* sdl_a.c */; };
   8.119 +		BE1FA94607AF96B2004B6283 /* sdl_c.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B894012FB8CD7F000001 /* sdl_c.c */; };
   8.120 +		BE1FA94707AF96B2004B6283 /* tables.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B895012FB8CD7F000001 /* tables.c */; };
   8.121 +		BE1FA94807AF96B2004B6283 /* timidity.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B897012FB8CD7F000001 /* timidity.c */; };
   8.122 +		BE1FA94907AF96B2004B6283 /* wavestream.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CC1B89B012FB8CD7F000001 /* wavestream.c */; };
   8.123 +		BE1FA94A07AF96B2004B6283 /* effect_position.c in Sources */ = {isa = PBXBuildFile; fileRef = F567D63B01CD881401F3E8B9 /* effect_position.c */; };
   8.124 +		BE1FA94B07AF96B2004B6283 /* effect_stereoreverse.c in Sources */ = {isa = PBXBuildFile; fileRef = F567D63C01CD881401F3E8B9 /* effect_stereoreverse.c */; };
   8.125 +		BE1FA94C07AF96B2004B6283 /* effects_internal.c in Sources */ = {isa = PBXBuildFile; fileRef = F567D63D01CD881401F3E8B9 /* effects_internal.c */; };
   8.126 +		BE1FA94D07AF96B2004B6283 /* load_aiff.c in Sources */ = {isa = PBXBuildFile; fileRef = F567D64701CD88A701F3E8B9 /* load_aiff.c */; };
   8.127 +		BE1FA94E07AF96B2004B6283 /* load_voc.c in Sources */ = {isa = PBXBuildFile; fileRef = F567D64901CD88A701F3E8B9 /* load_voc.c */; };
   8.128 +		BE1FA94F07AF96B2004B6283 /* load_ogg.c in Sources */ = {isa = PBXBuildFile; fileRef = B2A42D0E03FAC6A400A8000A /* load_ogg.c */; };
   8.129 +/* End PBXBuildFile section */
   8.130 +
   8.131 +/* Begin PBXContainerItemProxy section */
   8.132 +		009BF08F1068AE4D00D68177 /* PBXContainerItemProxy */ = {
   8.133 +			isa = PBXContainerItemProxy;
   8.134 +			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
   8.135 +			proxyType = 1;
   8.136 +			remoteGlobalIDString = BE1FA8B407AF96B2004B6283;
   8.137 +			remoteInfo = Framework;
   8.138 +		};
   8.139 +/* End PBXContainerItemProxy section */
   8.140 +
   8.141 +/* Begin PBXCopyFilesBuildPhase section */
   8.142 +		001D90F8108A2CB8006E367C /* Copy Frameworks */ = {
   8.143 +			isa = PBXCopyFilesBuildPhase;
   8.144 +			buildActionMask = 2147483647;
   8.145 +			dstPath = "";
   8.146 +			dstSubfolderSpec = 10;
   8.147 +			files = (
   8.148 +				00939025108A5C600009CF19 /* smpeg.framework in Copy Frameworks */,
   8.149 +				00938EF8108A4CD20009CF19 /* mikmod.framework in Copy Frameworks */,
   8.150 +			);
   8.151 +			name = "Copy Frameworks";
   8.152 +			runOnlyForDeploymentPostprocessing = 0;
   8.153 +		};
   8.154 +/* End PBXCopyFilesBuildPhase section */
   8.155 +
   8.156 +/* Begin PBXFileReference section */
   8.157 +		00938E1B108A36520009CF19 /* mikmod.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = mikmod.framework; path = mikmod/mikmod.framework; sourceTree = "<group>"; };
   8.158 +		00938E2B108A37800009CF19 /* load_flac.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = load_flac.c; path = ../load_flac.c; sourceTree = SOURCE_ROOT; };
   8.159 +		00938E2C108A37800009CF19 /* load_flac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = load_flac.h; path = ../load_flac.h; sourceTree = SOURCE_ROOT; };
   8.160 +		00938E2D108A37800009CF19 /* music_flac.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = music_flac.c; path = ../music_flac.c; sourceTree = SOURCE_ROOT; };
   8.161 +		00938E2E108A37800009CF19 /* music_flac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = music_flac.h; path = ../music_flac.h; sourceTree = SOURCE_ROOT; };
   8.162 +		00938E2F108A37800009CF19 /* music_mad.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = music_mad.c; path = ../music_mad.c; sourceTree = SOURCE_ROOT; };
   8.163 +		00938E30108A37800009CF19 /* music_mad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = music_mad.h; path = ../music_mad.h; sourceTree = SOURCE_ROOT; };
   8.164 +		00938E31108A37800009CF19 /* music_mod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = music_mod.c; path = ../music_mod.c; sourceTree = SOURCE_ROOT; };
   8.165 +		00938E32108A37800009CF19 /* music_mod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = music_mod.h; path = ../music_mod.h; sourceTree = SOURCE_ROOT; };
   8.166 +		00938E49108A397A0009CF19 /* dynamic_flac.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dynamic_flac.c; path = ../dynamic_flac.c; sourceTree = SOURCE_ROOT; };
   8.167 +		00938E4A108A397A0009CF19 /* dynamic_flac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dynamic_flac.h; path = ../dynamic_flac.h; sourceTree = SOURCE_ROOT; };
   8.168 +		00938E4B108A397A0009CF19 /* dynamic_mod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dynamic_mod.c; path = ../dynamic_mod.c; sourceTree = SOURCE_ROOT; };
   8.169 +		00938E4C108A397A0009CF19 /* dynamic_mp3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dynamic_mp3.h; path = ../dynamic_mp3.h; sourceTree = SOURCE_ROOT; };
   8.170 +		00938E4D108A397A0009CF19 /* dynamic_ogg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dynamic_ogg.h; path = ../dynamic_ogg.h; sourceTree = SOURCE_ROOT; };
   8.171 +		00939014108A5C470009CF19 /* smpeg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = smpeg.framework; path = smpeg/smpeg.framework; sourceTree = "<group>"; };
   8.172 +		00F5DE28099185B10051C449 /* Info-Framework__Upgraded_.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-Framework__Upgraded_.plist"; sourceTree = "<group>"; };
   8.173 +		0448E8AD108B937A00C9D3EA /* native_midi_macosx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = native_midi_macosx.c; sourceTree = "<group>"; };
   8.174 +		04A8FCA40A19CAEC0046373F /* dynamic_mp3.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = dynamic_mp3.c; path = ../dynamic_mp3.c; sourceTree = SOURCE_ROOT; };
   8.175 +		04A8FCA90A19CB070046373F /* dynamic_ogg.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = dynamic_ogg.c; path = ../dynamic_ogg.c; sourceTree = SOURCE_ROOT; };
   8.176 +		1014BAEA010A4B677F000001 /* SDL_mixer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SDL_mixer.h; path = ../SDL_mixer.h; sourceTree = SOURCE_ROOT; };
   8.177 +		5CC1B879012FB8CD7F000001 /* mixer.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = mixer.c; path = ../mixer.c; sourceTree = "<group>"; };
   8.178 +		5CC1B87A012FB8CD7F000001 /* music_cmd.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = music_cmd.c; path = ../music_cmd.c; sourceTree = "<group>"; };
   8.179 +		5CC1B87B012FB8CD7F000001 /* music_cmd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = music_cmd.h; path = ../music_cmd.h; sourceTree = "<group>"; };
   8.180 +		5CC1B87C012FB8CD7F000001 /* music_ogg.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = music_ogg.c; path = ../music_ogg.c; sourceTree = "<group>"; };
   8.181 +		5CC1B87D012FB8CD7F000001 /* music_ogg.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = music_ogg.h; path = ../music_ogg.h; sourceTree = "<group>"; };
   8.182 +		5CC1B87E012FB8CD7F000001 /* music.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = music.c; path = ../music.c; sourceTree = "<group>"; };
   8.183 +		5CC1B880012FB8CD7F000001 /* common.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = common.c; sourceTree = "<group>"; };
   8.184 +		5CC1B881012FB8CD7F000001 /* common.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = "<group>"; };
   8.185 +		5CC1B882012FB8CD7F000001 /* config.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
   8.186 +		5CC1B883012FB8CD7F000001 /* ctrlmode.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ctrlmode.c; sourceTree = "<group>"; };
   8.187 +		5CC1B884012FB8CD7F000001 /* ctrlmode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ctrlmode.h; sourceTree = "<group>"; };
   8.188 +		5CC1B885012FB8CD7F000001 /* filter.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = filter.c; sourceTree = "<group>"; };
   8.189 +		5CC1B886012FB8CD7F000001 /* filter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = filter.h; sourceTree = "<group>"; };
   8.190 +		5CC1B887012FB8CD7F000001 /* instrum.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = instrum.c; sourceTree = "<group>"; };
   8.191 +		5CC1B888012FB8CD7F000001 /* instrum.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = instrum.h; sourceTree = "<group>"; };
   8.192 +		5CC1B889012FB8CD7F000001 /* mix.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = mix.c; sourceTree = "<group>"; };
   8.193 +		5CC1B88A012FB8CD7F000001 /* mix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = mix.h; sourceTree = "<group>"; };
   8.194 +		5CC1B88B012FB8CD7F000001 /* output.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = output.c; sourceTree = "<group>"; };
   8.195 +		5CC1B88C012FB8CD7F000001 /* output.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = output.h; sourceTree = "<group>"; };
   8.196 +		5CC1B88D012FB8CD7F000001 /* playmidi.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = playmidi.c; sourceTree = "<group>"; };
   8.197 +		5CC1B88E012FB8CD7F000001 /* playmidi.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = playmidi.h; sourceTree = "<group>"; };
   8.198 +		5CC1B88F012FB8CD7F000001 /* readmidi.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = readmidi.c; sourceTree = "<group>"; };
   8.199 +		5CC1B890012FB8CD7F000001 /* readmidi.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = readmidi.h; sourceTree = "<group>"; };
   8.200 +		5CC1B891012FB8CD7F000001 /* resample.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = resample.c; sourceTree = "<group>"; };
   8.201 +		5CC1B892012FB8CD7F000001 /* resample.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = resample.h; sourceTree = "<group>"; };
   8.202 +		5CC1B893012FB8CD7F000001 /* sdl_a.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = sdl_a.c; sourceTree = "<group>"; };
   8.203 +		5CC1B894012FB8CD7F000001 /* sdl_c.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = sdl_c.c; sourceTree = "<group>"; };
   8.204 +		5CC1B895012FB8CD7F000001 /* tables.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = tables.c; sourceTree = "<group>"; };
   8.205 +		5CC1B896012FB8CD7F000001 /* tables.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = tables.h; sourceTree = "<group>"; };
   8.206 +		5CC1B897012FB8CD7F000001 /* timidity.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = timidity.c; sourceTree = "<group>"; };
   8.207 +		5CC1B898012FB8CD7F000001 /* timidity.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = timidity.h; sourceTree = "<group>"; };
   8.208 +		5CC1B89B012FB8CD7F000001 /* wavestream.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = wavestream.c; path = ../wavestream.c; sourceTree = "<group>"; };
   8.209 +		5CC1B89C012FB8CD7F000001 /* wavestream.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = wavestream.h; path = ../wavestream.h; sourceTree = "<group>"; };
   8.210 +		B2A42D0E03FAC6A400A8000A /* load_ogg.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = load_ogg.c; path = ../load_ogg.c; sourceTree = SOURCE_ROOT; };
   8.211 +		B2A42D0F03FAC6A400A8000A /* load_ogg.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = load_ogg.h; path = ../load_ogg.h; sourceTree = SOURCE_ROOT; };
   8.212 +		BE1FA8AE07AF95F7004B6283 /* SDL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL.framework; path = /Library/Frameworks/SDL.framework; sourceTree = "<absolute>"; };
   8.213 +		BE1FA90507AF96B2004B6283 /* Info-Framework__Upgraded_.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-Framework__Upgraded_.plist"; sourceTree = "<group>"; };
   8.214 +		BE1FA90607AF96B2004B6283 /* SDL_mixer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SDL_mixer.framework; sourceTree = BUILT_PRODUCTS_DIR; };
   8.215 +		BE1FA95407AF96B2004B6283 /* libSDL_mixer.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL_mixer.a; sourceTree = BUILT_PRODUCTS_DIR; };
   8.216 +		BE1FA95807AF96B3004B6283 /* Create DMG */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "Create DMG"; sourceTree = BUILT_PRODUCTS_DIR; };
   8.217 +		F51BFB0101F724BE01D3D55B /* native_midi.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = native_midi.h; sourceTree = "<group>"; };
   8.218 +		F567D63B01CD881401F3E8B9 /* effect_position.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = effect_position.c; path = ../effect_position.c; sourceTree = SOURCE_ROOT; };
   8.219 +		F567D63C01CD881401F3E8B9 /* effect_stereoreverse.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = effect_stereoreverse.c; path = ../effect_stereoreverse.c; sourceTree = SOURCE_ROOT; };
   8.220 +		F567D63D01CD881401F3E8B9 /* effects_internal.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = effects_internal.c; path = ../effects_internal.c; sourceTree = SOURCE_ROOT; };
   8.221 +		F567D63E01CD881401F3E8B9 /* effects_internal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = effects_internal.h; path = ../effects_internal.h; sourceTree = SOURCE_ROOT; };
   8.222 +		F567D64701CD88A701F3E8B9 /* load_aiff.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = load_aiff.c; path = ../load_aiff.c; sourceTree = SOURCE_ROOT; };
   8.223 +		F567D64801CD88A701F3E8B9 /* load_aiff.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = load_aiff.h; path = ../load_aiff.h; sourceTree = SOURCE_ROOT; };
   8.224 +		F567D64901CD88A701F3E8B9 /* load_voc.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = load_voc.c; path = ../load_voc.c; sourceTree = SOURCE_ROOT; };
   8.225 +		F567D64A01CD88A701F3E8B9 /* load_voc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = load_voc.h; path = ../load_voc.h; sourceTree = SOURCE_ROOT; };
   8.226 +		F59C710300D5CB5801000001 /* ReadMe.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = ReadMe.txt; sourceTree = "<group>"; };
   8.227 +		F59C710400D5CB5801000001 /* Welcome.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Welcome.txt; sourceTree = "<group>"; };
   8.228 +		F59C710600D5CB5801000001 /* SDL_mixer.info */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SDL_mixer.info; sourceTree = "<group>"; };
   8.229 +/* End PBXFileReference section */
   8.230 +
   8.231 +/* Begin PBXFrameworksBuildPhase section */
   8.232 +		BE1FA90107AF96B2004B6283 /* Frameworks */ = {
   8.233 +			isa = PBXFrameworksBuildPhase;
   8.234 +			buildActionMask = 2147483647;
   8.235 +			files = (
   8.236 +				BE1FA90207AF96B2004B6283 /* SDL.framework in Frameworks */,
   8.237 +				00938E1C108A36520009CF19 /* mikmod.framework in Frameworks */,
   8.238 +				00939015108A5C470009CF19 /* smpeg.framework in Frameworks */,
   8.239 +			);
   8.240 +			runOnlyForDeploymentPostprocessing = 0;
   8.241 +		};
   8.242 +		BE1FA95207AF96B2004B6283 /* Frameworks */ = {
   8.243 +			isa = PBXFrameworksBuildPhase;
   8.244 +			buildActionMask = 2147483647;
   8.245 +			files = (
   8.246 +			);
   8.247 +			runOnlyForDeploymentPostprocessing = 0;
   8.248 +		};
   8.249 +/* End PBXFrameworksBuildPhase section */
   8.250 +
   8.251 +/* Begin PBXGroup section */
   8.252 +		0153844A006D81B07F000001 /* Public Headers */ = {
   8.253 +			isa = PBXGroup;
   8.254 +			children = (
   8.255 +				1014BAEA010A4B677F000001 /* SDL_mixer.h */,
   8.256 +			);
   8.257 +			name = "Public Headers";
   8.258 +			sourceTree = "<group>";
   8.259 +		};
   8.260 +		034768DDFF38A45A11DB9C8B /* Products */ = {
   8.261 +			isa = PBXGroup;
   8.262 +			children = (
   8.263 +				089C1665FE841158C02AAC07 /* Resources */,
   8.264 +				BE1FA90607AF96B2004B6283 /* SDL_mixer.framework */,
   8.265 +				BE1FA95407AF96B2004B6283 /* libSDL_mixer.a */,
   8.266 +				BE1FA95807AF96B3004B6283 /* Create DMG */,
   8.267 +			);
   8.268 +			name = Products;
   8.269 +			sourceTree = "<group>";
   8.270 +		};
   8.271 +		0867D691FE84028FC02AAC07 /* SDL_mixerFramework */ = {
   8.272 +			isa = PBXGroup;
   8.273 +			children = (
   8.274 +				F59C70FC00D5CB5801000001 /* pkg-support */,
   8.275 +				0153844A006D81B07F000001 /* Public Headers */,
   8.276 +				08FB77ACFE841707C02AAC07 /* Library Source */,
   8.277 +				BE1FA8AC07AF95D4004B6283 /* Frameworks */,
   8.278 +				034768DDFF38A45A11DB9C8B /* Products */,
   8.279 +				BE1FA90507AF96B2004B6283 /* Info-Framework__Upgraded_.plist */,
   8.280 +			);
   8.281 +			name = SDL_mixerFramework;
   8.282 +			sourceTree = "<group>";
   8.283 +		};
   8.284 +		089C1665FE841158C02AAC07 /* Resources */ = {
   8.285 +			isa = PBXGroup;
   8.286 +			children = (
   8.287 +			);
   8.288 +			name = Resources;
   8.289 +			sourceTree = "<group>";
   8.290 +		};
   8.291 +		08FB77ACFE841707C02AAC07 /* Library Source */ = {
   8.292 +			isa = PBXGroup;
   8.293 +			children = (
   8.294 +				00938E49108A397A0009CF19 /* dynamic_flac.c */,
   8.295 +				00938E4A108A397A0009CF19 /* dynamic_flac.h */,
   8.296 +				00938E4B108A397A0009CF19 /* dynamic_mod.c */,
   8.297 +				00938E4C108A397A0009CF19 /* dynamic_mp3.h */,
   8.298 +				00938E4D108A397A0009CF19 /* dynamic_ogg.h */,
   8.299 +				00938E2B108A37800009CF19 /* load_flac.c */,
   8.300 +				00938E2C108A37800009CF19 /* load_flac.h */,
   8.301 +				00938E2D108A37800009CF19 /* music_flac.c */,
   8.302 +				00938E2E108A37800009CF19 /* music_flac.h */,
   8.303 +				00938E2F108A37800009CF19 /* music_mad.c */,
   8.304 +				00938E30108A37800009CF19 /* music_mad.h */,
   8.305 +				00938E31108A37800009CF19 /* music_mod.c */,
   8.306 +				00938E32108A37800009CF19 /* music_mod.h */,
   8.307 +				04A8FCA90A19CB070046373F /* dynamic_ogg.c */,
   8.308 +				04A8FCA40A19CAEC0046373F /* dynamic_mp3.c */,
   8.309 +				F567D64701CD88A701F3E8B9 /* load_aiff.c */,
   8.310 +				F567D64801CD88A701F3E8B9 /* load_aiff.h */,
   8.311 +				B2A42D0E03FAC6A400A8000A /* load_ogg.c */,
   8.312 +				B2A42D0F03FAC6A400A8000A /* load_ogg.h */,
   8.313 +				F567D64901CD88A701F3E8B9 /* load_voc.c */,
   8.314 +				F567D64A01CD88A701F3E8B9 /* load_voc.h */,
   8.315 +				5CC1B879012FB8CD7F000001 /* mixer.c */,
   8.316 +				5CC1B87E012FB8CD7F000001 /* music.c */,
   8.317 +				5CC1B87A012FB8CD7F000001 /* music_cmd.c */,
   8.318 +				5CC1B87B012FB8CD7F000001 /* music_cmd.h */,
   8.319 +				5CC1B87C012FB8CD7F000001 /* music_ogg.c */,
   8.320 +				5CC1B87D012FB8CD7F000001 /* music_ogg.h */,
   8.321 +				5CC1B89B012FB8CD7F000001 /* wavestream.c */,
   8.322 +				5CC1B89C012FB8CD7F000001 /* wavestream.h */,
   8.323 +				F567D63B01CD881401F3E8B9 /* effect_position.c */,
   8.324 +				F567D63C01CD881401F3E8B9 /* effect_stereoreverse.c */,
   8.325 +				F567D63D01CD881401F3E8B9 /* effects_internal.c */,
   8.326 +				F567D63E01CD881401F3E8B9 /* effects_internal.h */,
   8.327 +				5CC1B87F012FB8CD7F000001 /* timidity */,
   8.328 +				F51BFAFD01F724BE01D3D55B /* native_midi */,
   8.329 +			);
   8.330 +			name = "Library Source";
   8.331 +			sourceTree = "<group>";
   8.332 +		};
   8.333 +		5CC1B87F012FB8CD7F000001 /* timidity */ = {
   8.334 +			isa = PBXGroup;
   8.335 +			children = (
   8.336 +				5CC1B880012FB8CD7F000001 /* common.c */,
   8.337 +				5CC1B881012FB8CD7F000001 /* common.h */,
   8.338 +				5CC1B882012FB8CD7F000001 /* config.h */,
   8.339 +				5CC1B883012FB8CD7F000001 /* ctrlmode.c */,
   8.340 +				5CC1B884012FB8CD7F000001 /* ctrlmode.h */,
   8.341 +				5CC1B885012FB8CD7F000001 /* filter.c */,
   8.342 +				5CC1B886012FB8CD7F000001 /* filter.h */,
   8.343 +				5CC1B887012FB8CD7F000001 /* instrum.c */,
   8.344 +				5CC1B888012FB8CD7F000001 /* instrum.h */,
   8.345 +				5CC1B889012FB8CD7F000001 /* mix.c */,
   8.346 +				5CC1B88A012FB8CD7F000001 /* mix.h */,
   8.347 +				5CC1B88B012FB8CD7F000001 /* output.c */,
   8.348 +				5CC1B88C012FB8CD7F000001 /* output.h */,
   8.349 +				5CC1B88D012FB8CD7F000001 /* playmidi.c */,
   8.350 +				5CC1B88E012FB8CD7F000001 /* playmidi.h */,
   8.351 +				5CC1B88F012FB8CD7F000001 /* readmidi.c */,
   8.352 +				5CC1B890012FB8CD7F000001 /* readmidi.h */,
   8.353 +				5CC1B891012FB8CD7F000001 /* resample.c */,
   8.354 +				5CC1B892012FB8CD7F000001 /* resample.h */,
   8.355 +				5CC1B893012FB8CD7F000001 /* sdl_a.c */,
   8.356 +				5CC1B894012FB8CD7F000001 /* sdl_c.c */,
   8.357 +				5CC1B895012FB8CD7F000001 /* tables.c */,
   8.358 +				5CC1B896012FB8CD7F000001 /* tables.h */,
   8.359 +				5CC1B897012FB8CD7F000001 /* timidity.c */,
   8.360 +				5CC1B898012FB8CD7F000001 /* timidity.h */,
   8.361 +			);
   8.362 +			name = timidity;
   8.363 +			path = ../timidity;
   8.364 +			sourceTree = "<group>";
   8.365 +		};
   8.366 +		BE1FA8AC07AF95D4004B6283 /* Frameworks */ = {
   8.367 +			isa = PBXGroup;
   8.368 +			children = (
   8.369 +				BE1FA8AD07AF95DC004B6283 /* Linked Frameworks */,
   8.370 +			);
   8.371 +			name = Frameworks;
   8.372 +			sourceTree = "<group>";
   8.373 +		};
   8.374 +		BE1FA8AD07AF95DC004B6283 /* Linked Frameworks */ = {
   8.375 +			isa = PBXGroup;
   8.376 +			children = (
   8.377 +				BE1FA8AE07AF95F7004B6283 /* SDL.framework */,
   8.378 +				00938E1B108A36520009CF19 /* mikmod.framework */,
   8.379 +				00939014108A5C470009CF19 /* smpeg.framework */,
   8.380 +			);
   8.381 +			name = "Linked Frameworks";
   8.382 +			sourceTree = "<group>";
   8.383 +		};
   8.384 +		F51BFAFD01F724BE01D3D55B /* native_midi */ = {
   8.385 +			isa = PBXGroup;
   8.386 +			children = (
   8.387 +				0448E8AD108B937A00C9D3EA /* native_midi_macosx.c */,
   8.388 +				F51BFB0101F724BE01D3D55B /* native_midi.h */,
   8.389 +			);
   8.390 +			name = native_midi;
   8.391 +			path = ../native_midi;
   8.392 +			sourceTree = SOURCE_ROOT;
   8.393 +		};
   8.394 +		F59C70FC00D5CB5801000001 /* pkg-support */ = {
   8.395 +			isa = PBXGroup;
   8.396 +			children = (
   8.397 +				F59C710100D5CB5801000001 /* resources */,
   8.398 +				F59C710600D5CB5801000001 /* SDL_mixer.info */,
   8.399 +			);
   8.400 +			path = "pkg-support";
   8.401 +			sourceTree = SOURCE_ROOT;
   8.402 +		};
   8.403 +		F59C710100D5CB5801000001 /* resources */ = {
   8.404 +			isa = PBXGroup;
   8.405 +			children = (
   8.406 +				F59C710300D5CB5801000001 /* ReadMe.txt */,
   8.407 +				F59C710400D5CB5801000001 /* Welcome.txt */,
   8.408 +			);
   8.409 +			path = resources;
   8.410 +			sourceTree = "<group>";
   8.411 +		};
   8.412 +/* End PBXGroup section */
   8.413 +
   8.414 +/* Begin PBXHeadersBuildPhase section */
   8.415 +		BE1FA8B507AF96B2004B6283 /* Headers */ = {
   8.416 +			isa = PBXHeadersBuildPhase;
   8.417 +			buildActionMask = 2147483647;
   8.418 +			files = (
   8.419 +				BE1FA8B907AF96B2004B6283 /* music_cmd.h in Headers */,
   8.420 +				BE1FA8BA07AF96B2004B6283 /* music_ogg.h in Headers */,
   8.421 +				BE1FA8BB07AF96B2004B6283 /* common.h in Headers */,
   8.422 +				BE1FA8BC07AF96B2004B6283 /* config.h in Headers */,
   8.423 +				BE1FA8BD07AF96B2004B6283 /* ctrlmode.h in Headers */,
   8.424 +				BE1FA8BE07AF96B2004B6283 /* filter.h in Headers */,
   8.425 +				BE1FA8BF07AF96B2004B6283 /* instrum.h in Headers */,
   8.426 +				BE1FA8C007AF96B2004B6283 /* mix.h in Headers */,
   8.427 +				BE1FA8C107AF96B2004B6283 /* output.h in Headers */,
   8.428 +				BE1FA8C207AF96B2004B6283 /* playmidi.h in Headers */,
   8.429 +				BE1FA8C307AF96B2004B6283 /* readmidi.h in Headers */,
   8.430 +				BE1FA8C407AF96B2004B6283 /* resample.h in Headers */,
   8.431 +				BE1FA8C507AF96B2004B6283 /* tables.h in Headers */,
   8.432 +				BE1FA8C607AF96B2004B6283 /* timidity.h in Headers */,
   8.433 +				BE1FA8C707AF96B2004B6283 /* wavestream.h in Headers */,
   8.434 +				BE1FA8C807AF96B2004B6283 /* effects_internal.h in Headers */,
   8.435 +				BE1FA8C907AF96B2004B6283 /* load_aiff.h in Headers */,
   8.436 +				BE1FA8CA07AF96B2004B6283 /* load_voc.h in Headers */,
   8.437 +				BE1FA8CD07AF96B2004B6283 /* SDL_mixer.h in Headers */,
   8.438 +				BE1FA8CE07AF96B2004B6283 /* load_ogg.h in Headers */,
   8.439 +				00938E34108A37800009CF19 /* load_flac.h in Headers */,
   8.440 +				00938E36108A37800009CF19 /* music_flac.h in Headers */,
   8.441 +				00938E38108A37800009CF19 /* music_mad.h in Headers */,
   8.442 +				00938E3A108A37800009CF19 /* music_mod.h in Headers */,
   8.443 +				00938E4F108A397A0009CF19 /* dynamic_flac.h in Headers */,
   8.444 +				00938E51108A397A0009CF19 /* dynamic_mp3.h in Headers */,
   8.445 +				00938E52108A397A0009CF19 /* dynamic_ogg.h in Headers */,
   8.446 +			);
   8.447 +			runOnlyForDeploymentPostprocessing = 0;
   8.448 +		};
   8.449 +		BE1FA90807AF96B2004B6283 /* Headers */ = {
   8.450 +			isa = PBXHeadersBuildPhase;
   8.451 +			buildActionMask = 2147483647;
   8.452 +			files = (
   8.453 +				BE1FA90C07AF96B2004B6283 /* music_cmd.h in Headers */,
   8.454 +				BE1FA90D07AF96B2004B6283 /* music_ogg.h in Headers */,
   8.455 +				BE1FA90E07AF96B2004B6283 /* common.h in Headers */,
   8.456 +				BE1FA90F07AF96B2004B6283 /* config.h in Headers */,
   8.457 +				BE1FA91007AF96B2004B6283 /* ctrlmode.h in Headers */,
   8.458 +				BE1FA91107AF96B2004B6283 /* filter.h in Headers */,
   8.459 +				BE1FA91207AF96B2004B6283 /* instrum.h in Headers */,
   8.460 +				BE1FA91307AF96B2004B6283 /* mix.h in Headers */,
   8.461 +				BE1FA91407AF96B2004B6283 /* output.h in Headers */,
   8.462 +				BE1FA91507AF96B2004B6283 /* playmidi.h in Headers */,
   8.463 +				BE1FA91607AF96B2004B6283 /* readmidi.h in Headers */,
   8.464 +				BE1FA91707AF96B2004B6283 /* resample.h in Headers */,
   8.465 +				BE1FA91807AF96B2004B6283 /* tables.h in Headers */,
   8.466 +				BE1FA91907AF96B2004B6283 /* timidity.h in Headers */,
   8.467 +				BE1FA91A07AF96B2004B6283 /* wavestream.h in Headers */,
   8.468 +				BE1FA91B07AF96B2004B6283 /* effects_internal.h in Headers */,
   8.469 +				BE1FA91C07AF96B2004B6283 /* load_aiff.h in Headers */,
   8.470 +				BE1FA91D07AF96B2004B6283 /* load_voc.h in Headers */,
   8.471 +				BE1FA91E07AF96B2004B6283 /* load_ogg.h in Headers */,
   8.472 +				00938E54108A397A0009CF19 /* dynamic_flac.h in Headers */,
   8.473 +				00938E56108A397A0009CF19 /* dynamic_mp3.h in Headers */,
   8.474 +				00938E57108A397A0009CF19 /* dynamic_ogg.h in Headers */,
   8.475 +			);
   8.476 +			runOnlyForDeploymentPostprocessing = 0;
   8.477 +		};
   8.478 +/* End PBXHeadersBuildPhase section */
   8.479 +
   8.480 +/* Begin PBXNativeTarget section */
   8.481 +		BE1FA8B407AF96B2004B6283 /* Framework */ = {
   8.482 +			isa = PBXNativeTarget;
   8.483 +			buildConfigurationList = 00B7E48B097EC6B300826121 /* Build configuration list for PBXNativeTarget "Framework" */;
   8.484 +			buildPhases = (
   8.485 +				BE1FA8B507AF96B2004B6283 /* Headers */,
   8.486 +				BE1FA8CF07AF96B2004B6283 /* Resources */,
   8.487 +				BE1FA8D007AF96B2004B6283 /* Sources */,
   8.488 +				BE1FA90107AF96B2004B6283 /* Frameworks */,
   8.489 +				BE1FA90307AF96B2004B6283 /* Rez */,
   8.490 +				001D90F8108A2CB8006E367C /* Copy Frameworks */,
   8.491 +				00938F15108A50740009CF19 /* Create Frameworks symlink */,
   8.492 +			);
   8.493 +			buildRules = (
   8.494 +			);
   8.495 +			comments = "Installed into ~/Library/Frameworks/SDL_mixer.framework\n\nAdd -framework SDL_mixer to your linker flags\nAdd ~/Library/Frameworks/SDL_mixer.framework/Headers to your header search path\nAdd ~/Library/Frameworks to your library search path";
   8.496 +			dependencies = (
   8.497 +			);
   8.498 +			name = Framework;
   8.499 +			productInstallPath = "@executable_path/../Frameworks";
   8.500 +			productName = SDL_mixer;
   8.501 +			productReference = BE1FA90607AF96B2004B6283 /* SDL_mixer.framework */;
   8.502 +			productType = "com.apple.product-type.framework";
   8.503 +		};
   8.504 +		BE1FA90707AF96B2004B6283 /* Static Library */ = {
   8.505 +			isa = PBXNativeTarget;
   8.506 +			buildConfigurationList = 00B7E48F097EC6B300826121 /* Build configuration list for PBXNativeTarget "Static Library" */;
   8.507 +			buildPhases = (
   8.508 +				BE1FA90807AF96B2004B6283 /* Headers */,
   8.509 +				BE1FA92107AF96B2004B6283 /* Sources */,
   8.510 +				BE1FA95207AF96B2004B6283 /* Frameworks */,
   8.511 +				BE1FA95307AF96B2004B6283 /* Rez */,
   8.512 +			);
   8.513 +			buildRules = (
   8.514 +			);
   8.515 +			dependencies = (
   8.516 +			);
   8.517 +			name = "Static Library";
   8.518 +			productInstallPath = /usr/local/lib;
   8.519 +			productName = "Static Library";
   8.520 +			productReference = BE1FA95407AF96B2004B6283 /* libSDL_mixer.a */;
   8.521 +			productType = "com.apple.product-type.library.static";
   8.522 +		};
   8.523 +		BE1FA95507AF96B2004B6283 /* Create DMG */ = {
   8.524 +			isa = PBXNativeTarget;
   8.525 +			buildConfigurationList = 00B7E493097EC6B300826121 /* Build configuration list for PBXNativeTarget "Create DMG" */;
   8.526 +			buildPhases = (
   8.527 +				BE1FA95707AF96B2004B6283 /* ShellScript */,
   8.528 +			);
   8.529 +			buildRules = (
   8.530 +			);
   8.531 +			dependencies = (
   8.532 +				009BF0901068AE4D00D68177 /* PBXTargetDependency */,
   8.533 +			);
   8.534 +			name = "Create DMG";
   8.535 +			productInstallPath = /usr/local/bin;
   8.536 +			productName = "Standard Package";
   8.537 +			productReference = BE1FA95807AF96B3004B6283 /* Create DMG */;
   8.538 +			productType = "com.apple.product-type.tool";
   8.539 +		};
   8.540 +/* End PBXNativeTarget section */
   8.541 +
   8.542 +/* Begin PBXProject section */
   8.543 +		0867D690FE84028FC02AAC07 /* Project object */ = {
   8.544 +			isa = PBXProject;
   8.545 +			buildConfigurationList = 00B7E497097EC6B300826121 /* Build configuration list for PBXProject "SDL_mixer" */;
   8.546 +			compatibilityVersion = "Xcode 2.4";
   8.547 +			hasScannedForEncodings = 1;
   8.548 +			mainGroup = 0867D691FE84028FC02AAC07 /* SDL_mixerFramework */;
   8.549 +			productRefGroup = 034768DDFF38A45A11DB9C8B /* Products */;
   8.550 +			projectDirPath = "";
   8.551 +			projectRoot = "";
   8.552 +			targets = (
   8.553 +				BE1FA8B407AF96B2004B6283 /* Framework */,
   8.554 +				BE1FA90707AF96B2004B6283 /* Static Library */,
   8.555 +				BE1FA95507AF96B2004B6283 /* Create DMG */,
   8.556 +			);
   8.557 +		};
   8.558 +/* End PBXProject section */
   8.559 +
   8.560 +/* Begin PBXResourcesBuildPhase section */
   8.561 +		BE1FA8CF07AF96B2004B6283 /* Resources */ = {
   8.562 +			isa = PBXResourcesBuildPhase;
   8.563 +			buildActionMask = 2147483647;
   8.564 +			files = (
   8.565 +			);
   8.566 +			runOnlyForDeploymentPostprocessing = 0;
   8.567 +		};
   8.568 +/* End PBXResourcesBuildPhase section */
   8.569 +
   8.570 +/* Begin PBXRezBuildPhase section */
   8.571 +		BE1FA90307AF96B2004B6283 /* Rez */ = {
   8.572 +			isa = PBXRezBuildPhase;
   8.573 +			buildActionMask = 2147483647;
   8.574 +			files = (
   8.575 +			);
   8.576 +			runOnlyForDeploymentPostprocessing = 0;
   8.577 +		};
   8.578 +		BE1FA95307AF96B2004B6283 /* Rez */ = {
   8.579 +			isa = PBXRezBuildPhase;
   8.580 +			buildActionMask = 2147483647;
   8.581 +			files = (
   8.582 +			);
   8.583 +			runOnlyForDeploymentPostprocessing = 0;
   8.584 +		};
   8.585 +/* End PBXRezBuildPhase section */
   8.586 +
   8.587 +/* Begin PBXShellScriptBuildPhase section */
   8.588 +		00938F15108A50740009CF19 /* Create Frameworks symlink */ = {
   8.589 +			isa = PBXShellScriptBuildPhase;
   8.590 +			buildActionMask = 2147483647;
   8.591 +			files = (
   8.592 +			);
   8.593 +			inputPaths = (
   8.594 +			);
   8.595 +			name = "Create Frameworks symlink";
   8.596 +			outputPaths = (
   8.597 +			);
   8.598 +			runOnlyForDeploymentPostprocessing = 0;
   8.599 +			shellPath = /bin/sh;
   8.600 +			shellScript = "cd $SYMROOT/$CONFIGURATION/SDL_mixer.framework\nif ! [ -L Frameworks ]; then\n\tln -s Versions/Current/Frameworks Frameworks\nfi\n";
   8.601 +		};
   8.602 +		BE1FA95707AF96B2004B6283 /* ShellScript */ = {
   8.603 +			isa = PBXShellScriptBuildPhase;
   8.604 +			buildActionMask = 12;
   8.605 +			files = (
   8.606 +			);
   8.607 +			runOnlyForDeploymentPostprocessing = 0;
   8.608 +			shellPath = /bin/sh;
   8.609 +			shellScript = "# clean up the framework, remove headers, extra files\nmkdir -p build/dmg-tmp\n/Developer/Tools/CpMac -r $TARGET_BUILD_DIR/SDL_mixer.framework build/dmg-tmp/\ncp pkg-support/resources/ReadMe.txt build/dmg-tmp\n\n# remove the .DS_Store files if any (we may want to provide one in the future for fancy .dmgs)\nrm -rf build/dmg-tmp/.DS_Store\n\n# create the dmg\nhdiutil create -ov -fs HFS+ -volname SDL_mixer -srcfolder build/dmg-tmp build/SDL_mixer.dmg\n\n# clean up\nrm -rf build/dmg-tmp\n\n# compress it???\n#(cd build; gnutar -zcvf SDL_mixer.dmg.tar.gz SDL_mixer.dmg)";
   8.610 +		};
   8.611 +/* End PBXShellScriptBuildPhase section */
   8.612 +
   8.613 +/* Begin PBXSourcesBuildPhase section */
   8.614 +		BE1FA8D007AF96B2004B6283 /* Sources */ = {
   8.615 +			isa = PBXSourcesBuildPhase;
   8.616 +			buildActionMask = 2147483647;
   8.617 +			files = (
   8.618 +				BE1FA8E707AF96B2004B6283 /* mixer.c in Sources */,
   8.619 +				BE1FA8E807AF96B2004B6283 /* music_cmd.c in Sources */,
   8.620 +				BE1FA8E907AF96B2004B6283 /* music_ogg.c in Sources */,
   8.621 +				BE1FA8EA07AF96B2004B6283 /* music.c in Sources */,
   8.622 +				BE1FA8EB07AF96B2004B6283 /* common.c in Sources */,
   8.623 +				BE1FA8EC07AF96B2004B6283 /* ctrlmode.c in Sources */,
   8.624 +				BE1FA8ED07AF96B2004B6283 /* filter.c in Sources */,
   8.625 +				BE1FA8EE07AF96B2004B6283 /* instrum.c in Sources */,
   8.626 +				BE1FA8EF07AF96B2004B6283 /* mix.c in Sources */,
   8.627 +				BE1FA8F007AF96B2004B6283 /* output.c in Sources */,
   8.628 +				BE1FA8F107AF96B2004B6283 /* playmidi.c in Sources */,
   8.629 +				BE1FA8F207AF96B2004B6283 /* readmidi.c in Sources */,
   8.630 +				BE1FA8F307AF96B2004B6283 /* resample.c in Sources */,
   8.631 +				BE1FA8F407AF96B2004B6283 /* sdl_a.c in Sources */,
   8.632 +				BE1FA8F507AF96B2004B6283 /* sdl_c.c in Sources */,
   8.633 +				BE1FA8F607AF96B2004B6283 /* tables.c in Sources */,
   8.634 +				BE1FA8F707AF96B2004B6283 /* timidity.c in Sources */,
   8.635 +				BE1FA8F807AF96B2004B6283 /* wavestream.c in Sources */,
   8.636 +				BE1FA8F907AF96B2004B6283 /* effect_position.c in Sources */,
   8.637 +				BE1FA8FA07AF96B2004B6283 /* effect_stereoreverse.c in Sources */,
   8.638 +				BE1FA8FB07AF96B2004B6283 /* effects_internal.c in Sources */,
   8.639 +				BE1FA8FC07AF96B2004B6283 /* load_aiff.c in Sources */,
   8.640 +				BE1FA8FD07AF96B2004B6283 /* load_voc.c in Sources */,
   8.641 +				BE1FA90007AF96B2004B6283 /* load_ogg.c in Sources */,
   8.642 +				04A8FCA70A19CAEC0046373F /* dynamic_mp3.c in Sources */,
   8.643 +				04A8FCAC0A19CB070046373F /* dynamic_ogg.c in Sources */,
   8.644 +				00938E33108A37800009CF19 /* load_flac.c in Sources */,
   8.645 +				00938E35108A37800009CF19 /* music_flac.c in Sources */,
   8.646 +				00938E37108A37800009CF19 /* music_mad.c in Sources */,
   8.647 +				00938E39108A37800009CF19 /* music_mod.c in Sources */,
   8.648 +				00938E4E108A397A0009CF19 /* dynamic_flac.c in Sources */,
   8.649 +				00938E50108A397A0009CF19 /* dynamic_mod.c in Sources */,
   8.650 +				0448E8AE108B937A00C9D3EA /* native_midi_macosx.c in Sources */,
   8.651 +			);
   8.652 +			runOnlyForDeploymentPostprocessing = 0;
   8.653 +		};
   8.654 +		BE1FA92107AF96B2004B6283 /* Sources */ = {
   8.655 +			isa = PBXSourcesBuildPhase;
   8.656 +			buildActionMask = 2147483647;
   8.657 +			files = (
   8.658 +				BE1FA93807AF96B2004B6283 /* mixer.c in Sources */,
   8.659 +				BE1FA93907AF96B2004B6283 /* music_cmd.c in Sources */,
   8.660 +				BE1FA93A07AF96B2004B6283 /* music_ogg.c in Sources */,
   8.661 +				BE1FA93B07AF96B2004B6283 /* music.c in Sources */,
   8.662 +				BE1FA93C07AF96B2004B6283 /* common.c in Sources */,
   8.663 +				BE1FA93D07AF96B2004B6283 /* ctrlmode.c in Sources */,
   8.664 +				BE1FA93E07AF96B2004B6283 /* filter.c in Sources */,
   8.665 +				BE1FA93F07AF96B2004B6283 /* instrum.c in Sources */,
   8.666 +				BE1FA94007AF96B2004B6283 /* mix.c in Sources */,
   8.667 +				BE1FA94107AF96B2004B6283 /* output.c in Sources */,
   8.668 +				BE1FA94207AF96B2004B6283 /* playmidi.c in Sources */,
   8.669 +				BE1FA94307AF96B2004B6283 /* readmidi.c in Sources */,
   8.670 +				BE1FA94407AF96B2004B6283 /* resample.c in Sources */,
   8.671 +				BE1FA94507AF96B2004B6283 /* sdl_a.c in Sources */,
   8.672 +				BE1FA94607AF96B2004B6283 /* sdl_c.c in Sources */,
   8.673 +				BE1FA94707AF96B2004B6283 /* tables.c in Sources */,
   8.674 +				BE1FA94807AF96B2004B6283 /* timidity.c in Sources */,
   8.675 +				BE1FA94907AF96B2004B6283 /* wavestream.c in Sources */,
   8.676 +				BE1FA94A07AF96B2004B6283 /* effect_position.c in Sources */,
   8.677 +				BE1FA94B07AF96B2004B6283 /* effect_stereoreverse.c in Sources */,
   8.678 +				BE1FA94C07AF96B2004B6283 /* effects_internal.c in Sources */,
   8.679 +				BE1FA94D07AF96B2004B6283 /* load_aiff.c in Sources */,
   8.680 +				BE1FA94E07AF96B2004B6283 /* load_voc.c in Sources */,
   8.681 +				BE1FA94F07AF96B2004B6283 /* load_ogg.c in Sources */,
   8.682 +				04A8FCA60A19CAEC0046373F /* dynamic_mp3.c in Sources */,
   8.683 +				04A8FCAB0A19CB070046373F /* dynamic_ogg.c in Sources */,
   8.684 +				00938E53108A397A0009CF19 /* dynamic_flac.c in Sources */,
   8.685 +				00938E55108A397A0009CF19 /* dynamic_mod.c in Sources */,
   8.686 +				0448E8AF108B937A00C9D3EA /* native_midi_macosx.c in Sources */,
   8.687 +			);
   8.688 +			runOnlyForDeploymentPostprocessing = 0;
   8.689 +		};
   8.690 +/* End PBXSourcesBuildPhase section */
   8.691 +
   8.692 +/* Begin PBXTargetDependency section */
   8.693 +		009BF0901068AE4D00D68177 /* PBXTargetDependency */ = {
   8.694 +			isa = PBXTargetDependency;
   8.695 +			target = BE1FA8B407AF96B2004B6283 /* Framework */;
   8.696 +			targetProxy = 009BF08F1068AE4D00D68177 /* PBXContainerItemProxy */;
   8.697 +		};
   8.698 +/* End PBXTargetDependency section */
   8.699 +
   8.700 +/* Begin XCBuildConfiguration section */
   8.701 +		00B7E48C097EC6B300826121 /* Release */ = {
   8.702 +			isa = XCBuildConfiguration;
   8.703 +			buildSettings = {
   8.704 +				DYLIB_COMPATIBILITY_VERSION = 1;
   8.705 +				DYLIB_CURRENT_VERSION = 1;
   8.706 +				FRAMEWORK_SEARCH_PATHS = (
   8.707 +					"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
   8.708 +					"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
   8.709 +					"$(HOME)/Library/Frameworks",
   8.710 +					/Library/Frameworks,
   8.711 +				);
   8.712 +				FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/mikmod\"";
   8.713 +				FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/mikmod\"";
   8.714 +				FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_3 = "\"$(SRCROOT)/smpeg\"";
   8.715 +				FRAMEWORK_VERSION = A;
   8.716 +				GCC_ENABLE_FIX_AND_CONTINUE = NO;
   8.717 +				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
   8.718 +				GCC_PREPROCESSOR_DEFINITIONS = (
   8.719 +					MACOSX,
   8.720 +					__MACOSX__,
   8.721 +					USE_RWOPS,
   8.722 +					CMD_MUSIC,
   8.723 +					WAV_MUSIC,
   8.724 +					MOD_MUSIC,
   8.725 +					MID_MUSIC,
   8.726 +					USE_NATIVE_MIDI,
   8.727 +					OGG_MUSIC,
   8.728 +					MP3_MUSIC,
   8.729 +				);
   8.730 +				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
   8.731 +				HEADER_SEARCH_PATHS = (
   8.732 +					"$(HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
   8.733 +					"$(HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
   8.734 +					"$(HOME)/Library/Frameworks/SDL.framework/Headers",
   8.735 +					/Library/Frameworks/SDL.framework/Headers,
   8.736 +					vorbis/include,
   8.737 +				);
   8.738 +				HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/mikmod/mikmod.framework/Headers\"";
   8.739 +				HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/smpeg/smpeg.framework/Headers\"";
   8.740 +				INFOPLIST_FILE = "Info-Framework__Upgraded_.plist";
   8.741 +				INSTALL_PATH = "@executable_path/../Frameworks";
   8.742 +				LIBRARY_SEARCH_PATHS = vorbis/lib;
   8.743 +				OTHER_CFLAGS = "";
   8.744 +				OTHER_LDFLAGS = (
   8.745 +					"-framework",
   8.746 +					AudioToolbox,
   8.747 +					"-framework",
   8.748 +					AudioUnit,
   8.749 +					"-framework",
   8.750 +					CoreServices,
   8.751 +					"-lvorbisfile",
   8.752 +					"-lvorbis",
   8.753 +					"-logg",
   8.754 +					"-framework",
   8.755 +					mikmod,
   8.756 +					"-sub_umbrella",
   8.757 +					mikmod,
   8.758 +					"-framework",
   8.759 +					smpeg,
   8.760 +					"-sub_umbrella",
   8.761 +					smpeg,
   8.762 +				);
   8.763 +				PRODUCT_NAME = SDL_mixer;
   8.764 +				SECTORDER_FLAGS = "";
   8.765 +				WARNING_CFLAGS = (
   8.766 +					"-Wall",
   8.767 +					"-Wno-four-char-constants",
   8.768 +				);
   8.769 +				WRAPPER_EXTENSION = framework;
   8.770 +				ZERO_LINK = NO;
   8.771 +			};
   8.772 +			name = Release;
   8.773 +		};
   8.774 +		00B7E48D097EC6B300826121 /* Debug */ = {
   8.775 +			isa = XCBuildConfiguration;
   8.776 +			buildSettings = {
   8.777 +				DYLIB_COMPATIBILITY_VERSION = 1;
   8.778 +				DYLIB_CURRENT_VERSION = 1;
   8.779 +				FRAMEWORK_SEARCH_PATHS = (
   8.780 +					"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
   8.781 +					"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
   8.782 +					"$(HOME)/Library/Frameworks",
   8.783 +					/Library/Frameworks,
   8.784 +				);
   8.785 +				FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/mikmod\"";
   8.786 +				FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/mikmod\"";
   8.787 +				FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_3 = "\"$(SRCROOT)/smpeg\"";
   8.788 +				FRAMEWORK_VERSION = A;
   8.789 +				GCC_DYNAMIC_NO_PIC = NO;
   8.790 +				GCC_ENABLE_FIX_AND_CONTINUE = YES;
   8.791 +				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
   8.792 +				GCC_OPTIMIZATION_LEVEL = 0;
   8.793 +				GCC_PREPROCESSOR_DEFINITIONS = (
   8.794 +					MACOSX,
   8.795 +					__MACOSX__,
   8.796 +					USE_RWOPS,
   8.797 +					CMD_MUSIC,
   8.798 +					WAV_MUSIC,
   8.799 +					MOD_MUSIC,
   8.800 +					MID_MUSIC,
   8.801 +					USE_NATIVE_MIDI,
   8.802 +					OGG_MUSIC,
   8.803 +					MP3_MUSIC,
   8.804 +				);
   8.805 +				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
   8.806 +				HEADER_SEARCH_PATHS = (
   8.807 +					"$(HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
   8.808 +					"$(HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
   8.809 +					"$(HOME)/Library/Frameworks/SDL.framework/Headers",
   8.810 +					/Library/Frameworks/SDL.framework/Headers,
   8.811 +					vorbis/include,
   8.812 +				);
   8.813 +				HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/mikmod/mikmod.framework/Headers\"";
   8.814 +				HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/smpeg/smpeg.framework/Headers\"";
   8.815 +				INFOPLIST_FILE = "Info-Framework__Upgraded_.plist";
   8.816 +				INSTALL_PATH = "@executable_path/../Frameworks";
   8.817 +				LIBRARY_SEARCH_PATHS = vorbis/lib;
   8.818 +				OTHER_CFLAGS = "";
   8.819 +				OTHER_LDFLAGS = (
   8.820 +					"-framework",
   8.821 +					AudioToolbox,
   8.822 +					"-framework",
   8.823 +					AudioUnit,
   8.824 +					"-framework",
   8.825 +					CoreServices,
   8.826 +					"-lvorbisfile",
   8.827 +					"-lvorbis",
   8.828 +					"-logg",
   8.829 +					"-framework",
   8.830 +					mikmod,
   8.831 +					"-sub_umbrella",
   8.832 +					mikmod,
   8.833 +					"-framework",
   8.834 +					smpeg,
   8.835 +					"-sub_umbrella",
   8.836 +					smpeg,
   8.837 +				);
   8.838 +				PRODUCT_NAME = SDL_mixer;
   8.839 +				SECTORDER_FLAGS = "";
   8.840 +				WARNING_CFLAGS = (
   8.841 +					"-Wall",
   8.842 +					"-Wno-four-char-constants",
   8.843 +				);
   8.844 +				WRAPPER_EXTENSION = framework;
   8.845 +				ZERO_LINK = YES;
   8.846 +			};
   8.847 +			name = Debug;
   8.848 +		};
   8.849 +		00B7E48E097EC6B300826121 /* Default */ = {
   8.850 +			isa = XCBuildConfiguration;
   8.851 +			buildSettings = {
   8.852 +				DYLIB_COMPATIBILITY_VERSION = 1;
   8.853 +				DYLIB_CURRENT_VERSION = 1;
   8.854 +				FRAMEWORK_SEARCH_PATHS = (
   8.855 +					"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
   8.856 +					"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
   8.857 +					"$(HOME)/Library/Frameworks",
   8.858 +					/Library/Frameworks,
   8.859 +				);
   8.860 +				FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/mikmod\"";
   8.861 +				FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/mikmod\"";
   8.862 +				FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_3 = "\"$(SRCROOT)/smpeg\"";
   8.863 +				FRAMEWORK_VERSION = A;
   8.864 +				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
   8.865 +				GCC_PREPROCESSOR_DEFINITIONS = (
   8.866 +					MACOSX,
   8.867 +					__MACOSX__,
   8.868 +					USE_RWOPS,
   8.869 +					CMD_MUSIC,
   8.870 +					WAV_MUSIC,
   8.871 +					MOD_MUSIC,
   8.872 +					MID_MUSIC,
   8.873 +					USE_NATIVE_MIDI,
   8.874 +					OGG_MUSIC,
   8.875 +					MP3_MUSIC,
   8.876 +				);
   8.877 +				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
   8.878 +				HEADER_SEARCH_PATHS = (
   8.879 +					"$(HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
   8.880 +					"$(HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
   8.881 +					"$(HOME)/Library/Frameworks/SDL.framework/Headers",
   8.882 +					/Library/Frameworks/SDL.framework/Headers,
   8.883 +					vorbis/include,
   8.884 +				);
   8.885 +				HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/mikmod/mikmod.framework/Headers\"";
   8.886 +				HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/smpeg/smpeg.framework/Headers\"";
   8.887 +				INFOPLIST_FILE = "Info-Framework__Upgraded_.plist";
   8.888 +				INSTALL_PATH = "@executable_path/../Frameworks";
   8.889 +				LIBRARY_SEARCH_PATHS = vorbis/lib;
   8.890 +				OTHER_CFLAGS = "";
   8.891 +				OTHER_LDFLAGS = (
   8.892 +					"-framework",
   8.893 +					AudioToolbox,
   8.894 +					"-framework",
   8.895 +					AudioUnit,
   8.896 +					"-framework",
   8.897 +					CoreServices,
   8.898 +					"-lvorbisfile",
   8.899 +					"-lvorbis",
   8.900 +					"-logg",
   8.901 +					"-framework",
   8.902 +					mikmod,
   8.903 +					"-sub_umbrella",
   8.904 +					mikmod,
   8.905 +					"-framework",
   8.906 +					smpeg,
   8.907 +					"-sub_umbrella",
   8.908 +					smpeg,
   8.909 +				);
   8.910 +				PRODUCT_NAME = SDL_mixer;
   8.911 +				SECTORDER_FLAGS = "";
   8.912 +				WARNING_CFLAGS = (
   8.913 +					"-Wall",
   8.914 +					"-Wno-four-char-constants",
   8.915 +				);
   8.916 +				WRAPPER_EXTENSION = framework;
   8.917 +			};
   8.918 +			name = Default;
   8.919 +		};
   8.920 +		00B7E490097EC6B300826121 /* Release */ = {
   8.921 +			isa = XCBuildConfiguration;
   8.922 +			buildSettings = {
   8.923 +				DYLIB_COMPATIBILITY_VERSION = 1;
   8.924 +				DYLIB_CURRENT_VERSION = 1;
   8.925 +				GCC_ENABLE_FIX_AND_CONTINUE = NO;
   8.926 +				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
   8.927 +				GCC_PREPROCESSOR_DEFINITIONS = (
   8.928 +					MACOSX,
   8.929 +					__MACOSX__,
   8.930 +					USE_RWOPS,
   8.931 +					CMD_MUSIC,
   8.932 +					WAV_MUSIC,
   8.933 +					MOD_MUSIC,
   8.934 +					MID_MUSIC,
   8.935 +					USE_NATIVE_MIDI,
   8.936 +					OGG_MUSIC,
   8.937 +				);
   8.938 +				HEADER_SEARCH_PATHS = (
   8.939 +					"$(HOME)/Library/Frameworks/SDL.framework/Headers",
   8.940 +					/Library/Frameworks/SDL.framework/Headers,
   8.941 +					vorbis/include,
   8.942 +					smpeg/include,
   8.943 +				);
   8.944 +				LIBRARY_SEARCH_PATHS = (
   8.945 +					vorbis/lib,
   8.946 +					smpeg/lib,
   8.947 +				);
   8.948 +				LIBRARY_STYLE = STATIC;
   8.949 +				OTHER_CFLAGS = "";
   8.950 +				OTHER_LDFLAGS = (
   8.951 +					"-framework",
   8.952 +					QuickTime,
   8.953 +					"-framework",
   8.954 +					Carbon,
   8.955 +					"-lvorbisfile",
   8.956 +					"-lvorbis",
   8.957 +					"-logg",
   8.958 +				);
   8.959 +				OTHER_LIBTOOL_FLAGS = "";
   8.960 +				OTHER_REZFLAGS = "";
   8.961 +				PRODUCT_NAME = SDL_mixer;
   8.962 +				REZ_EXECUTABLE = YES;
   8.963 +				SECTORDER_FLAGS = "";
   8.964 +				WARNING_CFLAGS = (
   8.965 +					"-Wmost",
   8.966 +					"-Wno-four-char-constants",
   8.967 +					"-Wno-unknown-pragmas",
   8.968 +				);
   8.969 +				ZERO_LINK = NO;
   8.970 +			};
   8.971 +			name = Release;
   8.972 +		};
   8.973 +		00B7E491097EC6B300826121 /* Debug */ = {
   8.974 +			isa = XCBuildConfiguration;
   8.975 +			buildSettings = {
   8.976 +				DEBUGGING_SYMBOLS = YES;
   8.977 +				DYLIB_COMPATIBILITY_VERSION = 1;
   8.978 +				DYLIB_CURRENT_VERSION = 1;
   8.979 +				GCC_DYNAMIC_NO_PIC = NO;
   8.980 +				GCC_ENABLE_FIX_AND_CONTINUE = YES;
   8.981 +				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
   8.982 +				GCC_OPTIMIZATION_LEVEL = 0;
   8.983 +				GCC_PREPROCESSOR_DEFINITIONS = (
   8.984 +					MACOSX,
   8.985 +					__MACOSX__,
   8.986 +					USE_RWOPS,
   8.987 +					CMD_MUSIC,
   8.988 +					WAV_MUSIC,
   8.989 +					MOD_MUSIC,
   8.990 +					MID_MUSIC,
   8.991 +					USE_NATIVE_MIDI,
   8.992 +					OGG_MUSIC,
   8.993 +				);
   8.994 +				HEADER_SEARCH_PATHS = (
   8.995 +					"$(HOME)/Library/Frameworks/SDL.framework/Headers",
   8.996 +					/Library/Frameworks/SDL.framework/Headers,
   8.997 +					vorbis/include,
   8.998 +					smpeg/include,
   8.999 +				);
  8.1000 +				LIBRARY_SEARCH_PATHS = (
  8.1001 +					vorbis/lib,
  8.1002 +					smpeg/lib,
  8.1003 +				);
  8.1004 +				LIBRARY_STYLE = STATIC;
  8.1005 +				OTHER_CFLAGS = "";
  8.1006 +				OTHER_LDFLAGS = (
  8.1007 +					"-framework",
  8.1008 +					QuickTime,
  8.1009 +					"-framework",
  8.1010 +					Carbon,
  8.1011 +					"-lvorbisfile",
  8.1012 +					"-lvorbis",
  8.1013 +					"-logg",
  8.1014 +				);
  8.1015 +				OTHER_LIBTOOL_FLAGS = "";
  8.1016 +				OTHER_REZFLAGS = "";
  8.1017 +				PRODUCT_NAME = SDL_mixer;
  8.1018 +				REZ_EXECUTABLE = YES;
  8.1019 +				SECTORDER_FLAGS = "";
  8.1020 +				WARNING_CFLAGS = (
  8.1021 +					"-Wmost",
  8.1022 +					"-Wno-four-char-constants",
  8.1023 +					"-Wno-unknown-pragmas",
  8.1024 +				);
  8.1025 +				ZERO_LINK = YES;
  8.1026 +			};
  8.1027 +			name = Debug;
  8.1028 +		};
  8.1029 +		00B7E492097EC6B300826121 /* Default */ = {
  8.1030 +			isa = XCBuildConfiguration;
  8.1031 +			buildSettings = {
  8.1032 +				DYLIB_COMPATIBILITY_VERSION = 1;
  8.1033 +				DYLIB_CURRENT_VERSION = 1;
  8.1034 +				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
  8.1035 +				GCC_PREPROCESSOR_DEFINITIONS = (
  8.1036 +					MACOSX,
  8.1037 +					__MACOSX__,
  8.1038 +					USE_RWOPS,
  8.1039 +					CMD_MUSIC,
  8.1040 +					WAV_MUSIC,
  8.1041 +					MOD_MUSIC,
  8.1042 +					MID_MUSIC,
  8.1043 +					USE_NATIVE_MIDI,
  8.1044 +					OGG_MUSIC,
  8.1045 +				);
  8.1046 +				HEADER_SEARCH_PATHS = (
  8.1047 +					"$(HOME)/Library/Frameworks/SDL.framework/Headers",
  8.1048 +					/Library/Frameworks/SDL.framework/Headers,
  8.1049 +					vorbis/include,
  8.1050 +					smpeg/include,
  8.1051 +				);
  8.1052 +				LIBRARY_SEARCH_PATHS = (
  8.1053 +					vorbis/lib,
  8.1054 +					smpeg/lib,
  8.1055 +				);
  8.1056 +				LIBRARY_STYLE = STATIC;
  8.1057 +				OTHER_CFLAGS = "";
  8.1058 +				OTHER_LDFLAGS = (
  8.1059 +					"-framework",
  8.1060 +					QuickTime,
  8.1061 +					"-framework",
  8.1062 +					Carbon,
  8.1063 +					"-lvorbisfile",
  8.1064 +					"-lvorbis",
  8.1065 +					"-logg",
  8.1066 +				);
  8.1067 +				OTHER_LIBTOOL_FLAGS = "";
  8.1068 +				OTHER_REZFLAGS = "";
  8.1069 +				PRODUCT_NAME = SDL_mixer;
  8.1070 +				REZ_EXECUTABLE = YES;
  8.1071 +				SECTORDER_FLAGS = "";
  8.1072 +				WARNING_CFLAGS = (
  8.1073 +					"-Wmost",
  8.1074 +					"-Wno-four-char-constants",
  8.1075 +					"-Wno-unknown-pragmas",
  8.1076 +				);
  8.1077 +			};
  8.1078 +			name = Default;
  8.1079 +		};
  8.1080 +		00B7E494097EC6B300826121 /* Release */ = {
  8.1081 +			isa = XCBuildConfiguration;
  8.1082 +			buildSettings = {
  8.1083 +				GCC_ENABLE_FIX_AND_CONTINUE = NO;
  8.1084 +				OTHER_CFLAGS = "";
  8.1085 +				OTHER_LDFLAGS = "";
  8.1086 +				OTHER_REZFLAGS = "";
  8.1087 +				PRODUCT_NAME = "Create DMG";
  8.1088 +				REZ_EXECUTABLE = YES;
  8.1089 +				SECTORDER_FLAGS = "";
  8.1090 +				WARNING_CFLAGS = (
  8.1091 +					"-Wmost",
  8.1092 +					"-Wno-four-char-constants",
  8.1093 +					"-Wno-unknown-pragmas",
  8.1094 +				);
  8.1095 +				ZERO_LINK = NO;
  8.1096 +			};
  8.1097 +			name = Release;
  8.1098 +		};
  8.1099 +		00B7E495097EC6B300826121 /* Debug */ = {
  8.1100 +			isa = XCBuildConfiguration;
  8.1101 +			buildSettings = {
  8.1102 +				DEBUGGING_SYMBOLS = YES;
  8.1103 +				GCC_DYNAMIC_NO_PIC = NO;
  8.1104 +				GCC_ENABLE_FIX_AND_CONTINUE = YES;
  8.1105 +				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
  8.1106 +				GCC_OPTIMIZATION_LEVEL = 0;
  8.1107 +				OTHER_CFLAGS = "";
  8.1108 +				OTHER_LDFLAGS = (
  8.1109 +					"-flat_namespace",
  8.1110 +					"-all_load",
  8.1111 +				);
  8.1112 +				OTHER_REZFLAGS = "";
  8.1113 +				PRODUCT_NAME = "Create DMG";
  8.1114 +				REZ_EXECUTABLE = YES;
  8.1115 +				SECTORDER_FLAGS = "";
  8.1116 +				WARNING_CFLAGS = (
  8.1117 +					"-Wmost",
  8.1118 +					"-Wno-four-char-constants",
  8.1119 +					"-Wno-unknown-pragmas",
  8.1120 +				);
  8.1121 +				ZERO_LINK = YES;
  8.1122 +			};
  8.1123 +			name = Debug;
  8.1124 +		};
  8.1125 +		00B7E496097EC6B300826121 /* Default */ = {
  8.1126 +			isa = XCBuildConfiguration;
  8.1127 +			buildSettings = {
  8.1128 +				OTHER_CFLAGS = "";
  8.1129 +				OTHER_LDFLAGS = "";
  8.1130 +				OTHER_REZFLAGS = "";
  8.1131 +				PRODUCT_NAME = "Create DMG";
  8.1132 +				REZ_EXECUTABLE = YES;
  8.1133 +				SECTORDER_FLAGS = "";
  8.1134 +				WARNING_CFLAGS = (
  8.1135 +					"-Wmost",
  8.1136 +					"-Wno-four-char-constants",
  8.1137 +					"-Wno-unknown-pragmas",
  8.1138 +				);
  8.1139 +			};
  8.1140 +			name = Default;
  8.1141 +		};
  8.1142 +		00B7E498097EC6B300826121 /* Release */ = {
  8.1143 +			isa = XCBuildConfiguration;
  8.1144 +			buildSettings = {
  8.1145 +				ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
  8.1146 +				ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc";
  8.1147 +				FRAMEWORK_SEARCH_PATHS = (
  8.1148 +					"$(HOME)/Library/Frameworks",
  8.1149 +					/Library/Frameworks,
  8.1150 +				);
  8.1151 +				GCC_VERSION_i386 = 4.0;
  8.1152 +				GCC_VERSION_ppc = 4.0;
  8.1153 +				GCC_VERSION_x86_64 = 4.2;
  8.1154 +				HEADER_SEARCH_PATHS = (
  8.1155 +					"$(HOME)/Library/Frameworks/SDL.framework/Headers",
  8.1156 +					/Library/Frameworks/SDL.framework/Headers,
  8.1157 +					vorbis/include,
  8.1158 +				);
  8.1159 +				LIBRARY_SEARCH_PATHS = vorbis/lib;
  8.1160 +				MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
  8.1161 +				MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
  8.1162 +				MACOSX_DEPLOYMENT_TARGET_x86_64 = 10.6;
  8.1163 +				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
  8.1164 +				SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
  8.1165 +				SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk;
  8.1166 +				SDKROOT_x86_64 = /Developer/SDKs/MacOSX10.6.sdk;
  8.1167 +			};
  8.1168 +			name = Release;
  8.1169 +		};
  8.1170 +		00B7E499097EC6B300826121 /* Debug */ = {
  8.1171 +			isa = XCBuildConfiguration;
  8.1172 +			buildSettings = {
  8.1173 +				ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
  8.1174 +				ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc";
  8.1175 +				FRAMEWORK_SEARCH_PATHS = (
  8.1176 +					"$(HOME)/Library/Frameworks",
  8.1177 +					/Library/Frameworks,
  8.1178 +				);
  8.1179 +				GCC_VERSION_i386 = 4.0;
  8.1180 +				GCC_VERSION_ppc = 4.0;
  8.1181 +				GCC_VERSION_x86_64 = 4.2;
  8.1182 +				HEADER_SEARCH_PATHS = (
  8.1183 +					"$(HOME)/Library/Frameworks/SDL.framework/Headers",
  8.1184 +					/Library/Frameworks/SDL.framework/Headers,
  8.1185 +					vorbis/include,
  8.1186 +				);
  8.1187 +				LIBRARY_SEARCH_PATHS = vorbis/lib;
  8.1188 +				MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
  8.1189 +				MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
  8.1190 +				MACOSX_DEPLOYMENT_TARGET_x86_64 = 10.6;
  8.1191 +				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
  8.1192 +				SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
  8.1193 +				SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk;
  8.1194 +				SDKROOT_x86_64 = /Developer/SDKs/MacOSX10.6.sdk;
  8.1195 +			};
  8.1196 +			name = Debug;
  8.1197 +		};
  8.1198 +		00B7E49A097EC6B300826121 /* Default */ = {
  8.1199 +			isa = XCBuildConfiguration;
  8.1200 +			buildSettings = {
  8.1201 +				ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
  8.1202 +				ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc";
  8.1203 +				FRAMEWORK_SEARCH_PATHS = (
  8.1204 +					"$(HOME)/Library/Frameworks",
  8.1205 +					/Library/Frameworks,
  8.1206 +				);
  8.1207 +				GCC_VERSION_i386 = 4.0;
  8.1208 +				GCC_VERSION_ppc = 4.0;
  8.1209 +				GCC_VERSION_x86_64 = 4.2;
  8.1210 +				HEADER_SEARCH_PATHS = (
  8.1211 +					"$(HOME)/Library/Frameworks/SDL.framework/Headers",
  8.1212 +					/Library/Frameworks/SDL.framework/Headers,
  8.1213 +					vorbis/include,
  8.1214 +				);
  8.1215 +				LIBRARY_SEARCH_PATHS = vorbis/lib;
  8.1216 +				MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
  8.1217 +				MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
  8.1218 +				MACOSX_DEPLOYMENT_TARGET_x86_64 = 10.6;
  8.1219 +				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
  8.1220 +				SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
  8.1221 +				SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk;
  8.1222 +				SDKROOT_x86_64 = /Developer/SDKs/MacOSX10.6.sdk;
  8.1223 +			};
  8.1224 +			name = Default;
  8.1225 +		};
  8.1226 +/* End XCBuildConfiguration section */
  8.1227 +
  8.1228 +/* Begin XCConfigurationList section */
  8.1229 +		00B7E48B097EC6B300826121 /* Build configuration list for PBXNativeTarget "Framework" */ = {
  8.1230 +			isa = XCConfigurationList;
  8.1231 +			buildConfigurations = (
  8.1232 +				00B7E48C097EC6B300826121 /* Release */,
  8.1233 +				00B7E48D097EC6B300826121 /* Debug */,
  8.1234 +				00B7E48E097EC6B300826121 /* Default */,
  8.1235 +			);
  8.1236 +			defaultConfigurationIsVisible = 0;
  8.1237 +			defaultConfigurationName = Default;
  8.1238 +		};
  8.1239 +		00B7E48F097EC6B300826121 /* Build configuration list for PBXNativeTarget "Static Library" */ = {
  8.1240 +			isa = XCConfigurationList;
  8.1241 +			buildConfigurations = (
  8.1242 +				00B7E490097EC6B300826121 /* Release */,
  8.1243 +				00B7E491097EC6B300826121 /* Debug */,
  8.1244 +				00B7E492097EC6B300826121 /* Default */,
  8.1245 +			);
  8.1246 +			defaultConfigurationIsVisible = 0;
  8.1247 +			defaultConfigurationName = Default;
  8.1248 +		};
  8.1249 +		00B7E493097EC6B300826121 /* Build configuration list for PBXNativeTarget "Create DMG" */ = {
  8.1250 +			isa = XCConfigurationList;
  8.1251 +			buildConfigurations = (
  8.1252 +				00B7E494097EC6B300826121 /* Release */,
  8.1253 +				00B7E495097EC6B300826121 /* Debug */,
  8.1254 +				00B7E496097EC6B300826121 /* Default */,
  8.1255 +			);
  8.1256 +			defaultConfigurationIsVisible = 0;
  8.1257 +			defaultConfigurationName = Default;
  8.1258 +		};
  8.1259 +		00B7E497097EC6B300826121 /* Build configuration list for PBXProject "SDL_mixer" */ = {
  8.1260 +			isa = XCConfigurationList;
  8.1261 +			buildConfigurations = (
  8.1262 +				00B7E498097EC6B300826121 /* Release */,
  8.1263 +				00B7E499097EC6B300826121 /* Debug */,
  8.1264 +				00B7E49A097EC6B300826121 /* Default */,
  8.1265 +			);
  8.1266 +			defaultConfigurationIsVisible = 0;
  8.1267 +			defaultConfigurationName = Default;
  8.1268 +		};
  8.1269 +/* End XCConfigurationList section */
  8.1270 +	};
  8.1271 +	rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
  8.1272 +}
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/Xcode/mikmod/mikmod.framework/Headers	Sat Dec 31 10:27:48 2011 -0500
     9.3 @@ -0,0 +1,1 @@
     9.4 +Versions/Current/Headers
     9.5 \ No newline at end of file
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/Xcode/mikmod/mikmod.framework/Resources	Sat Dec 31 10:27:48 2011 -0500
    10.3 @@ -0,0 +1,1 @@
    10.4 +Versions/Current/Resources
    10.5 \ No newline at end of file
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/Xcode/mikmod/mikmod.framework/Versions/A/Headers/mikmod.h	Sat Dec 31 10:27:48 2011 -0500
    11.3 @@ -0,0 +1,717 @@
    11.4 +/*	MikMod sound library
    11.5 +	(c) 1998, 1999, 2000 Miodrag Vallat and others - see file AUTHORS
    11.6 +	for complete list.
    11.7 +
    11.8 +	This library is free software; you can redistribute it and/or modify
    11.9 +	it under the terms of the GNU Library General Public License as
   11.10 +	published by the Free Software Foundation; either version 2 of
   11.11 +	the License, or (at your option) any later version.
   11.12 + 
   11.13 +	This program is distributed in the hope that it will be useful,
   11.14 +	but WITHOUT ANY WARRANTY; without even the implied warranty of
   11.15 +	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   11.16 +	GNU Library General Public License for more details.
   11.17 + 
   11.18 +	You should have received a copy of the GNU Library General Public
   11.19 +	License along with this library; if not, write to the Free Software
   11.20 +	Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
   11.21 +	02111-1307, USA.
   11.22 +*/
   11.23 +
   11.24 +/*==============================================================================
   11.25 +
   11.26 +  $Id: mikmod.h.in,v 1.2 2004/06/01 16:43:45 raph Exp $
   11.27 +
   11.28 +  MikMod sound library include file
   11.29 +
   11.30 +==============================================================================*/
   11.31 +
   11.32 +#ifndef _MIKMOD_H_
   11.33 +#define _MIKMOD_H_
   11.34 +
   11.35 +#include <stdio.h>
   11.36 +#include <stdlib.h>
   11.37 +
   11.38 +#ifdef __cplusplus
   11.39 +extern "C" {
   11.40 +#endif
   11.41 +
   11.42 +/*
   11.43 + * ========== Compiler magic for shared libraries
   11.44 + */
   11.45 +
   11.46 +#if defined WIN32 && defined _DLL
   11.47 +#ifdef DLL_EXPORTS
   11.48 +#define MIKMODAPI __declspec(dllexport)
   11.49 +#else
   11.50 +#define MIKMODAPI __declspec(dllimport)
   11.51 +#endif
   11.52 +#else
   11.53 +#define MIKMODAPI
   11.54 +#endif
   11.55 +
   11.56 +/*
   11.57 + *	========== Library version
   11.58 + */
   11.59 +
   11.60 +#define LIBMIKMOD_VERSION_MAJOR 3L
   11.61 +#define LIBMIKMOD_VERSION_MINOR 1L
   11.62 +#define LIBMIKMOD_REVISION      10L
   11.63 +
   11.64 +#define LIBMIKMOD_VERSION \
   11.65 +	((LIBMIKMOD_VERSION_MAJOR<<16)| \
   11.66 +	 (LIBMIKMOD_VERSION_MINOR<< 8)| \
   11.67 +	 (LIBMIKMOD_REVISION))
   11.68 +
   11.69 +MIKMODAPI extern long MikMod_GetVersion(void);
   11.70 +
   11.71 +/*
   11.72 + *	========== Platform independent-type definitions
   11.73 + */
   11.74 +
   11.75 +#ifdef WIN32
   11.76 +#define WIN32_LEAN_AND_MEAN
   11.77 +#include <windows.h>
   11.78 +#include <io.h>
   11.79 +#include <mmsystem.h>
   11.80 +#endif
   11.81 +
   11.82 +#if defined(__OS2__)||defined(__EMX__)
   11.83 +#define INCL_DOSSEMAPHORES
   11.84 +#include <os2.h>
   11.85 +#else
   11.86 +typedef char CHAR;
   11.87 +#endif
   11.88 +
   11.89 +
   11.90 +
   11.91 +#if defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(_LP64)
   11.92 +/* 64 bit architectures */
   11.93 +
   11.94 +typedef signed char     SBYTE;      /* 1 byte, signed */
   11.95 +typedef unsigned char   UBYTE;      /* 1 byte, unsigned */
   11.96 +typedef signed short    SWORD;      /* 2 bytes, signed */
   11.97 +typedef unsigned short  UWORD;      /* 2 bytes, unsigned */
   11.98 +typedef signed int      SLONG;      /* 4 bytes, signed */
   11.99 +typedef unsigned int    ULONG;      /* 4 bytes, unsigned */
  11.100 +typedef int             BOOL;       /* 0=false, <>0 true */
  11.101 +
  11.102 +#else
  11.103 +/* 32 bit architectures */
  11.104 +
  11.105 +typedef signed char     SBYTE;      /* 1 byte, signed */
  11.106 +typedef unsigned char   UBYTE;      /* 1 byte, unsigned */
  11.107 +typedef signed short    SWORD;      /* 2 bytes, signed */
  11.108 +typedef unsigned short  UWORD;      /* 2 bytes, unsigned */
  11.109 +typedef signed long     SLONG;      /* 4 bytes, signed */
  11.110 +#if !defined(__OS2__)&&!defined(__EMX__)&&!defined(WIN32)
  11.111 +typedef unsigned long   ULONG;      /* 4 bytes, unsigned */
  11.112 +typedef int             BOOL;       /* 0=false, <>0 true */
  11.113 +#endif
  11.114 +#endif
  11.115 +
  11.116 +/*
  11.117 + *	========== Error codes
  11.118 + */
  11.119 +
  11.120 +enum {
  11.121 +	MMERR_OPENING_FILE = 1,
  11.122 +	MMERR_OUT_OF_MEMORY,
  11.123 +	MMERR_DYNAMIC_LINKING,
  11.124 +
  11.125 +	MMERR_SAMPLE_TOO_BIG,
  11.126 +	MMERR_OUT_OF_HANDLES,
  11.127 +	MMERR_UNKNOWN_WAVE_TYPE,
  11.128 +
  11.129 +	MMERR_LOADING_PATTERN,
  11.130 +	MMERR_LOADING_TRACK,
  11.131 +	MMERR_LOADING_HEADER,
  11.132 +	MMERR_LOADING_SAMPLEINFO,
  11.133 +	MMERR_NOT_A_MODULE,
  11.134 +	MMERR_NOT_A_STREAM,
  11.135 +	MMERR_MED_SYNTHSAMPLES,
  11.136 +	MMERR_ITPACK_INVALID_DATA,
  11.137 +
  11.138 +	MMERR_DETECTING_DEVICE,
  11.139 +	MMERR_INVALID_DEVICE,
  11.140 +	MMERR_INITIALIZING_MIXER,
  11.141 +	MMERR_OPENING_AUDIO,
  11.142 +	MMERR_8BIT_ONLY,
  11.143 +	MMERR_16BIT_ONLY,
  11.144 +	MMERR_STEREO_ONLY,
  11.145 +	MMERR_ULAW,
  11.146 +	MMERR_NON_BLOCK,
  11.147 +
  11.148 +	MMERR_AF_AUDIO_PORT,
  11.149 +
  11.150 +	MMERR_AIX_CONFIG_INIT,
  11.151 +	MMERR_AIX_CONFIG_CONTROL,
  11.152 +	MMERR_AIX_CONFIG_START,
  11.153 +
  11.154 +	MMERR_GUS_SETTINGS,
  11.155 +	MMERR_GUS_RESET,
  11.156 +	MMERR_GUS_TIMER,
  11.157 +
  11.158 +	MMERR_HP_SETSAMPLESIZE,
  11.159 +	MMERR_HP_SETSPEED,
  11.160 +	MMERR_HP_CHANNELS,
  11.161 +	MMERR_HP_AUDIO_OUTPUT,
  11.162 +	MMERR_HP_AUDIO_DESC,
  11.163 +	MMERR_HP_BUFFERSIZE,
  11.164 +
  11.165 +	MMERR_OSS_SETFRAGMENT,
  11.166 +	MMERR_OSS_SETSAMPLESIZE,
  11.167 +	MMERR_OSS_SETSTEREO,
  11.168 +	MMERR_OSS_SETSPEED,
  11.169 +
  11.170 +	MMERR_SGI_SPEED,
  11.171 +	MMERR_SGI_16BIT,
  11.172 +	MMERR_SGI_8BIT,
  11.173 +	MMERR_SGI_STEREO,
  11.174 +	MMERR_SGI_MONO,
  11.175 +
  11.176 +	MMERR_SUN_INIT,
  11.177 +
  11.178 +	MMERR_OS2_MIXSETUP,
  11.179 +	MMERR_OS2_SEMAPHORE,
  11.180 +	MMERR_OS2_TIMER,
  11.181 +	MMERR_OS2_THREAD,
  11.182 +
  11.183 +	MMERR_DS_PRIORITY,
  11.184 +	MMERR_DS_BUFFER,
  11.185 +	MMERR_DS_FORMAT,
  11.186 +	MMERR_DS_NOTIFY,
  11.187 +	MMERR_DS_EVENT,
  11.188 +	MMERR_DS_THREAD,
  11.189 +	MMERR_DS_UPDATE,
  11.190 +
  11.191 +	MMERR_WINMM_HANDLE,
  11.192 +	MMERR_WINMM_ALLOCATED,
  11.193 +	MMERR_WINMM_DEVICEID,
  11.194 +	MMERR_WINMM_FORMAT,
  11.195 +	MMERR_WINMM_UNKNOWN,
  11.196 +
  11.197 +	MMERR_MAC_SPEED,
  11.198 +	MMERR_MAC_START,
  11.199 +
  11.200 +	MMERR_MAX
  11.201 +};
  11.202 +
  11.203 +/*
  11.204 + *	========== Error handling
  11.205 + */
  11.206 +
  11.207 +typedef void (MikMod_handler)(void);
  11.208 +typedef MikMod_handler *MikMod_handler_t;
  11.209 +
  11.210 +MIKMODAPI extern int  MikMod_errno;
  11.211 +MIKMODAPI extern BOOL MikMod_critical;
  11.212 +MIKMODAPI extern char *MikMod_strerror(int);
  11.213 +
  11.214 +MIKMODAPI extern MikMod_handler_t MikMod_RegisterErrorHandler(MikMod_handler_t);
  11.215 +
  11.216 +/*
  11.217 + *	========== Library initialization and core functions
  11.218 + */
  11.219 +
  11.220 +struct MDRIVER;
  11.221 +
  11.222 +MIKMODAPI extern void   MikMod_RegisterAllDrivers(void);
  11.223 +
  11.224 +MIKMODAPI extern CHAR*  MikMod_InfoDriver(void);
  11.225 +MIKMODAPI extern void   MikMod_RegisterDriver(struct MDRIVER*);
  11.226 +MIKMODAPI extern int    MikMod_DriverFromAlias(CHAR*);
  11.227 +
  11.228 +MIKMODAPI extern BOOL   MikMod_Init(CHAR*);
  11.229 +MIKMODAPI extern void   MikMod_Exit(void);
  11.230 +MIKMODAPI extern BOOL   MikMod_Reset(CHAR*);
  11.231 +MIKMODAPI extern BOOL   MikMod_SetNumVoices(int,int);
  11.232 +MIKMODAPI extern BOOL   MikMod_Active(void);
  11.233 +MIKMODAPI extern BOOL   MikMod_EnableOutput(void);
  11.234 +MIKMODAPI extern void   MikMod_DisableOutput(void);
  11.235 +MIKMODAPI extern void   MikMod_Update(void);
  11.236 +
  11.237 +MIKMODAPI extern BOOL   MikMod_InitThreads(void);
  11.238 +MIKMODAPI extern void   MikMod_Lock(void);
  11.239 +MIKMODAPI extern void   MikMod_Unlock(void);
  11.240 +
  11.241 +/*
  11.242 + *	========== Reader, Writer
  11.243 + */
  11.244 +
  11.245 +typedef struct MREADER {
  11.246 +	BOOL (*Seek)(struct MREADER*,long,int);
  11.247 +	long (*Tell)(struct MREADER*);
  11.248 +	BOOL (*Read)(struct MREADER*,void*,size_t);
  11.249 +	int  (*Get)(struct MREADER*);
  11.250 +	BOOL (*Eof)(struct MREADER*);
  11.251 +} MREADER;
  11.252 +
  11.253 +typedef struct MWRITER {
  11.254 +	BOOL (*Seek)(struct MWRITER*,long,int);
  11.255 +	long (*Tell)(struct MWRITER*);
  11.256 +	BOOL (*Write)(struct MWRITER*,void*,size_t);
  11.257 +	BOOL (*Put)(struct MWRITER*,int);
  11.258 +} MWRITER;
  11.259 +
  11.260 +/*
  11.261 + *	========== Samples
  11.262 + */
  11.263 +
  11.264 +/* Sample playback should not be interrupted */
  11.265 +#define SFX_CRITICAL 1
  11.266 +
  11.267 +/* Sample format [loading and in-memory] flags: */
  11.268 +#define SF_16BITS       0x0001
  11.269 +#define SF_STEREO       0x0002
  11.270 +#define SF_SIGNED       0x0004
  11.271 +#define SF_BIG_ENDIAN   0x0008
  11.272 +#define SF_DELTA        0x0010
  11.273 +#define SF_ITPACKED		0x0020
  11.274 +
  11.275 +#define	SF_FORMATMASK	0x003F
  11.276 +
  11.277 +/* General Playback flags */
  11.278 +
  11.279 +#define SF_LOOP         0x0100
  11.280 +#define SF_BIDI         0x0200
  11.281 +#define SF_REVERSE      0x0400
  11.282 +#define SF_SUSTAIN      0x0800
  11.283 +
  11.284 +#define SF_PLAYBACKMASK	0x0C00
  11.285 +
  11.286 +/* Module-only Playback Flags */
  11.287 +
  11.288 +#define SF_OWNPAN		0x1000
  11.289 +#define SF_UST_LOOP     0x2000
  11.290 +
  11.291 +#define SF_EXTRAPLAYBACKMASK	0x3000
  11.292 +
  11.293 +/* Panning constants */
  11.294 +#define PAN_LEFT		0
  11.295 +#define PAN_HALFLEFT 	64
  11.296 +#define PAN_CENTER		128
  11.297 +#define PAN_HALFRIGHT	192
  11.298 +#define PAN_RIGHT		255
  11.299 +#define PAN_SURROUND	512 /* panning value for Dolby Surround */
  11.300 +
  11.301 +typedef struct SAMPLE {
  11.302 +	SWORD  panning;     /* panning (0-255 or PAN_SURROUND) */
  11.303 +	ULONG  speed;       /* Base playing speed/frequency of note */
  11.304 +	UBYTE  volume;      /* volume 0-64 */
  11.305 +	UWORD  inflags;		/* sample format on disk */
  11.306 +	UWORD  flags;       /* sample format in memory */
  11.307 +	ULONG  length;      /* length of sample (in samples!) */
  11.308 +	ULONG  loopstart;   /* repeat position (relative to start, in samples) */
  11.309 +	ULONG  loopend;     /* repeat end */
  11.310 +	ULONG  susbegin;    /* sustain loop begin (in samples) \  Not Supported */
  11.311 +	ULONG  susend;      /* sustain loop end                /      Yet! */
  11.312 +
  11.313 +	/* Variables used by the module player only! (ignored for sound effects) */
  11.314 +	UBYTE  globvol;     /* global volume */
  11.315 +	UBYTE  vibflags;    /* autovibrato flag stuffs */
  11.316 +	UBYTE  vibtype;     /* Vibratos moved from INSTRUMENT to SAMPLE */
  11.317 +	UBYTE  vibsweep;
  11.318 +	UBYTE  vibdepth;
  11.319 +	UBYTE  vibrate;
  11.320 +	CHAR*  samplename;  /* name of the sample */
  11.321 +
  11.322 +	/* Values used internally only */
  11.323 +	UWORD  avibpos;     /* autovibrato pos [player use] */
  11.324 +	UBYTE  divfactor;   /* for sample scaling, maintains proper period slides */
  11.325 +	ULONG  seekpos;     /* seek position in file */
  11.326 +	SWORD  handle;      /* sample handle used by individual drivers */
  11.327 +} SAMPLE;
  11.328 +
  11.329 +/* Sample functions */
  11.330 +
  11.331 +MIKMODAPI extern SAMPLE *Sample_Load(CHAR*);
  11.332 +MIKMODAPI extern SAMPLE *Sample_LoadFP(FILE*);
  11.333 +MIKMODAPI extern SAMPLE *Sample_LoadGeneric(MREADER*);
  11.334 +MIKMODAPI extern void   Sample_Free(SAMPLE*);
  11.335 +MIKMODAPI extern SBYTE  Sample_Play(SAMPLE*,ULONG,UBYTE);
  11.336 +
  11.337 +MIKMODAPI extern void   Voice_SetVolume(SBYTE,UWORD);
  11.338 +MIKMODAPI extern UWORD  Voice_GetVolume(SBYTE);
  11.339 +MIKMODAPI extern void   Voice_SetFrequency(SBYTE,ULONG);
  11.340 +MIKMODAPI extern ULONG  Voice_GetFrequency(SBYTE);
  11.341 +MIKMODAPI extern void   Voice_SetPanning(SBYTE,ULONG);
  11.342 +MIKMODAPI extern ULONG  Voice_GetPanning(SBYTE);
  11.343 +MIKMODAPI extern void   Voice_Play(SBYTE,SAMPLE*,ULONG);
  11.344 +MIKMODAPI extern void   Voice_Stop(SBYTE);
  11.345 +MIKMODAPI extern BOOL   Voice_Stopped(SBYTE);
  11.346 +MIKMODAPI extern SLONG  Voice_GetPosition(SBYTE);
  11.347 +MIKMODAPI extern ULONG  Voice_RealVolume(SBYTE);
  11.348 +
  11.349 +/*
  11.350 + *	========== Internal module representation (UniMod)
  11.351 + */
  11.352 +
  11.353 +/*
  11.354 +	Instrument definition - for information only, the only field which may be
  11.355 +	of use in user programs is the name field
  11.356 +*/
  11.357 +
  11.358 +/* Instrument note count */
  11.359 +#define INSTNOTES 120
  11.360 +
  11.361 +/* Envelope point */
  11.362 +typedef struct ENVPT {
  11.363 +	SWORD pos;
  11.364 +	SWORD val;
  11.365 +} ENVPT;
  11.366 +
  11.367 +/* Envelope point count */
  11.368 +#define ENVPOINTS 32
  11.369 +
  11.370 +/* Instrument structure */
  11.371 +typedef struct INSTRUMENT {
  11.372 +	CHAR* insname;
  11.373 +
  11.374 +	UBYTE flags;
  11.375 +	UWORD samplenumber[INSTNOTES];
  11.376 +	UBYTE samplenote[INSTNOTES];
  11.377 +
  11.378 +	UBYTE nnatype;
  11.379 +	UBYTE dca;              /* duplicate check action */
  11.380 +	UBYTE dct;              /* duplicate check type */
  11.381 +	UBYTE globvol;
  11.382 +	UWORD volfade;
  11.383 +	SWORD panning;          /* instrument-based panning var */
  11.384 +
  11.385 +	UBYTE pitpansep;        /* pitch pan separation (0 to 255) */
  11.386 +	UBYTE pitpancenter;     /* pitch pan center (0 to 119) */
  11.387 +	UBYTE rvolvar;          /* random volume varations (0 - 100%) */
  11.388 +	UBYTE rpanvar;          /* random panning varations (0 - 100%) */
  11.389 +
  11.390 +	/* volume envelope */
  11.391 +	UBYTE volflg;           /* bit 0: on 1: sustain 2: loop */
  11.392 +	UBYTE volpts;
  11.393 +	UBYTE volsusbeg;
  11.394 +	UBYTE volsusend;
  11.395 +	UBYTE volbeg;
  11.396 +	UBYTE volend;
  11.397 +	ENVPT volenv[ENVPOINTS];
  11.398 +	/* panning envelope */
  11.399 +	UBYTE panflg;           /* bit 0: on 1: sustain 2: loop */
  11.400 +	UBYTE panpts;
  11.401 +	UBYTE pansusbeg;
  11.402 +	UBYTE pansusend;
  11.403 +	UBYTE panbeg;
  11.404 +	UBYTE panend;
  11.405 +	ENVPT panenv[ENVPOINTS];
  11.406 +	/* pitch envelope */
  11.407 +	UBYTE pitflg;           /* bit 0: on 1: sustain 2: loop */
  11.408 +	UBYTE pitpts;
  11.409 +	UBYTE pitsusbeg;
  11.410 +	UBYTE pitsusend;
  11.411 +	UBYTE pitbeg;
  11.412 +	UBYTE pitend;
  11.413 +	ENVPT pitenv[ENVPOINTS];
  11.414 +} INSTRUMENT;
  11.415 +
  11.416 +struct MP_CONTROL;
  11.417 +struct MP_VOICE;
  11.418 +
  11.419 +/*
  11.420 +	Module definition
  11.421 +*/
  11.422 +
  11.423 +/* maximum master channels supported */
  11.424 +#define UF_MAXCHAN	64
  11.425 +
  11.426 +/* Module flags */
  11.427 +#define UF_XMPERIODS	0x0001 /* XM periods / finetuning */
  11.428 +#define UF_LINEAR		0x0002 /* LINEAR periods (UF_XMPERIODS must be set) */
  11.429 +#define UF_INST			0x0004 /* Instruments are used */
  11.430 +#define UF_NNA			0x0008 /* IT: NNA used, set numvoices rather
  11.431 +								  than numchn */
  11.432 +#define UF_S3MSLIDES	0x0010 /* uses old S3M volume slides */
  11.433 +#define UF_BGSLIDES		0x0020 /* continue volume slides in the background */
  11.434 +#define UF_HIGHBPM		0x0040 /* MED: can use >255 bpm */
  11.435 +#define UF_NOWRAP		0x0080 /* XM-type (i.e. illogical) pattern break
  11.436 +								  semantics */
  11.437 +#define UF_ARPMEM		0x0100 /* IT: need arpeggio memory */
  11.438 +#define UF_FT2QUIRKS	0x0200 /* emulate some FT2 replay quirks */
  11.439 +#define UF_PANNING		0x0400 /* module uses panning effects or have
  11.440 +								  non-tracker default initial panning */
  11.441 +
  11.442 +typedef struct MODULE {
  11.443 +	/* general module information */
  11.444 +		CHAR*       songname;    /* name of the song */
  11.445 +		CHAR*       modtype;     /* string type of module loaded */
  11.446 +		CHAR*       comment;     /* module comments */
  11.447 +
  11.448 +		UWORD       flags;       /* See module flags above */
  11.449 +		UBYTE       numchn;      /* number of module channels */
  11.450 +		UBYTE       numvoices;   /* max # voices used for full NNA playback */
  11.451 +		UWORD       numpos;      /* number of positions in this song */
  11.452 +		UWORD       numpat;      /* number of patterns in this song */
  11.453 +		UWORD       numins;      /* number of instruments */
  11.454 +		UWORD       numsmp;      /* number of samples */
  11.455 +struct  INSTRUMENT* instruments; /* all instruments */
  11.456 +struct  SAMPLE*     samples;     /* all samples */
  11.457 +		UBYTE       realchn;     /* real number of channels used */
  11.458 +		UBYTE       totalchn;    /* total number of channels used (incl NNAs) */
  11.459 +
  11.460 +	/* playback settings */
  11.461 +		UWORD       reppos;      /* restart position */
  11.462 +		UBYTE       initspeed;   /* initial song speed */
  11.463 +		UWORD       inittempo;   /* initial song tempo */
  11.464 +		UBYTE       initvolume;  /* initial global volume (0 - 128) */
  11.465 +		UWORD       panning[UF_MAXCHAN]; /* panning positions */
  11.466 +		UBYTE       chanvol[UF_MAXCHAN]; /* channel positions */
  11.467 +		UWORD       bpm;         /* current beats-per-minute speed */
  11.468 +		UWORD       sngspd;      /* current song speed */
  11.469 +		SWORD       volume;      /* song volume (0-128) (or user volume) */
  11.470 +
  11.471 +		BOOL        extspd;      /* extended speed flag (default enabled) */
  11.472 +		BOOL        panflag;     /* panning flag (default enabled) */
  11.473 +		BOOL        wrap;        /* wrap module ? (default disabled) */
  11.474 +		BOOL        loop;		 /* allow module to loop ? (default enabled) */
  11.475 +		BOOL        fadeout;	 /* volume fade out during last pattern */
  11.476 +
  11.477 +		UWORD       patpos;      /* current row number */
  11.478 +		SWORD       sngpos;      /* current song position */
  11.479 +		ULONG       sngtime;     /* current song time in 2^-10 seconds */
  11.480 +
  11.481 +		SWORD       relspd;      /* relative speed factor */
  11.482 +
  11.483 +	/* internal module representation */
  11.484 +		UWORD       numtrk;      /* number of tracks */
  11.485 +		UBYTE**     tracks;      /* array of numtrk pointers to tracks */
  11.486 +		UWORD*      patterns;    /* array of Patterns */
  11.487 +		UWORD*      pattrows;    /* array of number of rows for each pattern */
  11.488 +		UWORD*      positions;   /* all positions */
  11.489 +
  11.490 +		BOOL        forbid;      /* if true, no player update! */
  11.491 +		UWORD       numrow;      /* number of rows on current pattern */
  11.492 +		UWORD       vbtick;      /* tick counter (counts from 0 to sngspd) */
  11.493 +		UWORD       sngremainder;/* used for song time computation */
  11.494 +
  11.495 +struct MP_CONTROL*  control;     /* Effects Channel info (size pf->numchn) */
  11.496 +struct MP_VOICE*    voice;       /* Audio Voice information (size md_numchn) */
  11.497 +
  11.498 +		UBYTE       globalslide; /* global volume slide rate */
  11.499 +		UBYTE       pat_repcrazy;/* module has just looped to position -1 */
  11.500 +		UWORD       patbrk;      /* position where to start a new pattern */
  11.501 +		UBYTE       patdly;      /* patterndelay counter (command memory) */
  11.502 +		UBYTE       patdly2;     /* patterndelay counter (real one) */
  11.503 +		SWORD       posjmp;      /* flag to indicate a jump is needed... */
  11.504 +		UWORD		bpmlimit;	 /* threshold to detect bpm or speed values */
  11.505 +} MODULE;
  11.506 +
  11.507 +/*
  11.508 + *	========== Module loaders
  11.509 + */
  11.510 +
  11.511 +struct MLOADER;
  11.512 +
  11.513 +MIKMODAPI extern CHAR*   MikMod_InfoLoader(void);
  11.514 +MIKMODAPI extern void    MikMod_RegisterAllLoaders(void);
  11.515 +MIKMODAPI extern void    MikMod_RegisterLoader(struct MLOADER*);
  11.516 +
  11.517 +MIKMODAPI extern struct MLOADER load_669; /* 669 and Extended-669 (by Tran/Renaissance) */
  11.518 +MIKMODAPI extern struct MLOADER load_amf; /* DMP Advanced Module Format (by Otto Chrons) */
  11.519 +MIKMODAPI extern struct MLOADER load_dsm; /* DSIK internal module format */
  11.520 +MIKMODAPI extern struct MLOADER load_far; /* Farandole Composer (by Daniel Potter) */
  11.521 +MIKMODAPI extern struct MLOADER load_gdm; /* General DigiMusic (by Edward Schlunder) */
  11.522 +MIKMODAPI extern struct MLOADER load_it;  /* Impulse Tracker (by Jeffrey Lim) */
  11.523 +MIKMODAPI extern struct MLOADER load_imf; /* Imago Orpheus (by Lutz Roeder) */
  11.524 +MIKMODAPI extern struct MLOADER load_med; /* Amiga MED modules (by Teijo Kinnunen) */
  11.525 +MIKMODAPI extern struct MLOADER load_m15; /* Soundtracker 15-instrument */
  11.526 +MIKMODAPI extern struct MLOADER load_mod; /* Standard 31-instrument Module loader */
  11.527 +MIKMODAPI extern struct MLOADER load_mtm; /* Multi-Tracker Module (by Renaissance) */
  11.528 +MIKMODAPI extern struct MLOADER load_okt; /* Amiga Oktalyzer */
  11.529 +MIKMODAPI extern struct MLOADER load_stm; /* ScreamTracker 2 (by Future Crew) */
  11.530 +MIKMODAPI extern struct MLOADER load_stx; /* STMIK 0.2 (by Future Crew) */
  11.531 +MIKMODAPI extern struct MLOADER load_s3m; /* ScreamTracker 3 (by Future Crew) */
  11.532 +MIKMODAPI extern struct MLOADER load_ult; /* UltraTracker (by MAS) */
  11.533 +MIKMODAPI extern struct MLOADER load_uni; /* MikMod and APlayer internal module format */
  11.534 +MIKMODAPI extern struct MLOADER load_xm;  /* FastTracker 2 (by Triton) */
  11.535 +
  11.536 +/*
  11.537 + *	========== Module player
  11.538 + */
  11.539 +
  11.540 +MIKMODAPI extern MODULE* Player_Load(CHAR*,int,BOOL);
  11.541 +MIKMODAPI extern MODULE* Player_LoadFP(FILE*,int,BOOL);
  11.542 +MIKMODAPI extern MODULE* Player_LoadGeneric(MREADER*,int,BOOL);
  11.543 +MIKMODAPI extern CHAR*   Player_LoadTitle(CHAR*);
  11.544 +MIKMODAPI extern CHAR*   Player_LoadTitleFP(FILE*);
  11.545 +MIKMODAPI extern void    Player_Free(MODULE*);
  11.546 +MIKMODAPI extern void    Player_Start(MODULE*);
  11.547 +MIKMODAPI extern BOOL    Player_Active(void);
  11.548 +MIKMODAPI extern void    Player_Stop(void);
  11.549 +MIKMODAPI extern void    Player_TogglePause(void);
  11.550 +MIKMODAPI extern BOOL    Player_Paused(void);
  11.551 +MIKMODAPI extern void    Player_NextPosition(void);
  11.552 +MIKMODAPI extern void    Player_PrevPosition(void);
  11.553 +MIKMODAPI extern void    Player_SetPosition(UWORD);
  11.554 +MIKMODAPI extern BOOL    Player_Muted(UBYTE);
  11.555 +MIKMODAPI extern void    Player_SetVolume(SWORD);
  11.556 +MIKMODAPI extern MODULE* Player_GetModule(void);
  11.557 +MIKMODAPI extern void    Player_SetSpeed(UWORD);
  11.558 +MIKMODAPI extern void    Player_SetTempo(UWORD);
  11.559 +MIKMODAPI extern void    Player_Unmute(SLONG,...);
  11.560 +MIKMODAPI extern void    Player_Mute(SLONG,...);
  11.561 +MIKMODAPI extern void    Player_ToggleMute(SLONG,...);
  11.562 +MIKMODAPI extern int     Player_GetChannelVoice(UBYTE);
  11.563 +MIKMODAPI extern UWORD   Player_GetChannelPeriod(UBYTE);
  11.564 +
  11.565 +typedef void (MikMod_player)(void);
  11.566 +typedef MikMod_player *MikMod_player_t;
  11.567 +
  11.568 +MIKMODAPI extern MikMod_player_t MikMod_RegisterPlayer(MikMod_player_t);
  11.569 +
  11.570 +#define MUTE_EXCLUSIVE  32000
  11.571 +#define MUTE_INCLUSIVE  32001
  11.572 +
  11.573 +/*
  11.574 + *	========== Drivers
  11.575 + */
  11.576 +
  11.577 +enum {
  11.578 +	MD_MUSIC = 0,
  11.579 +	MD_SNDFX
  11.580 +};
  11.581 +
  11.582 +enum {
  11.583 +	MD_HARDWARE = 0,
  11.584 +	MD_SOFTWARE
  11.585 +};
  11.586 +
  11.587 +/* Mixing flags */
  11.588 +
  11.589 +/* These ones take effect only after MikMod_Init or MikMod_Reset */
  11.590 +#define DMODE_16BITS     0x0001 /* enable 16 bit output */
  11.591 +#define DMODE_STEREO     0x0002 /* enable stereo output */
  11.592 +#define DMODE_SOFT_SNDFX 0x0004 /* Process sound effects via software mixer */
  11.593 +#define DMODE_SOFT_MUSIC 0x0008 /* Process music via software mixer */
  11.594 +#define DMODE_HQMIXER    0x0010 /* Use high-quality (slower) software mixer */
  11.595 +/* These take effect immediately. */
  11.596 +#define DMODE_SURROUND   0x0100 /* enable surround sound */
  11.597 +#define DMODE_INTERP     0x0200 /* enable interpolation */
  11.598 +#define DMODE_REVERSE    0x0400 /* reverse stereo */
  11.599 +
  11.600 +struct SAMPLOAD;
  11.601 +typedef struct MDRIVER {
  11.602 +struct MDRIVER* next;
  11.603 +	CHAR*       Name;
  11.604 +	CHAR*       Version;
  11.605 +
  11.606 +	UBYTE       HardVoiceLimit; /* Limit of hardware mixer voices */
  11.607 +	UBYTE       SoftVoiceLimit; /* Limit of software mixer voices */
  11.608 +
  11.609 +	CHAR*       Alias;
  11.610 +
  11.611 +	void        (*CommandLine)      (CHAR*);
  11.612 +	BOOL        (*IsPresent)        (void);
  11.613 +	SWORD       (*SampleLoad)       (struct SAMPLOAD*,int);
  11.614 +	void        (*SampleUnload)     (SWORD);
  11.615 +	ULONG       (*FreeSampleSpace)  (int);
  11.616 +	ULONG       (*RealSampleLength) (int,struct SAMPLE*);
  11.617 +	BOOL        (*Init)             (void);
  11.618 +	void        (*Exit)             (void);
  11.619 +	BOOL        (*Reset)            (void);
  11.620 +	BOOL        (*SetNumVoices)     (void);
  11.621 +	BOOL        (*PlayStart)        (void);
  11.622 +	void        (*PlayStop)         (void);
  11.623 +	void        (*Update)           (void);
  11.624 +	void		(*Pause)			(void);
  11.625 +	void        (*VoiceSetVolume)   (UBYTE,UWORD);
  11.626 +	UWORD       (*VoiceGetVolume)   (UBYTE);
  11.627 +	void        (*VoiceSetFrequency)(UBYTE,ULONG);
  11.628 +	ULONG       (*VoiceGetFrequency)(UBYTE);
  11.629 +	void        (*VoiceSetPanning)  (UBYTE,ULONG);
  11.630 +	ULONG       (*VoiceGetPanning)  (UBYTE);
  11.631 +	void        (*VoicePlay)        (UBYTE,SWORD,ULONG,ULONG,ULONG,ULONG,UWORD);
  11.632 +	void        (*VoiceStop)        (UBYTE);
  11.633 +	BOOL        (*VoiceStopped)     (UBYTE);
  11.634 +	SLONG       (*VoiceGetPosition) (UBYTE);
  11.635 +	ULONG       (*VoiceRealVolume)  (UBYTE);
  11.636 +} MDRIVER;
  11.637 +
  11.638 +/* These variables can be changed at ANY time and results will be immediate */
  11.639 +MIKMODAPI extern UBYTE md_volume;      /* global sound volume (0-128) */
  11.640 +MIKMODAPI extern UBYTE md_musicvolume; /* volume of song */
  11.641 +MIKMODAPI extern UBYTE md_sndfxvolume; /* volume of sound effects */
  11.642 +MIKMODAPI extern UBYTE md_reverb;      /* 0 = none;  15 = chaos */
  11.643 +MIKMODAPI extern UBYTE md_pansep;      /* 0 = mono;  128 == 100% (full left/right) */
  11.644 +
  11.645 +/* The variables below can be changed at any time, but changes will not be
  11.646 +   implemented until MikMod_Reset is called. A call to MikMod_Reset may result
  11.647 +   in a skip or pop in audio (depending on the soundcard driver and the settings
  11.648 +   changed). */
  11.649 +MIKMODAPI extern UWORD md_device;      /* device */
  11.650 +MIKMODAPI extern UWORD md_mixfreq;     /* mixing frequency */
  11.651 +MIKMODAPI extern UWORD md_mode;        /* mode. See DMODE_? flags above */
  11.652 +
  11.653 +/* The following variable should not be changed! */
  11.654 +MIKMODAPI extern MDRIVER* md_driver;   /* Current driver in use. */
  11.655 +
  11.656 +/* Known drivers list */
  11.657 +
  11.658 +MIKMODAPI extern struct MDRIVER drv_nos;    /* no sound */
  11.659 +MIKMODAPI extern struct MDRIVER drv_pipe;   /* piped output */
  11.660 +MIKMODAPI extern struct MDRIVER drv_raw;    /* raw file disk writer [music.raw] */
  11.661 +MIKMODAPI extern struct MDRIVER drv_stdout; /* output to stdout */
  11.662 +MIKMODAPI extern struct MDRIVER drv_wav;    /* RIFF WAVE file disk writer [music.wav] */
  11.663 +
  11.664 +MIKMODAPI extern struct MDRIVER drv_ultra;  /* Linux Ultrasound driver */
  11.665 +MIKMODAPI extern struct MDRIVER drv_sam9407;	/* Linux sam9407 driver */
  11.666 +
  11.667 +MIKMODAPI extern struct MDRIVER drv_AF;     /* Dec Alpha AudioFile */
  11.668 +MIKMODAPI extern struct MDRIVER drv_aix;    /* AIX audio device */
  11.669 +MIKMODAPI extern struct MDRIVER drv_alsa;   /* Advanced Linux Sound Architecture (ALSA) */
  11.670 +MIKMODAPI extern struct MDRIVER drv_esd;    /* Enlightened sound daemon (EsounD) */
  11.671 +MIKMODAPI extern struct MDRIVER drv_hp;     /* HP-UX audio device */
  11.672 +MIKMODAPI extern struct MDRIVER drv_oss;    /* OpenSound System (Linux,FreeBSD...) */
  11.673 +MIKMODAPI extern struct MDRIVER drv_sgi;    /* SGI audio library */
  11.674 +MIKMODAPI extern struct MDRIVER drv_sun;    /* Sun/NetBSD/OpenBSD audio device */
  11.675 +
  11.676 +MIKMODAPI extern struct MDRIVER drv_dart;   /* OS/2 Direct Audio RealTime */
  11.677 +MIKMODAPI extern struct MDRIVER drv_os2;    /* OS/2 MMPM/2 */
  11.678 +
  11.679 +MIKMODAPI extern struct MDRIVER drv_ds;     /* Win32 DirectSound driver */
  11.680 +MIKMODAPI extern struct MDRIVER drv_win;    /* Win32 multimedia API driver */
  11.681 +
  11.682 +MIKMODAPI extern struct MDRIVER drv_mac;    /* Macintosh Sound Manager driver */
  11.683 +
  11.684 +/*========== Virtual channel mixer interface (for user-supplied drivers only) */
  11.685 +
  11.686 +MIKMODAPI extern BOOL  VC_Init(void);
  11.687 +MIKMODAPI extern void  VC_Exit(void);
  11.688 +MIKMODAPI extern BOOL  VC_SetNumVoices(void);
  11.689 +MIKMODAPI extern ULONG VC_SampleSpace(int);
  11.690 +MIKMODAPI extern ULONG VC_SampleLength(int,SAMPLE*);
  11.691 +
  11.692 +MIKMODAPI extern BOOL  VC_PlayStart(void);
  11.693 +MIKMODAPI extern void  VC_PlayStop(void);
  11.694 +
  11.695 +MIKMODAPI extern SWORD VC_SampleLoad(struct SAMPLOAD*,int);
  11.696 +MIKMODAPI extern void  VC_SampleUnload(SWORD);
  11.697 +
  11.698 +MIKMODAPI extern ULONG VC_WriteBytes(SBYTE*,ULONG);
  11.699 +MIKMODAPI extern ULONG VC_SilenceBytes(SBYTE*,ULONG);
  11.700 +
  11.701 +MIKMODAPI extern void  VC_VoiceSetVolume(UBYTE,UWORD);
  11.702 +MIKMODAPI extern UWORD VC_VoiceGetVolume(UBYTE);
  11.703 +MIKMODAPI extern void  VC_VoiceSetFrequency(UBYTE,ULONG);
  11.704 +MIKMODAPI extern ULONG VC_VoiceGetFrequency(UBYTE);
  11.705 +MIKMODAPI extern void  VC_VoiceSetPanning(UBYTE,ULONG);
  11.706 +MIKMODAPI extern ULONG VC_VoiceGetPanning(UBYTE);
  11.707 +MIKMODAPI extern void  VC_VoicePlay(UBYTE,SWORD,ULONG,ULONG,ULONG,ULONG,UWORD);
  11.708 +
  11.709 +MIKMODAPI extern void  VC_VoiceStop(UBYTE);
  11.710 +MIKMODAPI extern BOOL  VC_VoiceStopped(UBYTE);
  11.711 +MIKMODAPI extern SLONG VC_VoiceGetPosition(UBYTE);
  11.712 +MIKMODAPI extern ULONG VC_VoiceRealVolume(UBYTE);
  11.713 +
  11.714 +#ifdef __cplusplus
  11.715 +}
  11.716 +#endif
  11.717 +
  11.718 +#endif
  11.719 +
  11.720 +/* ex:set ts=4: */
    12.1 Binary file Xcode/mikmod/mikmod.framework/Versions/A/Resources/English.lproj/InfoPlist.strings has changed
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/Xcode/mikmod/mikmod.framework/Versions/A/Resources/Info.plist	Sat Dec 31 10:27:48 2011 -0500
    13.3 @@ -0,0 +1,24 @@
    13.4 +<?xml version="1.0" encoding="UTF-8"?>
    13.5 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    13.6 +<plist version="1.0">
    13.7 +<dict>
    13.8 +	<key>CFBundleDevelopmentRegion</key>
    13.9 +	<string>English</string>
   13.10 +	<key>CFBundleExecutable</key>
   13.11 +	<string>mikmod</string>
   13.12 +	<key>CFBundleGetInfoString</key>
   13.13 +	<string>libmikmod 3.1.12</string>
   13.14 +	<key>CFBundleInfoDictionaryVersion</key>
   13.15 +	<string>6.0</string>
   13.16 +	<key>CFBundleName</key>
   13.17 +	<string>mikmod</string>
   13.18 +	<key>CFBundlePackageType</key>
   13.19 +	<string>FMWK</string>
   13.20 +	<key>CFBundleShortVersionString</key>
   13.21 +	<string>3.1.12</string>
   13.22 +	<key>CFBundleSignature</key>
   13.23 +	<string>????</string>
   13.24 +	<key>CFBundleVersion</key>
   13.25 +	<string>3.1.12</string>
   13.26 +</dict>
   13.27 +</plist>
    14.1 Binary file Xcode/mikmod/mikmod.framework/Versions/A/mikmod has changed
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/Xcode/mikmod/mikmod.framework/Versions/Current	Sat Dec 31 10:27:48 2011 -0500
    15.3 @@ -0,0 +1,1 @@
    15.4 +A
    15.5 \ No newline at end of file
    16.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2 +++ b/Xcode/mikmod/mikmod.framework/mikmod	Sat Dec 31 10:27:48 2011 -0500
    16.3 @@ -0,0 +1,1 @@
    16.4 +Versions/Current/mikmod
    16.5 \ No newline at end of file
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/Xcode/mkxcode.csh	Sat Dec 31 10:27:48 2011 -0500
    17.3 @@ -0,0 +1,24 @@
    17.4 +#!/bin/csh
    17.5 +
    17.6 +###
    17.7 +## This script creates "Xcode.tar.gz" in the parent directory
    17.8 +###
    17.9 +
   17.10 +# remove build products
   17.11 +rm -rf build
   17.12 +rm -rf playmus/build
   17.13 +rm -rf playwave/build
   17.14 +
   17.15 +# remove Finder info files
   17.16 +find . -name ".DS_Store" -exec rm "{}" ";"
   17.17 +
   17.18 +# remove user project prefs
   17.19 +find . -name "*.perspective*" -exec rm "{}" ";"
   17.20 +find . -name "*.pbxuser*" -exec rm "{}" ";"
   17.21 +find . -name "*.mode*" -exec rm "{}" ";"
   17.22 +
   17.23 +# create the archive
   17.24 +(cd .. && gnutar -zcvf Xcode.tar.gz Xcode)
   17.25 +
   17.26 +
   17.27 +
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/Xcode/package	Sat Dec 31 10:27:48 2011 -0500
    18.3 @@ -0,0 +1,272 @@
    18.4 +#! /bin/csh -ef
    18.5 +
    18.6 +set prog = `/usr/bin/basename $0`
    18.7 +set usage = "Usage: $prog [-f] root-dir info-file [tiff-file] [-d dest-dir] [-r resource-dir] [-traditional | -gnutar]"
    18.8 +set noglob
    18.9 +
   18.10 +if (-x /usr/bin/mkbom) then
   18.11 +    set mkbom=/usr/bin/mkbom
   18.12 +    set lsbom=/usr/bin/lsbom
   18.13 +else
   18.14 +    set mkbom=/usr/etc/mkbom
   18.15 +    set lsbom=/usr/etc/lsbom
   18.16 +endif
   18.17 +
   18.18 +if (-x /usr/bin/awk) then
   18.19 +    set awk=/usr/bin/awk
   18.20 +else
   18.21 +    set awk=/bin/awk
   18.22 +endif
   18.23 +
   18.24 +set gnutar=/usr/bin/gnutar
   18.25 +set tar=/usr/bin/tar
   18.26 +set pax=/bin/pax
   18.27 +
   18.28 +# gather parameters
   18.29 +if ($#argv == 0) then
   18.30 +    echo $usage
   18.31 +    exit(1)
   18.32 +endif
   18.33 +
   18.34 +while ( $#argv > 0 )
   18.35 +    switch ( $argv[1] )
   18.36 +	case -d:
   18.37 +	    if ( $?destDir ) then
   18.38 +		echo ${prog}: dest-dir parameter already set to ${destDir}.
   18.39 +		echo $usage
   18.40 +		exit(1)
   18.41 +	    else if ( $#argv < 2 ) then
   18.42 +		echo ${prog}: -d option requires destination directory.
   18.43 +		echo $usage
   18.44 +		exit(1)
   18.45 +	    else
   18.46 +		set destDir = $argv[2]
   18.47 +		shift; shift
   18.48 +		breaksw
   18.49 +	    endif
   18.50 +	case -f:
   18.51 +	    if ( $?rootDir ) then
   18.52 +		echo ${prog}: root-dir parameter already set to ${rootDir}.
   18.53 +		echo $usage
   18.54 +		exit(1)
   18.55 +	    else if ( $#argv < 2 ) then
   18.56 +		echo ${prog}: -f option requires package root directory.
   18.57 +		echo $usage
   18.58 +		exit(1)
   18.59 +	    else
   18.60 +		set rootDir = $argv[2]
   18.61 +		set fflag
   18.62 +		shift; shift
   18.63 +		breaksw
   18.64 +	    endif
   18.65 +	case -r:
   18.66 +	    if ( $?resDir ) then
   18.67 +		echo ${prog}: resource-dir parameter already set to ${resDir}.
   18.68 +		echo $usage
   18.69 +		exit(1)
   18.70 +	    else if ( $#argv < 2 ) then
   18.71 +		echo ${prog}: -r option requires package resource directory.
   18.72 +		echo $usage
   18.73 +		exit(1)
   18.74 +	    else
   18.75 +		set resDir = $argv[2]
   18.76 +		shift; shift
   18.77 +		breaksw
   18.78 +	    endif
   18.79 +	case -traditional:
   18.80 +	    set usetar
   18.81 +            unset usegnutar
   18.82 +	    unset usepax
   18.83 +	    breaksw
   18.84 +        case -gnutar:
   18.85 +	    set usegnutar
   18.86 +            unset usepax
   18.87 +	    unset usetar
   18.88 +	case -B:
   18.89 +	    # We got long file names, better use bigtar instead
   18.90 +	    #set archiver = /NextAdmin/Installer.app/Resources/installer_bigtar
   18.91 +	    echo 2>&1 ${prog}: -B flag is no longer relevant.
   18.92 +	    shift
   18.93 +	    breaksw
   18.94 +	case -*:
   18.95 +	    echo ${prog}: Unknown option: $argv[1]
   18.96 +	    echo $usage
   18.97 +	    exit(1)
   18.98 +	case *.info:
   18.99 +	    if ( $?info ) then
  18.100 +		echo ${prog}: info-file parameter already set to ${info}.
  18.101 +		echo $usage
  18.102 +		exit(1)
  18.103 +	    else
  18.104 +		set info = "$argv[1]"
  18.105 +		shift
  18.106 +		breaksw
  18.107 +	    endif
  18.108 +	case *.tiff:
  18.109 +	    if ( $?tiff ) then
  18.110 +		echo ${prog}: tiff-file parameter already set to ${tiff}.
  18.111 +		echo $usage
  18.112 +		exit(1)
  18.113 +	    else
  18.114 +		set tiff = "$argv[1]"
  18.115 +		shift
  18.116 +		breaksw
  18.117 +	    endif
  18.118 +	default:
  18.119 +	    if ( $?rootDir ) then
  18.120 +		echo ${prog}: unrecognized parameter: $argv[1]
  18.121 +		echo $usage
  18.122 +		exit(1)
  18.123 +	    else
  18.124 +		set rootDir = "$argv[1]"
  18.125 +		shift
  18.126 +		breaksw
  18.127 +	    endif
  18.128 +    endsw
  18.129 +end
  18.130 +
  18.131 +# check for mandatory parameters
  18.132 +if ( ! $?rootDir ) then
  18.133 +    echo ${prog}: missing root-dir parameter.
  18.134 +    echo $usage
  18.135 +    exit(1)
  18.136 +else if ( ! $?info) then
  18.137 +    echo ${prog}: missing info-file parameter.
  18.138 +    echo $usage
  18.139 +    exit(1)
  18.140 +endif
  18.141 +
  18.142 +# destDir gets default value if unset on command line
  18.143 +if ( $?destDir ) then
  18.144 +    /bin/mkdir -p $destDir
  18.145 +else
  18.146 +    set destDir = .
  18.147 +endif
  18.148 +
  18.149 +# derive the root name for the package from the root name of the info file
  18.150 +set root = `/usr/bin/basename $info .info`
  18.151 +
  18.152 +# create package directory
  18.153 +set pkg = ${destDir}/${root}.pkg
  18.154 +echo Generating Installer package $pkg ...
  18.155 +if ( -e $pkg ) /bin/rm -rf $pkg
  18.156 +/bin/mkdir -p -m 755 $pkg
  18.157 +
  18.158 +# (gnu)tar/pax and compress root directory to package archive
  18.159 +echo -n "	creating package archive ... "
  18.160 +if ( $?fflag ) then
  18.161 +    set pkgTop = ${rootDir:t}
  18.162 +    set parent = ${rootDir:h}
  18.163 +    if ( "$parent" == "$pkgTop" ) set parent = "."
  18.164 +else
  18.165 +    set parent = $rootDir
  18.166 +    set pkgTop = .    
  18.167 +endif
  18.168 +if ( $?usetar ) then
  18.169 +    set pkgArchive = $pkg/$root.tar.Z
  18.170 +    (cd $parent; $tar -w $pkgTop) | /usr/bin/compress -f -c > $pkgArchive
  18.171 +else if ( $?usegnutar ) then
  18.172 +    set pkgArchive = $pkg/$root.tar.gz
  18.173 +    (cd $parent; $gnutar zcf $pkgArchive $pkgTop)
  18.174 +else
  18.175 +    set pkgArchive = $pkg/$root.pax.gz
  18.176 +    (cd $parent; $pax -w -z -x cpio $pkgTop) > $pkgArchive
  18.177 +endif
  18.178 +/bin/chmod 444 $pkgArchive
  18.179 +echo done.
  18.180 +
  18.181 +# copy info file to package
  18.182 +set pkgInfo = $pkg/$root.info
  18.183 +echo -n "	copying ${info:t} ... "
  18.184 +/bin/cp $info $pkgInfo
  18.185 +/bin/chmod 444 $pkgInfo
  18.186 +echo done.
  18.187 +
  18.188 +# copy tiff file to package
  18.189 +if ( $?tiff ) then
  18.190 +    set pkgTiff = $pkg/$root.tiff
  18.191 +    echo -n "	copying ${tiff:t} ... "
  18.192 +    /bin/cp $tiff $pkgTiff
  18.193 +    /bin/chmod 444 $pkgTiff
  18.194 +    echo done.
  18.195 +endif
  18.196 +
  18.197 +# copy resources to package
  18.198 +if ( $?resDir ) then
  18.199 +    echo -n "	copying ${resDir:t} ... "
  18.200 +
  18.201 +    # don't want to see push/pop output
  18.202 +    pushd $resDir > /dev/null
  18.203 +	# get lists of resources. We'll want to change
  18.204 +	# permissions on just these things later.
  18.205 +        set directoriesInResDir = `find . -type d`
  18.206 +        set filesInResDir = `find . -type f`
  18.207 +    popd > /dev/null
  18.208 +
  18.209 +    # copy the resource directory contents into the package directory
  18.210 +    foreach resFile (`ls $resDir`)
  18.211 +	cp -r $resDir/$resFile $pkg
  18.212 +    end
  18.213 +
  18.214 +    pushd $pkg > /dev/null
  18.215 +	# Change all directories to +r+x, except the package
  18.216 +	# directory itself
  18.217 +        foreach resFileItem ($directoriesInResDir)
  18.218 +            if ( $resFileItem != "." ) then
  18.219 +                chmod 555 $resFileItem
  18.220 +            endif
  18.221 +        end
  18.222 +	# change all flat files to read only
  18.223 +        foreach resFileItem ($filesInResDir)
  18.224 +            chmod 444 $resFileItem
  18.225 +        end
  18.226 +    popd > /dev/null
  18.227 +
  18.228 +    echo done.
  18.229 +endif
  18.230 +
  18.231 +# generate bom file
  18.232 +set pkgBom = $pkg/$root.bom
  18.233 +echo -n "	generating bom file ... "
  18.234 +/bin/rm -f $pkgBom
  18.235 +if ( $?fflag ) then
  18.236 +    $mkbom $parent $pkgBom >& /dev/null
  18.237 +else
  18.238 +    $mkbom $rootDir $pkgBom >& /dev/null
  18.239 +endif
  18.240 +/bin/chmod 444 $pkgArchive
  18.241 +echo done.
  18.242 +	
  18.243 +# generate sizes file
  18.244 +set pkgSizes = $pkg/$root.sizes
  18.245 +echo -n "	generating sizes file ... "
  18.246 +
  18.247 +# compute number of files in package
  18.248 +set numFiles = `$lsbom -s $pkgBom | /usr/bin/wc -l`
  18.249 +
  18.250 +# compute package size when compressed
  18.251 +@ compressedSize = `/usr/bin/du -k -s $pkg | $awk '{print $1}'`
  18.252 +@ compressedSize += 3		# add 1KB each for sizes, location, status files
  18.253 +
  18.254 +@ infoSize = `/bin/ls -s $pkgInfo | $awk '{print $1}'`
  18.255 +@ bomSize = `/bin/ls -s $pkgBom | $awk '{print $1}'`
  18.256 +if ( $?tiff ) then
  18.257 +    @ tiffSize = `/bin/ls -s $pkgTiff | $awk '{print $1}'`
  18.258 +else
  18.259 +    @ tiffSize = 0
  18.260 +endif 
  18.261 +
  18.262 +@ installedSize = `/usr/bin/du -k -s $rootDir | $awk '{print $1}'`
  18.263 +@ installedSize += $infoSize + $bomSize + $tiffSize + 3
  18.264 +
  18.265 +# echo size parameters to sizes file
  18.266 +echo NumFiles $numFiles             >  $pkgSizes
  18.267 +echo InstalledSize $installedSize   >> $pkgSizes
  18.268 +echo CompressedSize $compressedSize >> $pkgSizes
  18.269 +echo done.
  18.270 +echo " ... finished generating $pkg."
  18.271 +
  18.272 +exit(0)
  18.273 +
  18.274 +# end package
  18.275 +	
    19.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2 +++ b/Xcode/pkg-support/SDL_mixer.info	Sat Dec 31 10:27:48 2011 -0500
    19.3 @@ -0,0 +1,15 @@
    19.4 +Title SDL_mixer 1.2.10
    19.5 +Version 1
    19.6 +Description SDL_mixer Library for Mac OS X (http://www.libsdl.org/projects/SDL_mixer)
    19.7 +DefaultLocation /Library/Frameworks
    19.8 +Diskname (null)
    19.9 +DeleteWarning 
   19.10 +NeedsAuthorization NO
   19.11 +DisableStop NO
   19.12 +UseUserMask NO
   19.13 +Application NO
   19.14 +Relocatable YES
   19.15 +Required NO
   19.16 +InstallOnly NO
   19.17 +RequiresReboot NO
   19.18 +InstallFat NO
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/Xcode/pkg-support/mkpackage.sh	Sat Dec 31 10:27:48 2011 -0500
    20.3 @@ -0,0 +1,27 @@
    20.4 +#!/bin/sh
    20.5 +
    20.6 +# Generic script to create a package with Project Builder in mind
    20.7 +# There should only be one version of this script for all projects!
    20.8 +
    20.9 +FRAMEWORK="$1"
   20.10 +VARIANT="$2"
   20.11 +
   20.12 +PACKAGE="$FRAMEWORK"
   20.13 +PACKAGE_RESOURCES="pkg-support/resources"
   20.14 +
   20.15 +echo "Building package for $FRAMEWORK.framework"
   20.16 +echo "Will fetch resources from $PACKAGE_RESOURCES"
   20.17 +echo "Will create the package $PACKAGE.pkg"
   20.18 +
   20.19 +# create a copy of the framework
   20.20 +mkdir -p build/pkg-tmp
   20.21 +/Developer/Tools/CpMac -r "build/$FRAMEWORK.framework" build/pkg-tmp/
   20.22 +
   20.23 +./package build/pkg-tmp "pkg-support/$PACKAGE.info" -d  build -r "$PACKAGE_RESOURCES" 
   20.24 +
   20.25 +# remove temporary files
   20.26 +rm -rf build/pkg-tmp
   20.27 +
   20.28 +# compress
   20.29 +(cd build; tar -zcvf "$PACKAGE.pkg.tar.gz" "$PACKAGE.pkg")
   20.30 +
    21.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2 +++ b/Xcode/pkg-support/resources/ReadMe.txt	Sat Dec 31 10:27:48 2011 -0500
    21.3 @@ -0,0 +1,26 @@
    21.4 +SDL_mixer is an example portable sound library for use with SDL.
    21.5 +
    21.6 +The source code is available from: http://www.libsdl.org/projects/SDL_mixer
    21.7 +
    21.8 +This library is distributed under the terms of the GNU LGPL license: http://www.gnu.org/copyleft/lesser.html
    21.9 +
   21.10 +This packages contains the SDL_image.framework for OS X. Conforming with Apple guidelines, this framework contains both the SDL runtime component and development header files.
   21.11 +
   21.12 +Requirements:
   21.13 +You must have the SDL.framework installed.
   21.14 +
   21.15 +To Install:
   21.16 +Copy the SDL_mixer.framework to /Library/Frameworks
   21.17 +
   21.18 +You may alternatively install it in <your home directory>/Library/Frameworks if your access privileges are not high enough. (Be aware that the Xcode templates we provide in the SDL Developer Extras package may require some adjustment for your system if you do this.)
   21.19 +
   21.20 +
   21.21 +(Partial) History of PB/Xcode projects:
   21.22 +2009-09-21 - Updated for 64-bit (Snow Leopard) Universal Binaries.
   21.23 +	Switched to 10.4 minimum requirement.
   21.24 +	Reebuilt Ogg Vorbis components for 64-bit Universal.
   21.25 +	Ogg 1.1.4
   21.26 +	Vorbis 1.2.3
   21.27 +	Mac native midi had to be disabled because the code depends on legacy Quicktime and won't compile in 64-bit.
   21.28 +	
   21.29 +2006-01-31 - First entry in history. Updated for Universal Binaries. Static libraries of libogg and libvorbis have been brought up-to-date and built as Universal. Infrastructure has been added to support building against smpeg statically, but there may be bugs in smpeg itself (unrelated to static linking) which prevent MP3 playback.
    22.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.2 +++ b/Xcode/pkg-support/resources/Welcome.txt	Sat Dec 31 10:27:48 2011 -0500
    22.3 @@ -0,0 +1,3 @@
    22.4 +This package installs the SDL_mixer library into /Library/Frameworks. You can also install it in 
    22.5 +<your home directory>/Library/Frameworks if your access privileges are not high enough.
    22.6 +
    23.1 Binary file Xcode/playmus/English.lproj/InfoPlist.strings has changed
    24.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.2 +++ b/Xcode/playmus/Info-playmus__Upgraded_.plist	Sat Dec 31 10:27:48 2011 -0500
    24.3 @@ -0,0 +1,79 @@
    24.4 +<?xml version="1.0" encoding="UTF-8"?>
    24.5 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    24.6 +<plist version="1.0">
    24.7 +<dict>
    24.8 +	<key>CFBundleDevelopmentRegion</key>
    24.9 +	<string>English</string>
   24.10 +	<key>CFBundleDocumentTypes</key>
   24.11 +	<array>
   24.12 +		<dict>
   24.13 +			<key>CFBundleTypeExtensions</key>
   24.14 +			<array>
   24.15 +				<string>mid</string>
   24.16 +			</array>
   24.17 +			<key>CFBundleTypeMIMETypes</key>
   24.18 +			<array>
   24.19 +				<string>audio/midi</string>
   24.20 +			</array>
   24.21 +			<key>CFBundleTypeName</key>
   24.22 +			<string>MIDI audio</string>
   24.23 +			<key>CFBundleTypeRole</key>
   24.24 +			<string>Viewer</string>
   24.25 +			<key>LSTypeIsPackage</key>
   24.26 +			<false/>
   24.27 +			<key>NSPersistentStoreTypeKey</key>
   24.28 +			<string>Binary</string>
   24.29 +		</dict>
   24.30 +		<dict>
   24.31 +			<key>CFBundleTypeExtensions</key>
   24.32 +			<array>
   24.33 +				<string>mp3</string>
   24.34 +			</array>
   24.35 +			<key>CFBundleTypeMIMETypes</key>
   24.36 +			<array>
   24.37 +				<string>audio/mpeg</string>
   24.38 +			</array>
   24.39 +			<key>CFBundleTypeName</key>
   24.40 +			<string>MP3 audio</string>
   24.41 +			<key>CFBundleTypeRole</key>
   24.42 +			<string>Viewer</string>
   24.43 +			<key>LSTypeIsPackage</key>
   24.44 +			<false/>
   24.45 +			<key>NSPersistentStoreTypeKey</key>
   24.46 +			<string>Binary</string>
   24.47 +		</dict>
   24.48 +		<dict>
   24.49 +			<key>CFBundleTypeExtensions</key>
   24.50 +			<array>
   24.51 +				<string>mod</string>
   24.52 +				<string>xm</string>
   24.53 +				<string>it</string>
   24.54 +			</array>
   24.55 +			<key>CFBundleTypeName</key>
   24.56 +			<string>MOD audio</string>
   24.57 +			<key>CFBundleTypeRole</key>
   24.58 +			<string>Viewer</string>
   24.59 +			<key>LSTypeIsPackage</key>
   24.60 +			<false/>
   24.61 +			<key>NSPersistentStoreTypeKey</key>
   24.62 +			<string>Binary</string>
   24.63 +		</dict>
   24.64 +	</array>
   24.65 +	<key>CFBundleExecutable</key>
   24.66 +	<string>playmus</string>
   24.67 +	<key>CFBundleIconFile</key>
   24.68 +	<string></string>
   24.69 +	<key>CFBundleInfoDictionaryVersion</key>
   24.70 +	<string>6.0</string>
   24.71 +	<key>CFBundlePackageType</key>
   24.72 +	<string>APPL</string>
   24.73 +	<key>CFBundleSignature</key>
   24.74 +	<string>????</string>
   24.75 +	<key>CFBundleVersion</key>
   24.76 +	<string>0.1</string>
   24.77 +	<key>NSMainNibFile</key>
   24.78 +	<string>MainMenu</string>
   24.79 +	<key>NSPrincipalClass</key>
   24.80 +	<string>NSApplication</string>
   24.81 +</dict>
   24.82 +</plist>
    25.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.2 +++ b/Xcode/playmus/SDLMain.h	Sat Dec 31 10:27:48 2011 -0500
    25.3 @@ -0,0 +1,16 @@
    25.4 +/*   SDLMain.m - main entry point for our Cocoa-ized SDL app
    25.5 +       Initial Version: Darrell Walisser <dwaliss1@purdue.edu>
    25.6 +       Non-NIB-Code & other changes: Max Horn <max@quendi.de>
    25.7 +
    25.8 +    Feel free to customize this file to suit your needs
    25.9 +*/
   25.10 +
   25.11 +#ifndef _SDLMain_h_
   25.12 +#define _SDLMain_h_
   25.13 +
   25.14 +#import <Cocoa/Cocoa.h>
   25.15 +
   25.16 +@interface SDLMain : NSObject
   25.17 +@end
   25.18 +
   25.19 +#endif /* _SDLMain_h_ */
    26.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.2 +++ b/Xcode/playmus/SDLMain.m	Sat Dec 31 10:27:48 2011 -0500
    26.3 @@ -0,0 +1,383 @@
    26.4 +/*   SDLMain.m - main entry point for our Cocoa-ized SDL app
    26.5 +       Initial Version: Darrell Walisser <dwaliss1@purdue.edu>
    26.6 +       Non-NIB-Code & other changes: Max Horn <max@quendi.de>
    26.7 +
    26.8 +    Feel free to customize this file to suit your needs
    26.9 +*/
   26.10 +
   26.11 +#include "SDL.h"
   26.12 +#include "SDLMain.h"
   26.13 +#include <sys/param.h> /* for MAXPATHLEN */
   26.14 +#include <unistd.h>
   26.15 +
   26.16 +/* For some reaon, Apple removed setAppleMenu from the headers in 10.4,
   26.17 + but the method still is there and works. To avoid warnings, we declare
   26.18 + it ourselves here. */
   26.19 +@interface NSApplication(SDL_Missing_Methods)
   26.20 +- (void)setAppleMenu:(NSMenu *)menu;
   26.21 +@end
   26.22 +
   26.23 +/* Use this flag to determine whether we use SDLMain.nib or not */
   26.24 +#define		SDL_USE_NIB_FILE	0
   26.25 +
   26.26 +/* Use this flag to determine whether we use CPS (docking) or not */
   26.27 +#define		SDL_USE_CPS		1
   26.28 +#ifdef SDL_USE_CPS
   26.29 +/* Portions of CPS.h */
   26.30 +typedef struct CPSProcessSerNum
   26.31 +{
   26.32 +	UInt32		lo;
   26.33 +	UInt32		hi;
   26.34 +} CPSProcessSerNum;
   26.35 +
   26.36 +extern OSErr	CPSGetCurrentProcess( CPSProcessSerNum *psn);
   26.37 +extern OSErr 	CPSEnableForegroundOperation( CPSProcessSerNum *psn, UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5);
   26.38 +extern OSErr	CPSSetFrontProcess( CPSProcessSerNum *psn);
   26.39 +
   26.40 +#endif /* SDL_USE_CPS */
   26.41 +
   26.42 +static int    gArgc;
   26.43 +static char  **gArgv;
   26.44 +static BOOL   gFinderLaunch;
   26.45 +static BOOL   gCalledAppMainline = FALSE;
   26.46 +
   26.47 +static NSString *getApplicationName(void)
   26.48 +{
   26.49 +    const NSDictionary *dict;
   26.50 +    NSString *appName = 0;
   26.51 +
   26.52 +    /* Determine the application name */
   26.53 +    dict = (const NSDictionary *)CFBundleGetInfoDictionary(CFBundleGetMainBundle());
   26.54 +    if (dict)
   26.55 +        appName = [dict objectForKey: @"CFBundleName"];
   26.56 +    
   26.57 +    if (![appName length])
   26.58 +        appName = [[NSProcessInfo processInfo] processName];
   26.59 +
   26.60 +    return appName;
   26.61 +}
   26.62 +
   26.63 +#if SDL_USE_NIB_FILE
   26.64 +/* A helper category for NSString */
   26.65 +@interface NSString (ReplaceSubString)
   26.66 +- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString;
   26.67 +@end
   26.68 +#endif
   26.69 +
   26.70 +@interface SDLApplication : NSApplication
   26.71 +@end
   26.72 +
   26.73 +@implementation SDLApplication
   26.74 +/* Invoked from the Quit menu item */
   26.75 +- (void)terminate:(id)sender
   26.76 +{
   26.77 +    /* Post a SDL_QUIT event */
   26.78 +    SDL_Event event;
   26.79 +    event.type = SDL_QUIT;
   26.80 +    SDL_PushEvent(&event);
   26.81 +}
   26.82 +@end
   26.83 +
   26.84 +/* The main class of the application, the application's delegate */
   26.85 +@implementation SDLMain
   26.86 +
   26.87 +/* Set the working directory to the .app's parent directory */
   26.88 +- (void) setupWorkingDirectory:(BOOL)shouldChdir
   26.89 +{
   26.90 +    if (shouldChdir)
   26.91 +    {
   26.92 +        char parentdir[MAXPATHLEN];
   26.93 +        CFURLRef url = CFBundleCopyBundleURL(CFBundleGetMainBundle());
   26.94 +        CFURLRef url2 = CFURLCreateCopyDeletingLastPathComponent(0, url);
   26.95 +        if (CFURLGetFileSystemRepresentation(url2, 1, (UInt8 *)parentdir, MAXPATHLEN)) {
   26.96 +            chdir(parentdir);   /* chdir to the binary app's parent */
   26.97 +        }
   26.98 +        CFRelease(url);
   26.99 +        CFRelease(url2);
  26.100 +    }
  26.101 +}
  26.102 +
  26.103 +#if SDL_USE_NIB_FILE
  26.104 +
  26.105 +/* Fix menu to contain the real app name instead of "SDL App" */
  26.106 +- (void)fixMenu:(NSMenu *)aMenu withAppName:(NSString *)appName
  26.107 +{
  26.108 +    NSRange aRange;
  26.109 +    NSEnumerator *enumerator;
  26.110 +    NSMenuItem *menuItem;
  26.111 +
  26.112 +    aRange = [[aMenu title] rangeOfString:@"SDL App"];
  26.113 +    if (aRange.length != 0)
  26.114 +        [aMenu setTitle: [[aMenu title] stringByReplacingRange:aRange with:appName]];
  26.115 +
  26.116 +    enumerator = [[aMenu itemArray] objectEnumerator];
  26.117 +    while ((menuItem = [enumerator nextObject]))
  26.118 +    {
  26.119 +        aRange = [[menuItem title] rangeOfString:@"SDL App"];
  26.120 +        if (aRange.length != 0)
  26.121 +            [menuItem setTitle: [[menuItem title] stringByReplacingRange:aRange with:appName]];
  26.122 +        if ([menuItem hasSubmenu])
  26.123 +            [self fixMenu:[menuItem submenu] withAppName:appName];
  26.124 +    }
  26.125 +    [ aMenu sizeToFit ];
  26.126 +}
  26.127 +
  26.128 +#else
  26.129 +
  26.130 +static void setApplicationMenu(void)
  26.131 +{
  26.132 +    /* warning: this code is very odd */
  26.133 +    NSMenu *appleMenu;
  26.134 +    NSMenuItem *menuItem;
  26.135 +    NSString *title;
  26.136 +    NSString *appName;
  26.137 +    
  26.138 +    appName = getApplicationName();
  26.139 +    appleMenu = [[NSMenu alloc] initWithTitle:@""];
  26.140 +    
  26.141 +    /* Add menu items */
  26.142 +    title = [@"About " stringByAppendingString:appName];
  26.143 +    [appleMenu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""];
  26.144 +
  26.145 +    [appleMenu addItem:[NSMenuItem separatorItem]];
  26.146 +
  26.147 +    title = [@"Hide " stringByAppendingString:appName];
  26.148 +    [appleMenu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@"h"];
  26.149 +
  26.150 +    menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:@"Hide Others" action:@selector(hideOtherApplications:) keyEquivalent:@"h"];
  26.151 +    [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)];
  26.152 +
  26.153 +    [appleMenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""];
  26.154 +
  26.155 +    [appleMenu addItem:[NSMenuItem separatorItem]];
  26.156 +
  26.157 +    title = [@"Quit " stringByAppendingString:appName];
  26.158 +    [appleMenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@"q"];
  26.159 +
  26.160 +    
  26.161 +    /* Put menu into the menubar */
  26.162 +    menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
  26.163 +    [menuItem setSubmenu:appleMenu];
  26.164 +    [[NSApp mainMenu] addItem:menuItem];
  26.165 +
  26.166 +    /* Tell the application object that this is now the application menu */
  26.167 +    [NSApp setAppleMenu:appleMenu];
  26.168 +
  26.169 +    /* Finally give up our references to the objects */
  26.170 +    [appleMenu release];
  26.171 +    [menuItem release];
  26.172 +}
  26.173 +
  26.174 +/* Create a window menu */
  26.175 +static void setupWindowMenu(void)
  26.176 +{
  26.177 +    NSMenu      *windowMenu;
  26.178 +    NSMenuItem  *windowMenuItem;
  26.179 +    NSMenuItem  *menuItem;
  26.180 +
  26.181 +    windowMenu = [[NSMenu alloc] initWithTitle:@"Window"];
  26.182 +    
  26.183 +    /* "Minimize" item */
  26.184 +    menuItem = [[NSMenuItem alloc] initWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@"m"];
  26.185 +    [windowMenu addItem:menuItem];
  26.186 +    [menuItem release];
  26.187 +    
  26.188 +    /* Put menu into the menubar */
  26.189 +    windowMenuItem = [[NSMenuItem alloc] initWithTitle:@"Window" action:nil keyEquivalent:@""];
  26.190 +    [windowMenuItem setSubmenu:windowMenu];
  26.191 +    [[NSApp mainMenu] addItem:windowMenuItem];
  26.192 +    
  26.193 +    /* Tell the application object that this is now the window menu */
  26.194 +    [NSApp setWindowsMenu:windowMenu];
  26.195 +
  26.196 +    /* Finally give up our references to the objects */
  26.197 +    [windowMenu release];
  26.198 +    [windowMenuItem release];
  26.199 +}
  26.200 +
  26.201 +/* Replacement for NSApplicationMain */
  26.202 +static void CustomApplicationMain (int argc, char **argv)
  26.203 +{
  26.204 +    NSAutoreleasePool	*pool = [[NSAutoreleasePool alloc] init];
  26.205 +    SDLMain				*sdlMain;
  26.206 +
  26.207 +    /* Ensure the application object is initialised */
  26.208 +    [SDLApplication sharedApplication];
  26.209 +    
  26.210 +#ifdef SDL_USE_CPS
  26.211 +    {
  26.212 +        CPSProcessSerNum PSN;
  26.213 +        /* Tell the dock about us */
  26.214 +        if (!CPSGetCurrentProcess(&PSN))
  26.215 +            if (!CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103))
  26.216 +                if (!CPSSetFrontProcess(&PSN))
  26.217 +                    [SDLApplication sharedApplication];
  26.218 +    }
  26.219 +#endif /* SDL_USE_CPS */
  26.220 +
  26.221 +    /* Set up the menubar */
  26.222 +    [NSApp setMainMenu:[[NSMenu alloc] init]];
  26.223 +    setApplicationMenu();
  26.224 +    setupWindowMenu();
  26.225 +
  26.226 +    /* Create SDLMain and make it the app delegate */
  26.227 +    sdlMain = [[SDLMain alloc] init];
  26.228 +    [NSApp setDelegate:sdlMain];
  26.229 +    
  26.230 +    /* Start the main event loop */
  26.231 +    [NSApp run];
  26.232 +    
  26.233 +    [sdlMain release];
  26.234 +    [pool release];
  26.235 +}
  26.236 +
  26.237 +#endif
  26.238 +
  26.239 +
  26.240 +/*
  26.241 + * Catch document open requests...this lets us notice files when the app
  26.242 + *  was launched by double-clicking a document, or when a document was
  26.243 + *  dragged/dropped on the app's icon. You need to have a
  26.244 + *  CFBundleDocumentsType section in your Info.plist to get this message,
  26.245 + *  apparently.
  26.246 + *
  26.247 + * Files are added to gArgv, so to the app, they'll look like command line
  26.248 + *  arguments. Previously, apps launched from the finder had nothing but
  26.249 + *  an argv[0].
  26.250 + *
  26.251 + * This message may be received multiple times to open several docs on launch.
  26.252 + *
  26.253 + * This message is ignored once the app's mainline has been called.
  26.254 + */
  26.255 +- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
  26.256 +{
  26.257 +    const char *temparg;
  26.258 +    size_t arglen;
  26.259 +    char *arg;
  26.260 +    char **newargv;
  26.261 +
  26.262 +    if (!gFinderLaunch)  /* MacOS is passing command line args. */
  26.263 +        return FALSE;
  26.264 +
  26.265 +    if (gCalledAppMainline)  /* app has started, ignore this document. */
  26.266 +        return FALSE;
  26.267 +
  26.268 +    temparg = [filename UTF8String];
  26.269 +    arglen = SDL_strlen(temparg) + 1;
  26.270 +    arg = (char *) SDL_malloc(arglen);
  26.271 +    if (arg == NULL)
  26.272 +        return FALSE;
  26.273 +
  26.274 +    newargv = (char **) realloc(gArgv, sizeof (char *) * (gArgc + 2));
  26.275 +    if (newargv == NULL)
  26.276 +    {
  26.277 +        SDL_free(arg);
  26.278 +        return FALSE;
  26.279 +    }
  26.280 +    gArgv = newargv;
  26.281 +
  26.282 +    SDL_strlcpy(arg, temparg, arglen);
  26.283 +    gArgv[gArgc++] = arg;
  26.284 +    gArgv[gArgc] = NULL;
  26.285 +    return TRUE;
  26.286 +}
  26.287 +
  26.288 +
  26.289 +/* Called when the internal event loop has just started running */
  26.290 +- (void) applicationDidFinishLaunching: (NSNotification *) note
  26.291 +{
  26.292 +    int status;
  26.293 +
  26.294 +    /* Set the working directory to the .app's parent directory */
  26.295 +    [self setupWorkingDirectory:gFinderLaunch];
  26.296 +
  26.297 +#if SDL_USE_NIB_FILE
  26.298 +    /* Set the main menu to contain the real app name instead of "SDL App" */
  26.299 +    [self fixMenu:[NSApp mainMenu] withAppName:getApplicationName()];
  26.300 +#endif
  26.301 +
  26.302 +    /* Hand off to main application code */
  26.303 +    gCalledAppMainline = TRUE;
  26.304 +    status = SDL_main (gArgc, gArgv);
  26.305 +
  26.306 +    /* We're done, thank you for playing */
  26.307 +    exit(status);
  26.308 +}
  26.309 +@end
  26.310 +
  26.311 +
  26.312 +@implementation NSString (ReplaceSubString)
  26.313 +
  26.314 +- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString
  26.315 +{
  26.316 +    unsigned int bufferSize;
  26.317 +    unsigned int selfLen = [self length];
  26.318 +    unsigned int aStringLen = [aString length];
  26.319 +    unichar *buffer;
  26.320 +    NSRange localRange;
  26.321 +    NSString *result;
  26.322 +
  26.323 +    bufferSize = selfLen + aStringLen - aRange.length;
  26.324 +    buffer = (unichar *)NSAllocateMemoryPages(bufferSize*sizeof(unichar));
  26.325 +    
  26.326 +    /* Get first part into buffer */
  26.327 +    localRange.location = 0;
  26.328 +    localRange.length = aRange.location;
  26.329 +    [self getCharacters:buffer range:localRange];
  26.330 +    
  26.331 +    /* Get middle part into buffer */
  26.332 +    localRange.location = 0;
  26.333 +    localRange.length = aStringLen;
  26.334 +    [aString getCharacters:(buffer+aRange.location) range:localRange];
  26.335 +     
  26.336 +    /* Get last part into buffer */
  26.337 +    localRange.location = aRange.location + aRange.length;
  26.338 +    localRange.length = selfLen - localRange.location;
  26.339 +    [self getCharacters:(buffer+aRange.location+aStringLen) range:localRange];
  26.340 +    
  26.341 +    /* Build output string */
  26.342 +    result = [NSString stringWithCharacters:buffer length:bufferSize];
  26.343 +    
  26.344 +    NSDeallocateMemoryPages(buffer, bufferSize);
  26.345 +    
  26.346 +    return result;
  26.347 +}
  26.348 +
  26.349 +@end
  26.350 +
  26.351 +
  26.352 +
  26.353 +#ifdef main
  26.354 +#  undef main
  26.355 +#endif
  26.356 +
  26.357 +
  26.358 +/* Main entry point to executable - should *not* be SDL_main! */
  26.359 +int main (int argc, char **argv)
  26.360 +{
  26.361 +    /* Copy the arguments into a global variable */
  26.362 +    /* This is passed if we are launched by double-clicking */
  26.363 +    if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) {
  26.364 +        gArgv = (char **) SDL_malloc(sizeof (char *) * 2);
  26.365 +        gArgv[0] = argv[0];
  26.366 +        gArgv[1] = NULL;
  26.367 +        gArgc = 1;
  26.368 +        gFinderLaunch = YES;
  26.369 +    } else {
  26.370 +        int i;
  26.371 +        gArgc = argc;
  26.372 +        gArgv = (char **) SDL_malloc(sizeof (char *) * (argc+1));
  26.373 +        for (i = 0; i <= argc; i++)
  26.374 +            gArgv[i] = argv[i];
  26.375 +        gFinderLaunch = NO;
  26.376 +    }
  26.377 +
  26.378 +#if SDL_USE_NIB_FILE
  26.379 +    [SDLApplication poseAsClass:[NSApplication class]];
  26.380 +    NSApplicationMain (argc, argv);
  26.381 +#else
  26.382 +    CustomApplicationMain (argc, argv);
  26.383 +#endif
  26.384 +    return 0;
  26.385 +}
  26.386 +
    27.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.2 +++ b/Xcode/playmus/playmus.xcodeproj/project.pbxproj	Sat Dec 31 10:27:48 2011 -0500
    27.3 @@ -0,0 +1,380 @@
    27.4 +// !$*UTF8*$!
    27.5 +{
    27.6 +	archiveVersion = 1;
    27.7 +	classes = {
    27.8 +	};
    27.9 +	objectVersion = 42;
   27.10 +	objects = {
   27.11 +
   27.12 +/* Begin PBXBuildFile section */
   27.13 +		BE1FA98C07AF9AAE004B6283 /* SDLMain.h in Headers */ = {isa = PBXBuildFile; fileRef = F5A47A9D01A0482F01D3D55B /* SDLMain.h */; };
   27.14 +		BE1FA98E07AF9AAE004B6283 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
   27.15 +		BE1FA99007AF9AAE004B6283 /* SDLMain.m in Sources */ = {isa = PBXBuildFile; fileRef = F5A47A9E01A0483001D3D55B /* SDLMain.m */; };
   27.16 +		BE1FA99107AF9AAE004B6283 /* playmus.c in Sources */ = {isa = PBXBuildFile; fileRef = F567D67401CD945F01F3E8B9 /* playmus.c */; };
   27.17 +		BE1FA99307AF9AAE004B6283 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
   27.18 +		BE1FA99B07AF9B6E004B6283 /* SDL_mixer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1FA99907AF9B6E004B6283 /* SDL_mixer.framework */; };
   27.19 +		BE1FA99C07AF9B6E004B6283 /* SDL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1FA99A07AF9B6E004B6283 /* SDL.framework */; };
   27.20 +/* End PBXBuildFile section */
   27.21 +
   27.22 +/* Begin PBXFileReference section */
   27.23 +		089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
   27.24 +		1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
   27.25 +		29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
   27.26 +		29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
   27.27 +		BE1FA99407AF9AAE004B6283 /* Info-playmus__Upgraded_.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-playmus__Upgraded_.plist"; sourceTree = "<group>"; };
   27.28 +		BE1FA99507AF9AAE004B6283 /* playmus.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = playmus.app; sourceTree = BUILT_PRODUCTS_DIR; };
   27.29 +		BE1FA99907AF9B6E004B6283 /* SDL_mixer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL_mixer.framework; path = /Library/Frameworks/SDL_mixer.framework; sourceTree = "<absolute>"; };
   27.30 +		BE1FA99A07AF9B6E004B6283 /* SDL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL.framework; path = /Library/Frameworks/SDL.framework; sourceTree = "<absolute>"; };
   27.31 +		F567D67401CD945F01F3E8B9 /* playmus.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = playmus.c; path = ../../playmus.c; sourceTree = SOURCE_ROOT; };
   27.32 +		F5A47A9D01A0482F01D3D55B /* SDLMain.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SDLMain.h; sourceTree = SOURCE_ROOT; };
   27.33 +		F5A47A9E01A0483001D3D55B /* SDLMain.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SDLMain.m; sourceTree = SOURCE_ROOT; };
   27.34 +/* End PBXFileReference section */
   27.35 +
   27.36 +/* Begin PBXFrameworksBuildPhase section */
   27.37 +		BE1FA99207AF9AAE004B6283 /* Frameworks */ = {
   27.38 +			isa = PBXFrameworksBuildPhase;
   27.39 +			buildActionMask = 2147483647;
   27.40 +			files = (
   27.41 +				BE1FA99307AF9AAE004B6283 /* Cocoa.framework in Frameworks */,
   27.42 +				BE1FA99B07AF9B6E004B6283 /* SDL_mixer.framework in Frameworks */,
   27.43 +				BE1FA99C07AF9B6E004B6283 /* SDL.framework in Frameworks */,
   27.44 +			);
   27.45 +			runOnlyForDeploymentPostprocessing = 0;
   27.46 +		};
   27.47 +/* End PBXFrameworksBuildPhase section */
   27.48 +
   27.49 +/* Begin PBXGroup section */
   27.50 +		080E96DDFE201D6D7F000001 /* Classes */ = {
   27.51 +			isa = PBXGroup;
   27.52 +			children = (
   27.53 +				F5A47A9D01A0482F01D3D55B /* SDLMain.h */,
   27.54 +				F5A47A9E01A0483001D3D55B /* SDLMain.m */,
   27.55 +			);
   27.56 +			name = Classes;
   27.57 +			sourceTree = "<group>";
   27.58 +		};
   27.59 +		1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
   27.60 +			isa = PBXGroup;
   27.61 +			children = (
   27.62 +				BE1FA99907AF9B6E004B6283 /* SDL_mixer.framework */,
   27.63 +				BE1FA99A07AF9B6E004B6283 /* SDL.framework */,
   27.64 +				1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
   27.65 +			);
   27.66 +			name = "Linked Frameworks";
   27.67 +			sourceTree = "<group>";
   27.68 +		};
   27.69 +		1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
   27.70 +			isa = PBXGroup;
   27.71 +			children = (
   27.72 +				29B97325FDCFA39411CA2CEA /* Foundation.framework */,
   27.73 +				29B97324FDCFA39411CA2CEA /* AppKit.framework */,
   27.74 +			);
   27.75 +			name = "Other Frameworks";
   27.76 +			sourceTree = "<group>";
   27.77 +		};
   27.78 +		19C28FACFE9D520D11CA2CBB /* Products */ = {
   27.79 +			isa = PBXGroup;
   27.80 +			children = (
   27.81 +				BE1FA99507AF9AAE004B6283 /* playmus.app */,
   27.82 +			);
   27.83 +			name = Products;
   27.84 +			sourceTree = "<group>";
   27.85 +		};
   27.86 +		29B97314FDCFA39411CA2CEA /* SDL App */ = {
   27.87 +			isa = PBXGroup;
   27.88 +			children = (
   27.89 +				080E96DDFE201D6D7F000001 /* Classes */,
   27.90 +				29B97315FDCFA39411CA2CEA /* Other Sources */,
   27.91 +				29B97317FDCFA39411CA2CEA /* Resources */,
   27.92 +				29B97323FDCFA39411CA2CEA /* Frameworks */,
   27.93 +				19C28FACFE9D520D11CA2CBB /* Products */,
   27.94 +				BE1FA99407AF9AAE004B6283 /* Info-playmus__Upgraded_.plist */,
   27.95 +			);
   27.96 +			name = "SDL App";
   27.97 +			sourceTree = "<group>";
   27.98 +		};
   27.99 +		29B97315FDCFA39411CA2CEA /* Other Sources */ = {
  27.100 +			isa = PBXGroup;
  27.101 +			children = (
  27.102 +				F567D67401CD945F01F3E8B9 /* playmus.c */,
  27.103 +			);
  27.104 +			name = "Other Sources";
  27.105 +			sourceTree = "<group>";
  27.106 +		};
  27.107 +		29B97317FDCFA39411CA2CEA /* Resources */ = {
  27.108 +			isa = PBXGroup;
  27.109 +			children = (
  27.110 +				089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
  27.111 +			);
  27.112 +			name = Resources;
  27.113 +			sourceTree = "<group>";
  27.114 +		};
  27.115 +		29B97323FDCFA39411CA2CEA /* Frameworks */ = {
  27.116 +			isa = PBXGroup;
  27.117 +			children = (
  27.118 +				1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
  27.119 +				1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
  27.120 +			);
  27.121 +			name = Frameworks;
  27.122 +			sourceTree = "<group>";
  27.123 +		};
  27.124 +/* End PBXGroup section */
  27.125 +
  27.126 +/* Begin PBXHeadersBuildPhase section */
  27.127 +		BE1FA98B07AF9AAE004B6283 /* Headers */ = {
  27.128 +			isa = PBXHeadersBuildPhase;
  27.129 +			buildActionMask = 2147483647;
  27.130 +			files = (
  27.131 +				BE1FA98C07AF9AAE004B6283 /* SDLMain.h in Headers */,
  27.132 +			);
  27.133 +			runOnlyForDeploymentPostprocessing = 0;
  27.134 +		};
  27.135 +/* End PBXHeadersBuildPhase section */
  27.136 +
  27.137 +/* Begin PBXNativeTarget section */
  27.138 +		BE1FA98A07AF9AAE004B6283 /* playmus */ = {
  27.139 +			isa = PBXNativeTarget;
  27.140 +			buildConfigurationList = 00B7E4D5097ECFD800826121 /* Build configuration list for PBXNativeTarget "playmus" */;
  27.141 +			buildPhases = (
  27.142 +				BE1FA98B07AF9AAE004B6283 /* Headers */,
  27.143 +				BE1FA98D07AF9AAE004B6283 /* Resources */,
  27.144 +				BE1FA98F07AF9AAE004B6283 /* Sources */,
  27.145 +				BE1FA99207AF9AAE004B6283 /* Frameworks */,
  27.146 +			);
  27.147 +			buildRules = (
  27.148 +			);
  27.149 +			dependencies = (
  27.150 +			);
  27.151 +			name = playmus;
  27.152 +			productInstallPath = "$(HOME)/Applications";
  27.153 +			productName = "SDL App";
  27.154 +			productReference = BE1FA99507AF9AAE004B6283 /* playmus.app */;
  27.155 +			productType = "com.apple.product-type.application";
  27.156 +		};
  27.157 +/* End PBXNativeTarget section */
  27.158 +
  27.159 +/* Begin PBXProject section */
  27.160 +		29B97313FDCFA39411CA2CEA /* Project object */ = {
  27.161 +			isa = PBXProject;
  27.162 +			buildConfigurationList = 00B7E4D9097ECFD800826121 /* Build configuration list for PBXProject "playmus" */;
  27.163 +			compatibilityVersion = "Xcode 2.4";
  27.164 +			hasScannedForEncodings = 1;
  27.165 +			mainGroup = 29B97314FDCFA39411CA2CEA /* SDL App */;
  27.166 +			projectDirPath = "";
  27.167 +			projectRoot = "";
  27.168 +			targets = (
  27.169 +				BE1FA98A07AF9AAE004B6283 /* playmus */,
  27.170 +			);
  27.171 +		};
  27.172 +/* End PBXProject section */
  27.173 +
  27.174 +/* Begin PBXResourcesBuildPhase section */
  27.175 +		BE1FA98D07AF9AAE004B6283 /* Resources */ = {
  27.176 +			isa = PBXResourcesBuildPhase;
  27.177 +			buildActionMask = 2147483647;
  27.178 +			files = (
  27.179 +				BE1FA98E07AF9AAE004B6283 /* InfoPlist.strings in Resources */,
  27.180 +			);
  27.181 +			runOnlyForDeploymentPostprocessing = 0;
  27.182 +		};
  27.183 +/* End PBXResourcesBuildPhase section */
  27.184 +
  27.185 +/* Begin PBXSourcesBuildPhase section */
  27.186 +		BE1FA98F07AF9AAE004B6283 /* Sources */ = {
  27.187 +			isa = PBXSourcesBuildPhase;
  27.188 +			buildActionMask = 2147483647;
  27.189 +			files = (
  27.190 +				BE1FA99007AF9AAE004B6283 /* SDLMain.m in Sources */,
  27.191 +				BE1FA99107AF9AAE004B6283 /* playmus.c in Sources */,
  27.192 +			);
  27.193 +			runOnlyForDeploymentPostprocessing = 0;
  27.194 +		};
  27.195 +/* End PBXSourcesBuildPhase section */
  27.196 +
  27.197 +/* Begin PBXVariantGroup section */
  27.198 +		089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
  27.199 +			isa = PBXVariantGroup;
  27.200 +			children = (
  27.201 +				089C165DFE840E0CC02AAC07 /* English */,
  27.202 +			);
  27.203 +			name = InfoPlist.strings;
  27.204 +			sourceTree = "<group>";
  27.205 +		};
  27.206 +/* End PBXVariantGroup section */
  27.207 +
  27.208 +/* Begin XCBuildConfiguration section */
  27.209 +		00B7E4D6097ECFD800826121 /* Deployment */ = {
  27.210 +			isa = XCBuildConfiguration;
  27.211 +			buildSettings = {
  27.212 +				FRAMEWORK_SEARCH_PATHS = (
  27.213 +					"$(HOME)/Library/Frameworks",
  27.214 +					/Library/Frameworks,
  27.215 +				);
  27.216 +				GCC_ENABLE_FIX_AND_CONTINUE = NO;
  27.217 +				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
  27.218 +				HEADER_SEARCH_PATHS = (
  27.219 +					"$(HOME)/Library/Frameworks/SDL.framework/Headers",
  27.220 +					/Library/Frameworks/SDL.framework/Headers,
  27.221 +					"$(HOME)/Library/Frameworks/SDL_mixer.framework/Headers",
  27.222 +					/Library/Frameworks/SDL_mixer.framework/Headers,
  27.223 +				);
  27.224 +				INFOPLIST_FILE = "Info-playmus__Upgraded_.plist";
  27.225 +				INSTALL_PATH = "$(HOME)/Applications";
  27.226 +				LIBRARY_SEARCH_PATHS = "";
  27.227 +				OTHER_LDFLAGS = "-lstdc++";
  27.228 +				PRODUCT_NAME = playmus;
  27.229 +				SECTORDER_FLAGS = "";
  27.230 +				WARNING_CFLAGS = (
  27.231 +					"-Wmost",
  27.232 +					"-Wno-four-char-constants",
  27.233 +					"-Wno-unknown-pragmas",
  27.234 +				);
  27.235 +				WRAPPER_EXTENSION = app;
  27.236 +				ZERO_LINK = NO;
  27.237 +			};
  27.238 +			name = Deployment;
  27.239 +		};
  27.240 +		00B7E4D7097ECFD800826121 /* Development */ = {
  27.241 +			isa = XCBuildConfiguration;
  27.242 +			buildSettings = {
  27.243 +				DEBUGGING_SYMBOLS = YES;
  27.244 +				FRAMEWORK_SEARCH_PATHS = (
  27.245 +					"$(HOME)/Library/Frameworks",
  27.246 +					/Library/Frameworks,
  27.247 +				);
  27.248 +				GCC_DYNAMIC_NO_PIC = NO;
  27.249 +				GCC_ENABLE_FIX_AND_CONTINUE = YES;
  27.250 +				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
  27.251 +				GCC_OPTIMIZATION_LEVEL = 0;
  27.252 +				HEADER_SEARCH_PATHS = (
  27.253 +					"$(HOME)/Library/Frameworks/SDL.framework/Headers",
  27.254 +					/Library/Frameworks/SDL.framework/Headers,
  27.255 +					"$(HOME)/Library/Frameworks/SDL_mixer.framework/Headers",
  27.256 +					/Library/Frameworks/SDL_mixer.framework/Headers,
  27.257 +				);
  27.258 +				INFOPLIST_FILE = "Info-playmus__Upgraded_.plist";
  27.259 +				INSTALL_PATH = "$(HOME)/Applications";
  27.260 +				LIBRARY_SEARCH_PATHS = "";
  27.261 +				OTHER_LDFLAGS = "-lstdc++";
  27.262 +				PRODUCT_NAME = playmus;
  27.263 +				SECTORDER_FLAGS = "";
  27.264 +				WARNING_CFLAGS = (
  27.265 +					"-Wmost",
  27.266 +					"-Wno-four-char-constants",
  27.267 +					"-Wno-unknown-pragmas",
  27.268 +				);
  27.269 +				WRAPPER_EXTENSION = app;
  27.270 +				ZERO_LINK = YES;
  27.271 +			};
  27.272 +			name = Development;
  27.273 +		};
  27.274 +		00B7E4D8097ECFD800826121 /* Default */ = {
  27.275 +			isa = XCBuildConfiguration;
  27.276 +			buildSettings = {
  27.277 +				FRAMEWORK_SEARCH_PATHS = (
  27.278 +					"$(HOME)/Library/Frameworks",
  27.279 +					/Library/Frameworks,
  27.280 +				);
  27.281 +				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
  27.282 +				HEADER_SEARCH_PATHS = (
  27.283 +					"$(HOME)/Library/Frameworks/SDL.framework/Headers",
  27.284 +					/Library/Frameworks/SDL.framework/Headers,
  27.285 +					"$(HOME)/Library/Frameworks/SDL_mixer.framework/Headers",
  27.286 +					/Library/Frameworks/SDL_mixer.framework/Headers,
  27.287 +				);
  27.288 +				INFOPLIST_FILE = "Info-playmus__Upgraded_.plist";
  27.289 +				INSTALL_PATH = "$(HOME)/Applications";
  27.290 +				LIBRARY_SEARCH_PATHS = "";
  27.291 +				OTHER_LDFLAGS = "-lstdc++";
  27.292 +				PRODUCT_NAME = playmus;
  27.293 +				SECTORDER_FLAGS = "";
  27.294 +				WARNING_CFLAGS = (
  27.295 +					"-Wmost",
  27.296 +					"-Wno-four-char-constants",
  27.297 +					"-Wno-unknown-pragmas",
  27.298 +				);
  27.299 +				WRAPPER_EXTENSION = app;
  27.300 +			};
  27.301 +			name = Default;
  27.302 +		};
  27.303 +		00B7E4DA097ECFD800826121 /* Deployment */ = {
  27.304 +			isa = XCBuildConfiguration;
  27.305 +			buildSettings = {
  27.306 +				ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
  27.307 +				ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc";
  27.308 +				GCC_VERSION_i386 = 4.0;
  27.309 +				GCC_VERSION_ppc = 4.0;
  27.310 +				GCC_VERSION_x86_64 = 4.2;
  27.311 +				MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
  27.312 +				MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
  27.313 +				MACOSX_DEPLOYMENT_TARGET_x86_64 = 10.6;
  27.314 +				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
  27.315 +				SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
  27.316 +				SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk;
  27.317 +				SDKROOT_x86_64 = /Developer/SDKs/MacOSX10.6.sdk;
  27.318 +			};
  27.319 +			name = Deployment;
  27.320 +		};
  27.321 +		00B7E4DB097ECFD800826121 /* Development */ = {
  27.322 +			isa = XCBuildConfiguration;
  27.323 +			buildSettings = {
  27.324 +				ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
  27.325 +				ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc";
  27.326 +				GCC_VERSION_i386 = 4.0;
  27.327 +				GCC_VERSION_ppc = 4.0;
  27.328 +				GCC_VERSION_x86_64 = 4.2;
  27.329 +				MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
  27.330 +				MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
  27.331 +				MACOSX_DEPLOYMENT_TARGET_x86_64 = 10.6;
  27.332 +				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
  27.333 +				SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
  27.334 +				SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk;
  27.335 +				SDKROOT_x86_64 = /Developer/SDKs/MacOSX10.6.sdk;
  27.336 +			};
  27.337 +			name = Development;
  27.338 +		};
  27.339 +		00B7E4DC097ECFD800826121 /* Default */ = {
  27.340 +			isa = XCBuildConfiguration;
  27.341 +			buildSettings = {
  27.342 +				ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
  27.343 +				ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc";
  27.344 +				GCC_VERSION_i386 = 4.0;
  27.345 +				GCC_VERSION_ppc = 4.0;
  27.346 +				GCC_VERSION_x86_64 = 4.2;
  27.347 +				MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
  27.348 +				MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
  27.349 +				MACOSX_DEPLOYMENT_TARGET_x86_64 = 10.6;
  27.350 +				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
  27.351 +				SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
  27.352 +				SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk;
  27.353 +				SDKROOT_x86_64 = /Developer/SDKs/MacOSX10.6.sdk;
  27.354 +			};
  27.355 +			name = Default;
  27.356 +		};
  27.357 +/* End XCBuildConfiguration section */
  27.358 +
  27.359 +/* Begin XCConfigurationList section */
  27.360 +		00B7E4D5097ECFD800826121 /* Build configuration list for PBXNativeTarget "playmus" */ = {
  27.361 +			isa = XCConfigurationList;
  27.362 +			buildConfigurations = (
  27.363 +				00B7E4D6097ECFD800826121 /* Deployment */,
  27.364 +				00B7E4D7097ECFD800826121 /* Development */,
  27.365 +				00B7E4D8097ECFD800826121 /* Default */,
  27.366 +			);
  27.367 +			defaultConfigurationIsVisible = 0;
  27.368 +			defaultConfigurationName = Default;
  27.369 +		};
  27.370 +		00B7E4D9097ECFD800826121 /* Build configuration list for PBXProject "playmus" */ = {
  27.371 +			isa = XCConfigurationList;
  27.372 +			buildConfigurations = (
  27.373 +				00B7E4DA097ECFD800826121 /* Deployment */,
  27.374 +				00B7E4DB097ECFD800826121 /* Development */,
  27.375 +				00B7E4DC097ECFD800826121 /* Default */,
  27.376 +			);
  27.377 +			defaultConfigurationIsVisible = 0;
  27.378 +			defaultConfigurationName = Default;
  27.379 +		};
  27.380 +/* End XCConfigurationList section */
  27.381 +	};
  27.382 +	rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
  27.383 +}
    28.1 Binary file Xcode/playwave/English.lproj/InfoPlist.strings has changed
    29.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    29.2 +++ b/Xcode/playwave/Info-playwave__Upgraded_.plist	Sat Dec 31 10:27:48 2011 -0500
    29.3 @@ -0,0 +1,24 @@
    29.4 +<?xml version="1.0" encoding="UTF-8"?>
    29.5 +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    29.6 +<plist version="1.0">
    29.7 +<dict>
    29.8 +	<key>CFBundleDevelopmentRegion</key>
    29.9 +	<string>English</string>
   29.10 +	<key>CFBundleExecutable</key>
   29.11 +	<string>playwave</string>
   29.12 +	<key>CFBundleIconFile</key>
   29.13 +	<string></string>
   29.14 +	<key>CFBundleInfoDictionaryVersion</key>
   29.15 +	<string>6.0</string>
   29.16 +	<key>CFBundlePackageType</key>
   29.17 +	<string>APPL</string>
   29.18 +	<key>CFBundleSignature</key>
   29.19 +	<string>????</string>
   29.20 +	<key>CFBundleVersion</key>
   29.21 +	<string>0.1</string>
   29.22 +	<key>NSMainNibFile</key>
   29.23 +	<string>MainMenu</string>
   29.24 +	<key>NSPrincipalClass</key>
   29.25 +	<string>NSApplication</string>
   29.26 +</dict>
   29.27 +</plist>
    30.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    30.2 +++ b/Xcode/playwave/SDLMain.h	Sat Dec 31 10:27:48 2011 -0500
    30.3 @@ -0,0 +1,16 @@
    30.4 +/*   SDLMain.m - main entry point for our Cocoa-ized SDL app
    30.5 +       Initial Version: Darrell Walisser <dwaliss1@purdue.edu>
    30.6 +       Non-NIB-Code & other changes: Max Horn <max@quendi.de>
    30.7 +
    30.8 +    Feel free to customize this file to suit your needs
    30.9 +*/
   30.10 +
   30.11 +#ifndef _SDLMain_h_
   30.12 +#define _SDLMain_h_
   30.13 +
   30.14 +#import <Cocoa/Cocoa.h>
   30.15 +
   30.16 +@interface SDLMain : NSObject
   30.17 +@end
   30.18 +
   30.19 +#endif /* _SDLMain_h_ */
    31.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    31.2 +++ b/Xcode/playwave/SDLMain.m	Sat Dec 31 10:27:48 2011 -0500
    31.3 @@ -0,0 +1,383 @@
    31.4 +/*   SDLMain.m - main entry point for our Cocoa-ized SDL app
    31.5 +       Initial Version: Darrell Walisser <dwaliss1@purdue.edu>
    31.6 +       Non-NIB-Code & other changes: Max Horn <max@quendi.de>
    31.7 +
    31.8 +    Feel free to customize this file to suit your needs
    31.9 +*/
   31.10 +
   31.11 +#include "SDL.h"
   31.12 +#include "SDLMain.h"
   31.13 +#include <sys/param.h> /* for MAXPATHLEN */
   31.14 +#include <unistd.h>
   31.15 +
   31.16 +/* For some reaon, Apple removed setAppleMenu from the headers in 10.4,
   31.17 + but the method still is there and works. To avoid warnings, we declare
   31.18 + it ourselves here. */
   31.19 +@interface NSApplication(SDL_Missing_Methods)
   31.20 +- (void)setAppleMenu:(NSMenu *)menu;
   31.21 +@end
   31.22 +
   31.23 +/* Use this flag to determine whether we use SDLMain.nib or not */
   31.24 +#define		SDL_USE_NIB_FILE	0
   31.25 +
   31.26 +/* Use this flag to determine whether we use CPS (docking) or not */
   31.27 +#define		SDL_USE_CPS		1
   31.28 +#ifdef SDL_USE_CPS
   31.29 +/* Portions of CPS.h */
   31.30 +typedef struct CPSProcessSerNum
   31.31 +{
   31.32 +	UInt32		lo;
   31.33 +	UInt32		hi;
   31.34 +} CPSProcessSerNum;
   31.35 +
   31.36 +extern OSErr	CPSGetCurrentProcess( CPSProcessSerNum *psn);
   31.37 +extern OSErr 	CPSEnableForegroundOperation( CPSProcessSerNum *psn, UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5);
   31.38 +extern OSErr	CPSSetFrontProcess( CPSProcessSerNum *psn);
   31.39 +
   31.40 +#endif /* SDL_USE_CPS */
   31.41 +
   31.42 +static int    gArgc;
   31.43 +static char  **gArgv;
   31.44 +static BOOL   gFinderLaunch;
   31.45 +static BOOL   gCalledAppMainline = FALSE;
   31.46 +
   31.47 +static NSString *getApplicationName(void)
   31.48 +{
   31.49 +    const NSDictionary *dict;
   31.50 +    NSString *appName = 0;
   31.51 +
   31.52 +    /* Determine the application name */
   31.53 +    dict = (const NSDictionary *)CFBundleGetInfoDictionary(CFBundleGetMainBundle());
   31.54 +    if (dict)
   31.55 +        appName = [dict objectForKey: @"CFBundleName"];
   31.56 +    
   31.57 +    if (![appName length])
   31.58 +        appName = [[NSProcessInfo processInfo] processName];
   31.59 +
   31.60 +    return appName;
   31.61 +}
   31.62 +
   31.63 +#if SDL_USE_NIB_FILE
   31.64 +/* A helper category for NSString */
   31.65 +@interface NSString (ReplaceSubString)
   31.66 +- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString;
   31.67 +@end
   31.68 +#endif
   31.69 +
   31.70 +@interface SDLApplication : NSApplication
   31.71 +@end
   31.72 +
   31.73 +@implementation SDLApplication
   31.74 +/* Invoked from the Quit menu item */
   31.75 +- (void)terminate:(id)sender
   31.76 +{
   31.77 +    /* Post a SDL_QUIT event */
   31.78 +    SDL_Event event;
   31.79 +    event.type = SDL_QUIT;
   31.80 +    SDL_PushEvent(&event);
   31.81 +}
   31.82 +@end
   31.83 +
   31.84 +/* The main class of the application, the application's delegate */
   31.85 +@implementation SDLMain
   31.86 +
   31.87 +/* Set the working directory to the .app's parent directory */
   31.88 +- (void) setupWorkingDirectory:(BOOL)shouldChdir
   31.89 +{
   31.90 +    if (shouldChdir)
   31.91 +    {
   31.92 +        char parentdir[MAXPATHLEN];
   31.93 +        CFURLRef url = CFBundleCopyBundleURL(CFBundleGetMainBundle());
   31.94 +        CFURLRef url2 = CFURLCreateCopyDeletingLastPathComponent(0, url);
   31.95 +        if (CFURLGetFileSystemRepresentation(url2, 1, (UInt8 *)parentdir, MAXPATHLEN)) {
   31.96 +            chdir(parentdir);   /* chdir to the binary app's parent */
   31.97 +        }
   31.98 +        CFRelease(url);
   31.99 +        CFRelease(url2);
  31.100 +    }
  31.101 +}
  31.102 +
  31.103 +#if SDL_USE_NIB_FILE
  31.104 +
  31.105 +/* Fix menu to contain the real app name instead of "SDL App" */
  31.106 +- (void)fixMenu:(NSMenu *)aMenu withAppName:(NSString *)appName
  31.107 +{
  31.108 +    NSRange aRange;
  31.109 +    NSEnumerator *enumerator;
  31.110 +    NSMenuItem *menuItem;
  31.111 +
  31.112 +    aRange = [[aMenu title] rangeOfString:@"SDL App"];
  31.113 +    if (aRange.length != 0)
  31.114 +        [aMenu setTitle: [[aMenu title] stringByReplacingRange:aRange with:appName]];
  31.115 +
  31.116 +    enumerator = [[aMenu itemArray] objectEnumerator];
  31.117 +    while ((menuItem = [enumerator nextObject]))
  31.118 +    {
  31.119 +        aRange = [[menuItem title] rangeOfString:@"SDL App"];
  31.120 +        if (aRange.length != 0)
  31.121 +            [menuItem setTitle: [[menuItem title] stringByReplacingRange:aRange with:appName]];
  31.122 +        if ([menuItem hasSubmenu])
  31.123 +            [self fixMenu:[menuItem submenu] withAppName:appName];
  31.124 +    }
  31.125 +    [ aMenu sizeToFit ];
  31.126 +}
  31.127 +
  31.128 +#else
  31.129 +
  31.130 +static void setApplicationMenu(void)
  31.131 +{
  31.132 +    /* warning: this code is very odd */
  31.133 +    NSMenu *appleMenu;
  31.134 +    NSMenuItem *menuItem;
  31.135 +    NSString *title;
  31.136 +    NSString *appName;
  31.137 +    
  31.138 +    appName = getApplicationName();
  31.139 +    appleMenu = [[NSMenu alloc] initWithTitle:@""];
  31.140 +    
  31.141 +    /* Add menu items */
  31.142 +    title = [@"About " stringByAppendingString:appName];
  31.143 +    [appleMenu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""];
  31.144 +
  31.145 +    [appleMenu addItem:[NSMenuItem separatorItem]];
  31.146 +
  31.147 +    title = [@"Hide " stringByAppendingString:appName];
  31.148 +    [appleMenu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@"h"];
  31.149 +
  31.150 +    menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:@"Hide Others" action:@selector(hideOtherApplications:) keyEquivalent:@"h"];
  31.151 +    [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)];
  31.152 +
  31.153 +    [appleMenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""];
  31.154 +
  31.155 +    [appleMenu addItem:[NSMenuItem separatorItem]];
  31.156 +
  31.157 +    title = [@"Quit " stringByAppendingString:appName];
  31.158 +    [appleMenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@"q"];
  31.159 +
  31.160 +    
  31.161 +    /* Put menu into the menubar */
  31.162 +    menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
  31.163 +    [menuItem setSubmenu:appleMenu];
  31.164 +    [[NSApp mainMenu] addItem:menuItem];
  31.165 +
  31.166 +    /* Tell the application object that this is now the application menu */
  31.167 +    [NSApp setAppleMenu:appleMenu];
  31.168 +
  31.169 +    /* Finally give up our references to the objects */
  31.170 +    [appleMenu release];
  31.171 +    [menuItem release];
  31.172 +}
  31.173 +
  31.174 +/* Create a window menu */
  31.175 +static void setupWindowMenu(void)
  31.176 +{
  31.177 +    NSMenu      *windowMenu;
  31.178 +    NSMenuItem  *windowMenuItem;
  31.179 +    NSMenuItem  *menuItem;
  31.180 +
  31.181 +    windowMenu = [[NSMenu alloc] initWithTitle:@"Window"];
  31.182 +    
  31.183 +    /* "Minimize" item */
  31.184 +    menuItem = [[NSMenuItem alloc] initWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@"m"];
  31.185 +    [windowMenu addItem:menuItem];
  31.186 +    [menuItem release];
  31.187 +    
  31.188 +    /* Put menu into the menubar */
  31.189 +    windowMenuItem = [[NSMenuItem alloc] initWithTitle:@"Window" action:nil keyEquivalent:@""];
  31.190 +    [windowMenuItem setSubmenu:windowMenu];
  31.191 +    [[NSApp mainMenu] addItem:windowMenuItem];
  31.192 +    
  31.193 +    /* Tell the application object that this is now the window menu */
  31.194 +    [NSApp setWindowsMenu:windowMenu];
  31.195 +
  31.196 +    /* Finally give up our references to the objects */
  31.197 +    [windowMenu release];
  31.198 +    [windowMenuItem release];
  31.199 +}
  31.200 +
  31.201 +/* Replacement for NSApplicationMain */
  31.202 +static void CustomApplicationMain (int argc, char **argv)
  31.203 +{
  31.204 +    NSAutoreleasePool	*pool = [[NSAutoreleasePool alloc] init];
  31.205 +    SDLMain				*sdlMain;
  31.206 +
  31.207 +    /* Ensure the application object is initialised */
  31.208 +    [SDLApplication sharedApplication];
  31.209 +    
  31.210 +#ifdef SDL_USE_CPS
  31.211 +    {
  31.212 +        CPSProcessSerNum PSN;
  31.213 +        /* Tell the dock about us */
  31.214 +        if (!CPSGetCurrentProcess(&PSN))
  31.215 +            if (!CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103))
  31.216 +                if (!CPSSetFrontProcess(&PSN))
  31.217 +                    [SDLApplication sharedApplication];
  31.218 +    }
  31.219 +#endif /* SDL_USE_CPS */
  31.220 +
  31.221 +    /* Set up the menubar */
  31.222 +    [NSApp setMainMenu:[[NSMenu alloc] init]];
  31.223 +    setApplicationMenu();
  31.224 +    setupWindowMenu();
  31.225 +
  31.226 +    /* Create SDLMain and make it the app delegate */
  31.227 +    sdlMain = [[SDLMain alloc] init];
  31.228 +    [NSApp setDelegate:sdlMain];
  31.229 +    
  31.230 +    /* Start the main event loop */
  31.231 +    [NSApp run];
  31.232 +    
  31.233 +    [sdlMain release];
  31.234 +    [pool release];
  31.235 +}
  31.236 +
  31.237 +#endif
  31.238 +
  31.239 +
  31.240 +/*
  31.241 + * Catch document open requests...this lets us notice files when the app
  31.242 + *  was launched by double-clicking a document, or when a document was
  31.243 + *  dragged/dropped on the app's icon. You need to have a
  31.244 + *  CFBundleDocumentsType section in your Info.plist to get this message,
  31.245 + *  apparently.
  31.246 + *
  31.247 + * Files are added to gArgv, so to the app, they'll look like command line
  31.248 + *  arguments. Previously, apps launched from the finder had nothing but
  31.249 + *  an argv[0].
  31.250 + *
  31.251 + * This message may be received multiple times to open several docs on launch.
  31.252 + *
  31.253 + * This message is ignored once the app's mainline has been called.
  31.254 + */
  31.255 +- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
  31.256 +{
  31.257 +    const char *temparg;
  31.258 +    size_t arglen;
  31.259 +    char *arg;
  31.260 +    char **newargv;
  31.261 +
  31.262 +    if (!gFinderLaunch)  /* MacOS is passing command line args. */
  31.263 +        return FALSE;
  31.264 +
  31.265 +    if (gCalledAppMainline)  /* app has started, ignore this document. */
  31.266 +        return FALSE;
  31.267 +
  31.268 +    temparg = [filename UTF8String];
  31.269 +    arglen = SDL_strlen(temparg) + 1;
  31.270 +    arg = (char *) SDL_malloc(arglen);
  31.271 +    if (arg == NULL)
  31.272 +        return FALSE;
  31.273 +
  31.274 +    newargv = (char **) realloc(gArgv, sizeof (char *) * (gArgc + 2));
  31.275 +    if (newargv == NULL)
  31.276 +    {
  31.277 +        SDL_free(arg);
  31.278 +        return FALSE;
  31.279 +    }
  31.280 +    gArgv = newargv;
  31.281 +
  31.282 +    SDL_strlcpy(arg, temparg, arglen);
  31.283 +    gArgv[gArgc++] = arg;
  31.284 +    gArgv[gArgc] = NULL;
  31.285 +    return TRUE;
  31.286 +}
  31.287 +
  31.288 +
  31.289 +/* Called when the internal event loop has just started running */
  31.290 +- (void) applicationDidFinishLaunching: (NSNotification *) note
  31.291 +{
  31.292 +    int status;
  31.293 +
  31.294 +    /* Set the working directory to the .app's parent directory */
  31.295 +    [self setupWorkingDirectory:gFinderLaunch];
  31.296 +
  31.297 +#if SDL_USE_NIB_FILE
  31.298 +    /* Set the main menu to contain the real app name instead of "SDL App" */
  31.299 +    [self fixMenu:[NSApp mainMenu] withAppName:getApplicationName()];
  31.300 +#endif
  31.301 +
  31.302 +    /* Hand off to main application code */
  31.303 +    gCalledAppMainline = TRUE;
  31.304 +    status = SDL_main (gArgc, gArgv);
  31.305 +
  31.306 +    /* We're done, thank you for playing */
  31.307 +    exit(status);
  31.308 +}
  31.309 +@end
  31.310 +
  31.311 +
  31.312 +@implementation NSString (ReplaceSubString)
  31.313 +
  31.314 +- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString
  31.315 +{
  31.316 +    unsigned int bufferSize;
  31.317 +    unsigned int selfLen = [self length];
  31.318 +    unsigned int aStringLen = [aString length];
  31.319 +    unichar *buffer;
  31.320 +    NSRange localRange;
  31.321 +    NSString *result;
  31.322 +
  31.323 +    bufferSize = selfLen + aStringLen - aRange.length;
  31.324 +    buffer = (unichar *)NSAllocateMemoryPages(bufferSize*sizeof(unichar));
  31.325 +    
  31.326 +    /* Get first part into buffer */
  31.327 +    localRange.location = 0;
  31.328 +    localRange.length = aRange.location;
  31.329 +    [self getCharacters:buffer range:localRange];
  31.330 +    
  31.331 +    /* Get middle part into buffer */
  31.332 +    localRange.location = 0;
  31.333 +    localRange.length = aStringLen;
  31.334 +    [aString getCharacters:(buffer+aRange.location) range:localRange];
  31.335 +     
  31.336 +    /* Get last part into buffer */
  31.337 +    localRange.location = aRange.location + aRange.length;
  31.338 +    localRange.length = selfLen - localRange.location;
  31.339 +    [self getCharacters:(buffer+aRange.location+aStringLen) range:localRange];
  31.340 +    
  31.341 +    /* Build output string */
  31.342 +    result = [NSString stringWithCharacters:buffer length:bufferSize];
  31.343 +    
  31.344 +    NSDeallocateMemoryPages(buffer, bufferSize);
  31.345 +    
  31.346 +    return result;
  31.347 +}
  31.348 +
  31.349 +@end
  31.350 +
  31.351 +
  31.352 +
  31.353 +#ifdef main
  31.354 +#  undef main
  31.355 +#endif
  31.356 +
  31.357 +
  31.358 +/* Main entry point to executable - should *not* be SDL_main! */
  31.359 +int main (int argc, char **argv)
  31.360 +{
  31.361 +    /* Copy the arguments into a global variable */
  31.362 +    /* This is passed if we are launched by double-clicking */
  31.363 +    if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) {
  31.364 +        gArgv = (char **) SDL_malloc(sizeof (char *) * 2);
  31.365 +        gArgv[0] = argv[0];
  31.366 +        gArgv[1] = NULL;
  31.367 +        gArgc = 1;
  31.368 +        gFinderLaunch = YES;
  31.369 +    } else {
  31.370 +        int i;
  31.371 +        gArgc = argc;
  31.372 +        gArgv = (char **) SDL_malloc(sizeof (char *) * (argc+1));
  31.373 +        for (i = 0; i <= argc; i++)
  31.374 +            gArgv[i] = argv[i];
  31.375 +        gFinderLaunch = NO;
  31.376 +    }
  31.377 +
  31.378 +#if SDL_USE_NIB_FILE
  31.379 +    [SDLApplication poseAsClass:[NSApplication class]];
  31.380 +    NSApplicationMain (argc, argv);
  31.381 +#else
  31.382 +    CustomApplicationMain (argc, argv);
  31.383 +#endif
  31.384 +    return 0;
  31.385 +}
  31.386 +
    32.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    32.2 +++ b/Xcode/playwave/playwave.xcodeproj/project.pbxproj	Sat Dec 31 10:27:48 2011 -0500
    32.3 @@ -0,0 +1,379 @@
    32.4 +// !$*UTF8*$!
    32.5 +{
    32.6 +	archiveVersion = 1;
    32.7 +	classes = {
    32.8 +	};
    32.9 +	objectVersion = 42;
   32.10 +	objects = {
   32.11 +
   32.12 +/* Begin PBXBuildFile section */
   32.13 +		BE1FA9DE07AF9BE7004B6283 /* SDLMain.h in Headers */ = {isa = PBXBuildFile; fileRef = F5A47A9D01A0482F01D3D55B /* SDLMain.h */; };
   32.14 +		BE1FA9E007AF9BE7004B6283 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
   32.15 +		BE1FA9E207AF9BE7004B6283 /* SDLMain.m in Sources */ = {isa = PBXBuildFile; fileRef = F5A47A9E01A0483001D3D55B /* SDLMain.m */; };
   32.16 +		BE1FA9E307AF9BE7004B6283 /* playwave.c in Sources */ = {isa = PBXBuildFile; fileRef = F567D66E01CD930A01F3E8B9 /* playwave.c */; };
   32.17 +		BE1FA9E507AF9BE7004B6283 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
   32.18 +		BE1FA9E607AF9BE7004B6283 /* SDL_mixer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1FA9CC07AF9BD0004B6283 /* SDL_mixer.framework */; };
   32.19 +		BE1FA9E707AF9BE7004B6283 /* SDL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1FA9CD07AF9BD0004B6283 /* SDL.framework */; };
   32.20 +/* End PBXBuildFile section */
   32.21 +
   32.22 +/* Begin PBXFileReference section */
   32.23 +		089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
   32.24 +		1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
   32.25 +		29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
   32.26 +		29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
   32.27 +		BE1FA9CC07AF9BD0004B6283 /* SDL_mixer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL_mixer.framework; path = /Library/Frameworks/SDL_mixer.framework; sourceTree = "<absolute>"; };
   32.28 +		BE1FA9CD07AF9BD0004B6283 /* SDL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL.framework; path = /Library/Frameworks/SDL.framework; sourceTree = "<absolute>"; };
   32.29 +		BE1FA9E807AF9BE7004B6283 /* Info-playwave__Upgraded_.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-playwave__Upgraded_.plist"; sourceTree = "<group>"; };
   32.30 +		BE1FA9E907AF9BE7004B6283 /* playwave.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = playwave.app; sourceTree = BUILT_PRODUCTS_DIR; };
   32.31 +		F567D66E01CD930A01F3E8B9 /* playwave.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = playwave.c; path = ../../playwave.c; sourceTree = SOURCE_ROOT; };
   32.32 +		F5A47A9D01A0482F01D3D55B /* SDLMain.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SDLMain.h; sourceTree = SOURCE_ROOT; };
   32.33 +		F5A47A9E01A0483001D3D55B /* SDLMain.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SDLMain.m; sourceTree = SOURCE_ROOT; };
   32.34 +/* End PBXFileReference section */
   32.35 +
   32.36 +/* Begin PBXFrameworksBuildPhase section */
   32.37 +		BE1FA9E407AF9BE7004B6283 /* Frameworks */ = {
   32.38 +			isa = PBXFrameworksBuildPhase;
   32.39 +			buildActionMask = 2147483647;
   32.40 +			files = (
   32.41 +				BE1FA9E507AF9BE7004B6283 /* Cocoa.framework in Frameworks */,
   32.42 +				BE1FA9E607AF9BE7004B6283 /* SDL_mixer.framework in Frameworks */,
   32.43 +				BE1FA9E707AF9BE7004B6283 /* SDL.framework in Frameworks */,
   32.44 +			);
   32.45 +			runOnlyForDeploymentPostprocessing = 0;
   32.46 +		};
   32.47 +/* End PBXFrameworksBuildPhase section */
   32.48 +
   32.49 +/* Begin PBXGroup section */
   32.50 +		080E96DDFE201D6D7F000001 /* Classes */ = {
   32.51 +			isa = PBXGroup;
   32.52 +			children = (
   32.53 +				F5A47A9D01A0482F01D3D55B /* SDLMain.h */,
   32.54 +				F5A47A9E01A0483001D3D55B /* SDLMain.m */,
   32.55 +			);
   32.56 +			name = Classes;
   32.57 +			sourceTree = "<group>";
   32.58 +		};
   32.59 +		1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
   32.60 +			isa = PBXGroup;
   32.61 +			children = (
   32.62 +				BE1FA9CC07AF9BD0004B6283 /* SDL_mixer.framework */,
   32.63 +				BE1FA9CD07AF9BD0004B6283 /* SDL.framework */,
   32.64 +				1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
   32.65 +			);
   32.66 +			name = "Linked Frameworks";
   32.67 +			sourceTree = "<group>";
   32.68 +		};
   32.69 +		1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
   32.70 +			isa = PBXGroup;
   32.71 +			children = (
   32.72 +				29B97325FDCFA39411CA2CEA /* Foundation.framework */,
   32.73 +				29B97324FDCFA39411CA2CEA /* AppKit.framework */,
   32.74 +			);
   32.75 +			name = "Other Frameworks";
   32.76 +			sourceTree = "<group>";
   32.77 +		};
   32.78 +		19C28FACFE9D520D11CA2CBB /* Products */ = {
   32.79 +			isa = PBXGroup;
   32.80 +			children = (
   32.81 +				BE1FA9E907AF9BE7004B6283 /* playwave.app */,
   32.82 +			);
   32.83 +			name = Products;
   32.84 +			sourceTree = "<group>";
   32.85 +		};
   32.86 +		29B97314FDCFA39411CA2CEA /* SDL App */ = {
   32.87 +			isa = PBXGroup;
   32.88 +			children = (
   32.89 +				080E96DDFE201D6D7F000001 /* Classes */,
   32.90 +				29B97315FDCFA39411CA2CEA /* Other Sources */,
   32.91 +				29B97317FDCFA39411CA2CEA /* Resources */,
   32.92 +				29B97323FDCFA39411CA2CEA /* Frameworks */,
   32.93 +				19C28FACFE9D520D11CA2CBB /* Products */,
   32.94 +				BE1FA9E807AF9BE7004B6283 /* Info-playwave__Upgraded_.plist */,
   32.95 +			);
   32.96 +			name = "SDL App";
   32.97 +			sourceTree = "<group>";
   32.98 +		};
   32.99 +		29B97315FDCFA39411CA2CEA /* Other Sources */ = {
  32.100 +			isa = PBXGroup;
  32.101 +			children = (
  32.102 +				F567D66E01CD930A01F3E8B9 /* playwave.c */,
  32.103 +			);
  32.104 +			name = "Other Sources";
  32.105 +			sourceTree = "<group>";
  32.106 +		};
  32.107 +		29B97317FDCFA39411CA2CEA /* Resources */ = {
  32.108 +			isa = PBXGroup;
  32.109 +			children = (
  32.110 +				089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
  32.111 +			);
  32.112 +			name = Resources;
  32.113 +			sourceTree = "<group>";
  32.114 +		};
  32.115 +		29B97323FDCFA39411CA2CEA /* Frameworks */ = {
  32.116 +			isa = PBXGroup;
  32.117 +			children = (
  32.118 +				1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
  32.119 +				1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
  32.120 +			);
  32.121 +			name = Frameworks;
  32.122 +			sourceTree = "<group>";
  32.123 +		};
  32.124 +/* End PBXGroup section */
  32.125 +
  32.126 +/* Begin PBXHeadersBuildPhase section */
  32.127 +		BE1FA9DD07AF9BE7004B6283 /* Headers */ = {
  32.128 +			isa = PBXHeadersBuildPhase;
  32.129 +			buildActionMask = 2147483647;
  32.130 +			files = (
  32.131 +				BE1FA9DE07AF9BE7004B6283 /* SDLMain.h in Headers */,
  32.132 +			);
  32.133 +			runOnlyForDeploymentPostprocessing = 0;
  32.134 +		};
  32.135 +/* End PBXHeadersBuildPhase section */
  32.136 +
  32.137 +/* Begin PBXNativeTarget section */
  32.138 +		BE1FA9DC07AF9BE7004B6283 /* playwave */ = {
  32.139 +			isa = PBXNativeTarget;
  32.140 +			buildConfigurationList = 00B7E503097ED1A000826121 /* Build configuration list for PBXNativeTarget "playwave" */;
  32.141 +			buildPhases = (
  32.142 +				BE1FA9DD07AF9BE7004B6283 /* Headers */,
  32.143 +				BE1FA9DF07AF9BE7004B6283 /* Resources */,
  32.144 +				BE1FA9E107AF9BE7004B6283 /* Sources */,
  32.145 +				BE1FA9E407AF9BE7004B6283 /* Frameworks */,
  32.146 +			);
  32.147 +			buildRules = (
  32.148 +			);
  32.149 +			dependencies = (
  32.150 +			);
  32.151 +			name = playwave;
  32.152 +			productInstallPath = "$(HOME)/Applications";
  32.153 +			productName = "SDL App";
  32.154 +			productReference = BE1FA9E907AF9BE7004B6283 /* playwave.app */;
  32.155 +			productType = "com.apple.product-type.application";
  32.156 +		};
  32.157 +/* End PBXNativeTarget section */
  32.158 +
  32.159 +/* Begin PBXProject section */
  32.160 +		29B97313FDCFA39411CA2CEA /* Project object */ = {
  32.161 +			isa = PBXProject;
  32.162 +			buildConfigurationList = 00B7E507097ED1A000826121 /* Build configuration list for PBXProject "playwave" */;
  32.163 +			compatibilityVersion = "Xcode 2.4";
  32.164 +			hasScannedForEncodings = 1;
  32.165 +			mainGroup = 29B97314FDCFA39411CA2CEA /* SDL App */;
  32.166 +			projectDirPath = "";
  32.167 +			projectRoot = "";
  32.168 +			targets = (
  32.169 +				BE1FA9DC07AF9BE7004B6283 /* playwave */,
  32.170 +			);
  32.171 +		};
  32.172 +/* End PBXProject section */
  32.173 +
  32.174 +/* Begin PBXResourcesBuildPhase section */
  32.175 +		BE1FA9DF07AF9BE7004B6283 /* Resources */ = {
  32.176 +			isa = PBXResourcesBuildPhase;
  32.177 +			buildActionMask = 2147483647;
  32.178 +			files = (
  32.179 +				BE1FA9E007AF9BE7004B6283 /* InfoPlist.strings in Resources */,
  32.180 +			);
  32.181 +			runOnlyForDeploymentPostprocessing = 0;
  32.182 +		};
  32.183 +/* End PBXResourcesBuildPhase section */
  32.184 +
  32.185 +/* Begin PBXSourcesBuildPhase section */
  32.186 +		BE1FA9E107AF9BE7004B6283 /* Sources */ = {
  32.187 +			isa = PBXSourcesBuildPhase;
  32.188 +			buildActionMask = 2147483647;
  32.189 +			files = (
  32.190 +				BE1FA9E207AF9BE7004B6283 /* SDLMain.m in Sources */,
  32.191 +				BE1FA9E307AF9BE7004B6283 /* playwave.c in Sources */,
  32.192 +			);
  32.193 +			runOnlyForDeploymentPostprocessing = 0;
  32.194 +		};
  32.195 +/* End PBXSourcesBuildPhase section */
  32.196 +
  32.197 +/* Begin PBXVariantGroup section */
  32.198 +		089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
  32.199 +			isa = PBXVariantGroup;
  32.200 +			children = (
  32.201 +				089C165DFE840E0CC02AAC07 /* English */,
  32.202 +			);
  32.203 +			name = InfoPlist.strings;
  32.204 +			sourceTree = "<group>";
  32.205 +		};
  32.206 +/* End PBXVariantGroup section */
  32.207 +
  32.208 +/* Begin XCBuildConfiguration section */
  32.209 +		00B7E504097ED1A000826121 /* Development */ = {
  32.210 +			isa = XCBuildConfiguration;
  32.211 +			buildSettings = {
  32.212 +				COPY_PHASE_STRIP = NO;
  32.213 +				FRAMEWORK_SEARCH_PATHS = (
  32.214 +					"$(HOME)/Library/Frameworks",
  32.215 +					/Library/Frameworks,
  32.216 +				);
  32.217 +				GCC_DYNAMIC_NO_PIC = NO;
  32.218 +				GCC_ENABLE_FIX_AND_CONTINUE = YES;
  32.219 +				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
  32.220 +				GCC_OPTIMIZATION_LEVEL = 0;
  32.221 +				HEADER_SEARCH_PATHS = (
  32.222 +					"$(HOME)/Library/Frameworks/SDL.framework/Headers",
  32.223 +					/Library/Frameworks/SDL.framework/Headers,
  32.224 +					"$(HOME)/Library/Frameworks/SDL_mixer.framework/Headers",
  32.225 +					/Library/Frameworks/SDL_mixer.framework/Headers,
  32.226 +				);
  32.227 +				INFOPLIST_FILE = "Info-playwave__Upgraded_.plist";
  32.228 +				INSTALL_PATH = "$(HOME)/Applications";
  32.229 +				LIBRARY_SEARCH_PATHS = "";
  32.230 +				OTHER_LDFLAGS = "";
  32.231 +				PRODUCT_NAME = playwave;
  32.232 +				SECTORDER_FLAGS = "";
  32.233 +				WARNING_CFLAGS = (
  32.234 +					"-Wmost",
  32.235 +					"-Wno-four-char-constants",
  32.236 +					"-Wno-unknown-pragmas",
  32.237 +				);
  32.238 +				WRAPPER_EXTENSION = app;
  32.239 +				ZERO_LINK = YES;
  32.240 +			};
  32.241 +			name = Development;
  32.242 +		};
  32.243 +		00B7E505097ED1A000826121 /* Deployment */ = {
  32.244 +			isa = XCBuildConfiguration;
  32.245 +			buildSettings = {
  32.246 +				COPY_PHASE_STRIP = YES;
  32.247 +				FRAMEWORK_SEARCH_PATHS = (
  32.248 +					"$(HOME)/Library/Frameworks",
  32.249 +					/Library/Frameworks,
  32.250 +				);
  32.251 +				GCC_ENABLE_FIX_AND_CONTINUE = NO;
  32.252 +				HEADER_SEARCH_PATHS = (
  32.253 +					"$(HOME)/Library/Frameworks/SDL.framework/Headers",
  32.254 +					/Library/Frameworks/SDL.framework/Headers,
  32.255 +					"$(HOME)/Library/Frameworks/SDL_mixer.framework/Headers",
  32.256 +					/Library/Frameworks/SDL_mixer.framework/Headers,
  32.257 +				);
  32.258 +				INFOPLIST_FILE = "Info-playwave__Upgraded_.plist";
  32.259 +				INSTALL_PATH = "$(HOME)/Applications";
  32.260 +				LIBRARY_SEARCH_PATHS = "";
  32.261 +				OTHER_LDFLAGS = "";
  32.262 +				PRODUCT_NAME = playwave;
  32.263 +				SECTORDER_FLAGS = "";
  32.264 +				WARNING_CFLAGS = (
  32.265 +					"-Wmost",
  32.266 +					"-Wno-four-char-constants",
  32.267 +					"-Wno-unknown-pragmas",
  32.268 +				);
  32.269 +				WRAPPER_EXTENSION = app;
  32.270 +				ZERO_LINK = NO;
  32.271 +			};
  32.272 +			name = Deployment;
  32.273 +		};
  32.274 +		00B7E506097ED1A000826121 /* Default */ = {
  32.275 +			isa = XCBuildConfiguration;
  32.276 +			buildSettings = {
  32.277 +				FRAMEWORK_SEARCH_PATHS = (
  32.278 +					"$(HOME)/Library/Frameworks",
  32.279 +					/Library/Frameworks,
  32.280 +				);
  32.281 +				HEADER_SEARCH_PATHS = (
  32.282 +					"$(HOME)/Library/Frameworks/SDL.framework/Headers",
  32.283 +					/Library/Frameworks/SDL.framework/Headers,
  32.284 +					"$(HOME)/Library/Frameworks/SDL_mixer.framework/Headers",
  32.285 +					/Library/Frameworks/SDL_mixer.framework/Headers,
  32.286 +				);
  32.287 +				INFOPLIST_FILE = "Info-playwave__Upgraded_.plist";
  32.288 +				INSTALL_PATH = "$(HOME)/Applications";
  32.289 +				LIBRARY_SEARCH_PATHS = "";
  32.290 +				OTHER_LDFLAGS = "";
  32.291 +				PRODUCT_NAME = playwave;
  32.292 +				SECTORDER_FLAGS = "";
  32.293 +				WARNING_CFLAGS = (
  32.294 +					"-Wmost",
  32.295 +					"-Wno-four-char-constants",
  32.296 +					"-Wno-unknown-pragmas",
  32.297 +				);
  32.298 +				WRAPPER_EXTENSION = app;
  32.299 +			};
  32.300 +			name = Default;
  32.301 +		};
  32.302 +		00B7E508097ED1A000826121 /* Development */ = {
  32.303 +			isa = XCBuildConfiguration;
  32.304 +			buildSettings = {
  32.305 +				ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
  32.306 +				ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc";
  32.307 +				GCC_VERSION_i386 = 4.0;
  32.308 +				GCC_VERSION_ppc = 4.0;
  32.309 +				GCC_VERSION_x86_64 = 4.2;
  32.310 +				MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
  32.311 +				MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
  32.312 +				MACOSX_DEPLOYMENT_TARGET_x86_64 = 10.6;
  32.313 +				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
  32.314 +				SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
  32.315 +				SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk;
  32.316 +				SDKROOT_x86_64 = /Developer/SDKs/MacOSX10.6.sdk;
  32.317 +			};
  32.318 +			name = Development;
  32.319 +		};
  32.320 +		00B7E509097ED1A000826121 /* Deployment */ = {
  32.321 +			isa = XCBuildConfiguration;
  32.322 +			buildSettings = {
  32.323 +				ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
  32.324 +				ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc";
  32.325 +				GCC_VERSION_i386 = 4.0;
  32.326 +				GCC_VERSION_ppc = 4.0;
  32.327 +				GCC_VERSION_x86_64 = 4.2;
  32.328 +				MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
  32.329 +				MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
  32.330 +				MACOSX_DEPLOYMENT_TARGET_x86_64 = 10.6;
  32.331 +				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
  32.332 +				SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
  32.333 +				SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk;
  32.334 +				SDKROOT_x86_64 = /Developer/SDKs/MacOSX10.6.sdk;
  32.335 +			};
  32.336 +			name = Deployment;
  32.337 +		};
  32.338 +		00B7E50A097ED1A000826121 /* Default */ = {
  32.339 +			isa = XCBuildConfiguration;
  32.340 +			buildSettings = {
  32.341 +				ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
  32.342 +				ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc";
  32.343 +				GCC_VERSION_i386 = 4.0;
  32.344 +				GCC_VERSION_ppc = 4.0;
  32.345 +				GCC_VERSION_x86_64 = 4.2;
  32.346 +				MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
  32.347 +				MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
  32.348 +				MACOSX_DEPLOYMENT_TARGET_x86_64 = 10.6;
  32.349 +				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
  32.350 +				SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk;
  32.351 +				SDKROOT_ppc = /Developer/SDKs/MacOSX10.4u.sdk;
  32.352 +				SDKROOT_x86_64 = /Developer/SDKs/MacOSX10.6.sdk;
  32.353 +			};
  32.354 +			name = Default;
  32.355 +		};
  32.356 +/* End XCBuildConfiguration section */
  32.357 +
  32.358 +/* Begin XCConfigurationList section */
  32.359 +		00B7E503097ED1A000826121 /* Build configuration list for PBXNativeTarget "playwave" */ = {
  32.360 +			isa = XCConfigurationList;
  32.361 +			buildConfigurations = (
  32.362 +				00B7E504097ED1A000826121 /* Development */,
  32.363 +				00B7E505097ED1A000826121 /* Deployment */,
  32.364 +				00B7E506097ED1A000826121 /* Default */,
  32.365 +			);
  32.366 +			defaultConfigurationIsVisible = 0;
  32.367 +			defaultConfigurationName = Default;
  32.368 +		};
  32.369 +		00B7E507097ED1A000826121 /* Build configuration list for PBXProject "playwave" */ = {
  32.370 +			isa = XCConfigurationList;
  32.371 +			buildConfigurations = (
  32.372 +				00B7E508097ED1A000826121 /* Development */,
  32.373 +				00B7E509097ED1A000826121 /* Deployment */,
  32.374 +				00B7E50A097ED1A000826121 /* Default */,
  32.375 +			);
  32.376 +			defaultConfigurationIsVisible = 0;
  32.377 +			defaultConfigurationName = Default;
  32.378 +		};
  32.379 +/* End XCConfigurationList section */
  32.380 +	};
  32.381 +	rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
  32.382 +}
    33.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    33.2 +++ b/Xcode/smpeg/smpeg.framework/Headers	Sat Dec 31 10:27:48 2011 -0500
    33.3 @@ -0,0 +1,1 @@
    33.4 +Versions/Current/Headers
    33.5 \ No newline at end of file
    34.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    34.2 +++ b/Xcode/smpeg/smpeg.framework/Resources	Sat Dec 31 10:27:48 2011 -0500
    34.3 @@ -0,0 +1,1 @@
    34.4 +Versions/Current/Resources
    34.5 \ No newline at end of file
    35.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    35.2 +++ b/Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEG.h	Sat Dec 31 10:27:48 2011 -0500
    35.3 @@ -0,0 +1,135 @@
    35.4 +/*
    35.5 +    SMPEG - SDL MPEG Player Library
    35.6 +    Copyright (C) 1999  Loki Entertainment Software
    35.7 +    
    35.8 +    - Modified by Michel Darricau from eProcess <mdarricau@eprocess.fr>  for popcorn -
    35.9 +
   35.10 +    This library is free software; you can redistribute it and/or
   35.11 +    modify it under the terms of the GNU Library General Public
   35.12 +    License as published by the Free Software Foundation; either
   35.13 +    version 2 of the License, or (at your option) any later version.
   35.14 +
   35.15 +    This library is distributed in the hope that it will be useful,
   35.16 +    but WITHOUT ANY WARRANTY; without even the implied warranty of
   35.17 +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   35.18 +    Library General Public License for more details.
   35.19 +
   35.20 +    You should have received a copy of the GNU Library General Public
   35.21 +    License along with this library; if not, write to the Free
   35.22 +    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
   35.23 +*/
   35.24 +
   35.25 +/* A class used to parse and play MPEG streams */
   35.26 +
   35.27 +#ifndef _MPEG_H_
   35.28 +#define _MPEG_H_
   35.29 +
   35.30 +#include <stdlib.h>
   35.31 +#include <stdio.h>
   35.32 +#include <string.h>
   35.33 +
   35.34 +#include "SDL.h"
   35.35 +
   35.36 +#include "MPEGerror.h"
   35.37 +#include "MPEGstream.h"
   35.38 +#include "MPEGaction.h"
   35.39 +#include "MPEGaudio.h"
   35.40 +#include "MPEGvideo.h"
   35.41 +#include "MPEGsystem.h"
   35.42 +#include "MPEGfilter.h"
   35.43 +
   35.44 +#define LENGTH_TO_CHECK_FOR_SYSTEM 0x50000	// Added by HanishKVC
   35.45 +
   35.46 +/* The main MPEG class - parses system streams and creates other streams
   35.47 + A few design notes:
   35.48 +   Making this derived from MPEGstream allows us to do system stream
   35.49 +   parsing.  We create an additional MPEG object for each type of 
   35.50 +   stream in the MPEG file because each needs a separate pointer to
   35.51 +   the MPEG data.  The MPEG stream then creates an accessor object to
   35.52 +   do all the data parsing for that stream type.  It's a little odd,
   35.53 +   but seemed like the best way to implement stream parsing.
   35.54 + */
   35.55 +class MPEG : public MPEGerror
   35.56 +{
   35.57 +public:
   35.58 +		/* Michel Darricau from eProcess <mdarricau@eprocess.fr>  need for override in popcorn */
   35.59 +    MPEG():MPEGerror(){}
   35.60 +	MPEG(bool Sdlaudio, char *addresse,char *asset,long buffersize){}
   35.61 +
   35.62 +    MPEG(const char * name, bool SDLaudio = true);
   35.63 +    MPEG(int Mpeg_FD, bool SDLaudio = true);
   35.64 +    MPEG(void *data, int size, bool SDLaudio = true);
   35.65 +    MPEG(SDL_RWops *mpeg_source,bool SDLaudio = true);
   35.66 +    virtual ~MPEG();
   35.67 +
   35.68 +    /* Initialize the MPEG */
   35.69 +    void Init(SDL_RWops *mpeg_source, bool SDLaudio);
   35.70 +    void InitErrorState();
   35.71 +
   35.72 +    /* Enable/Disable audio and video */
   35.73 +    bool AudioEnabled(void);
   35.74 +    void EnableAudio(bool enabled);
   35.75 +    bool VideoEnabled(void);
   35.76 +    void EnableVideo(bool enabled);
   35.77 +
   35.78 +    /* MPEG actions */
   35.79 +    void Loop(bool toggle);
   35.80 +		/* Michel Darricau from eProcess <mdarricau@eprocess.fr>  need for override in popcorn */
   35.81 +    virtual void Play(void);
   35.82 +    void Stop(void);
   35.83 +    void Rewind(void);
   35.84 +		/* Michel Darricau from eProcess <mdarricau@eprocess.fr>  need for override in popcorn */
   35.85 +    virtual void Pause(void);
   35.86 +    virtual void Seek(int bytes);
   35.87 +    void Skip(float seconds);
   35.88 +		/* Michel Darricau from eProcess <mdarricau@eprocess.fr>  need for override in popcorn */
   35.89 +    MPEGstatus GetStatus(void);
   35.90 +    void GetSystemInfo(MPEG_SystemInfo *info);
   35.91 +
   35.92 +    /* MPEG audio actions */
   35.93 +    bool GetAudioInfo(MPEG_AudioInfo *info);
   35.94 +    void Volume(int vol);
   35.95 +    bool WantedSpec(SDL_AudioSpec *wanted);
   35.96 +    void ActualSpec(const SDL_AudioSpec *actual);
   35.97 +    MPEGaudio *GetAudio(void);
   35.98 +
   35.99 +    /* MPEG video actions */
  35.100 +    bool GetVideoInfo(MPEG_VideoInfo *info);
  35.101 +    bool SetDisplay(SDL_Surface *dst, SDL_mutex *lock,
  35.102 +		                 MPEG_DisplayCallback callback);
  35.103 +    void MoveDisplay(int x, int y);
  35.104 +    void ScaleDisplayXY(int w, int h);
  35.105 +    void SetDisplayRegion(int x, int y, int w, int h);
  35.106 +    void RenderFrame(int frame);
  35.107 +    void RenderFinal(SDL_Surface *dst, int x, int y);
  35.108 +    SMPEG_Filter * Filter(SMPEG_Filter * filter);
  35.109 +
  35.110 +public:
  35.111 +    /* We need to have separate audio and video streams */
  35.112 +    MPEGstream * audiostream;
  35.113 +    MPEGstream * videostream;
  35.114 +
  35.115 +    MPEGsystem * system;
  35.116 +
  35.117 +protected:
  35.118 +    char *mpeg_mem;       // Used to copy MPEG passed in as memory
  35.119 +    SDL_RWops *source;
  35.120 +    MPEGaudioaction *audioaction;
  35.121 +    MPEGvideoaction *videoaction;
  35.122 +
  35.123 +    MPEGaudio *audio;
  35.124 +    MPEGvideo *video;
  35.125 +
  35.126 +    bool audioaction_enabled;
  35.127 +    bool videoaction_enabled;
  35.128 +
  35.129 +    bool sdlaudio;
  35.130 +
  35.131 +    bool loop;
  35.132 +    bool pause;
  35.133 +
  35.134 +    void parse_stream_list();
  35.135 +    bool seekIntoStream(int position);
  35.136 +};
  35.137 +
  35.138 +#endif /* _MPEG_H_ */
    36.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    36.2 +++ b/Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGaction.h	Sat Dec 31 10:27:48 2011 -0500
    36.3 @@ -0,0 +1,141 @@
    36.4 +/*
    36.5 +    SMPEG - SDL MPEG Player Library
    36.6 +    Copyright (C) 1999  Loki Entertainment Software
    36.7 +    
    36.8 +    - Modified by Michel Darricau from eProcess <mdarricau@eprocess.fr>  for popcorn -
    36.9 +
   36.10 +    This library is free software; you can redistribute it and/or
   36.11 +    modify it under the terms of the GNU Library General Public
   36.12 +    License as published by the Free Software Foundation; either
   36.13 +    version 2 of the License, or (at your option) any later version.
   36.14 +
   36.15 +    This library is distributed in the hope that it will be useful,
   36.16 +    but WITHOUT ANY WARRANTY; without even the implied warranty of
   36.17 +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   36.18 +    Library General Public License for more details.
   36.19 +
   36.20 +    You should have received a copy of the GNU Library General Public
   36.21 +    License along with this library; if not, write to the Free
   36.22 +    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
   36.23 +*/
   36.24 +
   36.25 +/* A virtual class to provide basic MPEG playback actions */
   36.26 +
   36.27 +#ifndef _MPEGACTION_H_
   36.28 +#define _MPEGACTION_H_
   36.29 +
   36.30 +#include "SDL.h"
   36.31 +#include "MPEGfilter.h"
   36.32 +
   36.33 +typedef enum {
   36.34 +    MPEG_ERROR = -1,
   36.35 +    MPEG_STOPPED,
   36.36 +    MPEG_PLAYING
   36.37 +} MPEGstatus;
   36.38 +
   36.39 +class MPEGaction {
   36.40 +public:
   36.41 +    MPEGaction() {
   36.42 +        playing = false;
   36.43 +        paused = false;
   36.44 +        looping = false;
   36.45 +	play_time = 0.0;
   36.46 +    }
   36.47 +    virtual void Loop(bool toggle) {
   36.48 +        looping = toggle;
   36.49 +    }
   36.50 +    virtual double Time(void) {  /* Returns the time in seconds since start */
   36.51 +        return play_time;
   36.52 +    }
   36.53 +    virtual void Play(void) = 0;
   36.54 +    virtual void Stop(void) = 0;
   36.55 +    virtual void Rewind(void) = 0;
   36.56 +    virtual void ResetSynchro(double) = 0;
   36.57 +    virtual void Skip(float seconds) = 0;
   36.58 +    virtual void Pause(void) {  /* A toggle action */
   36.59 +        if ( paused ) {
   36.60 +            paused = false;
   36.61 +            Play();
   36.62 +        } else {
   36.63 +            Stop();
   36.64 +            paused = true;
   36.65 +        }
   36.66 +    }
   36.67 +		/* Michel Darricau from eProcess <mdarricau@eprocess.fr>  conflict name in popcorn */
   36.68 +    virtual MPEGstatus GetStatus(void) = 0;
   36.69 +
   36.70 +protected:
   36.71 +    bool playing;
   36.72 +    bool paused;
   36.73 +    bool looping;
   36.74 +    double play_time;
   36.75 +
   36.76 +    bool force_exit;
   36.77 +    
   36.78 +    void ResetPause(void) {
   36.79 +        paused = false;
   36.80 +    }
   36.81 +};
   36.82 +
   36.83 +/* For getting info about the audio portion of the stream */
   36.84 +typedef struct MPEG_AudioInfo {
   36.85 +    int mpegversion;
   36.86 +    int mode;
   36.87 +    int frequency;
   36.88 +    int layer;
   36.89 +    int bitrate;
   36.90 +    int current_frame;
   36.91 +} MPEG_AudioInfo;
   36.92 +
   36.93 +/* Audio action class */
   36.94 +class MPEGaudioaction : public MPEGaction {
   36.95 +public:
   36.96 +    virtual bool GetAudioInfo(MPEG_AudioInfo *info) {
   36.97 +        return(true);
   36.98 +    }
   36.99 +    virtual void Volume(int vol) = 0;
  36.100 +};
  36.101 +
  36.102 +/* Matches the declaration of SDL_UpdateRect() */
  36.103 +typedef void(*MPEG_DisplayCallback)(SDL_Surface* dst, int x, int y,
  36.104 +                                     unsigned int w, unsigned int h);
  36.105 +
  36.106 +/* For getting info about the video portion of the stream */
  36.107 +typedef struct MPEG_VideoInfo {
  36.108 +    int width;
  36.109 +    int height;
  36.110 +    int current_frame;
  36.111 +    double current_fps;
  36.112 +} MPEG_VideoInfo;
  36.113 +
  36.114 +/* Video action class */
  36.115 +class MPEGvideoaction : public MPEGaction {
  36.116 +public:
  36.117 +    virtual void SetTimeSource(MPEGaudioaction *source) {
  36.118 +        time_source = source;
  36.119 +    }
  36.120 +    virtual bool GetVideoInfo(MPEG_VideoInfo *info) {
  36.121 +        return(false);
  36.122 +    }
  36.123 +    virtual bool SetDisplay(SDL_Surface *dst, SDL_mutex *lock,
  36.124 +                                MPEG_DisplayCallback callback) = 0;
  36.125 +    virtual void MoveDisplay(int x, int y) = 0;
  36.126 +    virtual void ScaleDisplayXY(int w, int h) = 0;
  36.127 +    virtual void SetDisplayRegion(int x, int y, int w, int h) = 0;
  36.128 +    virtual void RenderFrame(int frame) = 0;
  36.129 +    virtual void RenderFinal(SDL_Surface *dst, int x, int y) = 0;
  36.130 +    virtual SMPEG_Filter * Filter(SMPEG_Filter * filter) = 0;
  36.131 +protected:
  36.132 +    MPEGaudioaction *time_source;
  36.133 +};
  36.134 +
  36.135 +
  36.136 +/* For getting info about the system portion of the stream */
  36.137 +typedef struct MPEG_SystemInfo {
  36.138 +    int total_size;
  36.139 +    int current_offset;
  36.140 +    double total_time;
  36.141 +    double current_time;
  36.142 +} MPEG_SystemInfo;
  36.143 +
  36.144 +#endif /* _MPEGACTION_H_ */
    37.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    37.2 +++ b/Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGaudio.h	Sat Dec 31 10:27:48 2011 -0500
    37.3 @@ -0,0 +1,385 @@
    37.4 +/*
    37.5 +    SMPEG - SDL MPEG Player Library
    37.6 +    Copyright (C) 1999  Loki Entertainment Software
    37.7 +    
    37.8 +    - Modified by Michel Darricau from eProcess <mdarricau@eprocess.fr>  for popcorn -
    37.9 +
   37.10 +    This library is free software; you can redistribute it and/or
   37.11 +    modify it under the terms of the GNU Library General Public
   37.12 +    License as published by the Free Software Foundation; either
   37.13 +    version 2 of the License, or (at your option) any later version.
   37.14 +
   37.15 +    This library is distributed in the hope that it will be useful,
   37.16 +    but WITHOUT ANY WARRANTY; without even the implied warranty of
   37.17 +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   37.18 +    Library General Public License for more details.
   37.19 +
   37.20 +    You should have received a copy of the GNU Library General Public
   37.21 +    License along with this library; if not, write to the Free
   37.22 +    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
   37.23 +*/
   37.24 +
   37.25 +/* A class based on the MPEG stream class, used to parse and play audio */
   37.26 +
   37.27 +#ifndef _MPEGAUDIO_H_
   37.28 +#define _MPEGAUDIO_H_
   37.29 +
   37.30 +#include "SDL.h"
   37.31 +#include "MPEGerror.h"
   37.32 +#include "MPEGaction.h"
   37.33 +
   37.34 +#ifdef THREADED_AUDIO
   37.35 +#include "MPEGring.h"
   37.36 +#endif
   37.37 +
   37.38 +void Play_MPEGaudioSDL(void *udata, Uint8 *stream, int len);
   37.39 +#ifdef THREADED_AUDIO
   37.40 +    int Decode_MPEGaudio(void *udata);
   37.41 +#endif
   37.42 +
   37.43 +class MPEGstream;
   37.44 +
   37.45 +/* MPEG/WAVE Sound library
   37.46 +   (C) 1997 by Woo-jae Jung */
   37.47 +    
   37.48 +/**************************/
   37.49 +/* Define values for MPEG */
   37.50 +/**************************/
   37.51 +#define SCALEBLOCK     12
   37.52 +#define CALCBUFFERSIZE 512
   37.53 +#define MAXSUBBAND     32
   37.54 +#define MAXCHANNEL     2
   37.55 +#define MAXTABLE       2
   37.56 +#define SCALE          32768
   37.57 +#define MAXSCALE       (SCALE-1)
   37.58 +#define MINSCALE       (-SCALE)
   37.59 +#define RAWDATASIZE    (2*2*32*SSLIMIT)
   37.60 +
   37.61 +#define LS 0
   37.62 +#define RS 1
   37.63 +
   37.64 +#define SSLIMIT      18
   37.65 +#define SBLIMIT      32
   37.66 +
   37.67 +#define WINDOWSIZE    4096
   37.68 +
   37.69 +// Huffmancode
   37.70 +#define HTN 34
   37.71 +
   37.72 +/********************/
   37.73 +/* Type definitions */
   37.74 +/********************/
   37.75 +typedef float REAL;
   37.76 +
   37.77 +typedef struct
   37.78 +{
   37.79 +  bool         generalflag;
   37.80 +  unsigned int part2_3_length;
   37.81 +  unsigned int big_values;
   37.82 +  unsigned int global_gain;
   37.83 +  unsigned int scalefac_compress;
   37.84 +  unsigned int window_switching_flag;
   37.85 +  unsigned int block_type;
   37.86 +  unsigned int mixed_block_flag;
   37.87 +  unsigned int table_select[3];
   37.88 +  unsigned int subblock_gain[3];
   37.89 +  unsigned int region0_count;
   37.90 +  unsigned int region1_count;
   37.91 +  unsigned int preflag;
   37.92 +  unsigned int scalefac_scale;
   37.93 +  unsigned int count1table_select;
   37.94 +}layer3grinfo;
   37.95 +
   37.96 +typedef struct
   37.97 +{
   37.98 +  unsigned main_data_begin;
   37.99 +  unsigned private_bits;
  37.100 +  struct
  37.101 +  {
  37.102 +    unsigned scfsi[4];
  37.103 +    layer3grinfo gr[2];
  37.104 +  }ch[2];
  37.105 +}layer3sideinfo;
  37.106 +
  37.107 +typedef struct
  37.108 +{
  37.109 +  int l[23];            /* [cb] */
  37.110 +  int s[3][13];         /* [window][cb] */
  37.111 +}layer3scalefactor;     /* [ch] */
  37.112 +
  37.113 +typedef struct
  37.114 +{
  37.115 +  int tablename;
  37.116 +  unsigned int xlen,ylen;
  37.117 +  unsigned int linbits;
  37.118 +  unsigned int treelen;
  37.119 +  const unsigned int (*val)[2];
  37.120 +}HUFFMANCODETABLE;
  37.121 +
  37.122 +
  37.123 +// Class for Mpeg layer3
  37.124 +class Mpegbitwindow
  37.125 +{
  37.126 +public:
  37.127 +  Mpegbitwindow(){bitindex=point=0;};
  37.128 +
  37.129 +  void initialize(void)  {bitindex=point=0;};
  37.130 +  int  gettotalbit(void) const {return bitindex;};
  37.131 +  void putbyte(int c)    {buffer[point&(WINDOWSIZE-1)]=c;point++;};
  37.132 +  void wrap(void);
  37.133 +  void rewind(int bits)  {bitindex-=bits;};
  37.134 +  void forward(int bits) {bitindex+=bits;};
  37.135 +  int getbit(void) {
  37.136 +      register int r=(buffer[bitindex>>3]>>(7-(bitindex&7)))&1;
  37.137 +      bitindex++;
  37.138 +      return r;
  37.139 +  }
  37.140 +  int getbits9(int bits)
  37.141 +  {
  37.142 +      register unsigned short a;
  37.143 +      { int offset=bitindex>>3;
  37.144 +
  37.145 +        a=(((unsigned char)buffer[offset])<<8) | ((unsigned char)buffer[offset+1]);
  37.146 +      }
  37.147 +      a<<=(bitindex&7);
  37.148 +      bitindex+=bits;
  37.149 +      return (int)((unsigned int)(a>>(16-bits)));
  37.150 +  }
  37.151 +  int  getbits(int bits);
  37.152 +
  37.153 +private:
  37.154 +  int  point,bitindex;
  37.155 +  char buffer[2*WINDOWSIZE];
  37.156 +};
  37.157 +
  37.158 +/* The actual MPEG audio class */
  37.159 +class MPEGaudio : public MPEGerror, public MPEGaudioaction {
  37.160 +
  37.161 +public:
  37.162 +    MPEGaudio(MPEGstream *stream, bool initSDL = true);
  37.163 +    virtual ~MPEGaudio();
  37.164 +
  37.165 +    /* MPEG actions */
  37.166 +    bool GetAudioInfo(MPEG_AudioInfo *info);
  37.167 +    double Time(void);
  37.168 +    void Play(void);
  37.169 +    void Stop(void);
  37.170 +    void Rewind(void);
  37.171 +    void ResetSynchro(double time);
  37.172 +    void Skip(float seconds);
  37.173 +    void Volume(int vol);
  37.174 +		/* Michel Darricau from eProcess <mdarricau@eprocess.fr> conflict name in popcorn */
  37.175 +    MPEGstatus GetStatus(void);
  37.176 +
  37.177 +    /* Returns the desired SDL audio spec for this stream */
  37.178 +    bool WantedSpec(SDL_AudioSpec *wanted);
  37.179 +
  37.180 +    /* Inform SMPEG of the actual audio format if configuring SDL
  37.181 +       outside of this class */
  37.182 +    void ActualSpec(const SDL_AudioSpec *actual);
  37.183 +
  37.184 +protected:
  37.185 +    bool sdl_audio;
  37.186 +    MPEGstream *mpeg;
  37.187 +    int valid_stream;
  37.188 +    bool stereo;
  37.189 +    double rate_in_s;
  37.190 +    Uint32 frags_playing;
  37.191 +    Uint32 frag_time;
  37.192 +#ifdef THREADED_AUDIO
  37.193 +    bool decoding;
  37.194 +    SDL_Thread *decode_thread;
  37.195 +
  37.196 +    void StartDecoding(void);
  37.197 +    void StopDecoding(void);
  37.198 +#endif
  37.199 +
  37.200 +/* Code from splay 1.8.2 */
  37.201 +
  37.202 +  /*****************************/
  37.203 +  /* Constant tables for layer */
  37.204 +  /*****************************/
  37.205 +private:
  37.206 +  static const int bitrate[2][3][15],frequencies[2][3];
  37.207 +  static const REAL scalefactorstable[64];
  37.208 +  static const HUFFMANCODETABLE ht[HTN];
  37.209 +  static const REAL filter[512];
  37.210 +  static REAL hcos_64[16],hcos_32[8],hcos_16[4],hcos_8[2],hcos_4;
  37.211 +
  37.212 +  /*************************/
  37.213 +  /* MPEG header variables */
  37.214 +  /*************************/
  37.215 +private:
  37.216 +  int last_speed;
  37.217 +  int layer,protection,bitrateindex,padding,extendedmode;
  37.218 +  enum _mpegversion  {mpeg1,mpeg2}                               version;
  37.219 +  enum _mode    {fullstereo,joint,dual,single}                   mode;
  37.220 +  enum _frequency {frequency44100,frequency48000,frequency32000} frequency;
  37.221 +
  37.222 +  /***************************************/
  37.223 +  /* Interface for setting music quality */
  37.224 +  /***************************************/
  37.225 +private:
  37.226 +  bool forcetomonoflag;
  37.227 +  bool forcetostereoflag;
  37.228 +  bool swapendianflag;
  37.229 +  int  downfrequency;
  37.230 +
  37.231 +public:
  37.232 +  void setforcetomono(bool flag);
  37.233 +  void setdownfrequency(int value);
  37.234 +
  37.235 +  /******************************/
  37.236 +  /* Frame management variables */
  37.237 +  /******************************/
  37.238 +private:
  37.239 +  int decodedframe,currentframe,totalframe;
  37.240 +
  37.241 +  /***************************************/
  37.242 +  /* Variables made by MPEG-Audio header */
  37.243 +  /***************************************/
  37.244 +private:
  37.245 +  int tableindex,channelbitrate;
  37.246 +  int stereobound,subbandnumber,inputstereo,outputstereo;
  37.247 +  REAL scalefactor;
  37.248 +  int framesize;
  37.249 +
  37.250 +  /*******************/
  37.251 +  /* Mpegtoraw class */
  37.252 +  /*******************/
  37.253 +public:
  37.254 +  void initialize();
  37.255 +  bool run(int frames, double *timestamp = NULL);
  37.256 +  void clearbuffer(void);
  37.257 +
  37.258 +  /*****************************/
  37.259 +  /* Loading MPEG-Audio stream */
  37.260 +  /*****************************/
  37.261 +private:
  37.262 +  Uint8 _buffer[4096];
  37.263 +  Uint32 _buffer_pos;
  37.264 +  int  bitindex;
  37.265 +  bool fillbuffer(int size);
  37.266 +  void sync(void);
  37.267 +  bool issync(void);
  37.268 +  int getbyte(void);
  37.269 +  int getbit(void);
  37.270 +  int getbits8(void);
  37.271 +  int getbits9(int bits);
  37.272 +  int getbits(int bits);
  37.273 +
  37.274 +
  37.275 +  /********************/
  37.276 +  /* Global variables */
  37.277 +  /********************/
  37.278 +private:
  37.279 +  int lastfrequency,laststereo;
  37.280 +
  37.281 +  // for Layer3
  37.282 +  int layer3slots,layer3framestart,layer3part2start;
  37.283 +  REAL prevblck[2][2][SBLIMIT][SSLIMIT];
  37.284 +  int currentprevblock;
  37.285 +  layer3sideinfo sideinfo;
  37.286 +  layer3scalefactor scalefactors[2];
  37.287 +
  37.288 +  Mpegbitwindow bitwindow;
  37.289 +  int wgetbit  (void)    {return bitwindow.getbit  ();    }
  37.290 +  int wgetbits9(int bits){return bitwindow.getbits9(bits);}
  37.291 +  int wgetbits (int bits){return bitwindow.getbits (bits);}
  37.292 +
  37.293 +
  37.294 +  /*************************************/
  37.295 +  /* Decoding functions for each layer */
  37.296 +  /*************************************/
  37.297 +private:
  37.298 +  bool loadheader(void);
  37.299 +
  37.300 +  //
  37.301 +  // Subbandsynthesis
  37.302 +  //
  37.303 +  REAL calcbufferL[2][CALCBUFFERSIZE],calcbufferR[2][CALCBUFFERSIZE];
  37.304 +  int  currentcalcbuffer,calcbufferoffset;
  37.305 +
  37.306 +  void computebuffer(REAL *fraction,REAL buffer[2][CALCBUFFERSIZE]);
  37.307 +  void generatesingle(void);
  37.308 +  void generate(void);
  37.309 +  void subbandsynthesis(REAL *fractionL,REAL *fractionR);
  37.310 +
  37.311 +  void computebuffer_2(REAL *fraction,REAL buffer[2][CALCBUFFERSIZE]);
  37.312 +  void generatesingle_2(void);
  37.313 +  void generate_2(void);
  37.314 +  void subbandsynthesis_2(REAL *fractionL,REAL *fractionR);
  37.315 +
  37.316 +  // Extarctor
  37.317 +  void extractlayer1(void);    // MPEG-1
  37.318 +  void extractlayer2(void);
  37.319 +  void extractlayer3(void);
  37.320 +  void extractlayer3_2(void);  // MPEG-2
  37.321 +
  37.322 +
  37.323 +  // Functions for layer 3
  37.324 +  void layer3initialize(void);
  37.325 +  bool layer3getsideinfo(void);
  37.326 +  bool layer3getsideinfo_2(void);
  37.327 +  void layer3getscalefactors(int ch,int gr);
  37.328 +  void layer3getscalefactors_2(int ch);
  37.329 +  void layer3huffmandecode(int ch,int gr,int out[SBLIMIT][SSLIMIT]);
  37.330 +  REAL layer3twopow2(int scale,int preflag,int pretab_offset,int l);
  37.331 +  REAL layer3twopow2_1(int a,int b,int c);
  37.332 +  void layer3dequantizesample(int ch,int gr,int   in[SBLIMIT][SSLIMIT],
  37.333 +                                REAL out[SBLIMIT][SSLIMIT]);
  37.334 +  void layer3fixtostereo(int gr,REAL  in[2][SBLIMIT][SSLIMIT]);
  37.335 +  void layer3reorderandantialias(int ch,int gr,REAL  in[SBLIMIT][SSLIMIT],
  37.336 +                               REAL out[SBLIMIT][SSLIMIT]);
  37.337 +
  37.338 +  void layer3hybrid(int ch,int gr,REAL in[SBLIMIT][SSLIMIT],
  37.339 +                          REAL out[SSLIMIT][SBLIMIT]);
  37.340 +  
  37.341 +  void huffmandecoder_1(const HUFFMANCODETABLE *h,int *x,int *y);
  37.342 +  void huffmandecoder_2(const HUFFMANCODETABLE *h,int *x,int *y,int *v,int *w);
  37.343 +
  37.344 +  /********************/
  37.345 +  /* Playing raw data */
  37.346 +  /********************/
  37.347 +private:
  37.348 +  int     samplesperframe;
  37.349 +  int     rawdatareadoffset, rawdatawriteoffset;
  37.350 +  Sint16 *rawdata;
  37.351 +#ifdef THREADED_AUDIO
  37.352 +  MPEG_ring *ring;
  37.353 +#else
  37.354 +  Sint16  spillover[ RAWDATASIZE ];
  37.355 +#endif
  37.356 +  int volume;
  37.357 +
  37.358 +  void clearrawdata(void)    {
  37.359 +        rawdatareadoffset=0;
  37.360 +        rawdatawriteoffset=0;
  37.361 +        rawdata=NULL;
  37.362 +  }
  37.363 +  void putraw(short int pcm) {rawdata[rawdatawriteoffset++]=pcm;}
  37.364 +
  37.365 +  /********************/
  37.366 +  /* Timestamp sync   */
  37.367 +  /********************/
  37.368 +public:
  37.369 +#define N_TIMESTAMPS 5
  37.370 +
  37.371 +  double timestamp[N_TIMESTAMPS];
  37.372 +
  37.373 +  /* Functions which access MPEGaudio internals */
  37.374 +  friend void Play_MPEGaudioSDL(void *udata, Uint8 *stream, int len);
  37.375 +  friend int Play_MPEGaudio(MPEGaudio *audio, Uint8 *stream, int len);
  37.376 +#ifdef THREADED_AUDIO
  37.377 +  friend int Decode_MPEGaudio(void *udata);
  37.378 +#endif
  37.379 +};
  37.380 +
  37.381 +/* Need to duplicate the prototypes, this is not a typo :) */
  37.382 +void Play_MPEGaudioSDL(void *udata, Uint8 *stream, int len);
  37.383 +int Play_MPEGaudio(MPEGaudio *audio, Uint8 *stream, int len);
  37.384 +#ifdef THREADED_AUDIO
  37.385 +int Decode_MPEGaudio(void *udata);
  37.386 +#endif
  37.387 +
  37.388 +#endif /* _MPEGAUDIO_H_ */
    38.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    38.2 +++ b/Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGerror.h	Sat Dec 31 10:27:48 2011 -0500
    38.3 @@ -0,0 +1,62 @@
    38.4 +/*
    38.5 +    SMPEG - SDL MPEG Player Library
    38.6 +    Copyright (C) 1999  Loki Entertainment Software
    38.7 +
    38.8 +    This library is free software; you can redistribute it and/or
    38.9 +    modify it under the terms of the GNU Library General Public
   38.10 +    License as published by the Free Software Foundation; either
   38.11 +    version 2 of the License, or (at your option) any later version.
   38.12 +
   38.13 +    This library is distributed in the hope that it will be useful,
   38.14 +    but WITHOUT ANY WARRANTY; without even the implied warranty of
   38.15 +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   38.16 +    Library General Public License for more details.
   38.17 +
   38.18 +    You should have received a copy of the GNU Library General Public
   38.19 +    License along with this library; if not, write to the Free
   38.20 +    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
   38.21 +*/
   38.22 +
   38.23 +/* A class used for error reporting in the MPEG classes */
   38.24 +
   38.25 +#ifndef _MPEGERROR_H_
   38.26 +#define _MPEGERROR_H_
   38.27 +
   38.28 +#include <stdio.h>
   38.29 +#include <stdarg.h>
   38.30 +
   38.31 +class MPEGerror {
   38.32 +public:
   38.33 +    MPEGerror() {
   38.34 +        ClearError();
   38.35 +    }
   38.36 +
   38.37 +    /* Set an error message */
   38.38 +    void SetError(const char *fmt, ...) {
   38.39 +        va_list ap;
   38.40 +
   38.41 +        va_start(ap, fmt);
   38.42 +        vsprintf(errbuf, fmt, ap);
   38.43 +        va_end(ap);
   38.44 +        error = errbuf;
   38.45 +    }
   38.46 +
   38.47 +    /* Find out if an error occurred */
   38.48 +    bool WasError(void) {
   38.49 +        return(error != NULL);
   38.50 +    }
   38.51 +    char *TheError(void) {
   38.52 +        return(error);
   38.53 +    }
   38.54 +
   38.55 +    /* Clear any error message */
   38.56 +    void ClearError(void) {
   38.57 +        error = NULL;
   38.58 +    }
   38.59 +
   38.60 +protected:
   38.61 +    char errbuf[512];
   38.62 +    char *error;
   38.63 +};
   38.64 +
   38.65 +#endif /* _MPEGERROR_H_ */
    39.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    39.2 +++ b/Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGfilter.h	Sat Dec 31 10:27:48 2011 -0500
    39.3 @@ -0,0 +1,67 @@
    39.4 +/*
    39.5 +    SMPEG - SDL MPEG Player Library
    39.6 +    Copyright (C) 1999  Loki Entertainment Software
    39.7 +
    39.8 +    This library is free software; you can redistribute it and/or
    39.9 +    modify it under the terms of the GNU Library General Public
   39.10 +    License as published by the Free Software Foundation; either
   39.11 +    version 2 of the License, or (at your option) any later version.
   39.12 +
   39.13 +    This library is distributed in the hope that it will be useful,
   39.14 +    but WITHOUT ANY WARRANTY; without even the implied warranty of
   39.15 +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   39.16 +    Library General Public License for more details.
   39.17 +
   39.18 +    You should have received a copy of the GNU Library General Public
   39.19 +    License along with this library; if not, write to the Free
   39.20 +    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
   39.21 +*/
   39.22 +
   39.23 +/* MPEG filters */
   39.24 +
   39.25 +#ifndef _MPEGFILTER_H_
   39.26 +#define _MPEGFILTER_H_
   39.27 +
   39.28 +/* SMPEG filter info flags */
   39.29 +#define SMPEG_FILTER_INFO_MB_ERROR    1
   39.30 +#define SMPEG_FILTER_INFO_PIXEL_ERROR 2
   39.31 +
   39.32 +/* Filter info from SMPEG */
   39.33 +typedef struct SMPEG_FilterInfo {
   39.34 +  Uint16* yuv_mb_square_error;
   39.35 +  Uint16* yuv_pixel_square_error;
   39.36 +} SMPEG_FilterInfo;
   39.37 +
   39.38 +/* MPEG filter definition */
   39.39 +struct SMPEG_Filter;
   39.40 +
   39.41 +/* Callback functions for the filter */
   39.42 +typedef void (* SMPEG_FilterCallback)( SDL_Overlay * dest, SDL_Overlay * source, SDL_Rect * region, SMPEG_FilterInfo * filter_info, void * data );
   39.43 +typedef void (* SMPEG_FilterDestroy)( struct SMPEG_Filter * filter );
   39.44 +
   39.45 +/* The filter definition itself */
   39.46 +typedef struct SMPEG_Filter {
   39.47 +  Uint32 flags;
   39.48 +  void * data;
   39.49 +  SMPEG_FilterCallback callback;
   39.50 +  SMPEG_FilterDestroy destroy;
   39.51 +} SMPEG_Filter;
   39.52 +
   39.53 +/* SMPEG built-in filters. */
   39.54 +#ifdef __cplusplus
   39.55 +extern "C" {
   39.56 +#endif
   39.57 +
   39.58 +/* The null filter (default). It simply copies the source rectangle to the video overlay. */ 
   39.59 +extern DECLSPEC SMPEG_Filter * SMPEGfilter_null(void);
   39.60 +
   39.61 +/* The bilinear filter. A basic low-pass filter that will produce a smoother image. */ 
   39.62 +extern DECLSPEC SMPEG_Filter * SMPEGfilter_bilinear(void);
   39.63 +
   39.64 +/* The deblocking filter. It filters block borders and non-intra coded blocks to reduce blockiness */ 
   39.65 +extern DECLSPEC SMPEG_Filter * SMPEGfilter_deblocking(void);
   39.66 +
   39.67 +#ifdef __cplusplus
   39.68 +};
   39.69 +#endif
   39.70 +#endif /* _MPEGFILTER_H_ */
    40.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    40.2 +++ b/Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGlist.h	Sat Dec 31 10:27:48 2011 -0500
    40.3 @@ -0,0 +1,45 @@
    40.4 +/* bufferlist.h */
    40.5 +
    40.6 +/* A class for buffering the I/O and allow multiple streams to read the data
    40.7 +   asynchronously */
    40.8 +
    40.9 +#ifndef _MPEGLIST_H_
   40.10 +#define _MPEGLIST_H_
   40.11 +
   40.12 +#include "SDL.h"
   40.13 +
   40.14 +class MPEGlist {
   40.15 +public:
   40.16 +  MPEGlist();
   40.17 +  ~MPEGlist();
   40.18 +
   40.19 +  /* Get to the next free buffer or allocate a new one if none is free */
   40.20 +  MPEGlist * Alloc(Uint32 Buffer_Size);
   40.21 +
   40.22 +  /* Lock current buffer */
   40.23 +  void Lock();
   40.24 +
   40.25 +  /* Unlock current buffer */
   40.26 +  void Unlock();
   40.27 +
   40.28 +  /* Get the buffer */
   40.29 +  inline void * Buffer() { return(data); };
   40.30 +
   40.31 +  inline Uint32 Size() { return(size); }; 
   40.32 +
   40.33 +  inline MPEGlist * Next() { return(next); };
   40.34 +
   40.35 +  inline MPEGlist * Prev() { return(prev); };
   40.36 +
   40.37 +  inline Uint32 IsLocked() { return(lock); };
   40.38 +
   40.39 +  double TimeStamp;
   40.40 +
   40.41 +private:
   40.42 +  class MPEGlist * next;
   40.43 +  class MPEGlist * prev;
   40.44 +  Uint32 lock;
   40.45 +  Uint8 * data;
   40.46 +  Uint32 size;
   40.47 +};
   40.48 +#endif
    41.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    41.2 +++ b/Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGring.h	Sat Dec 31 10:27:48 2011 -0500
    41.3 @@ -0,0 +1,94 @@
    41.4 +/*
    41.5 +    SMPEG - SDL MPEG Player Library
    41.6 +    Copyright (C) 1999  Loki Entertainment Software
    41.7 +
    41.8 +    This library is free software; you can redistribute it and/or
    41.9 +    modify it under the terms of the GNU Library General Public
   41.10 +    License as published by the Free Software Foundation; either
   41.11 +    version 2 of the License, or (at your option) any later version.
   41.12 +
   41.13 +    This library is distributed in the hope that it will be useful,
   41.14 +    but WITHOUT ANY WARRANTY; without even the implied warranty of
   41.15 +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   41.16 +    Library General Public License for more details.
   41.17 +
   41.18 +    You should have received a copy of the GNU Library General Public
   41.19 +    License along with this library; if not, write to the Free
   41.20 +    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
   41.21 +*/
   41.22 +
   41.23 +/* A ring-buffer class for multi-threaded applications.
   41.24 +   This assumes a single reader and a single writer, with blocking reads.
   41.25 + */
   41.26 +
   41.27 +#ifndef _MPEGRING_H
   41.28 +#define _MPEGRING_H
   41.29 +
   41.30 +#include "SDL_types.h"
   41.31 +#include "SDL_thread.h"
   41.32 +
   41.33 +class MPEG_ring {
   41.34 +public:
   41.35 +    /* Create a ring with 'count' buffers, each 'size' bytes long */
   41.36 +    MPEG_ring(Uint32 size, Uint32 count = 16);
   41.37 +
   41.38 +    /* Release any waiting threads on the ring so they can be cleaned up.
   41.39 +       The ring isn't valid after this call, so when threads are done you
   41.40 +       should call MPRing_sdelete() on the ring.
   41.41 +     */
   41.42 +    void ReleaseThreads(void);
   41.43 +
   41.44 +    /* Destroy a ring after all threads are no longer using it */
   41.45 +    virtual ~MPEG_ring();
   41.46 +
   41.47 +    /* Returns the maximum size of each buffer */
   41.48 +    Uint32 BufferSize( void ) {
   41.49 +        return(bufSize);
   41.50 +    }
   41.51 +    /* Returns how many buffers have available data */
   41.52 +    int BuffersWritten(void) {
   41.53 +        return(SDL_SemValue(ring->readwait));
   41.54 +    }
   41.55 +
   41.56 +    /* Reserve a buffer for writing in the ring */
   41.57 +    Uint8 *NextWriteBuffer( void );
   41.58 +
   41.59 +    /* Release a buffer, written to in the ring */
   41.60 +    void WriteDone( Uint32 len, double timestamp=-1 );
   41.61 +
   41.62 +    /* Reserve a buffer for reading in the ring */
   41.63 +    Uint32 NextReadBuffer( Uint8** buffer );
   41.64 +
   41.65 +    /* Read the timestamp of the current buffer */
   41.66 +    double ReadTimeStamp(void);
   41.67 +
   41.68 +    /* Release a buffer having read some of it */
   41.69 +    void ReadSome( Uint32 used );
   41.70 +
   41.71 +    /* Release a buffer having read all of it */
   41.72 +    void ReadDone( void );
   41.73 +
   41.74 +protected:
   41.75 +    MPEG_ring *ring;    /* Converted from C code, an alias for 'this' */
   41.76 +
   41.77 +    /* read only */
   41.78 +    Uint32 bufSize;
   41.79 +    
   41.80 +    /* private */
   41.81 +    Uint8 *begin;
   41.82 +    Uint8 *end;
   41.83 +
   41.84 +    double *timestamps;
   41.85 +    double *timestamp_read;
   41.86 +    double *timestamp_write;
   41.87 + 
   41.88 +    Uint8 *read;
   41.89 +    Uint8 *write;
   41.90 +
   41.91 +    /* For read/write synchronization */
   41.92 +    int active;
   41.93 +    SDL_semaphore *readwait;
   41.94 +    SDL_semaphore *writewait;
   41.95 +};
   41.96 +
   41.97 +#endif /* _MPEGRING_H */
    42.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    42.2 +++ b/Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGstream.h	Sat Dec 31 10:27:48 2011 -0500
    42.3 @@ -0,0 +1,116 @@
    42.4 +/*
    42.5 +    SMPEG - SDL MPEG Player Library
    42.6 +    Copyright (C) 1999  Loki Entertainment Software
    42.7 +
    42.8 +    This library is free software; you can redistribute it and/or
    42.9 +    modify it under the terms of the GNU Library General Public
   42.10 +    License as published by the Free Software Foundation; either
   42.11 +    version 2 of the License, or (at your option) any later version.
   42.12 +
   42.13 +    This library is distributed in the hope that it will be useful,
   42.14 +    but WITHOUT ANY WARRANTY; without even the implied warranty of
   42.15 +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   42.16 +    Library General Public License for more details.
   42.17 +
   42.18 +    You should have received a copy of the GNU Library General Public
   42.19 +    License along with this library; if not, write to the Free
   42.20 +    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
   42.21 +*/
   42.22 +
   42.23 +/* The generic MPEG stream class */
   42.24 +
   42.25 +#ifndef _MPEGSTREAM_H_
   42.26 +#define _MPEGSTREAM_H_
   42.27 +
   42.28 +#include "SDL_types.h"
   42.29 +#include "MPEGerror.h"
   42.30 +#include "MPEGvideo.h"
   42.31 +#include "MPEGaudio.h"
   42.32 +#include "MPEGlist.h"
   42.33 +
   42.34 +#define AUDIO_STREAMID  0xc0
   42.35 +#define VIDEO_STREAMID  0xe0
   42.36 +#define SYSTEM_STREAMID 0xbb
   42.37 +
   42.38 +struct MPEGstream_marker
   42.39 +{
   42.40 +    /* Data to mark part of the stream */
   42.41 +    MPEGlist * marked_buffer;
   42.42 +    Uint8 *marked_data;
   42.43 +    Uint8 *marked_stop;  
   42.44 +};
   42.45 +
   42.46 +class MPEGstream
   42.47 +{
   42.48 +public:
   42.49 +    MPEGstream(class MPEGsystem * System, Uint8 Streamid);
   42.50 +    ~MPEGstream();
   42.51 +
   42.52 +    /* Cleanup the buffers and reset the stream */
   42.53 +    void reset_stream(void);
   42.54 +
   42.55 +    /* Rewind the stream */
   42.56 +    void rewind_stream(void);
   42.57 +
   42.58 +    /* Go to the next packet in the stream */
   42.59 +    bool next_packet(bool recurse = true, bool update_timestamp = true);
   42.60 + 
   42.61 +    /* Mark a position in the data stream */
   42.62 +    MPEGstream_marker *new_marker(int offset);
   42.63 +
   42.64 +    /* Jump to the marked position */
   42.65 +    bool seek_marker(MPEGstream_marker const * marker);
   42.66 +
   42.67 +    /* Jump to last successfully marked position */
   42.68 +    void delete_marker(MPEGstream_marker * marker);
   42.69 +
   42.70 +    /* Copy data from the stream to a local buffer */
   42.71 +    Uint32 copy_data(Uint8 *area, Sint32 size, bool short_read = false);
   42.72 +
   42.73 +    /* Copy a byte from the stream */
   42.74 +    int copy_byte(void);
   42.75 +
   42.76 +    /* Check for end of file or an error in the stream */
   42.77 +    bool eof(void) const;
   42.78 +
   42.79 +    /* Insert a new packet at the end of the stream */
   42.80 +    void insert_packet(Uint8 * data, Uint32 size, double timestamp=-1);
   42.81 +
   42.82 +    /* Check for unused buffers and free them */
   42.83 +    void garbage_collect(void);
   42.84 +
   42.85 +    /* Enable or disable the stream */
   42.86 +    void enable(bool toggle);
   42.87 +
   42.88 +    /* Get stream time */
   42.89 +    double time();
   42.90 +
   42.91 +    Uint32 pos;
   42.92 +
   42.93 +    Uint8 streamid;
   42.94 +
   42.95 +protected:
   42.96 +    Uint8 *data;
   42.97 +    Uint8 *stop;
   42.98 +
   42.99 +    Uint32 preread_size;
  42.100 +
  42.101 +    class MPEGsystem * system;
  42.102 +    MPEGlist * br;
  42.103 +    bool cleareof;
  42.104 +    bool enabled;
  42.105 +
  42.106 +    SDL_mutex * mutex;
  42.107 +
  42.108 +    /* Get a buffer from the stream */
  42.109 +    bool next_system_buffer(void);
  42.110 +
  42.111 +public:
  42.112 +    /* "pos" where "timestamp" belongs */
  42.113 +    Uint32 timestamp_pos;
  42.114 +    double timestamp;
  42.115 +};
  42.116 +
  42.117 +#endif /* _MPEGSTREAM_H_ */
  42.118 +
  42.119 +
    43.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    43.2 +++ b/Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGsystem.h	Sat Dec 31 10:27:48 2011 -0500
    43.3 @@ -0,0 +1,117 @@
    43.4 +/* A class based on the MPEG stream class, used to parse the system stream */
    43.5 +    
    43.6 +/* - Modified by Michel Darricau from eProcess <mdarricau@eprocess.fr>  for popcorn - */
    43.7 +
    43.8 +#ifndef _MPEGSYSTEM_H_
    43.9 +#define _MPEGSYSTEM_H_
   43.10 +#define USE_SYSTEM_TIMESTAMP
   43.11 +
   43.12 +#include "SDL.h"
   43.13 +#include "SDL_thread.h"
   43.14 +#include "MPEGerror.h"
   43.15 +
   43.16 +class MPEGstream;
   43.17 +
   43.18 +/* MPEG System library
   43.19 +   by Vivien Chappelier */
   43.20 +
   43.21 +/* The system class is necessary for splitting the MPEG stream into */
   43.22 +/* peaces of data that will be sent to the audio or video decoder.  */
   43.23 +
   43.24 +class MPEGsystem : public MPEGerror
   43.25 +{
   43.26 +public:
   43.27 +	/* Michel Darricau from eProcess <mdarricau@eprocess.fr>  need for override in popcorn */
   43.28 +    MPEGsystem() {}
   43.29 +    MPEGsystem(SDL_RWops *mpeg_source);
   43.30 +    virtual ~MPEGsystem();
   43.31 +
   43.32 +    /* Buffered I/O functions */
   43.33 +    void RequestBuffer();
   43.34 +    bool Wait();
   43.35 +    Uint32 Tell();
   43.36 +    void Rewind();
   43.37 +		/* Michel Darricau from eProcess <mdarricau@eprocess.fr>  need for override in popcorn */
   43.38 +    virtual void Start();
   43.39 +    void Stop();
   43.40 +    bool Eof() const;
   43.41 +		/* Michel Darricau from eProcess <mdarricau@eprocess.fr>  need for override in popcorn */
   43.42 +    virtual bool Seek(int length);
   43.43 +    virtual Uint32 TotalSize();
   43.44 +    virtual double TotalTime();
   43.45 +    virtual double TimeElapsedAudio(int atByte);
   43.46 +
   43.47 +    /* Skip "seconds" seconds */
   43.48 +    void Skip(double seconds);
   43.49 +
   43.50 +    /* Create all the streams present in the MPEG */
   43.51 +    MPEGstream ** GetStreamList();
   43.52 +
   43.53 +    /* Insert a stream in the list */
   43.54 +    void add_stream(MPEGstream * stream);
   43.55 +
   43.56 +    /* Search for a stream in the list */
   43.57 +    MPEGstream * get_stream(Uint8 stream_id);
   43.58 +
   43.59 +    /* Test if a stream is in the list */
   43.60 +    Uint8 exist_stream(Uint8 stream_id, Uint8 mask);
   43.61 +
   43.62 +    /* Reset all the system streams */
   43.63 +    void reset_all_streams();
   43.64 +    
   43.65 +    /* Set eof for all streams */
   43.66 +    void end_all_streams();
   43.67 +    
   43.68 +		/* Michel Darricau from eProcess <mdarricau@eprocess.fr>  need for override in popcorn */
   43.69 +    /* Seek the first header */
   43.70 +    virtual bool seek_first_header();
   43.71 +
   43.72 +		/* Michel Darricau from eProcess <mdarricau@eprocess.fr>  need for override in popcorn */
   43.73 +    /* Seek the next header */
   43.74 +    virtual bool seek_next_header();
   43.75 +
   43.76 +protected:
   43.77 +    /* Run the loop to fill the stream buffers */
   43.78 +    static bool SystemLoop(MPEGsystem *system);
   43.79 +
   43.80 +		/* Michel Darricau from eProcess <mdarricau@eprocess.fr>  need for override in popcorn */
   43.81 +    /* Fill a buffer */
   43.82 +    virtual Uint8 FillBuffer();
   43.83 +
   43.84 +    /* Read a new packet */
   43.85 +    virtual void Read();
   43.86 +
   43.87 +    /* The system thread which fills the FIFO */
   43.88 +    static int SystemThread(void * udata);
   43.89 +
   43.90 +    SDL_RWops *source;
   43.91 +
   43.92 +    SDL_Thread * system_thread;
   43.93 +    bool system_thread_running;
   43.94 +
   43.95 +    MPEGstream ** stream_list;
   43.96 +
   43.97 +    Uint8 * read_buffer;
   43.98 +    Uint8 * pointer;
   43.99 +    int read_size;
  43.100 +    Uint32 read_total;
  43.101 +    Uint32 packet_total;
  43.102 +    int request;
  43.103 +    SDL_semaphore * request_wait;
  43.104 +    SDL_mutex * system_mutex;
  43.105 +
  43.106 +    bool endofstream;
  43.107 +    bool errorstream;
  43.108 +
  43.109 +    double frametime;
  43.110 +    double stream_timestamp;
  43.111 +
  43.112 +#ifdef USE_SYSTEM_TIMESTAMP
  43.113 +    /* Current timestamp for this stream */
  43.114 +    double timestamp;
  43.115 +    double timedrift;
  43.116 +    double skip_timestamp;
  43.117 +#endif
  43.118 +};
  43.119 +#endif
  43.120 +
    44.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    44.2 +++ b/Xcode/smpeg/smpeg.framework/Versions/A/Headers/MPEGvideo.h	Sat Dec 31 10:27:48 2011 -0500
    44.3 @@ -0,0 +1,109 @@
    44.4 +/*
    44.5 +    SMPEG - SDL MPEG Player Library
    44.6 +    Copyright (C) 1999  Loki Entertainment Software
    44.7 +    
    44.8 +    - Modified by Michel Darricau from eProcess <mdarricau@eprocess.fr>  for popcorn -
    44.9 +
   44.10 +    This library is free software; you can redistribute it and/or
   44.11 +    modify it under the terms of the GNU Library General Public
   44.12 +    License as published by the Free Software Foundation; either
   44.13 +    version 2 of the License, or (at your option) any later version.
   44.14 +
   44.15 +    This library is distributed in the hope that it will be useful,
   44.16 +    but WITHOUT ANY WARRANTY; without even the implied warranty of
   44.17 +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   44.18 +    Library General Public License for more details.
   44.19 +
   44.20 +    You should have received a copy of the GNU Library General Public
   44.21 +    License along with this library; if not, write to the Free
   44.22 +    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
   44.23 +*/
   44.24 +
   44.25 +/* A class based on the MPEG stream class, used to parse and play video */
   44.26 +
   44.27 +#ifndef _MPEGVIDEO_H_
   44.28 +#define _MPEGVIDEO_H_
   44.29 +
   44.30 +#include "SDL.h"
   44.31 +#include "SDL_thread.h"
   44.32 +#include "MPEGerror.h"
   44.33 +#include "MPEGaction.h"
   44.34 +
   44.35 +class MPEGstream;
   44.36 +
   44.37 +/* This is the MPEG video stream structure in the mpeg_play code */
   44.38 +struct vid_stream;
   44.39 +typedef struct vid_stream VidStream;
   44.40 +
   44.41 +/* Temporary definition of time stamp structure. */
   44.42 +
   44.43 +typedef double TimeStamp;
   44.44 +
   44.45 +class MPEGvideo : public MPEGerror, public MPEGvideoaction {
   44.46 +
   44.47 +    /* Thread to play the video asynchronously */
   44.48 +    friend int Play_MPEGvideo(void *udata);
   44.49 +
   44.50 +    /* Various mpeg_play functions that need our data */
   44.51 +    friend VidStream* mpegVidRsrc( TimeStamp time_stamp, VidStream* vid_stream, int first );
   44.52 +    friend int get_more_data( VidStream* vid_stream );
   44.53 +
   44.54 +public:
   44.55 +    MPEGvideo(MPEGstream *stream);
   44.56 +    virtual ~MPEGvideo();
   44.57 +
   44.58 +    /* MPEG actions */
   44.59 +    void Play(void);
   44.60 +    void Stop(void);
   44.61 +    void Rewind(void);
   44.62 +    void ResetSynchro(double time);
   44.63 +     void Skip(float seconds);
   44.64 +		/* Michel Darricau from eProcess <mdarricau@eprocess.fr> conflict name in popcorn */
   44.65 +    MPEGstatus GetStatus(void);
   44.66 +
   44.67 +    /* MPEG video actions */
   44.68 +    bool GetVideoInfo(MPEG_VideoInfo *info);
   44.69 +    bool SetDisplay(SDL_Surface *dst, SDL_mutex *lock,
   44.70 +                                            MPEG_DisplayCallback callback);
   44.71 +    void MoveDisplay(int x, int y);
   44.72 +    void ScaleDisplayXY(int w, int h);
   44.73 +    void SetDisplayRegion(int x, int y, int w, int h);
   44.74 +    void RenderFrame(int frame);
   44.75 +    void RenderFinal(SDL_Surface *dst, int x, int y);
   44.76 +    SMPEG_Filter * Filter(SMPEG_Filter * filter);
   44.77 +
   44.78 +    /* Display and sync functions */
   44.79 +    void DisplayFrame( VidStream* vid_stream );
   44.80 +    void ExecuteDisplay( VidStream* vid_stream );
   44.81 +    int timeSync( VidStream* vid_stream );
   44.82 +
   44.83 +    /* Yes, it's a hack.. */
   44.84 +    MPEGaudioaction *TimeSource(void ) {
   44.85 +        return time_source;
   44.86 +    }
   44.87 +
   44.88 +protected:
   44.89 +    MPEGstream *mpeg;
   44.90 +
   44.91 +    VidStream* _stream;
   44.92 +    SDL_Surface* _dst;
   44.93 +    SDL_mutex* _mutex;
   44.94 +    SDL_Thread* _thread;
   44.95 +
   44.96 +    MPEG_DisplayCallback _callback;
   44.97 +
   44.98 +    int _ow;            // original width of the movie
   44.99 +    int _oh;            // original height of the movie
  44.100 +    int _w;             // mb aligned width of the movie
  44.101 +    int _h;             // mb aligned height of the movie
  44.102 +    SDL_Rect _srcrect;	// source area
  44.103 +    SDL_Rect _dstrect;	// display area
  44.104 +    SDL_Overlay *_image;// source image
  44.105 +    float _fps;         // frames per second
  44.106 +    SMPEG_Filter * _filter; // pointer to the current filter used
  44.107 +    SDL_mutex* _filter_mutex; // make sure the filter is not changed while being used
  44.108 +
  44.109 +    void RewindStream(void);
  44.110 +};
  44.111 +
  44.112 +#endif /* _MPEGVIDEO_H_ */
    45.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    45.2 +++ b/Xcode/smpeg/smpeg.framework/Versions/A/Headers/smpeg.h	Sat Dec 31 10:27:48 2011 -0500
    45.3 @@ -0,0 +1,207 @@
    45.4 +/*
    45.5 +    SMPEG - SDL MPEG Player Library
    45.6 +    Copyright (C) 1999  Loki Entertainment Software
    45.7 +
    45.8 +    This library is free software; you can redistribute it and/or
    45.9 +    modify it under the terms of the GNU Library General Public
   45.10 +    License as published by the Free Software Foundation; either
   45.11 +    version 2 of the License, or (at your option) any later version.
   45.12 +
   45.13 +    This library is distributed in the hope that it will be useful,
   45.14 +    but WITHOUT ANY WARRANTY; without even the implied warranty of
   45.15 +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   45.16 +    Library General Public License for more details.
   45.17 +
   45.18 +    You should have received a copy of the GNU Library General Public
   45.19 +    License along with this library; if not, write to the Free
   45.20 +    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
   45.21 +*/
   45.22 +
   45.23 +/* This is the C interface to the SMPEG library */
   45.24 +
   45.25 +#ifndef _SMPEG_H_
   45.26 +#define _SMPEG_H_
   45.27 +
   45.28 +#include "SDL.h"
   45.29 +#include "SDL_mutex.h"
   45.30 +#include "SDL_audio.h"
   45.31 +
   45.32 +#include "MPEGfilter.h"
   45.33 +
   45.34 +#ifdef __cplusplus
   45.35 +extern "C" {
   45.36 +#endif
   45.37 +
   45.38 +#define SMPEG_MAJOR_VERSION      0
   45.39 +#define SMPEG_MINOR_VERSION      4
   45.40 +#define SMPEG_PATCHLEVEL         5
   45.41 +
   45.42 +typedef struct {
   45.43 +        Uint8 major;
   45.44 +        Uint8 minor;
   45.45 +        Uint8 patch;
   45.46 +} SMPEG_version;
   45.47 +
   45.48 +/* This macro can be used to fill a version structure with the compile-time
   45.49 + * version of the SDL library.
   45.50 + */
   45.51 +#define SMPEG_VERSION(X)                                                \
   45.52 +{                                                                       \
   45.53 +        (X)->major = SMPEG_MAJOR_VERSION;                               \
   45.54 +        (X)->minor = SMPEG_MINOR_VERSION;                               \
   45.55 +        (X)->patch = SMPEG_PATCHLEVEL;                                  \
   45.56 +}
   45.57 +
   45.58 +/* This is the actual SMPEG object */
   45.59 +typedef struct _SMPEG SMPEG;
   45.60 +
   45.61 +/* Used to get information about the SMPEG object */
   45.62 +typedef struct _SMPEG_Info {
   45.63 +    int has_audio;
   45.64 +    int has_video;
   45.65 +    int width;
   45.66 +    int height;
   45.67 +    int current_frame;
   45.68 +    double current_fps;
   45.69 +    char audio_string[80];
   45.70 +    int  audio_current_frame;
   45.71 +    Uint32 current_offset;
   45.72 +    Uint32 total_size;
   45.73 +    double current_time;
   45.74 +    double total_time;
   45.75 +} SMPEG_Info;
   45.76 +
   45.77 +/* Possible MPEG status codes */
   45.78 +typedef enum {
   45.79 +    SMPEG_ERROR = -1,
   45.80 +    SMPEG_STOPPED,
   45.81 +    SMPEG_PLAYING
   45.82 +} SMPEGstatus;
   45.83 +
   45.84 +
   45.85 +/* Matches the declaration of SDL_UpdateRect() */
   45.86 +typedef void(*SMPEG_DisplayCallback)(SDL_Surface* dst, int x, int y,
   45.87 +                                     unsigned int w, unsigned int h);
   45.88 +
   45.89 +/* Create a new SMPEG object from an MPEG file.
   45.90 +   On return, if 'info' is not NULL, it will be filled with information 
   45.91 +   about the MPEG object.
   45.92 +   This function returns a new SMPEG object.  Use SMPEG_error() to find out
   45.93 +   whether or not there was a problem building the MPEG stream.
   45.94 +   The sdl_audio parameter indicates if SMPEG should initialize the SDL audio
   45.95 +   subsystem. If not, you will have to use the SMPEG_playaudio() function below
   45.96 +   to extract the decoded data.
   45.97 + */
   45.98 +extern DECLSPEC SMPEG* SMPEG_new(const char *file, SMPEG_Info* info, int sdl_audio);
   45.99 +
  45.100 +/* The same as above for a file descriptor */
  45.101 +extern DECLSPEC SMPEG* SMPEG_new_descr(int file, SMPEG_Info* info, int sdl_audio);
  45.102 +
  45.103 +/*
  45.104 +   The same as above but for a raw chunk of data.  SMPEG makes a copy of the
  45.105 +   data, so the application is free to delete after a successful call to this
  45.106 +   function.
  45.107 + */
  45.108 +extern DECLSPEC SMPEG* SMPEG_new_data(void *data, int size, SMPEG_Info* info, int sdl_audio);
  45.109 +
  45.110 +/* The same for a generic SDL_RWops structure. */
  45.111 +extern DECLSPEC SMPEG* SMPEG_new_rwops(SDL_RWops *src, SMPEG_Info* info, int sdl_audio);
  45.112 +
  45.113 +/* Get current information about an SMPEG object */
  45.114 +extern DECLSPEC void SMPEG_getinfo( SMPEG* mpeg, SMPEG_Info* info );
  45.115 +
  45.116 +/* Enable or disable audio playback in MPEG stream */
  45.117 +extern DECLSPEC void SMPEG_enableaudio( SMPEG* mpeg, int enable );
  45.118 +
  45.119 +/* Enable or disable video playback in MPEG stream */
  45.120 +extern DECLSPEC void SMPEG_enablevideo( SMPEG* mpeg, int enable );
  45.121 +
  45.122 +/* Delete an SMPEG object */
  45.123 +extern DECLSPEC void SMPEG_delete( SMPEG* mpeg );
  45.124 +
  45.125 +/* Get the current status of an SMPEG object */
  45.126 +extern DECLSPEC SMPEGstatus SMPEG_status( SMPEG* mpeg );
  45.127 +
  45.128 +/* Set the audio volume of an MPEG stream, in the range 0-100 */
  45.129 +extern DECLSPEC void SMPEG_setvolume( SMPEG* mpeg, int volume );
  45.130 +
  45.131 +/* Set the destination surface for MPEG video playback
  45.132 +   'surfLock' is a mutex used to synchronize access to 'dst', and can be NULL.
  45.133 +   'callback' is a function called when an area of 'dst' needs to be updated.
  45.134 +   If 'callback' is NULL, the default function (SDL_UpdateRect) will be used.
  45.135 +*/
  45.136 +extern DECLSPEC void SMPEG_setdisplay(SMPEG* mpeg, SDL_Surface* dst, SDL_mutex* surfLock,
  45.137 +                                            SMPEG_DisplayCallback callback);
  45.138 +
  45.139 +/* Set or clear looping play on an SMPEG object */
  45.140 +extern DECLSPEC void SMPEG_loop( SMPEG* mpeg, int repeat );
  45.141 +
  45.142 +/* Scale pixel display on an SMPEG object */
  45.143 +extern DECLSPEC void SMPEG_scaleXY( SMPEG* mpeg, int width, int height );
  45.144 +extern DECLSPEC void SMPEG_scale( SMPEG* mpeg, int scale );
  45.145 +/* */
  45.146 +#define SMPEG_double(mpeg, on) \
  45.147 +	SMPEG_scale(mpeg, (on) ? 2 : 1)
  45.148 +
  45.149 +/* Move the video display area within the destination surface */
  45.150 +extern DECLSPEC void SMPEG_move( SMPEG* mpeg, int x, int y );
  45.151 +
  45.152 +/* Set the region of the video to be shown */
  45.153 +extern DECLSPEC void SMPEG_setdisplayregion(SMPEG* mpeg, int x, int y, int w, int h);
  45.154 +
  45.155 +/* Play an SMPEG object */
  45.156 +extern DECLSPEC void SMPEG_play( SMPEG* mpeg );
  45.157 +
  45.158 +/* Pause/Resume playback of an SMPEG object */
  45.159 +extern DECLSPEC void SMPEG_pause( SMPEG* mpeg );
  45.160 +
  45.161 +/* Stop playback of an SMPEG object */
  45.162 +extern DECLSPEC void SMPEG_stop( SMPEG* mpeg );
  45.163 +
  45.164 +/* Rewind the play position of an SMPEG object to the beginning of the MPEG */
  45.165 +extern DECLSPEC void SMPEG_rewind( SMPEG* mpeg );
  45.166 +
  45.167 +/* Seek 'bytes' bytes in the MPEG stream */
  45.168 +extern DECLSPEC void SMPEG_seek( SMPEG* mpeg, int bytes);
  45.169 +
  45.170 +/* Skip 'seconds' seconds in the MPEG stream */
  45.171 +extern DECLSPEC void SMPEG_skip( SMPEG* mpeg, float seconds );
  45.172 +
  45.173 +/* Render a particular frame in the MPEG video
  45.174 +   API CHANGE: This function no longer takes a target surface and position.
  45.175 +               Use SMPEG_setdisplay() and SMPEG_move() to set this information.
  45.176 +*/
  45.177 +extern DECLSPEC void SMPEG_renderFrame( SMPEG* mpeg, int framenum );
  45.178 +
  45.179 +/* Render the last frame of an MPEG video */
  45.180 +extern DECLSPEC void SMPEG_renderFinal( SMPEG* mpeg, SDL_Surface* dst, int x, int y );
  45.181 +
  45.182 +/* Set video filter */
  45.183 +extern DECLSPEC SMPEG_Filter * SMPEG_filter( SMPEG* mpeg, SMPEG_Filter * filter );
  45.184 +
  45.185 +/* Return NULL if there is no error in the MPEG stream, or an error message
  45.186 +   if there was a fatal error in the MPEG stream for the SMPEG object.
  45.187 +*/
  45.188 +extern DECLSPEC char *SMPEG_error( SMPEG* mpeg );
  45.189 +
  45.190 +/* Exported callback function for audio playback.
  45.191 +   The function takes a buffer and the amount of data to fill, and returns
  45.192 +   the amount of data in bytes that was actually written.  This will be the
  45.193 +   amount requested unless the MPEG audio has finished.
  45.194 +*/
  45.195 +extern DECLSPEC int SMPEG_playAudio( SMPEG *mpeg, Uint8 *stream, int len );
  45.196 +
  45.197 +/* Wrapper for SMPEG_playAudio() that can be passed to SDL and SDL_mixer
  45.198 +*/
  45.199 +extern DECLSPEC void SMPEG_playAudioSDL( void *mpeg, Uint8 *stream, int len );
  45.200 +
  45.201 +/* Get the best SDL audio spec for the audio stream */
  45.202 +extern DECLSPEC int SMPEG_wantedSpec( SMPEG *mpeg, SDL_AudioSpec *wanted );
  45.203 +
  45.204 +/* Inform SMPEG of the actual SDL audio spec used for sound playback */
  45.205 +extern DECLSPEC void SMPEG_actualSpec( SMPEG *mpeg, SDL_AudioSpec *spec );
  45.206 +
  45.207 +#ifdef __cplusplus
  45.208 +}
  45.209 +#endif
  45.210 +#endif /* _SMPEG_H_ */
    46.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    46.2 +++ b/Xcode/smpeg/smpeg.framework/Versions/A/Resources/Info.plist	Sat Dec 31 10:27:48 2011 -0500
    46.3 @@ -0,0 +1,18 @@
    46.4 +<?xml version="1.0" encoding="UTF-8"?>
    46.5 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    46.6 +<plist version="1.0">
    46.7 +<dict>
    46.8 +	<key>CFBundleDevelopmentRegion</key>
    46.9 +	<string>English</string>
   46.10 +	<key>CFBundleExecutable</key>
   46.11 +	<string>smpeg</string>
   46.12 +	<key>CFBundleInfoDictionaryVersion</key>
   46.13 +	<string>6.0</string>
   46.14 +	<key>CFBundlePackageType</key>
   46.15 +	<string>FMWK</string>
   46.16 +	<key>CFBundleSignature</key>
   46.17 +	<string>????</string>
   46.18 +	<key>CFBundleVersion</key>
   46.19 +	<string>0.0.1d1</string>
   46.20 +</dict>
   46.21 +</plist>
    47.1 Binary file Xcode/smpeg/smpeg.framework/Versions/A/smpeg has changed
    48.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    48.2 +++ b/Xcode/smpeg/smpeg.framework/Versions/Current	Sat Dec 31 10:27:48 2011 -0500
    48.3 @@ -0,0 +1,1 @@
    48.4 +A
    48.5 \ No newline at end of file
    49.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    49.2 +++ b/Xcode/smpeg/smpeg.framework/smpeg	Sat Dec 31 10:27:48 2011 -0500
    49.3 @@ -0,0 +1,1 @@
    49.4 +Versions/Current/smpeg
    49.5 \ No newline at end of file
    50.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    50.2 +++ b/Xcode/vorbis/XcodeProjects/Ogg.xcodeproj/project.pbxproj	Sat Dec 31 10:27:48 2011 -0500
    50.3 @@ -0,0 +1,488 @@
    50.4 +// !$*UTF8*$!
    50.5 +{
    50.6 +	archiveVersion = 1;
    50.7 +	classes = {
    50.8 +	};
    50.9 +	objectVersion = 42;
   50.10 +	objects = {
   50.11 +
   50.12 +/* Begin PBXBuildFile section */
   50.13 +		00B7E332097EB24B00826121 /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = 730F236109181A8D00AB638C /* bitwise.c */; };
   50.14 +		00B7E333097EB24C00826121 /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 730F236209181A8D00AB638C /* framing.c */; };
   50.15 +		00B7E334097EB24E00826121 /* ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = 730F236509181ABE00AB638C /* ogg.h */; };
   50.16 +		00B7E335097EB24F00826121 /* Ogg_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = 32BAE0B70371A74B00C91783 /* Ogg_Prefix.pch */; };
   50.17 +		00B7E336097EB25000826121 /* os_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 730F236609181ABE00AB638C /* os_types.h */; };
   50.18 +		730F236309181A8D00AB638C /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = 730F236109181A8D00AB638C /* bitwise.c */; };
   50.19 +		730F236409181A8D00AB638C /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 730F236209181A8D00AB638C /* framing.c */; };
   50.20 +		730F236709181ABE00AB638C /* ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = 730F236509181ABE00AB638C /* ogg.h */; settings = {ATTRIBUTES = (Public, ); }; };
   50.21 +		730F236809181ABE00AB638C /* os_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 730F236609181ABE00AB638C /* os_types.h */; settings = {ATTRIBUTES = (Public, ); }; };
   50.22 +		8D07F2BE0486CC7A007CD1D0 /* Ogg_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = 32BAE0B70371A74B00C91783 /* Ogg_Prefix.pch */; };
   50.23 +		8D07F2C00486CC7A007CD1D0 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
   50.24 +/* End PBXBuildFile section */
   50.25 +
   50.26 +/* Begin PBXBuildStyle section */
   50.27 +		4F0BB7EC011F40E904CA0E50 /* Development */ = {
   50.28 +			isa = PBXBuildStyle;
   50.29 +			buildSettings = {
   50.30 +				COPY_PHASE_STRIP = NO;
   50.31 +				GCC_DYNAMIC_NO_PIC = NO;
   50.32 +				GCC_ENABLE_FIX_AND_CONTINUE = YES;
   50.33 +				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
   50.34 +				GCC_OPTIMIZATION_LEVEL = 0;
   50.35 +				ZERO_LINK = YES;
   50.36 +			};
   50.37 +			name = Development;
   50.38 +		};
   50.39 +		4F0BB7ED011F40E904CA0E50 /* Deployment */ = {
   50.40 +			isa = PBXBuildStyle;
   50.41 +			buildSettings = {
   50.42 +				COPY_PHASE_STRIP = YES;
   50.43 +				GCC_ENABLE_FIX_AND_CONTINUE = NO;
   50.44 +				ZERO_LINK = NO;
   50.45 +			};
   50.46 +			name = Deployment;
   50.47 +		};
   50.48 +/* End PBXBuildStyle section */
   50.49 +
   50.50 +/* Begin PBXFileReference section */
   50.51 +		00B7E323097EB19600826121 /* Info copy.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "Info copy.plist"; sourceTree = "<group>"; };
   50.52 +		00B7E32B097EB22000826121 /* libogg.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libogg.a; sourceTree = BUILT_PRODUCTS_DIR; };
   50.53 +		089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
   50.54 +		32BAE0B70371A74B00C91783 /* Ogg_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Ogg_Prefix.pch; sourceTree = "<group>"; };
   50.55 +		730F236109181A8D00AB638C /* bitwise.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = bitwise.c; path = ../src/bitwise.c; sourceTree = SOURCE_ROOT; };
   50.56 +		730F236209181A8D00AB638C /* framing.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = framing.c; path = ../src/framing.c; sourceTree = SOURCE_ROOT; };
   50.57 +		730F236509181ABE00AB638C /* ogg.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ogg.h; path = ../include/ogg/ogg.h; sourceTree = SOURCE_ROOT; };
   50.58 +		730F236609181ABE00AB638C /* os_types.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = os_types.h; path = ../include/ogg/os_types.h; sourceTree = SOURCE_ROOT; };
   50.59 +		8D07F2C70486CC7A007CD1D0 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
   50.60 +		8D07F2C80486CC7A007CD1D0 /* Ogg.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Ogg.framework; sourceTree = BUILT_PRODUCTS_DIR; };
   50.61 +/* End PBXFileReference section */
   50.62 +
   50.63 +/* Begin PBXFrameworksBuildPhase section */
   50.64 +		00B7E329097EB22000826121 /* Frameworks */ = {
   50.65 +			isa = PBXFrameworksBuildPhase;
   50.66 +			buildActionMask = 2147483647;
   50.67 +			files = (
   50.68 +			);
   50.69 +			runOnlyForDeploymentPostprocessing = 0;
   50.70 +		};
   50.71 +		8D07F2C30486CC7A007CD1D0 /* Frameworks */ = {
   50.72 +			isa = PBXFrameworksBuildPhase;
   50.73 +			buildActionMask = 2147483647;
   50.74 +			files = (
   50.75 +			);
   50.76 +			runOnlyForDeploymentPostprocessing = 0;
   50.77 +		};
   50.78 +/* End PBXFrameworksBuildPhase section */
   50.79 +
   50.80 +/* Begin PBXGroup section */
   50.81 +		034768DDFF38A45A11DB9C8B /* Products */ = {
   50.82 +			isa = PBXGroup;
   50.83 +			children = (
   50.84 +				8D07F2C80486CC7A007CD1D0 /* Ogg.framework */,
   50.85 +				00B7E32B097EB22000826121 /* libogg.a */,
   50.86 +			);
   50.87 +			name = Products;
   50.88 +			sourceTree = "<group>";
   50.89 +		};
   50.90 +		0867D691FE84028FC02AAC07 /* Ogg */ = {
   50.91 +			isa = PBXGroup;
   50.92 +			children = (
   50.93 +				730F235F09181A3E00AB638C /* Headers */,
   50.94 +				08FB77ACFE841707C02AAC07 /* Source */,
   50.95 +				089C1665FE841158C02AAC07 /* Resources */,
   50.96 +				0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */,
   50.97 +				034768DDFF38A45A11DB9C8B /* Products */,
   50.98 +			);
   50.99 +			name = Ogg;
  50.100 +			sourceTree = "<group>";
  50.101 +		};
  50.102 +		0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = {
  50.103 +			isa = PBXGroup;
  50.104 +			children = (
  50.105 +			);
  50.106 +			name = "External Frameworks and Libraries";
  50.107 +			sourceTree = "<group>";
  50.108 +		};
  50.109 +		089C1665FE841158C02AAC07 /* Resources */ = {
  50.110 +			isa = PBXGroup;
  50.111 +			children = (
  50.112 +				8D07F2C70486CC7A007CD1D0 /* Info.plist */,
  50.113 +				089C1666FE841158C02AAC07 /* InfoPlist.strings */,
  50.114 +				00B7E323097EB19600826121 /* Info copy.plist */,
  50.115 +			);
  50.116 +			name = Resources;
  50.117 +			sourceTree = "<group>";
  50.118 +		};
  50.119 +		08FB77ACFE841707C02AAC07 /* Source */ = {
  50.120 +			isa = PBXGroup;
  50.121 +			children = (
  50.122 +				730F236109181A8D00AB638C /* bitwise.c */,
  50.123 +				730F236209181A8D00AB638C /* framing.c */,
  50.124 +				32BAE0B70371A74B00C91783 /* Ogg_Prefix.pch */,
  50.125 +			);
  50.126 +			name = Source;
  50.127 +			sourceTree = "<group>";
  50.128 +		};
  50.129 +		730F235F09181A3E00AB638C /* Headers */ = {
  50.130 +			isa = PBXGroup;
  50.131 +			children = (
  50.132 +				730F236509181ABE00AB638C /* ogg.h */,
  50.133 +				730F236609181ABE00AB638C /* os_types.h */,
  50.134 +			);
  50.135 +			name = Headers;
  50.136 +			sourceTree = "<group>";
  50.137 +		};
  50.138 +/* End PBXGroup section */
  50.139 +
  50.140 +/* Begin PBXHeadersBuildPhase section */
  50.141 +		00B7E327097EB22000826121 /* Headers */ = {
  50.142 +			isa = PBXHeadersBuildPhase;
  50.143 +			buildActionMask = 2147483647;
  50.144 +			files = (
  50.145 +				00B7E334097EB24E00826121 /* ogg.h in Headers */,
  50.146 +				00B7E335097EB24F00826121 /* Ogg_Prefix.pch in Headers */,
  50.147 +				00B7E336097EB25000826121 /* os_types.h in Headers */,
  50.148 +			);
  50.149 +			runOnlyForDeploymentPostprocessing = 0;
  50.150 +		};
  50.151 +		8D07F2BD0486CC7A007CD1D0 /* Headers */ = {
  50.152 +			isa = PBXHeadersBuildPhase;
  50.153 +			buildActionMask = 2147483647;
  50.154 +			files = (
  50.155 +				8D07F2BE0486CC7A007CD1D0 /* Ogg_Prefix.pch in Headers */,
  50.156 +				730F236709181ABE00AB638C /* ogg.h in Headers */,
  50.157 +				730F236809181ABE00AB638C /* os_types.h in Headers */,
  50.158 +			);
  50.159 +			runOnlyForDeploymentPostprocessing = 0;
  50.160 +		};
  50.161 +/* End PBXHeadersBuildPhase section */
  50.162 +
  50.163 +/* Begin PBXNativeTarget section */
  50.164 +		00B7E32A097EB22000826121 /* libogg.a */ = {
  50.165 +			isa = PBXNativeTarget;
  50.166 +			buildConfigurationList = 00B7E32C097EB23E00826121 /* Build configuration list for PBXNativeTarget "libogg.a" */;
  50.167 +			buildPhases = (
  50.168 +				00B7E327097EB22000826121 /* Headers */,
  50.169 +				00B7E328097EB22000826121 /* Sources */,
  50.170 +				00B7E329097EB22000826121 /* Frameworks */,
  50.171 +			);
  50.172 +			buildRules = (
  50.173 +			);
  50.174 +			buildSettings = {
  50.175 +				GCC_ENABLE_FIX_AND_CONTINUE = YES;
  50.176 +				GCC_MODEL_TUNING = G5;
  50.177 +				INSTALL_PATH = /usr/local/lib;
  50.178 +				PREBINDING = NO;
  50.179 +				PRODUCT_NAME = libogg.a;
  50.180 +				ZERO_LINK = YES;
  50.181 +			};
  50.182 +			dependencies = (
  50.183 +			);
  50.184 +			name = libogg.a;
  50.185 +			productName = libogg.a;
  50.186 +			productReference = 00B7E32B097EB22000826121 /* libogg.a */;
  50.187 +			productType = "com.apple.product-type.library.static";
  50.188 +		};
  50.189 +		8D07F2BC0486CC7A007CD1D0 /* Ogg */ = {
  50.190 +			isa = PBXNativeTarget;
  50.191 +			buildConfigurationList = 730F235409181A3A00AB638C /* Build configuration list for PBXNativeTarget "Ogg" */;
  50.192 +			buildPhases = (
  50.193 +				8D07F2BD0486CC7A007CD1D0 /* Headers */,
  50.194 +				8D07F2BF0486CC7A007CD1D0 /* Resources */,
  50.195 +				8D07F2C10486CC7A007CD1D0 /* Sources */,
  50.196 +				8D07F2C30486CC7A007CD1D0 /* Frameworks */,
  50.197 +				8D07F2C50486CC7A007CD1D0 /* Rez */,
  50.198 +			);
  50.199 +			buildRules = (
  50.200 +			);
  50.201 +			buildSettings = {
  50.202 +				DYLIB_COMPATIBILITY_VERSION = 1;
  50.203 +				DYLIB_CURRENT_VERSION = 1;
  50.204 +				FRAMEWORK_VERSION = A;
  50.205 +				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
  50.206 +				GCC_PRECOMPILE_PREFIX_HEADER = YES;
  50.207 +				GCC_PREFIX_HEADER = Ogg_Prefix.pch;
  50.208 +				INFOPLIST_FILE = Info.plist;
  50.209 +				INSTALL_PATH = "$(HOME)/Library/Frameworks";
  50.210 +				LIBRARY_STYLE = DYNAMIC;
  50.211 +				PRODUCT_NAME = Ogg;
  50.212 +				WRAPPER_EXTENSION = framework;
  50.213 +			};
  50.214 +			dependencies = (
  50.215 +			);
  50.216 +			name = Ogg;
  50.217 +			productInstallPath = "$(HOME)/Library/Frameworks";
  50.218 +			productName = Ogg;
  50.219 +			productReference = 8D07F2C80486CC7A007CD1D0 /* Ogg.framework */;
  50.220 +			productType = "com.apple.product-type.framework";
  50.221 +		};
  50.222 +/* End PBXNativeTarget section */
  50.223 +
  50.224 +/* Begin PBXProject section */
  50.225 +		0867D690FE84028FC02AAC07 /* Project object */ = {
  50.226 +			isa = PBXProject;
  50.227 +			buildConfigurationList = 730F235809181A3A00AB638C /* Build configuration list for PBXProject "Ogg" */;
  50.228 +			buildSettings = {
  50.229 +			};
  50.230 +			buildStyles = (
  50.231 +				4F0BB7EC011F40E904CA0E50 /* Development */,
  50.232 +				4F0BB7ED011F40E904CA0E50 /* Deployment */,
  50.233 +			);
  50.234 +			hasScannedForEncodings = 1;
  50.235 +			mainGroup = 0867D691FE84028FC02AAC07 /* Ogg */;
  50.236 +			productRefGroup = 034768DDFF38A45A11DB9C8B /* Products */;
  50.237 +			projectDirPath = "";
  50.238 +			targets = (
  50.239 +				8D07F2BC0486CC7A007CD1D0 /* Ogg */,
  50.240 +				00B7E32A097EB22000826121 /* libogg.a */,
  50.241 +			);
  50.242 +		};
  50.243 +/* End PBXProject section */
  50.244 +
  50.245 +/* Begin PBXResourcesBuildPhase section */
  50.246 +		8D07F2BF0486CC7A007CD1D0 /* Resources */ = {
  50.247 +			isa = PBXResourcesBuildPhase;
  50.248 +			buildActionMask = 2147483647;
  50.249 +			files = (
  50.250 +				8D07F2C00486CC7A007CD1D0 /* InfoPlist.strings in Resources */,
  50.251 +			);
  50.252 +			runOnlyForDeploymentPostprocessing = 0;
  50.253 +		};
  50.254 +/* End PBXResourcesBuildPhase section */
  50.255 +
  50.256 +/* Begin PBXRezBuildPhase section */
  50.257 +		8D07F2C50486CC7A007CD1D0 /* Rez */ = {
  50.258 +			isa = PBXRezBuildPhase;
  50.259 +			buildActionMask = 2147483647;
  50.260 +			files = (
  50.261 +			);
  50.262 +			runOnlyForDeploymentPostprocessing = 0;
  50.263 +		};
  50.264 +/* End PBXRezBuildPhase section */
  50.265 +
  50.266 +/* Begin PBXSourcesBuildPhase section */
  50.267 +		00B7E328097EB22000826121 /* Sources */ = {
  50.268 +			isa = PBXSourcesBuildPhase;
  50.269 +			buildActionMask = 2147483647;
  50.270 +			files = (
  50.271 +				00B7E332097EB24B00826121 /* bitwise.c in Sources */,
  50.272 +				00B7E333097EB24C00826121 /* framing.c in Sources */,
  50.273 +			);
  50.274 +			runOnlyForDeploymentPostprocessing = 0;
  50.275 +		};
  50.276 +		8D07F2C10486CC7A007CD1D0 /* Sources */ = {
  50.277 +			isa = PBXSourcesBuildPhase;
  50.278 +			buildActionMask = 2147483647;
  50.279 +			files = (
  50.280 +				730F236309181A8D00AB638C /* bitwise.c in Sources */,
  50.281 +				730F236409181A8D00AB638C /* framing.c in Sources */,
  50.282 +			);
  50.283 +			runOnlyForDeploymentPostprocessing = 0;
  50.284 +		};
  50.285 +/* End PBXSourcesBuildPhase section */
  50.286 +
  50.287 +/* Begin PBXVariantGroup section */
  50.288 +		089C1666FE841158C02AAC07 /* InfoPlist.strings */ = {
  50.289 +			isa = PBXVariantGroup;
  50.290 +			children = (
  50.291 +				089C1667FE841158C02AAC07 /* English */,
  50.292 +			);
  50.293 +			name = InfoPlist.strings;
  50.294 +			sourceTree = "<group>";
  50.295 +		};
  50.296 +/* End PBXVariantGroup section */
  50.297 +
  50.298 +/* Begin XCBuildConfiguration section */
  50.299 +		00B7E32D097EB23E00826121 /* Development */ = {
  50.300 +			isa = XCBuildConfiguration;
  50.301 +			buildSettings = {
  50.302 +				COPY_PHASE_STRIP = NO;
  50.303 +				GCC_ALTIVEC_EXTENSIONS = YES;
  50.304 +				GCC_DYNAMIC_NO_PIC = NO;
  50.305 +				GCC_ENABLE_FIX_AND_CONTINUE = YES;
  50.306 +				GCC_ENABLE_SSE3_EXTENSIONS = YES;
  50.307 +				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
  50.308 +				GCC_MODEL_TUNING = G5;
  50.309 +				GCC_OPTIMIZATION_LEVEL = 0;
  50.310 +				INSTALL_PATH = /usr/local/lib;
  50.311 +				PREBINDING = NO;
  50.312 +				PRODUCT_NAME = ogg;
  50.313 +				ZERO_LINK = YES;
  50.314 +			};
  50.315 +			name = Development;
  50.316 +		};
  50.317 +		00B7E32E097EB23E00826121 /* Deployment */ = {
  50.318 +			isa = XCBuildConfiguration;
  50.319 +			buildSettings = {
  50.320 +				COPY_PHASE_STRIP = YES;
  50.321 +				GCC_ALTIVEC_EXTENSIONS = YES;
  50.322 +				GCC_ENABLE_FIX_AND_CONTINUE = NO;
  50.323 +				GCC_ENABLE_SSE3_EXTENSIONS = YES;
  50.324 +				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
  50.325 +				GCC_MODEL_TUNING = G5;
  50.326 +				INSTALL_PATH = /usr/local/lib;
  50.327 +				PREBINDING = NO;
  50.328 +				PRODUCT_NAME = ogg;
  50.329 +				ZERO_LINK = NO;
  50.330 +			};
  50.331 +			name = Deployment;
  50.332 +		};
  50.333 +		00B7E32F097EB23E00826121 /* Default */ = {
  50.334 +			isa = XCBuildConfiguration;
  50.335 +			buildSettings = {
  50.336 +				GCC_ALTIVEC_EXTENSIONS = YES;
  50.337 +				GCC_ENABLE_FIX_AND_CONTINUE = YES;
  50.338 +				GCC_ENABLE_SSE3_EXTENSIONS = YES;
  50.339 +				GCC_MODEL_TUNING = G5;
  50.340 +				INSTALL_PATH = /usr/local/lib;
  50.341 +				PREBINDING = NO;
  50.342 +				PRODUCT_NAME = ogg;
  50.343 +				ZERO_LINK = YES;
  50.344 +			};
  50.345 +			name = Default;
  50.346 +		};
  50.347 +		730F235509181A3A00AB638C /* Development */ = {
  50.348 +			isa = XCBuildConfiguration;
  50.349 +			buildSettings = {
  50.350 +				COPY_PHASE_STRIP = NO;
  50.351 +				DYLIB_COMPATIBILITY_VERSION = 1;
  50.352 +				DYLIB_CURRENT_VERSION = 1;
  50.353 +				FRAMEWORK_VERSION = A;
  50.354 +				GCC_DYNAMIC_NO_PIC = NO;
  50.355 +				GCC_ENABLE_FIX_AND_CONTINUE = YES;
  50.356 +				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
  50.357 +				GCC_OPTIMIZATION_LEVEL = 0;
  50.358 +				GCC_PRECOMPILE_PREFIX_HEADER = YES;
  50.359 +				GCC_PREFIX_HEADER = Ogg_Prefix.pch;
  50.360 +				GCC_PREPROCESSOR_DEFINITIONS = __MACOSX__;
  50.361 +				INFOPLIST_FILE = Info.plist;
  50.362 +				INSTALL_PATH = /Library/Frameworks;
  50.363 +				LIBRARY_STYLE = DYNAMIC;
  50.364 +				MACH_O_TYPE = mh_dylib;
  50.365 +				PRODUCT_NAME = Ogg;
  50.366 +				WRAPPER_EXTENSION = framework;
  50.367 +				ZERO_LINK = YES;
  50.368 +			};
  50.369 +			name = Development;
  50.370 +		};
  50.371 +		730F235609181A3A00AB638C /* Deployment */ = {
  50.372 +			isa = XCBuildConfiguration;
  50.373 +			buildSettings = {
  50.374 +				COPY_PHASE_STRIP = YES;
  50.375 +				DYLIB_COMPATIBILITY_VERSION = 1;
  50.376 +				DYLIB_CURRENT_VERSION = 1;
  50.377 +				FRAMEWORK_VERSION = A;
  50.378 +				GCC_ENABLE_FIX_AND_CONTINUE = NO;
  50.379 +				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
  50.380 +				GCC_PRECOMPILE_PREFIX_HEADER = YES;
  50.381 +				GCC_PREFIX_HEADER = Ogg_Prefix.pch;
  50.382 +				GCC_PREPROCESSOR_DEFINITIONS = __MACOSX__;
  50.383 +				INFOPLIST_FILE = Info.plist;
  50.384 +				INSTALL_PATH = /Library/Frameworks;
  50.385 +				LIBRARY_STYLE = DYNAMIC;
  50.386 +				MACH_O_TYPE = mh_dylib;
  50.387 +				PRODUCT_NAME = Ogg;
  50.388 +				WRAPPER_EXTENSION = framework;
  50.389 +				ZERO_LINK = NO;
  50.390 +			};
  50.391 +			name = Deployment;
  50.392 +		};
  50.393 +		730F235709181A3A00AB638C /* Default */ = {
  50.394 +			isa = XCBuildConfiguration;
  50.395 +			buildSettings = {
  50.396 +				DYLIB_COMPATIBILITY_VERSION = 1;
  50.397 +				DYLIB_CURRENT_VERSION = 1;
  50.398 +				FRAMEWORK_VERSION = A;
  50.399 +				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
  50.400 +				GCC_PRECOMPILE_PREFIX_HEADER = YES;
  50.401 +				GCC_PREFIX_HEADER = Ogg_Prefix.pch;
  50.402 +				GCC_PREPROCESSOR_DEFINITIONS = __MACOSX__;
  50.403 +				INFOPLIST_FILE = Info.plist;
  50.404 +				INSTALL_PATH = /Library/Frameworks;
  50.405 +				LIBRARY_STYLE = DYNAMIC;
  50.406 +				MACH_O_TYPE = mh_dylib;
  50.407 +				PRODUCT_NAME = Ogg;
  50.408 +				WRAPPER_EXTENSION = framework;
  50.409 +			};
  50.410 +			name = Default;
  50.411 +		};
  50.412 +		730F235909181A3A00AB638C /* Development */ = {
  50.413 +			isa = XCBuildConfiguration;
  50.414 +			buildSettings = {
  50.415 +				GCC_AUTO_VECTORIZATION = YES;
  50.416 +				GCC_PREPROCESSOR_DEFINITIONS = __MACOSX__;
  50.417 +				GCC_VERSION_i386 = 4.0;
  50.418 +				GCC_VERSION_ppc = 3.3;
  50.419 +				MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
  50.420 +				MACOSX_DEPLOYMENT_TARGET_ppc = 10.2;
  50.421 +				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
  50.422 +			};
  50.423 +			name = Development;
  50.424 +		};
  50.425 +		730F235A09181A3A00AB638C /* Deployment */ = {
  50.426 +			isa = XCBuildConfiguration;
  50.427 +			buildSettings = {
  50.428 +				ARCHS = (
  50.429 +					ppc,
  50.430 +					i386,
  50.431 +				);
  50.432 +				GCC_AUTO_VECTORIZATION = YES;
  50.433 +				GCC_PREPROCESSOR_DEFINITIONS = __MACOSX__;
  50.434 +				GCC_VERSION_i386 = 4.0;
  50.435 +				GCC_VERSION_ppc = 3.3;
  50.436 +				MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
  50.437 +				MACOSX_DEPLOYMENT_TARGET_ppc = 10.2;
  50.438 +				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
  50.439 +			};
  50.440 +			name = Deployment;
  50.441 +		};
  50.442 +		730F235B09181A3A00AB638C /* Default */ = {
  50.443 +			isa = XCBuildConfiguration;
  50.444 +			buildSettings = {
  50.445 +				GCC_AUTO_VECTORIZATION = YES;
  50.446 +				GCC_PREPROCESSOR_DEFINITIONS = __MACOSX__;
  50.447 +				GCC_VERSION_i386 = 4.0;
  50.448 +				GCC_VERSION_ppc = 3.3;
  50.449 +				MACOSX_DEPLOYMENT_TARGET_i386 = 10.4;
  50.450 +				MACOSX_DEPLOYMENT_TARGET_ppc = 10.2;
  50.451 +				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
  50.452 +			};
  50.453 +			name = Default;
  50.454 +		};
  50.455 +/* End XCBuildConfiguration section */
  50.456 +
  50.457 +/* Begin XCConfigurationList section */
  50.458 +		00B7E32C097EB23E00826121 /* Build configuration list for PBXNativeTarget "libogg.a" */ = {
  50.459 +			isa = XCConfigurationList;
  50.460 +			buildConfigurations = (
  50.461 +				00B7E32D097EB23E00826121 /* Development */,
  50.462 +				00B7E32E097EB23E00826121 /* Deployment */,
  50.463 +				00B7E32F097EB23E00826121 /* Default */,
  50.464 +			);
  50.465 +			defaultConfigurationIsVisible = 0;
  50.466 +			defaultConfigurationName = Default;
  50.467 +		};
  50.468 +		730F235409181A3A00AB638C /* Build configuration list for PBXNativeTarget "Ogg" */ = {
  50.469 +			isa = XCConfigurationList;
  50.470 +			buildConfigurations = (
  50.471 +				730F235509181A3A00AB638C /* Development */,
  50.472 +				730F235609181A3A00AB638C /* Deployment */,
  50.473 +				730F235709181A3A00AB638C /* Default */,
  50.474 +			);
  50.475 +			defaultConfigurationIsVisible = 0;
  50.476 +			defaultConfigurationName = Default;
  50.477 +		};
  50.478 +		730F235809181A3A00AB638C /* Build configuration list for PBXProject "Ogg" */ = {
  50.479 +			isa = XCConfigurationList;
  50.480 +			buildConfigurations = (
  50.481 +				730F235909181A3A00AB638C /* Development */,
  50.482 +				730F235A09181A3A00AB638C /* Deployment */,
  50.483 +				730F235B09181A3A00AB638C /* Default */,
  50.484 +			);
  50.485 +			defaultConfigurationIsVisible = 0;
  50.486 +			defaultConfigurationName = Default;
  50.487 +		};
  50.488 +/* End XCConfigurationList section */
  50.489 +	};
  50.490 +	rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
  50.491 +}
    51.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    51.2 +++ b/Xcode/vorbis/XcodeProjects/README.txt	Sat Dec 31 10:27:48 2011 -0500
    51.3 @@ -0,0 +1,12 @@
    51.4 +These are modified projects of the ones that come with the official Ogg/Vorbis distribution. They have been altered to allow the building of static libraries and to build Universal Binaries that are compatible with at least OS X 10.2.
    51.5 +
    51.6 +To use these, you might try copying over the Xcode projects that ship with the official distribution with these modified versions.
    51.7 +
    51.8 +These projects were based on 
    51.9 +libogg-1.1.3
   51.10 +libvorbis-1.1.2
   51.11 +
   51.12 +Eric Wing
   51.13 +
   51.14 +
   51.15 +
    52.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    52.2 +++ b/Xcode/vorbis/XcodeProjects/Vorbis.xcodeproj/project.pbxproj	Sat Dec 31 10:27:48 2011 -0500
    52.3 @@ -0,0 +1,1149 @@
    52.4 +// !$*UTF8*$!
    52.5 +{
    52.6 +	archiveVersion = 1;
    52.7 +	classes = {
    52.8 +	};
    52.9 +	objectVersion = 42;
   52.10 +	objects = {
   52.11 +
   52.12 +/* Begin PBXBuildFile section */
   52.13 +		00B7E351097EB37F00826121 /* analysis.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F60A03389C830112CE8F /* analysis.c */; };
   52.14 +		00B7E352097EB38000826121 /* backends.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F60B03389C830112CE8F /* backends.h */; };
   52.15 +		00B7E353097EB38100826121 /* bitrate.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F60D03389C830112CE8F /* bitrate.c */; };
   52.16 +		00B7E354097EB38200826121 /* bitrate.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F60E03389C830112CE8F /* bitrate.h */; };
   52.17 +		00B7E355097EB38300826121 /* block.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F60F03389C830112CE8F /* block.c */; };
   52.18 +		00B7E356097EB38500826121 /* codebook.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62403389C830112CE8F /* codebook.h */; };
   52.19 +		00B7E357097EB38600826121 /* codebook.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62303389C830112CE8F /* codebook.c */; };
   52.20 +		00B7E358097EB38700826121 /* codec.h in Headers */ = {isa = PBXBuildFile; fileRef = F58520B90191D12B01A802FE /* codec.h */; };
   52.21 +		00B7E359097EB38800826121 /* codec_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62503389C830112CE8F /* codec_internal.h */; };
   52.22 +		00B7E35A097EB38900826121 /* envelope.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62603389C830112CE8F /* envelope.c */; };
   52.23 +		00B7E35B097EB38A00826121 /* envelope.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62703389C830112CE8F /* envelope.h */; };
   52.24 +		00B7E35C097EB38B00826121 /* floor0.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62803389C830112CE8F /* floor0.c */; };
   52.25 +		00B7E35D097EB38C00826121 /* floor1.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62903389C830112CE8F /* floor1.c */; };
   52.26 +		00B7E35E097EB38D00826121 /* floor_all.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63E03389C830112CE8F /* floor_all.h */; };
   52.27 +		00B7E35F097EB38E00826121 /* floor_books.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F61903389C830112CE8F /* floor_books.h */; };
   52.28 +		00B7E360097EB38F00826121 /* highlevel.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62A03389C830112CE8F /* highlevel.h */; };
   52.29 +		00B7E361097EB39100826121 /* info.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62B03389C830112CE8F /* info.c */; };
   52.30 +		00B7E362097EB39600826121 /* lookup.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62C03389C830112CE8F /* lookup.c */; };
   52.31 +		00B7E363097EB39700826121 /* lookup.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62D03389C830112CE8F /* lookup.h */; };
   52.32 +		00B7E364097EB39700826121 /* lookup_data.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62E03389C830112CE8F /* lookup_data.h */; };
   52.33 +		00B7E365097EB39800826121 /* lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F63003389C830112CE8F /* lpc.c */; };
   52.34 +		00B7E366097EB39900826121 /* lpc.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63103389C830112CE8F /* lpc.h */; };
   52.35 +		00B7E367097EB39A00826121 /* lsp.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F63203389C830112CE8F /* lsp.c */; };
   52.36 +		00B7E368097EB39A00826121 /* lsp.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63303389C830112CE8F /* lsp.h */; };
   52.37 +		00B7E369097EB39B00826121 /* mapping0.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F63603389C830112CE8F /* mapping0.c */; };
   52.38 +		00B7E36A097EB39C00826121 /* masking.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63703389C830112CE8F /* masking.h */; };
   52.39 +		00B7E36B097EB39D00826121 /* mdct.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F63803389C830112CE8F /* mdct.c */; };
   52.40 +		00B7E36C097EB39D00826121 /* mdct.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63903389C830112CE8F /* mdct.h */; };
   52.41 +		00B7E36F097EB3A400826121 /* os.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65103389C830112CE8F /* os.h */; };
   52.42 +		00B7E370097EB3A500826121 /* psy.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65303389C830112CE8F /* psy.h */; };
   52.43 +		00B7E371097EB3A600826121 /* psy.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65203389C830112CE8F /* psy.c */; };
   52.44 +		00B7E372097EB3A700826121 /* psych_11.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64103389C830112CE8F /* psych_11.h */; };
   52.45 +		00B7E373097EB3A800826121 /* psych_16.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64203389C830112CE8F /* psych_16.h */; };
   52.46 +		00B7E374097EB3A900826121 /* psych_44.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64303389C830112CE8F /* psych_44.h */; };
   52.47 +		00B7E375097EB3A900826121 /* psych_8.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64403389C830112CE8F /* psych_8.h */; };
   52.48 +		00B7E377097EB3AB00826121 /* registry.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65603389C830112CE8F /* registry.h */; };
   52.49 +		00B7E378097EB3AD00826121 /* registry.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65503389C830112CE8F /* registry.c */; };
   52.50 +		00B7E379097EB3AE00826121 /* res0.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65703389C830112CE8F /* res0.c */; };
   52.51 +		00B7E37A097EB3AE00826121 /* res_books_stereo.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F61603389C830112CE8F /* res_books_stereo.h */; };
   52.52 +		00B7E37B097EB3AF00826121 /* res_books_uncoupled.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62203389C830112CE8F /* res_books_uncoupled.h */; };
   52.53 +		00B7E37C097EB3AF00826121 /* residue_16.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64503389C830112CE8F /* residue_16.h */; };
   52.54 +		00B7E37D097EB3B100826121 /* residue_44.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64603389C830112CE8F /* residue_44.h */; };
   52.55 +		00B7E37E097EB3B100826121 /* residue_44u.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64703389C830112CE8F /* residue_44u.h */; };
   52.56 +		00B7E37F097EB3B200826121 /* residue_8.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64803389C830112CE8F /* residue_8.h */; };
   52.57 +		00B7E380097EB3B300826121 /* scales.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65803389C830112CE8F /* scales.h */; };
   52.58 +		00B7E381097EB3B300826121 /* setup_11.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64903389C830112CE8F /* setup_11.h */; };
   52.59 +		00B7E382097EB3BB00826121 /* setup_22.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64B03389C830112CE8F /* setup_22.h */; };
   52.60 +		00B7E383097EB3BB00826121 /* setup_16.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64A03389C830112CE8F /* setup_16.h */; };
   52.61 +		00B7E384097EB3BC00826121 /* setup_32.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64C03389C830112CE8F /* setup_32.h */; };
   52.62 +		00B7E385097EB3BD00826121 /* setup_44.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64D03389C830112CE8F /* setup_44.h */; };
   52.63 +		00B7E386097EB3BD00826121 /* setup_44u.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64E03389C830112CE8F /* setup_44u.h */; };
   52.64 +		00B7E387097EB3BE00826121 /* setup_8.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64F03389C830112CE8F /* setup_8.h */; };
   52.65 +		00B7E388097EB3BF00826121 /* setup_X.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65003389C830112CE8F /* setup_X.h */; };
   52.66 +		00B7E389097EB3C000826121 /* sharedbook.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65903389C830112CE8F /* sharedbook.c */; };
   52.67 +		00B7E38A097EB3C000826121 /* smallft.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65A03389C830112CE8F /* smallft.c */; };
   52.68 +		00B7E38B097EB3C100826121 /* smallft.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65B03389C830112CE8F /* smallft.h */; };
   52.69 +		00B7E38C097EB3C300826121 /* synthesis.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65C03389C830112CE8F /* synthesis.c */; };
   52.70 +		00B7E392097EB3CD00826121 /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F66003389C830112CE8F /* window.c */; };
   52.71 +		00B7E393097EB3CE00826121 /* window.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F66103389C830112CE8F /* window.h */; };
   52.72 +		00B7E398097EB4C500826121 /* misc.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63B03389C830112CE8F /* misc.h */; };
   52.73 +		00B7E417097EBFCF00826121 /* codec.h in Headers */ = {isa = PBXBuildFile; fileRef = F58520B90191D12B01A802FE /* codec.h */; };
   52.74 +		00B7E418097EBFD300826121 /* vorbisfile.h in Headers */ = {isa = PBXBuildFile; fileRef = F58520BB0191D12B01A802FE /* vorbisfile.h */; };
   52.75 +		00B7E419097EBFD400826121 /* vorbisfile.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65F03389C830112CE8F /* vorbisfile.c */; };
   52.76 +		00B7E41A097EBFD900826121 /* vorbisenc.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65E03389C830112CE8F /* vorbisenc.c */; };
   52.77 +		00B7E41B097EBFDA00826121 /* vorbisenc.h in Headers */ = {isa = PBXBuildFile; fileRef = F58520BA0191D12B01A802FE /* vorbisenc.h */; };
   52.78 +		00B7E41C097EBFDE00826121 /* codec.h in Headers */ = {isa = PBXBuildFile; fileRef = F58520B90191D12B01A802FE /* codec.h */; };
   52.79 +		730F23A3091827B100AB638C /* codec.h in Headers */ = {isa = PBXBuildFile; fileRef = F58520B90191D12B01A802FE /* codec.h */; settings = {ATTRIBUTES = (Public, ); }; };
   52.80 +		730F23A4091827B100AB638C /* vorbisenc.h in Headers */ = {isa = PBXBuildFile; fileRef = F58520BA0191D12B01A802FE /* vorbisenc.h */; settings = {ATTRIBUTES = (Public, ); }; };
   52.81 +		730F23A5091827B100AB638C /* vorbisfile.h in Headers */ = {isa = PBXBuildFile; fileRef = F58520BB0191D12B01A802FE /* vorbisfile.h */; settings = {ATTRIBUTES = (Public, ); }; };
   52.82 +		730F23A6091827B100AB638C /* backends.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F60B03389C830112CE8F /* backends.h */; };
   52.83 +		730F23A7091827B100AB638C /* bitrate.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F60E03389C830112CE8F /* bitrate.h */; };
   52.84 +		730F23A8091827B100AB638C /* res_books_stereo.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F61603389C830112CE8F /* res_books_stereo.h */; };
   52.85 +		730F23A9091827B100AB638C /* floor_books.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F61903389C830112CE8F /* floor_books.h */; };
   52.86 +		730F23AA091827B100AB638C /* res_books_uncoupled.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62203389C830112CE8F /* res_books_uncoupled.h */; };
   52.87 +		730F23AB091827B100AB638C /* codebook.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62403389C830112CE8F /* codebook.h */; };
   52.88 +		730F23AC091827B100AB638C /* codec_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62503389C830112CE8F /* codec_internal.h */; };
   52.89 +		730F23AD091827B100AB638C /* envelope.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62703389C830112CE8F /* envelope.h */; };
   52.90 +		730F23AE091827B100AB638C /* highlevel.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62A03389C830112CE8F /* highlevel.h */; };
   52.91 +		730F23AF091827B100AB638C /* lookup.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62D03389C830112CE8F /* lookup.h */; };
   52.92 +		730F23B0091827B100AB638C /* lookup_data.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F62E03389C830112CE8F /* lookup_data.h */; };
   52.93 +		730F23B1091827B100AB638C /* lpc.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63103389C830112CE8F /* lpc.h */; };
   52.94 +		730F23B2091827B100AB638C /* lsp.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63303389C830112CE8F /* lsp.h */; };
   52.95 +		730F23B3091827B100AB638C /* masking.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63703389C830112CE8F /* masking.h */; };
   52.96 +		730F23B4091827B100AB638C /* mdct.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63903389C830112CE8F /* mdct.h */; };
   52.97 +		730F23B5091827B100AB638C /* misc.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63B03389C830112CE8F /* misc.h */; };
   52.98 +		730F23B6091827B100AB638C /* floor_all.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F63E03389C830112CE8F /* floor_all.h */; };
   52.99 +		730F23B7091827B100AB638C /* psych_11.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64103389C830112CE8F /* psych_11.h */; };
  52.100 +		730F23B8091827B100AB638C /* psych_16.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64203389C830112CE8F /* psych_16.h */; };
  52.101 +		730F23B9091827B100AB638C /* psych_44.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64303389C830112CE8F /* psych_44.h */; };
  52.102 +		730F23BA091827B100AB638C /* psych_8.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64403389C830112CE8F /* psych_8.h */; };
  52.103 +		730F23BB091827B100AB638C /* residue_16.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64503389C830112CE8F /* residue_16.h */; };
  52.104 +		730F23BC091827B100AB638C /* residue_44.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64603389C830112CE8F /* residue_44.h */; };
  52.105 +		730F23BD091827B100AB638C /* residue_44u.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64703389C830112CE8F /* residue_44u.h */; };
  52.106 +		730F23BE091827B100AB638C /* residue_8.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64803389C830112CE8F /* residue_8.h */; };
  52.107 +		730F23BF091827B100AB638C /* setup_11.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64903389C830112CE8F /* setup_11.h */; };
  52.108 +		730F23C0091827B100AB638C /* setup_16.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64A03389C830112CE8F /* setup_16.h */; };
  52.109 +		730F23C1091827B100AB638C /* setup_22.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64B03389C830112CE8F /* setup_22.h */; };
  52.110 +		730F23C2091827B100AB638C /* setup_32.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64C03389C830112CE8F /* setup_32.h */; };
  52.111 +		730F23C3091827B100AB638C /* setup_44.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64D03389C830112CE8F /* setup_44.h */; };
  52.112 +		730F23C4091827B100AB638C /* setup_44u.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64E03389C830112CE8F /* setup_44u.h */; };
  52.113 +		730F23C5091827B100AB638C /* setup_8.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F64F03389C830112CE8F /* setup_8.h */; };
  52.114 +		730F23C6091827B100AB638C /* setup_X.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65003389C830112CE8F /* setup_X.h */; };
  52.115 +		730F23C7091827B100AB638C /* os.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65103389C830112CE8F /* os.h */; };
  52.116 +		730F23C8091827B100AB638C /* psy.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65303389C830112CE8F /* psy.h */; };
  52.117 +		730F23C9091827B100AB638C /* registry.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65603389C830112CE8F /* registry.h */; };
  52.118 +		730F23CA091827B100AB638C /* scales.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65803389C830112CE8F /* scales.h */; };
  52.119 +		730F23CB091827B100AB638C /* smallft.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F65B03389C830112CE8F /* smallft.h */; };
  52.120 +		730F23CC091827B100AB638C /* window.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D8F66103389C830112CE8F /* window.h */; };
  52.121 +		730F23CE091827B100AB638C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
  52.122 +		730F23D3091827B100AB638C /* analysis.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F60A03389C830112CE8F /* analysis.c */; };
  52.123 +		730F23D4091827B100AB638C /* bitrate.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F60D03389C830112CE8F /* bitrate.c */; };
  52.124 +		730F23D5091827B100AB638C /* block.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F60F03389C830112CE8F /* block.c */; };
  52.125 +		730F23D6091827B100AB638C /* codebook.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62303389C830112CE8F /* codebook.c */; };
  52.126 +		730F23D7091827B100AB638C /* envelope.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62603389C830112CE8F /* envelope.c */; };
  52.127 +		730F23D8091827B100AB638C /* floor0.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62803389C830112CE8F /* floor0.c */; };
  52.128 +		730F23D9091827B100AB638C /* floor1.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62903389C830112CE8F /* floor1.c */; };
  52.129 +		730F23DA091827B100AB638C /* info.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62B03389C830112CE8F /* info.c */; };
  52.130 +		730F23DB091827B100AB638C /* lookup.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F62C03389C830112CE8F /* lookup.c */; };
  52.131 +		730F23DC091827B100AB638C /* lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F63003389C830112CE8F /* lpc.c */; };
  52.132 +		730F23DD091827B100AB638C /* lsp.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F63203389C830112CE8F /* lsp.c */; };
  52.133 +		730F23DE091827B100AB638C /* mapping0.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F63603389C830112CE8F /* mapping0.c */; };
  52.134 +		730F23DF091827B100AB638C /* mdct.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F63803389C830112CE8F /* mdct.c */; };
  52.135 +		730F23E0091827B100AB638C /* psy.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65203389C830112CE8F /* psy.c */; };
  52.136 +		730F23E1091827B100AB638C /* registry.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65503389C830112CE8F /* registry.c */; };
  52.137 +		730F23E2091827B100AB638C /* res0.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65703389C830112CE8F /* res0.c */; };
  52.138 +		730F23E3091827B100AB638C /* sharedbook.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65903389C830112CE8F /* sharedbook.c */; };
  52.139 +		730F23E4091827B100AB638C /* smallft.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65A03389C830112CE8F /* smallft.c */; };
  52.140 +		730F23E5091827B100AB638C /* synthesis.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65C03389C830112CE8F /* synthesis.c */; };
  52.141 +		730F23E6091827B100AB638C /* vorbisenc.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65E03389C830112CE8F /* vorbisenc.c */; };
  52.142 +		730F23E7091827B100AB638C /* vorbisfile.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F65F03389C830112CE8F /* vorbisfile.c */; };
  52.143 +		730F23E8091827B100AB638C /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F66003389C830112CE8F /* window.c */; };
  52.144 +		730F23FB0918281100AB638C /* Ogg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 730F23FA0918281100AB638C /* Ogg.framework */; };
  52.145 +/* End PBXBuildFile section */
  52.146 +
  52.147 +/* Begin PBXBuildStyle section */
  52.148 +		014CEA440018CDF011CA2923 /* Development */ = {
  52.149 +			isa = PBXBuildStyle;
  52.150 +			buildSettings = {
  52.151 +				COPY_PHASE_STRIP = NO;
  52.152 +				GCC_DYNAMIC_NO_PIC = NO;
  52.153 +				GCC_ENABLE_FIX_AND_CONTINUE = YES;
  52.154 +				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
  52.155 +				GCC_OPTIMIZATION_LEVEL = 0;
  52.156 +				OPTIMIZATION_CFLAGS = "-O0";
  52.157 +				ZERO_LINK = YES;
  52.158 +			};
  52.159 +			name = Development;
  52.160 +		};
  52.161 +		014CEA450018CDF011CA2923 /* Deployment */ = {
  52.162 +			isa = PBXBuildStyle;
  52.163 +			buildSettings = {
  52.164 +				COPY_PHASE_STRIP = YES;
  52.165 +				GCC_ENABLE_FIX_AND_CONTINUE = NO;
  52.166 +				ZERO_LINK = NO;
  52.167 +			};
  52.168 +			name = Deployment;
  52.169 +		};
  52.170 +/* End PBXBuildStyle section */
  52.171 +
  52.172 +/* Begin PBXFileReference section */
  52.173 +		00B7E2E9097EAFDF00826121 /* Info copy.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "Info copy.plist"; sourceTree = "<group>"; };
  52.174 +		00B7E33C097EB2B900826121 /* libvorbis.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libvorbis.a; sourceTree = BUILT_PRODUCTS_DIR; };
  52.175 +		00B7E40F097EBFB100826121 /* libvorbisfile.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libvorbisfile.a; sourceTree = BUILT_PRODUCTS_DIR; };
  52.176 +		00B7E414097EBFC400826121 /* libvorbisenc.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libvorbisenc.a; sourceTree = BUILT_PRODUCTS_DIR; };
  52.177 +		089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
  52.178 +		730F23F0091827B100AB638C /* Info.plist */ = {isa = PBXFileReference; explicitFileType = text.plist; fileEncoding = 4; path = Info.plist; sourceTree = "<group>"; };
  52.179 +		730F23F1091827B100AB638C /* Vorbis.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Vorbis.framework; sourceTree = BUILT_PRODUCTS_DIR; };
  52.180 +		730F23FA0918281100AB638C /* Ogg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Ogg.framework; path = /Library/Frameworks/Ogg.framework; sourceTree = "<absolute>"; };
  52.181 +		F58520B90191D12B01A802FE /* codec.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = codec.h; sourceTree = "<group>"; };
  52.182 +		F58520BA0191D12B01A802FE /* vorbisenc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vorbisenc.h; sourceTree = "<group>"; };
  52.183 +		F58520BB0191D12B01A802FE /* vorbisfile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vorbisfile.h; sourceTree = "<group>"; };
  52.184 +		F5D8F60A03389C830112CE8F /* analysis.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = analysis.c; sourceTree = "<group>"; };
  52.185 +		F5D8F60B03389C830112CE8F /* backends.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = backends.h; sourceTree = "<group>"; };
  52.186 +		F5D8F60C03389C830112CE8F /* barkmel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = barkmel.c; sourceTree = "<group>"; };
  52.187 +		F5D8F60D03389C830112CE8F /* bitrate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bitrate.c; sourceTree = "<group>"; };
  52.188 +		F5D8F60E03389C830112CE8F /* bitrate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bitrate.h; sourceTree = "<group>"; };
  52.189 +		F5D8F60F03389C830112CE8F /* block.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = block.c; sourceTree = "<group>"; };
  52.190 +		F5D8F61603389C830112CE8F /* res_books_stereo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = res_books_stereo.h; sourceTree = "<group>"; };
  52.191 +		F5D8F61903389C830112CE8F /* floor_books.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = floor_books.h; sourceTree = "<group>"; };
  52.192 +		F5D8F62203389C830112CE8F /* res_books_uncoupled.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = res_books_uncoupled.h; sourceTree = "<group>"; };
  52.193 +		F5D8F62303389C830112CE8F /* codebook.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = codebook.c; sourceTree = "<group>"; };
  52.194 +		F5D8F62403389C830112CE8F /* codebook.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = codebook.h; sourceTree = "<group>"; };
  52.195 +		F5D8F62503389C830112CE8F /* codec_internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = codec_internal.h; sourceTree = "<group>"; };
  52.196 +		F5D8F62603389C830112CE8F /* envelope.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = envelope.c; sourceTree = "<group>"; };
  52.197 +		F5D8F62703389C830112CE8F /* envelope.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = envelope.h; sourceTree = "<group>"; };
  52.198 +		F5D8F62803389C830112CE8F /* floor0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = floor0.c; sourceTree = "<group>"; };
  52.199 +		F5D8F62903389C830112CE8F /* floor1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = floor1.c; sourceTree = "<group>"; };
  52.200 +		F5D8F62A03389C830112CE8F /* highlevel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = highlevel.h; sourceTree = "<group>"; };
  52.201 +		F5D8F62B03389C830112CE8F /* info.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = info.c; sourceTree = "<group>"; };
  52.202 +		F5D8F62C03389C830112CE8F /* lookup.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = lookup.c; sourceTree = "<group>"; };
  52.203 +		F5D8F62D03389C830112CE8F /* lookup.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lookup.h; sourceTree = "<group>"; };
  52.204 +		F5D8F62E03389C830112CE8F /* lookup_data.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lookup_data.h; sourceTree = "<group>"; };
  52.205 +		F5D8F63003389C830112CE8F /* lpc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = lpc.c; sourceTree = "<group>"; };
  52.206 +		F5D8F63103389C830112CE8F /* lpc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lpc.h; sourceTree = "<group>"; };
  52.207 +		F5D8F63203389C830112CE8F /* lsp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = lsp.c; sourceTree = "<group>"; };
  52.208 +		F5D8F63303389C830112CE8F /* lsp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lsp.h; sourceTree = "<group>"; };
  52.209 +		F5D8F63603389C830112CE8F /* mapping0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mapping0.c; sourceTree = "<group>"; };
  52.210 +		F5D8F63703389C830112CE8F /* masking.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = masking.h; sourceTree = "<group>"; };
  52.211 +		F5D8F63803389C830112CE8F /* mdct.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mdct.c; sourceTree = "<group>"; };
  52.212 +		F5D8F63903389C830112CE8F /* mdct.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mdct.h; sourceTree = "<group>"; };
  52.213 +		F5D8F63A03389C830112CE8F /* misc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = misc.c; sourceTree = "<group>"; };
  52.214 +		F5D8F63B03389C830112CE8F /* misc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = misc.h; sourceTree = "<group>"; };
  52.215 +		F5D8F63E03389C830112CE8F /* floor_all.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = floor_all.h; sourceTree = "<group>"; };
  52.216 +		F5D8F64103389C830112CE8F /* psych_11.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = psych_11.h; sourceTree = "<group>"; };
  52.217 +		F5D8F64203389C830112CE8F /* psych_16.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = psych_16.h; sourceTree = "<group>"; };
  52.218 +		F5D8F64303389C830112CE8F /* psych_44.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = psych_44.h; sourceTree = "<group>"; };
  52.219 +		F5D8F64403389C830112CE8F /* psych_8.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = psych_8.h; sourceTree = "<group>"; };
  52.220 +		F5D8F64503389C830112CE8F /* residue_16.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = residue_16.h; sourceTree = "<group>"; };
  52.221 +		F5D8F64603389C830112CE8F /* residue_44.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = residue_44.h; sourceTree = "<group>"; };
  52.222 +		F5D8F64703389C830112CE8F /* residue_44u.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = residue_44u.h; sourceTree = "<group>"; };
  52.223 +		F5D8F64803389C830112CE8F /* residue_8.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = residue_8.h; sourceTree = "<group>"; };
  52.224 +		F5D8F64903389C830112CE8F /* setup_11.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = setup_11.h; sourceTree = "<group>"; };
  52.225 +		F5D8F64A03389C830112CE8F /* setup_16.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = setup_16.h; sourceTree = "<group>"; };
  52.226 +		F5D8F64B03389C830112CE8F /* setup_22.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = setup_22.h; sourceTree = "<group>"; };
  52.227 +		F5D8F64C03389C830112CE8F /* setup_32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = setup_32.h; sourceTree = "<group>"; };
  52.228 +		F5D8F64D03389C830112CE8F /* setup_44.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = setup_44.h; sourceTree = "<group>"; };
  52.229 +		F5D8F64E03389C830112CE8F /* setup_44u.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = setup_44u.h; sourceTree = "<group>"; };
  52.230 +		F5D8F64F03389C830112CE8F /* setup_8.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = setup_8.h; sourceTree = "<group>"; };
  52.231 +		F5D8F65003389C830112CE8F /* setup_X.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = setup_X.h; sourceTree = "<group>"; };
  52.232 +		F5D8F65103389C830112CE8F /* os.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = os.h; sourceTree = "<group>"; };