diff --git a/extras/Jucer (experimental)/JuceLibraryCode/BinaryData.cpp b/extras/Jucer (experimental)/JuceLibraryCode/BinaryData.cpp index 27d750d033..946a515824 100644 --- a/extras/Jucer (experimental)/JuceLibraryCode/BinaryData.cpp +++ b/extras/Jucer (experimental)/JuceLibraryCode/BinaryData.cpp @@ -291,8 +291,7 @@ static const unsigned char temp_c7521dd8[] = " // spare memory, etc.\r\n" "}\r\n" "\r\n" -"void FILTERCLASSNAME::processBlock (AudioSampleBuffer& buffer,\r\n" -" MidiBuffer& midiMessages)\r\n" +"void FILTERCLASSNAME::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)\r\n" "{\r\n" " // This is the place where you'd normally do the guts of your plugin's\r\n" " // audio processing...\r\n" diff --git a/extras/Jucer (experimental)/JuceLibraryCode/BinaryData.h b/extras/Jucer (experimental)/JuceLibraryCode/BinaryData.h index 31473f6a02..c468da37d5 100644 --- a/extras/Jucer (experimental)/JuceLibraryCode/BinaryData.h +++ b/extras/Jucer (experimental)/JuceLibraryCode/BinaryData.h @@ -17,7 +17,7 @@ namespace BinaryData const int jucer_AudioPluginEditorTemplate_hSize = 794; extern const char* jucer_AudioPluginFilterTemplate_cpp; - const int jucer_AudioPluginFilterTemplate_cppSize = 4386; + const int jucer_AudioPluginFilterTemplate_cppSize = 4349; extern const char* jucer_AudioPluginFilterTemplate_h; const int jucer_AudioPluginFilterTemplate_hSize = 2353; diff --git a/extras/Jucer (experimental)/Source/templates/jucer_AudioPluginFilterTemplate.cpp b/extras/Jucer (experimental)/Source/templates/jucer_AudioPluginFilterTemplate.cpp index 0d317c6650..ccb4f091aa 100644 --- a/extras/Jucer (experimental)/Source/templates/jucer_AudioPluginFilterTemplate.cpp +++ b/extras/Jucer (experimental)/Source/templates/jucer_AudioPluginFilterTemplate.cpp @@ -124,8 +124,7 @@ void FILTERCLASSNAME::releaseResources() // spare memory, etc. } -void FILTERCLASSNAME::processBlock (AudioSampleBuffer& buffer, - MidiBuffer& midiMessages) +void FILTERCLASSNAME::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages) { // This is the place where you'd normally do the guts of your plugin's // audio processing... diff --git a/extras/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj b/extras/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj index 8256d0721a..bd0ee88fbb 100644 --- a/extras/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj +++ b/extras/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj @@ -6,100 +6,100 @@ objectVersion = 44; objects = { - E3D3C0C69AC0387C2380D942 = { isa = PBXBuildFile; fileRef = B8AD88171A257C504A58DB26; }; - DF33F6CFA000AB149E8A9A37 = { isa = PBXBuildFile; fileRef = DA8B3A910843F3AEF85CE3D5; }; - CFA25F9B775780CE870F2F60 = { isa = PBXBuildFile; fileRef = FB2A70EED12F808855F8E670; }; - 9F069E01C82F87C489C33803 = { isa = PBXBuildFile; fileRef = F4B269229847A7FE29114AB8; }; - B70574F213CD358E03AAD163 = { isa = PBXBuildFile; fileRef = E448C0A4664EA85D35DDD6F2; }; - C75A5344B8D269C561D87A28 = { isa = PBXBuildFile; fileRef = 1AF743BBC263EE305CAB5F04; }; - 34663664F089CF18929900D0 = { isa = PBXBuildFile; fileRef = 47630AB7BFC0AA77B9446294; }; - F34C981407EDB8E8309DE34E = { isa = PBXBuildFile; fileRef = 2C5691B1520162CE05F1EE2A; }; - 103313347D99A0E7DB0F428C = { isa = PBXBuildFile; fileRef = 012A869CF0A9540442145877; }; - D62450D5D0977B499F3F5F67 = { isa = PBXBuildFile; fileRef = 9892F6A5644670895B5555E4; }; - 08374BCBBD3AD81C26E87FD2 = { isa = PBXBuildFile; fileRef = 9D7459D745F5E72CA4C03392; }; - 6601761A743D57690E611EC3 = { isa = PBXBuildFile; fileRef = 61FB609B2FC9F45BEE3898DE; }; - 48AE70E3BE796E91EA86CFE1 = { isa = PBXBuildFile; fileRef = 3682E0A9DCF9460E68297732; }; - DBC4181255D195D0B0AD4FE3 = { isa = PBXBuildFile; fileRef = 32C51E743C3EF1D0945AD81D; }; - 467EFB3144B5AD2DA9288602 = { isa = PBXBuildFile; fileRef = F8BB3BCFEF373066F562F479; }; - 988D85D9FEB33B1C6A5DB67E = { isa = PBXBuildFile; fileRef = 555C5B5F520D02742F96284B; }; - 5EBA4BAEC8F32F36085A9A1C = { isa = PBXBuildFile; fileRef = 28EBDB06654DEC92678A9ED0; }; - 2F3D7654172A5DD93EDA940A = { isa = PBXBuildFile; fileRef = 2AAFCE06FD725B15137D3E55; }; - ACA8CADBD05B4906DF90D0EF = { isa = PBXBuildFile; fileRef = 83690AF49B3F341803D7BC37; }; - 19B790AE0582F1C8A1F59BAF = { isa = PBXBuildFile; fileRef = 3CD3A7355DD9605BBBD1353F; }; - 76B6557139B999997359557F = { isa = PBXBuildFile; fileRef = E55C45860F638C8E53EBAD26; }; - E4B41A545DE0315B36BE103F = { isa = PBXBuildFile; fileRef = 8DD6D3D8C10DB8C10BE4252E; }; - B8AD88171A257C504A58DB26 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; - DA8B3A910843F3AEF85CE3D5 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; - FB2A70EED12F808855F8E670 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; - F4B269229847A7FE29114AB8 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; - E448C0A4664EA85D35DDD6F2 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; - 1AF743BBC263EE305CAB5F04 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; - 47630AB7BFC0AA77B9446294 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; - 2C5691B1520162CE05F1EE2A = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; - 012A869CF0A9540442145877 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - 9892F6A5644670895B5555E4 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; - 9D7459D745F5E72CA4C03392 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; - 61FB609B2FC9F45BEE3898DE = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; }; - 3682E0A9DCF9460E68297732 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; }; - 09EEC9C8514BB03AD382F86D = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Plugin Host.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2E66857E2B6065C304C36B37 = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = SOURCE_ROOT; }; - 32C51E743C3EF1D0945AD81D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FilterGraph.cpp; path = ../../Source/FilterGraph.cpp; sourceTree = SOURCE_ROOT; }; - FE69E32C71521D616E28A0DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FilterGraph.h; path = ../../Source/FilterGraph.h; sourceTree = SOURCE_ROOT; }; - F8BB3BCFEF373066F562F479 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = GraphEditorPanel.cpp; path = ../../Source/GraphEditorPanel.cpp; sourceTree = SOURCE_ROOT; }; - 87B5167C70719CEB576D9A04 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GraphEditorPanel.h; path = ../../Source/GraphEditorPanel.h; sourceTree = SOURCE_ROOT; }; - 555C5B5F520D02742F96284B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = HostStartup.cpp; path = ../../Source/HostStartup.cpp; sourceTree = SOURCE_ROOT; }; - 28EBDB06654DEC92678A9ED0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = InternalFilters.cpp; path = ../../Source/InternalFilters.cpp; sourceTree = SOURCE_ROOT; }; - 65420C9D296E36189F21A940 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = InternalFilters.h; path = ../../Source/InternalFilters.h; sourceTree = SOURCE_ROOT; }; - 2AAFCE06FD725B15137D3E55 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainHostWindow.cpp; path = ../../Source/MainHostWindow.cpp; sourceTree = SOURCE_ROOT; }; - D3497DD4D584B4E25EA52A38 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainHostWindow.h; path = ../../Source/MainHostWindow.h; sourceTree = SOURCE_ROOT; }; - EE499678D2672E4A0DB0EDF4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = SOURCE_ROOT; }; - 7349FE16AEFF2C4973C11A0C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = SOURCE_ROOT; }; - 83690AF49B3F341803D7BC37 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode1.mm; path = ../../JuceLibraryCode/JuceLibraryCode1.mm; sourceTree = SOURCE_ROOT; }; - 3CD3A7355DD9605BBBD1353F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode2.mm; path = ../../JuceLibraryCode/JuceLibraryCode2.mm; sourceTree = SOURCE_ROOT; }; - E55C45860F638C8E53EBAD26 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode3.mm; path = ../../JuceLibraryCode/JuceLibraryCode3.mm; sourceTree = SOURCE_ROOT; }; - 8DD6D3D8C10DB8C10BE4252E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode4.mm; path = ../../JuceLibraryCode/JuceLibraryCode4.mm; sourceTree = SOURCE_ROOT; }; - 3CF51A61C2ADC95009FB95F8 = { isa = PBXGroup; children = ( - 32C51E743C3EF1D0945AD81D, - FE69E32C71521D616E28A0DB, - F8BB3BCFEF373066F562F479, - 87B5167C70719CEB576D9A04, - 555C5B5F520D02742F96284B, - 28EBDB06654DEC92678A9ED0, - 65420C9D296E36189F21A940, - 2AAFCE06FD725B15137D3E55, - D3497DD4D584B4E25EA52A38 ); name = Source; sourceTree = ""; }; - EF96A88BD613522B3987E2D6 = { isa = PBXGroup; children = ( - EE499678D2672E4A0DB0EDF4, - 7349FE16AEFF2C4973C11A0C, - 83690AF49B3F341803D7BC37, - 3CD3A7355DD9605BBBD1353F, - E55C45860F638C8E53EBAD26, - 8DD6D3D8C10DB8C10BE4252E ); name = "Juce Library Code"; sourceTree = ""; }; - B7B52D75CE628637417DBCB4 = { isa = PBXGroup; children = ( - 2E66857E2B6065C304C36B37 ); name = Resources; sourceTree = ""; }; - 23626079F1CE82F0556B3AD9 = { isa = PBXGroup; children = ( - B8AD88171A257C504A58DB26, - DA8B3A910843F3AEF85CE3D5, - FB2A70EED12F808855F8E670, - F4B269229847A7FE29114AB8, - E448C0A4664EA85D35DDD6F2, - 1AF743BBC263EE305CAB5F04, - 47630AB7BFC0AA77B9446294, - 2C5691B1520162CE05F1EE2A, - 012A869CF0A9540442145877, - 9892F6A5644670895B5555E4, - 9D7459D745F5E72CA4C03392, - 61FB609B2FC9F45BEE3898DE, - 3682E0A9DCF9460E68297732 ); name = Frameworks; sourceTree = ""; }; - EDFD2EA4A55B83007DBF8087 = { isa = PBXGroup; children = ( - 09EEC9C8514BB03AD382F86D ); name = Products; sourceTree = ""; }; - 8ECC648E689D397FD15606F1 = { isa = PBXGroup; children = ( - 3CF51A61C2ADC95009FB95F8, - EF96A88BD613522B3987E2D6, - B7B52D75CE628637417DBCB4, - 23626079F1CE82F0556B3AD9, - EDFD2EA4A55B83007DBF8087 ); name = Source; sourceTree = ""; }; - 1505005EAA1350E973E3F7A2 = { isa = XCBuildConfiguration; buildSettings = { + A43062AA3FCA13D950980A9D = { isa = PBXBuildFile; fileRef = 3DC11B31DA65802201AFD1A3; }; + E0643DFCC2247EF97821AA0B = { isa = PBXBuildFile; fileRef = 7C069A377097C1BEC2EE9D47; }; + 3B81AE750E57041B090236E3 = { isa = PBXBuildFile; fileRef = 3E72AEABD28E02510E153F83; }; + 7A05588B558FC974734FDEB6 = { isa = PBXBuildFile; fileRef = ECCDBDC35CC70E5E6B63F407; }; + FFB28B6CCC67D05A4656F3FD = { isa = PBXBuildFile; fileRef = 13A8ECBAE1C399EE6C23CEB0; }; + 0E98BEAFF3B888221A3B6F61 = { isa = PBXBuildFile; fileRef = AD73C514CB4EABF252FA40FD; }; + 5494E9EAC6A5D90CB085D819 = { isa = PBXBuildFile; fileRef = DD062A05EDA95DD281B5B188; }; + C3ECD9BC737066FACF7D661D = { isa = PBXBuildFile; fileRef = 9772BD11E93247079FC6B5BD; }; + 0344374EE00EBC906608CCB7 = { isa = PBXBuildFile; fileRef = 4C20D27E2491F086AEA71044; }; + CB3A6CACC45FC3DD9525E611 = { isa = PBXBuildFile; fileRef = 4FC85A8AE0D46CDFD5E61304; }; + 57CAAF2DDA340BF5E764325B = { isa = PBXBuildFile; fileRef = F25D830DC35A0A240297BA70; }; + F653CD6DB1550002BFB3EE47 = { isa = PBXBuildFile; fileRef = 77964D54171CB8F24F616C9F; }; + 71D47E0ED5F6A90682A5707C = { isa = PBXBuildFile; fileRef = BFD865C4B317E01BDD319AB0; }; + A778E9C39DD11828306AF2E8 = { isa = PBXBuildFile; fileRef = 178E79E571E8D29BCC89FDD8; }; + 54F2AD58B5CEB3D743C1A169 = { isa = PBXBuildFile; fileRef = 7565EF27C95F512D4DD8649E; }; + 6DADD6A4866E2583BD197095 = { isa = PBXBuildFile; fileRef = F2999E9EF2E02C240DEAA0C6; }; + 938109D82261C12EF5CC7E4F = { isa = PBXBuildFile; fileRef = BA4959517392DBED76630DC2; }; + 2244CCA11963FDB0EC21C056 = { isa = PBXBuildFile; fileRef = 218167B6F2BD95AC7FEC31D5; }; + 249BFEAFDA801A30A9FE28AC = { isa = PBXBuildFile; fileRef = BC9F16AE41ED85BFA2090081; }; + 30210E40B65CE048C4D36CA7 = { isa = PBXBuildFile; fileRef = 06C5EFA95DD808E386ED84D1; }; + 4CB81ED19217B750FEB8A0B2 = { isa = PBXBuildFile; fileRef = 4FECB7A56AC38B066AC01710; }; + 484E2E726ED27E58288DE4BD = { isa = PBXBuildFile; fileRef = 980380A077AFFE293EB49B50; }; + 3DC11B31DA65802201AFD1A3 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + 7C069A377097C1BEC2EE9D47 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; + 3E72AEABD28E02510E153F83 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + ECCDBDC35CC70E5E6B63F407 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + 13A8ECBAE1C399EE6C23CEB0 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; + AD73C514CB4EABF252FA40FD = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; + DD062A05EDA95DD281B5B188 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; + 9772BD11E93247079FC6B5BD = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + 4C20D27E2491F086AEA71044 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 4FC85A8AE0D46CDFD5E61304 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; + F25D830DC35A0A240297BA70 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; + 77964D54171CB8F24F616C9F = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; }; + BFD865C4B317E01BDD319AB0 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; }; + 3B43D9C2C41077380D379A07 = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Plugin Host.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1C2637C4F538B137DDC54D95 = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = SOURCE_ROOT; }; + 178E79E571E8D29BCC89FDD8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FilterGraph.cpp; path = ../../Source/FilterGraph.cpp; sourceTree = SOURCE_ROOT; }; + 57EB1EA963753DC3D960E9CA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FilterGraph.h; path = ../../Source/FilterGraph.h; sourceTree = SOURCE_ROOT; }; + 7565EF27C95F512D4DD8649E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = GraphEditorPanel.cpp; path = ../../Source/GraphEditorPanel.cpp; sourceTree = SOURCE_ROOT; }; + 98AADFD8F1FBC3D1AD78BE3D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GraphEditorPanel.h; path = ../../Source/GraphEditorPanel.h; sourceTree = SOURCE_ROOT; }; + F2999E9EF2E02C240DEAA0C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = HostStartup.cpp; path = ../../Source/HostStartup.cpp; sourceTree = SOURCE_ROOT; }; + BA4959517392DBED76630DC2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = InternalFilters.cpp; path = ../../Source/InternalFilters.cpp; sourceTree = SOURCE_ROOT; }; + AFF6B72723C927C80459D99A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = InternalFilters.h; path = ../../Source/InternalFilters.h; sourceTree = SOURCE_ROOT; }; + 218167B6F2BD95AC7FEC31D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainHostWindow.cpp; path = ../../Source/MainHostWindow.cpp; sourceTree = SOURCE_ROOT; }; + B6A31D39CA31260F86D45CB4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainHostWindow.h; path = ../../Source/MainHostWindow.h; sourceTree = SOURCE_ROOT; }; + E0C1FD5EE3068D41ED2D4DD5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = SOURCE_ROOT; }; + A84DC40BF5D1B2A14239B035 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = SOURCE_ROOT; }; + BC9F16AE41ED85BFA2090081 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode1.mm; path = ../../JuceLibraryCode/JuceLibraryCode1.mm; sourceTree = SOURCE_ROOT; }; + 06C5EFA95DD808E386ED84D1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode2.mm; path = ../../JuceLibraryCode/JuceLibraryCode2.mm; sourceTree = SOURCE_ROOT; }; + 4FECB7A56AC38B066AC01710 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode3.mm; path = ../../JuceLibraryCode/JuceLibraryCode3.mm; sourceTree = SOURCE_ROOT; }; + 980380A077AFFE293EB49B50 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode4.mm; path = ../../JuceLibraryCode/JuceLibraryCode4.mm; sourceTree = SOURCE_ROOT; }; + 6DAAFEB816B9B5A45D93450B = { isa = PBXGroup; children = ( + 178E79E571E8D29BCC89FDD8, + 57EB1EA963753DC3D960E9CA, + 7565EF27C95F512D4DD8649E, + 98AADFD8F1FBC3D1AD78BE3D, + F2999E9EF2E02C240DEAA0C6, + BA4959517392DBED76630DC2, + AFF6B72723C927C80459D99A, + 218167B6F2BD95AC7FEC31D5, + B6A31D39CA31260F86D45CB4 ); name = Source; sourceTree = ""; }; + 5EB8B2B0AB17B68CF7A2B2F5 = { isa = PBXGroup; children = ( + E0C1FD5EE3068D41ED2D4DD5, + A84DC40BF5D1B2A14239B035, + BC9F16AE41ED85BFA2090081, + 06C5EFA95DD808E386ED84D1, + 4FECB7A56AC38B066AC01710, + 980380A077AFFE293EB49B50 ); name = "Juce Library Code"; sourceTree = ""; }; + 132622950074EBC9C8B6B717 = { isa = PBXGroup; children = ( + 1C2637C4F538B137DDC54D95 ); name = Resources; sourceTree = ""; }; + 26D5E869E6FD8DB238036278 = { isa = PBXGroup; children = ( + 3DC11B31DA65802201AFD1A3, + 7C069A377097C1BEC2EE9D47, + 3E72AEABD28E02510E153F83, + ECCDBDC35CC70E5E6B63F407, + 13A8ECBAE1C399EE6C23CEB0, + AD73C514CB4EABF252FA40FD, + DD062A05EDA95DD281B5B188, + 9772BD11E93247079FC6B5BD, + 4C20D27E2491F086AEA71044, + 4FC85A8AE0D46CDFD5E61304, + F25D830DC35A0A240297BA70, + 77964D54171CB8F24F616C9F, + BFD865C4B317E01BDD319AB0 ); name = Frameworks; sourceTree = ""; }; + 31DAB5E5452DF8F91208B6C4 = { isa = PBXGroup; children = ( + 3B43D9C2C41077380D379A07 ); name = Products; sourceTree = ""; }; + E1B7497DFD48F160861E53A2 = { isa = PBXGroup; children = ( + 6DAAFEB816B9B5A45D93450B, + 5EB8B2B0AB17B68CF7A2B2F5, + 132622950074EBC9C8B6B717, + 26D5E869E6FD8DB238036278, + 31DAB5E5452DF8F91208B6C4 ); name = Source; sourceTree = ""; }; + 06F48CFFC99F68872CFA3466 = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; PREBINDING = NO; HEADER_SEARCH_PATHS = "~/SDKs/vstsdk2.4 $(inherited)"; @@ -114,7 +114,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( "_DEBUG=1", "DEBUG=1 "); }; name = Debug; }; - 30EF2A13D1D56E66F2380A14 = { isa = XCBuildConfiguration; buildSettings = { + 90901561E3F7FD713257B23D = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; PREBINDING = NO; HEADER_SEARCH_PATHS = "~/SDKs/vstsdk2.4 $(inherited)"; @@ -127,7 +127,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( "_NDEBUG=1", "NDEBUG=1 "); }; name = Release; }; - 69445D9F701F09DD213CC61E = { isa = XCBuildConfiguration; buildSettings = { + 8133D32BA8816D704BF648FA = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -141,7 +141,7 @@ ZERO_LINK = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; PRODUCT_NAME = "Plugin Host"; }; name = Debug; }; - 6E2D61ECBBD9A6EFC358D2E7 = { isa = XCBuildConfiguration; buildSettings = { + 74C9869781487FF560C4590D = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -155,42 +155,42 @@ ZERO_LINK = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; PRODUCT_NAME = "Plugin Host"; }; name = Release; }; - 6BCC1B81ADA2726A27F50BA6 = { isa = XCConfigurationList; buildConfigurations = ( - 69445D9F701F09DD213CC61E, - 6E2D61ECBBD9A6EFC358D2E7 ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - DC757F8D93D8A3A8FB390621 = { isa = XCConfigurationList; buildConfigurations = ( - 1505005EAA1350E973E3F7A2, - 30EF2A13D1D56E66F2380A14 ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; - 91E4CF2693FFC033FF3EC5EC = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 65B7ED5A40F6DE7DEFDE28C3 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - DBC4181255D195D0B0AD4FE3, - 467EFB3144B5AD2DA9288602, - 988D85D9FEB33B1C6A5DB67E, - 5EBA4BAEC8F32F36085A9A1C, - 2F3D7654172A5DD93EDA940A, - ACA8CADBD05B4906DF90D0EF, - 19B790AE0582F1C8A1F59BAF, - 76B6557139B999997359557F, - E4B41A545DE0315B36BE103F ); runOnlyForDeploymentPostprocessing = 0; }; - 2F4B77CAE78D90BC5E2A691B = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E3D3C0C69AC0387C2380D942, - DF33F6CFA000AB149E8A9A37, - CFA25F9B775780CE870F2F60, - 9F069E01C82F87C489C33803, - B70574F213CD358E03AAD163, - C75A5344B8D269C561D87A28, - 34663664F089CF18929900D0, - F34C981407EDB8E8309DE34E, - 103313347D99A0E7DB0F428C, - D62450D5D0977B499F3F5F67, - 08374BCBBD3AD81C26E87FD2, - 6601761A743D57690E611EC3, - 48AE70E3BE796E91EA86CFE1 ); runOnlyForDeploymentPostprocessing = 0; }; - F706E056321E20869FFDED3C = { isa = PBXNativeTarget; buildConfigurationList = DC757F8D93D8A3A8FB390621; buildPhases = ( - 91E4CF2693FFC033FF3EC5EC, - 65B7ED5A40F6DE7DEFDE28C3, - 2F4B77CAE78D90BC5E2A691B ); buildRules = ( ); dependencies = ( ); name = "Plugin Host"; productName = "Plugin Host"; productReference = 09EEC9C8514BB03AD382F86D; productInstallPath = "$(HOME)/Applications"; productType = "com.apple.product-type.application"; }; - 7E10E22528F58430096E6EE8 = { isa = PBXProject; buildConfigurationList = 6BCC1B81ADA2726A27F50BA6; compatibilityVersion = "Xcode 3.0"; hasScannedForEncodings = 0; mainGroup = 8ECC648E689D397FD15606F1; projectDirPath = ""; projectRoot = ""; targets = ( F706E056321E20869FFDED3C ); }; + 3DBB3F42145D936BBD5425D7 = { isa = XCConfigurationList; buildConfigurations = ( + 8133D32BA8816D704BF648FA, + 74C9869781487FF560C4590D ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + D4FE5C8CF4B04CB35C5449CB = { isa = XCConfigurationList; buildConfigurations = ( + 06F48CFFC99F68872CFA3466, + 90901561E3F7FD713257B23D ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + B02D5D856D086055BAA5AE80 = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; + 8CC459E43DF37AB224B7E23C = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + A778E9C39DD11828306AF2E8, + 54F2AD58B5CEB3D743C1A169, + 6DADD6A4866E2583BD197095, + 938109D82261C12EF5CC7E4F, + 2244CCA11963FDB0EC21C056, + 249BFEAFDA801A30A9FE28AC, + 30210E40B65CE048C4D36CA7, + 4CB81ED19217B750FEB8A0B2, + 484E2E726ED27E58288DE4BD ); runOnlyForDeploymentPostprocessing = 0; }; + 30E98A3D15EFB4DAAD89D12D = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + A43062AA3FCA13D950980A9D, + E0643DFCC2247EF97821AA0B, + 3B81AE750E57041B090236E3, + 7A05588B558FC974734FDEB6, + FFB28B6CCC67D05A4656F3FD, + 0E98BEAFF3B888221A3B6F61, + 5494E9EAC6A5D90CB085D819, + C3ECD9BC737066FACF7D661D, + 0344374EE00EBC906608CCB7, + CB3A6CACC45FC3DD9525E611, + 57CAAF2DDA340BF5E764325B, + F653CD6DB1550002BFB3EE47, + 71D47E0ED5F6A90682A5707C ); runOnlyForDeploymentPostprocessing = 0; }; + 04F5D340BA63D9F8DE145DFB = { isa = PBXNativeTarget; buildConfigurationList = D4FE5C8CF4B04CB35C5449CB; buildPhases = ( + B02D5D856D086055BAA5AE80, + 8CC459E43DF37AB224B7E23C, + 30E98A3D15EFB4DAAD89D12D ); buildRules = ( ); dependencies = ( ); name = "Plugin Host"; productName = "Plugin Host"; productReference = 3B43D9C2C41077380D379A07; productInstallPath = "$(HOME)/Applications"; productType = "com.apple.product-type.application"; }; + FFAE6699AB89F7E949098342 = { isa = PBXProject; buildConfigurationList = 3DBB3F42145D936BBD5425D7; compatibilityVersion = "Xcode 3.0"; hasScannedForEncodings = 0; mainGroup = E1B7497DFD48F160861E53A2; projectDirPath = ""; projectRoot = ""; targets = ( 04F5D340BA63D9F8DE145DFB ); }; }; - rootObject = 7E10E22528F58430096E6EE8; + rootObject = FFAE6699AB89F7E949098342; } diff --git a/extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.sln b/extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.sln index fee7a10331..e6390eca77 100644 --- a/extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.sln +++ b/extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.sln @@ -1,7 +1,7 @@ Microsoft Visual Studio Solution File, Format Version 8.00 # Visual C++ Express 2005 -Project("{2C5B2BD0-DCDD-8F96-4518-F341656FE506}") = "Plugin Host", "Plugin Host.vcproj", "{4B76605A-510D-D729-CAC3-8E6F2C89BE71}" +Project("{F57C92E4-2379-4C6D-78F7-AFF26BF4F962}") = "Plugin Host", "Plugin Host.vcproj", "{7CD310E8-9077-342C-EB06-869D4775A4F4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -9,10 +9,10 @@ Global Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4B76605A-510D-D729-CAC3-8E6F2C89BE71}.Debug|Win32.ActiveCfg = Debug|Win32 - {4B76605A-510D-D729-CAC3-8E6F2C89BE71}.Debug|Win32.Build.0 = Debug|Win32 - {4B76605A-510D-D729-CAC3-8E6F2C89BE71}.Release|Win32.ActiveCfg = Release|Win32 - {4B76605A-510D-D729-CAC3-8E6F2C89BE71}.Release|Win32.Build.0 = Release|Win32 + {7CD310E8-9077-342C-EB06-869D4775A4F4}.Debug|Win32.ActiveCfg = Debug|Win32 + {7CD310E8-9077-342C-EB06-869D4775A4F4}.Debug|Win32.Build.0 = Debug|Win32 + {7CD310E8-9077-342C-EB06-869D4775A4F4}.Release|Win32.ActiveCfg = Release|Win32 + {7CD310E8-9077-342C-EB06-869D4775A4F4}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.vcproj b/extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.vcproj index 3ce23faa38..537dd2553c 100644 --- a/extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.vcproj +++ b/extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.vcproj @@ -3,7 +3,7 @@ diff --git a/extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.sln b/extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.sln index e4da8c5db8..fc4aa69848 100644 --- a/extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.sln +++ b/extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.sln @@ -1,7 +1,7 @@ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual C++ Express 2008 -Project("{2C5B2BD0-DCDD-8F96-4518-F341656FE506}") = "Plugin Host", "Plugin Host.vcproj", "{4B76605A-510D-D729-CAC3-8E6F2C89BE71}" +Project("{F57C92E4-2379-4C6D-78F7-AFF26BF4F962}") = "Plugin Host", "Plugin Host.vcproj", "{7CD310E8-9077-342C-EB06-869D4775A4F4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -9,10 +9,10 @@ Global Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4B76605A-510D-D729-CAC3-8E6F2C89BE71}.Debug|Win32.ActiveCfg = Debug|Win32 - {4B76605A-510D-D729-CAC3-8E6F2C89BE71}.Debug|Win32.Build.0 = Debug|Win32 - {4B76605A-510D-D729-CAC3-8E6F2C89BE71}.Release|Win32.ActiveCfg = Release|Win32 - {4B76605A-510D-D729-CAC3-8E6F2C89BE71}.Release|Win32.Build.0 = Release|Win32 + {7CD310E8-9077-342C-EB06-869D4775A4F4}.Debug|Win32.ActiveCfg = Debug|Win32 + {7CD310E8-9077-342C-EB06-869D4775A4F4}.Debug|Win32.Build.0 = Debug|Win32 + {7CD310E8-9077-342C-EB06-869D4775A4F4}.Release|Win32.ActiveCfg = Release|Win32 + {7CD310E8-9077-342C-EB06-869D4775A4F4}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.vcproj b/extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.vcproj index 3b9e3932f0..06d4132847 100644 --- a/extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.vcproj +++ b/extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.vcproj @@ -3,7 +3,7 @@ diff --git a/extras/audio plugin host/JuceLibraryCode/AppConfig.h b/extras/audio plugin host/JuceLibraryCode/AppConfig.h index 049c80b159..696aff531e 100644 --- a/extras/audio plugin host/JuceLibraryCode/AppConfig.h +++ b/extras/audio plugin host/JuceLibraryCode/AppConfig.h @@ -27,6 +27,7 @@ //#define JUCE_ENABLE_REPAINT_DEBUGGING //#define JUCE_USE_XINERAMA //#define JUCE_USE_XSHM +//#define JUCE_USE_XRENDER #define JUCE_PLUGINHOST_VST 1 #define JUCE_PLUGINHOST_AU 1 //#define JUCE_ONLY_BUILD_CORE_LIBRARY diff --git a/extras/audio plugin host/Plugin Host.jucer b/extras/audio plugin host/Plugin Host.jucer index 998257f252..80820395cc 100644 --- a/extras/audio plugin host/Plugin Host.jucer +++ b/extras/audio plugin host/Plugin Host.jucer @@ -56,5 +56,6 @@ JUCE_USE_XINERAMA="default" JUCE_USE_XSHM="default" JUCE_PLUGINHOST_VST="enabled" JUCE_PLUGINHOST_AU="enabled" JUCE_ONLY_BUILD_CORE_LIBRARY="default" JUCE_WEB_BROWSER="default" JUCE_SUPPORT_CARBON="default" JUCE_CHECK_MEMORY_LEAKS="default" - JUCE_CATCH_UNHANDLED_EXCEPTIONS="default" JUCE_STRINGS_ARE_UNICODE="default"/> + JUCE_CATCH_UNHANDLED_EXCEPTIONS="default" JUCE_STRINGS_ARE_UNICODE="default" + JUCE_USE_XRENDER="default"/> diff --git a/extras/audio plugins/demo/Builds/MacOSX/Info.plist b/extras/audio plugins/demo/Builds/MacOSX/Info.plist new file mode 100644 index 0000000000..e2bec0f056 --- /dev/null +++ b/extras/audio plugins/demo/Builds/MacOSX/Info.plist @@ -0,0 +1,23 @@ + + + + + + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.rawmaterialsoftware.JuceDemoPlugin + CFBundleName + JuceDemoPlugin + CFBundlePackageType + TDMw + CFBundleSignature + PTul + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + 1.0.0 + + diff --git a/extras/audio plugins/demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj b/extras/audio plugins/demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..a974a49de8 --- /dev/null +++ b/extras/audio plugins/demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj @@ -0,0 +1,368 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 44; + objects = { + + 0860A8808F16C84CE7641D04 = { isa = PBXBuildFile; fileRef = 91F0411829B13595887CE52A; }; + 449473E31270237B0FFEBE72 = { isa = PBXBuildFile; fileRef = D036C01DC0E376205ABAA0CE; }; + AFB1D55C5DA4C99D90DF3A6A = { isa = PBXBuildFile; fileRef = A2A2E49121DBB7C395E2420A; }; + EF358E6194DB7EE60A1CE13D = { isa = PBXBuildFile; fileRef = 41FDE3A9AC13B3D1F230088E; }; + 53E2C1531CB485CCDD230774 = { isa = PBXBuildFile; fileRef = 88C8229131104E50F4F0D137; }; + 73B8F48633153DA5A10873E8 = { isa = PBXBuildFile; fileRef = 01A30B0A0B9B5064D9B75474; }; + B9C31FD116F29E7E4752EB90 = { isa = PBXBuildFile; fileRef = 423550EB3CF502541882C50E; }; + 370C0F92C3CC1B6C563A7A94 = { isa = PBXBuildFile; fileRef = FBA2E307398FFC8A2693C933; }; + 68746D242F6A6102FDD5D03D = { isa = PBXBuildFile; fileRef = B050085463EEB5F8367314CB; }; + 205AA28314AC784F2CF1FA98 = { isa = PBXBuildFile; fileRef = B4F88060202011416CB3278B; }; + CBE9E6042991B0677E3136D2 = { isa = PBXBuildFile; fileRef = 678CC9E413A7CF979964CEF7; }; + 5B83F34400A1B5844680E1CE = { isa = PBXBuildFile; fileRef = DBC6733A66786D64D63E7016; }; + E504A4E425435E78197183F3 = { isa = PBXBuildFile; fileRef = 2307ABAB0264959E640E9E37; }; + AC674433358C3691C8AC20AF = { isa = PBXBuildFile; fileRef = E226D5DEE103B1E298BD6E3E; }; + 5AF66C048A4815F5A8ECDDCD = { isa = PBXBuildFile; fileRef = B50846B34831C2C28007BE7D; }; + 209FB8C7F7BE85A70E5D98D7 = { isa = PBXBuildFile; fileRef = 2C001306D198F8B21ABA7375; }; + 99CB24952ADDDFA320CB3B23 = { isa = PBXBuildFile; fileRef = 21CE5C9490494A2139D61408; }; + 9551342606A895BB5BA07F2E = { isa = PBXBuildFile; fileRef = 6AE52580AD24BD551DB99758; }; + A1E844C7D2636CC38585B429 = { isa = PBXBuildFile; fileRef = B31CFE8BBA103078E19D1B97; }; + BD7E5458BE2F33DBBF5AF834 = { isa = PBXBuildFile; fileRef = FD33B687C6FBA3ABC581AFD7; }; + 21695D03D6CEDD0D4B6A223F = { isa = PBXBuildFile; fileRef = D72A5A33070FDACF8245023C; }; + 8647A1C2DFD0682E5957A448 = { isa = PBXBuildFile; fileRef = BF6A49F4F7A9B9E8054806A8; }; + 862E7F1BC717EC544AA4ABB8 = { isa = PBXBuildFile; fileRef = 78F506C4822524209976CB35; }; + AC35B322C5633C758F7B07F2 = { isa = PBXBuildFile; fileRef = 2BF67235DA25FD0A85909ADC; }; + B7D2D2868983939B35532885 = { isa = PBXBuildFile; fileRef = 6C254919C15224D13FE6D174; settings = {COMPILER_FLAGS = "-w"; }; }; + 3723101DD64447FE9A530323 = { isa = PBXBuildFile; fileRef = 38E2002644D5BBC2E88ACB70; settings = {COMPILER_FLAGS = "-w"; }; }; + EBBDC594F4DF0EF42E017C64 = { isa = PBXBuildFile; fileRef = 616DF8861CA45D7FFE92CA35; settings = {COMPILER_FLAGS = "-w"; }; }; + 421AB531BFA2C9EB93522748 = { isa = PBXBuildFile; fileRef = 35B676123569917443C05786; settings = {COMPILER_FLAGS = "-w"; }; }; + E5299A6C25F9C4AE26DABAC0 = { isa = PBXBuildFile; fileRef = 3008852179AEC3110ABEFC5F; settings = {COMPILER_FLAGS = "-w"; }; }; + A7805EAF6FC58E9A857D98EA = { isa = PBXBuildFile; fileRef = 6C9B2F471F11EC467FDB06D0; settings = {COMPILER_FLAGS = "-w"; }; }; + B24CA5BEF488268AB502C0AC = { isa = PBXBuildFile; fileRef = 17ABF2F862D57C89FE85C307; settings = {COMPILER_FLAGS = "-w"; }; }; + 81795588AD3A427D43E3165C = { isa = PBXBuildFile; fileRef = E9F52DE288413A752B295F84; settings = {COMPILER_FLAGS = "-w"; }; }; + 07EDB68D178C5C7635F58468 = { isa = PBXBuildFile; fileRef = A272B6DB3C84B9D91BF0F060; settings = {COMPILER_FLAGS = "-w"; }; }; + AEF69B599D0CEC30C1BC8C0C = { isa = PBXBuildFile; fileRef = BA712F15F8C80BF55297EA44; settings = {COMPILER_FLAGS = "-w"; }; }; + 8B45F20F3F352BB3B35F6EB7 = { isa = PBXBuildFile; fileRef = 6381E6023EA29B5BC90F0F11; settings = {COMPILER_FLAGS = "-w"; }; }; + 3FA5946913264BF87C308F89 = { isa = PBXBuildFile; fileRef = F17E1C506A2CB31650AC64A1; settings = {COMPILER_FLAGS = "-w"; }; }; + BAF7CD5DAFBAB29BEF0DCAE3 = { isa = PBXBuildFile; fileRef = 4BA3B7415620D5A6A3DD6076; settings = {COMPILER_FLAGS = "-w"; }; }; + F51222976BFE5611E7FC656F = { isa = PBXBuildFile; fileRef = A9C716DF2B9CC6D95877A448; settings = {COMPILER_FLAGS = "-w"; }; }; + 84D075FA78547C8D3AC4EA1A = { isa = PBXBuildFile; fileRef = 51DAC3E29FE8A76EF638C26E; settings = {COMPILER_FLAGS = "-w"; }; }; + CE625DD4D4B118F4718F2DCC = { isa = PBXBuildFile; fileRef = 71A86FA30C6E11992FD52782; settings = {COMPILER_FLAGS = "-w"; }; }; + 60FEDB4F5859871946389F21 = { isa = PBXBuildFile; fileRef = F7A8C106BF631AFADA24F8EE; settings = {COMPILER_FLAGS = "-w"; }; }; + F9290B46763F4865ED3C362D = { isa = PBXBuildFile; fileRef = 8C28A1A8AF5FFC61D88246A9; settings = {COMPILER_FLAGS = "-w"; }; }; + A2718BCD8261456359155ABE = { isa = PBXBuildFile; fileRef = 634B4CFC4268E257C63FA337; settings = {COMPILER_FLAGS = "-w"; }; }; + 4BB4B93E0E58FC0D5FE82292 = { isa = PBXBuildFile; fileRef = 6EC9B05A43174FFF25BA3382; settings = {COMPILER_FLAGS = "-w"; }; }; + EE224227E577BA498E98DC9A = { isa = PBXBuildFile; fileRef = 257FA3A7290842556A7377A4; settings = {COMPILER_FLAGS = "-w"; }; }; + F0BEF1392277DBDC409A06A3 = { isa = PBXBuildFile; fileRef = 55D565AF7527BA71D7ADC2D4; settings = {COMPILER_FLAGS = "-w"; }; }; + 91F0411829B13595887CE52A = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + D036C01DC0E376205ABAA0CE = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; + A2A2E49121DBB7C395E2420A = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + 41FDE3A9AC13B3D1F230088E = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + 88C8229131104E50F4F0D137 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; + 01A30B0A0B9B5064D9B75474 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; + 423550EB3CF502541882C50E = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; + FBA2E307398FFC8A2693C933 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + B050085463EEB5F8367314CB = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + B4F88060202011416CB3278B = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; + 678CC9E413A7CF979964CEF7 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; + DBC6733A66786D64D63E7016 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; }; + 2307ABAB0264959E640E9E37 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; }; + E226D5DEE103B1E298BD6E3E = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + AF721FB8136D2CAA9404AD8D = { isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = JuceDemoPlugin.component; sourceTree = BUILT_PRODUCTS_DIR; }; + 81567EBA449466A95492511B = { isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = SOURCE_ROOT; }; + B50846B34831C2C28007BE7D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = PluginProcessor.cpp; path = ../../Source/PluginProcessor.cpp; sourceTree = SOURCE_ROOT; }; + CF304FBE4BC66783833C4B59 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PluginProcessor.h; path = ../../Source/PluginProcessor.h; sourceTree = SOURCE_ROOT; }; + 2C001306D198F8B21ABA7375 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = PluginEditor.cpp; path = ../../Source/PluginEditor.cpp; sourceTree = SOURCE_ROOT; }; + 662507104D05B579BB68F391 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PluginEditor.h; path = ../../Source/PluginEditor.h; sourceTree = SOURCE_ROOT; }; + 55F13334336342B374FA505C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = SOURCE_ROOT; }; + 1C7D0AE1352D6713D906C4AB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = SOURCE_ROOT; }; + 21CE5C9490494A2139D61408 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode1.mm; path = ../../JuceLibraryCode/JuceLibraryCode1.mm; sourceTree = SOURCE_ROOT; }; + 6AE52580AD24BD551DB99758 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode2.mm; path = ../../JuceLibraryCode/JuceLibraryCode2.mm; sourceTree = SOURCE_ROOT; }; + B31CFE8BBA103078E19D1B97 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode3.mm; path = ../../JuceLibraryCode/JuceLibraryCode3.mm; sourceTree = SOURCE_ROOT; }; + FD33B687C6FBA3ABC581AFD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = JuceLibraryCode4.mm; path = ../../JuceLibraryCode/JuceLibraryCode4.mm; sourceTree = SOURCE_ROOT; }; + DF8AD10F6B21858C3378B63F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JucePluginCharacteristics.h; path = ../../JuceLibraryCode/JucePluginCharacteristics.h; sourceTree = SOURCE_ROOT; }; + D72A5A33070FDACF8245023C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_VST_Wrapper.cpp; path = "../../../../../../juce/extras/audio plugins/wrapper/VST/juce_VST_Wrapper.cpp"; sourceTree = SOURCE_ROOT; }; + BF6A49F4F7A9B9E8054806A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_VST_Wrapper.mm; path = "../../../../../../juce/extras/audio plugins/wrapper/VST/juce_VST_Wrapper.mm"; sourceTree = SOURCE_ROOT; }; + 78F506C4822524209976CB35 = { isa = PBXFileReference; lastKnownFileType = file.r; name = juce_AU_Resources.r; path = "../../../../../../juce/extras/audio plugins/wrapper/AU/juce_AU_Resources.r"; sourceTree = SOURCE_ROOT; }; + 2BF67235DA25FD0A85909ADC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_AU_Wrapper.mm; path = "../../../../../../juce/extras/audio plugins/wrapper/AU/juce_AU_Wrapper.mm"; sourceTree = SOURCE_ROOT; }; + 70DC3C63DDDFB1C5A22A8C36 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CADebugMacros.h; path = Extras/CoreAudio/PublicUtility/CADebugMacros.h; sourceTree = DEVELOPER_DIR; }; + 6C254919C15224D13FE6D174 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CAAUParameter.cpp; path = Extras/CoreAudio/PublicUtility/CAAUParameter.cpp; sourceTree = DEVELOPER_DIR; }; + AEDBCF2FF9E1FBD5B9958FB4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CAAUParameter.h; path = Extras/CoreAudio/PublicUtility/CAAUParameter.h; sourceTree = DEVELOPER_DIR; }; + 38E2002644D5BBC2E88ACB70 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CAAudioChannelLayout.cpp; path = Extras/CoreAudio/PublicUtility/CAAudioChannelLayout.cpp; sourceTree = DEVELOPER_DIR; }; + 248B812009870EC9531D3269 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CAAudioChannelLayout.h; path = Extras/CoreAudio/PublicUtility/CAAudioChannelLayout.h; sourceTree = DEVELOPER_DIR; }; + 616DF8861CA45D7FFE92CA35 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CAMutex.cpp; path = Extras/CoreAudio/PublicUtility/CAMutex.cpp; sourceTree = DEVELOPER_DIR; }; + 52F3077A4F38B60682CD77B0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CAMutex.h; path = Extras/CoreAudio/PublicUtility/CAMutex.h; sourceTree = DEVELOPER_DIR; }; + 35B676123569917443C05786 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CAStreamBasicDescription.cpp; path = Extras/CoreAudio/PublicUtility/CAStreamBasicDescription.cpp; sourceTree = DEVELOPER_DIR; }; + 653554C5848EC85ACF6761CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CAStreamBasicDescription.h; path = Extras/CoreAudio/PublicUtility/CAStreamBasicDescription.h; sourceTree = DEVELOPER_DIR; }; + 206D40BEDB308864DE8DAA57 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CAVectorUnitTypes.h; path = Extras/CoreAudio/PublicUtility/CAVectorUnitTypes.h; sourceTree = DEVELOPER_DIR; }; + 3008852179AEC3110ABEFC5F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CAVectorUnit.cpp; path = Extras/CoreAudio/PublicUtility/CAVectorUnit.cpp; sourceTree = DEVELOPER_DIR; }; + B6B85F3F336EDA568CB53327 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CAVectorUnit.h; path = Extras/CoreAudio/PublicUtility/CAVectorUnit.h; sourceTree = DEVELOPER_DIR; }; + D2FF01F8AC92CBFB1A4AEC2B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUViewLocalizedStringKeys.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUViewBase/AUViewLocalizedStringKeys.h; sourceTree = DEVELOPER_DIR; }; + 6C9B2F471F11EC467FDB06D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUCarbonViewDispatch.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewDispatch.cpp; sourceTree = DEVELOPER_DIR; }; + 17ABF2F862D57C89FE85C307 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUCarbonViewControl.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewControl.cpp; sourceTree = DEVELOPER_DIR; }; + C5139AB9C4FB8AAD09B8CD9A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUCarbonViewControl.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewControl.h; sourceTree = DEVELOPER_DIR; }; + E9F52DE288413A752B295F84 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CarbonEventHandler.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/CarbonEventHandler.cpp; sourceTree = DEVELOPER_DIR; }; + 943EC8C2885DA0982C1E995E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CarbonEventHandler.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/CarbonEventHandler.h; sourceTree = DEVELOPER_DIR; }; + A272B6DB3C84B9D91BF0F060 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUCarbonViewBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewBase.cpp; sourceTree = DEVELOPER_DIR; }; + E0586393177D674A237103E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUCarbonViewBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewBase.h; sourceTree = DEVELOPER_DIR; }; + BA712F15F8C80BF55297EA44 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp; sourceTree = DEVELOPER_DIR; }; + BC5E2A691B0A52816EA5C7DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.h; sourceTree = DEVELOPER_DIR; }; + 6381E6023EA29B5BC90F0F11 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUDispatch.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUDispatch.cpp; sourceTree = DEVELOPER_DIR; }; + 79725AF8A4315CF7AEB0A650 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUDispatch.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUDispatch.h; sourceTree = DEVELOPER_DIR; }; + F17E1C506A2CB31650AC64A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUInputElement.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUInputElement.cpp; sourceTree = DEVELOPER_DIR; }; + A7453366F39F172187B8469B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUInputElement.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUInputElement.h; sourceTree = DEVELOPER_DIR; }; + 4BA3B7415620D5A6A3DD6076 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUOutputElement.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUOutputElement.cpp; sourceTree = DEVELOPER_DIR; }; + 58CAFB52D888AF57B1A82540 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUOutputElement.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUOutputElement.h; sourceTree = DEVELOPER_DIR; }; + 3392EEAEB79019283AD94C41 = { isa = PBXFileReference; lastKnownFileType = file.r; name = AUResources.r; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUResources.r; sourceTree = DEVELOPER_DIR; }; + A9C716DF2B9CC6D95877A448 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUScopeElement.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUScopeElement.cpp; sourceTree = DEVELOPER_DIR; }; + 05B55564FFFBBBC713829291 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUScopeElement.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/AUScopeElement.h; sourceTree = DEVELOPER_DIR; }; + 51DAC3E29FE8A76EF638C26E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ComponentBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/ComponentBase.cpp; sourceTree = DEVELOPER_DIR; }; + 952543A03965AE64D2F7EF37 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ComponentBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/AUBase/ComponentBase.h; sourceTree = DEVELOPER_DIR; }; + 71A86FA30C6E11992FD52782 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUMIDIBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIBase.cpp; sourceTree = DEVELOPER_DIR; }; + 09365764C5E388C17571B74B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUMIDIBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIBase.h; sourceTree = DEVELOPER_DIR; }; + F7A8C106BF631AFADA24F8EE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUMIDIEffectBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIEffectBase.cpp; sourceTree = DEVELOPER_DIR; }; + 3F222693EE8A706D9E66140F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUMIDIEffectBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIEffectBase.h; sourceTree = DEVELOPER_DIR; }; + 8C28A1A8AF5FFC61D88246A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUOutputBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUOutputBase.cpp; sourceTree = DEVELOPER_DIR; }; + D2EF4DF7FF52621B8EBC3C20 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUOutputBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUOutputBase.h; sourceTree = DEVELOPER_DIR; }; + 634B4CFC4268E257C63FA337 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MusicDeviceBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/MusicDeviceBase.cpp; sourceTree = DEVELOPER_DIR; }; + 0388AC868C8BBB6E2FDBAAA3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MusicDeviceBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/MusicDeviceBase.h; sourceTree = DEVELOPER_DIR; }; + 6EC9B05A43174FFF25BA3382 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUEffectBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUEffectBase.cpp; sourceTree = DEVELOPER_DIR; }; + 6EEDB768C0235390844832E6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUEffectBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUEffectBase.h; sourceTree = DEVELOPER_DIR; }; + 257FA3A7290842556A7377A4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUBuffer.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUBuffer.cpp; sourceTree = DEVELOPER_DIR; }; + 8223723B38EF54A3B8644621 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUBuffer.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUBuffer.h; sourceTree = DEVELOPER_DIR; }; + 55D565AF7527BA71D7ADC2D4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUDebugDispatcher.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUDebugDispatcher.cpp; sourceTree = DEVELOPER_DIR; }; + DDD465BD14877C159A3217E8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUDebugDispatcher.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUDebugDispatcher.h; sourceTree = DEVELOPER_DIR; }; + 8E41015AF77D494DDAB5546F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUInputFormatConverter.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUInputFormatConverter.h; sourceTree = DEVELOPER_DIR; }; + B50242715BF944E7711A5939 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUSilentTimeout.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUSilentTimeout.h; sourceTree = DEVELOPER_DIR; }; + F2595F2DC0235F848F9474E8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUTimestampGenerator.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUTimestampGenerator.h; sourceTree = DEVELOPER_DIR; }; + 7B366D238FBBC31D17A18D2C = { isa = PBXGroup; children = ( + B50846B34831C2C28007BE7D, + CF304FBE4BC66783833C4B59, + 2C001306D198F8B21ABA7375, + 662507104D05B579BB68F391 ); name = Source; sourceTree = ""; }; + C3E8F897FB646B0E8E7FC67C = { isa = PBXGroup; children = ( + 55F13334336342B374FA505C, + 1C7D0AE1352D6713D906C4AB, + 21CE5C9490494A2139D61408, + 6AE52580AD24BD551DB99758, + B31CFE8BBA103078E19D1B97, + FD33B687C6FBA3ABC581AFD7, + DF8AD10F6B21858C3378B63F ); name = "Juce Library Code"; sourceTree = ""; }; + B7F037957C49AE7943C354C9 = { isa = PBXGroup; children = ( + D72A5A33070FDACF8245023C, + BF6A49F4F7A9B9E8054806A8 ); name = "Juce VST Wrapper"; sourceTree = ""; }; + 17A9711DC035377B969B90C2 = { isa = PBXGroup; children = ( + 70DC3C63DDDFB1C5A22A8C36, + 6C254919C15224D13FE6D174, + AEDBCF2FF9E1FBD5B9958FB4, + 38E2002644D5BBC2E88ACB70, + 248B812009870EC9531D3269, + 616DF8861CA45D7FFE92CA35, + 52F3077A4F38B60682CD77B0, + 35B676123569917443C05786, + 653554C5848EC85ACF6761CB, + 206D40BEDB308864DE8DAA57, + 3008852179AEC3110ABEFC5F, + B6B85F3F336EDA568CB53327, + D2FF01F8AC92CBFB1A4AEC2B, + 6C9B2F471F11EC467FDB06D0, + 17ABF2F862D57C89FE85C307, + C5139AB9C4FB8AAD09B8CD9A, + E9F52DE288413A752B295F84, + 943EC8C2885DA0982C1E995E, + A272B6DB3C84B9D91BF0F060, + E0586393177D674A237103E5, + BA712F15F8C80BF55297EA44, + BC5E2A691B0A52816EA5C7DB, + 6381E6023EA29B5BC90F0F11, + 79725AF8A4315CF7AEB0A650, + F17E1C506A2CB31650AC64A1, + A7453366F39F172187B8469B, + 4BA3B7415620D5A6A3DD6076, + 58CAFB52D888AF57B1A82540, + 3392EEAEB79019283AD94C41, + A9C716DF2B9CC6D95877A448, + 05B55564FFFBBBC713829291, + 51DAC3E29FE8A76EF638C26E, + 952543A03965AE64D2F7EF37, + 71A86FA30C6E11992FD52782, + 09365764C5E388C17571B74B, + F7A8C106BF631AFADA24F8EE, + 3F222693EE8A706D9E66140F, + 8C28A1A8AF5FFC61D88246A9, + D2EF4DF7FF52621B8EBC3C20, + 634B4CFC4268E257C63FA337, + 0388AC868C8BBB6E2FDBAAA3, + 6EC9B05A43174FFF25BA3382, + 6EEDB768C0235390844832E6, + 257FA3A7290842556A7377A4, + 8223723B38EF54A3B8644621, + 55D565AF7527BA71D7ADC2D4, + DDD465BD14877C159A3217E8, + 8E41015AF77D494DDAB5546F, + B50242715BF944E7711A5939, + F2595F2DC0235F848F9474E8 ); name = "Apple AU Files"; sourceTree = ""; }; + 5180919A8096CFD082284336 = { isa = PBXGroup; children = ( + 78F506C4822524209976CB35, + 2BF67235DA25FD0A85909ADC, + 17A9711DC035377B969B90C2 ); name = "Juce AU Wrapper"; sourceTree = ""; }; + 7756687B5FD0903C5F83BB9E = { isa = PBXGroup; children = ( + 81567EBA449466A95492511B ); name = Resources; sourceTree = ""; }; + 9B041E4036493224CFD075FF = { isa = PBXGroup; children = ( + 91F0411829B13595887CE52A, + D036C01DC0E376205ABAA0CE, + A2A2E49121DBB7C395E2420A, + 41FDE3A9AC13B3D1F230088E, + 88C8229131104E50F4F0D137, + 01A30B0A0B9B5064D9B75474, + 423550EB3CF502541882C50E, + FBA2E307398FFC8A2693C933, + B050085463EEB5F8367314CB, + B4F88060202011416CB3278B, + 678CC9E413A7CF979964CEF7, + DBC6733A66786D64D63E7016, + 2307ABAB0264959E640E9E37, + E226D5DEE103B1E298BD6E3E ); name = Frameworks; sourceTree = ""; }; + A60AEBCC9579AD6BA9D5CA4B = { isa = PBXGroup; children = ( + AF721FB8136D2CAA9404AD8D ); name = Products; sourceTree = ""; }; + E1C5E3C67B4A2621AD2D3E05 = { isa = PBXGroup; children = ( + 7B366D238FBBC31D17A18D2C, + C3E8F897FB646B0E8E7FC67C, + B7F037957C49AE7943C354C9, + 5180919A8096CFD082284336, + 7756687B5FD0903C5F83BB9E, + 9B041E4036493224CFD075FF, + A60AEBCC9579AD6BA9D5CA4B ); name = Source; sourceTree = ""; }; + 6B24C2D519EB1D09B3C748EC = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + PREBINDING = NO; + HEADER_SEARCH_PATHS = "~/SDKs/vstsdk2.4 $(DEVELOPER_DIR)/Extras/CoreAudio/PublicUtility $(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/Utility $(inherited)"; + GCC_OPTIMIZATION_LEVEL = 0; + INFOPLIST_FILE = Info.plist; + LIBRARY_STYLE = Bundle; + INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/"; + WRAPPER_EXTENSION = component; + GENERATE_PKGINFO_FILE = YES; + OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\""; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + OTHER_LDFLAGS = "-bundle"; + ONLY_ACTIVE_ARCH = YES; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_DEBUG=1", + "DEBUG=1 ", + "JUCE_ObjCExtraSuffix=JuceDemo"); }; name = Debug; }; + F4B05B483343A2F3C923C6B4 = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + PREBINDING = NO; + HEADER_SEARCH_PATHS = "~/SDKs/vstsdk2.4 $(DEVELOPER_DIR)/Extras/CoreAudio/PublicUtility $(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/Utility $(inherited)"; + GCC_OPTIMIZATION_LEVEL = s; + INFOPLIST_FILE = Info.plist; + LIBRARY_STYLE = Bundle; + INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/"; + WRAPPER_EXTENSION = component; + GENERATE_PKGINFO_FILE = YES; + OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\""; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + OTHER_LDFLAGS = "-bundle"; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_NDEBUG=1", + "NDEBUG=1 ", + "JUCE_ObjCExtraSuffix=JuceDemo"); }; name = Release; }; + F6631902F8DE12E2C2C34B71 = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_MODEL_TUNING = G5; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + ZERO_LINK = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + PRODUCT_NAME = "JuceDemoPlugin"; }; name = Debug; }; + D9F9CC7EC1952477F7915D84 = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_MODEL_TUNING = G5; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + ZERO_LINK = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + PRODUCT_NAME = "JuceDemoPlugin"; }; name = Release; }; + 91EB753864A948DE4421285E = { isa = XCConfigurationList; buildConfigurations = ( + F6631902F8DE12E2C2C34B71, + D9F9CC7EC1952477F7915D84 ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 392E8263441DF125E3215D42 = { isa = XCConfigurationList; buildConfigurations = ( + 6B24C2D519EB1D09B3C748EC, + F4B05B483343A2F3C923C6B4 ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 145D936BBD5425D74172B206 = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; + A79C4026C596A99BB0ADC224 = { isa = PBXRezBuildPhase; buildActionMask = 2147483647; files = ( + 862E7F1BC717EC544AA4ABB8 ); runOnlyForDeploymentPostprocessing = 0; }; + F0F39FCA8C402F34BB74F6B3 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 5AF66C048A4815F5A8ECDDCD, + 209FB8C7F7BE85A70E5D98D7, + 99CB24952ADDDFA320CB3B23, + 9551342606A895BB5BA07F2E, + A1E844C7D2636CC38585B429, + BD7E5458BE2F33DBBF5AF834, + 21695D03D6CEDD0D4B6A223F, + 8647A1C2DFD0682E5957A448, + AC35B322C5633C758F7B07F2, + B7D2D2868983939B35532885, + 3723101DD64447FE9A530323, + EBBDC594F4DF0EF42E017C64, + 421AB531BFA2C9EB93522748, + E5299A6C25F9C4AE26DABAC0, + A7805EAF6FC58E9A857D98EA, + B24CA5BEF488268AB502C0AC, + 81795588AD3A427D43E3165C, + 07EDB68D178C5C7635F58468, + AEF69B599D0CEC30C1BC8C0C, + 8B45F20F3F352BB3B35F6EB7, + 3FA5946913264BF87C308F89, + BAF7CD5DAFBAB29BEF0DCAE3, + F51222976BFE5611E7FC656F, + 84D075FA78547C8D3AC4EA1A, + CE625DD4D4B118F4718F2DCC, + 60FEDB4F5859871946389F21, + F9290B46763F4865ED3C362D, + A2718BCD8261456359155ABE, + 4BB4B93E0E58FC0D5FE82292, + EE224227E577BA498E98DC9A, + F0BEF1392277DBDC409A06A3 ); runOnlyForDeploymentPostprocessing = 0; }; + 9519B014653C694C3456E5A4 = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 0860A8808F16C84CE7641D04, + 449473E31270237B0FFEBE72, + AFB1D55C5DA4C99D90DF3A6A, + EF358E6194DB7EE60A1CE13D, + 53E2C1531CB485CCDD230774, + 73B8F48633153DA5A10873E8, + B9C31FD116F29E7E4752EB90, + 370C0F92C3CC1B6C563A7A94, + 68746D242F6A6102FDD5D03D, + 205AA28314AC784F2CF1FA98, + CBE9E6042991B0677E3136D2, + 5B83F34400A1B5844680E1CE, + E504A4E425435E78197183F3, + AC674433358C3691C8AC20AF ); runOnlyForDeploymentPostprocessing = 0; }; + 06539322921079C10A447670 = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; name = "Copy to the different plugin folders"; shellPath = /bin/sh; shellScript = "\n# This script takes the build product and copies it to the AU, VST, and RTAS folders, depending on \n# which plugin types you've built\n\noriginal=$CONFIGURATION_BUILD_DIR/$FULL_PRODUCT_NAME\n\n# this looks inside the binary to detect which platforms are needed.. \ncopyAU=`nm -g \"$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH\" | grep -i 'AudioUnit' | wc -l`\ncopyVST=`nm -g \"$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH\" | grep -i 'VSTPlugin' | wc -l`\ncopyRTAS=`nm -g \"$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH\" | grep -i 'CProcess' | wc -l`\n\nif [ $copyAU -gt 0 ]; then\n echo \"Copying to AudioUnit folder...\"\n AU=~/Library/Audio/Plug-Ins/Components/$PRODUCT_NAME.component\n if [ -d \"$AU\" ]; then \n rm -r \"$AU\"\n fi\n\n cp -r \"$original\" \"$AU\"\n sed -i \"\" -e 's/TDMwPTul/BNDLPTul/g' \"$AU/Contents/PkgInfo\"\n sed -i \"\" -e 's/TDMw/BNDL/g' \"$AU/Contents/$INFOPLIST_FILE\"\nfi\n\nif [ $copyVST -gt 0 ]; then\n echo \"Copying to VST folder...\"\n VST=~/Library/Audio/Plug-Ins/VST/$PRODUCT_NAME.vst\n if [ -d \"$VST\" ]; then \n rm -r \"$VST\"\n fi\n\n cp -r \"$original\" \"$VST\"\n sed -i \"\" -e 's/TDMwPTul/BNDLPTul/g' \"$VST/Contents/PkgInfo\"\n sed -i \"\" -e 's/TDMw/BNDL/g' \"$VST/Contents/$INFOPLIST_FILE\"\nfi\n\nif [ $copyRTAS -gt 0 ]; then\n echo \"Copying to RTAS folder...\"\n RTAS=/Library/Application\\ Support/Digidesign/Plug-Ins/$PRODUCT_NAME.dpm\n if [ -d \"$RTAS\" ]; then\n rm -r \"$RTAS\"\n fi\n\n cp -r \"$original\" \"$RTAS\"\nfi\n"; }; + 792509270ABF8E6A65E16172 = { isa = PBXNativeTarget; buildConfigurationList = 392E8263441DF125E3215D42; buildPhases = ( + 145D936BBD5425D74172B206, + A79C4026C596A99BB0ADC224, + F0F39FCA8C402F34BB74F6B3, + 9519B014653C694C3456E5A4, + 06539322921079C10A447670 ); buildRules = ( ); dependencies = ( ); name = JuceDemoPlugin; productName = JuceDemoPlugin; productReference = AF721FB8136D2CAA9404AD8D; productInstallPath = "$(HOME)/Library/Audio/Plug-Ins/Components/"; productType = "com.apple.product-type.bundle"; }; + 64CEAC70FBD5AC5BD1D686C9 = { isa = PBXProject; buildConfigurationList = 91EB753864A948DE4421285E; compatibilityVersion = "Xcode 3.0"; hasScannedForEncodings = 0; mainGroup = E1C5E3C67B4A2621AD2D3E05; projectDirPath = ""; projectRoot = ""; targets = ( 792509270ABF8E6A65E16172 ); }; + }; + rootObject = 64CEAC70FBD5AC5BD1D686C9; +} diff --git a/extras/audio plugins/demo/Builds/VisualStudio2005/JuceDemoPlugin.sln b/extras/audio plugins/demo/Builds/VisualStudio2005/JuceDemoPlugin.sln new file mode 100644 index 0000000000..75b36ddb99 --- /dev/null +++ b/extras/audio plugins/demo/Builds/VisualStudio2005/JuceDemoPlugin.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 8.00 +# Visual C++ Express 2005 +Project("{D0B67FB6-D62A-09D8-46A8-2927CB6D2B82}") = "JuceDemoPlugin", "JuceDemoPlugin.vcproj", "{BC07A08E-8205-B220-39D4-B2685FFC59CA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BC07A08E-8205-B220-39D4-B2685FFC59CA}.Debug|Win32.ActiveCfg = Debug|Win32 + {BC07A08E-8205-B220-39D4-B2685FFC59CA}.Debug|Win32.Build.0 = Debug|Win32 + {BC07A08E-8205-B220-39D4-B2685FFC59CA}.Release|Win32.ActiveCfg = Release|Win32 + {BC07A08E-8205-B220-39D4-B2685FFC59CA}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/extras/audio plugins/demo/Builds/VisualStudio2005/JuceDemoPlugin.vcproj b/extras/audio plugins/demo/Builds/VisualStudio2005/JuceDemoPlugin.vcproj new file mode 100644 index 0000000000..a3b74cfca9 --- /dev/null +++ b/extras/audio plugins/demo/Builds/VisualStudio2005/JuceDemoPlugin.vcproj @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extras/audio plugins/demo/Builds/VisualStudio2008/JuceDemoPlugin.sln b/extras/audio plugins/demo/Builds/VisualStudio2008/JuceDemoPlugin.sln new file mode 100644 index 0000000000..fa408cfe71 --- /dev/null +++ b/extras/audio plugins/demo/Builds/VisualStudio2008/JuceDemoPlugin.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C++ Express 2008 +Project("{D0B67FB6-D62A-09D8-46A8-2927CB6D2B82}") = "JuceDemoPlugin", "JuceDemoPlugin.vcproj", "{BC07A08E-8205-B220-39D4-B2685FFC59CA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BC07A08E-8205-B220-39D4-B2685FFC59CA}.Debug|Win32.ActiveCfg = Debug|Win32 + {BC07A08E-8205-B220-39D4-B2685FFC59CA}.Debug|Win32.Build.0 = Debug|Win32 + {BC07A08E-8205-B220-39D4-B2685FFC59CA}.Release|Win32.ActiveCfg = Release|Win32 + {BC07A08E-8205-B220-39D4-B2685FFC59CA}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/extras/audio plugins/demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj b/extras/audio plugins/demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj new file mode 100644 index 0000000000..24634d48bc --- /dev/null +++ b/extras/audio plugins/demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extras/audio plugins/demo/JuceDemoPlugin.jucer b/extras/audio plugins/demo/JuceDemoPlugin.jucer new file mode 100644 index 0000000000..d4b3ca1e57 --- /dev/null +++ b/extras/audio plugins/demo/JuceDemoPlugin.jucer @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/extras/audio plugins/demo/JuceLibraryCode/AppConfig.h b/extras/audio plugins/demo/JuceLibraryCode/AppConfig.h new file mode 100644 index 0000000000..5c3b3e36d0 --- /dev/null +++ b/extras/audio plugins/demo/JuceLibraryCode/AppConfig.h @@ -0,0 +1,37 @@ +/* + + IMPORTANT! This file is auto-generated by the Jucer each time you save your + project - if you alter its contents, your changes may be overwritten! + + If you want to change any of these values, use the Jucer to do so, rather than + editing this file directly! + + Any commented-out settings will fall back to using the default values that + they are given in juce_Config.h + +*/ + +//#define JUCE_FORCE_DEBUG +//#define JUCE_LOG_ASSERTIONS +//#define JUCE_ASIO +//#define JUCE_WASAPI +//#define JUCE_DIRECTSOUND +//#define JUCE_ALSA +#define JUCE_QUICKTIME 0 +//#define JUCE_OPENGL +//#define JUCE_USE_FLAC +//#define JUCE_USE_OGGVORBIS +//#define JUCE_USE_CDBURNER +//#define JUCE_USE_CDREADER +//#define JUCE_USE_CAMERA +//#define JUCE_ENABLE_REPAINT_DEBUGGING +//#define JUCE_USE_XINERAMA +//#define JUCE_USE_XSHM +//#define JUCE_USE_XRENDER +//#define JUCE_PLUGINHOST_VST +//#define JUCE_PLUGINHOST_AU +//#define JUCE_ONLY_BUILD_CORE_LIBRARY +//#define JUCE_WEB_BROWSER +//#define JUCE_SUPPORT_CARBON +//#define JUCE_CHECK_MEMORY_LEAKS +//#define JUCE_CATCH_UNHANDLED_EXCEPTIONS diff --git a/extras/audio plugins/demo/JuceLibraryCode/JuceHeader.h b/extras/audio plugins/demo/JuceLibraryCode/JuceHeader.h new file mode 100644 index 0000000000..b504f0d054 --- /dev/null +++ b/extras/audio plugins/demo/JuceLibraryCode/JuceHeader.h @@ -0,0 +1,26 @@ +/* + + IMPORTANT! This file is auto-generated by the Jucer each time you save your + project - if you alter its contents, your changes may be overwritten! + + This is the header file that your files should include in order to get all the + Juce library headers. You should NOT include juce.h or juce_amalgamated.h directly in + your own source files, because that wouldn't pick up the correct Juce configuration + options for your app. + +*/ + +#ifndef __APPHEADERFILE_9C46E6CC__ +#define __APPHEADERFILE_9C46E6CC__ + +#include "AppConfig.h" +#include "../../../../juce_amalgamated.h" + +namespace ProjectInfo +{ + const char* const projectName = "JuceDemoPlugin"; + const char* const versionString = "1.0.0"; + const int versionNumber = 0x10000; +} + +#endif // __APPHEADERFILE_9C46E6CC__ diff --git a/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode1.cpp b/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode1.cpp new file mode 100644 index 0000000000..548d973509 --- /dev/null +++ b/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode1.cpp @@ -0,0 +1,15 @@ +/* + + IMPORTANT! This file is auto-generated by the Jucer each time you save your + project - if you alter its contents, your changes may be overwritten! + + This file pulls in all the Juce source code, and builds it using the settings + defined in AppConfig.h. + + If you want to change the method by which Juce is linked into your app, use the + Jucer to change it, rather than trying to edit this file directly. + +*/ + +#include "AppConfig.h" +#include "../../../../amalgamation/juce_amalgamated1.cpp" diff --git a/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode1.mm b/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode1.mm new file mode 100644 index 0000000000..548d973509 --- /dev/null +++ b/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode1.mm @@ -0,0 +1,15 @@ +/* + + IMPORTANT! This file is auto-generated by the Jucer each time you save your + project - if you alter its contents, your changes may be overwritten! + + This file pulls in all the Juce source code, and builds it using the settings + defined in AppConfig.h. + + If you want to change the method by which Juce is linked into your app, use the + Jucer to change it, rather than trying to edit this file directly. + +*/ + +#include "AppConfig.h" +#include "../../../../amalgamation/juce_amalgamated1.cpp" diff --git a/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode2.cpp b/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode2.cpp new file mode 100644 index 0000000000..2a4cb09f1f --- /dev/null +++ b/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode2.cpp @@ -0,0 +1,15 @@ +/* + + IMPORTANT! This file is auto-generated by the Jucer each time you save your + project - if you alter its contents, your changes may be overwritten! + + This file pulls in all the Juce source code, and builds it using the settings + defined in AppConfig.h. + + If you want to change the method by which Juce is linked into your app, use the + Jucer to change it, rather than trying to edit this file directly. + +*/ + +#include "AppConfig.h" +#include "../../../../amalgamation/juce_amalgamated2.cpp" diff --git a/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode2.mm b/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode2.mm new file mode 100644 index 0000000000..2a4cb09f1f --- /dev/null +++ b/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode2.mm @@ -0,0 +1,15 @@ +/* + + IMPORTANT! This file is auto-generated by the Jucer each time you save your + project - if you alter its contents, your changes may be overwritten! + + This file pulls in all the Juce source code, and builds it using the settings + defined in AppConfig.h. + + If you want to change the method by which Juce is linked into your app, use the + Jucer to change it, rather than trying to edit this file directly. + +*/ + +#include "AppConfig.h" +#include "../../../../amalgamation/juce_amalgamated2.cpp" diff --git a/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode3.cpp b/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode3.cpp new file mode 100644 index 0000000000..96b6e87d32 --- /dev/null +++ b/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode3.cpp @@ -0,0 +1,15 @@ +/* + + IMPORTANT! This file is auto-generated by the Jucer each time you save your + project - if you alter its contents, your changes may be overwritten! + + This file pulls in all the Juce source code, and builds it using the settings + defined in AppConfig.h. + + If you want to change the method by which Juce is linked into your app, use the + Jucer to change it, rather than trying to edit this file directly. + +*/ + +#include "AppConfig.h" +#include "../../../../amalgamation/juce_amalgamated3.cpp" diff --git a/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode3.mm b/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode3.mm new file mode 100644 index 0000000000..96b6e87d32 --- /dev/null +++ b/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode3.mm @@ -0,0 +1,15 @@ +/* + + IMPORTANT! This file is auto-generated by the Jucer each time you save your + project - if you alter its contents, your changes may be overwritten! + + This file pulls in all the Juce source code, and builds it using the settings + defined in AppConfig.h. + + If you want to change the method by which Juce is linked into your app, use the + Jucer to change it, rather than trying to edit this file directly. + +*/ + +#include "AppConfig.h" +#include "../../../../amalgamation/juce_amalgamated3.cpp" diff --git a/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode4.cpp b/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode4.cpp new file mode 100644 index 0000000000..4d26a62dfe --- /dev/null +++ b/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode4.cpp @@ -0,0 +1,15 @@ +/* + + IMPORTANT! This file is auto-generated by the Jucer each time you save your + project - if you alter its contents, your changes may be overwritten! + + This file pulls in all the Juce source code, and builds it using the settings + defined in AppConfig.h. + + If you want to change the method by which Juce is linked into your app, use the + Jucer to change it, rather than trying to edit this file directly. + +*/ + +#include "AppConfig.h" +#include "../../../../amalgamation/juce_amalgamated4.cpp" diff --git a/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode4.mm b/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode4.mm new file mode 100644 index 0000000000..4d26a62dfe --- /dev/null +++ b/extras/audio plugins/demo/JuceLibraryCode/JuceLibraryCode4.mm @@ -0,0 +1,15 @@ +/* + + IMPORTANT! This file is auto-generated by the Jucer each time you save your + project - if you alter its contents, your changes may be overwritten! + + This file pulls in all the Juce source code, and builds it using the settings + defined in AppConfig.h. + + If you want to change the method by which Juce is linked into your app, use the + Jucer to change it, rather than trying to edit this file directly. + +*/ + +#include "AppConfig.h" +#include "../../../../amalgamation/juce_amalgamated4.cpp" diff --git a/extras/audio plugins/demo/JuceLibraryCode/JucePluginCharacteristics.h b/extras/audio plugins/demo/JuceLibraryCode/JucePluginCharacteristics.h new file mode 100644 index 0000000000..b699d7d7dc --- /dev/null +++ b/extras/audio plugins/demo/JuceLibraryCode/JucePluginCharacteristics.h @@ -0,0 +1,49 @@ +/* + + IMPORTANT! This file is auto-generated by the Jucer each time you save your + project - if you alter its contents, your changes may be overwritten! + + This header file contains configuration options for the plug-in. If you need to change any of + these, it'd be wise to do so using the Jucer, rather than editing this file directly... + +*/ + +#ifndef __PLUGINCHARACTERISTICS_D4EFFF1A__ +#define __PLUGINCHARACTERISTICS_D4EFFF1A__ + +#define JucePlugin_Build_VST 1 +#define JucePlugin_Build_AU 1 +#define JucePlugin_Build_RTAS 0 + +#define JucePlugin_Name "Juce Demo Plugin" +#define JucePlugin_Desc "Juce Demo Plugin" +#define JucePlugin_Manufacturer "Raw Material Software" +#define JucePlugin_ManufacturerCode 'RawM' +#define JucePlugin_PluginCode 'Jcdm' +#define JucePlugin_MaxNumInputChannels 2 +#define JucePlugin_MaxNumOutputChannels 2 +#define JucePlugin_PreferredChannelConfigurations {1, 1}, {2, 2} +#define JucePlugin_IsSynth 0 +#define JucePlugin_WantsMidiInput 1 +#define JucePlugin_ProducesMidiOutput 1 +#define JucePlugin_IsSynth 0 +#define JucePlugin_SilenceInProducesSilenceOut 0 +#define JucePlugin_TailLengthSeconds 0 +#define JucePlugin_EditorRequiresKeyboardFocus 1 +#define JucePlugin_VersionCode 0x10000 +#define JucePlugin_VersionString "1.0.0" +#define JucePlugin_VSTUniqueID JucePlugin_PluginCode +#define JucePlugin_VSTCategory kPlugCategEffect +#define JucePlugin_AUMainType kAudioUnitType_Effect +#define JucePlugin_AUSubType JucePlugin_PluginCode +#define JucePlugin_AUExportPrefix JuceDemoProjectAU +#define JucePlugin_AUExportPrefixQuoted "JuceDemoProjectAU" +#define JucePlugin_AUManufacturerCode JucePlugin_ManufacturerCode +#define JucePlugin_CFBundleIdentifier com.rawmaterialsoftware.JuceDemoPlugin +#define JucePlugin_AUCocoaViewClassName JuceDemoProjectAU_V1 +#define JucePlugin_RTASCategory ePlugInCategory_None +#define JucePlugin_RTASManufacturerCode JucePlugin_ManufacturerCode +#define JucePlugin_RTASProductId JucePlugin_PluginCode +#define JUCE_USE_VSTSDK_2_4 1 + +#endif // __PLUGINCHARACTERISTICS_D4EFFF1A__ diff --git a/extras/audio plugins/demo/Source/PluginEditor.cpp b/extras/audio plugins/demo/Source/PluginEditor.cpp new file mode 100644 index 0000000000..d6a5a64caf --- /dev/null +++ b/extras/audio plugins/demo/Source/PluginEditor.cpp @@ -0,0 +1,170 @@ +/* + ============================================================================== + + This file was auto-generated by the Jucer! + + It contains the basic startup code for a Juce application. + + ============================================================================== +*/ + +#include "PluginProcessor.h" +#include "PluginEditor.h" + +//============================================================================== +JuceDemoPluginAudioProcessorEditor::JuceDemoPluginAudioProcessorEditor (JuceDemoPluginAudioProcessor* ownerFilter) + : AudioProcessorEditor (ownerFilter) +{ + addAndMakeVisible (gainSlider = new Slider ("gain")); + gainSlider->setSliderStyle (Slider::Rotary); + gainSlider->addListener (this); + gainSlider->setRange (0.0, 1.0, 0.01); + Label* l = new Label ("", "Throughput level:"); + l->attachToComponent (gainSlider, false); + l->setFont (Font (11.0f)); + + addAndMakeVisible (delaySlider = new Slider ("delay")); + delaySlider->setSliderStyle (Slider::Rotary); + delaySlider->addListener (this); + delaySlider->setRange (0.0, 1.0, 0.01); + l = new Label ("", "Delay:"); + l->attachToComponent (delaySlider, false); + l->setFont (Font (11.0f)); + + // create and add the midi keyboard component.. + addAndMakeVisible (midiKeyboard + = new MidiKeyboardComponent (ownerFilter->keyboardState, + MidiKeyboardComponent::horizontalKeyboard)); + + // add a label that will display the current timecode and status.. + addAndMakeVisible (infoLabel = new Label (String::empty, String::empty)); + infoLabel->setColour (Label::textColourId, Colours::blue); + + // add the triangular resizer component for the bottom-right of the UI + addAndMakeVisible (resizer = new ResizableCornerComponent (this, &resizeLimits)); + resizeLimits.setSizeLimits (150, 150, 800, 300); + + // set our component's initial size to be the last one that was stored in the filter's settings + setSize (ownerFilter->lastUIWidth, + ownerFilter->lastUIHeight); + + startTimer (50); +} + +JuceDemoPluginAudioProcessorEditor::~JuceDemoPluginAudioProcessorEditor() +{ + deleteAllChildren(); +} + +//============================================================================== +void JuceDemoPluginAudioProcessorEditor::paint (Graphics& g) +{ + g.setGradientFill (ColourGradient (Colours::white, 0, 0, Colours::grey, 0, getHeight(), false)); + g.fillAll(); +} + +void JuceDemoPluginAudioProcessorEditor::resized() +{ + infoLabel->setBounds (10, 4, 400, 25); + gainSlider->setBounds (20, 60, 150, 40); + delaySlider->setBounds (200, 60, 150, 40); + + const int keyboardHeight = 70; + midiKeyboard->setBounds (4, getHeight() - keyboardHeight - 4, getWidth() - 8, keyboardHeight); + + resizer->setBounds (getWidth() - 16, getHeight() - 16, 16, 16); +} + +//============================================================================== +// This timer periodically checks whether any of the filter's parameters have changed... +void JuceDemoPluginAudioProcessorEditor::timerCallback() +{ + JuceDemoPluginAudioProcessor* ourProcessor = getProcessor(); + + AudioPlayHead::CurrentPositionInfo newPos (ourProcessor->lastPosInfo); + + if (lastDisplayedPosition != newPos) + displayPositionInfo (newPos); + + gainSlider->setValue (ourProcessor->gain, false); + delaySlider->setValue (ourProcessor->delay, false); +} + +// This is our SliderListener callback, when the user drags a slider. +void JuceDemoPluginAudioProcessorEditor::sliderValueChanged (Slider* slider) +{ + if (slider == gainSlider) + { + // It's vital to use setParameterNotifyingHost to change any parameters that are automatable + // by the host, rather than just modifying them directly, otherwise the host won't know + // that they've changed. + getProcessor()->setParameterNotifyingHost (JuceDemoPluginAudioProcessor::gainParam, + (float) gainSlider->getValue()); + } + else if (slider == delaySlider) + { + getProcessor()->setParameterNotifyingHost (JuceDemoPluginAudioProcessor::delayParam, + (float) delaySlider->getValue()); + } +} + +//============================================================================== +// quick-and-dirty function to format a timecode string +static const String timeToTimecodeString (const double seconds) +{ + const double absSecs = fabs (seconds); + + const int hours = (int) (absSecs / (60.0 * 60.0)); + const int mins = ((int) (absSecs / 60.0)) % 60; + const int secs = ((int) absSecs) % 60; + + String s; + if (seconds < 0) + s = "-"; + + s << String (hours).paddedLeft ('0', 2) << ":" + << String (mins).paddedLeft ('0', 2) << ":" + << String (secs).paddedLeft ('0', 2) << ":" + << String (roundToInt (absSecs * 1000) % 1000).paddedLeft ('0', 3); + + return s; +} + +// quick-and-dirty function to format a bars/beats string +static const String ppqToBarsBeatsString (double ppq, double lastBarPPQ, int numerator, int denominator) +{ + if (numerator == 0 || denominator == 0) + return "1|1|0"; + + const int ppqPerBar = (numerator * 4 / denominator); + const double beats = (fmod (ppq, ppqPerBar) / ppqPerBar) * numerator; + + const int bar = ((int) ppq) / ppqPerBar + 1; + const int beat = ((int) beats) + 1; + const int ticks = ((int) (fmod (beats, 1.0) * 960.0)); + + String s; + s << bar << '|' << beat << '|' << ticks; + return s; +} + +// Updates the text in our position label. +void JuceDemoPluginAudioProcessorEditor::displayPositionInfo (const AudioPlayHead::CurrentPositionInfo& pos) +{ + lastDisplayedPosition = pos; + String displayText; + displayText.preallocateStorage (64); + + displayText << String (pos.bpm, 2) << " bpm, " + << pos.timeSigNumerator << '/' << pos.timeSigDenominator + << " - " << timeToTimecodeString (pos.timeInSeconds) + << " - " << ppqToBarsBeatsString (pos.ppqPosition, pos.ppqPositionOfLastBarStart, + pos.timeSigNumerator, pos.timeSigDenominator); + + if (pos.isRecording) + displayText << " (recording)"; + else if (pos.isPlaying) + displayText << " (playing)"; + + infoLabel->setText (displayText, false); +} diff --git a/extras/audio plugins/demo/Source/PluginEditor.h b/extras/audio plugins/demo/Source/PluginEditor.h new file mode 100644 index 0000000000..3e260c0f98 --- /dev/null +++ b/extras/audio plugins/demo/Source/PluginEditor.h @@ -0,0 +1,55 @@ +/* + ============================================================================== + + This file was auto-generated by the Jucer! + + It contains the basic startup code for a Juce application. + + ============================================================================== +*/ + +#ifndef __PLUGINEDITOR_H_4ACCBAA__ +#define __PLUGINEDITOR_H_4ACCBAA__ + +#include "../JuceLibraryCode/JuceHeader.h" +#include "../JuceLibraryCode/JucePluginCharacteristics.h" +#include "PluginProcessor.h" + + +//============================================================================== +/** This is the editor component that our filter will display. +*/ +class JuceDemoPluginAudioProcessorEditor : public AudioProcessorEditor, + public SliderListener, + public Timer +{ +public: + JuceDemoPluginAudioProcessorEditor (JuceDemoPluginAudioProcessor* ownerFilter); + ~JuceDemoPluginAudioProcessorEditor(); + + //============================================================================== + void timerCallback(); + void paint (Graphics& g); + void resized(); + void sliderValueChanged (Slider*); + +private: + MidiKeyboardComponent* midiKeyboard; + Label* infoLabel; + Slider* gainSlider; + Slider* delaySlider; + ResizableCornerComponent* resizer; + ComponentBoundsConstrainer resizeLimits; + + AudioPlayHead::CurrentPositionInfo lastDisplayedPosition; + + JuceDemoPluginAudioProcessor* getProcessor() const + { + return static_cast (getAudioProcessor()); + } + + void displayPositionInfo (const AudioPlayHead::CurrentPositionInfo& pos); +}; + + +#endif // __PLUGINEDITOR_H_4ACCBAA__ diff --git a/extras/audio plugins/demo/Source/PluginProcessor.cpp b/extras/audio plugins/demo/Source/PluginProcessor.cpp new file mode 100644 index 0000000000..838a2945b4 --- /dev/null +++ b/extras/audio plugins/demo/Source/PluginProcessor.cpp @@ -0,0 +1,371 @@ +/* + ============================================================================== + + This file was auto-generated by the Jucer! + + It contains the basic startup code for a Juce application. + + ============================================================================== +*/ + +#include "PluginProcessor.h" +#include "PluginEditor.h" + +//============================================================================== +/** A demo synth sound that's just a basic sine wave.. */ +class SineWaveSound : public SynthesiserSound +{ +public: + SineWaveSound() + { + } + + bool appliesToNote (const int midiNoteNumber) { return true; } + bool appliesToChannel (const int midiChannel) { return true; } +}; + +//============================================================================== +/** A simple demo synth voice that just plays a sine wave.. */ +class SineWaveVoice : public SynthesiserVoice +{ +public: + SineWaveVoice() + : angleDelta (0.0), + tailOff (0.0) + { + } + + bool canPlaySound (SynthesiserSound* sound) + { + return dynamic_cast (sound) != 0; + } + + void startNote (const int midiNoteNumber, const float velocity, + SynthesiserSound* sound, const int currentPitchWheelPosition) + { + currentAngle = 0.0; + level = velocity * 0.15; + tailOff = 0.0; + + double cyclesPerSecond = MidiMessage::getMidiNoteInHertz (midiNoteNumber); + double cyclesPerSample = cyclesPerSecond / getSampleRate(); + + angleDelta = cyclesPerSample * 2.0 * double_Pi; + } + + void stopNote (const bool allowTailOff) + { + if (allowTailOff) + { + // start a tail-off by setting this flag. The render callback will pick up on + // this and do a fade out, calling clearCurrentNote() when it's finished. + + if (tailOff == 0.0) // we only need to begin a tail-off if it's not already doing so - the + // stopNote method could be called more than once. + tailOff = 1.0; + } + else + { + // we're being told to stop playing immediately, so reset everything.. + + clearCurrentNote(); + angleDelta = 0.0; + } + } + + void pitchWheelMoved (const int newValue) + { + // can't be bothered implementing this for the demo! + } + + void controllerMoved (const int controllerNumber, const int newValue) + { + // not interested in controllers in this case. + } + + void renderNextBlock (AudioSampleBuffer& outputBuffer, int startSample, int numSamples) + { + if (angleDelta != 0.0) + { + if (tailOff > 0) + { + while (--numSamples >= 0) + { + const float currentSample = (float) (sin (currentAngle) * level * tailOff); + + for (int i = outputBuffer.getNumChannels(); --i >= 0;) + *outputBuffer.getSampleData (i, startSample) += currentSample; + + currentAngle += angleDelta; + ++startSample; + + tailOff *= 0.99; + + if (tailOff <= 0.005) + { + clearCurrentNote(); + + angleDelta = 0.0; + break; + } + } + } + else + { + while (--numSamples >= 0) + { + const float currentSample = (float) (sin (currentAngle) * level); + + for (int i = outputBuffer.getNumChannels(); --i >= 0;) + *outputBuffer.getSampleData (i, startSample) += currentSample; + + currentAngle += angleDelta; + ++startSample; + } + } + } + } + +private: + double currentAngle, angleDelta, level, tailOff; +}; + + +//============================================================================== +JuceDemoPluginAudioProcessor::JuceDemoPluginAudioProcessor() + : delayBuffer (2, 12000) +{ + // Set up some default values.. + gain = 1.0f; + delay = 0.5f; + + lastUIWidth = 400; + lastUIHeight = 200; + + lastPosInfo.resetToDefault(); + delayPosition = 0; + + // Initialise the synth... + for (int i = 4; --i >= 0;) + synth.addVoice (new SineWaveVoice()); // These voices will play our custom sine-wave sounds.. + + synth.addSound (new SineWaveSound()); +} + +JuceDemoPluginAudioProcessor::~JuceDemoPluginAudioProcessor() +{ +} + +//============================================================================== +int JuceDemoPluginAudioProcessor::getNumParameters() +{ + return totalNumParams; +} + +float JuceDemoPluginAudioProcessor::getParameter (int index) +{ + // This method will be called by the host, probably on the audio thread, so + // it's absolutely time-critical. Don't use critical sections or anything + // UI-related, or anything at all that may block in any way! + switch (index) + { + case gainParam: return gain; + case delayParam: return delay; + default: return 0.0f; + } +} + +void JuceDemoPluginAudioProcessor::setParameter (int index, float newValue) +{ + // This method will be called by the host, probably on the audio thread, so + // it's absolutely time-critical. Don't use critical sections or anything + // UI-related, or anything at all that may block in any way! + switch (index) + { + case gainParam: gain = newValue; break; + case delayParam: delay = newValue; break; + default: break; + } +} + +const String JuceDemoPluginAudioProcessor::getParameterName (int index) +{ + switch (index) + { + case gainParam: return "gain"; + case delayParam: return "delay"; + default: break; + } + + return String::empty; +} + +const String JuceDemoPluginAudioProcessor::getParameterText (int index) +{ + return String (getParameter (index), 2); +} + +//============================================================================== +void JuceDemoPluginAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock) +{ + // Use this method as the place to do any pre-playback + // initialisation that you need.. + keyboardState.reset(); + delayBuffer.clear(); +} + +void JuceDemoPluginAudioProcessor::releaseResources() +{ + // When playback stops, you can use this as an opportunity to free up any + // spare memory, etc. + keyboardState.reset(); +} + +void JuceDemoPluginAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages) +{ + const int numSamples = buffer.getNumSamples(); + int channel, dp = 0; + + // Go through the incoming data, and apply our gain to it... + for (channel = 0; channel < getNumInputChannels(); ++channel) + buffer.applyGain (channel, 0, buffer.getNumSamples(), gain); + + // Now pass any incoming midi messages to our keyboard state object, and let it + // add messages to the buffer if the user is clicking on the on-screen keys + keyboardState.processNextMidiBuffer (midiMessages, 0, numSamples, true); + + // and now get the synth to process these midi events and generate its output. + synth.renderNextBlock (buffer, midiMessages, 0, numSamples); + + // Apply our delay effect to the new output.. + for (channel = 0; channel < getNumInputChannels(); ++channel) + { + float* channelData = buffer.getSampleData (channel); + float* delayData = delayBuffer.getSampleData (jmin (channel, delayBuffer.getNumChannels() - 1)); + dp = delayPosition; + + for (int i = 0; i < numSamples; ++i) + { + const float in = channelData[i]; + channelData[i] += delayData[dp]; + delayData[dp] = (delayData[dp] + in) * delay; + if (++dp > delayBuffer.getNumSamples()) + dp = 0; + } + } + + delayPosition = dp; + + // In case we have more outputs than inputs, we'll clear any output + // channels that didn't contain input data, (because these aren't + // guaranteed to be empty - they may contain garbage). + for (int i = getNumInputChannels(); i < getNumOutputChannels(); ++i) + buffer.clear (i, 0, buffer.getNumSamples()); + + // ask the host for the current time so we can display it... + AudioPlayHead::CurrentPositionInfo newTime; + + if (getPlayHead() != 0 && getPlayHead()->getCurrentPosition (newTime)) + { + // Successfully got the current time from the host.. + lastPosInfo = newTime; + } + else + { + // If the host fails to fill-in the current time, we'll just clear it to a default.. + lastPosInfo.resetToDefault(); + } +} + +//============================================================================== +AudioProcessorEditor* JuceDemoPluginAudioProcessor::createEditor() +{ + return new JuceDemoPluginAudioProcessorEditor (this); +} + +//============================================================================== +void JuceDemoPluginAudioProcessor::getStateInformation (MemoryBlock& destData) +{ + // You should use this method to store your parameters in the memory block. + // Here's an example of how you can use XML to make it easy and more robust: + + // Create an outer XML element.. + XmlElement xml ("MYPLUGINSETTINGS"); + + // add some attributes to it.. + xml.setAttribute ("uiWidth", lastUIWidth); + xml.setAttribute ("uiHeight", lastUIHeight); + xml.setAttribute ("gain", gain); + xml.setAttribute ("delay", delay); + + // then use this helper function to stuff it into the binary blob and return it.. + copyXmlToBinary (xml, destData); +} + +void JuceDemoPluginAudioProcessor::setStateInformation (const void* data, int sizeInBytes) +{ + // You should use this method to restore your parameters from this memory block, + // whose contents will have been created by the getStateInformation() call. + + // This getXmlFromBinary() helper function retrieves our XML from the binary blob.. + ScopedPointer xmlState (getXmlFromBinary (data, sizeInBytes)); + + if (xmlState != 0) + { + // make sure that it's actually our type of XML object.. + if (xmlState->hasTagName ("MYPLUGINSETTINGS")) + { + // ok, now pull out our parameters.. + lastUIWidth = xmlState->getIntAttribute ("uiWidth", lastUIWidth); + lastUIHeight = xmlState->getIntAttribute ("uiHeight", lastUIHeight); + + gain = (float) xmlState->getDoubleAttribute ("gain", gain); + delay = (float) xmlState->getDoubleAttribute ("delay", delay); + } + } +} + +const String JuceDemoPluginAudioProcessor::getInputChannelName (const int channelIndex) const +{ + return String (channelIndex + 1); +} + +const String JuceDemoPluginAudioProcessor::getOutputChannelName (const int channelIndex) const +{ + return String (channelIndex + 1); +} + +bool JuceDemoPluginAudioProcessor::isInputChannelStereoPair (int index) const +{ + return true; +} + +bool JuceDemoPluginAudioProcessor::isOutputChannelStereoPair (int index) const +{ + return true; +} + +bool JuceDemoPluginAudioProcessor::acceptsMidi() const +{ +#if JucePlugin_WantsMidiInput + return true; +#else + return false; +#endif +} + +bool JuceDemoPluginAudioProcessor::producesMidi() const +{ +#if JucePlugin_ProducesMidiOutput + return true; +#else + return false; +#endif +} + +//============================================================================== +// This creates new instances of the plugin.. +AudioProcessor* JUCE_CALLTYPE createPluginFilter() +{ + return new JuceDemoPluginAudioProcessor(); +} diff --git a/extras/audio plugins/demo/src/DemoJuceFilter.h b/extras/audio plugins/demo/Source/PluginProcessor.h similarity index 63% rename from extras/audio plugins/demo/src/DemoJuceFilter.h rename to extras/audio plugins/demo/Source/PluginProcessor.h index 88eef9618d..bffe523e7e 100644 --- a/extras/audio plugins/demo/src/DemoJuceFilter.h +++ b/extras/audio plugins/demo/Source/PluginProcessor.h @@ -1,64 +1,45 @@ /* ============================================================================== - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-9 by Raw Material Software Ltd. + This file was auto-generated by the Jucer! - ------------------------------------------------------------------------------ - - JUCE can be redistributed and/or modified under the terms of the GNU General - Public License (Version 2), as published by the Free Software Foundation. - A copy of the license is included in the JUCE distribution, or can be found - online at www.gnu.org/licenses. - - JUCE is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - ------------------------------------------------------------------------------ - - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.rawmaterialsoftware.com/juce for more information. + It contains the basic startup code for a Juce application. ============================================================================== */ -#ifndef DEMOJUCEPLUGINFILTER_H -#define DEMOJUCEPLUGINFILTER_H +#ifndef __PLUGINPROCESSOR_H_526ED7A9__ +#define __PLUGINPROCESSOR_H_526ED7A9__ + +#include "../JuceLibraryCode/JuceHeader.h" +#include "../JuceLibraryCode/JucePluginCharacteristics.h" //============================================================================== /** - A simple plugin filter that just applies a gain change to the audio - passing through it. - */ -class DemoJuceFilter : public AudioProcessor, - public ChangeBroadcaster +class JuceDemoPluginAudioProcessor : public AudioProcessor { public: //============================================================================== - DemoJuceFilter(); - ~DemoJuceFilter(); + JuceDemoPluginAudioProcessor(); + ~JuceDemoPluginAudioProcessor(); //============================================================================== void prepareToPlay (double sampleRate, int samplesPerBlock); void releaseResources(); - void processBlock (AudioSampleBuffer& buffer, - MidiBuffer& midiMessages); + void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages); //============================================================================== AudioProcessorEditor* createEditor(); //============================================================================== - const String getName() const; + const String getName() const { return JucePlugin_Name; } int getNumParameters(); - float getParameter (int index); void setParameter (int index, float newValue); - const String getParameterName (int index); const String getParameterText (int index); @@ -83,7 +64,8 @@ public: //============================================================================== // These properties are public so that our editor component can access them - // - a bit of a hacky way to do it, but it's only a demo! + // A bit of a hacky way to do it, but it's only a demo! Obviously in your own + // code you'll do this much more neatly.. // this is kept up to date with the midi messages that arrive, and the UI component // registers with it so it can represent the incoming messages @@ -98,14 +80,26 @@ public: // resized. int lastUIWidth, lastUIHeight; + //============================================================================== + enum Parameters + { + gainParam = 0, + delayParam, + + totalNumParams + }; + + float gain, delay; + //============================================================================== juce_UseDebuggingNewOperator private: - // this is our gain - the UI and the host can access this by getting/setting - // parameter 0. - float gain; + AudioSampleBuffer delayBuffer; + int delayPosition; + + // the synth! + Synthesiser synth; }; - -#endif +#endif // __PLUGINPROCESSOR_H_526ED7A9__ diff --git a/extras/audio plugins/demo/build/linux/premake.lua b/extras/audio plugins/demo/build/linux/premake.lua deleted file mode 100644 index 6c140cb6a4..0000000000 --- a/extras/audio plugins/demo/build/linux/premake.lua +++ /dev/null @@ -1,56 +0,0 @@ - -project.name = "JucePluginDemo" -project.bindir = "build" -project.libdir = "build" - -project.configs = { "Debug", "Release" } - -package = newpackage() -package.name = "JucePluginDemo" -package.kind = "dll" -package.language = "c++" - -package.objdir = "build/intermediate" -package.config["Debug"].objdir = "build/intermediate/Debug" -package.config["Release"].objdir = "build/intermediate/Release" - -package.config["Debug"].defines = { "LINUX=1", "DEBUG=1", "_DEBUG=1" } -package.config["Debug"].buildoptions = { "-O0 -ggdb -g3 -Wall" } - -package.config["Release"].defines = { "LINUX=1", "NDEBUG=1" } -package.config["Release"].buildoptions = { "-O2 -s" } - -package.includepaths = { - "/usr/include", - "../../../../../", - "/usr/include/vst/source/common", - "/usr/include/vst", - "/usr/include/freetype2", - "../../src" -} - -package.libpaths = { - "../../../../../bin", - "/usr/X11R6/lib/", - "/usr/lib" -} - -package.config["Debug"].links = { - "freetype", "pthread", "rt", "X11", "GL", "GLU", "Xinerama", "asound", "juce_debug" -} - -package.config["Release"].links = { - "freetype", "pthread", "rt", "X11", "GL", "GLU", "Xinerama", "asound", "juce" -} - -package.files = { - matchfiles ( - "../../../wrapper/*.h", - "../../../wrapper/*.cpp", - "../../../wrapper/VST/*.cpp" - ), - matchrecursive ( - "../../src/*.h", - "../../src/*.cpp" - ) -} diff --git a/extras/audio plugins/demo/build/mac/Info.plist b/extras/audio plugins/demo/build/mac/Info.plist deleted file mode 100644 index 67d9c7d962..0000000000 --- a/extras/audio plugins/demo/build/mac/Info.plist +++ /dev/null @@ -1,30 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleGetInfoString - ${VERSION_STR} - CFBundleIconFile - - CFBundleIdentifier - com.rawmaterialsoftware.${PRODUCT_NAME} - CFBundleName - ${PRODUCT_NAME} - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - TDMw - CFBundleShortVersionString - 1.1 - CFBundleSignature - PTul - CFBundleVersion - ${VERSION_NUM} - CSResourcesFileMapped - - - diff --git a/extras/audio plugins/demo/build/mac/JuceDemoPlugin.xcodeproj/project.pbxproj b/extras/audio plugins/demo/build/mac/JuceDemoPlugin.xcodeproj/project.pbxproj deleted file mode 100644 index 445c3d1994..0000000000 --- a/extras/audio plugins/demo/build/mac/JuceDemoPlugin.xcodeproj/project.pbxproj +++ /dev/null @@ -1,733 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 45; - objects = { - -/* Begin PBXBuildFile section */ - 3EEA126E089847F5002C6BFC /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */; }; - 3EEA126F089847F5002C6BFC /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */; }; - 3EEA1270089847F5002C6BFC /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */; }; - 8412B0331048273000072EA3 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8412B0321048273000072EA3 /* CADebugMacros.h */; }; - 843792AA0EFBF14B002A2725 /* DemoEditorComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843792A20EFBF14B002A2725 /* DemoEditorComponent.cpp */; }; - 843792AB0EFBF14B002A2725 /* DemoEditorComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 843792A30EFBF14B002A2725 /* DemoEditorComponent.h */; }; - 843792AC0EFBF14B002A2725 /* DemoJuceFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843792A40EFBF14B002A2725 /* DemoJuceFilter.cpp */; }; - 843792AD0EFBF14B002A2725 /* DemoJuceFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 843792A50EFBF14B002A2725 /* DemoJuceFilter.h */; }; - 843792AE0EFBF14B002A2725 /* includes.h in Headers */ = {isa = PBXBuildFile; fileRef = 843792A60EFBF14B002A2725 /* includes.h */; }; - 843792AF0EFBF14B002A2725 /* juce_AppConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 843792A70EFBF14B002A2725 /* juce_AppConfig.h */; }; - 843792B00EFBF14B002A2725 /* juce_LibrarySource.mm in Sources */ = {isa = PBXBuildFile; fileRef = 843792A80EFBF14B002A2725 /* juce_LibrarySource.mm */; }; - 843792B10EFBF14B002A2725 /* JucePluginCharacteristics.h in Headers */ = {isa = PBXBuildFile; fileRef = 843792A90EFBF14B002A2725 /* JucePluginCharacteristics.h */; }; - 843792B50EFBF175002A2725 /* juce_AU_Resources.r in Rez */ = {isa = PBXBuildFile; fileRef = 843792B30EFBF175002A2725 /* juce_AU_Resources.r */; }; - 843792B60EFBF175002A2725 /* juce_AU_Wrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 843792B40EFBF175002A2725 /* juce_AU_Wrapper.mm */; }; - 8437956F0EFBF323002A2725 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 843795640EFBF323002A2725 /* AudioUnit.framework */; }; - 843795700EFBF323002A2725 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 843795650EFBF323002A2725 /* Cocoa.framework */; }; - 843795710EFBF323002A2725 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 843795660EFBF323002A2725 /* OpenGL.framework */; }; - 843795720EFBF323002A2725 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 843795670EFBF323002A2725 /* IOKit.framework */; }; - 843795730EFBF323002A2725 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 843795680EFBF323002A2725 /* Carbon.framework */; }; - 843795740EFBF323002A2725 /* CoreMIDI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 843795690EFBF323002A2725 /* CoreMIDI.framework */; }; - 843795750EFBF323002A2725 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8437956A0EFBF323002A2725 /* CoreAudio.framework */; }; - 843795760EFBF323002A2725 /* DiscRecording.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8437956B0EFBF323002A2725 /* DiscRecording.framework */; }; - 843795770EFBF323002A2725 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8437956C0EFBF323002A2725 /* QTKit.framework */; }; - 843795780EFBF323002A2725 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8437956D0EFBF323002A2725 /* WebKit.framework */; }; - 843796690EFBF357002A2725 /* AUMIDIBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8437965F0EFBF357002A2725 /* AUMIDIBase.cpp */; }; - 8437966A0EFBF357002A2725 /* AUMIDIBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 843796600EFBF357002A2725 /* AUMIDIBase.h */; }; - 8437966B0EFBF357002A2725 /* AUMIDIEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843796610EFBF357002A2725 /* AUMIDIEffectBase.cpp */; }; - 8437966C0EFBF357002A2725 /* AUMIDIEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 843796620EFBF357002A2725 /* AUMIDIEffectBase.h */; }; - 8437966D0EFBF357002A2725 /* AUOutputBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843796630EFBF357002A2725 /* AUOutputBase.cpp */; }; - 8437966E0EFBF357002A2725 /* AUOutputBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 843796640EFBF357002A2725 /* AUOutputBase.h */; }; - 843796710EFBF357002A2725 /* MusicDeviceBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843796670EFBF357002A2725 /* MusicDeviceBase.cpp */; }; - 843796720EFBF357002A2725 /* MusicDeviceBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 843796680EFBF357002A2725 /* MusicDeviceBase.h */; }; - 8437967F0EFBF5E4002A2725 /* juce_VST_Wrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8437967D0EFBF5E4002A2725 /* juce_VST_Wrapper.cpp */; }; - 843796800EFBF5E4002A2725 /* juce_VST_Wrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8437967E0EFBF5E4002A2725 /* juce_VST_Wrapper.mm */; }; - 843796DC0EFBFD16002A2725 /* juce_RTAS_DigiCode1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843796D50EFBFD16002A2725 /* juce_RTAS_DigiCode1.cpp */; }; - 843796DD0EFBFD16002A2725 /* juce_RTAS_DigiCode2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843796D60EFBFD16002A2725 /* juce_RTAS_DigiCode2.cpp */; }; - 843796DE0EFBFD16002A2725 /* juce_RTAS_DigiCode3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843796D70EFBFD16002A2725 /* juce_RTAS_DigiCode3.cpp */; }; - 843796DF0EFBFD16002A2725 /* juce_RTAS_DigiCode_Header.h in Headers */ = {isa = PBXBuildFile; fileRef = 843796D80EFBFD16002A2725 /* juce_RTAS_DigiCode_Header.h */; }; - 843796E00EFBFD16002A2725 /* juce_RTAS_MacResources.r in Rez */ = {isa = PBXBuildFile; fileRef = 843796D90EFBFD16002A2725 /* juce_RTAS_MacResources.r */; }; - 843796E10EFBFD16002A2725 /* juce_RTAS_MacUtilities.mm in Sources */ = {isa = PBXBuildFile; fileRef = 843796DA0EFBFD16002A2725 /* juce_RTAS_MacUtilities.mm */; }; - 843796E20EFBFD16002A2725 /* juce_RTAS_Wrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843796DB0EFBFD16002A2725 /* juce_RTAS_Wrapper.cpp */; }; - 8473149910663AB2001B84CC /* libPluginLibrary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8473149610663A94001B84CC /* libPluginLibrary.a */; }; - 84978759103561A60020003B /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84978758103561A60020003B /* AudioToolbox.framework */; }; - 84D3AB5F0FCC744600EA8080 /* AUCarbonViewBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84D3AB5E0FCC744600EA8080 /* AUCarbonViewBase.cpp */; }; - 84D3AB630FCC749100EA8080 /* AUCarbonViewBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D3AB620FCC749100EA8080 /* AUCarbonViewBase.h */; }; - 84D3AB670FCC74B300EA8080 /* CarbonEventHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84D3AB650FCC74B300EA8080 /* CarbonEventHandler.cpp */; }; - 84D3AB680FCC74B300EA8080 /* CarbonEventHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D3AB660FCC74B300EA8080 /* CarbonEventHandler.h */; }; - 84D3AB6C0FCC74DA00EA8080 /* AUCarbonViewControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84D3AB6A0FCC74DA00EA8080 /* AUCarbonViewControl.cpp */; }; - 84D3AB6D0FCC74DA00EA8080 /* AUCarbonViewControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D3AB6B0FCC74DA00EA8080 /* AUCarbonViewControl.h */; }; - 84D3AB700FCC74F400EA8080 /* AUCarbonViewDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84D3AB6F0FCC74F400EA8080 /* AUCarbonViewDispatch.cpp */; }; - 84D3AB740FCC759700EA8080 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D3AB730FCC759700EA8080 /* AUViewLocalizedStringKeys.h */; }; - 8BA05AAE072073D300365D66 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A7F072073D200365D66 /* AUBase.cpp */; }; - 8BA05AAF072073D300365D66 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A80072073D200365D66 /* AUBase.h */; }; - 8BA05AB0072073D300365D66 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A81072073D200365D66 /* AUDispatch.cpp */; }; - 8BA05AB1072073D300365D66 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A82072073D200365D66 /* AUDispatch.h */; }; - 8BA05AB2072073D300365D66 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A83072073D200365D66 /* AUInputElement.cpp */; }; - 8BA05AB3072073D300365D66 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A84072073D200365D66 /* AUInputElement.h */; }; - 8BA05AB4072073D300365D66 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A85072073D200365D66 /* AUOutputElement.cpp */; }; - 8BA05AB5072073D300365D66 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A86072073D200365D66 /* AUOutputElement.h */; }; - 8BA05AB7072073D300365D66 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A88072073D200365D66 /* AUScopeElement.cpp */; }; - 8BA05AB8072073D300365D66 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A89072073D200365D66 /* AUScopeElement.h */; }; - 8BA05AB9072073D300365D66 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A8A072073D200365D66 /* ComponentBase.cpp */; }; - 8BA05ABA072073D300365D66 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A8B072073D200365D66 /* ComponentBase.h */; }; - 8BA05AC6072073D300365D66 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */; }; - 8BA05AC7072073D300365D66 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A9B072073D200365D66 /* AUEffectBase.h */; }; - 8BA05AD2072073D300365D66 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AA7072073D200365D66 /* AUBuffer.cpp */; }; - 8BA05AD3072073D300365D66 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AA8072073D200365D66 /* AUBuffer.h */; }; - 8BA05AD4072073D300365D66 /* AUDebugDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */; }; - 8BA05AD5072073D300365D66 /* AUDebugDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */; }; - 8BA05AD6072073D300365D66 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */; }; - 8BA05AD7072073D300365D66 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */; }; - 8BA05AD8072073D300365D66 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */; }; - 8BA05AE50720742100365D66 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */; }; - 8BA05AE60720742100365D66 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */; }; - 8BA05AE70720742100365D66 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AE10720742100365D66 /* CAMutex.cpp */; }; - 8BA05AE80720742100365D66 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE20720742100365D66 /* CAMutex.h */; }; - 8BA05AE90720742100365D66 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */; }; - 8BA05AEA0720742100365D66 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */; }; - 8BA05B070720754400365D66 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05B050720754400365D66 /* CAAUParameter.cpp */; }; - 8BA05B080720754400365D66 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05B060720754400365D66 /* CAAUParameter.h */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 8473149510663A94001B84CC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 8473148E10663A94001B84CC /* PluginLibrary.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = B65B09B30860FB0800FE2E6A; - remoteInfo = "Plugin Library"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = ""; }; - 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = ""; }; - 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = ""; }; - 8412B0321048273000072EA3 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = ""; }; - 843792A20EFBF14B002A2725 /* DemoEditorComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DemoEditorComponent.cpp; path = ../../src/DemoEditorComponent.cpp; sourceTree = SOURCE_ROOT; }; - 843792A30EFBF14B002A2725 /* DemoEditorComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DemoEditorComponent.h; path = ../../src/DemoEditorComponent.h; sourceTree = SOURCE_ROOT; }; - 843792A40EFBF14B002A2725 /* DemoJuceFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DemoJuceFilter.cpp; path = ../../src/DemoJuceFilter.cpp; sourceTree = SOURCE_ROOT; }; - 843792A50EFBF14B002A2725 /* DemoJuceFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DemoJuceFilter.h; path = ../../src/DemoJuceFilter.h; sourceTree = SOURCE_ROOT; }; - 843792A60EFBF14B002A2725 /* includes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = includes.h; path = ../../src/includes.h; sourceTree = SOURCE_ROOT; }; - 843792A70EFBF14B002A2725 /* juce_AppConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = juce_AppConfig.h; path = ../../src/juce_AppConfig.h; sourceTree = SOURCE_ROOT; }; - 843792A80EFBF14B002A2725 /* juce_LibrarySource.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; name = juce_LibrarySource.mm; path = ../../src/juce_LibrarySource.mm; sourceTree = SOURCE_ROOT; }; - 843792A90EFBF14B002A2725 /* JucePluginCharacteristics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JucePluginCharacteristics.h; path = ../../src/JucePluginCharacteristics.h; sourceTree = SOURCE_ROOT; }; - 843792B30EFBF175002A2725 /* juce_AU_Resources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; name = juce_AU_Resources.r; path = ../../../wrapper/AU/juce_AU_Resources.r; sourceTree = SOURCE_ROOT; }; - 843792B40EFBF175002A2725 /* juce_AU_Wrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 2; name = juce_AU_Wrapper.mm; path = ../../../wrapper/AU/juce_AU_Wrapper.mm; sourceTree = SOURCE_ROOT; }; - 843795640EFBF323002A2725 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = ""; }; - 843795650EFBF323002A2725 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 843795660EFBF323002A2725 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; - 843795670EFBF323002A2725 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; - 843795680EFBF323002A2725 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; - 843795690EFBF323002A2725 /* CoreMIDI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = /System/Library/Frameworks/CoreMIDI.framework; sourceTree = ""; }; - 8437956A0EFBF323002A2725 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; - 8437956B0EFBF323002A2725 /* DiscRecording.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = /System/Library/Frameworks/DiscRecording.framework; sourceTree = ""; }; - 8437956C0EFBF323002A2725 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = ""; }; - 8437956D0EFBF323002A2725 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = /System/Library/Frameworks/WebKit.framework; sourceTree = ""; }; - 8437965F0EFBF357002A2725 /* AUMIDIBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUMIDIBase.cpp; sourceTree = ""; }; - 843796600EFBF357002A2725 /* AUMIDIBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIBase.h; sourceTree = ""; }; - 843796610EFBF357002A2725 /* AUMIDIEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUMIDIEffectBase.cpp; sourceTree = ""; }; - 843796620EFBF357002A2725 /* AUMIDIEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIEffectBase.h; sourceTree = ""; }; - 843796630EFBF357002A2725 /* AUOutputBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBase.cpp; sourceTree = ""; }; - 843796640EFBF357002A2725 /* AUOutputBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBase.h; sourceTree = ""; }; - 843796670EFBF357002A2725 /* MusicDeviceBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MusicDeviceBase.cpp; sourceTree = ""; }; - 843796680EFBF357002A2725 /* MusicDeviceBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MusicDeviceBase.h; sourceTree = ""; }; - 8437967D0EFBF5E4002A2725 /* juce_VST_Wrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = juce_VST_Wrapper.cpp; path = ../../../wrapper/VST/juce_VST_Wrapper.cpp; sourceTree = SOURCE_ROOT; }; - 8437967E0EFBF5E4002A2725 /* juce_VST_Wrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 2; name = juce_VST_Wrapper.mm; path = ../../../wrapper/VST/juce_VST_Wrapper.mm; sourceTree = SOURCE_ROOT; }; - 843796D50EFBFD16002A2725 /* juce_RTAS_DigiCode1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode1.cpp; path = ../../../wrapper/RTAS/juce_RTAS_DigiCode1.cpp; sourceTree = SOURCE_ROOT; }; - 843796D60EFBFD16002A2725 /* juce_RTAS_DigiCode2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode2.cpp; path = ../../../wrapper/RTAS/juce_RTAS_DigiCode2.cpp; sourceTree = SOURCE_ROOT; }; - 843796D70EFBFD16002A2725 /* juce_RTAS_DigiCode3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode3.cpp; path = ../../../wrapper/RTAS/juce_RTAS_DigiCode3.cpp; sourceTree = SOURCE_ROOT; }; - 843796D80EFBFD16002A2725 /* juce_RTAS_DigiCode_Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = juce_RTAS_DigiCode_Header.h; path = ../../../wrapper/RTAS/juce_RTAS_DigiCode_Header.h; sourceTree = SOURCE_ROOT; }; - 843796D90EFBFD16002A2725 /* juce_RTAS_MacResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; name = juce_RTAS_MacResources.r; path = ../../../wrapper/RTAS/juce_RTAS_MacResources.r; sourceTree = SOURCE_ROOT; }; - 843796DA0EFBFD16002A2725 /* juce_RTAS_MacUtilities.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_RTAS_MacUtilities.mm; path = ../../../wrapper/RTAS/juce_RTAS_MacUtilities.mm; sourceTree = SOURCE_ROOT; }; - 843796DB0EFBFD16002A2725 /* juce_RTAS_Wrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_Wrapper.cpp; path = ../../../wrapper/RTAS/juce_RTAS_Wrapper.cpp; sourceTree = SOURCE_ROOT; }; - 843796F40EFC0102002A2725 /* CommonDebugSettings.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CommonDebugSettings.xcconfig; path = /Users/jules/SDKs/PT_80_SDK/AlturaPorts/TDMPlugIns/common/Mac/CommonDebugSettings.xcconfig; sourceTree = ""; }; - 843796F50EFC0102002A2725 /* CommonReleaseSettings.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CommonReleaseSettings.xcconfig; path = /Users/jules/SDKs/PT_80_SDK/AlturaPorts/TDMPlugIns/common/Mac/CommonReleaseSettings.xcconfig; sourceTree = ""; }; - 8473148E10663A94001B84CC /* PluginLibrary.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = PluginLibrary.xcodeproj; path = /Users/jules/SDKs/PT_80_SDK/AlturaPorts/TDMPlugIns/PlugInLibrary/MacBuild/PluginLibrary.xcodeproj; sourceTree = ""; }; - 84978758103561A60020003B /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; - 84D3AB5E0FCC744600EA8080 /* AUCarbonViewBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AUCarbonViewBase.cpp; path = AUCarbonViewBase/AUCarbonViewBase.cpp; sourceTree = ""; }; - 84D3AB620FCC749100EA8080 /* AUCarbonViewBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AUCarbonViewBase.h; path = AUCarbonViewBase/AUCarbonViewBase.h; sourceTree = ""; }; - 84D3AB650FCC74B300EA8080 /* CarbonEventHandler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CarbonEventHandler.cpp; path = AUCarbonViewBase/CarbonEventHandler.cpp; sourceTree = ""; }; - 84D3AB660FCC74B300EA8080 /* CarbonEventHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CarbonEventHandler.h; path = AUCarbonViewBase/CarbonEventHandler.h; sourceTree = ""; }; - 84D3AB6A0FCC74DA00EA8080 /* AUCarbonViewControl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AUCarbonViewControl.cpp; path = AUCarbonViewBase/AUCarbonViewControl.cpp; sourceTree = ""; }; - 84D3AB6B0FCC74DA00EA8080 /* AUCarbonViewControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AUCarbonViewControl.h; path = AUCarbonViewBase/AUCarbonViewControl.h; sourceTree = ""; }; - 84D3AB6F0FCC74F400EA8080 /* AUCarbonViewDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AUCarbonViewDispatch.cpp; path = AUCarbonViewBase/AUCarbonViewDispatch.cpp; sourceTree = ""; }; - 84D3AB730FCC759700EA8080 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AUViewLocalizedStringKeys.h; path = AUViewBase/AUViewLocalizedStringKeys.h; sourceTree = ""; }; - 8BA05A7F072073D200365D66 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = ""; }; - 8BA05A80072073D200365D66 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = ""; }; - 8BA05A81072073D200365D66 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = ""; }; - 8BA05A82072073D200365D66 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = ""; }; - 8BA05A83072073D200365D66 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = ""; }; - 8BA05A84072073D200365D66 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = ""; }; - 8BA05A85072073D200365D66 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = ""; }; - 8BA05A86072073D200365D66 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = ""; }; - 8BA05A87072073D200365D66 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = ""; }; - 8BA05A88072073D200365D66 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = ""; }; - 8BA05A89072073D200365D66 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = ""; }; - 8BA05A8A072073D200365D66 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = ""; }; - 8BA05A8B072073D200365D66 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = ""; }; - 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = ""; }; - 8BA05A9B072073D200365D66 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = ""; }; - 8BA05AA7072073D200365D66 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = ""; }; - 8BA05AA8072073D200365D66 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = ""; }; - 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDebugDispatcher.cpp; sourceTree = ""; }; - 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDebugDispatcher.h; sourceTree = ""; }; - 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = ""; }; - 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = ""; }; - 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = ""; }; - 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = ""; }; - 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = ""; }; - 8BA05AE10720742100365D66 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = ""; }; - 8BA05AE20720742100365D66 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = ""; }; - 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = ""; }; - 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = ""; }; - 8BA05B050720754400365D66 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = ""; }; - 8BA05B060720754400365D66 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = ""; }; - 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 8D01CCD20486CAD60068D4B7 /* JuceDemoPlugin.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = JuceDemoPlugin.component; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D01CCCD0486CAD60068D4B7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8473149910663AB2001B84CC /* libPluginLibrary.a in Frameworks */, - 8437956F0EFBF323002A2725 /* AudioUnit.framework in Frameworks */, - 843795700EFBF323002A2725 /* Cocoa.framework in Frameworks */, - 843795710EFBF323002A2725 /* OpenGL.framework in Frameworks */, - 843795720EFBF323002A2725 /* IOKit.framework in Frameworks */, - 843795730EFBF323002A2725 /* Carbon.framework in Frameworks */, - 843795740EFBF323002A2725 /* CoreMIDI.framework in Frameworks */, - 843795750EFBF323002A2725 /* CoreAudio.framework in Frameworks */, - 843795760EFBF323002A2725 /* DiscRecording.framework in Frameworks */, - 843795770EFBF323002A2725 /* QTKit.framework in Frameworks */, - 843795780EFBF323002A2725 /* WebKit.framework in Frameworks */, - 84978759103561A60020003B /* AudioToolbox.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 089C166AFE841209C02AAC07 /* JuceDemoPlugin */ = { - isa = PBXGroup; - children = ( - 843796F40EFC0102002A2725 /* CommonDebugSettings.xcconfig */, - 843796F50EFC0102002A2725 /* CommonReleaseSettings.xcconfig */, - 08FB77ADFE841716C02AAC07 /* Source */, - 089C167CFE841241C02AAC07 /* Resources */, - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, - 19C28FB4FE9D528D11CA2CBB /* Products */, - ); - name = JuceDemoPlugin; - sourceTree = ""; - }; - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 8473148E10663A94001B84CC /* PluginLibrary.xcodeproj */, - 843795640EFBF323002A2725 /* AudioUnit.framework */, - 84978758103561A60020003B /* AudioToolbox.framework */, - 843795650EFBF323002A2725 /* Cocoa.framework */, - 843795660EFBF323002A2725 /* OpenGL.framework */, - 843795670EFBF323002A2725 /* IOKit.framework */, - 843795680EFBF323002A2725 /* Carbon.framework */, - 843795690EFBF323002A2725 /* CoreMIDI.framework */, - 8437956A0EFBF323002A2725 /* CoreAudio.framework */, - 8437956B0EFBF323002A2725 /* DiscRecording.framework */, - 8437956C0EFBF323002A2725 /* QTKit.framework */, - 8437956D0EFBF323002A2725 /* WebKit.framework */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C167CFE841241C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8D01CCD10486CAD60068D4B7 /* Info.plist */, - ); - name = Resources; - sourceTree = ""; - }; - 08FB77ADFE841716C02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - 8437929D0EFBF08E002A2725 /* Filter */, - 8437929E0EFBF098002A2725 /* Wrapper Code */, - ); - name = Source; - sourceTree = ""; - }; - 19C28FB4FE9D528D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D01CCD20486CAD60068D4B7 /* JuceDemoPlugin.component */, - ); - name = Products; - sourceTree = ""; - }; - 8437929D0EFBF08E002A2725 /* Filter */ = { - isa = PBXGroup; - children = ( - 843792A20EFBF14B002A2725 /* DemoEditorComponent.cpp */, - 843792A30EFBF14B002A2725 /* DemoEditorComponent.h */, - 843792A40EFBF14B002A2725 /* DemoJuceFilter.cpp */, - 843792A50EFBF14B002A2725 /* DemoJuceFilter.h */, - 843792A60EFBF14B002A2725 /* includes.h */, - 843792A70EFBF14B002A2725 /* juce_AppConfig.h */, - 843792A80EFBF14B002A2725 /* juce_LibrarySource.mm */, - 843792A90EFBF14B002A2725 /* JucePluginCharacteristics.h */, - ); - name = Filter; - sourceTree = ""; - }; - 8437929E0EFBF098002A2725 /* Wrapper Code */ = { - isa = PBXGroup; - children = ( - 843796D40EFBFCE3002A2725 /* Juce RTAS Wrapper */, - 8437967C0EFBF5C6002A2725 /* Juce VST Wrapper */, - 843792B20EFBF157002A2725 /* Juce AU Wrapper */, - 8BA05AEB0720742700365D66 /* PublicUtility */, - 8BA05A7D072073D200365D66 /* AUPublic */, - ); - name = "Wrapper Code"; - sourceTree = ""; - }; - 843792B20EFBF157002A2725 /* Juce AU Wrapper */ = { - isa = PBXGroup; - children = ( - 843792B30EFBF175002A2725 /* juce_AU_Resources.r */, - 843792B40EFBF175002A2725 /* juce_AU_Wrapper.mm */, - ); - name = "Juce AU Wrapper"; - sourceTree = ""; - }; - 8437967C0EFBF5C6002A2725 /* Juce VST Wrapper */ = { - isa = PBXGroup; - children = ( - 8437967D0EFBF5E4002A2725 /* juce_VST_Wrapper.cpp */, - 8437967E0EFBF5E4002A2725 /* juce_VST_Wrapper.mm */, - ); - name = "Juce VST Wrapper"; - sourceTree = ""; - }; - 843796D40EFBFCE3002A2725 /* Juce RTAS Wrapper */ = { - isa = PBXGroup; - children = ( - 843796D50EFBFD16002A2725 /* juce_RTAS_DigiCode1.cpp */, - 843796D60EFBFD16002A2725 /* juce_RTAS_DigiCode2.cpp */, - 843796D70EFBFD16002A2725 /* juce_RTAS_DigiCode3.cpp */, - 843796D80EFBFD16002A2725 /* juce_RTAS_DigiCode_Header.h */, - 843796D90EFBFD16002A2725 /* juce_RTAS_MacResources.r */, - 843796DA0EFBFD16002A2725 /* juce_RTAS_MacUtilities.mm */, - 843796DB0EFBFD16002A2725 /* juce_RTAS_Wrapper.cpp */, - ); - name = "Juce RTAS Wrapper"; - sourceTree = ""; - }; - 8473148F10663A94001B84CC /* Products */ = { - isa = PBXGroup; - children = ( - 8473149610663A94001B84CC /* libPluginLibrary.a */, - ); - name = Products; - sourceTree = ""; - }; - 84D3AB5D0FCC741E00EA8080 /* AUCarbonViewBase */ = { - isa = PBXGroup; - children = ( - 84D3AB6F0FCC74F400EA8080 /* AUCarbonViewDispatch.cpp */, - 84D3AB6A0FCC74DA00EA8080 /* AUCarbonViewControl.cpp */, - 84D3AB6B0FCC74DA00EA8080 /* AUCarbonViewControl.h */, - 84D3AB650FCC74B300EA8080 /* CarbonEventHandler.cpp */, - 84D3AB660FCC74B300EA8080 /* CarbonEventHandler.h */, - 84D3AB5E0FCC744600EA8080 /* AUCarbonViewBase.cpp */, - 84D3AB620FCC749100EA8080 /* AUCarbonViewBase.h */, - ); - name = AUCarbonViewBase; - sourceTree = ""; - }; - 84D3AB720FCC758200EA8080 /* AUViewBase */ = { - isa = PBXGroup; - children = ( - 84D3AB730FCC759700EA8080 /* AUViewLocalizedStringKeys.h */, - ); - name = AUViewBase; - sourceTree = ""; - }; - 8BA05A7D072073D200365D66 /* AUPublic */ = { - isa = PBXGroup; - children = ( - 84D3AB720FCC758200EA8080 /* AUViewBase */, - 84D3AB5D0FCC741E00EA8080 /* AUCarbonViewBase */, - 8BA05A7E072073D200365D66 /* AUBase */, - 8BA05A99072073D200365D66 /* OtherBases */, - 8BA05AA6072073D200365D66 /* Utility */, - ); - name = AUPublic; - path = Extras/CoreAudio/AudioUnits/AUPublic; - sourceTree = DEVELOPER_DIR; - }; - 8BA05A7E072073D200365D66 /* AUBase */ = { - isa = PBXGroup; - children = ( - 8BA05A7F072073D200365D66 /* AUBase.cpp */, - 8BA05A80072073D200365D66 /* AUBase.h */, - 8BA05A81072073D200365D66 /* AUDispatch.cpp */, - 8BA05A82072073D200365D66 /* AUDispatch.h */, - 8BA05A83072073D200365D66 /* AUInputElement.cpp */, - 8BA05A84072073D200365D66 /* AUInputElement.h */, - 8BA05A85072073D200365D66 /* AUOutputElement.cpp */, - 8BA05A86072073D200365D66 /* AUOutputElement.h */, - 8BA05A87072073D200365D66 /* AUResources.r */, - 8BA05A88072073D200365D66 /* AUScopeElement.cpp */, - 8BA05A89072073D200365D66 /* AUScopeElement.h */, - 8BA05A8A072073D200365D66 /* ComponentBase.cpp */, - 8BA05A8B072073D200365D66 /* ComponentBase.h */, - ); - path = AUBase; - sourceTree = ""; - }; - 8BA05A99072073D200365D66 /* OtherBases */ = { - isa = PBXGroup; - children = ( - 8437965F0EFBF357002A2725 /* AUMIDIBase.cpp */, - 843796600EFBF357002A2725 /* AUMIDIBase.h */, - 843796610EFBF357002A2725 /* AUMIDIEffectBase.cpp */, - 843796620EFBF357002A2725 /* AUMIDIEffectBase.h */, - 843796630EFBF357002A2725 /* AUOutputBase.cpp */, - 843796640EFBF357002A2725 /* AUOutputBase.h */, - 843796670EFBF357002A2725 /* MusicDeviceBase.cpp */, - 843796680EFBF357002A2725 /* MusicDeviceBase.h */, - 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */, - 8BA05A9B072073D200365D66 /* AUEffectBase.h */, - ); - path = OtherBases; - sourceTree = ""; - }; - 8BA05AA6072073D200365D66 /* Utility */ = { - isa = PBXGroup; - children = ( - 8BA05AA7072073D200365D66 /* AUBuffer.cpp */, - 8BA05AA8072073D200365D66 /* AUBuffer.h */, - 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */, - 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */, - 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */, - 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */, - 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */, - ); - path = Utility; - sourceTree = ""; - }; - 8BA05AEB0720742700365D66 /* PublicUtility */ = { - isa = PBXGroup; - children = ( - 8412B0321048273000072EA3 /* CADebugMacros.h */, - 8BA05B050720754400365D66 /* CAAUParameter.cpp */, - 8BA05B060720754400365D66 /* CAAUParameter.h */, - 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */, - 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */, - 8BA05AE10720742100365D66 /* CAMutex.cpp */, - 8BA05AE20720742100365D66 /* CAMutex.h */, - 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */, - 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */, - 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */, - 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */, - 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */, - ); - name = PublicUtility; - path = Extras/CoreAudio/PublicUtility; - sourceTree = DEVELOPER_DIR; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8D01CCC70486CAD60068D4B7 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 8BA05AAF072073D300365D66 /* AUBase.h in Headers */, - 8BA05AB1072073D300365D66 /* AUDispatch.h in Headers */, - 8BA05AB3072073D300365D66 /* AUInputElement.h in Headers */, - 8BA05AB5072073D300365D66 /* AUOutputElement.h in Headers */, - 8BA05AB8072073D300365D66 /* AUScopeElement.h in Headers */, - 8BA05ABA072073D300365D66 /* ComponentBase.h in Headers */, - 8BA05AC7072073D300365D66 /* AUEffectBase.h in Headers */, - 8BA05AD3072073D300365D66 /* AUBuffer.h in Headers */, - 8BA05AD5072073D300365D66 /* AUDebugDispatcher.h in Headers */, - 8BA05AD6072073D300365D66 /* AUInputFormatConverter.h in Headers */, - 8BA05AD7072073D300365D66 /* AUSilentTimeout.h in Headers */, - 8BA05AD8072073D300365D66 /* AUTimestampGenerator.h in Headers */, - 8BA05AE60720742100365D66 /* CAAudioChannelLayout.h in Headers */, - 8BA05AE80720742100365D66 /* CAMutex.h in Headers */, - 8BA05AEA0720742100365D66 /* CAStreamBasicDescription.h in Headers */, - 8BA05B080720754400365D66 /* CAAUParameter.h in Headers */, - 3EEA126F089847F5002C6BFC /* CAVectorUnit.h in Headers */, - 3EEA1270089847F5002C6BFC /* CAVectorUnitTypes.h in Headers */, - 843792AB0EFBF14B002A2725 /* DemoEditorComponent.h in Headers */, - 843792AD0EFBF14B002A2725 /* DemoJuceFilter.h in Headers */, - 843792AE0EFBF14B002A2725 /* includes.h in Headers */, - 843792AF0EFBF14B002A2725 /* juce_AppConfig.h in Headers */, - 843792B10EFBF14B002A2725 /* JucePluginCharacteristics.h in Headers */, - 8437966A0EFBF357002A2725 /* AUMIDIBase.h in Headers */, - 8437966C0EFBF357002A2725 /* AUMIDIEffectBase.h in Headers */, - 8437966E0EFBF357002A2725 /* AUOutputBase.h in Headers */, - 843796720EFBF357002A2725 /* MusicDeviceBase.h in Headers */, - 843796DF0EFBFD16002A2725 /* juce_RTAS_DigiCode_Header.h in Headers */, - 84D3AB630FCC749100EA8080 /* AUCarbonViewBase.h in Headers */, - 84D3AB680FCC74B300EA8080 /* CarbonEventHandler.h in Headers */, - 84D3AB6D0FCC74DA00EA8080 /* AUCarbonViewControl.h in Headers */, - 84D3AB740FCC759700EA8080 /* AUViewLocalizedStringKeys.h in Headers */, - 8412B0331048273000072EA3 /* CADebugMacros.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8D01CCC60486CAD60068D4B7 /* JuceDemoPlugin */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "JuceDemoPlugin" */; - buildPhases = ( - 8D01CCC70486CAD60068D4B7 /* Headers */, - 8D01CCC90486CAD60068D4B7 /* Resources */, - 8D01CCCB0486CAD60068D4B7 /* Sources */, - 8D01CCCD0486CAD60068D4B7 /* Frameworks */, - 8D01CCCF0486CAD60068D4B7 /* Rez */, - 847A7D6510694C5500DD8999 /* Copy into the different plugin folders */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = JuceDemoPlugin; - productInstallPath = "$(HOME)/Library/Bundles"; - productName = JuceDemoPlugin; - productReference = 8D01CCD20486CAD60068D4B7 /* JuceDemoPlugin.component */; - productType = "com.apple.product-type.bundle"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 089C1669FE841209C02AAC07 /* Project object */ = { - isa = PBXProject; - buildConfigurationList = 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "JuceDemoPlugin" */; - compatibilityVersion = "Xcode 3.1"; - hasScannedForEncodings = 1; - mainGroup = 089C166AFE841209C02AAC07 /* JuceDemoPlugin */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = 8473148F10663A94001B84CC /* Products */; - ProjectRef = 8473148E10663A94001B84CC /* PluginLibrary.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8D01CCC60486CAD60068D4B7 /* JuceDemoPlugin */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - 8473149610663A94001B84CC /* libPluginLibrary.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libPluginLibrary.a; - remoteRef = 8473149510663A94001B84CC /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D01CCC90486CAD60068D4B7 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXRezBuildPhase section */ - 8D01CCCF0486CAD60068D4B7 /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - 843792B50EFBF175002A2725 /* juce_AU_Resources.r in Rez */, - 843796E00EFBFD16002A2725 /* juce_RTAS_MacResources.r in Rez */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXRezBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 847A7D6510694C5500DD8999 /* Copy into the different plugin folders */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy into the different plugin folders"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\n# This script takes the build product and copies it to the AU, VST, and RTAS folders, depending on \n# which plugin types you've built\n\noriginal=$CONFIGURATION_BUILD_DIR/$FULL_PRODUCT_NAME\n\n# this looks inside the binary to detect which platforms are needed.. \ncopyAU=`nm -g \"$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH\" | grep -i 'AudioUnit' | wc -l`\ncopyVST=`nm -g \"$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH\" | grep -i 'VSTPlugin' | wc -l`\ncopyRTAS=`nm -g \"$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH\" | grep -i 'CProcess' | wc -l`\n\nif [ $copyAU -gt 0 ]; then\n echo \"Copying to AudioUnit folder...\"\n AU=~/Library/Audio/Plug-Ins/Components/$PRODUCT_NAME.component\n if [ -d \"$AU\" ]; then \n rm -r \"$AU\"\n fi\n\n cp -r \"$original\" \"$AU\"\n sed -i \"\" -e 's/TDMwPTul/BNDLPTul/g' \"$AU/Contents/PkgInfo\"\n sed -i \"\" -e 's/TDMw/BNDL/g' \"$AU/Contents/$INFOPLIST_FILE\"\nfi\n\nif [ $copyVST -gt 0 ]; then\n echo \"Copying to VST folder...\"\n VST=~/Library/Audio/Plug-Ins/VST/$PRODUCT_NAME.vst\n if [ -d \"$VST\" ]; then \n rm -r \"$VST\"\n fi\n\n cp -r \"$original\" \"$VST\"\n sed -i \"\" -e 's/TDMwPTul/BNDLPTul/g' \"$VST/Contents/PkgInfo\"\n sed -i \"\" -e 's/TDMw/BNDL/g' \"$VST/Contents/$INFOPLIST_FILE\"\nfi\n\nif [ $copyRTAS -gt 0 ]; then\n echo \"Copying to RTAS folder...\"\n RTAS=/Library/Application\\ Support/Digidesign/Plug-Ins/$PRODUCT_NAME.dpm\n if [ -d \"$RTAS\" ]; then\n rm -r \"$RTAS\"\n fi\n\n cp -r \"$original\" \"$RTAS\"\nfi\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D01CCCB0486CAD60068D4B7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8BA05AAE072073D300365D66 /* AUBase.cpp in Sources */, - 8BA05AB0072073D300365D66 /* AUDispatch.cpp in Sources */, - 8BA05AB2072073D300365D66 /* AUInputElement.cpp in Sources */, - 8BA05AB4072073D300365D66 /* AUOutputElement.cpp in Sources */, - 8BA05AB7072073D300365D66 /* AUScopeElement.cpp in Sources */, - 8BA05AB9072073D300365D66 /* ComponentBase.cpp in Sources */, - 8BA05AC6072073D300365D66 /* AUEffectBase.cpp in Sources */, - 8BA05AD2072073D300365D66 /* AUBuffer.cpp in Sources */, - 8BA05AD4072073D300365D66 /* AUDebugDispatcher.cpp in Sources */, - 8BA05AE50720742100365D66 /* CAAudioChannelLayout.cpp in Sources */, - 8BA05AE70720742100365D66 /* CAMutex.cpp in Sources */, - 8BA05AE90720742100365D66 /* CAStreamBasicDescription.cpp in Sources */, - 8BA05B070720754400365D66 /* CAAUParameter.cpp in Sources */, - 3EEA126E089847F5002C6BFC /* CAVectorUnit.cpp in Sources */, - 843792AA0EFBF14B002A2725 /* DemoEditorComponent.cpp in Sources */, - 843792AC0EFBF14B002A2725 /* DemoJuceFilter.cpp in Sources */, - 843792B00EFBF14B002A2725 /* juce_LibrarySource.mm in Sources */, - 843792B60EFBF175002A2725 /* juce_AU_Wrapper.mm in Sources */, - 843796690EFBF357002A2725 /* AUMIDIBase.cpp in Sources */, - 8437966B0EFBF357002A2725 /* AUMIDIEffectBase.cpp in Sources */, - 8437966D0EFBF357002A2725 /* AUOutputBase.cpp in Sources */, - 843796710EFBF357002A2725 /* MusicDeviceBase.cpp in Sources */, - 8437967F0EFBF5E4002A2725 /* juce_VST_Wrapper.cpp in Sources */, - 843796800EFBF5E4002A2725 /* juce_VST_Wrapper.mm in Sources */, - 843796DC0EFBFD16002A2725 /* juce_RTAS_DigiCode1.cpp in Sources */, - 843796DD0EFBFD16002A2725 /* juce_RTAS_DigiCode2.cpp in Sources */, - 843796DE0EFBFD16002A2725 /* juce_RTAS_DigiCode3.cpp in Sources */, - 843796E10EFBFD16002A2725 /* juce_RTAS_MacUtilities.mm in Sources */, - 843796E20EFBFD16002A2725 /* juce_RTAS_Wrapper.cpp in Sources */, - 84D3AB5F0FCC744600EA8080 /* AUCarbonViewBase.cpp in Sources */, - 84D3AB670FCC74B300EA8080 /* CarbonEventHandler.cpp in Sources */, - 84D3AB6C0FCC74DA00EA8080 /* AUCarbonViewControl.cpp in Sources */, - 84D3AB700FCC74F400EA8080 /* AUCarbonViewDispatch.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 3E4BA244089833B7007656EC /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GENERATE_PKGINFO_FILE = YES; - HEADER_SEARCH_PATHS = ( - "~/SDKs/vstsdk2.4", - "$(HEADER_SEARCH_PATHS)", - ); - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/"; - LIBRARY_STYLE = Bundle; - MACOSX_DEPLOYMENT_TARGET = 10.4; - OTHER_LDFLAGS = "-bundle"; - OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\""; - PRODUCT_NAME = JuceDemoPlugin; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = component; - }; - name = Debug; - }; - 3E4BA245089833B7007656EC /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GENERATE_PKGINFO_FILE = YES; - HEADER_SEARCH_PATHS = ( - "~/SDKs/vstsdk2.4", - "$(HEADER_SEARCH_PATHS)", - ); - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/"; - LIBRARY_STYLE = Bundle; - OTHER_LDFLAGS = "-bundle"; - OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\""; - PRODUCT_NAME = JuceDemoPlugin; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = component; - }; - name = Release; - }; - 3E4BA248089833B7007656EC /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 843796F40EFC0102002A2725 /* CommonDebugSettings.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_VERSION = 4.0; - GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO; - GENERATE_PKGINFO_FILE = YES; - INFOPLIST_FILE = Info.plist; - INFOPLIST_PREPROCESS = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx10.5; - }; - name = Debug; - }; - 3E4BA249089833B7007656EC /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 843796F50EFC0102002A2725 /* CommonReleaseSettings.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_VERSION = 4.0; - GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO; - GENERATE_PKGINFO_FILE = YES; - INFOPLIST_PREPROCESS = YES; - SDKROOT = macosx10.5; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "JuceDemoPlugin" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3E4BA244089833B7007656EC /* Debug */, - 3E4BA245089833B7007656EC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "JuceDemoPlugin" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3E4BA248089833B7007656EC /* Debug */, - 3E4BA249089833B7007656EC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = 089C1669FE841209C02AAC07 /* Project object */; -} diff --git a/extras/audio plugins/demo/build/win32/JuceDemoPlugin.sln b/extras/audio plugins/demo/build/win32/JuceDemoPlugin.sln deleted file mode 100644 index 96a6517390..0000000000 --- a/extras/audio plugins/demo/build/win32/JuceDemoPlugin.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JuceDemoPlugin", "JuceDemoPlugin.vcproj", "{39DADE4E-B715-4809-AD10-2F5A4213D633}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {39DADE4E-B715-4809-AD10-2F5A4213D633}.Debug|Win32.ActiveCfg = Debug|Win32 - {39DADE4E-B715-4809-AD10-2F5A4213D633}.Debug|Win32.Build.0 = Debug|Win32 - {39DADE4E-B715-4809-AD10-2F5A4213D633}.Release|Win32.ActiveCfg = Release|Win32 - {39DADE4E-B715-4809-AD10-2F5A4213D633}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/extras/audio plugins/demo/build/win32/JuceDemoPlugin.vcproj b/extras/audio plugins/demo/build/win32/JuceDemoPlugin.vcproj deleted file mode 100644 index 661e357003..0000000000 --- a/extras/audio plugins/demo/build/win32/JuceDemoPlugin.vcproj +++ /dev/null @@ -1,347 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/extras/audio plugins/demo/src/DemoEditorComponent.cpp b/extras/audio plugins/demo/src/DemoEditorComponent.cpp deleted file mode 100644 index 981b38db14..0000000000 --- a/extras/audio plugins/demo/src/DemoEditorComponent.cpp +++ /dev/null @@ -1,196 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-9 by Raw Material Software Ltd. - - ------------------------------------------------------------------------------ - - JUCE can be redistributed and/or modified under the terms of the GNU General - Public License (Version 2), as published by the Free Software Foundation. - A copy of the license is included in the JUCE distribution, or can be found - online at www.gnu.org/licenses. - - JUCE is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - ------------------------------------------------------------------------------ - - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.rawmaterialsoftware.com/juce for more information. - - ============================================================================== -*/ - -#include "includes.h" -#include "DemoEditorComponent.h" - -//============================================================================== -// quick-and-dirty function to format a timecode string -static const String timeToTimecodeString (const double seconds) -{ - const double absSecs = fabs (seconds); - const tchar* const sign = (seconds < 0) ? T("-") : T(""); - - const int hours = (int) (absSecs / (60.0 * 60.0)); - const int mins = ((int) (absSecs / 60.0)) % 60; - const int secs = ((int) absSecs) % 60; - - String t; - if (seconds < 0) - t = T("-"); - - t << String (hours).paddedLeft ('0', 2) << ":" - << String (mins).paddedLeft ('0', 2) << ":" - << String (secs).paddedLeft ('0', 2) << ":" - << String (roundToInt (absSecs * 1000) % 1000).paddedLeft ('0', 3); - - return t; -} - -// quick-and-dirty function to format a bars/beats string -static const String ppqToBarsBeatsString (const double ppq, - const double lastBarPPQ, - const int numerator, - const int denominator) -{ - if (numerator == 0 || denominator == 0) - return T("1|1|0"); - - const int ppqPerBar = (numerator * 4 / denominator); - const double beats = (fmod (ppq, ppqPerBar) / ppqPerBar) * numerator; - - const int bar = ((int) ppq) / ppqPerBar + 1; - const int beat = ((int) beats) + 1; - const int ticks = ((int) (fmod (beats, 1.0) * 960.0)); - - String s; - s << bar << T('|') << beat << T('|') << ticks; - return s; -} - - -//============================================================================== -DemoEditorComponent::DemoEditorComponent (DemoJuceFilter* const ownerFilter) - : AudioProcessorEditor (ownerFilter) -{ - // create our gain slider.. - addAndMakeVisible (gainSlider = new Slider (T("gain"))); - gainSlider->addListener (this); - gainSlider->setRange (0.0, 1.0, 0.01); - gainSlider->setTooltip (T("changes the volume of the audio that runs through the plugin..")); - - // get the gain parameter from the filter and use it to set up our slider - gainSlider->setValue (ownerFilter->getParameter (0), false); - - // create and add the midi keyboard component.. - addAndMakeVisible (midiKeyboard - = new MidiKeyboardComponent (ownerFilter->keyboardState, - MidiKeyboardComponent::horizontalKeyboard)); - - // add a label that will display the current timecode and status.. - addAndMakeVisible (infoLabel = new Label (String::empty, String::empty)); - - // add the triangular resizer component for the bottom-right of the UI - addAndMakeVisible (resizer = new ResizableCornerComponent (this, &resizeLimits)); - resizeLimits.setSizeLimits (150, 150, 800, 300); - - // set our component's initial size to be the last one that was stored in the filter's settings - setSize (ownerFilter->lastUIWidth, - ownerFilter->lastUIHeight); - - // register ourselves with the filter - it will use its ChangeBroadcaster base - // class to tell us when something has changed, and this will call our changeListenerCallback() - // method. - ownerFilter->addChangeListener (this); -} - -DemoEditorComponent::~DemoEditorComponent() -{ - getFilter()->removeChangeListener (this); - - deleteAllChildren(); -} - -//============================================================================== -void DemoEditorComponent::paint (Graphics& g) -{ - // just clear the window - g.fillAll (Colour::greyLevel (0.9f)); -} - -void DemoEditorComponent::resized() -{ - gainSlider->setBounds (10, 10, 200, 22); - infoLabel->setBounds (10, 35, 450, 20); - - const int keyboardHeight = 70; - midiKeyboard->setBounds (4, getHeight() - keyboardHeight - 4, - getWidth() - 8, keyboardHeight); - - resizer->setBounds (getWidth() - 16, getHeight() - 16, 16, 16); - - // if we've been resized, tell the filter so that it can store the new size - // in its settings - getFilter()->lastUIWidth = getWidth(); - getFilter()->lastUIHeight = getHeight(); -} - -//============================================================================== -void DemoEditorComponent::changeListenerCallback (void* source) -{ - // this is the filter telling us that it's changed, so we'll update our - // display of the time, midi message, etc. - updateParametersFromFilter(); -} - -void DemoEditorComponent::sliderValueChanged (Slider*) -{ - getFilter()->setParameterNotifyingHost (0, (float) gainSlider->getValue()); -} - -//============================================================================== -void DemoEditorComponent::updateParametersFromFilter() -{ - DemoJuceFilter* const filter = getFilter(); - - // we use this lock to make sure the processBlock() method isn't writing to the - // lastMidiMessage variable while we're trying to read it, but be extra-careful to - // only hold the lock for a minimum amount of time.. - filter->getCallbackLock().enter(); - - // take a local copy of the info we need while we've got the lock.. - const AudioPlayHead::CurrentPositionInfo positionInfo (filter->lastPosInfo); - const float newGain = filter->getParameter (0); - - // ..release the lock ASAP - filter->getCallbackLock().exit(); - - - // ..and after releasing the lock, we're free to do the time-consuming UI stuff.. - String infoText; - infoText << String (positionInfo.bpm, 2) << T(" bpm, ") - << positionInfo.timeSigNumerator << T("/") << positionInfo.timeSigDenominator - << T(" - ") << timeToTimecodeString (positionInfo.timeInSeconds) - << T(" - ") << ppqToBarsBeatsString (positionInfo.ppqPosition, - positionInfo.ppqPositionOfLastBarStart, - positionInfo.timeSigNumerator, - positionInfo.timeSigDenominator); - - if (positionInfo.isPlaying) - infoText << T(" (playing)"); - - infoLabel->setText (infoText, false); - - /* Update our slider. - - (note that it's important here to tell the slider not to send a change - message, because that would cause it to call the filter with a parameter - change message again, and the values would drift out. - */ - gainSlider->setValue (newGain, false); - - setSize (filter->lastUIWidth, - filter->lastUIHeight); -} diff --git a/extras/audio plugins/demo/src/DemoEditorComponent.h b/extras/audio plugins/demo/src/DemoEditorComponent.h deleted file mode 100644 index 3cf9e83724..0000000000 --- a/extras/audio plugins/demo/src/DemoEditorComponent.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-9 by Raw Material Software Ltd. - - ------------------------------------------------------------------------------ - - JUCE can be redistributed and/or modified under the terms of the GNU General - Public License (Version 2), as published by the Free Software Foundation. - A copy of the license is included in the JUCE distribution, or can be found - online at www.gnu.org/licenses. - - JUCE is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - ------------------------------------------------------------------------------ - - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.rawmaterialsoftware.com/juce for more information. - - ============================================================================== -*/ - -#ifndef DEMOJUCEPLUGINEDITOR_H -#define DEMOJUCEPLUGINEDITOR_H - -#include "DemoJuceFilter.h" - - -//============================================================================== -/** - This is the Component that our filter will use as its UI. - - One or more of these is created by the DemoJuceFilter::createEditor() method, - and they will be deleted at some later time by the wrapper code. - - To demonstrate the correct way of connecting a filter to its UI, this - class is a ChangeListener, and our demo filter is a ChangeBroadcaster. The - editor component registers with the filter when it's created and deregisters - when it's destroyed. When the filter's parameters are changed, it broadcasts - a message and this editor responds by updating its display. -*/ -class DemoEditorComponent : public AudioProcessorEditor, - public ChangeListener, - public SliderListener -{ -public: - /** Constructor. - - When created, this will register itself with the filter for changes. It's - safe to assume that the filter won't be deleted before this object is. - */ - DemoEditorComponent (DemoJuceFilter* const ownerFilter); - - /** Destructor. */ - ~DemoEditorComponent(); - - //============================================================================== - /** Our demo filter is a ChangeBroadcaster, and will call us back when one of - its parameters changes. - */ - void changeListenerCallback (void* source); - - void sliderValueChanged (Slider*); - - //============================================================================== - /** Standard Juce paint callback. */ - void paint (Graphics& g); - - /** Standard Juce resize callback. */ - void resized(); - - -private: - //============================================================================== - Slider* gainSlider; - MidiKeyboardComponent* midiKeyboard; - Label* infoLabel; - ResizableCornerComponent* resizer; - ComponentBoundsConstrainer resizeLimits; - TooltipWindow tooltipWindow; - - void updateParametersFromFilter(); - - // handy wrapper method to avoid having to cast the filter to a DemoJuceFilter - // every time we need it.. - DemoJuceFilter* getFilter() const throw() { return (DemoJuceFilter*) getAudioProcessor(); } -}; - - -#endif diff --git a/extras/audio plugins/demo/src/DemoJuceFilter.cpp b/extras/audio plugins/demo/src/DemoJuceFilter.cpp deleted file mode 100644 index 9aea6df9a0..0000000000 --- a/extras/audio plugins/demo/src/DemoJuceFilter.cpp +++ /dev/null @@ -1,245 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-9 by Raw Material Software Ltd. - - ------------------------------------------------------------------------------ - - JUCE can be redistributed and/or modified under the terms of the GNU General - Public License (Version 2), as published by the Free Software Foundation. - A copy of the license is included in the JUCE distribution, or can be found - online at www.gnu.org/licenses. - - JUCE is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - ------------------------------------------------------------------------------ - - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.rawmaterialsoftware.com/juce for more information. - - ============================================================================== -*/ - -#include "includes.h" -#include "DemoJuceFilter.h" -#include "DemoEditorComponent.h" - - -//============================================================================== -/** - This function must be implemented to create a new instance of your - plugin object. -*/ -AudioProcessor* JUCE_CALLTYPE createPluginFilter() -{ - return new DemoJuceFilter(); -} - -//============================================================================== -DemoJuceFilter::DemoJuceFilter() -{ - gain = 1.0f; - lastUIWidth = 400; - lastUIHeight = 140; - - zeromem (&lastPosInfo, sizeof (lastPosInfo)); - lastPosInfo.timeSigNumerator = 4; - lastPosInfo.timeSigDenominator = 4; - lastPosInfo.bpm = 120; -} - -DemoJuceFilter::~DemoJuceFilter() -{ -} - -//============================================================================== -const String DemoJuceFilter::getName() const -{ - return "Juce Demo Filter"; -} - -int DemoJuceFilter::getNumParameters() -{ - return 1; -} - -float DemoJuceFilter::getParameter (int index) -{ - return (index == 0) ? gain - : 0.0f; -} - -void DemoJuceFilter::setParameter (int index, float newValue) -{ - if (index == 0) - { - if (gain != newValue) - { - gain = newValue; - - // if this is changing the gain, broadcast a change message which - // our editor will pick up. - sendChangeMessage (this); - } - } -} - -const String DemoJuceFilter::getParameterName (int index) -{ - if (index == 0) - return T("gain"); - - return String::empty; -} - -const String DemoJuceFilter::getParameterText (int index) -{ - if (index == 0) - return String (gain, 2); - - return String::empty; -} - -const String DemoJuceFilter::getInputChannelName (const int channelIndex) const -{ - return String (channelIndex + 1); -} - -const String DemoJuceFilter::getOutputChannelName (const int channelIndex) const -{ - return String (channelIndex + 1); -} - -bool DemoJuceFilter::isInputChannelStereoPair (int index) const -{ - return true; -} - -bool DemoJuceFilter::isOutputChannelStereoPair (int index) const -{ - return true; -} - -bool DemoJuceFilter::acceptsMidi() const -{ - return true; -} - -bool DemoJuceFilter::producesMidi() const -{ - return true; -} - -//============================================================================== -void DemoJuceFilter::prepareToPlay (double sampleRate, int samplesPerBlock) -{ - // do your pre-playback setup stuff here.. - keyboardState.reset(); -} - -void DemoJuceFilter::releaseResources() -{ - // when playback stops, you can use this as an opportunity to free up any - // spare memory, etc. -} - -void DemoJuceFilter::processBlock (AudioSampleBuffer& buffer, - MidiBuffer& midiMessages) -{ - // for each of our input channels, we'll attenuate its level by the - // amount that our volume parameter is set to. - for (int channel = 0; channel < getNumInputChannels(); ++channel) - { - buffer.applyGain (channel, 0, buffer.getNumSamples(), gain); - } - - // in case we have more outputs than inputs, we'll clear any output - // channels that didn't contain input data, (because these aren't - // guaranteed to be empty - they may contain garbage). - for (int i = getNumInputChannels(); i < getNumOutputChannels(); ++i) - { - buffer.clear (i, 0, buffer.getNumSamples()); - } - - // if any midi messages come in, use them to update the keyboard state object. This - // object sends notification to the UI component about key up/down changes - keyboardState.processNextMidiBuffer (midiMessages, - 0, buffer.getNumSamples(), - true); - - // have a go at getting the current time from the host, and if it's changed, tell - // our UI to update itself. - AudioPlayHead::CurrentPositionInfo pos; - - if (getPlayHead() != 0 && getPlayHead()->getCurrentPosition (pos)) - { - if (memcmp (&pos, &lastPosInfo, sizeof (pos)) != 0) - { - lastPosInfo = pos; - sendChangeMessage (this); - } - } - else - { - zeromem (&lastPosInfo, sizeof (lastPosInfo)); - lastPosInfo.timeSigNumerator = 4; - lastPosInfo.timeSigDenominator = 4; - lastPosInfo.bpm = 120; - } -} - -//============================================================================== -AudioProcessorEditor* DemoJuceFilter::createEditor() -{ - return new DemoEditorComponent (this); -} - -//============================================================================== -void DemoJuceFilter::getStateInformation (MemoryBlock& destData) -{ - // you can store your parameters as binary data if you want to or if you've got - // a load of binary to put in there, but if you're not doing anything too heavy, - // XML is a much cleaner way of doing it - here's an example of how to store your - // params as XML.. - - // create an outer XML element.. - XmlElement xmlState (T("MYPLUGINSETTINGS")); - - // add some attributes to it.. - xmlState.setAttribute (T("pluginVersion"), 1); - xmlState.setAttribute (T("gainLevel"), gain); - xmlState.setAttribute (T("uiWidth"), lastUIWidth); - xmlState.setAttribute (T("uiHeight"), lastUIHeight); - - // you could also add as many child elements as you need to here.. - - - // then use this helper function to stuff it into the binary blob and return it.. - copyXmlToBinary (xmlState, destData); -} - -void DemoJuceFilter::setStateInformation (const void* data, int sizeInBytes) -{ - // use this helper function to get the XML from this binary blob.. - XmlElement* const xmlState = getXmlFromBinary (data, sizeInBytes); - - if (xmlState != 0) - { - // check that it's the right type of xml.. - if (xmlState->hasTagName (T("MYPLUGINSETTINGS"))) - { - // ok, now pull out our parameters.. - gain = (float) xmlState->getDoubleAttribute (T("gainLevel"), gain); - - lastUIWidth = xmlState->getIntAttribute (T("uiWidth"), lastUIWidth); - lastUIHeight = xmlState->getIntAttribute (T("uiHeight"), lastUIHeight); - - sendChangeMessage (this); - } - - delete xmlState; - } -} diff --git a/extras/audio plugins/demo/src/JucePluginCharacteristics.h b/extras/audio plugins/demo/src/JucePluginCharacteristics.h deleted file mode 100644 index 14ce6b2c32..0000000000 --- a/extras/audio plugins/demo/src/JucePluginCharacteristics.h +++ /dev/null @@ -1,314 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-9 by Raw Material Software Ltd. - - ------------------------------------------------------------------------------ - - JUCE can be redistributed and/or modified under the terms of the GNU General - Public License (Version 2), as published by the Free Software Foundation. - A copy of the license is included in the JUCE distribution, or can be found - online at www.gnu.org/licenses. - - JUCE is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - ------------------------------------------------------------------------------ - - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.rawmaterialsoftware.com/juce for more information. - - ============================================================================== -*/ - -#ifndef __JUCE_PLUGIN_CHARACTERISTICS_H__ -#define __JUCE_PLUGIN_CHARACTERISTICS_H__ - - -//============================================================================== -/* All of the following settings need to be defined for your plugin. - - Go through each of these definitions and check that it's correctly - set-up before trying to do a build. -*/ - - -//============================================================================== -/* Plugin Formats to build */ - -// If your project is building a standalone app to run your plugin, you should -// set the JucePlugin_Build_Standalone flag in the project's settings.. -#ifndef JucePlugin_Build_Standalone - #define JucePlugin_Build_Standalone 0 -#endif - -#if ! JucePlugin_Build_Standalone - - // You should turn on these flags to enable the different types of plugin.. - #ifndef JucePlugin_Build_VST - #define JucePlugin_Build_VST 1 - #endif - - #ifndef JucePlugin_Build_RTAS - #define JucePlugin_Build_RTAS 0 - #endif - - #ifndef JucePlugin_Build_AU - #define JucePlugin_Build_AU 1 - #endif -#endif - -//============================================================================== -/* Generic settings */ - -/** The name of your plugin. (Try to keep this as short as possible) -*/ -#define JucePlugin_Name "Juce Demo Plugin" - -/** A longer decription of your plugin. -*/ -#define JucePlugin_Desc "A Demo Plugin demonstrating Juce" - -/** The name of your company. (Try to keep this as short as possible) -*/ -#define JucePlugin_Manufacturer "Raw Material Software" - -/** A four-character code for your company. - Use single quotes - this isn't a string! -*/ -#define JucePlugin_ManufacturerCode 'RawM' - -/** A unique four-character code for your plugin. - Use single quotes - this isn't a string! - - Note that for AU compatibility, this must contain at least one - upper-case letter. -*/ -#define JucePlugin_PluginCode 'JcDm' - -//============================================================================== -/** The maximum number of channels of audio input that the plugin can handle. - - The actual number of channels supplied may be less than this, depending on the host. - For VSTs, you specify a maximum number of channels, for AUs and RTAS a set - of channel configurations is specified in JucePlugin_PreferredChannelConfigurations - and the host will choose one of these, but you should still set the max number of - channels correctly. - - As soon as a plugin's prepareToPlay() method is called, you can find out the actual - number of channels that will be used with the AudioProcessor::getNumInputChannels() - method. -*/ -#define JucePlugin_MaxNumInputChannels 2 - -/** The maximum number of channels of audio output that the plugin can handle. - - The actual number of channels supplied may be less than this, depending on the host. - For VSTs, you specify a maximum number of channels, for AUs and RTAS a set - of channel configurations is specified in JucePlugin_PreferredChannelConfigurations - and the host will choose one of these, but you should still set the max number of - channels correctly. - - As soon as a plugin's prepareToPlay() method is called, you can find out the actual - number of channels that will be used with the AudioProcessor::getNumOutputChannels() - method. -*/ -#define JucePlugin_MaxNumOutputChannels 2 - -/** This allows the plugin to specify the configurations of input/output channels that - they can support. - - AU and RTAS hosts will use this information, although VSTs only have a concept of - a maximum number of channels. - - The list is a set of pairs of values in the form { numInputs, numOutputs }, and each - pair indicates a valid configuration that the plugin can handle. - - So for example, {1, 1}, {2, 2} means that the plugin can be used in just two - configurations: either with 1 input and 1 output, or with 2 inputs and 2 outputs. If - you used this in Pro-Tools, the plugin could be placed on a mono or stereo track. - If the list was just {1, 1}, then Pro-Tools would only allow it to be used as a mono - plugin. - - As soon as a plugin's prepareToPlay() method is called, you can find out the actual - number of channels that the host has connected to the plugin by using the - AudioProcessor::getNumOutputChannels() and AudioFilterBase::getNumInputChannels() - methods. -*/ -#define JucePlugin_PreferredChannelConfigurations { 1, 1 }, { 2, 2 } - -//============================================================================== -/** Set this value to 1 if your plugin is a synth, or 0 if it isn't. -*/ -#define JucePlugin_IsSynth 0 - -/** Set this to 1 if your plugin needs to receive midi messages, or 0 if - it doesn't. -*/ -#define JucePlugin_WantsMidiInput 1 - -/** Set this to 1 if your plugin wants to output midi messages, or 0 if - it doesn't. -*/ -#define JucePlugin_ProducesMidiOutput 1 - -/** If this is 1, it means that when the plugins input buffers are - silent, it's output will be too. - - Some hosts may use this to avoid calling the plugin when no audio - would be produced. -*/ -#define JucePlugin_SilenceInProducesSilenceOut 0 - -/** If your plugin has a tail, you can set the length here and this information - will be passed on to the host. - (Not all formats/hosts might actually use this, though) -*/ -#define JucePlugin_TailLengthSeconds 0 - -/** If set to 1, this hints that the host should ignore any keys that are pressed - when the plugin has keyboard focus. If 0, then the host should still execute - any shortcut keys that are pressed, even if the plugin does have focus. - - Various hosts/platforms may deal with this differently, or ignore it. -*/ -#define JucePlugin_EditorRequiresKeyboardFocus 1 - - -//============================================================================== -/** A version number -*/ -#define JucePlugin_VersionCode 0x00010100 - -#define JucePlugin_VersionString "1.1" - - -//============================================================================== -/* VST settings */ - -/** For VSTs, if you're compiling against the V2.3 SDK, set this to zero. If - you're using V2.4 or later, make sure it's set to 1. -*/ -#define JUCE_USE_VSTSDK_2_4 1 - -/** Defines a UID for your VST plugin. - The default setting here is probably fine, unless you specifically need - a custom value. It's passed to the setUniqueID() method of the plugin class. -*/ -#define JucePlugin_VSTUniqueID JucePlugin_PluginCode - -/** Defines the type of plugin. For most pursposes, you don't need to change this - setting. -*/ -#if JucePlugin_IsSynth - #define JucePlugin_VSTCategory kPlugCategSynth -#else - #define JucePlugin_VSTCategory kPlugCategEffect -#endif - -//============================================================================== -/* AudioUnit settings */ - -/** Defines the major type of plugin - see AUComponent.h for the available options. - If it's an effect, you should use kAudioUnitType_Effect. For a synth, you'll - need to use kAudioUnitType_MusicEffect or kAudioUnitType_MusicDevice. -*/ -#if JucePlugin_IsSynth - #define JucePlugin_AUMainType kAudioUnitType_MusicDevice -#else - #define JucePlugin_AUMainType kAudioUnitType_Effect -#endif - -/** A 4-character plugin ID code that should be unique. - - You can leave this using the generic value JucePlugin_PluginCode, or - override it if necessary. - - Note that for AU, this must contain at least one upper-case letter. -*/ -#define JucePlugin_AUSubType JucePlugin_PluginCode - -/** A prefix for the names of exported entry-point functions that the component exposes. - - It's very important that your plugin's .exp file contains two entries that correspond to - this name. So for example if you set the prefix to "abc" then your exports - file must contain: - - _abcEntry - _abcViewEntry -*/ -#define JucePlugin_AUExportPrefix JuceDemoAU - -/** This is the same as JucePlugin_AUExportPrefix, but in quotes - (needed for the resource compiler...) -*/ -#define JucePlugin_AUExportPrefixQuoted "JuceDemoAU" - -/** A 4-character manufacturer code - this is your company name. - You can leave this using the generic value JucePlugin_ManufacturerCode, or - override it if necessary. -*/ -#define JucePlugin_AUManufacturerCode JucePlugin_ManufacturerCode - -/** If you define this value to be the same as the CFBundleIdentifier in your - plugin's plist, it allows the plugin to work out its own path, which is - needed if you want to use File::getSpecialLocation (currentExecutableFile) -*/ -#define JucePlugin_CFBundleIdentifier "com.rawmaterialsoftware.JuceDemo" - -/** In an AU, some hosts take the name of Cocoa class that creates the UI and - actually show it to the user in a list (why??)... Anyway, this macro lets you - provide a sensible name for that class to make it clear what plugin it refers to. - Obviously this has to be a valid obj-C class name. - - Just to make things a little more complicated, this name must also be unique to this - precise version of your software. Otherwise, if the host loads two plugins that use the - same class name, the obj-C linker will almost certainly connect the wrong modules together - and cause total meltdown. -*/ -#define JucePlugin_AUCocoaViewClassName JuceDemoAU_V1 - -//============================================================================== -/* RTAS settings */ - -/** How to categorise this plugin. - - For a synth you probably want to set this to ePlugInCategory_SWGenerators. - For an effect, you could choose one of: - ePlugInCategory_None, ePlugInCategory_EQ, ePlugInCategory_Dynamics, - ePlugInCategory_PitchShift, ePlugInCategory_Reverb, ePlugInCategory_Delay, - ePlugInCategory_Modulation, ePlugInCategory_Harmonic, ePlugInCategory_NoiseReduction, - ePlugInCategory_Dither, ePlugInCategory_SoundField - - (All values are listed in FicPluginEnums.h) -*/ -#if JucePlugin_IsSynth - #define JucePlugin_RTASCategory ePlugInCategory_SWGenerators -#else - #define JucePlugin_RTASCategory ePlugInCategory_None -#endif - -/** A 4-character manufacturer code - this is your company name. - You can leave this using the generic value JucePlugin_ManufacturerCode, or - override it if necessary. -*/ -#define JucePlugin_RTASManufacturerCode JucePlugin_ManufacturerCode - -/** A 4-character plugin ID code that should be unique. - You can leave this using the generic value JucePlugin_PluginCode, or - override it if necessary. -*/ -#define JucePlugin_RTASProductId JucePlugin_PluginCode - -/** You need to set this path to point to the location of the Digidesign WinBag - directory on your machine. (Only needed for Windows builds). Make sure you - don't put a slash on the end. -*/ -#define JucePlugin_WinBag_path "C:\\essentials\\PT_73_SDK\\WinBag" - - -//============================================================================== - -#endif diff --git a/extras/audio plugins/demo/src/includes.h b/extras/audio plugins/demo/src/includes.h deleted file mode 100644 index bd74923484..0000000000 --- a/extras/audio plugins/demo/src/includes.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-9 by Raw Material Software Ltd. - - ------------------------------------------------------------------------------ - - JUCE can be redistributed and/or modified under the terms of the GNU General - Public License (Version 2), as published by the Free Software Foundation. - A copy of the license is included in the JUCE distribution, or can be found - online at www.gnu.org/licenses. - - JUCE is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - ------------------------------------------------------------------------------ - - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.rawmaterialsoftware.com/juce for more information. - - ============================================================================== -*/ - -#include "../../../../juce_amalgamated.h" diff --git a/extras/audio plugins/demo/src/juce_AppConfig.h b/extras/audio plugins/demo/src/juce_AppConfig.h deleted file mode 100644 index 7ed1a86f44..0000000000 --- a/extras/audio plugins/demo/src/juce_AppConfig.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-9 by Raw Material Software Ltd. - - ------------------------------------------------------------------------------ - - JUCE can be redistributed and/or modified under the terms of the GNU General - Public License (Version 2), as published by the Free Software Foundation. - A copy of the license is included in the JUCE distribution, or can be found - online at www.gnu.org/licenses. - - JUCE is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - ------------------------------------------------------------------------------ - - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.rawmaterialsoftware.com/juce for more information. - - ============================================================================== -*/ - -/* - This file contains settings that you might want to explicitly apply to - your Juce build. - - These flags enable or disable juce features - if you're linking to juce as - a library, then to change them, you'd need to alter your juce_Config.h file and - recompile the juce lib. But because we're using the amalgamated file, you can - just include this file before including your juce_amalgamated.cpp file to - have the same effect. - - If you leave any of these commented-out, they'll take on the default value - assigned to them in juce_Config.h, so to force them on or off, just set them - to an explicit 0 or 1 in here. -*/ - -#define JUCE_QUICKTIME 0 -#define JUCE_SUPPORT_CARBON 1 - -//#define JUCE_PLUGINHOST_VST 1 -//#define JUCE_PLUGINHOST_AU 1 -//#define JUCE_ONLY_BUILD_CORE_LIBRARY 1 -//#define JUCE_FORCE_DEBUG 1 -//#define JUCE_LOG_ASSERTIONS 1 -//#define JUCE_ASIO 1 -//#define JUCE_ALSA 1 -//#define JUCE_OPENGL 1 -//#define JUCE_USE_FLAC 1 -//#define JUCE_USE_OGGVORBIS 1 -//#define JUCE_USE_CDBURNER 1 -//#define JUCE_ENABLE_REPAINT_DEBUGGING 1 -//#define JUCE_USE_XINERAMA 1 -//#define JUCE_USE_XSHM 1 -//#define JUCE_CHECK_MEMORY_LEAKS 1 -//#define JUCE_CATCH_UNHANDLED_EXCEPTIONS 1 -//#define JUCE_STRINGS_ARE_UNICODE 1 diff --git a/extras/audio plugins/demo/src/juce_LibrarySource.cpp b/extras/audio plugins/demo/src/juce_LibrarySource.cpp deleted file mode 100644 index 37f1b22b2b..0000000000 --- a/extras/audio plugins/demo/src/juce_LibrarySource.cpp +++ /dev/null @@ -1,12 +0,0 @@ - -/* - This file includes the entire juce source tree via the amalgamated file. - - You could add the amalgamated file directly to your project, but doing it - like this allows you to put your app's config settings in the - juce_AppConfig.h file and have them applied to both the juce headers and - the source code. -*/ - -#include "juce_AppConfig.h" -#include "../../../../juce_amalgamated.cpp" diff --git a/extras/audio plugins/demo/src/juce_LibrarySource.mm b/extras/audio plugins/demo/src/juce_LibrarySource.mm deleted file mode 100644 index a5a850f057..0000000000 --- a/extras/audio plugins/demo/src/juce_LibrarySource.mm +++ /dev/null @@ -1,20 +0,0 @@ - -/* - This file includes the entire juce source tree via the amalgamated file. - - You could add the amalgamated file directly to your project, but doing it - like this allows you to put your app's config settings in the - juce_AppConfig.h file and have them applied to both the juce headers and - the source code. -*/ - -#include "juce_AppConfig.h" - -// This is where all the juce code gets included, via this amalgamated file.. -#include "../../../../juce_amalgamated.mm" - -/* NB. A handy tip is that if you're doing a lot of debugging into the juce code, then stepping through - the amalgamated file can be slow or impossible for the debugger. But if you use the following line - instead of the one above, then it makes it a lot easier.. -*/ -//#include "../../../../amalgamation/juce_amalgamated_template.cpp" diff --git a/juce_amalgamated.cpp b/juce_amalgamated.cpp index f5cbe440df..4c601282da 100644 --- a/juce_amalgamated.cpp +++ b/juce_amalgamated.cpp @@ -34525,6 +34525,33 @@ void AudioProcessorListener::audioProcessorParameterChangeGestureEnd (AudioProce { } +bool AudioPlayHead::CurrentPositionInfo::operator== (const CurrentPositionInfo& other) const throw() +{ + return timeInSeconds == other.timeInSeconds + && ppqPosition == other.ppqPosition + && editOriginTime == other.editOriginTime + && ppqPositionOfLastBarStart == other.ppqPositionOfLastBarStart + && frameRate == other.frameRate + && isPlaying == other.isPlaying + && isRecording == other.isRecording + && bpm == other.bpm + && timeSigNumerator == other.timeSigNumerator + && timeSigDenominator == other.timeSigDenominator; +} + +bool AudioPlayHead::CurrentPositionInfo::operator!= (const CurrentPositionInfo& other) const throw() +{ + return ! operator== (other); +} + +void AudioPlayHead::CurrentPositionInfo::resetToDefault() +{ + zerostruct (*this); + timeSigNumerator = 4; + timeSigDenominator = 4; + bpm = 120; +} + END_JUCE_NAMESPACE /*** End of inlined file: juce_AudioProcessor.cpp ***/ @@ -239956,7 +239983,7 @@ public: if (fillEntireClipAsTiles) { -#if JUCE_IPHONE || (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5) +#if JUCE_IPHONE CGContextDrawTiledImage (context, imageRect, image); #else #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 @@ -244648,7 +244675,7 @@ public: if (fillEntireClipAsTiles) { -#if JUCE_IPHONE || (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5) +#if JUCE_IPHONE CGContextDrawTiledImage (context, imageRect, image); #else #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 diff --git a/juce_amalgamated.h b/juce_amalgamated.h index f473abd8e6..2fe4b96624 100644 --- a/juce_amalgamated.h +++ b/juce_amalgamated.h @@ -17610,6 +17610,11 @@ public: bool isPlaying; bool isRecording; + + bool operator== (const CurrentPositionInfo& other) const throw(); + bool operator!= (const CurrentPositionInfo& other) const throw(); + + void resetToDefault(); }; virtual bool getCurrentPosition (CurrentPositionInfo& result) = 0; diff --git a/src/audio/processors/juce_AudioPlayHead.h b/src/audio/processors/juce_AudioPlayHead.h index 7561169c4f..437c6c6864 100644 --- a/src/audio/processors/juce_AudioPlayHead.h +++ b/src/audio/processors/juce_AudioPlayHead.h @@ -105,6 +105,12 @@ public: (When isRecording is true, then isPlaying will also be true). */ bool isRecording; + + //============================================================================== + bool operator== (const CurrentPositionInfo& other) const throw(); + bool operator!= (const CurrentPositionInfo& other) const throw(); + + void resetToDefault(); }; //============================================================================== diff --git a/src/audio/processors/juce_AudioProcessor.cpp b/src/audio/processors/juce_AudioProcessor.cpp index a442ca7d22..b786cd8ad6 100644 --- a/src/audio/processors/juce_AudioProcessor.cpp +++ b/src/audio/processors/juce_AudioProcessor.cpp @@ -302,5 +302,33 @@ void AudioProcessorListener::audioProcessorParameterChangeGestureEnd (AudioProce { } +//============================================================================== +bool AudioPlayHead::CurrentPositionInfo::operator== (const CurrentPositionInfo& other) const throw() +{ + return timeInSeconds == other.timeInSeconds + && ppqPosition == other.ppqPosition + && editOriginTime == other.editOriginTime + && ppqPositionOfLastBarStart == other.ppqPositionOfLastBarStart + && frameRate == other.frameRate + && isPlaying == other.isPlaying + && isRecording == other.isRecording + && bpm == other.bpm + && timeSigNumerator == other.timeSigNumerator + && timeSigDenominator == other.timeSigDenominator; +} + +bool AudioPlayHead::CurrentPositionInfo::operator!= (const CurrentPositionInfo& other) const throw() +{ + return ! operator== (other); +} + +void AudioPlayHead::CurrentPositionInfo::resetToDefault() +{ + zerostruct (*this); + timeSigNumerator = 4; + timeSigDenominator = 4; + bpm = 120; +} + END_JUCE_NAMESPACE diff --git a/src/native/mac/juce_mac_CoreGraphicsContext.mm b/src/native/mac/juce_mac_CoreGraphicsContext.mm index 6a7ae9ecef..38ebdd364a 100644 --- a/src/native/mac/juce_mac_CoreGraphicsContext.mm +++ b/src/native/mac/juce_mac_CoreGraphicsContext.mm @@ -399,7 +399,7 @@ public: if (fillEntireClipAsTiles) { -#if JUCE_IPHONE || (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5) +#if JUCE_IPHONE CGContextDrawTiledImage (context, imageRect, image); #else #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5