Fixed bug 4228 - Clean-up Xcode projects
authorSam Lantinga <slouken@libsdl.org>
Tue, 21 Aug 2018 16:47:44 -0700
changeset 12134770797b794da
parent 12133 59aab1976ae4
child 12135 20df200b97ae
Fixed bug 4228 - Clean-up Xcode projects

C.W. Betts

This cleans up the Xcode project by setting the Xcode groups to the corresponding directories. This also removes the Resources folder in OS X's Products group and adds the CoreBluetooth framework to the iOS tests (this is needed due to the addition of hidapi.
Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj
Xcode-iOS/SDLtest/SDL2test.xcodeproj/project.pbxproj
Xcode-iOS/Test/TestiPhoneOS.xcodeproj/project.pbxproj
Xcode/SDL/SDL.xcodeproj/project.pbxproj
Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj
     1.1 --- a/Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj	Tue Aug 21 13:44:11 2018 -0700
     1.2 +++ b/Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj	Tue Aug 21 16:47:44 2018 -0700
     1.3 @@ -94,6 +94,7 @@
     1.4  		4D75171A1EE1D32200820EEA /* SDL_uikitmetalview.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7517191EE1D32200820EEA /* SDL_uikitmetalview.h */; };
     1.5  		4D75171F1EE1D98200820EEA /* SDL_vulkan_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D75171D1EE1D98200820EEA /* SDL_vulkan_internal.h */; };
     1.6  		4D7517201EE1D98200820EEA /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D75171E1EE1D98200820EEA /* SDL_vulkan_utils.c */; };
     1.7 +		55FFA91A2122302B00D7CBED /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FFA9192122302B00D7CBED /* SDL_syspower.h */; };
     1.8  		566726451DF72CF5001DD3DB /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = 566726431DF72CF5001DD3DB /* SDL_dataqueue.c */; };
     1.9  		566726461DF72CF5001DD3DB /* SDL_dataqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 566726441DF72CF5001DD3DB /* SDL_dataqueue.h */; };
    1.10  		56A6702E18565E450007D20F /* SDL_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6702D18565E450007D20F /* SDL_internal.h */; };
    1.11 @@ -390,21 +391,21 @@
    1.12  		0442EC4E12FE1C1E004C9285 /* SDL_render_sw_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_render_sw_c.h; sourceTree = "<group>"; };
    1.13  		0442EC4F12FE1C1E004C9285 /* SDL_render_sw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render_sw.c; sourceTree = "<group>"; };
    1.14  		0442EC5212FE1C28004C9285 /* SDL_render_gles.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render_gles.c; sourceTree = "<group>"; };
    1.15 -		0442EC5412FE1C3F004C9285 /* SDL_hints.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_hints.c; path = ../../src/SDL_hints.c; sourceTree = SOURCE_ROOT; };
    1.16 +		0442EC5412FE1C3F004C9285 /* SDL_hints.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hints.c; sourceTree = "<group>"; };
    1.17  		044E5FB711E606EB0076F181 /* SDL_clipboard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_clipboard.c; sourceTree = "<group>"; };
    1.18  		0463873A0F0B5B7D0041FD65 /* SDL_blit_slow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blit_slow.h; sourceTree = "<group>"; };
    1.19  		0463873E0F0B5B7D0041FD65 /* SDL_fillrect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_fillrect.c; sourceTree = "<group>"; };
    1.20  		047677B80EA76A31008ABAF1 /* SDL_syshaptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syshaptic.c; sourceTree = "<group>"; };
    1.21 -		047677B90EA76A31008ABAF1 /* SDL_haptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_haptic.c; path = ../../src/haptic/SDL_haptic.c; sourceTree = SOURCE_ROOT; };
    1.22 -		047677BA0EA76A31008ABAF1 /* SDL_syshaptic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_syshaptic.h; path = ../../src/haptic/SDL_syshaptic.h; sourceTree = SOURCE_ROOT; };
    1.23 +		047677B90EA76A31008ABAF1 /* SDL_haptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_haptic.c; sourceTree = "<group>"; };
    1.24 +		047677BA0EA76A31008ABAF1 /* SDL_syshaptic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syshaptic.h; sourceTree = "<group>"; };
    1.25  		047AF1B20EA98D6C00811173 /* SDL_sysloadso.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysloadso.c; sourceTree = "<group>"; };
    1.26  		04BA9D5F11EF474A00B60E01 /* SDL_gesture_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_gesture_c.h; sourceTree = "<group>"; };
    1.27  		04BA9D6011EF474A00B60E01 /* SDL_gesture.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_gesture.c; sourceTree = "<group>"; };
    1.28  		04BA9D6111EF474A00B60E01 /* SDL_touch_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_touch_c.h; sourceTree = "<group>"; };
    1.29  		04BA9D6211EF474A00B60E01 /* SDL_touch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_touch.c; sourceTree = "<group>"; };
    1.30 -		04BAC09A1300C1290055DE28 /* SDL_assert_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_assert_c.h; path = ../../src/SDL_assert_c.h; sourceTree = SOURCE_ROOT; };
    1.31 -		04BAC09B1300C1290055DE28 /* SDL_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_log.c; path = ../../src/SDL_log.c; sourceTree = SOURCE_ROOT; };
    1.32 -		04F2AF551104ABD200D6DDF7 /* SDL_assert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_assert.c; path = ../../src/SDL_assert.c; sourceTree = SOURCE_ROOT; };
    1.33 +		04BAC09A1300C1290055DE28 /* SDL_assert_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_assert_c.h; sourceTree = "<group>"; };
    1.34 +		04BAC09B1300C1290055DE28 /* SDL_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_log.c; sourceTree = "<group>"; };
    1.35 +		04F2AF551104ABD200D6DDF7 /* SDL_assert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_assert.c; sourceTree = "<group>"; };
    1.36  		04F7806A12FB751400FC43C0 /* SDL_blendfillrect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blendfillrect.c; sourceTree = "<group>"; };
    1.37  		04F7806B12FB751400FC43C0 /* SDL_blendfillrect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_blendfillrect.h; sourceTree = "<group>"; };
    1.38  		04F7806C12FB751400FC43C0 /* SDL_blendline.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_blendline.c; sourceTree = "<group>"; };
    1.39 @@ -427,19 +428,20 @@
    1.40  		4D7517191EE1D32200820EEA /* SDL_uikitmetalview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitmetalview.h; sourceTree = "<group>"; };
    1.41  		4D75171D1EE1D98200820EEA /* SDL_vulkan_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_vulkan_internal.h; sourceTree = "<group>"; };
    1.42  		4D75171E1EE1D98200820EEA /* SDL_vulkan_utils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_vulkan_utils.c; sourceTree = "<group>"; };
    1.43 -		566726431DF72CF5001DD3DB /* SDL_dataqueue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_dataqueue.c; path = ../../src/SDL_dataqueue.c; sourceTree = "<group>"; };
    1.44 -		566726441DF72CF5001DD3DB /* SDL_dataqueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_dataqueue.h; path = ../../src/SDL_dataqueue.h; sourceTree = "<group>"; };
    1.45 -		56A6702D18565E450007D20F /* SDL_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_internal.h; path = ../../src/SDL_internal.h; sourceTree = "<group>"; };
    1.46 -		56A6703118565E760007D20F /* SDL_dynapi_overrides.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_dynapi_overrides.h; path = ../../src/dynapi/SDL_dynapi_overrides.h; sourceTree = "<group>"; };
    1.47 -		56A6703218565E760007D20F /* SDL_dynapi_procs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_dynapi_procs.h; path = ../../src/dynapi/SDL_dynapi_procs.h; sourceTree = "<group>"; };
    1.48 -		56A6703318565E760007D20F /* SDL_dynapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_dynapi.c; path = ../../src/dynapi/SDL_dynapi.c; sourceTree = "<group>"; };
    1.49 -		56A6703418565E760007D20F /* SDL_dynapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_dynapi.h; path = ../../src/dynapi/SDL_dynapi.h; sourceTree = "<group>"; };
    1.50 +		55FFA9192122302B00D7CBED /* SDL_syspower.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syspower.h; sourceTree = "<group>"; };
    1.51 +		566726431DF72CF5001DD3DB /* SDL_dataqueue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dataqueue.c; sourceTree = "<group>"; };
    1.52 +		566726441DF72CF5001DD3DB /* SDL_dataqueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dataqueue.h; sourceTree = "<group>"; };
    1.53 +		56A6702D18565E450007D20F /* SDL_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_internal.h; sourceTree = "<group>"; };
    1.54 +		56A6703118565E760007D20F /* SDL_dynapi_overrides.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dynapi_overrides.h; sourceTree = "<group>"; };
    1.55 +		56A6703218565E760007D20F /* SDL_dynapi_procs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dynapi_procs.h; sourceTree = "<group>"; };
    1.56 +		56A6703318565E760007D20F /* SDL_dynapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dynapi.c; sourceTree = "<group>"; };
    1.57 +		56A6703418565E760007D20F /* SDL_dynapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dynapi.h; sourceTree = "<group>"; };
    1.58  		56C181DE17C44D5E00406AE3 /* SDL_filesystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_filesystem.h; sourceTree = "<group>"; };
    1.59 -		56C181E117C44D7A00406AE3 /* SDL_sysfilesystem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDL_sysfilesystem.m; path = ../../src/filesystem/cocoa/SDL_sysfilesystem.m; sourceTree = "<group>"; };
    1.60 -		56EA86F913E9EC2B002E47EB /* SDL_coreaudio.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDL_coreaudio.m; path = coreaudio/SDL_coreaudio.m; sourceTree = "<group>"; };
    1.61 -		56EA86FA13E9EC2B002E47EB /* SDL_coreaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_coreaudio.h; path = coreaudio/SDL_coreaudio.h; sourceTree = "<group>"; };
    1.62 -		56ED04E0118A8EE200A56AA6 /* SDL_power.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_power.c; path = ../../src/power/SDL_power.c; sourceTree = SOURCE_ROOT; };
    1.63 -		56ED04E2118A8EFD00A56AA6 /* SDL_syspower.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDL_syspower.m; path = ../../src/power/uikit/SDL_syspower.m; sourceTree = SOURCE_ROOT; };
    1.64 +		56C181E117C44D7A00406AE3 /* SDL_sysfilesystem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDL_sysfilesystem.m; path = cocoa/SDL_sysfilesystem.m; sourceTree = "<group>"; };
    1.65 +		56EA86F913E9EC2B002E47EB /* SDL_coreaudio.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_coreaudio.m; sourceTree = "<group>"; };
    1.66 +		56EA86FA13E9EC2B002E47EB /* SDL_coreaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_coreaudio.h; sourceTree = "<group>"; };
    1.67 +		56ED04E0118A8EE200A56AA6 /* SDL_power.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_power.c; sourceTree = "<group>"; };
    1.68 +		56ED04E2118A8EFD00A56AA6 /* SDL_syspower.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_syspower.m; sourceTree = "<group>"; };
    1.69  		93CB792213FC5E5200BD3E05 /* SDL_uikitviewcontroller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitviewcontroller.h; sourceTree = "<group>"; };
    1.70  		93CB792513FC5F5300BD3E05 /* SDL_uikitviewcontroller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitviewcontroller.m; sourceTree = "<group>"; };
    1.71  		A704172D20F7E74800A82227 /* controller_type.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = controller_type.h; sourceTree = "<group>"; };
    1.72 @@ -583,9 +585,9 @@
    1.73  		FD99B99B0DD52EDC00FB1D6B /* SDL_windowevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_windowevents.c; sourceTree = "<group>"; };
    1.74  		FD99B99C0DD52EDC00FB1D6B /* SDL_windowevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_windowevents_c.h; sourceTree = "<group>"; };
    1.75  		FD99B99E0DD52EDC00FB1D6B /* SDL_rwops.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_rwops.c; sourceTree = "<group>"; };
    1.76 -		FD99B9D40DD52EDC00FB1D6B /* SDL_error_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_error_c.h; path = ../../src/SDL_error_c.h; sourceTree = "<group>"; };
    1.77 -		FD99B9D50DD52EDC00FB1D6B /* SDL_error.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_error.c; path = ../../src/SDL_error.c; sourceTree = "<group>"; };
    1.78 -		FD99B9D80DD52EDC00FB1D6B /* SDL.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL.c; path = ../../src/SDL.c; sourceTree = "<group>"; };
    1.79 +		FD99B9D40DD52EDC00FB1D6B /* SDL_error_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_error_c.h; sourceTree = "<group>"; };
    1.80 +		FD99B9D50DD52EDC00FB1D6B /* SDL_error.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_error.c; sourceTree = "<group>"; };
    1.81 +		FD99B9D80DD52EDC00FB1D6B /* SDL.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL.c; sourceTree = "<group>"; };
    1.82  		FD99BA070DD52EDC00FB1D6B /* SDL_syscond.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syscond.c; sourceTree = "<group>"; };
    1.83  		FD99BA080DD52EDC00FB1D6B /* SDL_sysmutex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysmutex.c; sourceTree = "<group>"; };
    1.84  		FD99BA090DD52EDC00FB1D6B /* SDL_sysmutex_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysmutex_c.h; sourceTree = "<group>"; };
    1.85 @@ -658,9 +660,8 @@
    1.86  				04409BA412FA989600FB9AA8 /* SDL_yuv_sw_c.h */,
    1.87  				04409BA512FA989600FB9AA8 /* SDL_yuv_sw.c */,
    1.88  			);
    1.89 -			name = render;
    1.90 -			path = ../../src/render;
    1.91 -			sourceTree = SOURCE_ROOT;
    1.92 +			path = render;
    1.93 +			sourceTree = "<group>";
    1.94  		};
    1.95  		041B2CE812FA0F680087D585 /* opengles */ = {
    1.96  			isa = PBXGroup;
    1.97 @@ -699,7 +700,7 @@
    1.98  				047677B90EA76A31008ABAF1 /* SDL_haptic.c */,
    1.99  				047677BA0EA76A31008ABAF1 /* SDL_syshaptic.h */,
   1.100  			);
   1.101 -			name = haptic;
   1.102 +			path = haptic;
   1.103  			sourceTree = "<group>";
   1.104  		};
   1.105  		047677B70EA76A31008ABAF1 /* dummy */ = {
   1.106 @@ -707,9 +708,8 @@
   1.107  			children = (
   1.108  				047677B80EA76A31008ABAF1 /* SDL_syshaptic.c */,
   1.109  			);
   1.110 -			name = dummy;
   1.111 -			path = ../../src/haptic/dummy;
   1.112 -			sourceTree = SOURCE_ROOT;
   1.113 +			path = dummy;
   1.114 +			sourceTree = "<group>";
   1.115  		};
   1.116  		047AF1B10EA98D6C00811173 /* dummy */ = {
   1.117  			isa = PBXGroup;
   1.118 @@ -725,9 +725,8 @@
   1.119  				04FFAB8912E23B8D00BA343D /* SDL_atomic.c */,
   1.120  				04FFAB8A12E23B8D00BA343D /* SDL_spinlock.c */,
   1.121  			);
   1.122 -			name = atomic;
   1.123 -			path = ../../src/atomic;
   1.124 -			sourceTree = SOURCE_ROOT;
   1.125 +			path = atomic;
   1.126 +			sourceTree = "<group>";
   1.127  		};
   1.128  		19C28FACFE9D520D11CA2CBB /* Products */ = {
   1.129  			isa = PBXGroup;
   1.130 @@ -757,7 +756,7 @@
   1.131  				56A6703318565E760007D20F /* SDL_dynapi.c */,
   1.132  				56A6703418565E760007D20F /* SDL_dynapi.h */,
   1.133  			);
   1.134 -			name = dynapi;
   1.135 +			path = dynapi;
   1.136  			sourceTree = "<group>";
   1.137  		};
   1.138  		56C181E017C44D6900406AE3 /* filesystem */ = {
   1.139 @@ -765,7 +764,7 @@
   1.140  			children = (
   1.141  				56C181E117C44D7A00406AE3 /* SDL_sysfilesystem.m */,
   1.142  			);
   1.143 -			name = filesystem;
   1.144 +			path = filesystem;
   1.145  			sourceTree = "<group>";
   1.146  		};
   1.147  		56EA86F813E9EBF9002E47EB /* coreaudio */ = {
   1.148 @@ -774,7 +773,7 @@
   1.149  				56EA86F913E9EC2B002E47EB /* SDL_coreaudio.m */,
   1.150  				56EA86FA13E9EC2B002E47EB /* SDL_coreaudio.h */,
   1.151  			);
   1.152 -			name = coreaudio;
   1.153 +			path = coreaudio;
   1.154  			sourceTree = "<group>";
   1.155  		};
   1.156  		56ED04DE118A8E9A00A56AA6 /* power */ = {
   1.157 @@ -783,15 +782,16 @@
   1.158  				56ED04E0118A8EE200A56AA6 /* SDL_power.c */,
   1.159  				56ED04DF118A8EB700A56AA6 /* uikit */,
   1.160  			);
   1.161 -			name = power;
   1.162 +			path = power;
   1.163  			sourceTree = "<group>";
   1.164  		};
   1.165  		56ED04DF118A8EB700A56AA6 /* uikit */ = {
   1.166  			isa = PBXGroup;
   1.167  			children = (
   1.168 +				55FFA9192122302B00D7CBED /* SDL_syspower.h */,
   1.169  				56ED04E2118A8EFD00A56AA6 /* SDL_syspower.m */,
   1.170  			);
   1.171 -			name = uikit;
   1.172 +			path = uikit;
   1.173  			sourceTree = "<group>";
   1.174  		};
   1.175  		AA13B3521FB8B41700D9FEE6 /* yuv2rgb */ = {
   1.176 @@ -819,9 +819,8 @@
   1.177  			children = (
   1.178  				F3BDD77420F51C18004ECBF3 /* ios */,
   1.179  			);
   1.180 -			name = hidapi;
   1.181 -			path = ../../src/hidapi;
   1.182 -			sourceTree = SOURCE_ROOT;
   1.183 +			path = hidapi;
   1.184 +			sourceTree = "<group>";
   1.185  		};
   1.186  		F3BDD77420F51C18004ECBF3 /* ios */ = {
   1.187  			isa = PBXGroup;
   1.188 @@ -854,9 +853,8 @@
   1.189  				FD3F4A740DEA620800C5B771 /* SDL_stdlib.c */,
   1.190  				FD3F4A750DEA620800C5B771 /* SDL_string.c */,
   1.191  			);
   1.192 -			name = stdlib;
   1.193 -			path = ../../src/stdlib;
   1.194 -			sourceTree = SOURCE_ROOT;
   1.195 +			path = stdlib;
   1.196 +			sourceTree = "<group>";
   1.197  		};
   1.198  		FD5F9D080E0E08B3008E885B /* joystick */ = {
   1.199  			isa = PBXGroup;
   1.200 @@ -869,9 +867,8 @@
   1.201  				FD5F9D1F0E0E08B3008E885B /* SDL_joystick_c.h */,
   1.202  				FD5F9D200E0E08B3008E885B /* SDL_sysjoystick.h */,
   1.203  			);
   1.204 -			name = joystick;
   1.205 -			path = ../../src/joystick;
   1.206 -			sourceTree = SOURCE_ROOT;
   1.207 +			path = joystick;
   1.208 +			sourceTree = "<group>";
   1.209  		};
   1.210  		FD689EFF0E26E5B600F90B21 /* iphoneos */ = {
   1.211  			isa = PBXGroup;
   1.212 @@ -922,9 +919,8 @@
   1.213  				047AF1B10EA98D6C00811173 /* dummy */,
   1.214  				FD8BD8180E27E25900B52CD5 /* dlopen */,
   1.215  			);
   1.216 -			name = loadso;
   1.217 -			path = ../../src/loadso;
   1.218 -			sourceTree = SOURCE_ROOT;
   1.219 +			path = loadso;
   1.220 +			sourceTree = "<group>";
   1.221  		};
   1.222  		FD8BD8180E27E25900B52CD5 /* dlopen */ = {
   1.223  			isa = PBXGroup;
   1.224 @@ -1029,6 +1025,7 @@
   1.225  				FD99B9D80DD52EDC00FB1D6B /* SDL.c */,
   1.226  			);
   1.227  			name = "Library Source";
   1.228 +			path = ../../src;
   1.229  			sourceTree = "<group>";
   1.230  		};
   1.231  		FD99B8FB0DD52EDC00FB1D6B /* audio */ = {
   1.232 @@ -1045,8 +1042,7 @@
   1.233  				FD99B9530DD52EDC00FB1D6B /* SDL_wave.c */,
   1.234  				FD99B9540DD52EDC00FB1D6B /* SDL_wave.h */,
   1.235  			);
   1.236 -			name = audio;
   1.237 -			path = ../../src/audio;
   1.238 +			path = audio;
   1.239  			sourceTree = "<group>";
   1.240  		};
   1.241  		FD99B91C0DD52EDC00FB1D6B /* dummy */ = {
   1.242 @@ -1063,8 +1059,7 @@
   1.243  			children = (
   1.244  				FD99B98B0DD52EDC00FB1D6B /* SDL_cpuinfo.c */,
   1.245  			);
   1.246 -			name = cpuinfo;
   1.247 -			path = ../../src/cpuinfo;
   1.248 +			path = cpuinfo;
   1.249  			sourceTree = "<group>";
   1.250  		};
   1.251  		FD99B98C0DD52EDC00FB1D6B /* events */ = {
   1.252 @@ -1094,8 +1089,7 @@
   1.253  				FD99B99B0DD52EDC00FB1D6B /* SDL_windowevents.c */,
   1.254  				FD99B99C0DD52EDC00FB1D6B /* SDL_windowevents_c.h */,
   1.255  			);
   1.256 -			name = events;
   1.257 -			path = ../../src/events;
   1.258 +			path = events;
   1.259  			sourceTree = "<group>";
   1.260  		};
   1.261  		FD99B99D0DD52EDC00FB1D6B /* file */ = {
   1.262 @@ -1104,8 +1098,7 @@
   1.263  				006E9885119552DD001DE610 /* cocoa */,
   1.264  				FD99B99E0DD52EDC00FB1D6B /* SDL_rwops.c */,
   1.265  			);
   1.266 -			name = file;
   1.267 -			path = ../../src/file;
   1.268 +			path = file;
   1.269  			sourceTree = "<group>";
   1.270  		};
   1.271  		FD99B9E00DD52EDC00FB1D6B /* thread */ = {
   1.272 @@ -1116,8 +1109,7 @@
   1.273  				FD99BA150DD52EDC00FB1D6B /* SDL_thread.c */,
   1.274  				FD99BA160DD52EDC00FB1D6B /* SDL_thread_c.h */,
   1.275  			);
   1.276 -			name = thread;
   1.277 -			path = ../../src/thread;
   1.278 +			path = thread;
   1.279  			sourceTree = "<group>";
   1.280  		};
   1.281  		FD99BA060DD52EDC00FB1D6B /* pthread */ = {
   1.282 @@ -1141,8 +1133,7 @@
   1.283  				FD99BA2E0DD52EDC00FB1D6B /* SDL_timer.c */,
   1.284  				FD99BA2F0DD52EDC00FB1D6B /* SDL_timer_c.h */,
   1.285  			);
   1.286 -			name = timer;
   1.287 -			path = ../../src/timer;
   1.288 +			path = timer;
   1.289  			sourceTree = "<group>";
   1.290  		};
   1.291  		FD99BA300DD52EDC00FB1D6B /* unix */ = {
   1.292 @@ -1193,9 +1184,8 @@
   1.293  				AA13B34F1FB8B3CC00D9FEE6 /* SDL_yuv.c */,
   1.294  				AA13B3481FB8B27800D9FEE6 /* SDL_yuv_c.h */,
   1.295  			);
   1.296 -			name = video;
   1.297 -			path = ../../src/video;
   1.298 -			sourceTree = SOURCE_ROOT;
   1.299 +			path = video;
   1.300 +			sourceTree = "<group>";
   1.301  		};
   1.302  		FDA685F40DF244C800F98A1A /* dummy */ = {
   1.303  			isa = PBXGroup;
   1.304 @@ -1271,6 +1261,7 @@
   1.305  				AA75589A1595D55500BBD41B /* SDL_assert.h in Headers */,
   1.306  				AA75589B1595D55500BBD41B /* SDL_atomic.h in Headers */,
   1.307  				AA75589C1595D55500BBD41B /* SDL_audio.h in Headers */,
   1.308 +				55FFA91A2122302B00D7CBED /* SDL_syspower.h in Headers */,
   1.309  				AA75589D1595D55500BBD41B /* SDL_blendmode.h in Headers */,
   1.310  				AA75589E1595D55500BBD41B /* SDL_clipboard.h in Headers */,
   1.311  				AA75589F1595D55500BBD41B /* SDL_config_iphoneos.h in Headers */,
   1.312 @@ -1530,7 +1521,6 @@
   1.313  				FAB598791BB5C31600BE72C5 /* SDL_sysmutex.c in Sources */,
   1.314  				FAB5987B1BB5C31600BE72C5 /* SDL_syssem.c in Sources */,
   1.315  				FAB5987C1BB5C31600BE72C5 /* SDL_systhread.c in Sources */,
   1.316 -				AAE7A4222041CCA90096E65A /* SDL_steamcontroller.c in Sources */,
   1.317  				FAB5987E1BB5C31600BE72C5 /* SDL_systls.c in Sources */,
   1.318  				FAB598801BB5C31600BE72C5 /* SDL_thread.c in Sources */,
   1.319  				FAB598821BB5C31600BE72C5 /* SDL_systimer.c in Sources */,
     2.1 --- a/Xcode-iOS/SDLtest/SDL2test.xcodeproj/project.pbxproj	Tue Aug 21 13:44:11 2018 -0700
     2.2 +++ b/Xcode-iOS/SDLtest/SDL2test.xcodeproj/project.pbxproj	Tue Aug 21 16:47:44 2018 -0700
     2.3 @@ -53,22 +53,22 @@
     2.4  
     2.5  /* Begin PBXFileReference section */
     2.6  		AA1EE4461760589B0029C7A5 /* libSDL2test.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL2test.a; sourceTree = BUILT_PRODUCTS_DIR; };
     2.7 -		AA1EE454176059AB0029C7A5 /* SDL_test_common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_common.c; path = ../../src/test/SDL_test_common.c; sourceTree = "<group>"; };
     2.8 -		AA1EE455176059AB0029C7A5 /* SDL_test_compare.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_compare.c; path = ../../src/test/SDL_test_compare.c; sourceTree = "<group>"; };
     2.9 -		AA1EE456176059AB0029C7A5 /* SDL_test_crc32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_crc32.c; path = ../../src/test/SDL_test_crc32.c; sourceTree = "<group>"; };
    2.10 -		AA1EE457176059AB0029C7A5 /* SDL_test_font.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_font.c; path = ../../src/test/SDL_test_font.c; sourceTree = "<group>"; };
    2.11 -		AA1EE458176059AB0029C7A5 /* SDL_test_fuzzer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_fuzzer.c; path = ../../src/test/SDL_test_fuzzer.c; sourceTree = "<group>"; };
    2.12 -		AA1EE459176059AB0029C7A5 /* SDL_test_harness.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_harness.c; path = ../../src/test/SDL_test_harness.c; sourceTree = "<group>"; };
    2.13 -		AA1EE45A176059AB0029C7A5 /* SDL_test_imageBlit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_imageBlit.c; path = ../../src/test/SDL_test_imageBlit.c; sourceTree = "<group>"; };
    2.14 -		AA1EE45B176059AB0029C7A5 /* SDL_test_imageBlitBlend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_imageBlitBlend.c; path = ../../src/test/SDL_test_imageBlitBlend.c; sourceTree = "<group>"; };
    2.15 -		AA1EE45C176059AB0029C7A5 /* SDL_test_imageFace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_imageFace.c; path = ../../src/test/SDL_test_imageFace.c; sourceTree = "<group>"; };
    2.16 -		AA1EE45D176059AB0029C7A5 /* SDL_test_imagePrimitives.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_imagePrimitives.c; path = ../../src/test/SDL_test_imagePrimitives.c; sourceTree = "<group>"; };
    2.17 -		AA1EE45E176059AB0029C7A5 /* SDL_test_imagePrimitivesBlend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_imagePrimitivesBlend.c; path = ../../src/test/SDL_test_imagePrimitivesBlend.c; sourceTree = "<group>"; };
    2.18 -		AA1EE45F176059AB0029C7A5 /* SDL_test_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_log.c; path = ../../src/test/SDL_test_log.c; sourceTree = "<group>"; };
    2.19 -		AA1EE460176059AB0029C7A5 /* SDL_test_md5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_md5.c; path = ../../src/test/SDL_test_md5.c; sourceTree = "<group>"; };
    2.20 -		AA1EE461176059AB0029C7A5 /* SDL_test_random.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_random.c; path = ../../src/test/SDL_test_random.c; sourceTree = "<group>"; };
    2.21 -		AAF02FFF1F9009B100B9A9FB /* SDL_test_memory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_memory.c; path = ../../src/test/SDL_test_memory.c; sourceTree = "<group>"; };
    2.22 -		AAF030001F9009B100B9A9FB /* SDL_test_assert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_assert.c; path = ../../src/test/SDL_test_assert.c; sourceTree = "<group>"; };
    2.23 +		AA1EE454176059AB0029C7A5 /* SDL_test_common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_common.c; sourceTree = "<group>"; };
    2.24 +		AA1EE455176059AB0029C7A5 /* SDL_test_compare.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_compare.c; sourceTree = "<group>"; };
    2.25 +		AA1EE456176059AB0029C7A5 /* SDL_test_crc32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_crc32.c; sourceTree = "<group>"; };
    2.26 +		AA1EE457176059AB0029C7A5 /* SDL_test_font.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_font.c; sourceTree = "<group>"; };
    2.27 +		AA1EE458176059AB0029C7A5 /* SDL_test_fuzzer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_fuzzer.c; sourceTree = "<group>"; };
    2.28 +		AA1EE459176059AB0029C7A5 /* SDL_test_harness.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_harness.c; sourceTree = "<group>"; };
    2.29 +		AA1EE45A176059AB0029C7A5 /* SDL_test_imageBlit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imageBlit.c; sourceTree = "<group>"; };
    2.30 +		AA1EE45B176059AB0029C7A5 /* SDL_test_imageBlitBlend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imageBlitBlend.c; sourceTree = "<group>"; };
    2.31 +		AA1EE45C176059AB0029C7A5 /* SDL_test_imageFace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imageFace.c; sourceTree = "<group>"; };
    2.32 +		AA1EE45D176059AB0029C7A5 /* SDL_test_imagePrimitives.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imagePrimitives.c; sourceTree = "<group>"; };
    2.33 +		AA1EE45E176059AB0029C7A5 /* SDL_test_imagePrimitivesBlend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imagePrimitivesBlend.c; sourceTree = "<group>"; };
    2.34 +		AA1EE45F176059AB0029C7A5 /* SDL_test_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_log.c; sourceTree = "<group>"; };
    2.35 +		AA1EE460176059AB0029C7A5 /* SDL_test_md5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_md5.c; sourceTree = "<group>"; };
    2.36 +		AA1EE461176059AB0029C7A5 /* SDL_test_random.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_random.c; sourceTree = "<group>"; };
    2.37 +		AAF02FFF1F9009B100B9A9FB /* SDL_test_memory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_memory.c; sourceTree = "<group>"; };
    2.38 +		AAF030001F9009B100B9A9FB /* SDL_test_assert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_assert.c; sourceTree = "<group>"; };
    2.39  		FA3D98F81BC4E5A2002C96C8 /* libSDL2test-TV.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libSDL2test-TV.a"; sourceTree = BUILT_PRODUCTS_DIR; };
    2.40  /* End PBXFileReference section */
    2.41  
    2.42 @@ -128,6 +128,7 @@
    2.43  				AA1EE461176059AB0029C7A5 /* SDL_test_random.c */,
    2.44  			);
    2.45  			name = "Library Source";
    2.46 +			path = ../../src/test;
    2.47  			sourceTree = "<group>";
    2.48  		};
    2.49  /* End PBXGroup section */
     3.1 --- a/Xcode-iOS/Test/TestiPhoneOS.xcodeproj/project.pbxproj	Tue Aug 21 13:44:11 2018 -0700
     3.2 +++ b/Xcode-iOS/Test/TestiPhoneOS.xcodeproj/project.pbxproj	Tue Aug 21 16:47:44 2018 -0700
     3.3 @@ -26,6 +26,34 @@
     3.4  		047A63E813285C3200CD7973 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89D0E2D111A00EA573E /* Foundation.framework */; };
     3.5  		047A63E913285C3200CD7973 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */; };
     3.6  		047A63F113285CD100CD7973 /* checkkeys.c in Sources */ = {isa = PBXBuildFile; fileRef = 047A63F013285CD100CD7973 /* checkkeys.c */; };
     3.7 +		55FFA91C212232BA00D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
     3.8 +		55FFA91D212232BF00D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
     3.9 +		55FFA91E212232BF00D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.10 +		55FFA91F212232C000D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.11 +		55FFA920212232C000D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.12 +		55FFA921212232C100D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.13 +		55FFA922212232C100D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.14 +		55FFA923212232C200D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.15 +		55FFA924212232C200D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.16 +		55FFA925212232C300D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.17 +		55FFA926212232C300D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.18 +		55FFA927212232C500D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.19 +		55FFA928212232C500D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.20 +		55FFA929212232C600D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.21 +		55FFA92A212232C600D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.22 +		55FFA92B212232C700D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.23 +		55FFA92C212232C700D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.24 +		55FFA92D212232C800D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.25 +		55FFA92E212232CA00D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.26 +		55FFA92F212232CA00D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.27 +		55FFA930212232CB00D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.28 +		55FFA931212232CB00D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.29 +		55FFA932212232CC00D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.30 +		55FFA933212232CC00D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.31 +		55FFA934212232CD00D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.32 +		55FFA935212232CE00D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.33 +		55FFA936212232CE00D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.34 +		55FFA937212232CF00D7CBED /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */; };
    3.35  		56ED04FE118A8FE400A56AA6 /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = FDA8AAD90E2D33B000EA573E /* icon.bmp */; };
    3.36  		56ED0502118A8FE400A56AA6 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FD1B48B80E3131CA007AB34E /* libSDL2.a */; };
    3.37  		56ED0503118A8FE400A56AA6 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */; };
    3.38 @@ -419,52 +447,53 @@
    3.39  
    3.40  /* Begin PBXFileReference section */
    3.41  		046CEF8613254F23007AD51D /* testgesture.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testgesture.app; sourceTree = BUILT_PRODUCTS_DIR; };
    3.42 -		046CEF8913254F63007AD51D /* testgesture.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testgesture.c; path = ../../test/testgesture.c; sourceTree = SOURCE_ROOT; };
    3.43 +		046CEF8913254F63007AD51D /* testgesture.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testgesture.c; sourceTree = "<group>"; };
    3.44  		047A63ED13285C3200CD7973 /* checkkeys.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = checkkeys.app; sourceTree = BUILT_PRODUCTS_DIR; };
    3.45 -		047A63F013285CD100CD7973 /* checkkeys.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = checkkeys.c; path = ../../test/checkkeys.c; sourceTree = SOURCE_ROOT; };
    3.46 +		047A63F013285CD100CD7973 /* checkkeys.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = checkkeys.c; sourceTree = "<group>"; };
    3.47  		1D6058910D05DD3D006BFB54 /* testwm2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testwm2.app; sourceTree = BUILT_PRODUCTS_DIR; };
    3.48 +		55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; };
    3.49  		56ED050D118A8FE400A56AA6 /* testpower.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testpower.app; sourceTree = BUILT_PRODUCTS_DIR; };
    3.50 -		56ED0510118A904200A56AA6 /* testpower.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testpower.c; path = ../../test/testpower.c; sourceTree = SOURCE_ROOT; };
    3.51 +		56ED0510118A904200A56AA6 /* testpower.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testpower.c; sourceTree = "<group>"; };
    3.52  		AA13B3261FB8AEBC00D9FEE6 /* testyuv.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testyuv.app; sourceTree = BUILT_PRODUCTS_DIR; };
    3.53 -		AA13B32E1FB8AF0C00D9FEE6 /* testyuv.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = testyuv.bmp; path = ../../test/testyuv.bmp; sourceTree = "<group>"; };
    3.54 -		AA13B35B1FB8B4D600D9FEE6 /* testyuv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testyuv.c; path = ../../test/testyuv.c; sourceTree = "<group>"; };
    3.55 -		AA13B35E1FB8B50D00D9FEE6 /* testyuv_cvt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testyuv_cvt.c; path = ../../test/testyuv_cvt.c; sourceTree = "<group>"; };
    3.56 +		AA13B32E1FB8AF0C00D9FEE6 /* testyuv.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = testyuv.bmp; sourceTree = "<group>"; };
    3.57 +		AA13B35B1FB8B4D600D9FEE6 /* testyuv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testyuv.c; sourceTree = "<group>"; };
    3.58 +		AA13B35E1FB8B50D00D9FEE6 /* testyuv_cvt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testyuv_cvt.c; sourceTree = "<group>"; };
    3.59  		AA1EE44D176059220029C7A5 /* SDL2test.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL2test.xcodeproj; path = ../SDLtest/SDL2test.xcodeproj; sourceTree = "<group>"; };
    3.60  		AA2F57A91FDB544800832AD7 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
    3.61  		AAE7DEEC14CBB1E100DF1A0E /* testscale.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testscale.app; sourceTree = BUILT_PRODUCTS_DIR; };
    3.62 -		AAE7DF4514CBB43900DF1A0E /* testscale.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testscale.c; path = ../../test/testscale.c; sourceTree = "<group>"; };
    3.63 +		AAE7DF4514CBB43900DF1A0E /* testscale.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testscale.c; sourceTree = "<group>"; };
    3.64  		AAE7DFB114CBB54E00DF1A0E /* testrendertarget.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testrendertarget.app; sourceTree = BUILT_PRODUCTS_DIR; };
    3.65 -		AAE7DFB414CBB5F700DF1A0E /* testrendertarget.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testrendertarget.c; path = ../../test/testrendertarget.c; sourceTree = "<group>"; };
    3.66 -		FA0EF2221BAF43DE000E07A6 /* testgamecontroller.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testgamecontroller.c; path = ../../test/testgamecontroller.c; sourceTree = "<group>"; };
    3.67 -		FA0EF2281BAF4487000E07A6 /* axis.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = axis.bmp; path = ../../test/axis.bmp; sourceTree = "<group>"; };
    3.68 -		FA0EF2291BAF4487000E07A6 /* button.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = button.bmp; path = ../../test/button.bmp; sourceTree = "<group>"; };
    3.69 -		FA0EF22A1BAF4487000E07A6 /* controllermap.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = controllermap.bmp; path = ../../test/controllermap.bmp; sourceTree = "<group>"; };
    3.70 +		AAE7DFB414CBB5F700DF1A0E /* testrendertarget.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testrendertarget.c; sourceTree = "<group>"; };
    3.71 +		FA0EF2221BAF43DE000E07A6 /* testgamecontroller.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testgamecontroller.c; sourceTree = "<group>"; };
    3.72 +		FA0EF2281BAF4487000E07A6 /* axis.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = axis.bmp; sourceTree = "<group>"; };
    3.73 +		FA0EF2291BAF4487000E07A6 /* button.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = button.bmp; sourceTree = "<group>"; };
    3.74 +		FA0EF22A1BAF4487000E07A6 /* controllermap.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = controllermap.bmp; sourceTree = "<group>"; };
    3.75  		FA3D99341BC4E644002C96C8 /* testgamecontroller-TV.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "testgamecontroller-TV.app"; sourceTree = BUILT_PRODUCTS_DIR; };
    3.76  		FA684F7A1BAF1A4400DCFD1A /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; };
    3.77  		FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; };
    3.78  		FABA34761D8B4EAD00915323 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
    3.79  		FABA34911D8B575200915323 /* testaudiocapture.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testaudiocapture.app; sourceTree = BUILT_PRODUCTS_DIR; };
    3.80 -		FABA34931D8B578200915323 /* testaudiocapture.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testaudiocapture.c; path = ../../test/testaudiocapture.c; sourceTree = "<group>"; };
    3.81 +		FABA34931D8B578200915323 /* testaudiocapture.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testaudiocapture.c; sourceTree = "<group>"; };
    3.82  		FABA34AA1D8B582100915323 /* loopwav-TV.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "loopwav-TV.app"; sourceTree = BUILT_PRODUCTS_DIR; };
    3.83  		FAE0E9931BAF9B230098DFA4 /* testgamecontroller.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testgamecontroller.app; sourceTree = BUILT_PRODUCTS_DIR; };
    3.84  		FD1B48AC0E3131CA007AB34E /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = ../SDL/SDL.xcodeproj; sourceTree = SOURCE_ROOT; };
    3.85 -		FDA8A7410E2D0F1600EA573E /* testaudioinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testaudioinfo.c; path = ../../test/testaudioinfo.c; sourceTree = SOURCE_ROOT; };
    3.86 -		FDA8A7470E2D0F1600EA573E /* testerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testerror.c; path = ../../test/testerror.c; sourceTree = SOURCE_ROOT; };
    3.87 -		FDA8A7480E2D0F1600EA573E /* testfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testfile.c; path = ../../test/testfile.c; sourceTree = SOURCE_ROOT; };
    3.88 -		FDA8A74C0E2D0F1600EA573E /* testthread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testthread.c; path = ../../test/testthread.c; sourceTree = SOURCE_ROOT; };
    3.89 -		FDA8A74D0E2D0F1600EA573E /* testiconv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testiconv.c; path = ../../test/testiconv.c; sourceTree = SOURCE_ROOT; };
    3.90 -		FDA8A74E0E2D0F1600EA573E /* testjoystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testjoystick.c; path = ../../test/testjoystick.c; sourceTree = SOURCE_ROOT; };
    3.91 -		FDA8A74F0E2D0F1600EA573E /* testkeys.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testkeys.c; path = ../../test/testkeys.c; sourceTree = SOURCE_ROOT; };
    3.92 -		FDA8A7510E2D0F1600EA573E /* testlock.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testlock.c; path = ../../test/testlock.c; sourceTree = SOURCE_ROOT; };
    3.93 -		FDA8A7540E2D0F1600EA573E /* testoverlay2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testoverlay2.c; path = ../../test/testoverlay2.c; sourceTree = SOURCE_ROOT; };
    3.94 -		FDA8A7560E2D0F1600EA573E /* testplatform.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testplatform.c; path = ../../test/testplatform.c; sourceTree = SOURCE_ROOT; };
    3.95 -		FDA8A7570E2D0F1600EA573E /* testsem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testsem.c; path = ../../test/testsem.c; sourceTree = SOURCE_ROOT; };
    3.96 -		FDA8A7590E2D0F1600EA573E /* testsprite2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testsprite2.c; path = ../../test/testsprite2.c; sourceTree = SOURCE_ROOT; };
    3.97 -		FDA8A75A0E2D0F1600EA573E /* testtimer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testtimer.c; path = ../../test/testtimer.c; sourceTree = SOURCE_ROOT; };
    3.98 -		FDA8A75B0E2D0F1600EA573E /* testver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testver.c; path = ../../test/testver.c; sourceTree = SOURCE_ROOT; };
    3.99 -		FDA8A75F0E2D0F1600EA573E /* testwm2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testwm2.c; path = ../../test/testwm2.c; sourceTree = SOURCE_ROOT; };
   3.100 -		FDA8A7610E2D0F1600EA573E /* torturethread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = torturethread.c; path = ../../test/torturethread.c; sourceTree = SOURCE_ROOT; };
   3.101 -		FDA8A78B0E2D0F3D00EA573E /* loopwave.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = loopwave.c; path = ../../test/loopwave.c; sourceTree = SOURCE_ROOT; };
   3.102 +		FDA8A7410E2D0F1600EA573E /* testaudioinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testaudioinfo.c; sourceTree = "<group>"; };
   3.103 +		FDA8A7470E2D0F1600EA573E /* testerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testerror.c; sourceTree = "<group>"; };
   3.104 +		FDA8A7480E2D0F1600EA573E /* testfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testfile.c; sourceTree = "<group>"; };
   3.105 +		FDA8A74C0E2D0F1600EA573E /* testthread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testthread.c; sourceTree = "<group>"; };
   3.106 +		FDA8A74D0E2D0F1600EA573E /* testiconv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testiconv.c; sourceTree = "<group>"; };
   3.107 +		FDA8A74E0E2D0F1600EA573E /* testjoystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testjoystick.c; sourceTree = "<group>"; };
   3.108 +		FDA8A74F0E2D0F1600EA573E /* testkeys.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testkeys.c; sourceTree = "<group>"; };
   3.109 +		FDA8A7510E2D0F1600EA573E /* testlock.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testlock.c; sourceTree = "<group>"; };
   3.110 +		FDA8A7540E2D0F1600EA573E /* testoverlay2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testoverlay2.c; sourceTree = "<group>"; };
   3.111 +		FDA8A7560E2D0F1600EA573E /* testplatform.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testplatform.c; sourceTree = "<group>"; };
   3.112 +		FDA8A7570E2D0F1600EA573E /* testsem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testsem.c; sourceTree = "<group>"; };
   3.113 +		FDA8A7590E2D0F1600EA573E /* testsprite2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testsprite2.c; sourceTree = "<group>"; };
   3.114 +		FDA8A75A0E2D0F1600EA573E /* testtimer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testtimer.c; sourceTree = "<group>"; };
   3.115 +		FDA8A75B0E2D0F1600EA573E /* testver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testver.c; sourceTree = "<group>"; };
   3.116 +		FDA8A75F0E2D0F1600EA573E /* testwm2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testwm2.c; sourceTree = "<group>"; };
   3.117 +		FDA8A7610E2D0F1600EA573E /* torturethread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = torturethread.c; sourceTree = "<group>"; };
   3.118 +		FDA8A78B0E2D0F3D00EA573E /* loopwave.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = loopwave.c; sourceTree = "<group>"; };
   3.119  		FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
   3.120  		FDA8A8990E2D111A00EA573E /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
   3.121  		FDA8A89A0E2D111A00EA573E /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
   3.122 @@ -473,21 +502,21 @@
   3.123  		FDA8A89D0E2D111A00EA573E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
   3.124  		FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
   3.125  		FDA8AABB0E2D330F00EA573E /* loopwav.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = loopwav.app; sourceTree = BUILT_PRODUCTS_DIR; };
   3.126 -		FDA8AAD90E2D33B000EA573E /* icon.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = icon.bmp; path = ../../test/icon.bmp; sourceTree = SOURCE_ROOT; };
   3.127 -		FDA8AADA0E2D33BA00EA573E /* moose.dat */ = {isa = PBXFileReference; lastKnownFileType = file; name = moose.dat; path = ../../test/moose.dat; sourceTree = SOURCE_ROOT; };
   3.128 -		FDA8AADB0E2D33BA00EA573E /* picture.xbm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = picture.xbm; path = ../../test/picture.xbm; sourceTree = SOURCE_ROOT; };
   3.129 -		FDA8AADE0E2D33C100EA573E /* sample.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = sample.bmp; path = ../../test/sample.bmp; sourceTree = SOURCE_ROOT; };
   3.130 -		FDA8AAE20E2D33C600EA573E /* sample.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = sample.wav; path = ../../test/sample.wav; sourceTree = SOURCE_ROOT; };
   3.131 +		FDA8AAD90E2D33B000EA573E /* icon.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = icon.bmp; sourceTree = "<group>"; };
   3.132 +		FDA8AADA0E2D33BA00EA573E /* moose.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = moose.dat; sourceTree = "<group>"; };
   3.133 +		FDA8AADB0E2D33BA00EA573E /* picture.xbm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = picture.xbm; sourceTree = "<group>"; };
   3.134 +		FDA8AADE0E2D33C100EA573E /* sample.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = sample.bmp; sourceTree = "<group>"; };
   3.135 +		FDA8AAE20E2D33C600EA573E /* sample.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = sample.wav; sourceTree = "<group>"; };
   3.136  		FDAAC3CD0E2D47E6001DB1D8 /* testaudioinfo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testaudioinfo.app; sourceTree = BUILT_PRODUCTS_DIR; };
   3.137  		FDAAC59B0E2D5429001DB1D8 /* testerror.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testerror.app; sourceTree = BUILT_PRODUCTS_DIR; };
   3.138  		FDAAC5C90E2D55B5001DB1D8 /* testfile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testfile.app; sourceTree = BUILT_PRODUCTS_DIR; };
   3.139  		FDAAC6260E2D5914001DB1D8 /* testgles.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testgles.app; sourceTree = BUILT_PRODUCTS_DIR; };
   3.140 -		FDAAC6290E2D5960001DB1D8 /* testgles.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testgles.c; path = ../../test/testgles.c; sourceTree = SOURCE_ROOT; };
   3.141 +		FDAAC6290E2D5960001DB1D8 /* testgles.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testgles.c; sourceTree = "<group>"; };
   3.142  		FDC430000F0D866D009C87E1 /* torturethread.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = torturethread.app; sourceTree = BUILT_PRODUCTS_DIR; };
   3.143 -		FDC430090F0D86BF009C87E1 /* testdraw2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testdraw2.c; path = ../../test/testdraw2.c; sourceTree = SOURCE_ROOT; };
   3.144 +		FDC430090F0D86BF009C87E1 /* testdraw2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testdraw2.c; sourceTree = "<group>"; };
   3.145  		FDD2C10A0E2E4F4B00B7A85F /* testthread.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testthread.app; sourceTree = BUILT_PRODUCTS_DIR; };
   3.146  		FDD2C1810E2E52C000B7A85F /* testiconv.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testiconv.app; sourceTree = BUILT_PRODUCTS_DIR; };
   3.147 -		FDD2C18A0E2E52FE00B7A85F /* utf8.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = utf8.txt; path = ../../test/utf8.txt; sourceTree = SOURCE_ROOT; };
   3.148 +		FDD2C18A0E2E52FE00B7A85F /* utf8.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = utf8.txt; sourceTree = "<group>"; };
   3.149  		FDD2C1A50E2E534F00B7A85F /* testjoystick.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testjoystick.app; sourceTree = BUILT_PRODUCTS_DIR; };
   3.150  		FDD2C45E0E2E773800B7A85F /* testkeys.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testkeys.app; sourceTree = BUILT_PRODUCTS_DIR; };
   3.151  		FDD2C47C0E2E77D700B7A85F /* testlock.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testlock.app; sourceTree = BUILT_PRODUCTS_DIR; };
   3.152 @@ -514,6 +543,7 @@
   3.153  				046CEF7F13254F23007AD51D /* CoreGraphics.framework in Frameworks */,
   3.154  				046CEF8013254F23007AD51D /* UIKit.framework in Frameworks */,
   3.155  				046CEF8113254F23007AD51D /* Foundation.framework in Frameworks */,
   3.156 +				55FFA926212232C300D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.157  				046CEF8213254F23007AD51D /* CoreAudio.framework in Frameworks */,
   3.158  			);
   3.159  			runOnlyForDeploymentPostprocessing = 0;
   3.160 @@ -522,6 +552,7 @@
   3.161  			isa = PBXFrameworksBuildPhase;
   3.162  			buildActionMask = 2147483647;
   3.163  			files = (
   3.164 +				55FFA91C212232BA00D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.165  				FABA34B01D8B5B6400915323 /* AVFoundation.framework in Frameworks */,
   3.166  				AA1EE470176059D00029C7A5 /* libSDL2test.a in Frameworks */,
   3.167  				047A63E213285C3200CD7973 /* libSDL2.a in Frameworks */,
   3.168 @@ -544,6 +575,7 @@
   3.169  				FABA34C41D8B5BCB00915323 /* AVFoundation.framework in Frameworks */,
   3.170  				AA1EE47817605BF60029C7A5 /* libSDL2test.a in Frameworks */,
   3.171  				FDBDE5810E313465006BAC0B /* libSDL2.a in Frameworks */,
   3.172 +				55FFA935212232CE00D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.173  				FA684F931BAF1A8A00DCFD1A /* GameController.framework in Frameworks */,
   3.174  				FA8B4BE0196766F400F8EB7C /* CoreMotion.framework in Frameworks */,
   3.175  				FDA8A89F0E2D111A00EA573E /* AudioToolbox.framework in Frameworks */,
   3.176 @@ -570,6 +602,7 @@
   3.177  				56ED0506118A8FE400A56AA6 /* CoreGraphics.framework in Frameworks */,
   3.178  				56ED0507118A8FE400A56AA6 /* UIKit.framework in Frameworks */,
   3.179  				56ED0508118A8FE400A56AA6 /* Foundation.framework in Frameworks */,
   3.180 +				55FFA92D212232C800D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.181  				56ED0509118A8FE400A56AA6 /* CoreAudio.framework in Frameworks */,
   3.182  			);
   3.183  			runOnlyForDeploymentPostprocessing = 0;
   3.184 @@ -581,6 +614,7 @@
   3.185  				AA13B3171FB8AEBC00D9FEE6 /* AVFoundation.framework in Frameworks */,
   3.186  				AA13B3181FB8AEBC00D9FEE6 /* libSDL2test.a in Frameworks */,
   3.187  				AA13B3191FB8AEBC00D9FEE6 /* libSDL2.a in Frameworks */,
   3.188 +				55FFA936212232CE00D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.189  				AA13B31A1FB8AEBC00D9FEE6 /* GameController.framework in Frameworks */,
   3.190  				AA13B31B1FB8AEBC00D9FEE6 /* CoreMotion.framework in Frameworks */,
   3.191  				AA13B31C1FB8AEBC00D9FEE6 /* AudioToolbox.framework in Frameworks */,
   3.192 @@ -600,6 +634,7 @@
   3.193  				FABA34BE1D8B5BB000915323 /* AVFoundation.framework in Frameworks */,
   3.194  				AA1EE47617605B9E0029C7A5 /* libSDL2test.a in Frameworks */,
   3.195  				AAE7DEE114CBB1E100DF1A0E /* libSDL2.a in Frameworks */,
   3.196 +				55FFA92F212232CA00D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.197  				FA684F8D1BAF1A7800DCFD1A /* GameController.framework in Frameworks */,
   3.198  				FA8B4BDA196766E200F8EB7C /* CoreMotion.framework in Frameworks */,
   3.199  				AAE7DEE214CBB1E100DF1A0E /* AudioToolbox.framework in Frameworks */,
   3.200 @@ -620,6 +655,7 @@
   3.201  				FABA34BD1D8B5BAB00915323 /* AVFoundation.framework in Frameworks */,
   3.202  				AA1EE47517605B930029C7A5 /* libSDL2test.a in Frameworks */,
   3.203  				AAE7DFA614CBB54E00DF1A0E /* libSDL2.a in Frameworks */,
   3.204 +				55FFA92E212232CA00D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.205  				FA684F8C1BAF1A7400DCFD1A /* GameController.framework in Frameworks */,
   3.206  				FA8B4BD9196766E000F8EB7C /* CoreMotion.framework in Frameworks */,
   3.207  				AAE7DFA714CBB54E00DF1A0E /* AudioToolbox.framework in Frameworks */,
   3.208 @@ -644,6 +680,7 @@
   3.209  				FA3D994D1BC4E6AD002C96C8 /* CoreGraphics.framework in Frameworks */,
   3.210  				FA3D994E1BC4E6AD002C96C8 /* UIKit.framework in Frameworks */,
   3.211  				FA3D994F1BC4E6AD002C96C8 /* Foundation.framework in Frameworks */,
   3.212 +				55FFA925212232C300D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.213  				FA3D99501BC4E6AD002C96C8 /* CoreAudio.framework in Frameworks */,
   3.214  			);
   3.215  			runOnlyForDeploymentPostprocessing = 0;
   3.216 @@ -662,6 +699,7 @@
   3.217  				FABA348A1D8B575200915323 /* CoreGraphics.framework in Frameworks */,
   3.218  				FABA348B1D8B575200915323 /* UIKit.framework in Frameworks */,
   3.219  				FABA348C1D8B575200915323 /* Foundation.framework in Frameworks */,
   3.220 +				55FFA91D212232BF00D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.221  				FABA348D1D8B575200915323 /* CoreAudio.framework in Frameworks */,
   3.222  			);
   3.223  			runOnlyForDeploymentPostprocessing = 0;
   3.224 @@ -680,6 +718,7 @@
   3.225  				FABA34A31D8B582100915323 /* CoreGraphics.framework in Frameworks */,
   3.226  				FABA34A41D8B582100915323 /* UIKit.framework in Frameworks */,
   3.227  				FABA34A51D8B582100915323 /* Foundation.framework in Frameworks */,
   3.228 +				55FFA91F212232C000D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.229  				FABA34A61D8B582100915323 /* CoreAudio.framework in Frameworks */,
   3.230  			);
   3.231  			runOnlyForDeploymentPostprocessing = 0;
   3.232 @@ -698,6 +737,7 @@
   3.233  				FAE0E98C1BAF9B230098DFA4 /* CoreGraphics.framework in Frameworks */,
   3.234  				FAE0E98D1BAF9B230098DFA4 /* UIKit.framework in Frameworks */,
   3.235  				FAE0E98E1BAF9B230098DFA4 /* Foundation.framework in Frameworks */,
   3.236 +				55FFA924212232C200D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.237  				FAE0E98F1BAF9B230098DFA4 /* CoreAudio.framework in Frameworks */,
   3.238  			);
   3.239  			runOnlyForDeploymentPostprocessing = 0;
   3.240 @@ -716,6 +756,7 @@
   3.241  				FDA8AAB40E2D330F00EA573E /* CoreGraphics.framework in Frameworks */,
   3.242  				FDA8AAB50E2D330F00EA573E /* UIKit.framework in Frameworks */,
   3.243  				FDA8AAB60E2D330F00EA573E /* Foundation.framework in Frameworks */,
   3.244 +				55FFA91E212232BF00D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.245  				FDA8AAB70E2D330F00EA573E /* CoreAudio.framework in Frameworks */,
   3.246  			);
   3.247  			runOnlyForDeploymentPostprocessing = 0;
   3.248 @@ -734,6 +775,7 @@
   3.249  				FDAAC3C60E2D47E6001DB1D8 /* CoreGraphics.framework in Frameworks */,
   3.250  				FDAAC3C70E2D47E6001DB1D8 /* UIKit.framework in Frameworks */,
   3.251  				FDAAC3C80E2D47E6001DB1D8 /* Foundation.framework in Frameworks */,
   3.252 +				55FFA920212232C000D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.253  				FDAAC3C90E2D47E6001DB1D8 /* CoreAudio.framework in Frameworks */,
   3.254  			);
   3.255  			runOnlyForDeploymentPostprocessing = 0;
   3.256 @@ -752,6 +794,7 @@
   3.257  				FDAAC5940E2D5429001DB1D8 /* CoreGraphics.framework in Frameworks */,
   3.258  				FDAAC5950E2D5429001DB1D8 /* UIKit.framework in Frameworks */,
   3.259  				FDAAC5960E2D5429001DB1D8 /* Foundation.framework in Frameworks */,
   3.260 +				55FFA923212232C200D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.261  				FDAAC5970E2D5429001DB1D8 /* CoreAudio.framework in Frameworks */,
   3.262  			);
   3.263  			runOnlyForDeploymentPostprocessing = 0;
   3.264 @@ -770,6 +813,7 @@
   3.265  				FDAAC5C20E2D55B5001DB1D8 /* CoreGraphics.framework in Frameworks */,
   3.266  				FDAAC5C30E2D55B5001DB1D8 /* UIKit.framework in Frameworks */,
   3.267  				FDAAC5C40E2D55B5001DB1D8 /* Foundation.framework in Frameworks */,
   3.268 +				55FFA922212232C100D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.269  				FDAAC5C50E2D55B5001DB1D8 /* CoreAudio.framework in Frameworks */,
   3.270  			);
   3.271  			runOnlyForDeploymentPostprocessing = 0;
   3.272 @@ -781,6 +825,7 @@
   3.273  				FABA34B61D8B5B8900915323 /* AVFoundation.framework in Frameworks */,
   3.274  				AA1EE47417605B5C0029C7A5 /* libSDL2test.a in Frameworks */,
   3.275  				FDBDE57C0E313445006BAC0B /* libSDL2.a in Frameworks */,
   3.276 +				55FFA927212232C500D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.277  				FA684F851BAF1A6000DCFD1A /* GameController.framework in Frameworks */,
   3.278  				FA8B4BD2196766CB00F8EB7C /* CoreMotion.framework in Frameworks */,
   3.279  				FDAAC61C0E2D5914001DB1D8 /* AudioToolbox.framework in Frameworks */,
   3.280 @@ -801,6 +846,7 @@
   3.281  				FABA34B21D8B5B7300915323 /* AVFoundation.framework in Frameworks */,
   3.282  				AA1EE47117605A7F0029C7A5 /* libSDL2test.a in Frameworks */,
   3.283  				FDC42FF40F0D866D009C87E1 /* libSDL2.a in Frameworks */,
   3.284 +				55FFA921212232C100D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.285  				FA684F811BAF1A5300DCFD1A /* GameController.framework in Frameworks */,
   3.286  				FA8B4BCE196766C100F8EB7C /* CoreMotion.framework in Frameworks */,
   3.287  				FDC42FF60F0D866D009C87E1 /* AudioToolbox.framework in Frameworks */,
   3.288 @@ -827,6 +873,7 @@
   3.289  				FDD2C1030E2E4F4B00B7A85F /* CoreGraphics.framework in Frameworks */,
   3.290  				FDD2C1040E2E4F4B00B7A85F /* UIKit.framework in Frameworks */,
   3.291  				FDD2C1050E2E4F4B00B7A85F /* Foundation.framework in Frameworks */,
   3.292 +				55FFA932212232CC00D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.293  				FDD2C1060E2E4F4B00B7A85F /* CoreAudio.framework in Frameworks */,
   3.294  			);
   3.295  			runOnlyForDeploymentPostprocessing = 0;
   3.296 @@ -845,6 +892,7 @@
   3.297  				FDD2C17A0E2E52C000B7A85F /* CoreGraphics.framework in Frameworks */,
   3.298  				FDD2C17B0E2E52C000B7A85F /* UIKit.framework in Frameworks */,
   3.299  				FDD2C17C0E2E52C000B7A85F /* Foundation.framework in Frameworks */,
   3.300 +				55FFA928212232C500D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.301  				FDD2C17D0E2E52C000B7A85F /* CoreAudio.framework in Frameworks */,
   3.302  			);
   3.303  			runOnlyForDeploymentPostprocessing = 0;
   3.304 @@ -863,6 +911,7 @@
   3.305  				FDD2C19E0E2E534F00B7A85F /* CoreGraphics.framework in Frameworks */,
   3.306  				FDD2C19F0E2E534F00B7A85F /* UIKit.framework in Frameworks */,
   3.307  				FDD2C1A00E2E534F00B7A85F /* Foundation.framework in Frameworks */,
   3.308 +				55FFA929212232C600D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.309  				FDD2C1A10E2E534F00B7A85F /* CoreAudio.framework in Frameworks */,
   3.310  			);
   3.311  			runOnlyForDeploymentPostprocessing = 0;
   3.312 @@ -881,6 +930,7 @@
   3.313  				FDD2C4570E2E773800B7A85F /* CoreGraphics.framework in Frameworks */,
   3.314  				FDD2C4580E2E773800B7A85F /* UIKit.framework in Frameworks */,
   3.315  				FDD2C4590E2E773800B7A85F /* Foundation.framework in Frameworks */,
   3.316 +				55FFA92A212232C600D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.317  				FDD2C45A0E2E773800B7A85F /* CoreAudio.framework in Frameworks */,
   3.318  			);
   3.319  			runOnlyForDeploymentPostprocessing = 0;
   3.320 @@ -899,6 +949,7 @@
   3.321  				FDD2C4750E2E77D700B7A85F /* CoreGraphics.framework in Frameworks */,
   3.322  				FDD2C4760E2E77D700B7A85F /* UIKit.framework in Frameworks */,
   3.323  				FDD2C4770E2E77D700B7A85F /* Foundation.framework in Frameworks */,
   3.324 +				55FFA92B212232C700D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.325  				FDD2C4780E2E77D700B7A85F /* CoreAudio.framework in Frameworks */,
   3.326  			);
   3.327  			runOnlyForDeploymentPostprocessing = 0;
   3.328 @@ -917,6 +968,7 @@
   3.329  				FDD2C5040E2E7F4800B7A85F /* CoreGraphics.framework in Frameworks */,
   3.330  				FDD2C5050E2E7F4800B7A85F /* UIKit.framework in Frameworks */,
   3.331  				FDD2C5060E2E7F4800B7A85F /* Foundation.framework in Frameworks */,
   3.332 +				55FFA92C212232C700D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.333  				FDD2C5070E2E7F4800B7A85F /* CoreAudio.framework in Frameworks */,
   3.334  			);
   3.335  			runOnlyForDeploymentPostprocessing = 0;
   3.336 @@ -935,6 +987,7 @@
   3.337  				FDD2C5220E2E807600B7A85F /* CoreGraphics.framework in Frameworks */,
   3.338  				FDD2C5230E2E807600B7A85F /* UIKit.framework in Frameworks */,
   3.339  				FDD2C5240E2E807600B7A85F /* Foundation.framework in Frameworks */,
   3.340 +				55FFA930212232CB00D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.341  				FDD2C5250E2E807600B7A85F /* CoreAudio.framework in Frameworks */,
   3.342  			);
   3.343  			runOnlyForDeploymentPostprocessing = 0;
   3.344 @@ -947,6 +1000,7 @@
   3.345  				FABA34C01D8B5BBA00915323 /* AVFoundation.framework in Frameworks */,
   3.346  				AA1EE47717605BAB0029C7A5 /* libSDL2test.a in Frameworks */,
   3.347  				FDBDE5CA0E313712006BAC0B /* libSDL2.a in Frameworks */,
   3.348 +				55FFA931212232CB00D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.349  				FA684F8F1BAF1A7E00DCFD1A /* GameController.framework in Frameworks */,
   3.350  				FA8B4BDC196766E800F8EB7C /* CoreMotion.framework in Frameworks */,
   3.351  				FDD2C5440E2E80E400B7A85F /* AudioToolbox.framework in Frameworks */,
   3.352 @@ -973,6 +1027,7 @@
   3.353  				FDD2C5800E2E8C7400B7A85F /* CoreGraphics.framework in Frameworks */,
   3.354  				FDD2C5810E2E8C7400B7A85F /* UIKit.framework in Frameworks */,
   3.355  				FDD2C5820E2E8C7400B7A85F /* Foundation.framework in Frameworks */,
   3.356 +				55FFA934212232CD00D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.357  				FDD2C5830E2E8C7400B7A85F /* CoreAudio.framework in Frameworks */,
   3.358  			);
   3.359  			runOnlyForDeploymentPostprocessing = 0;
   3.360 @@ -991,6 +1046,7 @@
   3.361  				FDD2C5BE0E2E8CFC00B7A85F /* CoreGraphics.framework in Frameworks */,
   3.362  				FDD2C5BF0E2E8CFC00B7A85F /* UIKit.framework in Frameworks */,
   3.363  				FDD2C5C00E2E8CFC00B7A85F /* Foundation.framework in Frameworks */,
   3.364 +				55FFA933212232CC00D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.365  				FDD2C5C10E2E8CFC00B7A85F /* CoreAudio.framework in Frameworks */,
   3.366  			);
   3.367  			runOnlyForDeploymentPostprocessing = 0;
   3.368 @@ -1009,6 +1065,7 @@
   3.369  				FDD2C6ED0E2E959E00B7A85F /* CoreGraphics.framework in Frameworks */,
   3.370  				FDD2C6EE0E2E959E00B7A85F /* UIKit.framework in Frameworks */,
   3.371  				FDD2C6EF0E2E959E00B7A85F /* Foundation.framework in Frameworks */,
   3.372 +				55FFA937212232CF00D7CBED /* CoreBluetooth.framework in Frameworks */,
   3.373  				FDD2C6F00E2E959E00B7A85F /* CoreAudio.framework in Frameworks */,
   3.374  			);
   3.375  			runOnlyForDeploymentPostprocessing = 0;
   3.376 @@ -1057,7 +1114,7 @@
   3.377  				AA1EE44D176059220029C7A5 /* SDL2test.xcodeproj */,
   3.378  				FD1B48AC0E3131CA007AB34E /* SDL.xcodeproj */,
   3.379  				FDA8AAD60E2D339A00EA573E /* Resources */,
   3.380 -				FDA8A7C30E2D10FA00EA573E /* Linked Frameworks */,
   3.381 +				FDA8A7C30E2D10FA00EA573E /* Frameworks */,
   3.382  				FDA8A73B0E2D0F0400EA573E /* src */,
   3.383  				19C28FACFE9D520D11CA2CBB /* Products */,
   3.384  				FABA34751D8B4EAC00915323 /* Frameworks */,
   3.385 @@ -1125,11 +1182,13 @@
   3.386  				FDA8A7610E2D0F1600EA573E /* torturethread.c */,
   3.387  			);
   3.388  			name = src;
   3.389 +			path = ../../test;
   3.390  			sourceTree = "<group>";
   3.391  		};
   3.392 -		FDA8A7C30E2D10FA00EA573E /* Linked Frameworks */ = {
   3.393 +		FDA8A7C30E2D10FA00EA573E /* Frameworks */ = {
   3.394  			isa = PBXGroup;
   3.395  			children = (
   3.396 +				55FFA91B212232BA00D7CBED /* CoreBluetooth.framework */,
   3.397  				FA684F7A1BAF1A4400DCFD1A /* GameController.framework */,
   3.398  				FA8B4BAC1967076F00F8EB7C /* CoreMotion.framework */,
   3.399  				FDA8A8980E2D111A00EA573E /* AudioToolbox.framework */,
   3.400 @@ -1140,7 +1199,7 @@
   3.401  				FDA8A89D0E2D111A00EA573E /* Foundation.framework */,
   3.402  				FDA8A89E0E2D111A00EA573E /* CoreAudio.framework */,
   3.403  			);
   3.404 -			name = "Linked Frameworks";
   3.405 +			name = Frameworks;
   3.406  			sourceTree = "<group>";
   3.407  		};
   3.408  		FDA8AAD60E2D339A00EA573E /* Resources */ = {
   3.409 @@ -1158,6 +1217,7 @@
   3.410  				FDD2C18A0E2E52FE00B7A85F /* utf8.txt */,
   3.411  			);
   3.412  			name = Resources;
   3.413 +			path = ../../test;
   3.414  			sourceTree = "<group>";
   3.415  		};
   3.416  /* End PBXGroup section */
     4.1 --- a/Xcode/SDL/SDL.xcodeproj/project.pbxproj	Tue Aug 21 13:44:11 2018 -0700
     4.2 +++ b/Xcode/SDL/SDL.xcodeproj/project.pbxproj	Tue Aug 21 16:47:44 2018 -0700
     4.3 @@ -397,12 +397,6 @@
     4.4  		5646243A1FF821FF0074AC87 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624371FF821CB0074AC87 /* Metal.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
     4.5  		5646243B1FF822100074AC87 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624351FF821B80074AC87 /* QuartzCore.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
     4.6  		5646243C1FF822170074AC87 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 564624371FF821CB0074AC87 /* Metal.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
     4.7 -		565AF96A1FF8238D0077498A /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 565AF9691FF823840077498A /* QuartzCore.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
     4.8 -		565AF96B1FF8238E0077498A /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 565AF9691FF823840077498A /* QuartzCore.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
     4.9 -		565AF96C1FF8238E0077498A /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 565AF9691FF823840077498A /* QuartzCore.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
    4.10 -		565AF96D1FF823980077498A /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 565AF9681FF8237A0077498A /* Metal.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
    4.11 -		565AF96E1FF823980077498A /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 565AF9681FF8237A0077498A /* Metal.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
    4.12 -		565AF96F1FF823990077498A /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 565AF9681FF8237A0077498A /* Metal.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
    4.13  		566CDE8F148F0AC200C5A9BB /* SDL_dropevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 566CDE8D148F0AC200C5A9BB /* SDL_dropevents_c.h */; };
    4.14  		566CDE90148F0AC200C5A9BB /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 566CDE8E148F0AC200C5A9BB /* SDL_dropevents.c */; };
    4.15  		567E2F1C17C44BB2005F1892 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = 567E2F1B17C44BB2005F1892 /* SDL_sysfilesystem.m */; };
    4.16 @@ -939,12 +933,12 @@
    4.17  /* End PBXContainerItemProxy section */
    4.18  
    4.19  /* Begin PBXFileReference section */
    4.20 -		0073179D0858DECD00B2BC32 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
    4.21 -		0073179F0858DECD00B2BC32 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
    4.22 -		007317C10858E15000B2BC32 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
    4.23 +		0073179D0858DECD00B2BC32 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
    4.24 +		0073179F0858DECD00B2BC32 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; };
    4.25 +		007317C10858E15000B2BC32 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
    4.26  		00794D3F09D0C461003FC8A1 /* License.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = License.txt; sourceTree = "<group>"; };
    4.27 -		00CFA89C106B4BA100758660 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ForceFeedback.framework; path = /System/Library/Frameworks/ForceFeedback.framework; sourceTree = "<absolute>"; };
    4.28 -		00D0D08310675DD9004B05EF /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
    4.29 +		00CFA89C106B4BA100758660 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ForceFeedback.framework; path = System/Library/Frameworks/ForceFeedback.framework; sourceTree = SDKROOT; };
    4.30 +		00D0D08310675DD9004B05EF /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
    4.31  		04043BBA12FEB1BE0076DB1F /* SDL_glfuncs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_glfuncs.h; sourceTree = "<group>"; };
    4.32  		041B2C9E12FA0D680087D585 /* SDL_render.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render.c; sourceTree = "<group>"; };
    4.33  		041B2C9F12FA0D680087D585 /* SDL_sysrender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_sysrender.h; sourceTree = "<group>"; };
    4.34 @@ -957,8 +951,8 @@
    4.35  		0442EC1B12FE1BCB004C9285 /* SDL_render_sw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render_sw.c; sourceTree = "<group>"; };
    4.36  		0442EC5812FE1C60004C9285 /* SDL_x11framebuffer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_x11framebuffer.c; sourceTree = "<group>"; };
    4.37  		0442EC5912FE1C60004C9285 /* SDL_x11framebuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_x11framebuffer.h; sourceTree = "<group>"; };
    4.38 -		0442EC5E12FE1C75004C9285 /* SDL_hints.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_hints.c; path = ../../src/SDL_hints.c; sourceTree = SOURCE_ROOT; };
    4.39 -		04BAC0C71300C2160055DE28 /* SDL_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_log.c; path = ../../src/SDL_log.c; sourceTree = SOURCE_ROOT; };
    4.40 +		0442EC5E12FE1C75004C9285 /* SDL_hints.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hints.c; sourceTree = "<group>"; };
    4.41 +		04BAC0C71300C2160055DE28 /* SDL_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_log.c; sourceTree = "<group>"; };
    4.42  		04BDFD7412E6671700899322 /* SDL_atomic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_atomic.c; sourceTree = "<group>"; };
    4.43  		04BDFD7512E6671700899322 /* SDL_spinlock.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_spinlock.c; sourceTree = "<group>"; };
    4.44  		04BDFD8812E6671700899322 /* SDL_diskaudio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_diskaudio.c; sourceTree = "<group>"; };
    4.45 @@ -1013,11 +1007,11 @@
    4.46  		04BDFE3312E6671700899322 /* SDL_sysloadso.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sysloadso.c; sourceTree = "<group>"; };
    4.47  		04BDFE4B12E6671700899322 /* SDL_syspower.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syspower.c; sourceTree = "<group>"; };
    4.48  		04BDFE4E12E6671700899322 /* SDL_power.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_power.c; sourceTree = "<group>"; };
    4.49 -		04BDFE5512E6671700899322 /* SDL_assert_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_assert_c.h; path = ../../src/SDL_assert_c.h; sourceTree = SOURCE_ROOT; };
    4.50 -		04BDFE5612E6671700899322 /* SDL_assert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_assert.c; path = ../../src/SDL_assert.c; sourceTree = SOURCE_ROOT; };
    4.51 -		04BDFE5812E6671700899322 /* SDL_error_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_error_c.h; path = ../../src/SDL_error_c.h; sourceTree = SOURCE_ROOT; };
    4.52 -		04BDFE5912E6671700899322 /* SDL_error.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_error.c; path = ../../src/SDL_error.c; sourceTree = SOURCE_ROOT; };
    4.53 -		04BDFE5C12E6671700899322 /* SDL.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL.c; path = ../../src/SDL.c; sourceTree = SOURCE_ROOT; };
    4.54 +		04BDFE5512E6671700899322 /* SDL_assert_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_assert_c.h; sourceTree = "<group>"; };
    4.55 +		04BDFE5612E6671700899322 /* SDL_assert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_assert.c; sourceTree = "<group>"; };
    4.56 +		04BDFE5812E6671700899322 /* SDL_error_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_error_c.h; sourceTree = "<group>"; };
    4.57 +		04BDFE5912E6671700899322 /* SDL_error.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_error.c; sourceTree = "<group>"; };
    4.58 +		04BDFE5C12E6671700899322 /* SDL.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL.c; sourceTree = "<group>"; };
    4.59  		04BDFE5E12E6671700899322 /* SDL_getenv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_getenv.c; sourceTree = "<group>"; };
    4.60  		04BDFE5F12E6671700899322 /* SDL_iconv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_iconv.c; sourceTree = "<group>"; };
    4.61  		04BDFE6012E6671700899322 /* SDL_malloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_malloc.c; sourceTree = "<group>"; };
    4.62 @@ -1131,21 +1125,19 @@
    4.63  		4D1664521EDD60AD003DE88E /* SDL_cocoavulkan.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_cocoavulkan.m; sourceTree = "<group>"; };
    4.64  		4D4820431F0F10B400EDC31C /* SDL_vulkan.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDL_vulkan.h; sourceTree = "<group>"; };
    4.65  		4D7517281EE2562B00820EEA /* SDL_cocoametalview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_cocoametalview.h; sourceTree = "<group>"; };
    4.66 -		56115BB91DF72C6D00F47E1E /* SDL_dataqueue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_dataqueue.c; path = ../../src/SDL_dataqueue.c; sourceTree = "<group>"; };
    4.67 -		56115BBA1DF72C6D00F47E1E /* SDL_dataqueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_dataqueue.h; path = ../../src/SDL_dataqueue.h; sourceTree = "<group>"; };
    4.68 +		56115BB91DF72C6D00F47E1E /* SDL_dataqueue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dataqueue.c; sourceTree = "<group>"; };
    4.69 +		56115BBA1DF72C6D00F47E1E /* SDL_dataqueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dataqueue.h; sourceTree = "<group>"; };
    4.70  		564624351FF821B80074AC87 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
    4.71  		564624371FF821CB0074AC87 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
    4.72 -		565AF9681FF8237A0077498A /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Metal.framework; sourceTree = "<group>"; };
    4.73 -		565AF9691FF823840077498A /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; };
    4.74  		566CDE8D148F0AC200C5A9BB /* SDL_dropevents_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dropevents_c.h; sourceTree = "<group>"; };
    4.75  		566CDE8E148F0AC200C5A9BB /* SDL_dropevents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dropevents.c; sourceTree = "<group>"; };
    4.76 -		567E2F1B17C44BB2005F1892 /* SDL_sysfilesystem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDL_sysfilesystem.m; path = ../../src/filesystem/cocoa/SDL_sysfilesystem.m; sourceTree = "<group>"; };
    4.77 +		567E2F1B17C44BB2005F1892 /* SDL_sysfilesystem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDL_sysfilesystem.m; path = cocoa/SDL_sysfilesystem.m; sourceTree = "<group>"; };
    4.78  		567E2F2017C44C35005F1892 /* SDL_filesystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_filesystem.h; sourceTree = "<group>"; };
    4.79 -		56A670081856545C0007D20F /* SDL_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_internal.h; path = ../../src/SDL_internal.h; sourceTree = "<group>"; };
    4.80 -		56A6701D185654B40007D20F /* SDL_dynapi_procs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_dynapi_procs.h; path = ../../src/dynapi/SDL_dynapi_procs.h; sourceTree = "<group>"; };
    4.81 -		56A6701E185654B40007D20F /* SDL_dynapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_dynapi.c; path = ../../src/dynapi/SDL_dynapi.c; sourceTree = "<group>"; };
    4.82 -		56A6701F185654B40007D20F /* SDL_dynapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_dynapi.h; path = ../../src/dynapi/SDL_dynapi.h; sourceTree = "<group>"; };
    4.83 -		56A67020185654B40007D20F /* SDL_dynapi_overrides.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDL_dynapi_overrides.h; path = ../../src/dynapi/SDL_dynapi_overrides.h; sourceTree = "<group>"; };
    4.84 +		56A670081856545C0007D20F /* SDL_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_internal.h; sourceTree = "<group>"; };
    4.85 +		56A6701D185654B40007D20F /* SDL_dynapi_procs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dynapi_procs.h; sourceTree = "<group>"; };
    4.86 +		56A6701E185654B40007D20F /* SDL_dynapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dynapi.c; sourceTree = "<group>"; };
    4.87 +		56A6701F185654B40007D20F /* SDL_dynapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dynapi.h; sourceTree = "<group>"; };
    4.88 +		56A67020185654B40007D20F /* SDL_dynapi_overrides.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dynapi_overrides.h; sourceTree = "<group>"; };
    4.89  		5C2EF69B1FC987C6003F5197 /* SDL_gles2funcs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_gles2funcs.h; sourceTree = "<group>"; };
    4.90  		5C2EF69C1FC987C6003F5197 /* SDL_render_gles2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_render_gles2.c; sourceTree = "<group>"; };
    4.91  		5C2EF69D1FC987C6003F5197 /* SDL_shaders_gles2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_shaders_gles2.h; sourceTree = "<group>"; };
    4.92 @@ -1256,7 +1248,7 @@
    4.93  		F59C710300D5CB5801000001 /* ReadMe.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = ReadMe.txt; sourceTree = "<group>"; };
    4.94  		F59C710600D5CB5801000001 /* SDL.info */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SDL.info; sourceTree = "<group>"; };
    4.95  		F5A2EF3900C6A39A01000001 /* BUGS.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = BUGS.txt; path = ../../BUGS.txt; sourceTree = SOURCE_ROOT; };
    4.96 -		FA73671C19A540EF004122E4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = /System/Library/Frameworks/CoreVideo.framework; sourceTree = "<absolute>"; };
    4.97 +		FA73671C19A540EF004122E4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; };
    4.98  		FABA34C61D8B5DB100915323 /* SDL_coreaudio.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_coreaudio.m; sourceTree = "<group>"; };
    4.99  /* End PBXFileReference section */
   4.100  
   4.101 @@ -1268,14 +1260,12 @@
   4.102  				564624381FF821DA0074AC87 /* Metal.framework in Frameworks */,
   4.103  				564624361FF821C20074AC87 /* QuartzCore.framework in Frameworks */,
   4.104  				A7381E971D8B6A0300B177DD /* AudioToolbox.framework in Frameworks */,
   4.105 -				565AF96A1FF8238D0077498A /* QuartzCore.framework in Frameworks */,
   4.106  				00D0D0D810675E46004B05EF /* Carbon.framework in Frameworks */,
   4.107  				007317A40858DECD00B2BC32 /* Cocoa.framework in Frameworks */,
   4.108  				A7381E961D8B69D600B177DD /* CoreAudio.framework in Frameworks */,
   4.109  				00D0D08410675DD9004B05EF /* CoreFoundation.framework in Frameworks */,
   4.110  				FA73671D19A540EF004122E4 /* CoreVideo.framework in Frameworks */,
   4.111  				00CFA89D106B4BA100758660 /* ForceFeedback.framework in Frameworks */,
   4.112 -				565AF96D1FF823980077498A /* Metal.framework in Frameworks */,
   4.113  				007317A60858DECD00B2BC32 /* IOKit.framework in Frameworks */,
   4.114  			);
   4.115  			runOnlyForDeploymentPostprocessing = 0;
   4.116 @@ -1287,14 +1277,12 @@
   4.117  				5646243A1FF821FF0074AC87 /* Metal.framework in Frameworks */,
   4.118  				564624391FF821EF0074AC87 /* QuartzCore.framework in Frameworks */,
   4.119  				56C5237E1D8F4985001F2F30 /* CoreAudio.framework in Frameworks */,
   4.120 -				565AF96B1FF8238E0077498A /* QuartzCore.framework in Frameworks */,
   4.121  				FA73671E19A54140004122E4 /* CoreVideo.framework in Frameworks */,
   4.122  				007317AB0858DECD00B2BC32 /* Cocoa.framework in Frameworks */,
   4.123  				007317AD0858DECD00B2BC32 /* IOKit.framework in Frameworks */,
   4.124  				56C523801D8F498B001F2F30 /* CoreFoundation.framework in Frameworks */,
   4.125  				007317C30858E15000B2BC32 /* Carbon.framework in Frameworks */,
   4.126  				DB31408B17554D37006C0E22 /* ForceFeedback.framework in Frameworks */,
   4.127 -				565AF96E1FF823980077498A /* Metal.framework in Frameworks */,
   4.128  				562C4AE91D8F496200AF9EBE /* AudioToolbox.framework in Frameworks */,
   4.129  			);
   4.130  			runOnlyForDeploymentPostprocessing = 0;
   4.131 @@ -1306,14 +1294,12 @@
   4.132  				5646243C1FF822170074AC87 /* Metal.framework in Frameworks */,
   4.133  				5646243B1FF822100074AC87 /* QuartzCore.framework in Frameworks */,
   4.134  				56C5237F1D8F4985001F2F30 /* CoreAudio.framework in Frameworks */,
   4.135 -				565AF96C1FF8238E0077498A /* QuartzCore.framework in Frameworks */,
   4.136  				FA73671F19A54144004122E4 /* CoreVideo.framework in Frameworks */,
   4.137  				DB31406E17554B71006C0E22 /* Cocoa.framework in Frameworks */,
   4.138  				DB31407017554B71006C0E22 /* IOKit.framework in Frameworks */,
   4.139  				56C523811D8F498C001F2F30 /* CoreFoundation.framework in Frameworks */,
   4.140  				DB31407217554B71006C0E22 /* Carbon.framework in Frameworks */,
   4.141  				DB31408D17554D3C006C0E22 /* ForceFeedback.framework in Frameworks */,
   4.142 -				565AF96F1FF823990077498A /* Metal.framework in Frameworks */,
   4.143  				562C4AEA1D8F496300AF9EBE /* AudioToolbox.framework in Frameworks */,
   4.144  			);
   4.145  			runOnlyForDeploymentPostprocessing = 0;
   4.146 @@ -1394,7 +1380,6 @@
   4.147  		034768DDFF38A45A11DB9C8B /* Products */ = {
   4.148  			isa = PBXGroup;
   4.149  			children = (
   4.150 -				089C1665FE841158C02AAC07 /* Resources */,
   4.151  				BECDF66C0761BA81005FE872 /* SDL2.framework */,
   4.152  				BECDF6B30761BA81005FE872 /* libSDL2.a */,
   4.153  				BECDF6BE0761BA81005FE872 /* Standard DMG */,
   4.154 @@ -1415,9 +1400,8 @@
   4.155  				04409B8F12FA97ED00FB9AA8 /* SDL_yuv_sw_c.h */,
   4.156  				04409B9012FA97ED00FB9AA8 /* SDL_yuv_sw.c */,
   4.157  			);
   4.158 -			name = render;
   4.159 -			path = ../../src/render;
   4.160 -			sourceTree = SOURCE_ROOT;
   4.161 +			path = render;
   4.162 +			sourceTree = "<group>";
   4.163  		};
   4.164  		041B2C9A12FA0D680087D585 /* opengl */ = {
   4.165  			isa = PBXGroup;
   4.166 @@ -1458,9 +1442,8 @@
   4.167  				04BDFD7412E6671700899322 /* SDL_atomic.c */,
   4.168  				04BDFD7512E6671700899322 /* SDL_spinlock.c */,
   4.169  			);
   4.170 -			name = atomic;
   4.171 -			path = ../../src/atomic;
   4.172 -			sourceTree = SOURCE_ROOT;
   4.173 +			path = atomic;
   4.174 +			sourceTree = "<group>";
   4.175  		};
   4.176  		04BDFD7612E6671700899322 /* audio */ = {
   4.177  			isa = PBXGroup;
   4.178 @@ -1479,9 +1462,8 @@
   4.179  				04BDFDC312E6671700899322 /* SDL_wave.c */,
   4.180  				04BDFDC412E6671700899322 /* SDL_wave.h */,
   4.181  			);
   4.182 -			name = audio;
   4.183 -			path = ../../src/audio;
   4.184 -			sourceTree = SOURCE_ROOT;
   4.185 +			path = audio;
   4.186 +			sourceTree = "<group>";
   4.187  		};
   4.188  		04BDFD8712E6671700899322 /* disk */ = {
   4.189  			isa = PBXGroup;
   4.190 @@ -1515,9 +1497,8 @@
   4.191  			children = (
   4.192  				04BDFDD412E6671700899322 /* SDL_cpuinfo.c */,
   4.193  			);
   4.194 -			name = cpuinfo;
   4.195 -			path = ../../src/cpuinfo;
   4.196 -			sourceTree = SOURCE_ROOT;
   4.197 +			path = cpuinfo;
   4.198 +			sourceTree = "<group>";
   4.199  		};
   4.200  		04BDFDD512E6671700899322 /* events */ = {
   4.201  			isa = PBXGroup;
   4.202 @@ -1546,9 +1527,8 @@
   4.203  				04BDFDEA12E6671700899322 /* SDL_windowevents.c */,
   4.204  				04BDFDEB12E6671700899322 /* SDL_windowevents_c.h */,
   4.205  			);
   4.206 -			name = events;
   4.207 -			path = ../../src/events;
   4.208 -			sourceTree = SOURCE_ROOT;
   4.209 +			path = events;
   4.210 +			sourceTree = "<group>";
   4.211  		};
   4.212  		04BDFDEC12E6671700899322 /* file */ = {
   4.213  			isa = PBXGroup;
   4.214 @@ -1556,9 +1536,8 @@
   4.215  				04BDFDED12E6671700899322 /* cocoa */,
   4.216  				04BDFDF012E6671700899322 /* SDL_rwops.c */,
   4.217  			);
   4.218 -			name = file;
   4.219 -			path = ../../src/file;
   4.220 -			sourceTree = SOURCE_ROOT;
   4.221 +			path = file;
   4.222 +			sourceTree = "<group>";
   4.223  		};
   4.224  		04BDFDED12E6671700899322 /* cocoa */ = {
   4.225  			isa = PBXGroup;
   4.226 @@ -1577,9 +1556,8 @@
   4.227  				04BDFDFB12E6671700899322 /* SDL_haptic_c.h */,
   4.228  				04BDFDFC12E6671700899322 /* SDL_syshaptic.h */,
   4.229  			);
   4.230 -			name = haptic;
   4.231 -			path = ../../src/haptic;
   4.232 -			sourceTree = SOURCE_ROOT;
   4.233 +			path = haptic;
   4.234 +			sourceTree = "<group>";
   4.235  		};
   4.236  		04BDFDF212E6671700899322 /* darwin */ = {
   4.237  			isa = PBXGroup;
   4.238 @@ -1600,9 +1578,8 @@
   4.239  				BBFC088A164C6514003E6A99 /* SDL_gamecontroller.c */,
   4.240  				04BDFE1812E6671700899322 /* SDL_sysjoystick.h */,
   4.241  			);
   4.242 -			name = joystick;
   4.243 -			path = ../../src/joystick;
   4.244 -			sourceTree = SOURCE_ROOT;
   4.245 +			path = joystick;
   4.246 +			sourceTree = "<group>";
   4.247  		};
   4.248  		04BDFE0612E6671700899322 /* darwin */ = {
   4.249  			isa = PBXGroup;
   4.250 @@ -1618,9 +1595,8 @@
   4.251  			children = (
   4.252  				04BDFE3212E6671700899322 /* dlopen */,
   4.253  			);
   4.254 -			name = loadso;
   4.255 -			path = ../../src/loadso;
   4.256 -			sourceTree = SOURCE_ROOT;
   4.257 +			path = loadso;
   4.258 +			sourceTree = "<group>";
   4.259  		};
   4.260  		04BDFE3212E6671700899322 /* dlopen */ = {
   4.261  			isa = PBXGroup;
   4.262 @@ -1636,9 +1612,8 @@
   4.263  				04BDFE4A12E6671700899322 /* macosx */,
   4.264  				04BDFE4E12E6671700899322 /* SDL_power.c */,
   4.265  			);
   4.266 -			name = power;
   4.267 -			path = ../../src/power;
   4.268 -			sourceTree = SOURCE_ROOT;
   4.269 +			path = power;
   4.270 +			sourceTree = "<group>";
   4.271  		};
   4.272  		04BDFE4A12E6671700899322 /* macosx */ = {
   4.273  			isa = PBXGroup;
   4.274 @@ -1658,9 +1633,8 @@
   4.275  				04BDFE6212E6671700899322 /* SDL_stdlib.c */,
   4.276  				04BDFE6312E6671700899322 /* SDL_string.c */,
   4.277  			);
   4.278 -			name = stdlib;
   4.279 -			path = ../../src/stdlib;
   4.280 -			sourceTree = SOURCE_ROOT;
   4.281 +			path = stdlib;
   4.282 +			sourceTree = "<group>";
   4.283  		};
   4.284  		04BDFE6412E6671800899322 /* thread */ = {
   4.285  			isa = PBXGroup;
   4.286 @@ -1670,9 +1644,8 @@
   4.287  				04BDFE8C12E6671800899322 /* SDL_thread.c */,
   4.288  				04BDFE8D12E6671800899322 /* SDL_thread_c.h */,
   4.289  			);
   4.290 -			name = thread;
   4.291 -			path = ../../src/thread;
   4.292 -			sourceTree = SOURCE_ROOT;
   4.293 +			path = thread;
   4.294 +			sourceTree = "<group>";
   4.295  		};
   4.296  		04BDFE7D12E6671800899322 /* pthread */ = {
   4.297  			isa = PBXGroup;
   4.298 @@ -1695,9 +1668,8 @@
   4.299  				04BDFE9F12E6671800899322 /* SDL_timer.c */,
   4.300  				04BDFEA012E6671800899322 /* SDL_timer_c.h */,
   4.301  			);
   4.302 -			name = timer;
   4.303 -			path = ../../src/timer;
   4.304 -			sourceTree = SOURCE_ROOT;
   4.305 +			path = timer;
   4.306 +			sourceTree = "<group>";
   4.307  		};
   4.308  		04BDFEA112E6671800899322 /* unix */ = {
   4.309  			isa = PBXGroup;
   4.310 @@ -1748,9 +1720,8 @@
   4.311  				AA9A7F141FB0209C00FED37F /* SDL_yuv_c.h */,
   4.312  				AA9A7F131FB0209C00FED37F /* SDL_yuv.c */,
   4.313  			);
   4.314 -			name = video;
   4.315 -			path = ../../src/video;
   4.316 -			sourceTree = SOURCE_ROOT;
   4.317 +			path = video;
   4.318 +			sourceTree = "<group>";
   4.319  		};
   4.320  		04BDFEC112E6671800899322 /* cocoa */ = {
   4.321  			isa = PBXGroup;
   4.322 @@ -1848,7 +1819,6 @@
   4.323  				08FB77ACFE841707C02AAC07 /* Library Source */,
   4.324  				034768DDFF38A45A11DB9C8B /* Products */,
   4.325  				BECDF66B0761BA81005FE872 /* Info-Framework.plist */,
   4.326 -				BEC562FE0761C0E800A33029 /* Linked Frameworks */,
   4.327  				564624341FF821B70074AC87 /* Frameworks */,
   4.328  			);
   4.329  			comments = "To build Universal Binaries, we have experimented with a variety of different options.\nThe complication is that we must retain compatibility with at least 10.2. \nThe Universal Binary defaults only work for > 10.3.9\n\nSo far, we have found:\ngcc 4.0.0 with Xcode 2.1 always links against libgcc_s. gcc 4.0.1 from Xcode 2.2 fixes this problem.\n\nBut gcc 4.0 will not work with < 10.3.9 because we continue to get an undefined symbol to _fprintf$LDBL128.\nSo we must use gcc 3.3 on PPC to accomplish 10.2 support. (But 4.0 is required for i386.)\n\nSetting the deployment target to 10.4 will disable prebinding, so for PPC, we set it less than 10.4 to preserve prebinding for legacy support.\n\nSetting the PPC SDKROOT to /Developers/SDKs/MacOSX10.2.8.sdk will link to 63.0.0 libSystem.B.dylib. Leaving it at current or 10.4u links to 88.1.2. However, as long as we are using gcc 3.3, it doesn't seem to matter as testing has demonstrated both will run. We have decided not to invoke the 10.2.8 SDK because it is not a default installed component with Xcode which will probably cause most people problems. However, rather than deleting the SDKROOT_ppc entry entirely, we have mapped it to 10.4u in case we decide we need to change this setting.\n\nTo use Altivec or SSE, we needed architecture specific flags:\nOTHER_CFLAGS_ppc\nOTHER_CFLAGS_i386\nOTHER_CFLAGS=$(OTHER_CFLAGS_($CURRENT_ARCH))\n\nThe general OTHER_CFLAGS needed to be manually mapped to architecture specific options because Xcode didn't do this automatically for us.\n\n\n";
   4.330 @@ -1858,13 +1828,6 @@
   4.331  			tabWidth = 4;
   4.332  			usesTabs = 0;
   4.333  		};
   4.334 -		089C1665FE841158C02AAC07 /* Resources */ = {
   4.335 -			isa = PBXGroup;
   4.336 -			children = (
   4.337 -			);
   4.338 -			name = Resources;
   4.339 -			sourceTree = "<group>";
   4.340 -		};
   4.341  		08FB77ACFE841707C02AAC07 /* Library Source */ = {
   4.342  			isa = PBXGroup;
   4.343  			children = (
   4.344 @@ -1898,11 +1861,20 @@
   4.345  				04BDFE5C12E6671700899322 /* SDL.c */,
   4.346  			);
   4.347  			name = "Library Source";
   4.348 +			path = ../../src;
   4.349  			sourceTree = "<group>";
   4.350  		};
   4.351  		564624341FF821B70074AC87 /* Frameworks */ = {
   4.352  			isa = PBXGroup;
   4.353  			children = (
   4.354 +				A7381E931D8B69C300B177DD /* AudioToolbox.framework */,
   4.355 +				007317C10858E15000B2BC32 /* Carbon.framework */,
   4.356 +				0073179D0858DECD00B2BC32 /* Cocoa.framework */,
   4.357 +				A7381E951D8B69D600B177DD /* CoreAudio.framework */,
   4.358 +				00D0D08310675DD9004B05EF /* CoreFoundation.framework */,
   4.359 +				FA73671C19A540EF004122E4 /* CoreVideo.framework */,
   4.360 +				00CFA89C106B4BA100758660 /* ForceFeedback.framework */,
   4.361 +				0073179F0858DECD00B2BC32 /* IOKit.framework */,
   4.362  				564624371FF821CB0074AC87 /* Metal.framework */,
   4.363  				564624351FF821B80074AC87 /* QuartzCore.framework */,
   4.364  			);
   4.365 @@ -1914,7 +1886,7 @@
   4.366  			children = (
   4.367  				567E2F1B17C44BB2005F1892 /* SDL_sysfilesystem.m */,
   4.368  			);
   4.369 -			name = filesystem;
   4.370 +			path = filesystem;
   4.371  			sourceTree = "<group>";
   4.372  		};
   4.373  		56A6701C1856549B0007D20F /* dynapi */ = {
   4.374 @@ -1925,7 +1897,7 @@
   4.375  				56A6701F185654B40007D20F /* SDL_dynapi.h */,
   4.376  				56A67020185654B40007D20F /* SDL_dynapi_overrides.h */,
   4.377  			);
   4.378 -			name = dynapi;
   4.379 +			path = dynapi;
   4.380  			sourceTree = "<group>";
   4.381  		};
   4.382  		5C2EF6921FC986D8003F5197 /* opengles2 */ = {
   4.383 @@ -1966,9 +1938,8 @@
   4.384  			children = (
   4.385  				A704170720F09A6700A82227 /* mac */,
   4.386  			);
   4.387 -			name = hidapi;
   4.388 -			path = ../../src/hidapi;
   4.389 -			sourceTree = SOURCE_ROOT;
   4.390 +			path = hidapi;
   4.391 +			sourceTree = "<group>";
   4.392  		};
   4.393  		AA9A7F0E1FB0200B00FED37F /* yuv2rgb */ = {
   4.394  			isa = PBXGroup;
   4.395 @@ -1976,9 +1947,8 @@
   4.396  				AA9A7F101FB0206300FED37F /* yuv_rgb.c */,
   4.397  				AA9A7F0F1FB0206300FED37F /* yuv_rgb.h */,
   4.398  			);
   4.399 -			name = yuv2rgb;
   4.400 -			path = ../../src/video/yuv2rgb;
   4.401 -			sourceTree = SOURCE_ROOT;
   4.402 +			path = yuv2rgb;
   4.403 +			sourceTree = "<group>";
   4.404  		};
   4.405  		AADC5A401FDA030E00960936 /* metal */ = {
   4.406  			isa = PBXGroup;
   4.407 @@ -3196,10 +3166,7 @@
   4.408  				FRAMEWORK_VERSION = A;
   4.409  				INFOPLIST_FILE = "Info-Framework.plist";
   4.410  				INSTALL_PATH = "@rpath";
   4.411 -				OTHER_LDFLAGS = (
   4.412 -					"-Wl,-weak_framework,Metal",
   4.413 -					"-liconv",
   4.414 -				);
   4.415 +				OTHER_LDFLAGS = "-liconv";
   4.416  				PRODUCT_BUNDLE_IDENTIFIER = org.libsdl.SDL2;
   4.417  				PRODUCT_NAME = SDL2;
   4.418  				PROVISIONING_PROFILE = "";
   4.419 @@ -3293,10 +3260,7 @@
   4.420  				FRAMEWORK_VERSION = A;
   4.421  				INFOPLIST_FILE = "Info-Framework.plist";
   4.422  				INSTALL_PATH = "@rpath";
   4.423 -				OTHER_LDFLAGS = (
   4.424 -					"-Wl,-weak_framework,Metal",
   4.425 -					"-liconv",
   4.426 -				);
   4.427 +				OTHER_LDFLAGS = "-liconv";
   4.428  				PRODUCT_BUNDLE_IDENTIFIER = org.libsdl.SDL2;
   4.429  				PRODUCT_NAME = SDL2;
   4.430  				PROVISIONING_PROFILE = "";
     5.1 --- a/Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj	Tue Aug 21 13:44:11 2018 -0700
     5.2 +++ b/Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj	Tue Aug 21 16:47:44 2018 -0700
     5.3 @@ -1134,36 +1134,36 @@
     5.4  
     5.5  /* Begin PBXFileReference section */
     5.6  		0017958C10741F7900F5D044 /* testatomic */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testatomic; sourceTree = BUILT_PRODUCTS_DIR; };
     5.7 -		0017958F1074216E00F5D044 /* testatomic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testatomic.c; path = ../../test/testatomic.c; sourceTree = SOURCE_ROOT; };
     5.8 +		0017958F1074216E00F5D044 /* testatomic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testatomic.c; sourceTree = "<group>"; };
     5.9  		001795AD107421BF00F5D044 /* testaudioinfo */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testaudioinfo; sourceTree = BUILT_PRODUCTS_DIR; };
    5.10 -		001795B01074222D00F5D044 /* testaudioinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testaudioinfo.c; path = ../../test/testaudioinfo.c; sourceTree = SOURCE_ROOT; };
    5.11 +		001795B01074222D00F5D044 /* testaudioinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testaudioinfo.c; sourceTree = "<group>"; };
    5.12  		0017972110742F3200F5D044 /* testgl2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testgl2; sourceTree = BUILT_PRODUCTS_DIR; };
    5.13 -		0017972710742FB900F5D044 /* testgl2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testgl2.c; path = ../../test/testgl2.c; sourceTree = SOURCE_ROOT; };
    5.14 +		0017972710742FB900F5D044 /* testgl2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testgl2.c; sourceTree = "<group>"; };
    5.15  		00179748107430D600F5D044 /* testhaptic */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testhaptic; sourceTree = BUILT_PRODUCTS_DIR; };
    5.16 -		0017974E1074315700F5D044 /* testhaptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testhaptic.c; path = ../../test/testhaptic.c; sourceTree = SOURCE_ROOT; };
    5.17 +		0017974E1074315700F5D044 /* testhaptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testhaptic.c; sourceTree = "<group>"; };
    5.18  		0017976E107431B300F5D044 /* testdraw2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testdraw2; sourceTree = BUILT_PRODUCTS_DIR; };
    5.19 -		001797711074320D00F5D044 /* testdraw2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testdraw2.c; path = ../../test/testdraw2.c; sourceTree = SOURCE_ROOT; };
    5.20 +		001797711074320D00F5D044 /* testdraw2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testdraw2.c; sourceTree = "<group>"; };
    5.21  		0017978E107432AE00F5D044 /* testime */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testime; sourceTree = BUILT_PRODUCTS_DIR; };
    5.22 -		00179791107432FA00F5D044 /* testime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testime.c; path = ../../test/testime.c; sourceTree = SOURCE_ROOT; };
    5.23 +		00179791107432FA00F5D044 /* testime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testime.c; sourceTree = "<group>"; };
    5.24  		001797AE1074334C00F5D044 /* testintersections */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testintersections; sourceTree = BUILT_PRODUCTS_DIR; };
    5.25 -		001797B31074339C00F5D044 /* testintersections.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testintersections.c; path = ../../test/testintersections.c; sourceTree = SOURCE_ROOT; };
    5.26 +		001797B31074339C00F5D044 /* testintersections.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testintersections.c; sourceTree = "<group>"; };
    5.27  		001797D0107433C600F5D044 /* testloadso */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testloadso; sourceTree = BUILT_PRODUCTS_DIR; };
    5.28 -		001797D31074343E00F5D044 /* testloadso.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testloadso.c; path = ../../test/testloadso.c; sourceTree = SOURCE_ROOT; };
    5.29 +		001797D31074343E00F5D044 /* testloadso.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testloadso.c; sourceTree = "<group>"; };
    5.30  		001798121074355200F5D044 /* testmultiaudio */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testmultiaudio; sourceTree = BUILT_PRODUCTS_DIR; };
    5.31 -		001798151074359B00F5D044 /* testmultiaudio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testmultiaudio.c; path = ../../test/testmultiaudio.c; sourceTree = SOURCE_ROOT; };
    5.32 -		0017985A107436ED00F5D044 /* testnative.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testnative.c; path = ../../test/testnative.c; sourceTree = SOURCE_ROOT; };
    5.33 -		0017985B107436ED00F5D044 /* testnative.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = testnative.h; path = ../../test/testnative.h; sourceTree = SOURCE_ROOT; };
    5.34 -		0017985C107436ED00F5D044 /* testnativecocoa.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = testnativecocoa.m; path = ../../test/testnativecocoa.m; sourceTree = SOURCE_ROOT; };
    5.35 -		00179872107438D000F5D044 /* testnativex11.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testnativex11.c; path = ../../test/testnativex11.c; sourceTree = SOURCE_ROOT; };
    5.36 +		001798151074359B00F5D044 /* testmultiaudio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testmultiaudio.c; sourceTree = "<group>"; };
    5.37 +		0017985A107436ED00F5D044 /* testnative.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testnative.c; sourceTree = "<group>"; };
    5.38 +		0017985B107436ED00F5D044 /* testnative.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = testnative.h; sourceTree = "<group>"; };
    5.39 +		0017985C107436ED00F5D044 /* testnativecocoa.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = testnativecocoa.m; sourceTree = "<group>"; };
    5.40 +		00179872107438D000F5D044 /* testnativex11.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testnativex11.c; sourceTree = "<group>"; };
    5.41  		001798941074392D00F5D044 /* testnative */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testnative; sourceTree = BUILT_PRODUCTS_DIR; };
    5.42  		001798B5107439DF00F5D044 /* testpower */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testpower; sourceTree = BUILT_PRODUCTS_DIR; };
    5.43 -		001798B910743A4900F5D044 /* testpower.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testpower.c; path = ../../test/testpower.c; sourceTree = SOURCE_ROOT; };
    5.44 +		001798B910743A4900F5D044 /* testpower.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testpower.c; sourceTree = "<group>"; };
    5.45  		001798F210743BEC00F5D044 /* testresample */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testresample; sourceTree = BUILT_PRODUCTS_DIR; };
    5.46 -		001798F910743E9200F5D044 /* testresample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testresample.c; path = ../../test/testresample.c; sourceTree = SOURCE_ROOT; };
    5.47 +		001798F910743E9200F5D044 /* testresample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testresample.c; sourceTree = "<group>"; };
    5.48  		0017991610743F1000F5D044 /* testsprite2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testsprite2; sourceTree = BUILT_PRODUCTS_DIR; };
    5.49 -		0017991910743F5300F5D044 /* testsprite2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testsprite2.c; path = ../../test/testsprite2.c; sourceTree = SOURCE_ROOT; };
    5.50 +		0017991910743F5300F5D044 /* testsprite2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testsprite2.c; sourceTree = "<group>"; };
    5.51  		0017993810743FB700F5D044 /* testwm2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testwm2; sourceTree = BUILT_PRODUCTS_DIR; };
    5.52 -		0017993B10743FEF00F5D044 /* testwm2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testwm2.c; path = ../../test/testwm2.c; sourceTree = SOURCE_ROOT; };
    5.53 +		0017993B10743FEF00F5D044 /* testwm2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testwm2.c; sourceTree = "<group>"; };
    5.54  		002A863B10730545007319AE /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
    5.55  		002A863C10730545007319AE /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ForceFeedback.framework; path = /System/Library/Frameworks/ForceFeedback.framework; sourceTree = "<absolute>"; };
    5.56  		002A863D10730545007319AE /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
    5.57 @@ -1173,37 +1173,37 @@
    5.58  		002A873910730675007319AE /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
    5.59  		002F33A709CA188600EBEB88 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
    5.60  		002F341209CA1BFF00EBEB88 /* testfile */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testfile; sourceTree = BUILT_PRODUCTS_DIR; };
    5.61 -		002F341709CA1C5B00EBEB88 /* testfile.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = testfile.c; path = ../../test/testfile.c; sourceTree = SOURCE_ROOT; };
    5.62 +		002F341709CA1C5B00EBEB88 /* testfile.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testfile.c; sourceTree = "<group>"; };
    5.63  		002F343109CA1F0300EBEB88 /* testiconv */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testiconv; sourceTree = BUILT_PRODUCTS_DIR; };
    5.64 -		002F343609CA1F6F00EBEB88 /* testiconv.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = testiconv.c; path = ../../test/testiconv.c; sourceTree = SOURCE_ROOT; };
    5.65 +		002F343609CA1F6F00EBEB88 /* testiconv.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testiconv.c; sourceTree = "<group>"; };
    5.66  		002F344D09CA1FB300EBEB88 /* testoverlay2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testoverlay2; sourceTree = BUILT_PRODUCTS_DIR; };
    5.67 -		002F345209CA201C00EBEB88 /* testoverlay2.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = testoverlay2.c; path = ../../test/testoverlay2.c; sourceTree = SOURCE_ROOT; };
    5.68 +		002F345209CA201C00EBEB88 /* testoverlay2.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testoverlay2.c; sourceTree = "<group>"; };
    5.69  		002F346A09CA204F00EBEB88 /* testplatform */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testplatform; sourceTree = BUILT_PRODUCTS_DIR; };
    5.70 -		002F346F09CA20A600EBEB88 /* testplatform.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = testplatform.c; path = ../../test/testplatform.c; sourceTree = SOURCE_ROOT; };
    5.71 +		002F346F09CA20A600EBEB88 /* testplatform.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testplatform.c; sourceTree = "<group>"; };
    5.72  		003FA63A093FFD41000C53B3 /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = ../SDL/SDL.xcodeproj; sourceTree = SOURCE_ROOT; };
    5.73 -		00794E5D09D20839003FC8A1 /* icon.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = icon.bmp; path = ../../test/icon.bmp; sourceTree = SOURCE_ROOT; };
    5.74 -		00794E5E09D20839003FC8A1 /* moose.dat */ = {isa = PBXFileReference; lastKnownFileType = file; name = moose.dat; path = ../../test/moose.dat; sourceTree = SOURCE_ROOT; };
    5.75 -		00794E5F09D20839003FC8A1 /* picture.xbm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = picture.xbm; path = ../../test/picture.xbm; sourceTree = SOURCE_ROOT; };
    5.76 -		00794E6109D20839003FC8A1 /* sample.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = sample.bmp; path = ../../test/sample.bmp; sourceTree = SOURCE_ROOT; };
    5.77 -		00794E6209D20839003FC8A1 /* sample.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = sample.wav; path = ../../test/sample.wav; sourceTree = SOURCE_ROOT; };
    5.78 -		00794E6309D20839003FC8A1 /* utf8.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = utf8.txt; path = ../../test/utf8.txt; sourceTree = SOURCE_ROOT; };
    5.79 -		083E4872006D84C97F000001 /* loopwave.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = loopwave.c; path = ../../test/loopwave.c; sourceTree = SOURCE_ROOT; };
    5.80 -		083E4878006D85357F000001 /* testerror.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = testerror.c; path = ../../test/testerror.c; sourceTree = SOURCE_ROOT; };
    5.81 -		083E487E006D86A17F000001 /* testsem.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = testsem.c; path = ../../test/testsem.c; sourceTree = SOURCE_ROOT; };
    5.82 -		083E4880006D86A17F000001 /* testtimer.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = testtimer.c; path = ../../test/testtimer.c; sourceTree = SOURCE_ROOT; };
    5.83 -		083E4882006D86A17F000001 /* testver.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = testver.c; path = ../../test/testver.c; sourceTree = SOURCE_ROOT; };
    5.84 -		083E4887006D86A17F000001 /* torturethread.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = torturethread.c; path = ../../test/torturethread.c; sourceTree = SOURCE_ROOT; };
    5.85 -		092D6D10FFB30A2C7F000001 /* checkkeys.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = checkkeys.c; path = ../../test/checkkeys.c; sourceTree = SOURCE_ROOT; };
    5.86 -		092D6D58FFB311A97F000001 /* testthread.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = testthread.c; path = ../../test/testthread.c; sourceTree = SOURCE_ROOT; };
    5.87 -		092D6D62FFB312AA7F000001 /* testjoystick.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = testjoystick.c; path = ../../test/testjoystick.c; sourceTree = SOURCE_ROOT; };
    5.88 -		092D6D6CFFB313437F000001 /* testkeys.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = testkeys.c; path = ../../test/testkeys.c; sourceTree = SOURCE_ROOT; };
    5.89 -		092D6D75FFB313BB7F000001 /* testlock.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = testlock.c; path = ../../test/testlock.c; sourceTree = SOURCE_ROOT; };
    5.90 +		00794E5D09D20839003FC8A1 /* icon.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = icon.bmp; sourceTree = "<group>"; };
    5.91 +		00794E5E09D20839003FC8A1 /* moose.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = moose.dat; sourceTree = "<group>"; };
    5.92 +		00794E5F09D20839003FC8A1 /* picture.xbm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = picture.xbm; sourceTree = "<group>"; };
    5.93 +		00794E6109D20839003FC8A1 /* sample.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = sample.bmp; sourceTree = "<group>"; };
    5.94 +		00794E6209D20839003FC8A1 /* sample.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = sample.wav; sourceTree = "<group>"; };
    5.95 +		00794E6309D20839003FC8A1 /* utf8.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = utf8.txt; sourceTree = "<group>"; };
    5.96 +		083E4872006D84C97F000001 /* loopwave.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = loopwave.c; sourceTree = "<group>"; };
    5.97 +		083E4878006D85357F000001 /* testerror.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testerror.c; sourceTree = "<group>"; };
    5.98 +		083E487E006D86A17F000001 /* testsem.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testsem.c; sourceTree = "<group>"; };
    5.99 +		083E4880006D86A17F000001 /* testtimer.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testtimer.c; sourceTree = "<group>"; };
   5.100 +		083E4882006D86A17F000001 /* testver.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testver.c; sourceTree = "<group>"; };
   5.101 +		083E4887006D86A17F000001 /* torturethread.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = torturethread.c; sourceTree = "<group>"; };
   5.102 +		092D6D10FFB30A2C7F000001 /* checkkeys.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = checkkeys.c; sourceTree = "<group>"; };
   5.103 +		092D6D58FFB311A97F000001 /* testthread.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testthread.c; sourceTree = "<group>"; };
   5.104 +		092D6D62FFB312AA7F000001 /* testjoystick.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testjoystick.c; sourceTree = "<group>"; };
   5.105 +		092D6D6CFFB313437F000001 /* testkeys.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testkeys.c; sourceTree = "<group>"; };
   5.106 +		092D6D75FFB313BB7F000001 /* testlock.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = testlock.c; sourceTree = "<group>"; };
   5.107  		4537749212091504002F0F45 /* testshape */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testshape; sourceTree = BUILT_PRODUCTS_DIR; };
   5.108 -		453774A4120915E3002F0F45 /* testshape.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testshape.c; path = ../../test/testshape.c; sourceTree = SOURCE_ROOT; };
   5.109 +		453774A4120915E3002F0F45 /* testshape.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testshape.c; sourceTree = "<group>"; };
   5.110  		66E88E5B203B733C0004D44E /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
   5.111 -		66E88E8A203B778F0004D44E /* testyuv_cvt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = testyuv_cvt.c; path = ../../test/testyuv_cvt.c; sourceTree = "<group>"; };
   5.112 -		AAF02FF41F90089800B9A9FB /* SDL_test_memory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_memory.c; path = ../../src/test/SDL_test_memory.c; sourceTree = "<group>"; };
   5.113 -		BBFC088E164C6820003E6A99 /* testgamecontroller.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testgamecontroller.c; path = ../../test/testgamecontroller.c; sourceTree = "<group>"; };
   5.114 +		66E88E8A203B778F0004D44E /* testyuv_cvt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testyuv_cvt.c; sourceTree = "<group>"; };
   5.115 +		AAF02FF41F90089800B9A9FB /* SDL_test_memory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_memory.c; sourceTree = "<group>"; };
   5.116 +		BBFC088E164C6820003E6A99 /* testgamecontroller.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testgamecontroller.c; sourceTree = "<group>"; };
   5.117  		BBFC08CD164C6862003E6A99 /* testgamecontroller */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testgamecontroller; sourceTree = BUILT_PRODUCTS_DIR; };
   5.118  		BEC566B60761D90300A33029 /* checkkeys */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = checkkeys; sourceTree = BUILT_PRODUCTS_DIR; };
   5.119  		BEC566D10761D90300A33029 /* loopwave */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = loopwave; sourceTree = BUILT_PRODUCTS_DIR; };
   5.120 @@ -1216,37 +1216,37 @@
   5.121  		BEC567980761D90500A33029 /* testtimer */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testtimer; sourceTree = BUILT_PRODUCTS_DIR; };
   5.122  		BEC567B20761D90500A33029 /* testversion */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testversion; sourceTree = BUILT_PRODUCTS_DIR; };
   5.123  		BEC567F50761D90600A33029 /* torturethread */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = torturethread; sourceTree = BUILT_PRODUCTS_DIR; };
   5.124 -		DB0F48D717CA51D2008798C5 /* testdrawchessboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = testdrawchessboard.c; path = ../../test/testdrawchessboard.c; sourceTree = "<group>"; };
   5.125 -		DB0F48D817CA51D2008798C5 /* testfilesystem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = testfilesystem.c; path = ../../test/testfilesystem.c; sourceTree = "<group>"; };
   5.126 +		DB0F48D717CA51D2008798C5 /* testdrawchessboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testdrawchessboard.c; sourceTree = "<group>"; };
   5.127 +		DB0F48D817CA51D2008798C5 /* testfilesystem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testfilesystem.c; sourceTree = "<group>"; };
   5.128  		DB0F48EC17CA51E5008798C5 /* testdrawchessboard */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testdrawchessboard; sourceTree = BUILT_PRODUCTS_DIR; };
   5.129  		DB0F490117CA5212008798C5 /* testfilesystem */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testfilesystem; sourceTree = BUILT_PRODUCTS_DIR; };
   5.130 -		DB166CBB16A1C74100A1396C /* testgesture.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = testgesture.c; path = ../../test/testgesture.c; sourceTree = "<group>"; };
   5.131 -		DB166CBC16A1C74100A1396C /* testgles.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = testgles.c; path = ../../test/testgles.c; sourceTree = "<group>"; };
   5.132 -		DB166CBD16A1C74100A1396C /* testmessage.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = testmessage.c; path = ../../test/testmessage.c; sourceTree = "<group>"; };
   5.133 -		DB166CBF16A1C74100A1396C /* testrelative.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = testrelative.c; path = ../../test/testrelative.c; sourceTree = "<group>"; };
   5.134 -		DB166CC016A1C74100A1396C /* testrendercopyex.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = testrendercopyex.c; path = ../../test/testrendercopyex.c; sourceTree = "<group>"; };
   5.135 -		DB166CC116A1C74100A1396C /* testrendertarget.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = testrendertarget.c; path = ../../test/testrendertarget.c; sourceTree = "<group>"; };
   5.136 -		DB166CC216A1C74100A1396C /* testrumble.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = testrumble.c; path = ../../test/testrumble.c; sourceTree = "<group>"; };
   5.137 -		DB166CC316A1C74100A1396C /* testscale.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = testscale.c; path = ../../test/testscale.c; sourceTree = "<group>"; };
   5.138 -		DB166CC416A1C74100A1396C /* testshader.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = testshader.c; path = ../../test/testshader.c; sourceTree = "<group>"; };
   5.139 -		DB166CC516A1C74100A1396C /* testspriteminimal.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = testspriteminimal.c; path = ../../test/testspriteminimal.c; sourceTree = "<group>"; };
   5.140 -		DB166CC616A1C74100A1396C /* teststreaming.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = teststreaming.c; path = ../../test/teststreaming.c; sourceTree = "<group>"; };
   5.141 +		DB166CBB16A1C74100A1396C /* testgesture.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testgesture.c; sourceTree = "<group>"; };
   5.142 +		DB166CBC16A1C74100A1396C /* testgles.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testgles.c; sourceTree = "<group>"; };
   5.143 +		DB166CBD16A1C74100A1396C /* testmessage.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testmessage.c; sourceTree = "<group>"; };
   5.144 +		DB166CBF16A1C74100A1396C /* testrelative.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testrelative.c; sourceTree = "<group>"; };
   5.145 +		DB166CC016A1C74100A1396C /* testrendercopyex.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testrendercopyex.c; sourceTree = "<group>"; };
   5.146 +		DB166CC116A1C74100A1396C /* testrendertarget.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testrendertarget.c; sourceTree = "<group>"; };
   5.147 +		DB166CC216A1C74100A1396C /* testrumble.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testrumble.c; sourceTree = "<group>"; };
   5.148 +		DB166CC316A1C74100A1396C /* testscale.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testscale.c; sourceTree = "<group>"; };
   5.149 +		DB166CC416A1C74100A1396C /* testshader.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testshader.c; sourceTree = "<group>"; };
   5.150 +		DB166CC516A1C74100A1396C /* testspriteminimal.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testspriteminimal.c; sourceTree = "<group>"; };
   5.151 +		DB166CC616A1C74100A1396C /* teststreaming.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = teststreaming.c; sourceTree = "<group>"; };
   5.152  		DB166D7F16A1D12400A1396C /* libSDL_test.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL_test.a; sourceTree = BUILT_PRODUCTS_DIR; };
   5.153 -		DB166D8416A1D1A500A1396C /* SDL_test_assert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_assert.c; path = ../../src/test/SDL_test_assert.c; sourceTree = "<group>"; };
   5.154 -		DB166D8516A1D1A500A1396C /* SDL_test_common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_common.c; path = ../../src/test/SDL_test_common.c; sourceTree = "<group>"; };
   5.155 -		DB166D8616A1D1A500A1396C /* SDL_test_compare.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_compare.c; path = ../../src/test/SDL_test_compare.c; sourceTree = "<group>"; };
   5.156 -		DB166D8716A1D1A500A1396C /* SDL_test_crc32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_crc32.c; path = ../../src/test/SDL_test_crc32.c; sourceTree = "<group>"; };
   5.157 -		DB166D8816A1D1A500A1396C /* SDL_test_font.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_font.c; path = ../../src/test/SDL_test_font.c; sourceTree = "<group>"; };
   5.158 -		DB166D8916A1D1A500A1396C /* SDL_test_fuzzer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_fuzzer.c; path = ../../src/test/SDL_test_fuzzer.c; sourceTree = "<group>"; };
   5.159 -		DB166D8A16A1D1A500A1396C /* SDL_test_harness.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_harness.c; path = ../../src/test/SDL_test_harness.c; sourceTree = "<group>"; };
   5.160 -		DB166D8B16A1D1A500A1396C /* SDL_test_imageBlit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_imageBlit.c; path = ../../src/test/SDL_test_imageBlit.c; sourceTree = "<group>"; };
   5.161 -		DB166D8C16A1D1A500A1396C /* SDL_test_imageBlitBlend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_imageBlitBlend.c; path = ../../src/test/SDL_test_imageBlitBlend.c; sourceTree = "<group>"; };
   5.162 -		DB166D8D16A1D1A500A1396C /* SDL_test_imageFace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_imageFace.c; path = ../../src/test/SDL_test_imageFace.c; sourceTree = "<group>"; };
   5.163 -		DB166D8E16A1D1A500A1396C /* SDL_test_imagePrimitives.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_imagePrimitives.c; path = ../../src/test/SDL_test_imagePrimitives.c; sourceTree = "<group>"; };
   5.164 -		DB166D8F16A1D1A500A1396C /* SDL_test_imagePrimitivesBlend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_imagePrimitivesBlend.c; path = ../../src/test/SDL_test_imagePrimitivesBlend.c; sourceTree = "<group>"; };
   5.165 -		DB166D9016A1D1A500A1396C /* SDL_test_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_log.c; path = ../../src/test/SDL_test_log.c; sourceTree = "<group>"; };
   5.166 -		DB166D9116A1D1A500A1396C /* SDL_test_md5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_md5.c; path = ../../src/test/SDL_test_md5.c; sourceTree = "<group>"; };
   5.167 -		DB166D9216A1D1A500A1396C /* SDL_test_random.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_test_random.c; path = ../../src/test/SDL_test_random.c; sourceTree = "<group>"; };
   5.168 +		DB166D8416A1D1A500A1396C /* SDL_test_assert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_assert.c; sourceTree = "<group>"; };
   5.169 +		DB166D8516A1D1A500A1396C /* SDL_test_common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_common.c; sourceTree = "<group>"; };
   5.170 +		DB166D8616A1D1A500A1396C /* SDL_test_compare.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_compare.c; sourceTree = "<group>"; };
   5.171 +		DB166D8716A1D1A500A1396C /* SDL_test_crc32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_crc32.c; sourceTree = "<group>"; };
   5.172 +		DB166D8816A1D1A500A1396C /* SDL_test_font.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_font.c; sourceTree = "<group>"; };
   5.173 +		DB166D8916A1D1A500A1396C /* SDL_test_fuzzer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_fuzzer.c; sourceTree = "<group>"; };
   5.174 +		DB166D8A16A1D1A500A1396C /* SDL_test_harness.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_harness.c; sourceTree = "<group>"; };
   5.175 +		DB166D8B16A1D1A500A1396C /* SDL_test_imageBlit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imageBlit.c; sourceTree = "<group>"; };
   5.176 +		DB166D8C16A1D1A500A1396C /* SDL_test_imageBlitBlend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imageBlitBlend.c; sourceTree = "<group>"; };
   5.177 +		DB166D8D16A1D1A500A1396C /* SDL_test_imageFace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imageFace.c; sourceTree = "<group>"; };
   5.178 +		DB166D8E16A1D1A500A1396C /* SDL_test_imagePrimitives.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imagePrimitives.c; sourceTree = "<group>"; };
   5.179 +		DB166D8F16A1D1A500A1396C /* SDL_test_imagePrimitivesBlend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_imagePrimitivesBlend.c; sourceTree = "<group>"; };
   5.180 +		DB166D9016A1D1A500A1396C /* SDL_test_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_log.c; sourceTree = "<group>"; };
   5.181 +		DB166D9116A1D1A500A1396C /* SDL_test_md5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_md5.c; sourceTree = "<group>"; };
   5.182 +		DB166D9216A1D1A500A1396C /* SDL_test_random.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_random.c; sourceTree = "<group>"; };
   5.183  		DB166DBF16A1D2F600A1396C /* testgesture */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testgesture; sourceTree = BUILT_PRODUCTS_DIR; };
   5.184  		DB166DD516A1D36A00A1396C /* testmessage */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testmessage; sourceTree = BUILT_PRODUCTS_DIR; };
   5.185  		DB166DEE16A1D50C00A1396C /* testrelative */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testrelative; sourceTree = BUILT_PRODUCTS_DIR; };
   5.186 @@ -1257,16 +1257,16 @@
   5.187  		DB166E6816A1D6F300A1396C /* testshader */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testshader; sourceTree = BUILT_PRODUCTS_DIR; };
   5.188  		DB166E7E16A1D78400A1396C /* testspriteminimal */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testspriteminimal; sourceTree = BUILT_PRODUCTS_DIR; };
   5.189  		DB166E9116A1D78C00A1396C /* teststreaming */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = teststreaming; sourceTree = BUILT_PRODUCTS_DIR; };
   5.190 -		DB166ECF16A1D87000A1396C /* shapes */ = {isa = PBXFileReference; lastKnownFileType = folder; name = shapes; path = ../../test/shapes; sourceTree = "<group>"; };
   5.191 +		DB166ECF16A1D87000A1396C /* shapes */ = {isa = PBXFileReference; lastKnownFileType = folder; path = shapes; sourceTree = "<group>"; };
   5.192  		DB445EF818184B7000B306B0 /* testdropfile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testdropfile.app; sourceTree = BUILT_PRODUCTS_DIR; };
   5.193 -		DB445EFA18184BB600B306B0 /* testdropfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testdropfile.c; path = ../../test/testdropfile.c; sourceTree = "<group>"; };
   5.194 +		DB445EFA18184BB600B306B0 /* testdropfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testdropfile.c; sourceTree = "<group>"; };
   5.195  		DB89957E18A19ABA0092407C /* testhotplug */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testhotplug; sourceTree = BUILT_PRODUCTS_DIR; };
   5.196 -		DB89958318A19B130092407C /* testhotplug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testhotplug.c; path = ../../test/testhotplug.c; sourceTree = "<group>"; };
   5.197 -		DBBC552C182831D700F3CA8D /* TestDropFile-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "TestDropFile-Info.plist"; sourceTree = "<group>"; };
   5.198 -		DBEC54D11A1A811D005B1EAB /* controllermap.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = controllermap.c; path = ../../test/controllermap.c; sourceTree = "<group>"; };
   5.199 -		DBEC54D61A1A8145005B1EAB /* axis.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = axis.bmp; path = ../../test/axis.bmp; sourceTree = "<group>"; };
   5.200 -		DBEC54D71A1A8145005B1EAB /* button.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = button.bmp; path = ../../test/button.bmp; sourceTree = "<group>"; };
   5.201 -		DBEC54D81A1A8145005B1EAB /* controllermap.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; name = controllermap.bmp; path = ../../test/controllermap.bmp; sourceTree = "<group>"; };
   5.202 +		DB89958318A19B130092407C /* testhotplug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testhotplug.c; sourceTree = "<group>"; };
   5.203 +		DBBC552C182831D700F3CA8D /* TestDropFile-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "TestDropFile-Info.plist"; sourceTree = SOURCE_ROOT; };
   5.204 +		DBEC54D11A1A811D005B1EAB /* controllermap.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = controllermap.c; sourceTree = "<group>"; };
   5.205 +		DBEC54D61A1A8145005B1EAB /* axis.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = axis.bmp; sourceTree = "<group>"; };
   5.206 +		DBEC54D71A1A8145005B1EAB /* button.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = button.bmp; sourceTree = "<group>"; };
   5.207 +		DBEC54D81A1A8145005B1EAB /* controllermap.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = controllermap.bmp; sourceTree = "<group>"; };
   5.208  		DBEC54EA1A1A81C3005B1EAB /* controllermap */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = controllermap; sourceTree = BUILT_PRODUCTS_DIR; };
   5.209  		FA73672219A54A90004122E4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = /System/Library/Frameworks/CoreVideo.framework; sourceTree = "<absolute>"; };
   5.210  /* End PBXFileReference section */
   5.211 @@ -2165,6 +2165,7 @@
   5.212  				00794E6309D20839003FC8A1 /* utf8.txt */,
   5.213  			);
   5.214  			name = Resources;
   5.215 +			path = ../../test;
   5.216  			sourceTree = "<group>";
   5.217  		};
   5.218  		08FB7794FE84155DC02AAC07 /* SDLTest */ = {
   5.219 @@ -2238,6 +2239,7 @@
   5.220  				083E4887006D86A17F000001 /* torturethread.c */,
   5.221  			);
   5.222  			name = Source;
   5.223 +			path = ../../test;
   5.224  			sourceTree = "<group>";
   5.225  		};
   5.226  		1AB674ADFE9D54B511CA2CBB /* Products */ = {
   5.227 @@ -2323,6 +2325,7 @@
   5.228  				DB166D9216A1D1A500A1396C /* SDL_test_random.c */,
   5.229  			);
   5.230  			name = SDL_Test;
   5.231 +			path = ../../src/test;
   5.232  			sourceTree = "<group>";
   5.233  		};
   5.234  /* End PBXGroup section */