Rename displayLink to _displayLink.
[enjoyable.git] / Enjoyable.xcodeproj / project.pbxproj
index aef1ed2..c244de0 100644 (file)
        objects = {
 
 /* Begin PBXBuildFile section */
-               1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; };
-               8B7E476C15C314A200C588FA /* NJOutputMouseButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E476B15C314A200C588FA /* NJOutputMouseButton.m */; };
-               8BD9B54315C230FF00929C5D /* NJOutputMouseMove.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BD9B54215C230FE00929C5D /* NJOutputMouseMove.m */; };
-               8BEFAD9C15C46BFF00823AEC /* NJOutputMouseScroll.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BEFAD9B15C46BFF00823AEC /* NJOutputMouseScroll.m */; };
-               8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
-               8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
                8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
-               D5617A360FAEB74000928B3A /* NJMappingsController.m in Sources */ = {isa = PBXBuildFile; fileRef = D5617A350FAEB74000928B3A /* NJMappingsController.m */; };
-               D5617A390FAEBA1800928B3A /* NJMapping.m in Sources */ = {isa = PBXBuildFile; fileRef = D5617A380FAEBA1800928B3A /* NJMapping.m */; };
-               D5617D1A0FAF568100928B3A /* NJInputButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D5617D190FAF568100928B3A /* NJInputButton.m */; };
-               D5617D260FAF579300928B3A /* NJInputHat.m in Sources */ = {isa = PBXBuildFile; fileRef = D5617D250FAF579300928B3A /* NJInputHat.m */; };
-               D5617D2B0FAF579A00928B3A /* NJInputAnalog.m in Sources */ = {isa = PBXBuildFile; fileRef = D5617D2A0FAF579A00928B3A /* NJInputAnalog.m */; };
-               D5617FD60FAFD06000928B3A /* NJOutput.m in Sources */ = {isa = PBXBuildFile; fileRef = D5617FD50FAFD06000928B3A /* NJOutput.m */; };
-               D5617FD90FAFD1E600928B3A /* NJOutputKeyPress.m in Sources */ = {isa = PBXBuildFile; fileRef = D5617FD80FAFD1E600928B3A /* NJOutputKeyPress.m */; };
-               D5617FE40FAFD7B000928B3A /* NJOutputController.m in Sources */ = {isa = PBXBuildFile; fileRef = D5617FE30FAFD7B000928B3A /* NJOutputController.m */; };
-               D5617FE70FAFDB5800928B3A /* NJKeyInputField.m in Sources */ = {isa = PBXBuildFile; fileRef = D5617FE60FAFDB5800928B3A /* NJKeyInputField.m */; };
-               D594BE860FAE6219007A85F2 /* NJDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = D594BE850FAE6219007A85F2 /* NJDevice.m */; };
-               D594BE8A0FAE64AD007A85F2 /* NJInput.m in Sources */ = {isa = PBXBuildFile; fileRef = D594BE890FAE64AD007A85F2 /* NJInput.m */; };
-               D594BEF90FAE6FF2007A85F2 /* NJDeviceController.m in Sources */ = {isa = PBXBuildFile; fileRef = D594BEF80FAE6FF2007A85F2 /* NJDeviceController.m */; };
                D594BF000FAE7397007A85F2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D594BEFF0FAE7397007A85F2 /* IOKit.framework */; };
-               D594BF830FAE9661007A85F2 /* EnjoyableApplicationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D594BF820FAE9661007A85F2 /* EnjoyableApplicationDelegate.m */; };
-               D5F809710FB093400006A4DE /* NJOutputMapping.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F809700FB093400006A4DE /* NJOutputMapping.m */; };
-               D5F80A9D0FB0A2FF0006A4DE /* icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = D5617A080FAEAF8300928B3A /* icon.icns */; };
-               EE03150D16E63481002B2DCE /* Help in Resources */ = {isa = PBXBuildFile; fileRef = EE03150C16E63481002B2DCE /* Help */; };
-               EE1D7C9216E01E7000B000EB /* NSView+FirstResponder.m in Sources */ = {isa = PBXBuildFile; fileRef = EE1D7C9116E01E7000B000EB /* NSView+FirstResponder.m */; };
-               EE1D7C9616E0ECCF00B000EB /* NSError+Description.m in Sources */ = {isa = PBXBuildFile; fileRef = EE1D7C9516E0ECCF00B000EB /* NSError+Description.m */; };
-               EE96929416E54B480054A3C8 /* NSMenu+RepresentedObjectAccessors.m in Sources */ = {isa = PBXBuildFile; fileRef = EE96929316E54B480054A3C8 /* NSMenu+RepresentedObjectAccessors.m */; };
-               EEAA9CE116E808E600256B64 /* NSMutableArray+MoveObject.m in Sources */ = {isa = PBXBuildFile; fileRef = EEAA9CE016E808E600256B64 /* NSMutableArray+MoveObject.m */; };
+               EE1F3CEA16EF4182008C6426 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = EE1F3CE816EF4182008C6426 /* Localizable.strings */; };
+               EE35A6E417BBCC9500413995 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EE35A6E317BBCC9500413995 /* CoreVideo.framework */; };
+               EE3D897A16EA7EFC00596D1F /* Status Menu Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = EE3D897916EA7EFC00596D1F /* Status Menu Icon@2x.png */; };
+               EE3D897C16EA806E00596D1F /* Status Menu Icon Disabled@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = EE3D897B16EA806E00596D1F /* Status Menu Icon Disabled@2x.png */; };
+               EE3D897F16EA817E00596D1F /* Status Menu Icon Disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = EE3D897D16EA817E00596D1F /* Status Menu Icon Disabled.png */; };
+               EE3D898016EA817E00596D1F /* Status Menu Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = EE3D897E16EA817E00596D1F /* Status Menu Icon.png */; };
+               EE48263016F6680D001B0C64 /* NSProcessInfo+Debugging.m in Sources */ = {isa = PBXBuildFile; fileRef = EE48262F16F6680D001B0C64 /* NSProcessInfo+Debugging.m */; };
+               EE52145C16F3E8BD00E3C574 /* NSOutlineView+ItemAccessors.m in Sources */ = {isa = PBXBuildFile; fileRef = EE52145B16F3E8BD00E3C574 /* NSOutlineView+ItemAccessors.m */; };
+               EE52145F16F404D500E3C574 /* NJDeviceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EE52145E16F404D500E3C574 /* NJDeviceViewController.m */; };
+               EE6A122E16E8F46300EDBD32 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = EE6A122D16E8F46300EDBD32 /* Icon.icns */; };
+               EE83ACEC16F545EA00083E94 /* NJMappingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EE83ACEB16F545EA00083E94 /* NJMappingsViewController.m */; };
+               EE8455DD16F0E46B00F32A01 /* NSRunningApplication+LoginItem.m in Sources */ = {isa = PBXBuildFile; fileRef = EE8455DC16F0E46B00F32A01 /* NSRunningApplication+LoginItem.m */; };
+               EED4CE6E16ED692400C65AA8 /* NJMappingMenuController.m in Sources */ = {isa = PBXBuildFile; fileRef = EED4CE6D16ED692400C65AA8 /* NJMappingMenuController.m */; };
+               EED4CE7716EE195100C65AA8 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EED4CE7616EE195100C65AA8 /* Sparkle.framework */; };
+               EED4CE7816EE195B00C65AA8 /* Sparkle.framework in Copy Sparkle Framework */ = {isa = PBXBuildFile; fileRef = EED4CE7616EE195100C65AA8 /* Sparkle.framework */; };
+               EEE703DC16F089FE002FDD69 /* NJHIDManager.m in Sources */ = {isa = PBXBuildFile; fileRef = EEE703DB16F089FE002FDD69 /* NJHIDManager.m */; };
+               EEE703DE16F0B3F6002FDD69 /* NJInputPathElement.m in Sources */ = {isa = PBXBuildFile; fileRef = EEE703DD16F0B3F6002FDD69 /* NJInputPathElement.m */; };
+               EEE73B1616EA42E5009D9D99 /* NSRunningApplication+NJPossibleNames.m in Sources */ = {isa = PBXBuildFile; fileRef = EEE73B1516EA42E5009D9D99 /* NSRunningApplication+NJPossibleNames.m */; };
+               EEF17D1916E8E21A00D7DC4D /* com.yukkurigames.Enjoyable.mapping.icns in Resources */ = {isa = PBXBuildFile; fileRef = EEF17D1716E8E21A00D7DC4D /* com.yukkurigames.Enjoyable.mapping.icns */; };
+               EEF17D1F16E8E23A00D7DC4D /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = EEF17D1B16E8E23A00D7DC4D /* InfoPlist.strings */; };
+               EEF17D2016E8E23A00D7DC4D /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = EEF17D1D16E8E23A00D7DC4D /* MainMenu.xib */; };
+               EEF17D2216E8E24400D7DC4D /* Help in Resources */ = {isa = PBXBuildFile; fileRef = EEF17D2116E8E24400D7DC4D /* Help */; };
+               EEF17D2616E8E2D800D7DC4D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D2416E8E2D800D7DC4D /* main.m */; };
+               EEF17D3316E8E2E100D7DC4D /* NSError+Description.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D2816E8E2E100D7DC4D /* NSError+Description.m */; };
+               EEF17D3416E8E2E100D7DC4D /* NSFileManager+UniqueNames.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D2A16E8E2E100D7DC4D /* NSFileManager+UniqueNames.m */; };
+               EEF17D3516E8E2E100D7DC4D /* NSMenu+RepresentedObjectAccessors.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D2C16E8E2E100D7DC4D /* NSMenu+RepresentedObjectAccessors.m */; };
+               EEF17D3616E8E2E100D7DC4D /* NSMutableArray+MoveObject.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D2E16E8E2E100D7DC4D /* NSMutableArray+MoveObject.m */; };
+               EEF17D3716E8E2E100D7DC4D /* NSString+FixFilename.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D3016E8E2E100D7DC4D /* NSString+FixFilename.m */; };
+               EEF17D3816E8E2E100D7DC4D /* NSView+FirstResponder.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D3216E8E2E100D7DC4D /* NSView+FirstResponder.m */; };
+               EEF17D5C16E8E2EF00D7DC4D /* EnjoyableApplicationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D3A16E8E2EF00D7DC4D /* EnjoyableApplicationDelegate.m */; };
+               EEF17D5D16E8E2EF00D7DC4D /* NJDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D3C16E8E2EF00D7DC4D /* NJDevice.m */; };
+               EEF17D5E16E8E2EF00D7DC4D /* NJInputController.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D3E16E8E2EF00D7DC4D /* NJInputController.m */; };
+               EEF17D5F16E8E2EF00D7DC4D /* NJInput.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D4016E8E2EF00D7DC4D /* NJInput.m */; };
+               EEF17D6016E8E2EF00D7DC4D /* NJInputAnalog.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D4216E8E2EF00D7DC4D /* NJInputAnalog.m */; };
+               EEF17D6116E8E2EF00D7DC4D /* NJInputButton.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D4416E8E2EF00D7DC4D /* NJInputButton.m */; };
+               EEF17D6216E8E2EF00D7DC4D /* NJInputHat.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D4616E8E2EF00D7DC4D /* NJInputHat.m */; };
+               EEF17D6316E8E2EF00D7DC4D /* NJKeyInputField.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D4916E8E2EF00D7DC4D /* NJKeyInputField.m */; };
+               EEF17D6416E8E2EF00D7DC4D /* NJMapping.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D4B16E8E2EF00D7DC4D /* NJMapping.m */; };
+               EEF17D6616E8E2EF00D7DC4D /* NJOutput.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D4F16E8E2EF00D7DC4D /* NJOutput.m */; };
+               EEF17D6716E8E2EF00D7DC4D /* NJOutputViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D5116E8E2EF00D7DC4D /* NJOutputViewController.m */; };
+               EEF17D6816E8E2EF00D7DC4D /* NJOutputKeyPress.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D5316E8E2EF00D7DC4D /* NJOutputKeyPress.m */; };
+               EEF17D6916E8E2EF00D7DC4D /* NJOutputMapping.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D5516E8E2EF00D7DC4D /* NJOutputMapping.m */; };
+               EEF17D6A16E8E2EF00D7DC4D /* NJOutputMouseButton.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D5716E8E2EF00D7DC4D /* NJOutputMouseButton.m */; };
+               EEF17D6B16E8E2EF00D7DC4D /* NJOutputMouseMove.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D5916E8E2EF00D7DC4D /* NJOutputMouseMove.m */; };
+               EEF17D6C16E8E2EF00D7DC4D /* NJOutputMouseScroll.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF17D5B16E8E2EF00D7DC4D /* NJOutputMouseScroll.m */; };
 /* End PBXBuildFile section */
 
+/* Begin PBXCopyFilesBuildPhase section */
+               EED4CE7416EE0E6400C65AA8 /* Copy Sparkle Framework */ = {
+                       isa = PBXCopyFilesBuildPhase;
+                       buildActionMask = 2147483647;
+                       dstPath = "";
+                       dstSubfolderSpec = 10;
+                       files = (
+                               EED4CE7816EE195B00C65AA8 /* Sparkle.framework in Copy Sparkle Framework */,
+                       );
+                       name = "Copy Sparkle Framework";
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXCopyFilesBuildPhase section */
+
 /* Begin PBXFileReference section */
-               089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
                1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
-               1DDD58150DA1D0A300B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = "<group>"; };
-               29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
                29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
                29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
-               32CA4F630368D1EE00C91783 /* Enjoyable_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Enjoyable_Prefix.pch; sourceTree = "<group>"; };
-               8B7E476A15C314A200C588FA /* NJOutputMouseButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJOutputMouseButton.h; sourceTree = "<group>"; };
-               8B7E476B15C314A200C588FA /* NJOutputMouseButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJOutputMouseButton.m; sourceTree = "<group>"; };
-               8BD9B54115C230FE00929C5D /* NJOutputMouseMove.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJOutputMouseMove.h; sourceTree = "<group>"; };
-               8BD9B54215C230FE00929C5D /* NJOutputMouseMove.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJOutputMouseMove.m; sourceTree = "<group>"; };
-               8BEFAD9A15C46BFF00823AEC /* NJOutputMouseScroll.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJOutputMouseScroll.h; sourceTree = "<group>"; };
-               8BEFAD9B15C46BFF00823AEC /* NJOutputMouseScroll.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJOutputMouseScroll.m; sourceTree = "<group>"; };
                8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
                8D1107320486CEB800E47090 /* Enjoyable.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Enjoyable.app; sourceTree = BUILT_PRODUCTS_DIR; };
-               D5617A080FAEAF8300928B3A /* icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = icon.icns; sourceTree = "<group>"; };
-               D5617A340FAEB74000928B3A /* NJMappingsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJMappingsController.h; sourceTree = "<group>"; };
-               D5617A350FAEB74000928B3A /* NJMappingsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJMappingsController.m; sourceTree = "<group>"; };
-               D5617A370FAEBA1800928B3A /* NJMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJMapping.h; sourceTree = "<group>"; };
-               D5617A380FAEBA1800928B3A /* NJMapping.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJMapping.m; sourceTree = "<group>"; };
-               D5617D180FAF568100928B3A /* NJInputButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJInputButton.h; sourceTree = "<group>"; };
-               D5617D190FAF568100928B3A /* NJInputButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJInputButton.m; sourceTree = "<group>"; };
-               D5617D240FAF579300928B3A /* NJInputHat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJInputHat.h; sourceTree = "<group>"; };
-               D5617D250FAF579300928B3A /* NJInputHat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJInputHat.m; sourceTree = "<group>"; };
-               D5617D290FAF579A00928B3A /* NJInputAnalog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJInputAnalog.h; sourceTree = "<group>"; };
-               D5617D2A0FAF579A00928B3A /* NJInputAnalog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJInputAnalog.m; sourceTree = "<group>"; };
-               D5617FD40FAFD06000928B3A /* NJOutput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJOutput.h; sourceTree = "<group>"; };
-               D5617FD50FAFD06000928B3A /* NJOutput.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJOutput.m; sourceTree = "<group>"; };
-               D5617FD70FAFD1E600928B3A /* NJOutputKeyPress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJOutputKeyPress.h; sourceTree = "<group>"; };
-               D5617FD80FAFD1E600928B3A /* NJOutputKeyPress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJOutputKeyPress.m; sourceTree = "<group>"; };
-               D5617FE20FAFD7B000928B3A /* NJOutputController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJOutputController.h; sourceTree = "<group>"; };
-               D5617FE30FAFD7B000928B3A /* NJOutputController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJOutputController.m; sourceTree = "<group>"; };
-               D5617FE50FAFDB5800928B3A /* NJKeyInputField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJKeyInputField.h; sourceTree = "<group>"; };
-               D5617FE60FAFDB5800928B3A /* NJKeyInputField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJKeyInputField.m; sourceTree = "<group>"; };
-               D594BE840FAE6219007A85F2 /* NJDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJDevice.h; sourceTree = "<group>"; };
-               D594BE850FAE6219007A85F2 /* NJDevice.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJDevice.m; sourceTree = "<group>"; };
-               D594BE880FAE64AD007A85F2 /* NJInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJInput.h; sourceTree = "<group>"; };
-               D594BE890FAE64AD007A85F2 /* NJInput.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJInput.m; sourceTree = "<group>"; };
-               D594BEF70FAE6FF2007A85F2 /* NJDeviceController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJDeviceController.h; sourceTree = "<group>"; };
-               D594BEF80FAE6FF2007A85F2 /* NJDeviceController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJDeviceController.m; sourceTree = "<group>"; };
                D594BEFF0FAE7397007A85F2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
-               D594BF810FAE9661007A85F2 /* EnjoyableApplicationDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EnjoyableApplicationDelegate.h; sourceTree = "<group>"; };
-               D594BF820FAE9661007A85F2 /* EnjoyableApplicationDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EnjoyableApplicationDelegate.m; sourceTree = "<group>"; };
-               D5F8096F0FB093400006A4DE /* NJOutputMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NJOutputMapping.h; sourceTree = "<group>"; };
-               D5F809700FB093400006A4DE /* NJOutputMapping.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NJOutputMapping.m; sourceTree = "<group>"; };
-               EE03150C16E63481002B2DCE /* Help */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Help; sourceTree = "<group>"; };
-               EE1D7C9016E01E7000B000EB /* NSView+FirstResponder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSView+FirstResponder.h"; sourceTree = "<group>"; };
-               EE1D7C9116E01E7000B000EB /* NSView+FirstResponder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSView+FirstResponder.m"; sourceTree = "<group>"; };
-               EE1D7C9416E0ECCF00B000EB /* NSError+Description.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSError+Description.h"; sourceTree = "<group>"; };
-               EE1D7C9516E0ECCF00B000EB /* NSError+Description.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSError+Description.m"; sourceTree = "<group>"; };
-               EE96929216E54B480054A3C8 /* NSMenu+RepresentedObjectAccessors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMenu+RepresentedObjectAccessors.h"; sourceTree = "<group>"; };
-               EE96929316E54B480054A3C8 /* NSMenu+RepresentedObjectAccessors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMenu+RepresentedObjectAccessors.m"; sourceTree = "<group>"; };
-               EEAA9CDF16E808E600256B64 /* NSMutableArray+MoveObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMutableArray+MoveObject.h"; sourceTree = "<group>"; };
-               EEAA9CE016E808E600256B64 /* NSMutableArray+MoveObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableArray+MoveObject.m"; sourceTree = "<group>"; };
-               EEF86B7316E2241000674B87 /* NJInputPathElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NJInputPathElement.h; sourceTree = "<group>"; };
-               EEF86B7416E298CD00674B87 /* NJEvents.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NJEvents.h; sourceTree = "<group>"; };
+               EE1F3CE916EF4182008C6426 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = Resources/English.lproj/Localizable.strings; sourceTree = "<group>"; };
+               EE35A6E317BBCC9500413995 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; };
+               EE3D897916EA7EFC00596D1F /* Status Menu Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Status Menu Icon@2x.png"; path = "Resources/Status Menu Icon@2x.png"; sourceTree = "<group>"; };
+               EE3D897B16EA806E00596D1F /* Status Menu Icon Disabled@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Status Menu Icon Disabled@2x.png"; path = "Resources/Status Menu Icon Disabled@2x.png"; sourceTree = "<group>"; };
+               EE3D897D16EA817E00596D1F /* Status Menu Icon Disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Status Menu Icon Disabled.png"; path = "Resources/Status Menu Icon Disabled.png"; sourceTree = "<group>"; };
+               EE3D897E16EA817E00596D1F /* Status Menu Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Status Menu Icon.png"; path = "Resources/Status Menu Icon.png"; sourceTree = "<group>"; };
+               EE48262E16F6680D001B0C64 /* NSProcessInfo+Debugging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSProcessInfo+Debugging.h"; path = "Categories/NSProcessInfo+Debugging.h"; sourceTree = "<group>"; };
+               EE48262F16F6680D001B0C64 /* NSProcessInfo+Debugging.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSProcessInfo+Debugging.m"; path = "Categories/NSProcessInfo+Debugging.m"; sourceTree = "<group>"; };
+               EE52145A16F3E8BD00E3C574 /* NSOutlineView+ItemAccessors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSOutlineView+ItemAccessors.h"; path = "Categories/NSOutlineView+ItemAccessors.h"; sourceTree = "<group>"; };
+               EE52145B16F3E8BD00E3C574 /* NSOutlineView+ItemAccessors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSOutlineView+ItemAccessors.m"; path = "Categories/NSOutlineView+ItemAccessors.m"; sourceTree = "<group>"; };
+               EE52145D16F404D500E3C574 /* NJDeviceViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJDeviceViewController.h; path = Classes/NJDeviceViewController.h; sourceTree = "<group>"; };
+               EE52145E16F404D500E3C574 /* NJDeviceViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJDeviceViewController.m; path = Classes/NJDeviceViewController.m; sourceTree = "<group>"; };
+               EE6A122D16E8F46300EDBD32 /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Icon.icns; sourceTree = "<group>"; };
+               EE83ACEA16F545EA00083E94 /* NJMappingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJMappingsViewController.h; path = Classes/NJMappingsViewController.h; sourceTree = "<group>"; };
+               EE83ACEB16F545EA00083E94 /* NJMappingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJMappingsViewController.m; path = Classes/NJMappingsViewController.m; sourceTree = "<group>"; };
+               EE8455DB16F0E46B00F32A01 /* NSRunningApplication+LoginItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSRunningApplication+LoginItem.h"; path = "Categories/NSRunningApplication+LoginItem.h"; sourceTree = "<group>"; };
+               EE8455DC16F0E46B00F32A01 /* NSRunningApplication+LoginItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSRunningApplication+LoginItem.m"; path = "Categories/NSRunningApplication+LoginItem.m"; sourceTree = "<group>"; };
+               EED4CE6C16ED692400C65AA8 /* NJMappingMenuController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJMappingMenuController.h; path = Classes/NJMappingMenuController.h; sourceTree = "<group>"; };
+               EED4CE6D16ED692400C65AA8 /* NJMappingMenuController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJMappingMenuController.m; path = Classes/NJMappingMenuController.m; sourceTree = "<group>"; };
+               EED4CE7616EE195100C65AA8 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Sparkle.framework; sourceTree = "<group>"; };
+               EEE703DA16F089FE002FDD69 /* NJHIDManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJHIDManager.h; path = Classes/NJHIDManager.h; sourceTree = "<group>"; };
+               EEE703DB16F089FE002FDD69 /* NJHIDManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJHIDManager.m; path = Classes/NJHIDManager.m; sourceTree = "<group>"; };
+               EEE703DD16F0B3F6002FDD69 /* NJInputPathElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJInputPathElement.m; path = Classes/NJInputPathElement.m; sourceTree = "<group>"; };
+               EEE73B1416EA42E5009D9D99 /* NSRunningApplication+NJPossibleNames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSRunningApplication+NJPossibleNames.h"; path = "Categories/NSRunningApplication+NJPossibleNames.h"; sourceTree = "<group>"; };
+               EEE73B1516EA42E5009D9D99 /* NSRunningApplication+NJPossibleNames.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSRunningApplication+NJPossibleNames.m"; path = "Categories/NSRunningApplication+NJPossibleNames.m"; sourceTree = "<group>"; };
+               EEF17D1716E8E21A00D7DC4D /* com.yukkurigames.Enjoyable.mapping.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = com.yukkurigames.Enjoyable.mapping.icns; path = Resources/com.yukkurigames.Enjoyable.mapping.icns; sourceTree = "<group>"; };
+               EEF17D1C16E8E23A00D7DC4D /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = Resources/English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+               EEF17D1E16E8E23A00D7DC4D /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = Resources/English.lproj/MainMenu.xib; sourceTree = "<group>"; };
+               EEF17D2116E8E24400D7DC4D /* Help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Help; path = Resources/Help; sourceTree = "<group>"; };
+               EEF17D2316E8E2D800D7DC4D /* Enjoyable_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Enjoyable_Prefix.pch; path = "Other Sources/Enjoyable_Prefix.pch"; sourceTree = "<group>"; };
+               EEF17D2416E8E2D800D7DC4D /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = "Other Sources/main.m"; sourceTree = "<group>"; };
+               EEF17D2516E8E2D800D7DC4D /* NJEvents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJEvents.h; path = "Other Sources/NJEvents.h"; sourceTree = "<group>"; };
+               EEF17D2716E8E2E100D7DC4D /* NSError+Description.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSError+Description.h"; path = "Categories/NSError+Description.h"; sourceTree = "<group>"; };
+               EEF17D2816E8E2E100D7DC4D /* NSError+Description.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSError+Description.m"; path = "Categories/NSError+Description.m"; sourceTree = "<group>"; };
+               EEF17D2916E8E2E100D7DC4D /* NSFileManager+UniqueNames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSFileManager+UniqueNames.h"; path = "Categories/NSFileManager+UniqueNames.h"; sourceTree = "<group>"; };
+               EEF17D2A16E8E2E100D7DC4D /* NSFileManager+UniqueNames.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSFileManager+UniqueNames.m"; path = "Categories/NSFileManager+UniqueNames.m"; sourceTree = "<group>"; };
+               EEF17D2B16E8E2E100D7DC4D /* NSMenu+RepresentedObjectAccessors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSMenu+RepresentedObjectAccessors.h"; path = "Categories/NSMenu+RepresentedObjectAccessors.h"; sourceTree = "<group>"; };
+               EEF17D2C16E8E2E100D7DC4D /* NSMenu+RepresentedObjectAccessors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSMenu+RepresentedObjectAccessors.m"; path = "Categories/NSMenu+RepresentedObjectAccessors.m"; sourceTree = "<group>"; };
+               EEF17D2D16E8E2E100D7DC4D /* NSMutableArray+MoveObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSMutableArray+MoveObject.h"; path = "Categories/NSMutableArray+MoveObject.h"; sourceTree = "<group>"; };
+               EEF17D2E16E8E2E100D7DC4D /* NSMutableArray+MoveObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSMutableArray+MoveObject.m"; path = "Categories/NSMutableArray+MoveObject.m"; sourceTree = "<group>"; };
+               EEF17D2F16E8E2E100D7DC4D /* NSString+FixFilename.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSString+FixFilename.h"; path = "Categories/NSString+FixFilename.h"; sourceTree = "<group>"; };
+               EEF17D3016E8E2E100D7DC4D /* NSString+FixFilename.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSString+FixFilename.m"; path = "Categories/NSString+FixFilename.m"; sourceTree = "<group>"; };
+               EEF17D3116E8E2E100D7DC4D /* NSView+FirstResponder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSView+FirstResponder.h"; path = "Categories/NSView+FirstResponder.h"; sourceTree = "<group>"; };
+               EEF17D3216E8E2E100D7DC4D /* NSView+FirstResponder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSView+FirstResponder.m"; path = "Categories/NSView+FirstResponder.m"; sourceTree = "<group>"; };
+               EEF17D3916E8E2EF00D7DC4D /* EnjoyableApplicationDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EnjoyableApplicationDelegate.h; path = Classes/EnjoyableApplicationDelegate.h; sourceTree = "<group>"; };
+               EEF17D3A16E8E2EF00D7DC4D /* EnjoyableApplicationDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EnjoyableApplicationDelegate.m; path = Classes/EnjoyableApplicationDelegate.m; sourceTree = "<group>"; };
+               EEF17D3B16E8E2EF00D7DC4D /* NJDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJDevice.h; path = Classes/NJDevice.h; sourceTree = "<group>"; };
+               EEF17D3C16E8E2EF00D7DC4D /* NJDevice.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJDevice.m; path = Classes/NJDevice.m; sourceTree = "<group>"; };
+               EEF17D3D16E8E2EF00D7DC4D /* NJInputController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJInputController.h; path = Classes/NJInputController.h; sourceTree = "<group>"; };
+               EEF17D3E16E8E2EF00D7DC4D /* NJInputController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJInputController.m; path = Classes/NJInputController.m; sourceTree = "<group>"; };
+               EEF17D3F16E8E2EF00D7DC4D /* NJInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJInput.h; path = Classes/NJInput.h; sourceTree = "<group>"; };
+               EEF17D4016E8E2EF00D7DC4D /* NJInput.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJInput.m; path = Classes/NJInput.m; sourceTree = "<group>"; };
+               EEF17D4116E8E2EF00D7DC4D /* NJInputAnalog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJInputAnalog.h; path = Classes/NJInputAnalog.h; sourceTree = "<group>"; };
+               EEF17D4216E8E2EF00D7DC4D /* NJInputAnalog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJInputAnalog.m; path = Classes/NJInputAnalog.m; sourceTree = "<group>"; };
+               EEF17D4316E8E2EF00D7DC4D /* NJInputButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJInputButton.h; path = Classes/NJInputButton.h; sourceTree = "<group>"; };
+               EEF17D4416E8E2EF00D7DC4D /* NJInputButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJInputButton.m; path = Classes/NJInputButton.m; sourceTree = "<group>"; };
+               EEF17D4516E8E2EF00D7DC4D /* NJInputHat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJInputHat.h; path = Classes/NJInputHat.h; sourceTree = "<group>"; };
+               EEF17D4616E8E2EF00D7DC4D /* NJInputHat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJInputHat.m; path = Classes/NJInputHat.m; sourceTree = "<group>"; };
+               EEF17D4716E8E2EF00D7DC4D /* NJInputPathElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJInputPathElement.h; path = Classes/NJInputPathElement.h; sourceTree = "<group>"; };
+               EEF17D4816E8E2EF00D7DC4D /* NJKeyInputField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJKeyInputField.h; path = Classes/NJKeyInputField.h; sourceTree = "<group>"; };
+               EEF17D4916E8E2EF00D7DC4D /* NJKeyInputField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJKeyInputField.m; path = Classes/NJKeyInputField.m; sourceTree = "<group>"; };
+               EEF17D4A16E8E2EF00D7DC4D /* NJMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJMapping.h; path = Classes/NJMapping.h; sourceTree = "<group>"; };
+               EEF17D4B16E8E2EF00D7DC4D /* NJMapping.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJMapping.m; path = Classes/NJMapping.m; sourceTree = "<group>"; };
+               EEF17D4E16E8E2EF00D7DC4D /* NJOutput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJOutput.h; path = Classes/NJOutput.h; sourceTree = "<group>"; };
+               EEF17D4F16E8E2EF00D7DC4D /* NJOutput.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJOutput.m; path = Classes/NJOutput.m; sourceTree = "<group>"; };
+               EEF17D5016E8E2EF00D7DC4D /* NJOutputViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJOutputViewController.h; path = Classes/NJOutputViewController.h; sourceTree = "<group>"; };
+               EEF17D5116E8E2EF00D7DC4D /* NJOutputViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJOutputViewController.m; path = Classes/NJOutputViewController.m; sourceTree = "<group>"; };
+               EEF17D5216E8E2EF00D7DC4D /* NJOutputKeyPress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJOutputKeyPress.h; path = Classes/NJOutputKeyPress.h; sourceTree = "<group>"; };
+               EEF17D5316E8E2EF00D7DC4D /* NJOutputKeyPress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJOutputKeyPress.m; path = Classes/NJOutputKeyPress.m; sourceTree = "<group>"; };
+               EEF17D5416E8E2EF00D7DC4D /* NJOutputMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJOutputMapping.h; path = Classes/NJOutputMapping.h; sourceTree = "<group>"; };
+               EEF17D5516E8E2EF00D7DC4D /* NJOutputMapping.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJOutputMapping.m; path = Classes/NJOutputMapping.m; sourceTree = "<group>"; };
+               EEF17D5616E8E2EF00D7DC4D /* NJOutputMouseButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJOutputMouseButton.h; path = Classes/NJOutputMouseButton.h; sourceTree = "<group>"; };
+               EEF17D5716E8E2EF00D7DC4D /* NJOutputMouseButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJOutputMouseButton.m; path = Classes/NJOutputMouseButton.m; sourceTree = "<group>"; };
+               EEF17D5816E8E2EF00D7DC4D /* NJOutputMouseMove.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJOutputMouseMove.h; path = Classes/NJOutputMouseMove.h; sourceTree = "<group>"; };
+               EEF17D5916E8E2EF00D7DC4D /* NJOutputMouseMove.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJOutputMouseMove.m; path = Classes/NJOutputMouseMove.m; sourceTree = "<group>"; };
+               EEF17D5A16E8E2EF00D7DC4D /* NJOutputMouseScroll.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NJOutputMouseScroll.h; path = Classes/NJOutputMouseScroll.h; sourceTree = "<group>"; };
+               EEF17D5B16E8E2EF00D7DC4D /* NJOutputMouseScroll.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NJOutputMouseScroll.m; path = Classes/NJOutputMouseScroll.m; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
+                               EE35A6E417BBCC9500413995 /* CoreVideo.framework in Frameworks */,
                                8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
                                D594BF000FAE7397007A85F2 /* IOKit.framework in Frameworks */,
+                               EED4CE7716EE195100C65AA8 /* Sparkle.framework in Frameworks */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                080E96DDFE201D6D7F000001 /* Classes */ = {
                        isa = PBXGroup;
                        children = (
-                               D594BF810FAE9661007A85F2 /* EnjoyableApplicationDelegate.h */,
-                               D594BF820FAE9661007A85F2 /* EnjoyableApplicationDelegate.m */,
-                               D594BEF70FAE6FF2007A85F2 /* NJDeviceController.h */,
-                               D594BEF80FAE6FF2007A85F2 /* NJDeviceController.m */,
-                               D5617A340FAEB74000928B3A /* NJMappingsController.h */,
-                               D5617A350FAEB74000928B3A /* NJMappingsController.m */,
-                               D5617FE20FAFD7B000928B3A /* NJOutputController.h */,
-                               D5617FE30FAFD7B000928B3A /* NJOutputController.m */,
-                               D5617FE50FAFDB5800928B3A /* NJKeyInputField.h */,
-                               D5617FE60FAFDB5800928B3A /* NJKeyInputField.m */,
-                               D5617A370FAEBA1800928B3A /* NJMapping.h */,
-                               D5617A380FAEBA1800928B3A /* NJMapping.m */,
-                               D594BE840FAE6219007A85F2 /* NJDevice.h */,
-                               D594BE850FAE6219007A85F2 /* NJDevice.m */,
-                               EEF86B7316E2241000674B87 /* NJInputPathElement.h */,
-                               D594BE880FAE64AD007A85F2 /* NJInput.h */,
-                               D594BE890FAE64AD007A85F2 /* NJInput.m */,
-                               D5617D290FAF579A00928B3A /* NJInputAnalog.h */,
-                               D5617D2A0FAF579A00928B3A /* NJInputAnalog.m */,
-                               D5617D180FAF568100928B3A /* NJInputButton.h */,
-                               D5617D190FAF568100928B3A /* NJInputButton.m */,
-                               D5617D240FAF579300928B3A /* NJInputHat.h */,
-                               D5617D250FAF579300928B3A /* NJInputHat.m */,
-                               D5617FD40FAFD06000928B3A /* NJOutput.h */,
-                               D5617FD50FAFD06000928B3A /* NJOutput.m */,
-                               D5617FD70FAFD1E600928B3A /* NJOutputKeyPress.h */,
-                               D5617FD80FAFD1E600928B3A /* NJOutputKeyPress.m */,
-                               D5F8096F0FB093400006A4DE /* NJOutputMapping.h */,
-                               D5F809700FB093400006A4DE /* NJOutputMapping.m */,
-                               8B7E476A15C314A200C588FA /* NJOutputMouseButton.h */,
-                               8B7E476B15C314A200C588FA /* NJOutputMouseButton.m */,
-                               8BD9B54115C230FE00929C5D /* NJOutputMouseMove.h */,
-                               8BD9B54215C230FE00929C5D /* NJOutputMouseMove.m */,
-                               8BEFAD9A15C46BFF00823AEC /* NJOutputMouseScroll.h */,
-                               8BEFAD9B15C46BFF00823AEC /* NJOutputMouseScroll.m */,
+                               EEF17D3916E8E2EF00D7DC4D /* EnjoyableApplicationDelegate.h */,
+                               EEF17D3A16E8E2EF00D7DC4D /* EnjoyableApplicationDelegate.m */,
+                               EEDB86A216FA4C42000E91C3 /* Input */,
+                               EEDB86A316FA4C5C000E91C3 /* Output */,
+                               EEDB86A516FA4CE4000E91C3 /* Views */,
+                               EEDB86A416FA4CD1000E91C3 /* View Controllers */,
                        );
                        name = Classes;
                        sourceTree = "<group>";
                1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
                        isa = PBXGroup;
                        children = (
+                               EED4CE7616EE195100C65AA8 /* Sparkle.framework */,
                                D594BEFF0FAE7397007A85F2 /* IOKit.framework */,
+                               EE35A6E317BBCC9500413995 /* CoreVideo.framework */,
                                1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
                        );
                        name = "Linked Frameworks";
                29B97314FDCFA39411CA2CEA /* Enjoy */ = {
                        isa = PBXGroup;
                        children = (
+                               8D1107310486CEB800E47090 /* Info.plist */,
                                080E96DDFE201D6D7F000001 /* Classes */,
                                EE1D5F8B16E403D600749C36 /* Categories */,
                                29B97315FDCFA39411CA2CEA /* Other Sources */,
                29B97315FDCFA39411CA2CEA /* Other Sources */ = {
                        isa = PBXGroup;
                        children = (
-                               29B97316FDCFA39411CA2CEA /* main.m */,
-                               EEF86B7416E298CD00674B87 /* NJEvents.h */,
-                               32CA4F630368D1EE00C91783 /* Enjoyable_Prefix.pch */,
+                               EEF17D2316E8E2D800D7DC4D /* Enjoyable_Prefix.pch */,
+                               EEF17D2416E8E2D800D7DC4D /* main.m */,
+                               EEF17D2516E8E2D800D7DC4D /* NJEvents.h */,
                        );
                        name = "Other Sources";
                        sourceTree = "<group>";
                29B97317FDCFA39411CA2CEA /* Resources */ = {
                        isa = PBXGroup;
                        children = (
-                               EE03150C16E63481002B2DCE /* Help */,
-                               D5617A080FAEAF8300928B3A /* icon.icns */,
-                               8D1107310486CEB800E47090 /* Info.plist */,
-                               089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
-                               1DDD58140DA1D0A300B32029 /* MainMenu.xib */,
+                               EE3D897D16EA817E00596D1F /* Status Menu Icon Disabled.png */,
+                               EE3D897E16EA817E00596D1F /* Status Menu Icon.png */,
+                               EE3D897B16EA806E00596D1F /* Status Menu Icon Disabled@2x.png */,
+                               EE3D897916EA7EFC00596D1F /* Status Menu Icon@2x.png */,
+                               EE6A122D16E8F46300EDBD32 /* Icon.icns */,
+                               EEF17D2116E8E24400D7DC4D /* Help */,
+                               EE1F3CE816EF4182008C6426 /* Localizable.strings */,
+                               EEF17D1B16E8E23A00D7DC4D /* InfoPlist.strings */,
+                               EEF17D1D16E8E23A00D7DC4D /* MainMenu.xib */,
+                               EEF17D1716E8E21A00D7DC4D /* com.yukkurigames.Enjoyable.mapping.icns */,
                        );
                        name = Resources;
                        sourceTree = "<group>";
                EE1D5F8B16E403D600749C36 /* Categories */ = {
                        isa = PBXGroup;
                        children = (
-                               EE1D7C9416E0ECCF00B000EB /* NSError+Description.h */,
-                               EE1D7C9516E0ECCF00B000EB /* NSError+Description.m */,
-                               EE1D7C9016E01E7000B000EB /* NSView+FirstResponder.h */,
-                               EE1D7C9116E01E7000B000EB /* NSView+FirstResponder.m */,
-                               EE96929216E54B480054A3C8 /* NSMenu+RepresentedObjectAccessors.h */,
-                               EE96929316E54B480054A3C8 /* NSMenu+RepresentedObjectAccessors.m */,
-                               EEAA9CDF16E808E600256B64 /* NSMutableArray+MoveObject.h */,
-                               EEAA9CE016E808E600256B64 /* NSMutableArray+MoveObject.m */,
+                               EE8455DB16F0E46B00F32A01 /* NSRunningApplication+LoginItem.h */,
+                               EE8455DC16F0E46B00F32A01 /* NSRunningApplication+LoginItem.m */,
+                               EEF17D2716E8E2E100D7DC4D /* NSError+Description.h */,
+                               EEF17D2816E8E2E100D7DC4D /* NSError+Description.m */,
+                               EEF17D2916E8E2E100D7DC4D /* NSFileManager+UniqueNames.h */,
+                               EEF17D2A16E8E2E100D7DC4D /* NSFileManager+UniqueNames.m */,
+                               EEF17D2B16E8E2E100D7DC4D /* NSMenu+RepresentedObjectAccessors.h */,
+                               EEF17D2C16E8E2E100D7DC4D /* NSMenu+RepresentedObjectAccessors.m */,
+                               EEF17D2D16E8E2E100D7DC4D /* NSMutableArray+MoveObject.h */,
+                               EEF17D2E16E8E2E100D7DC4D /* NSMutableArray+MoveObject.m */,
+                               EEF17D2F16E8E2E100D7DC4D /* NSString+FixFilename.h */,
+                               EEF17D3016E8E2E100D7DC4D /* NSString+FixFilename.m */,
+                               EEF17D3116E8E2E100D7DC4D /* NSView+FirstResponder.h */,
+                               EEF17D3216E8E2E100D7DC4D /* NSView+FirstResponder.m */,
+                               EEE73B1416EA42E5009D9D99 /* NSRunningApplication+NJPossibleNames.h */,
+                               EEE73B1516EA42E5009D9D99 /* NSRunningApplication+NJPossibleNames.m */,
+                               EE52145A16F3E8BD00E3C574 /* NSOutlineView+ItemAccessors.h */,
+                               EE52145B16F3E8BD00E3C574 /* NSOutlineView+ItemAccessors.m */,
+                               EE48262E16F6680D001B0C64 /* NSProcessInfo+Debugging.h */,
+                               EE48262F16F6680D001B0C64 /* NSProcessInfo+Debugging.m */,
                        );
                        name = Categories;
                        sourceTree = "<group>";
                };
+               EEDB86A216FA4C42000E91C3 /* Input */ = {
+                       isa = PBXGroup;
+                       children = (
+                               EEE703DA16F089FE002FDD69 /* NJHIDManager.h */,
+                               EEE703DB16F089FE002FDD69 /* NJHIDManager.m */,
+                               EEF17D3D16E8E2EF00D7DC4D /* NJInputController.h */,
+                               EEF17D3E16E8E2EF00D7DC4D /* NJInputController.m */,
+                               EEF17D4716E8E2EF00D7DC4D /* NJInputPathElement.h */,
+                               EEE703DD16F0B3F6002FDD69 /* NJInputPathElement.m */,
+                               EEF17D4A16E8E2EF00D7DC4D /* NJMapping.h */,
+                               EEF17D4B16E8E2EF00D7DC4D /* NJMapping.m */,
+                               EEF17D3B16E8E2EF00D7DC4D /* NJDevice.h */,
+                               EEF17D3C16E8E2EF00D7DC4D /* NJDevice.m */,
+                               EEF17D3F16E8E2EF00D7DC4D /* NJInput.h */,
+                               EEF17D4016E8E2EF00D7DC4D /* NJInput.m */,
+                               EEF17D4116E8E2EF00D7DC4D /* NJInputAnalog.h */,
+                               EEF17D4216E8E2EF00D7DC4D /* NJInputAnalog.m */,
+                               EEF17D4316E8E2EF00D7DC4D /* NJInputButton.h */,
+                               EEF17D4416E8E2EF00D7DC4D /* NJInputButton.m */,
+                               EEF17D4516E8E2EF00D7DC4D /* NJInputHat.h */,
+                               EEF17D4616E8E2EF00D7DC4D /* NJInputHat.m */,
+                       );
+                       name = Input;
+                       sourceTree = "<group>";
+               };
+               EEDB86A316FA4C5C000E91C3 /* Output */ = {
+                       isa = PBXGroup;
+                       children = (
+                               EEF17D4E16E8E2EF00D7DC4D /* NJOutput.h */,
+                               EEF17D4F16E8E2EF00D7DC4D /* NJOutput.m */,
+                               EEF17D5216E8E2EF00D7DC4D /* NJOutputKeyPress.h */,
+                               EEF17D5316E8E2EF00D7DC4D /* NJOutputKeyPress.m */,
+                               EEF17D5416E8E2EF00D7DC4D /* NJOutputMapping.h */,
+                               EEF17D5516E8E2EF00D7DC4D /* NJOutputMapping.m */,
+                               EEF17D5616E8E2EF00D7DC4D /* NJOutputMouseButton.h */,
+                               EEF17D5716E8E2EF00D7DC4D /* NJOutputMouseButton.m */,
+                               EEF17D5816E8E2EF00D7DC4D /* NJOutputMouseMove.h */,
+                               EEF17D5916E8E2EF00D7DC4D /* NJOutputMouseMove.m */,
+                               EEF17D5A16E8E2EF00D7DC4D /* NJOutputMouseScroll.h */,
+                               EEF17D5B16E8E2EF00D7DC4D /* NJOutputMouseScroll.m */,
+                       );
+                       name = Output;
+                       sourceTree = "<group>";
+               };
+               EEDB86A416FA4CD1000E91C3 /* View Controllers */ = {
+                       isa = PBXGroup;
+                       children = (
+                               EEF17D5016E8E2EF00D7DC4D /* NJOutputViewController.h */,
+                               EEF17D5116E8E2EF00D7DC4D /* NJOutputViewController.m */,
+                               EED4CE6C16ED692400C65AA8 /* NJMappingMenuController.h */,
+                               EED4CE6D16ED692400C65AA8 /* NJMappingMenuController.m */,
+                               EE52145D16F404D500E3C574 /* NJDeviceViewController.h */,
+                               EE52145E16F404D500E3C574 /* NJDeviceViewController.m */,
+                               EE83ACEA16F545EA00083E94 /* NJMappingsViewController.h */,
+                               EE83ACEB16F545EA00083E94 /* NJMappingsViewController.m */,
+                       );
+                       name = "View Controllers";
+                       sourceTree = "<group>";
+               };
+               EEDB86A516FA4CE4000E91C3 /* Views */ = {
+                       isa = PBXGroup;
+                       children = (
+                               EEF17D4816E8E2EF00D7DC4D /* NJKeyInputField.h */,
+                               EEF17D4916E8E2EF00D7DC4D /* NJKeyInputField.m */,
+                       );
+                       name = Views;
+                       sourceTree = "<group>";
+               };
 /* End PBXGroup section */
 
 /* Begin PBXNativeTarget section */
                        isa = PBXNativeTarget;
                        buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Enjoyable" */;
                        buildPhases = (
+                               EE3D898416EAAE1600596D1F /* Increment build number */,
                                EED7E81616E7B547004A0BA4 /* Generate Help Index */,
                                8D1107290486CEB800E47090 /* Resources */,
                                8D11072C0486CEB800E47090 /* Sources */,
                                8D11072E0486CEB800E47090 /* Frameworks */,
+                               EED4CE7416EE0E6400C65AA8 /* Copy Sparkle Framework */,
                        );
                        buildRules = (
                        );
                29B97313FDCFA39411CA2CEA /* Project object */ = {
                        isa = PBXProject;
                        attributes = {
-                               LastUpgradeCheck = 0460;
+                               LastUpgradeCheck = 0500;
                        };
                        buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Enjoyable" */;
                        compatibilityVersion = "Xcode 3.2";
                        isa = PBXResourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
-                               1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */,
-                               D5F80A9D0FB0A2FF0006A4DE /* icon.icns in Resources */,
-                               EE03150D16E63481002B2DCE /* Help in Resources */,
+                               EEF17D1916E8E21A00D7DC4D /* com.yukkurigames.Enjoyable.mapping.icns in Resources */,
+                               EEF17D1F16E8E23A00D7DC4D /* InfoPlist.strings in Resources */,
+                               EEF17D2016E8E23A00D7DC4D /* MainMenu.xib in Resources */,
+                               EEF17D2216E8E24400D7DC4D /* Help in Resources */,
+                               EE6A122E16E8F46300EDBD32 /* Icon.icns in Resources */,
+                               EE3D897A16EA7EFC00596D1F /* Status Menu Icon@2x.png in Resources */,
+                               EE3D897C16EA806E00596D1F /* Status Menu Icon Disabled@2x.png in Resources */,
+                               EE3D897F16EA817E00596D1F /* Status Menu Icon Disabled.png in Resources */,
+                               EE3D898016EA817E00596D1F /* Status Menu Icon.png in Resources */,
+                               EE1F3CEA16EF4182008C6426 /* Localizable.strings in Resources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
 /* End PBXResourcesBuildPhase section */
 
 /* Begin PBXShellScriptBuildPhase section */
+               EE3D898416EAAE1600596D1F /* Increment build number */ = {
+                       isa = PBXShellScriptBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       inputPaths = (
+                       );
+                       name = "Increment build number";
+                       outputPaths = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+                       shellPath = /bin/sh;
+                       shellScript = "#!/bin/sh\n\nplist=\"${PROJECT_DIR}/${INFOPLIST_FILE}\"\ndir=\"$(dirname \"$plist\")\"\n\n# Only increment the build number if source files have changed\nif [ -n \"$(find \"$dir\" \\! -path \"*xcuserdata*\" \\! -path \"*.git*\" \\! -name .DS_Store \\! -path \"*Website*\" -newer \"$plist\")\" ]; then\n    buildnum=$(/usr/libexec/Plistbuddy -c \"Print CFBundleVersion\" \"$plist\")\n    if [ -z \"$buildnum\" ]; then\n        echo \"No build number in $plist\"\n        exit 2\n    fi\n    buildnum=$(expr $buildnum + 1)\n    /usr/libexec/Plistbuddy -c \"Set CFBundleVersion $buildnum\" \"$plist\"\n    echo \"Incremented build number to $buildnum\"\nelse\n    echo \"Not incrementing build number as source files have not changed\"\nfi\n";
+               };
                EED7E81616E7B547004A0BA4 /* Generate Help Index */ = {
                        isa = PBXShellScriptBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                        shellPath = /bin/sh;
-                       shellScript = "cd ${SOURCE_ROOT}/Help/Contents/Resources/English.lproj\nmake\n";
+                       shellScript = "cd ${SOURCE_ROOT}/Resources/Help/Contents/Resources/English.lproj\nmake\n";
                };
 /* End PBXShellScriptBuildPhase section */
 
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               8D11072D0486CEB800E47090 /* main.m in Sources */,
-                               D594BE860FAE6219007A85F2 /* NJDevice.m in Sources */,
-                               D594BE8A0FAE64AD007A85F2 /* NJInput.m in Sources */,
-                               D594BEF90FAE6FF2007A85F2 /* NJDeviceController.m in Sources */,
-                               D594BF830FAE9661007A85F2 /* EnjoyableApplicationDelegate.m in Sources */,
-                               D5617A360FAEB74000928B3A /* NJMappingsController.m in Sources */,
-                               D5617A390FAEBA1800928B3A /* NJMapping.m in Sources */,
-                               D5617D1A0FAF568100928B3A /* NJInputButton.m in Sources */,
-                               D5617D260FAF579300928B3A /* NJInputHat.m in Sources */,
-                               D5617D2B0FAF579A00928B3A /* NJInputAnalog.m in Sources */,
-                               D5617FD60FAFD06000928B3A /* NJOutput.m in Sources */,
-                               D5617FD90FAFD1E600928B3A /* NJOutputKeyPress.m in Sources */,
-                               D5617FE40FAFD7B000928B3A /* NJOutputController.m in Sources */,
-                               D5617FE70FAFDB5800928B3A /* NJKeyInputField.m in Sources */,
-                               D5F809710FB093400006A4DE /* NJOutputMapping.m in Sources */,
-                               8BD9B54315C230FF00929C5D /* NJOutputMouseMove.m in Sources */,
-                               8B7E476C15C314A200C588FA /* NJOutputMouseButton.m in Sources */,
-                               8BEFAD9C15C46BFF00823AEC /* NJOutputMouseScroll.m in Sources */,
-                               EE1D7C9216E01E7000B000EB /* NSView+FirstResponder.m in Sources */,
-                               EE1D7C9616E0ECCF00B000EB /* NSError+Description.m in Sources */,
-                               EE96929416E54B480054A3C8 /* NSMenu+RepresentedObjectAccessors.m in Sources */,
-                               EEAA9CE116E808E600256B64 /* NSMutableArray+MoveObject.m in Sources */,
+                               EEF17D2616E8E2D800D7DC4D /* main.m in Sources */,
+                               EEF17D3316E8E2E100D7DC4D /* NSError+Description.m in Sources */,
+                               EEF17D3416E8E2E100D7DC4D /* NSFileManager+UniqueNames.m in Sources */,
+                               EEF17D3516E8E2E100D7DC4D /* NSMenu+RepresentedObjectAccessors.m in Sources */,
+                               EEF17D3616E8E2E100D7DC4D /* NSMutableArray+MoveObject.m in Sources */,
+                               EEF17D3716E8E2E100D7DC4D /* NSString+FixFilename.m in Sources */,
+                               EEF17D3816E8E2E100D7DC4D /* NSView+FirstResponder.m in Sources */,
+                               EEF17D5C16E8E2EF00D7DC4D /* EnjoyableApplicationDelegate.m in Sources */,
+                               EEF17D5D16E8E2EF00D7DC4D /* NJDevice.m in Sources */,
+                               EEF17D5E16E8E2EF00D7DC4D /* NJInputController.m in Sources */,
+                               EEF17D5F16E8E2EF00D7DC4D /* NJInput.m in Sources */,
+                               EEF17D6016E8E2EF00D7DC4D /* NJInputAnalog.m in Sources */,
+                               EEF17D6116E8E2EF00D7DC4D /* NJInputButton.m in Sources */,
+                               EEF17D6216E8E2EF00D7DC4D /* NJInputHat.m in Sources */,
+                               EEF17D6316E8E2EF00D7DC4D /* NJKeyInputField.m in Sources */,
+                               EEF17D6416E8E2EF00D7DC4D /* NJMapping.m in Sources */,
+                               EEF17D6616E8E2EF00D7DC4D /* NJOutput.m in Sources */,
+                               EEF17D6716E8E2EF00D7DC4D /* NJOutputViewController.m in Sources */,
+                               EEF17D6816E8E2EF00D7DC4D /* NJOutputKeyPress.m in Sources */,
+                               EEF17D6916E8E2EF00D7DC4D /* NJOutputMapping.m in Sources */,
+                               EEF17D6A16E8E2EF00D7DC4D /* NJOutputMouseButton.m in Sources */,
+                               EEF17D6B16E8E2EF00D7DC4D /* NJOutputMouseMove.m in Sources */,
+                               EEF17D6C16E8E2EF00D7DC4D /* NJOutputMouseScroll.m in Sources */,
+                               EEE73B1616EA42E5009D9D99 /* NSRunningApplication+NJPossibleNames.m in Sources */,
+                               EED4CE6E16ED692400C65AA8 /* NJMappingMenuController.m in Sources */,
+                               EEE703DC16F089FE002FDD69 /* NJHIDManager.m in Sources */,
+                               EEE703DE16F0B3F6002FDD69 /* NJInputPathElement.m in Sources */,
+                               EE8455DD16F0E46B00F32A01 /* NSRunningApplication+LoginItem.m in Sources */,
+                               EE52145C16F3E8BD00E3C574 /* NSOutlineView+ItemAccessors.m in Sources */,
+                               EE52145F16F404D500E3C574 /* NJDeviceViewController.m in Sources */,
+                               EE83ACEC16F545EA00083E94 /* NJMappingsViewController.m in Sources */,
+                               EE48263016F6680D001B0C64 /* NSProcessInfo+Debugging.m in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
 /* End PBXSourcesBuildPhase section */
 
 /* Begin PBXVariantGroup section */
-               089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
+               EE1F3CE816EF4182008C6426 /* Localizable.strings */ = {
+                       isa = PBXVariantGroup;
+                       children = (
+                               EE1F3CE916EF4182008C6426 /* English */,
+                       );
+                       name = Localizable.strings;
+                       sourceTree = "<group>";
+               };
+               EEF17D1B16E8E23A00D7DC4D /* InfoPlist.strings */ = {
                        isa = PBXVariantGroup;
                        children = (
-                               089C165DFE840E0CC02AAC07 /* English */,
+                               EEF17D1C16E8E23A00D7DC4D /* English */,
                        );
                        name = InfoPlist.strings;
                        sourceTree = "<group>";
                };
-               1DDD58140DA1D0A300B32029 /* MainMenu.xib */ = {
+               EEF17D1D16E8E23A00D7DC4D /* MainMenu.xib */ = {
                        isa = PBXVariantGroup;
                        children = (
-                               1DDD58150DA1D0A300B32029 /* English */,
+                               EEF17D1E16E8E23A00D7DC4D /* English */,
                        );
                        name = MainMenu.xib;
                        sourceTree = "<group>";
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                ALWAYS_SEARCH_USER_PATHS = NO;
-                               ARCHS = "$(ARCHS_STANDARD_64_BIT)";
                                CLANG_ENABLE_OBJC_ARC = YES;
                                CLANG_WARN_EMPTY_BODY = YES;
                                CLANG_WARN_IMPLICIT_SIGN_CONVERSION = NO;
+                               CODE_SIGN_IDENTITY = "Joe Wreschnig's Self-Signed OS X Applications";
                                COMBINE_HIDPI_IMAGES = YES;
                                COPY_PHASE_STRIP = NO;
+                               FRAMEWORK_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       "\"$(SRCROOT)\"",
+                               );
                                GCC_C_LANGUAGE_STANDARD = c99;
                                GCC_DYNAMIC_NO_PIC = NO;
                                GCC_MODEL_TUNING = G5;
                                GCC_OPTIMIZATION_LEVEL = 0;
                                GCC_PRECOMPILE_PREFIX_HEADER = YES;
-                               GCC_PREFIX_HEADER = Enjoyable_Prefix.pch;
+                               GCC_PREFIX_HEADER = "Other Sources/Enjoyable_Prefix.pch";
                                GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
                                GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES;
                                INFOPLIST_FILE = Info.plist;
                                INSTALL_PATH = "$(HOME)/Applications";
                                MACOSX_DEPLOYMENT_TARGET = 10.7;
                                PRODUCT_NAME = Enjoyable;
+                               PROVISIONING_PROFILE = "";
                        };
                        name = Debug;
                };
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                ALWAYS_SEARCH_USER_PATHS = NO;
-                               ARCHS = "$(ARCHS_STANDARD_64_BIT)";
                                CLANG_ENABLE_OBJC_ARC = YES;
                                CLANG_WARN_EMPTY_BODY = YES;
                                CLANG_WARN_IMPLICIT_SIGN_CONVERSION = NO;
+                               CODE_SIGN_IDENTITY = "Joe Wreschnig's Self-Signed OS X Applications";
                                COMBINE_HIDPI_IMAGES = YES;
                                DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+                               FRAMEWORK_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       "\"$(SRCROOT)\"",
+                               );
                                GCC_C_LANGUAGE_STANDARD = c99;
                                GCC_MODEL_TUNING = G5;
                                GCC_PRECOMPILE_PREFIX_HEADER = YES;
-                               GCC_PREFIX_HEADER = Enjoyable_Prefix.pch;
+                               GCC_PREFIX_HEADER = "Other Sources/Enjoyable_Prefix.pch";
                                GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
                                GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES;
                                INFOPLIST_FILE = Info.plist;
                                INSTALL_PATH = "$(HOME)/Applications";
                                MACOSX_DEPLOYMENT_TARGET = 10.7;
                                PRODUCT_NAME = Enjoyable;
+                               PROVISIONING_PROFILE = "";
                        };
                        name = Release;
                };
                C01FCF4F08A954540054247B /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
-                               ARCHS = "$(ARCHS_STANDARD_64_BIT)";
                                CLANG_ENABLE_OBJC_ARC = YES;
                                CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
                                CLANG_WARN_ENUM_CONVERSION = YES;
                                CLANG_WARN__DUPLICATE_METHOD_MATCH = NO;
                                GCC_C_LANGUAGE_STANDARD = c99;
                                GCC_OPTIMIZATION_LEVEL = 0;
+                               GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
                                GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
                                GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
                                GCC_TREAT_WARNINGS_AS_ERRORS = YES;
                C01FCF5008A954540054247B /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
-                               ARCHS = "$(ARCHS_STANDARD_64_BIT)";
                                CLANG_ENABLE_OBJC_ARC = YES;
                                CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
                                CLANG_WARN_ENUM_CONVERSION = YES;