From 30d9eeec2b392f3820b966dcc2595cd3f857a2ab Mon Sep 17 00:00:00 2001 From: Christopher Snowhill Date: Tue, 25 Feb 2025 20:10:06 -0800 Subject: [PATCH] Cleanup: Massive code cleanup and reorganization Cleaned up project settings to current defaults, except for the macOS deployment version, which is still 10.13. Cleaned up a lot of headers and such to include with angle braces instead of double quotes. Enabled build sandbox in a lot of places. Disabled subproject signing in several places, for libraries and frameworks which will be stripped and signed when they are copied into place in the final build. Also, while trying to solve compilation issues, the visualization controller was reverted to the Objective C implementation, which is probably faster anyway. Stupid Swift/Objective-C language mixing issues. Signed-off-by: Christopher Snowhill --- Application/AppController.h | 2 +- Audio/AudioDecoder.h | 2 +- Audio/Chain/BufferChain.h | 18 +- Audio/Chain/BufferChain.m | 3 - Audio/Chain/ChunkList.h | 2 +- Audio/Chain/ConverterNode.h | 4 +- Audio/Chain/DSP/DSPDownmixNode.h | 2 +- Audio/Chain/DSP/DSPEqualizerNode.h | 2 +- Audio/Chain/DSP/DSPFSurroundNode.h | 2 +- Audio/Chain/DSP/DSPHRTFNode.h | 2 +- Audio/Chain/DSP/DSPRubberbandNode.h | 2 +- Audio/Chain/DSPNode.h | 2 +- Audio/Chain/InputNode.h | 6 +- Audio/Chain/Node.h | 2 +- Audio/Chain/OutputNode.h | 4 +- Audio/Chain/VisualizationNode.h | 2 +- Audio/Chain/VisualizationNode.m | 2 +- Audio/CogAudio.xcodeproj/project.pbxproj | 157 +++++++++++------- ...o Framework.xcscheme => CogAudio.xcscheme} | 8 +- Audio/Output/OutputCoreAudio.h | 6 +- Audio/Output/OutputCoreAudio.m | 7 +- Audio/Plugin.h | 2 +- Audio/PluginController.h | 2 +- Audio/Visualization/VisualizationController.h | 8 +- Audio/Visualization/VisualizationController.m | 61 +++++-- .../xcshareddata/xcschemes/Cog.xcscheme | 2 +- .../libAdPlug.xcodeproj/project.pbxproj | 25 ++- .../File_Extractor.xcodeproj/project.pbxproj | 13 +- .../xcschemes/File_Extractor.xcscheme | 2 +- Frameworks/GME/GME.xcodeproj/project.pbxproj | 13 +- .../xcschemes/GME Framework.xcscheme | 2 +- .../HighlyAdvanced.xcodeproj/project.pbxproj | 13 +- .../xcschemes/HighlyAdvanced.xcscheme | 2 +- .../project.pbxproj | 13 +- .../xcschemes/HighlyExperimental.xcscheme | 2 +- .../HighlyQuixotic.xcodeproj/project.pbxproj | 13 +- .../xcschemes/HighlyQuixotic.xcscheme | 2 +- .../project.pbxproj | 13 +- .../xcschemes/HighlyTheoretical.xcscheme | 2 +- .../HivelyPlayer.xcodeproj/project.pbxproj | 13 +- .../xcschemes/HivelyPlayer.xcscheme | 2 +- .../MPCDec/MPCDec.xcodeproj/project.pbxproj | 13 +- .../xcschemes/mpcdec Framework.xcscheme | 2 +- .../libOpenMPT.xcodeproj/project.pbxproj | 25 ++- .../SSEQPlayer.xcodeproj/project.pbxproj | 13 +- .../xcschemes/SSEQPlayer.xcscheme | 2 +- .../Shorten/Shorten.xcodeproj/project.pbxproj | 13 +- .../xcschemes/Shorten Framework.xcscheme | 2 +- .../WavPack/WavPack.xcodeproj/project.pbxproj | 13 +- .../xcschemes/WavPack Framework.xcscheme | 2 +- .../g719/g719.xcodeproj/project.pbxproj | 25 ++- .../xcshareddata/xcschemes/g719.xcscheme | 2 +- .../lazyusf2.xcodeproj/project.pbxproj | 13 +- .../xcshareddata/xcschemes/lazyusf2.xcscheme | 2 +- .../libatrac9.xcodeproj/project.pbxproj | 15 +- .../libbinio.xcodeproj/project.pbxproj | 27 ++- .../libcelt_0061.xcodeproj/project.pbxproj | 6 +- .../libcelt_0110.xcodeproj/project.pbxproj | 6 +- .../sidplayfp.xcodeproj/project.pbxproj | 13 +- .../mGBA/mGBA.xcodeproj/project.pbxproj | 25 ++- .../xcshareddata/xcschemes/mGBA.xcscheme | 2 +- .../midi_processing.xcodeproj/project.pbxproj | 13 +- .../xcschemes/midi_processing.xcscheme | 2 +- .../psflib/psflib.xcodeproj/project.pbxproj | 13 +- .../xcshareddata/xcschemes/psflib.xcscheme | 2 +- Frameworks/shpakovski/MASShortcut | 2 +- .../libvgmstream.xcodeproj/project.pbxproj | 13 +- .../xcshareddata/xcschemes/vgmstream.xcscheme | 2 +- .../vio2sf/vio2sf.xcodeproj/project.pbxproj | 13 +- .../xcshareddata/xcschemes/vio2sf.xcscheme | 2 +- Plugins/APL/APL.xcodeproj/project.pbxproj | 11 +- .../xcschemes/APL Plugin.xcscheme | 2 +- .../AdPlug/AdPlug.xcodeproj/project.pbxproj | 11 +- .../ArchiveSource.xcodeproj/project.pbxproj | 11 +- .../xcschemes/ArchiveSource.xcscheme | 2 +- .../CoreAudio.xcodeproj/project.pbxproj | 11 +- .../xcschemes/CoreAudio Plugin.xcscheme | 2 +- .../CueSheet.xcodeproj/project.pbxproj | 11 +- .../xcshareddata/xcschemes/CueSheet.xcscheme | 2 +- .../FFMPEG/FFMPEG.xcodeproj/project.pbxproj | 11 +- .../xcschemes/FFMPEG Plugin.xcscheme | 2 +- .../FileSource.xcodeproj/project.pbxproj | 11 +- .../xcschemes/FileSource Plugin.xcscheme | 2 +- Plugins/Flac/Flac.xcodeproj/project.pbxproj | 11 +- .../xcschemes/Flac Plugin.xcscheme | 2 +- Plugins/GME/GME.xcodeproj/project.pbxproj | 11 +- .../xcschemes/GME Plugin.xcscheme | 2 +- .../HTTPSource.xcodeproj/project.pbxproj | 11 +- .../xcschemes/HTTPSource Plugin.xcscheme | 2 +- .../HighlyComplete.xcodeproj/project.pbxproj | 11 +- .../xcschemes/HighlyComplete.xcscheme | 2 +- .../Hively/Hively.xcodeproj/project.pbxproj | 11 +- .../xcshareddata/xcschemes/Hively.xcscheme | 2 +- Plugins/M3u/M3u.xcodeproj/project.pbxproj | 11 +- .../xcshareddata/xcschemes/M3u.xcscheme | 2 +- Plugins/MAD/MAD.xcodeproj/project.pbxproj | 8 +- .../xcshareddata/xcschemes/MAD.xcscheme | 2 +- Plugins/MIDI/MIDI.xcodeproj/project.pbxproj | 11 +- .../xcshareddata/xcschemes/MIDI.xcscheme | 2 +- .../Musepack.xcodeproj/project.pbxproj | 11 +- .../xcschemes/Musepack Plugin.xcscheme | 2 +- .../OpenMPT/OpenMPT.xcodeproj/project.pbxproj | 11 +- .../xcshareddata/xcschemes/OpenMPT.xcscheme | 2 +- .../Opus/OpusPlugin.xcodeproj/project.pbxproj | 11 +- .../xcshareddata/xcschemes/Opus.xcscheme | 2 +- .../Organya/Organya.xcodeproj/project.pbxproj | 8 +- Plugins/Pls/Pls.xcodeproj/project.pbxproj | 11 +- .../xcshareddata/xcschemes/Pls.xcscheme | 2 +- .../Shorten/Shorten.xcodeproj/project.pbxproj | 11 +- .../xcschemes/Shorten Plugin.xcscheme | 2 +- .../SilenceDecoder.xcodeproj/project.pbxproj | 11 +- .../xcschemes/SilenceDecoder.xcscheme | 2 +- .../TagLib/TagLib.xcodeproj/project.pbxproj | 11 +- .../xcschemes/TagLib Plugin.xcscheme | 2 +- .../VorbisPlugin.xcodeproj/project.pbxproj | 11 +- .../xcschemes/Vorbis Plugin.xcscheme | 2 +- .../WavPack/WavPack.xcodeproj/project.pbxproj | 11 +- .../xcschemes/WavPack Plugin.xcscheme | 2 +- .../libvgmPlayer.xcodeproj/project.pbxproj | 11 +- .../xcschemes/GME Plugin.xcscheme | 2 +- .../xcschemes/libvgmPlayer Plugin.xcscheme | 2 +- .../sidplay/sidplay.xcodeproj/project.pbxproj | 11 +- .../xcshareddata/xcschemes/sidplay.xcscheme | 2 +- .../vgmstream.xcodeproj/project.pbxproj | 11 +- .../xcshareddata/xcschemes/vgmstream.xcscheme | 2 +- .../Preferences/Base.lproj/Preferences.xib | 4 +- .../Preferences.xcodeproj/project.pbxproj | 11 +- .../xcschemes/Preferences.xcscheme | 2 +- Visualization/SpectrumViewCG.h | 2 +- Visualization/SpectrumViewSK.h | 2 +- 130 files changed, 817 insertions(+), 285 deletions(-) rename Audio/CogAudio.xcodeproj/xcshareddata/xcschemes/{CogAudio Framework.xcscheme => CogAudio.xcscheme} (93%) diff --git a/Application/AppController.h b/Application/AppController.h index 74552e982..782b5f280 100644 --- a/Application/AppController.h +++ b/Application/AppController.h @@ -104,7 +104,7 @@ + (void)globalShowPathSuggester; - (IBAction)showRubberbandSettings:(id)sender; -- (void)globalShowRubberbandSettings; ++ (void)globalShowRubberbandSettings; @property NSWindow *mainWindow; @property NSWindow *miniWindow; diff --git a/Audio/AudioDecoder.h b/Audio/AudioDecoder.h index 9a724ea44..e8096609c 100644 --- a/Audio/AudioDecoder.h +++ b/Audio/AudioDecoder.h @@ -8,7 +8,7 @@ #import -#import "Plugin.h" +#import @interface AudioDecoder : NSObject { } diff --git a/Audio/Chain/BufferChain.h b/Audio/Chain/BufferChain.h index 6c4df021c..340e6a3fa 100644 --- a/Audio/Chain/BufferChain.h +++ b/Audio/Chain/BufferChain.h @@ -8,15 +8,15 @@ #import -#import "AudioPlayer.h" -#import "ConverterNode.h" -#import "DSPRubberbandNode.h" -#import "DSPFSurroundNode.h" -#import "DSPHRTFNode.h" -#import "DSPEqualizerNode.h" -#import "VisualizationNode.h" -#import "DSPDownmixNode.h" -#import "InputNode.h" +#import +#import +#import +#import +#import +#import +#import +#import +#import @interface BufferChain : NSObject { InputNode *inputNode; diff --git a/Audio/Chain/BufferChain.m b/Audio/Chain/BufferChain.m index 7a21d6003..3b88b4369 100644 --- a/Audio/Chain/BufferChain.m +++ b/Audio/Chain/BufferChain.m @@ -227,9 +227,6 @@ - (void)seek:(double)time { long frame = (long)round(time * [[[inputNode properties] objectForKey:@"sampleRate"] floatValue]); - AudioPlayer * audioPlayer = controller; - OutputNode *outputNode = [audioPlayer output]; - [inputNode seek:frame]; } diff --git a/Audio/Chain/ChunkList.h b/Audio/Chain/ChunkList.h index 3900e457d..34fea432a 100644 --- a/Audio/Chain/ChunkList.h +++ b/Audio/Chain/ChunkList.h @@ -8,7 +8,7 @@ #import #import -#import "AudioChunk.h" +#import #import diff --git a/Audio/Chain/ConverterNode.h b/Audio/Chain/ConverterNode.h index 8977f1a43..7f671bda3 100644 --- a/Audio/Chain/ConverterNode.h +++ b/Audio/Chain/ConverterNode.h @@ -12,9 +12,9 @@ #import #import -#import +#import -#import "Node.h" +#import @interface ConverterNode : Node { NSDictionary *rgInfo; diff --git a/Audio/Chain/DSP/DSPDownmixNode.h b/Audio/Chain/DSP/DSPDownmixNode.h index 2db82b32c..28dc5d31c 100644 --- a/Audio/Chain/DSP/DSPDownmixNode.h +++ b/Audio/Chain/DSP/DSPDownmixNode.h @@ -10,7 +10,7 @@ #import -#import "DSPNode.h" +#import @interface DSPDownmixNode : DSPNode { } diff --git a/Audio/Chain/DSP/DSPEqualizerNode.h b/Audio/Chain/DSP/DSPEqualizerNode.h index c422765d6..6e685e1f3 100644 --- a/Audio/Chain/DSP/DSPEqualizerNode.h +++ b/Audio/Chain/DSP/DSPEqualizerNode.h @@ -8,7 +8,7 @@ #ifndef DSPEqualizerNode_h #define DSPEqualizerNode_h -#import "DSPNode.h" +#import @interface DSPEqualizerNode : DSPNode { float *samplePtr; diff --git a/Audio/Chain/DSP/DSPFSurroundNode.h b/Audio/Chain/DSP/DSPFSurroundNode.h index 7bbd0e9e2..a9a0b437d 100644 --- a/Audio/Chain/DSP/DSPFSurroundNode.h +++ b/Audio/Chain/DSP/DSPFSurroundNode.h @@ -8,7 +8,7 @@ #ifndef DSPFSurroundNode_h #define DSPFSurroundNode_h -#import "DSPNode.h" +#import @interface DSPFSurroundNode : DSPNode { } diff --git a/Audio/Chain/DSP/DSPHRTFNode.h b/Audio/Chain/DSP/DSPHRTFNode.h index 1906442ed..dbf76e334 100644 --- a/Audio/Chain/DSP/DSPHRTFNode.h +++ b/Audio/Chain/DSP/DSPHRTFNode.h @@ -10,7 +10,7 @@ #import -#import "DSPNode.h" +#import @interface DSPHRTFNode : DSPNode { } diff --git a/Audio/Chain/DSP/DSPRubberbandNode.h b/Audio/Chain/DSP/DSPRubberbandNode.h index 7680e74f2..1f8c2256d 100644 --- a/Audio/Chain/DSP/DSPRubberbandNode.h +++ b/Audio/Chain/DSP/DSPRubberbandNode.h @@ -8,7 +8,7 @@ #ifndef DSPRubberbandNode_h #define DSPRubberbandNode_h -#import "DSPNode.h" +#import @interface DSPRubberbandNode : DSPNode { } diff --git a/Audio/Chain/DSPNode.h b/Audio/Chain/DSPNode.h index 3be96fdd8..9a4e1bfca 100644 --- a/Audio/Chain/DSPNode.h +++ b/Audio/Chain/DSPNode.h @@ -8,7 +8,7 @@ #ifndef DSPNode_h #define DSPNode_h -#import "Node.h" +#import @interface DSPNode : Node { } diff --git a/Audio/Chain/InputNode.h b/Audio/Chain/InputNode.h index d5cb999d4..cc2b1d2df 100644 --- a/Audio/Chain/InputNode.h +++ b/Audio/Chain/InputNode.h @@ -12,9 +12,9 @@ #import #import -#import "AudioDecoder.h" -#import "Node.h" -#import "Plugin.h" +#import +#import +#import #define INPUT_NODE_SEEK diff --git a/Audio/Chain/Node.h b/Audio/Chain/Node.h index 05ea06dee..81f5d0d0f 100644 --- a/Audio/Chain/Node.h +++ b/Audio/Chain/Node.h @@ -6,7 +6,7 @@ // Copyright 2006 Vincent Spader. All rights reserved. // -#import "ChunkList.h" +#import #import #import diff --git a/Audio/Chain/OutputNode.h b/Audio/Chain/OutputNode.h index 7c6a38877..2ea2f8aa2 100644 --- a/Audio/Chain/OutputNode.h +++ b/Audio/Chain/OutputNode.h @@ -12,8 +12,8 @@ #import #import -#import "Node.h" -#import "OutputCoreAudio.h" +#import +#import @interface OutputNode : Node { AudioStreamBasicDescription format; diff --git a/Audio/Chain/VisualizationNode.h b/Audio/Chain/VisualizationNode.h index 4ec90e4c7..ad68af773 100644 --- a/Audio/Chain/VisualizationNode.h +++ b/Audio/Chain/VisualizationNode.h @@ -8,7 +8,7 @@ #ifndef VisualizationNode_h #define VisualizationNode_h -#import "Node.h" +#import @interface VisualizationNode : Node { } diff --git a/Audio/Chain/VisualizationNode.m b/Audio/Chain/VisualizationNode.m index 2ade0c51d..0a6ec69e7 100644 --- a/Audio/Chain/VisualizationNode.m +++ b/Audio/Chain/VisualizationNode.m @@ -13,7 +13,7 @@ #import "Downmix.h" -#import +#import #import "BufferChain.h" diff --git a/Audio/CogAudio.xcodeproj/project.pbxproj b/Audio/CogAudio.xcodeproj/project.pbxproj index 84cd0fb0f..eb5454824 100644 --- a/Audio/CogAudio.xcodeproj/project.pbxproj +++ b/Audio/CogAudio.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -47,33 +47,32 @@ 8328995727CB51B700D7F028 /* SHA256Digest.h in Headers */ = {isa = PBXBuildFile; fileRef = 8328995527CB51B700D7F028 /* SHA256Digest.h */; }; 8328995827CB51B700D7F028 /* SHA256Digest.m in Sources */ = {isa = PBXBuildFile; fileRef = 8328995627CB51B700D7F028 /* SHA256Digest.m */; }; 8328995A27CB51C900D7F028 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8328995927CB51C900D7F028 /* Security.framework */; }; - 833738EA2D5EA52500278628 /* DSPDownmixNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 833738E92D5EA52500278628 /* DSPDownmixNode.h */; }; + 833442422D6EFA6700C51D38 /* VisualizationController.h in Headers */ = {isa = PBXBuildFile; fileRef = 833442402D6EFA6700C51D38 /* VisualizationController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 833442432D6EFA6700C51D38 /* VisualizationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 833442412D6EFA6700C51D38 /* VisualizationController.m */; }; + 833738EA2D5EA52500278628 /* DSPDownmixNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 833738E92D5EA52500278628 /* DSPDownmixNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; 833738EC2D5EA53500278628 /* DSPDownmixNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 833738EB2D5EA53500278628 /* DSPDownmixNode.m */; }; 833738EF2D5EA5B700278628 /* Downmix.m in Sources */ = {isa = PBXBuildFile; fileRef = 833738EE2D5EA5B700278628 /* Downmix.m */; }; - 833738F02D5EA5B700278628 /* Downmix.h in Headers */ = {isa = PBXBuildFile; fileRef = 833738ED2D5EA5B700278628 /* Downmix.h */; }; + 833738F02D5EA5B700278628 /* Downmix.h in Headers */ = {isa = PBXBuildFile; fileRef = 833738ED2D5EA5B700278628 /* Downmix.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8347C7412796C58800FA8A7D /* NSFileHandle+CreateFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8347C73F2796C58800FA8A7D /* NSFileHandle+CreateFile.h */; }; 8347C7422796C58800FA8A7D /* NSFileHandle+CreateFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8347C7402796C58800FA8A7D /* NSFileHandle+CreateFile.m */; }; 834A41A9287A90AB00EB9D9B /* freesurround_decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 834A41A5287A90AB00EB9D9B /* freesurround_decoder.h */; }; 834A41AA287A90AB00EB9D9B /* freesurround_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 834A41A6287A90AB00EB9D9B /* freesurround_decoder.cpp */; }; 834A41AB287A90AB00EB9D9B /* channelmaps.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 834A41A7287A90AB00EB9D9B /* channelmaps.cpp */; }; 834A41AC287A90AB00EB9D9B /* channelmaps.h in Headers */ = {isa = PBXBuildFile; fileRef = 834A41A8287A90AB00EB9D9B /* channelmaps.h */; }; - 834FD4EB27AF8F380063BC83 /* AudioChunk.h in Headers */ = {isa = PBXBuildFile; fileRef = 834FD4EA27AF8F380063BC83 /* AudioChunk.h */; }; + 834FD4EB27AF8F380063BC83 /* AudioChunk.h in Headers */ = {isa = PBXBuildFile; fileRef = 834FD4EA27AF8F380063BC83 /* AudioChunk.h */; settings = {ATTRIBUTES = (Public, ); }; }; 834FD4ED27AF91220063BC83 /* AudioChunk.m in Sources */ = {isa = PBXBuildFile; fileRef = 834FD4EC27AF91220063BC83 /* AudioChunk.m */; }; - 834FD4F027AF93680063BC83 /* ChunkList.h in Headers */ = {isa = PBXBuildFile; fileRef = 834FD4EE27AF93680063BC83 /* ChunkList.h */; }; + 834FD4F027AF93680063BC83 /* ChunkList.h in Headers */ = {isa = PBXBuildFile; fileRef = 834FD4EE27AF93680063BC83 /* ChunkList.h */; settings = {ATTRIBUTES = (Public, ); }; }; 834FD4F127AF93680063BC83 /* ChunkList.m in Sources */ = {isa = PBXBuildFile; fileRef = 834FD4EF27AF93680063BC83 /* ChunkList.m */; }; 8350416D28646149006B32CC /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8350416C28646149006B32CC /* CoreMedia.framework */; }; 835C88B1279811A500E28EAE /* hdcd_decode2.h in Headers */ = {isa = PBXBuildFile; fileRef = 835C88AF279811A500E28EAE /* hdcd_decode2.h */; }; 835C88B2279811A500E28EAE /* hdcd_decode2.c in Sources */ = {isa = PBXBuildFile; fileRef = 835C88B0279811A500E28EAE /* hdcd_decode2.c */; }; 835DD2672ACAF1D90057E319 /* OutputCoreAudio.m in Sources */ = {isa = PBXBuildFile; fileRef = 835DD2652ACAF1D90057E319 /* OutputCoreAudio.m */; }; - 835DD2682ACAF1D90057E319 /* OutputCoreAudio.h in Headers */ = {isa = PBXBuildFile; fileRef = 835DD2662ACAF1D90057E319 /* OutputCoreAudio.h */; }; - 835DD2702ACAF5AD0057E319 /* LICENSE.LGPL in Resources */ = {isa = PBXBuildFile; fileRef = 835DD26B2ACAF5AD0057E319 /* LICENSE.LGPL */; }; - 835DD2712ACAF5AD0057E319 /* License.txt in Resources */ = {isa = PBXBuildFile; fileRef = 835DD26C2ACAF5AD0057E319 /* License.txt */; }; + 835DD2682ACAF1D90057E319 /* OutputCoreAudio.h in Headers */ = {isa = PBXBuildFile; fileRef = 835DD2662ACAF1D90057E319 /* OutputCoreAudio.h */; settings = {ATTRIBUTES = (Public, ); }; }; 835DD2722ACAF5AD0057E319 /* lpc.h in Headers */ = {isa = PBXBuildFile; fileRef = 835DD26D2ACAF5AD0057E319 /* lpc.h */; }; 835DD2732ACAF5AD0057E319 /* util.h in Headers */ = {isa = PBXBuildFile; fileRef = 835DD26E2ACAF5AD0057E319 /* util.h */; }; 835DD2742ACAF5AD0057E319 /* lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = 835DD26F2ACAF5AD0057E319 /* lpc.c */; }; 835FAC5E27BCA14D00BA8562 /* BadSampleCleaner.h in Headers */ = {isa = PBXBuildFile; fileRef = 835FAC5C27BCA14D00BA8562 /* BadSampleCleaner.h */; }; 835FAC5F27BCA14D00BA8562 /* BadSampleCleaner.m in Sources */ = {isa = PBXBuildFile; fileRef = 835FAC5D27BCA14D00BA8562 /* BadSampleCleaner.m */; }; - 836DF618298F6F5F00CD0580 /* libsoxr.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 836DF615298F6E8900CD0580 /* libsoxr.0.dylib */; }; 83725A9027AA16C90003F694 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83725A7B27AA0D8A0003F694 /* Accelerate.framework */; }; 83725A9127AA16D50003F694 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83725A7C27AA0D8E0003F694 /* AVFoundation.framework */; }; 8377C64C27B8C51500E8BC0F /* fft_accelerate.c in Sources */ = {isa = PBXBuildFile; fileRef = 8377C64B27B8C51500E8BC0F /* fft_accelerate.c */; }; @@ -85,34 +84,35 @@ 839366681815923C006DD712 /* CogPluginMulti.m in Sources */ = {isa = PBXBuildFile; fileRef = 839366661815923C006DD712 /* CogPluginMulti.m */; }; 8399CF2C27B5D1D5008751F1 /* NSDictionary+Merge.h in Headers */ = {isa = PBXBuildFile; fileRef = 8399CF2A27B5D1D4008751F1 /* NSDictionary+Merge.h */; }; 8399CF2D27B5D1D5008751F1 /* NSDictionary+Merge.m in Sources */ = {isa = PBXBuildFile; fileRef = 8399CF2B27B5D1D4008751F1 /* NSDictionary+Merge.m */; }; - 839B83FA286D91ED00F529EE /* VisualizationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 839B83F9286D91ED00F529EE /* VisualizationController.swift */; }; 839E56E52879450300DFB5F4 /* HrtfData.h in Headers */ = {isa = PBXBuildFile; fileRef = 839E56E12879450300DFB5F4 /* HrtfData.h */; }; 839E56E62879450300DFB5F4 /* Endianness.h in Headers */ = {isa = PBXBuildFile; fileRef = 839E56E22879450300DFB5F4 /* Endianness.h */; }; 839E56E72879450300DFB5F4 /* HrtfData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 839E56E32879450300DFB5F4 /* HrtfData.cpp */; }; 839E56E82879450300DFB5F4 /* IHrtfData.h in Headers */ = {isa = PBXBuildFile; fileRef = 839E56E42879450300DFB5F4 /* IHrtfData.h */; }; 839E56EA28794F6300DFB5F4 /* HrtfTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 839E56E928794F6300DFB5F4 /* HrtfTypes.h */; }; 839E56F7287974A100DFB5F4 /* SandboxBroker.h in Headers */ = {isa = PBXBuildFile; fileRef = 839E56F6287974A100DFB5F4 /* SandboxBroker.h */; }; - 839E899E2D5DB9D500A13526 /* VisualizationNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 839E899D2D5DB9D500A13526 /* VisualizationNode.h */; }; + 839E899E2D5DB9D500A13526 /* VisualizationNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 839E899D2D5DB9D500A13526 /* VisualizationNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; 839E89A02D5DBA1700A13526 /* VisualizationNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 839E899F2D5DBA1700A13526 /* VisualizationNode.m */; }; 83A3496A2D5C3F430096D530 /* DSPRubberbandNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 83A349682D5C3F430096D530 /* DSPRubberbandNode.m */; }; - 83A3496B2D5C3F430096D530 /* DSPRubberbandNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 83A349672D5C3F430096D530 /* DSPRubberbandNode.h */; }; - 83A3496D2D5C40490096D530 /* DSPFSurroundNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 83A3496C2D5C40490096D530 /* DSPFSurroundNode.h */; }; + 83A3496B2D5C3F430096D530 /* DSPRubberbandNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 83A349672D5C3F430096D530 /* DSPRubberbandNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 83A3496D2D5C40490096D530 /* DSPFSurroundNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 83A3496C2D5C40490096D530 /* DSPFSurroundNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; 83A3496F2D5C405E0096D530 /* DSPFSurroundNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 83A3496E2D5C405E0096D530 /* DSPFSurroundNode.m */; }; 83A349722D5C41810096D530 /* FSurroundFilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 83A349712D5C41810096D530 /* FSurroundFilter.mm */; }; - 83A349732D5C41810096D530 /* FSurroundFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 83A349702D5C41810096D530 /* FSurroundFilter.h */; }; - 83A349752D5C50A10096D530 /* DSPHRTFNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 83A349742D5C50A10096D530 /* DSPHRTFNode.h */; }; + 83A349732D5C41810096D530 /* FSurroundFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 83A349702D5C41810096D530 /* FSurroundFilter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 83A349752D5C50A10096D530 /* DSPHRTFNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 83A349742D5C50A10096D530 /* DSPHRTFNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; 83A349772D5C50B20096D530 /* DSPHRTFNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 83A349762D5C50B20096D530 /* DSPHRTFNode.m */; }; 83B74281289E027F005AAC28 /* CogAudio-Bridging-Header.h in Headers */ = {isa = PBXBuildFile; fileRef = 83B74280289E027F005AAC28 /* CogAudio-Bridging-Header.h */; }; - 83F843202D5C6272008C123B /* HeadphoneFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 83F8431E2D5C6272008C123B /* HeadphoneFilter.h */; }; + 83F843202D5C6272008C123B /* HeadphoneFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 83F8431E2D5C6272008C123B /* HeadphoneFilter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 83F843212D5C6272008C123B /* HeadphoneFilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 83F8431F2D5C6272008C123B /* HeadphoneFilter.mm */; }; - 83F843232D5C66DA008C123B /* DSPEqualizerNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 83F843222D5C66DA008C123B /* DSPEqualizerNode.h */; }; + 83F843232D5C66DA008C123B /* DSPEqualizerNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 83F843222D5C66DA008C123B /* DSPEqualizerNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; 83F843252D5C66E9008C123B /* DSPEqualizerNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 83F843242D5C66E9008C123B /* DSPEqualizerNode.m */; }; - 83FFED512D5B08BC0044CCAF /* DSPNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 83FFED502D5B08BC0044CCAF /* DSPNode.h */; }; + 83F9FFF62D6EC43900026576 /* soxr.h in Headers */ = {isa = PBXBuildFile; fileRef = 83F9FFF02D6EC43900026576 /* soxr.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 83F9FFF82D6EC43900026576 /* libsoxr.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 83F9FFF22D6EC43900026576 /* libsoxr.0.dylib */; }; + 83FFED512D5B08BC0044CCAF /* DSPNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 83FFED502D5B08BC0044CCAF /* DSPNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; 83FFED532D5B09320044CCAF /* DSPNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 83FFED522D5B09320044CCAF /* DSPNode.m */; }; 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; }; 8E8D3D2F0CBAEE6E00135C1B /* AudioContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E8D3D2D0CBAEE6E00135C1B /* AudioContainer.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8E8D3D300CBAEE6E00135C1B /* AudioContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E8D3D2E0CBAEE6E00135C1B /* AudioContainer.m */; }; - 8EC1225F0B993BD500C5B3AD /* ConverterNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EC1225D0B993BD500C5B3AD /* ConverterNode.h */; }; + 8EC1225F0B993BD500C5B3AD /* ConverterNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EC1225D0B993BD500C5B3AD /* ConverterNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8EC122600B993BD500C5B3AD /* ConverterNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EC1225E0B993BD500C5B3AD /* ConverterNode.m */; }; B0575F2D0D687A0800411D77 /* Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = B0575F2C0D687A0800411D77 /* Helper.h */; settings = {ATTRIBUTES = (Public, ); }; }; B0575F300D687A4000411D77 /* Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = B0575F2F0D687A4000411D77 /* Helper.m */; }; @@ -175,6 +175,8 @@ 8328995527CB51B700D7F028 /* SHA256Digest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SHA256Digest.h; path = ../../Utils/SHA256Digest.h; sourceTree = ""; }; 8328995627CB51B700D7F028 /* SHA256Digest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SHA256Digest.m; path = ../../Utils/SHA256Digest.m; sourceTree = ""; }; 8328995927CB51C900D7F028 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + 833442402D6EFA6700C51D38 /* VisualizationController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VisualizationController.h; sourceTree = ""; }; + 833442412D6EFA6700C51D38 /* VisualizationController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VisualizationController.m; sourceTree = ""; }; 833738E92D5EA52500278628 /* DSPDownmixNode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DSPDownmixNode.h; sourceTree = ""; }; 833738EB2D5EA53500278628 /* DSPDownmixNode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DSPDownmixNode.m; sourceTree = ""; }; 833738ED2D5EA5B700278628 /* Downmix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Downmix.h; sourceTree = ""; }; @@ -201,7 +203,6 @@ 835DD26F2ACAF5AD0057E319 /* lpc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lpc.c; sourceTree = ""; }; 835FAC5C27BCA14D00BA8562 /* BadSampleCleaner.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BadSampleCleaner.h; path = Utils/BadSampleCleaner.h; sourceTree = SOURCE_ROOT; }; 835FAC5D27BCA14D00BA8562 /* BadSampleCleaner.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = BadSampleCleaner.m; path = Utils/BadSampleCleaner.m; sourceTree = SOURCE_ROOT; }; - 836DF615298F6E8900CD0580 /* libsoxr.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsoxr.0.dylib; path = ../ThirdParty/soxr/lib/libsoxr.0.dylib; sourceTree = ""; }; 83725A7B27AA0D8A0003F694 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; 83725A7C27AA0D8E0003F694 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; 8377C64B27B8C51500E8BC0F /* fft_accelerate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fft_accelerate.c; sourceTree = ""; }; @@ -213,7 +214,6 @@ 839366661815923C006DD712 /* CogPluginMulti.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CogPluginMulti.m; sourceTree = ""; }; 8399CF2A27B5D1D4008751F1 /* NSDictionary+Merge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+Merge.h"; path = "../../Utils/NSDictionary+Merge.h"; sourceTree = ""; }; 8399CF2B27B5D1D4008751F1 /* NSDictionary+Merge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+Merge.m"; path = "../../Utils/NSDictionary+Merge.m"; sourceTree = ""; }; - 839B83F9286D91ED00F529EE /* VisualizationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VisualizationController.swift; sourceTree = ""; }; 839E56E12879450300DFB5F4 /* HrtfData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HrtfData.h; sourceTree = ""; }; 839E56E22879450300DFB5F4 /* Endianness.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Endianness.h; sourceTree = ""; }; 839E56E32879450300DFB5F4 /* HrtfData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HrtfData.cpp; sourceTree = ""; }; @@ -235,6 +235,9 @@ 83F8431F2D5C6272008C123B /* HeadphoneFilter.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = HeadphoneFilter.mm; sourceTree = ""; }; 83F843222D5C66DA008C123B /* DSPEqualizerNode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DSPEqualizerNode.h; sourceTree = ""; }; 83F843242D5C66E9008C123B /* DSPEqualizerNode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DSPEqualizerNode.m; sourceTree = ""; }; + 83F9FFF02D6EC43900026576 /* soxr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = soxr.h; sourceTree = ""; }; + 83F9FFF22D6EC43900026576 /* libsoxr.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libsoxr.0.dylib; sourceTree = ""; }; + 83F9FFF42D6EC43900026576 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; 83FFED502D5B08BC0044CCAF /* DSPNode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DSPNode.h; sourceTree = ""; }; 83FFED522D5B09320044CCAF /* DSPNode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DSPNode.m; sourceTree = ""; }; 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; @@ -255,11 +258,11 @@ files = ( 8328995A27CB51C900D7F028 /* Security.framework in Frameworks */, 83725A9127AA16D50003F694 /* AVFoundation.framework in Frameworks */, + 83F9FFF82D6EC43900026576 /* libsoxr.0.dylib in Frameworks */, 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */, 8350416D28646149006B32CC /* CoreMedia.framework in Frameworks */, 83725A9027AA16C90003F694 /* Accelerate.framework in Frameworks */, 17D21DAD0B8BE76800D1EBDE /* AudioToolbox.framework in Frameworks */, - 836DF618298F6F5F00CD0580 /* libsoxr.0.dylib in Frameworks */, 17D21DAE0B8BE76800D1EBDE /* AudioUnit.framework in Frameworks */, 17D21DAF0B8BE76800D1EBDE /* CoreAudio.framework in Frameworks */, 17D21DB00B8BE76800D1EBDE /* CoreAudioKit.framework in Frameworks */, @@ -356,7 +359,6 @@ isa = PBXGroup; children = ( 838A33712D06A97D00D0D770 /* librubberband.3.dylib */, - 836DF615298F6E8900CD0580 /* libsoxr.0.dylib */, 83725A7B27AA0D8A0003F694 /* Accelerate.framework */, 17D21DAA0B8BE76800D1EBDE /* AudioUnit.framework */, 17D21DA90B8BE76800D1EBDE /* AudioToolbox.framework */, @@ -408,6 +410,7 @@ 17D21CD80B8BE5B400D1EBDE /* ThirdParty */ = { isa = PBXGroup; children = ( + 83F9FFF52D6EC43900026576 /* soxr */, 835DD2692ACAF5AD0057E319 /* lvqcl */, 834A41A4287A90AB00EB9D9B /* fsurround */, 839E56E02879450300DFB5F4 /* hrtf */, @@ -520,7 +523,8 @@ 8377C64F27B8CAAB00E8BC0F /* Visualization */ = { isa = PBXGroup; children = ( - 839B83F9286D91ED00F529EE /* VisualizationController.swift */, + 833442402D6EFA6700C51D38 /* VisualizationController.h */, + 833442412D6EFA6700C51D38 /* VisualizationController.m */, ); path = Visualization; sourceTree = ""; @@ -560,6 +564,33 @@ path = DSP; sourceTree = ""; }; + 83F9FFF12D6EC43900026576 /* include */ = { + isa = PBXGroup; + children = ( + 83F9FFF02D6EC43900026576 /* soxr.h */, + ); + path = include; + sourceTree = ""; + }; + 83F9FFF32D6EC43900026576 /* lib */ = { + isa = PBXGroup; + children = ( + 83F9FFF22D6EC43900026576 /* libsoxr.0.dylib */, + ); + path = lib; + sourceTree = ""; + }; + 83F9FFF52D6EC43900026576 /* soxr */ = { + isa = PBXGroup; + children = ( + 83F9FFF12D6EC43900026576 /* include */, + 83F9FFF32D6EC43900026576 /* lib */, + 83F9FFF42D6EC43900026576 /* README.md */, + ); + name = soxr; + path = ../ThirdParty/soxr; + sourceTree = SOURCE_ROOT; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -567,42 +598,47 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 839E56E82879450300DFB5F4 /* IHrtfData.h in Headers */, + 833442422D6EFA6700C51D38 /* VisualizationController.h in Headers */, + 833738F02D5EA5B700278628 /* Downmix.h in Headers */, + 834FD4EB27AF8F380063BC83 /* AudioChunk.h in Headers */, 83F843202D5C6272008C123B /* HeadphoneFilter.h in Headers */, + 83A349732D5C41810096D530 /* FSurroundFilter.h in Headers */, + 839E56E82879450300DFB5F4 /* IHrtfData.h in Headers */, 17D21CA10B8BE4BA00D1EBDE /* BufferChain.h in Headers */, - 83A3496D2D5C40490096D530 /* DSPFSurroundNode.h in Headers */, 831A50142865A7FD0049CFE4 /* rsstate.hpp in Headers */, + 835DD2682ACAF1D90057E319 /* OutputCoreAudio.h in Headers */, 834A41AC287A90AB00EB9D9B /* channelmaps.h in Headers */, + 83A3496D2D5C40490096D530 /* DSPFSurroundNode.h in Headers */, + 83A3496B2D5C3F430096D530 /* DSPRubberbandNode.h in Headers */, 17D21CA50B8BE4BA00D1EBDE /* InputNode.h in Headers */, - 834A41A9287A90AB00EB9D9B /* freesurround_decoder.h in Headers */, - 835DD2732ACAF5AD0057E319 /* util.h in Headers */, + 833738EA2D5EA52500278628 /* DSPDownmixNode.h in Headers */, 83F843232D5C66DA008C123B /* DSPEqualizerNode.h in Headers */, + 834A41A9287A90AB00EB9D9B /* freesurround_decoder.h in Headers */, + 834FD4F027AF93680063BC83 /* ChunkList.h in Headers */, + 835DD2732ACAF5AD0057E319 /* util.h in Headers */, 17D21CA70B8BE4BA00D1EBDE /* Node.h in Headers */, 8399CF2C27B5D1D5008751F1 /* NSDictionary+Merge.h in Headers */, 17D21CA90B8BE4BA00D1EBDE /* OutputNode.h in Headers */, + 8EC1225F0B993BD500C5B3AD /* ConverterNode.h in Headers */, 8328995427CB511000D7F028 /* RedundantPlaylistDataStore.h in Headers */, 839E56E52879450300DFB5F4 /* HrtfData.h in Headers */, - 83B74281289E027F005AAC28 /* CogAudio-Bridging-Header.h in Headers */, - 833738F02D5EA5B700278628 /* Downmix.h in Headers */, + 83FFED512D5B08BC0044CCAF /* DSPNode.h in Headers */, + 839E899E2D5DB9D500A13526 /* VisualizationNode.h in Headers */, + 83A349752D5C50A10096D530 /* DSPHRTFNode.h in Headers */, + 83F9FFF62D6EC43900026576 /* soxr.h in Headers */, 17D21CC70B8BE4BA00D1EBDE /* Status.h in Headers */, 17D21CF30B8BE5EF00D1EBDE /* CogSemaphore.h in Headers */, - 835DD2682ACAF1D90057E319 /* OutputCoreAudio.h in Headers */, 839E56E62879450300DFB5F4 /* Endianness.h in Headers */, 17D21DC70B8BE79700D1EBDE /* CoreAudioUtils.h in Headers */, 835DD2722ACAF5AD0057E319 /* lpc.h in Headers */, 17D21EBD0B8BF44000D1EBDE /* AudioPlayer.h in Headers */, 831A50182865A8B30049CFE4 /* rsstate.h in Headers */, - 834FD4F027AF93680063BC83 /* ChunkList.h in Headers */, 17F94DD50B8D0F7000A34E87 /* PluginController.h in Headers */, - 83A349752D5C50A10096D530 /* DSPHRTFNode.h in Headers */, 17F94DDD0B8D101100A34E87 /* Plugin.h in Headers */, 8328995727CB51B700D7F028 /* SHA256Digest.h in Headers */, - 834FD4EB27AF8F380063BC83 /* AudioChunk.h in Headers */, - 83A3496B2D5C3F430096D530 /* DSPRubberbandNode.h in Headers */, 17A2D3C50B8D1D37000778C4 /* AudioDecoder.h in Headers */, - 839E899E2D5DB9D500A13526 /* VisualizationNode.h in Headers */, 8347C7412796C58800FA8A7D /* NSFileHandle+CreateFile.h in Headers */, - 83FFED512D5B08BC0044CCAF /* DSPNode.h in Headers */, + 83B74281289E027F005AAC28 /* CogAudio-Bridging-Header.h in Headers */, 17C940230B900909008627D6 /* AudioMetadataReader.h in Headers */, 839E56F7287974A100DFB5F4 /* SandboxBroker.h in Headers */, 839065F32853338700636FBB /* dsd2float.h in Headers */, @@ -610,14 +646,11 @@ 839366671815923C006DD712 /* CogPluginMulti.h in Headers */, 17ADB13C0B97926D00257CA2 /* AudioSource.h in Headers */, 835C88B1279811A500E28EAE /* hdcd_decode2.h in Headers */, - 8EC1225F0B993BD500C5B3AD /* ConverterNode.h in Headers */, - 83A349732D5C41810096D530 /* FSurroundFilter.h in Headers */, 8384912718080FF100E7332D /* Logging.h in Headers */, 8377C64E27B8C54400E8BC0F /* fft.h in Headers */, 835FAC5E27BCA14D00BA8562 /* BadSampleCleaner.h in Headers */, 8E8D3D2F0CBAEE6E00135C1B /* AudioContainer.h in Headers */, B0575F2D0D687A0800411D77 /* Helper.h in Headers */, - 833738EA2D5EA52500278628 /* DSPDownmixNode.h in Headers */, 07DB5F3E0ED353A900C2E3EF /* AudioMetadataWriter.h in Headers */, 839E56EA28794F6300DFB5F4 /* HrtfTypes.h in Headers */, ); @@ -626,9 +659,9 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 8DC2EF4F0486A6940098B216 /* CogAudio Framework */ = { + 8DC2EF4F0486A6940098B216 /* CogAudio */ = { isa = PBXNativeTarget; - buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "CogAudio Framework" */; + buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "CogAudio" */; buildPhases = ( 8DC2EF500486A6940098B216 /* Headers */, 8DC2EF540486A6940098B216 /* Sources */, @@ -640,7 +673,7 @@ ); dependencies = ( ); - name = "CogAudio Framework"; + name = CogAudio; productInstallPath = "$(HOME)/Library/Frameworks"; productName = CogAudio; productReference = 8DC2EF5B0486A6940098B216 /* CogAudio.framework */; @@ -652,7 +685,8 @@ 0867D690FE84028FC02AAC07 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1400; + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1620; TargetAttributes = { 8DC2EF4F0486A6940098B216 = { LastSwiftMigration = 1330; @@ -673,7 +707,7 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 8DC2EF4F0486A6940098B216 /* CogAudio Framework */, + 8DC2EF4F0486A6940098B216 /* CogAudio */, ); }; /* End PBXProject section */ @@ -683,8 +717,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 835DD2712ACAF5AD0057E319 /* License.txt in Resources */, - 835DD2702ACAF5AD0057E319 /* LICENSE.LGPL in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -703,6 +735,7 @@ 83F843252D5C66E9008C123B /* DSPEqualizerNode.m in Sources */, 834A41AB287A90AB00EB9D9B /* channelmaps.cpp in Sources */, 833738EC2D5EA53500278628 /* DSPDownmixNode.m in Sources */, + 833442432D6EFA6700C51D38 /* VisualizationController.m in Sources */, 831A50162865A8800049CFE4 /* rsstate.cpp in Sources */, 17D21CA80B8BE4BA00D1EBDE /* Node.m in Sources */, 17D21CAA0B8BE4BA00D1EBDE /* OutputNode.m in Sources */, @@ -711,7 +744,6 @@ 834FD4ED27AF91220063BC83 /* AudioChunk.m in Sources */, 833738EF2D5EA5B700278628 /* Downmix.m in Sources */, 17D21CF40B8BE5EF00D1EBDE /* CogSemaphore.m in Sources */, - 839B83FA286D91ED00F529EE /* VisualizationController.swift in Sources */, 839E89A02D5DBA1700A13526 /* VisualizationNode.m in Sources */, 8347C7422796C58800FA8A7D /* NSFileHandle+CreateFile.m in Sources */, 83A3496F2D5C405E0096D530 /* DSPFSurroundNode.m in Sources */, @@ -751,9 +783,10 @@ CLANG_ENABLE_MODULES = YES; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - DEFINES_MODULE = YES; + DEAD_CODE_STRIPPING = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; + ENABLE_MODULE_VERIFIER = YES; FRAMEWORK_VERSION = A; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_OBJC_EXCEPTIONS = YES; @@ -769,15 +802,14 @@ INSTALL_PATH = "@executable_path/../Frameworks"; LD_RUNPATH_SEARCH_PATHS = "@loader_path/Frameworks"; LIBRARY_SEARCH_PATHS = ( - ../ThirdParty/rubberband/lib, ../ThirdParty/soxr/lib, - "$(PROJECT_DIR)", + ../ThirdParty/rubberband/lib, ); + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 c++17"; OTHER_LDFLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = org.cogx.cogaudio; PRODUCT_NAME = CogAudio; SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "CogAudio-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; WARNING_LDFLAGS = ""; @@ -791,9 +823,10 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_ENABLE_MODULES = YES; COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; + DEAD_CODE_STRIPPING = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; + ENABLE_MODULE_VERIFIER = YES; FRAMEWORK_VERSION = A; GCC_ENABLE_OBJC_EXCEPTIONS = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -807,15 +840,14 @@ INSTALL_PATH = "@executable_path/../Frameworks"; LD_RUNPATH_SEARCH_PATHS = "@loader_path/Frameworks"; LIBRARY_SEARCH_PATHS = ( - ../ThirdParty/rubberband/lib, ../ThirdParty/soxr/lib, - "$(PROJECT_DIR)", + ../ThirdParty/rubberband/lib, ); + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 c++17"; OTHER_LDFLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = org.cogx.cogaudio; PRODUCT_NAME = CogAudio; SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "CogAudio-Bridging-Header.h"; SWIFT_VERSION = 5.0; WARNING_LDFLAGS = ""; WRAPPER_EXTENSION = framework; @@ -848,8 +880,11 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEFINES_MODULE = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", @@ -865,7 +900,9 @@ ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; + PRODUCT_MODULE_NAME = CogAudio; SDKROOT = macosx; + SWIFT_OBJC_BRIDGING_HEADER = "CogAudio-Bridging-Header.h"; SYMROOT = ../build; }; name = Debug; @@ -895,8 +932,11 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_CONFIG_H=1"; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -908,7 +948,10 @@ MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; + PRODUCT_MODULE_NAME = CogAudio; SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OBJC_BRIDGING_HEADER = "CogAudio-Bridging-Header.h"; SYMROOT = ../build; }; name = Release; @@ -916,7 +959,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "CogAudio Framework" */ = { + 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "CogAudio" */ = { isa = XCConfigurationList; buildConfigurations = ( 1DEB91AE08733DA50010E9CD /* Debug */, diff --git a/Audio/CogAudio.xcodeproj/xcshareddata/xcschemes/CogAudio Framework.xcscheme b/Audio/CogAudio.xcodeproj/xcshareddata/xcschemes/CogAudio.xcscheme similarity index 93% rename from Audio/CogAudio.xcodeproj/xcshareddata/xcschemes/CogAudio Framework.xcscheme rename to Audio/CogAudio.xcodeproj/xcshareddata/xcschemes/CogAudio.xcscheme index 50051fe41..932d3d4d4 100644 --- a/Audio/CogAudio.xcodeproj/xcshareddata/xcschemes/CogAudio Framework.xcscheme +++ b/Audio/CogAudio.xcodeproj/xcshareddata/xcschemes/CogAudio.xcscheme @@ -1,6 +1,6 @@ @@ -45,7 +45,7 @@ BuildableIdentifier = "primary" BlueprintIdentifier = "8DC2EF4F0486A6940098B216" BuildableName = "CogAudio.framework" - BlueprintName = "CogAudio Framework" + BlueprintName = "CogAudio" ReferencedContainer = "container:CogAudio.xcodeproj"> @@ -61,7 +61,7 @@ BuildableIdentifier = "primary" BlueprintIdentifier = "8DC2EF4F0486A6940098B216" BuildableName = "CogAudio.framework" - BlueprintName = "CogAudio Framework" + BlueprintName = "CogAudio" ReferencedContainer = "container:CogAudio.xcodeproj"> diff --git a/Audio/Output/OutputCoreAudio.h b/Audio/Output/OutputCoreAudio.h index c832fa9cc..46f3d7426 100644 --- a/Audio/Output/OutputCoreAudio.h +++ b/Audio/Output/OutputCoreAudio.h @@ -22,11 +22,9 @@ using std::atomic_long; #import #endif -#import - #import -#import "HeadphoneFilter.h" +#import //#define OUTPUT_LOG #ifdef OUTPUT_LOG @@ -91,8 +89,6 @@ using std::atomic_long; size_t _bufferSize; - VisualizationController *visController; - int inputRemain; AudioChunk *chunkRemain; diff --git a/Audio/Output/OutputCoreAudio.m b/Audio/Output/OutputCoreAudio.m index e60dcbcfe..74eb7cdfb 100644 --- a/Audio/Output/OutputCoreAudio.m +++ b/Audio/Output/OutputCoreAudio.m @@ -17,11 +17,15 @@ #import +#import + extern void scale_by_volume(float *buffer, size_t count, float volume); static NSString *CogPlaybackDidBeginNotificiation = @"CogPlaybackDidBeginNotificiation"; -@implementation OutputCoreAudio +@implementation OutputCoreAudio { + VisualizationController *visController; +} static void *kOutputCoreAudioContext = &kOutputCoreAudioContext; @@ -554,7 +558,6 @@ current_device_listener(AudioObjectID inObjectID, UInt32 inNumberAddresses, cons } - (int)renderAndConvert { - OSStatus status; int inputRendered = 0; int bytesRendered = inputRendered * realStreamFormat.mBytesPerPacket; diff --git a/Audio/Plugin.h b/Audio/Plugin.h index 80e0748ed..a4077a23d 100644 --- a/Audio/Plugin.h +++ b/Audio/Plugin.h @@ -1,6 +1,6 @@ // Plugins! HOORAY! -#import "AudioChunk.h" +#import @protocol CogSource + (NSArray *)schemes; // http, file, etc diff --git a/Audio/PluginController.h b/Audio/PluginController.h index 8a838c974..14f5729fc 100644 --- a/Audio/PluginController.h +++ b/Audio/PluginController.h @@ -2,7 +2,7 @@ #import -#import "Plugin.h" +#import // Singletonish @interface PluginController : NSObject { diff --git a/Audio/Visualization/VisualizationController.h b/Audio/Visualization/VisualizationController.h index 8434f4ec8..335bceb05 100644 --- a/Audio/Visualization/VisualizationController.h +++ b/Audio/Visualization/VisualizationController.h @@ -10,12 +10,6 @@ NS_ASSUME_NONNULL_BEGIN @interface VisualizationController : NSObject { - double sampleRate; - double latency; - float *visAudio; - int visAudioCursor, visAudioSize; - float *visAudioTemp; - uint64_t visSamplesPosted; } + (VisualizationController *)sharedController; @@ -29,6 +23,8 @@ NS_ASSUME_NONNULL_BEGIN - (double)readSampleRate; - (void)copyVisPCM:(float *)outPCM visFFT:(float *)outFFT latencyOffset:(double)latency; +- (void)reset; + @end NS_ASSUME_NONNULL_END diff --git a/Audio/Visualization/VisualizationController.m b/Audio/Visualization/VisualizationController.m index d25030c3d..d95e69f53 100644 --- a/Audio/Visualization/VisualizationController.m +++ b/Audio/Visualization/VisualizationController.m @@ -10,7 +10,13 @@ #import "fft.h" -@implementation VisualizationController +@implementation VisualizationController { + double sampleRate; + double latency; + float *visAudio; + int visAudioCursor, visAudioSize; + uint64_t visSamplesPosted; +} static VisualizationController *_sharedController = nil; @@ -27,11 +33,8 @@ static VisualizationController *_sharedController = nil; self = [super init]; if(self) { visAudio = NULL; + visAudioSize = 0; latency = 0; - visAudioTemp = (float *) calloc(sizeof(float), 4096); - if(!visAudioTemp) { - return nil; - } } return self; } @@ -40,6 +43,17 @@ static VisualizationController *_sharedController = nil; fft_free(); } +- (void)reset { + @synchronized (self) { + latency = 0; + visAudioCursor = 0; + visSamplesPosted = 0; + if(visAudio && visAudioSize) { + bzero(visAudio, sizeof(float) * visAudioSize); + } + } +} + - (void)postSampleRate:(double)sampleRate { @synchronized(self) { if(self->sampleRate != sampleRate) { @@ -53,6 +67,12 @@ static VisualizationController *_sharedController = nil; self->visAudio = visAudio; self->visAudioSize = visAudioSize; visAudioCursor %= visAudioSize; + } else { + if(self->visAudio) { + free(self->visAudio); + self->visAudio = NULL; + } + self->visAudioSize = 0; } } } @@ -60,6 +80,9 @@ static VisualizationController *_sharedController = nil; - (void)postVisPCM:(const float *)inPCM amount:(int)amount { @synchronized(self) { + if(!visAudioSize) { + return; + } int samplesRead = 0; while(amount > 0) { int amountToCopy = (int)(visAudioSize - visAudioCursor); @@ -69,6 +92,7 @@ static VisualizationController *_sharedController = nil; if(visAudioCursor >= visAudioSize) visAudioCursor -= visAudioSize; amount -= amountToCopy; samplesRead += amountToCopy; + visSamplesPosted += amountToCopy; } } } @@ -84,6 +108,10 @@ static VisualizationController *_sharedController = nil; } } +- (UInt64)samplesPosted { + return visSamplesPosted; +} + - (void)copyVisPCM:(float *)outPCM visFFT:(float *)outFFT latencyOffset:(double)latency { if(!outPCM && !outFFT) return; @@ -93,7 +121,12 @@ static VisualizationController *_sharedController = nil; return; } - if(!outPCM) outPCM = &visAudioTemp[0]; + void *visAudioTemp = calloc(sizeof(float), 4096); + if(!visAudioTemp) { + if(outPCM) bzero(outPCM, sizeof(float) * 4096); + if(outFFT) bzero(outFFT, sizeof(float) * 2048); + return; + } @synchronized(self) { if(!sampleRate) { @@ -103,11 +136,14 @@ static VisualizationController *_sharedController = nil; } return; } - int latencySamples = (int)(sampleRate * (self->latency + latency)); + int latencySamples = (int)(sampleRate * (self->latency + latency)) + 2048; if(latencySamples < 4096) latencySamples = 4096; int readCursor = visAudioCursor - latencySamples; int samples = 4096; int samplesRead = 0; + if(latencySamples + samples > visAudioSize) { + samples = (int)(visAudioSize - latencySamples); + } while(readCursor < 0) readCursor += visAudioSize; while(readCursor >= visAudioSize) @@ -115,16 +151,21 @@ static VisualizationController *_sharedController = nil; while(samples > 0) { int samplesToRead = (int)(visAudioSize - readCursor); if(samplesToRead > samples) samplesToRead = samples; - cblas_scopy(samplesToRead, visAudio + readCursor, 1, outPCM + samplesRead, 1); + cblas_scopy(samplesToRead, visAudio + readCursor, 1, visAudioTemp + samplesRead, 1); samplesRead += samplesToRead; readCursor += samplesToRead; samples -= samplesToRead; if(readCursor >= visAudioSize) readCursor -= visAudioSize; } } - if(outFFT) { - fft_calculate(outPCM, outFFT, 2048); + if(outPCM) { + cblas_scopy(4096, visAudioTemp, 1, outPCM, 1); } + if(outFFT) { + fft_calculate(visAudioTemp, outFFT, 2048); + } + + free(visAudioTemp); } @end diff --git a/Cog.xcodeproj/xcshareddata/xcschemes/Cog.xcscheme b/Cog.xcodeproj/xcshareddata/xcschemes/Cog.xcscheme index 432861d0f..fdbe2b406 100644 --- a/Cog.xcodeproj/xcshareddata/xcschemes/Cog.xcscheme +++ b/Cog.xcodeproj/xcshareddata/xcschemes/Cog.xcscheme @@ -1,6 +1,6 @@ + RubberbandEngineR3Transformer - @@ -1513,12 +1513,12 @@ + RubberbandEngineEnabledTransformer - diff --git a/Preferences/Preferences/Preferences.xcodeproj/project.pbxproj b/Preferences/Preferences/Preferences.xcodeproj/project.pbxproj index 043d21932..e00e800ba 100644 --- a/Preferences/Preferences/Preferences.xcodeproj/project.pbxproj +++ b/Preferences/Preferences/Preferences.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -403,7 +403,8 @@ 089C1669FE841209C02AAC07 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1400; + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1620; TargetAttributes = { 8D5B49AC048680CD000E48DA = { ProvisioningStyle = Manual; @@ -586,6 +587,7 @@ buildSettings = { COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = ""; GCC_DYNAMIC_NO_PIC = NO; GCC_MODEL_TUNING = G5; @@ -608,6 +610,7 @@ isa = XCBuildConfiguration; buildSettings = { COMBINE_HIDPI_IMAGES = YES; + DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = ""; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -650,8 +653,10 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1"; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -699,8 +704,10 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; diff --git a/Preferences/Preferences/Preferences.xcodeproj/xcshareddata/xcschemes/Preferences.xcscheme b/Preferences/Preferences/Preferences.xcodeproj/xcshareddata/xcschemes/Preferences.xcscheme index 51aba37f6..8598ade3e 100644 --- a/Preferences/Preferences/Preferences.xcodeproj/xcshareddata/xcschemes/Preferences.xcscheme +++ b/Preferences/Preferences/Preferences.xcodeproj/xcshareddata/xcschemes/Preferences.xcscheme @@ -1,6 +1,6 @@ -#import +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Visualization/SpectrumViewSK.h b/Visualization/SpectrumViewSK.h index b2edcaa39..1f6390db3 100644 --- a/Visualization/SpectrumViewSK.h +++ b/Visualization/SpectrumViewSK.h @@ -9,7 +9,7 @@ #import -#import +#import NS_ASSUME_NONNULL_BEGIN