From 345c7aa23cda9f858fe876beba6d35ca9c13ca35 Mon Sep 17 00:00:00 2001 From: Julian Storer Date: Mon, 11 Apr 2011 15:44:57 +0100 Subject: [PATCH] Removed the AudioFilterStreamer class, and tidied up StandaloneFilterWindow. Updated projects for new plugin file locations. --- Builds/MacOSX/Juce.xcodeproj/project.pbxproj | 64 ++++----- Builds/VisualStudio2005/Juce.vcproj | 41 ++---- Builds/VisualStudio2008/Juce.vcproj | 41 ++---- Builds/VisualStudio2008_DLL/Juce.vcproj | 41 ++---- Builds/VisualStudio2010/Juce.vcxproj | 11 +- Builds/VisualStudio2010/Juce.vcxproj.filters | 36 ++--- Builds/iOS/Juce.xcodeproj/project.pbxproj | 64 ++++----- Juce.jucer | 4 - .../audio plugins/demo/Builds/Linux/Makefile | 4 +- .../JuceDemoPlugin.xcodeproj/project.pbxproj | 32 ++--- .../VisualStudio2005/JuceDemoPlugin.vcproj | 2 +- .../VisualStudio2008/JuceDemoPlugin.vcproj | 2 +- juce_amalgamated.cpp | 31 ++-- juce_amalgamated.h | 7 +- .../RTAS/juce_RTAS_WinUtilities.cpp | 16 +-- .../Standalone/juce_AudioFilterStreamer.cpp | 54 ------- .../Standalone/juce_AudioFilterStreamer.h | 69 --------- .../juce_StandaloneFilterWindow.cpp | 132 ++++++++---------- .../Standalone/juce_StandaloneFilterWindow.h | 5 +- .../juce_IncludeCharacteristics.h | 2 +- src/audio/plugin_client/juce_PluginHeaders.h | 8 +- src/audio/plugin_client/juce_PluginHostType.h | 3 +- src/core/juce_StandardHeader.h | 2 +- src/events/juce_Timer.cpp | 20 +-- 24 files changed, 251 insertions(+), 440 deletions(-) delete mode 100644 src/audio/plugin_client/Standalone/juce_AudioFilterStreamer.cpp delete mode 100644 src/audio/plugin_client/Standalone/juce_AudioFilterStreamer.h diff --git a/Builds/MacOSX/Juce.xcodeproj/project.pbxproj b/Builds/MacOSX/Juce.xcodeproj/project.pbxproj index 90d52c8520..6e69297824 100644 --- a/Builds/MacOSX/Juce.xcodeproj/project.pbxproj +++ b/Builds/MacOSX/Juce.xcodeproj/project.pbxproj @@ -450,23 +450,21 @@ DD3886D45B5988B4DAC2D049 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiMessageSequence.h; path = ../../src/audio/midi/juce_MidiMessageSequence.h; sourceTree = SOURCE_ROOT; }; 01712FF0A160032FA1DAA8C2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MidiOutput.cpp; path = ../../src/audio/midi/juce_MidiOutput.cpp; sourceTree = SOURCE_ROOT; }; 899BD7E18BE1EF7CDF53784C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiOutput.h; path = ../../src/audio/midi/juce_MidiOutput.h; sourceTree = SOURCE_ROOT; }; - 1D420B75C62607886A571698 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_AU_Wrapper.mm; path = "../../extras/audio plugins/wrapper/AU/juce_AU_Wrapper.mm"; sourceTree = SOURCE_ROOT; }; - 451684777825E63BCAD84F80 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RTAS_DigiCode_Header.h; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode_Header.h"; sourceTree = SOURCE_ROOT; }; - 34AB1C83D6D5BB468415EF9F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode1.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode1.cpp"; sourceTree = SOURCE_ROOT; }; - 1DF9F1811D91207E3399ED73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode2.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode2.cpp"; sourceTree = SOURCE_ROOT; }; - 0756D78F534D94A6D21DEB66 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode3.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode3.cpp"; sourceTree = SOURCE_ROOT; }; - 7AA357732543414F6B93B193 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_RTAS_MacUtilities.mm; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_MacUtilities.mm"; sourceTree = SOURCE_ROOT; }; - E99897FE7C6D6BF9FFDEBC08 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_WinUtilities.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_WinUtilities.cpp"; sourceTree = SOURCE_ROOT; }; - 84BB474B771F9ED7E2267589 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_Wrapper.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_Wrapper.cpp"; sourceTree = SOURCE_ROOT; }; - 8B169373A9223571680BFB71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_VST_Wrapper.cpp; path = "../../extras/audio plugins/wrapper/VST/juce_VST_Wrapper.cpp"; sourceTree = SOURCE_ROOT; }; - 4238044BB69E2FAEC7B16982 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_VST_Wrapper.mm; path = "../../extras/audio plugins/wrapper/VST/juce_VST_Wrapper.mm"; sourceTree = SOURCE_ROOT; }; - 6C5940264E5E38729E74EFD8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioFilterStreamer.cpp; path = "../../extras/audio plugins/wrapper/Standalone/juce_AudioFilterStreamer.cpp"; sourceTree = SOURCE_ROOT; }; - 955532BC480632ECF12F0481 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioFilterStreamer.h; path = "../../extras/audio plugins/wrapper/Standalone/juce_AudioFilterStreamer.h"; sourceTree = SOURCE_ROOT; }; - 235F9F5E2A3113B6B774869C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StandaloneFilterWindow.cpp; path = "../../extras/audio plugins/wrapper/Standalone/juce_StandaloneFilterWindow.cpp"; sourceTree = SOURCE_ROOT; }; - 014FB7F784D205EC810AAA52 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StandaloneFilterWindow.h; path = "../../extras/audio plugins/wrapper/Standalone/juce_StandaloneFilterWindow.h"; sourceTree = SOURCE_ROOT; }; - 6B3896A2CB1BB379BCDD9575 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_IncludeCharacteristics.h; path = "../../extras/audio plugins/wrapper/juce_IncludeCharacteristics.h"; sourceTree = SOURCE_ROOT; }; - 6F4941C73B96CE8028AD7999 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PluginHeaders.h; path = "../../extras/audio plugins/wrapper/juce_PluginHeaders.h"; sourceTree = SOURCE_ROOT; }; - 21EAF73E1E8D839ABDF6B1CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PluginHostType.h; path = "../../extras/audio plugins/wrapper/juce_PluginHostType.h"; sourceTree = SOURCE_ROOT; }; + 7B88F6B8E3A10CEAD9B0EE88 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_AU_Wrapper.mm; path = ../../src/audio/plugin_client/AU/juce_AU_Wrapper.mm; sourceTree = SOURCE_ROOT; }; + 1101E8CB676FDEEF0A89D921 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RTAS_DigiCode_Header.h; path = ../../src/audio/plugin_client/RTAS/juce_RTAS_DigiCode_Header.h; sourceTree = SOURCE_ROOT; }; + F222E5825D83E711C9F1B789 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode1.cpp; path = ../../src/audio/plugin_client/RTAS/juce_RTAS_DigiCode1.cpp; sourceTree = SOURCE_ROOT; }; + CEAA2B84462EF0B5026EAB0A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode2.cpp; path = ../../src/audio/plugin_client/RTAS/juce_RTAS_DigiCode2.cpp; sourceTree = SOURCE_ROOT; }; + 9A3151864FB90A6A4BCCAE9B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode3.cpp; path = ../../src/audio/plugin_client/RTAS/juce_RTAS_DigiCode3.cpp; sourceTree = SOURCE_ROOT; }; + BCE37F0D994C0ADF2CCFF796 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_RTAS_MacUtilities.mm; path = ../../src/audio/plugin_client/RTAS/juce_RTAS_MacUtilities.mm; sourceTree = SOURCE_ROOT; }; + F52ECCD6C02108A2D7F672F5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_WinUtilities.cpp; path = ../../src/audio/plugin_client/RTAS/juce_RTAS_WinUtilities.cpp; sourceTree = SOURCE_ROOT; }; + 833C3F205F05BA4ADC883E53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_Wrapper.cpp; path = ../../src/audio/plugin_client/RTAS/juce_RTAS_Wrapper.cpp; sourceTree = SOURCE_ROOT; }; + 69C4FF0DD888BA25477561C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_VST_Wrapper.cpp; path = ../../src/audio/plugin_client/VST/juce_VST_Wrapper.cpp; sourceTree = SOURCE_ROOT; }; + 37E1FC756833849B8C7C1215 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_VST_Wrapper.mm; path = ../../src/audio/plugin_client/VST/juce_VST_Wrapper.mm; sourceTree = SOURCE_ROOT; }; + 2741189DF800566462E24A14 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StandaloneFilterWindow.cpp; path = ../../src/audio/plugin_client/Standalone/juce_StandaloneFilterWindow.cpp; sourceTree = SOURCE_ROOT; }; + FAC43251D74E5140740BEF60 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StandaloneFilterWindow.h; path = ../../src/audio/plugin_client/Standalone/juce_StandaloneFilterWindow.h; sourceTree = SOURCE_ROOT; }; + 2E96F55074F4EB74171EE6B6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_IncludeCharacteristics.h; path = ../../src/audio/plugin_client/juce_IncludeCharacteristics.h; sourceTree = SOURCE_ROOT; }; + 13F64389F0E25731A98E92CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PluginHeaders.h; path = ../../src/audio/plugin_client/juce_PluginHeaders.h; sourceTree = SOURCE_ROOT; }; + 7CDC2FA849B7ED73A2638A11 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PluginHostType.h; path = ../../src/audio/plugin_client/juce_PluginHostType.h; sourceTree = SOURCE_ROOT; }; D76BDCCF9E1A1F26A8F578F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioUnitPluginFormat.h; path = ../../src/audio/plugin_host/formats/juce_AudioUnitPluginFormat.h; sourceTree = SOURCE_ROOT; }; 50FAF92038EBD0127900AAA1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_AudioUnitPluginFormat.mm; path = ../../src/audio/plugin_host/formats/juce_AudioUnitPluginFormat.mm; sourceTree = SOURCE_ROOT; }; 2073E1A497363200233CD34E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DirectXPluginFormat.h; path = ../../src/audio/plugin_host/formats/juce_DirectXPluginFormat.h; sourceTree = SOURCE_ROOT; }; @@ -1191,31 +1189,29 @@ 01712FF0A160032FA1DAA8C2, 899BD7E18BE1EF7CDF53784C ); name = midi; sourceTree = ""; }; 844109733F09B5915AF75797 = { isa = PBXGroup; children = ( - 1D420B75C62607886A571698 ); name = AU; sourceTree = ""; }; + 7B88F6B8E3A10CEAD9B0EE88 ); name = AU; sourceTree = ""; }; FAA6189E385BD13EFEFE2E08 = { isa = PBXGroup; children = ( - 451684777825E63BCAD84F80, - 34AB1C83D6D5BB468415EF9F, - 1DF9F1811D91207E3399ED73, - 0756D78F534D94A6D21DEB66, - 7AA357732543414F6B93B193, - E99897FE7C6D6BF9FFDEBC08, - 84BB474B771F9ED7E2267589 ); name = RTAS; sourceTree = ""; }; + 1101E8CB676FDEEF0A89D921, + F222E5825D83E711C9F1B789, + CEAA2B84462EF0B5026EAB0A, + 9A3151864FB90A6A4BCCAE9B, + BCE37F0D994C0ADF2CCFF796, + F52ECCD6C02108A2D7F672F5, + 833C3F205F05BA4ADC883E53 ); name = RTAS; sourceTree = ""; }; EBF4EE8E84A562DE2EBAE6BB = { isa = PBXGroup; children = ( - 8B169373A9223571680BFB71, - 4238044BB69E2FAEC7B16982 ); name = VST; sourceTree = ""; }; + 69C4FF0DD888BA25477561C8, + 37E1FC756833849B8C7C1215 ); name = VST; sourceTree = ""; }; 0F0D49D13522C94A0F37D4AB = { isa = PBXGroup; children = ( - 6C5940264E5E38729E74EFD8, - 955532BC480632ECF12F0481, - 235F9F5E2A3113B6B774869C, - 014FB7F784D205EC810AAA52 ); name = Standalone; sourceTree = ""; }; + 2741189DF800566462E24A14, + FAC43251D74E5140740BEF60 ); name = Standalone; sourceTree = ""; }; 2805C9C796CD7D77C2D662BF = { isa = PBXGroup; children = ( 844109733F09B5915AF75797, FAA6189E385BD13EFEFE2E08, EBF4EE8E84A562DE2EBAE6BB, 0F0D49D13522C94A0F37D4AB, - 6B3896A2CB1BB379BCDD9575, - 6F4941C73B96CE8028AD7999, - 21EAF73E1E8D839ABDF6B1CF ); name = plugin_client; sourceTree = ""; }; + 2E96F55074F4EB74171EE6B6, + 13F64389F0E25731A98E92CD, + 7CDC2FA849B7ED73A2638A11 ); name = plugin_client; sourceTree = ""; }; B1F82C796B56FCD97D211D8E = { isa = PBXGroup; children = ( D76BDCCF9E1A1F26A8F578F0, 50FAF92038EBD0127900AAA1, diff --git a/Builds/VisualStudio2005/Juce.vcproj b/Builds/VisualStudio2005/Juce.vcproj index 0e90d6a045..5aac2608d3 100644 --- a/Builds/VisualStudio2005/Juce.vcproj +++ b/Builds/VisualStudio2005/Juce.vcproj @@ -201,11 +201,11 @@ - + - - + + @@ -215,7 +215,7 @@ - + @@ -225,7 +225,7 @@ - + @@ -235,8 +235,8 @@ - - + + @@ -246,7 +246,7 @@ - + @@ -258,7 +258,7 @@ - + @@ -268,10 +268,10 @@ - + - + @@ -281,22 +281,11 @@ - - - - - - - - - - + - - - + + + diff --git a/Builds/VisualStudio2008/Juce.vcproj b/Builds/VisualStudio2008/Juce.vcproj index 76bed7f53a..a9aca45a18 100644 --- a/Builds/VisualStudio2008/Juce.vcproj +++ b/Builds/VisualStudio2008/Juce.vcproj @@ -201,11 +201,11 @@ - + - - + + @@ -215,7 +215,7 @@ - + @@ -225,7 +225,7 @@ - + @@ -235,8 +235,8 @@ - - + + @@ -246,7 +246,7 @@ - + @@ -258,7 +258,7 @@ - + @@ -268,10 +268,10 @@ - + - + @@ -281,22 +281,11 @@ - - - - - - - - - - + - - - + + + diff --git a/Builds/VisualStudio2008_DLL/Juce.vcproj b/Builds/VisualStudio2008_DLL/Juce.vcproj index 171ecd2875..27d832d9ca 100644 --- a/Builds/VisualStudio2008_DLL/Juce.vcproj +++ b/Builds/VisualStudio2008_DLL/Juce.vcproj @@ -203,11 +203,11 @@ - + - - + + @@ -217,7 +217,7 @@ - + @@ -227,7 +227,7 @@ - + @@ -237,8 +237,8 @@ - - + + @@ -248,7 +248,7 @@ - + @@ -260,7 +260,7 @@ - + @@ -270,10 +270,10 @@ - + - + @@ -283,22 +283,11 @@ - - - - - - - - - - + - - - + + + diff --git a/Builds/VisualStudio2010/Juce.vcxproj b/Builds/VisualStudio2010/Juce.vcxproj index b4ce4827df..59c7090bd6 100644 --- a/Builds/VisualStudio2010/Juce.vcxproj +++ b/Builds/VisualStudio2010/Juce.vcxproj @@ -499,12 +499,11 @@ - - - - - - + + + + + diff --git a/Builds/VisualStudio2010/Juce.vcxproj.filters b/Builds/VisualStudio2010/Juce.vcxproj.filters index 57f29cbf93..4f15d71616 100644 --- a/Builds/VisualStudio2010/Juce.vcxproj.filters +++ b/Builds/VisualStudio2010/Juce.vcxproj.filters @@ -307,37 +307,34 @@ Juce\Source\audio\midi - + Juce\Source\audio\plugin_client\AU - + Juce\Source\audio\plugin_client\RTAS - + Juce\Source\audio\plugin_client\RTAS - + Juce\Source\audio\plugin_client\RTAS - + Juce\Source\audio\plugin_client\RTAS - + Juce\Source\audio\plugin_client\RTAS - + Juce\Source\audio\plugin_client\RTAS - + Juce\Source\audio\plugin_client\VST - + Juce\Source\audio\plugin_client\VST - - Juce\Source\audio\plugin_client\Standalone - - + Juce\Source\audio\plugin_client\Standalone @@ -1431,22 +1428,19 @@ Juce\Source\audio\midi - + Juce\Source\audio\plugin_client\RTAS - - Juce\Source\audio\plugin_client\Standalone - - + Juce\Source\audio\plugin_client\Standalone - + Juce\Source\audio\plugin_client - + Juce\Source\audio\plugin_client - + Juce\Source\audio\plugin_client diff --git a/Builds/iOS/Juce.xcodeproj/project.pbxproj b/Builds/iOS/Juce.xcodeproj/project.pbxproj index bbbc5c96b7..406ad43600 100644 --- a/Builds/iOS/Juce.xcodeproj/project.pbxproj +++ b/Builds/iOS/Juce.xcodeproj/project.pbxproj @@ -450,23 +450,21 @@ DD3886D45B5988B4DAC2D049 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiMessageSequence.h; path = ../../src/audio/midi/juce_MidiMessageSequence.h; sourceTree = SOURCE_ROOT; }; 01712FF0A160032FA1DAA8C2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MidiOutput.cpp; path = ../../src/audio/midi/juce_MidiOutput.cpp; sourceTree = SOURCE_ROOT; }; 899BD7E18BE1EF7CDF53784C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MidiOutput.h; path = ../../src/audio/midi/juce_MidiOutput.h; sourceTree = SOURCE_ROOT; }; - 1D420B75C62607886A571698 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_AU_Wrapper.mm; path = "../../extras/audio plugins/wrapper/AU/juce_AU_Wrapper.mm"; sourceTree = SOURCE_ROOT; }; - 451684777825E63BCAD84F80 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RTAS_DigiCode_Header.h; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode_Header.h"; sourceTree = SOURCE_ROOT; }; - 34AB1C83D6D5BB468415EF9F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode1.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode1.cpp"; sourceTree = SOURCE_ROOT; }; - 1DF9F1811D91207E3399ED73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode2.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode2.cpp"; sourceTree = SOURCE_ROOT; }; - 0756D78F534D94A6D21DEB66 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode3.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_DigiCode3.cpp"; sourceTree = SOURCE_ROOT; }; - 7AA357732543414F6B93B193 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_RTAS_MacUtilities.mm; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_MacUtilities.mm"; sourceTree = SOURCE_ROOT; }; - E99897FE7C6D6BF9FFDEBC08 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_WinUtilities.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_WinUtilities.cpp"; sourceTree = SOURCE_ROOT; }; - 84BB474B771F9ED7E2267589 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_Wrapper.cpp; path = "../../extras/audio plugins/wrapper/RTAS/juce_RTAS_Wrapper.cpp"; sourceTree = SOURCE_ROOT; }; - 8B169373A9223571680BFB71 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_VST_Wrapper.cpp; path = "../../extras/audio plugins/wrapper/VST/juce_VST_Wrapper.cpp"; sourceTree = SOURCE_ROOT; }; - 4238044BB69E2FAEC7B16982 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_VST_Wrapper.mm; path = "../../extras/audio plugins/wrapper/VST/juce_VST_Wrapper.mm"; sourceTree = SOURCE_ROOT; }; - 6C5940264E5E38729E74EFD8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioFilterStreamer.cpp; path = "../../extras/audio plugins/wrapper/Standalone/juce_AudioFilterStreamer.cpp"; sourceTree = SOURCE_ROOT; }; - 955532BC480632ECF12F0481 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioFilterStreamer.h; path = "../../extras/audio plugins/wrapper/Standalone/juce_AudioFilterStreamer.h"; sourceTree = SOURCE_ROOT; }; - 235F9F5E2A3113B6B774869C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StandaloneFilterWindow.cpp; path = "../../extras/audio plugins/wrapper/Standalone/juce_StandaloneFilterWindow.cpp"; sourceTree = SOURCE_ROOT; }; - 014FB7F784D205EC810AAA52 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StandaloneFilterWindow.h; path = "../../extras/audio plugins/wrapper/Standalone/juce_StandaloneFilterWindow.h"; sourceTree = SOURCE_ROOT; }; - 6B3896A2CB1BB379BCDD9575 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_IncludeCharacteristics.h; path = "../../extras/audio plugins/wrapper/juce_IncludeCharacteristics.h"; sourceTree = SOURCE_ROOT; }; - 6F4941C73B96CE8028AD7999 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PluginHeaders.h; path = "../../extras/audio plugins/wrapper/juce_PluginHeaders.h"; sourceTree = SOURCE_ROOT; }; - 21EAF73E1E8D839ABDF6B1CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PluginHostType.h; path = "../../extras/audio plugins/wrapper/juce_PluginHostType.h"; sourceTree = SOURCE_ROOT; }; + 7B88F6B8E3A10CEAD9B0EE88 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_AU_Wrapper.mm; path = ../../src/audio/plugin_client/AU/juce_AU_Wrapper.mm; sourceTree = SOURCE_ROOT; }; + 1101E8CB676FDEEF0A89D921 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_RTAS_DigiCode_Header.h; path = ../../src/audio/plugin_client/RTAS/juce_RTAS_DigiCode_Header.h; sourceTree = SOURCE_ROOT; }; + F222E5825D83E711C9F1B789 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode1.cpp; path = ../../src/audio/plugin_client/RTAS/juce_RTAS_DigiCode1.cpp; sourceTree = SOURCE_ROOT; }; + CEAA2B84462EF0B5026EAB0A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode2.cpp; path = ../../src/audio/plugin_client/RTAS/juce_RTAS_DigiCode2.cpp; sourceTree = SOURCE_ROOT; }; + 9A3151864FB90A6A4BCCAE9B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode3.cpp; path = ../../src/audio/plugin_client/RTAS/juce_RTAS_DigiCode3.cpp; sourceTree = SOURCE_ROOT; }; + BCE37F0D994C0ADF2CCFF796 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_RTAS_MacUtilities.mm; path = ../../src/audio/plugin_client/RTAS/juce_RTAS_MacUtilities.mm; sourceTree = SOURCE_ROOT; }; + F52ECCD6C02108A2D7F672F5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_WinUtilities.cpp; path = ../../src/audio/plugin_client/RTAS/juce_RTAS_WinUtilities.cpp; sourceTree = SOURCE_ROOT; }; + 833C3F205F05BA4ADC883E53 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_Wrapper.cpp; path = ../../src/audio/plugin_client/RTAS/juce_RTAS_Wrapper.cpp; sourceTree = SOURCE_ROOT; }; + 69C4FF0DD888BA25477561C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_VST_Wrapper.cpp; path = ../../src/audio/plugin_client/VST/juce_VST_Wrapper.cpp; sourceTree = SOURCE_ROOT; }; + 37E1FC756833849B8C7C1215 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_VST_Wrapper.mm; path = ../../src/audio/plugin_client/VST/juce_VST_Wrapper.mm; sourceTree = SOURCE_ROOT; }; + 2741189DF800566462E24A14 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StandaloneFilterWindow.cpp; path = ../../src/audio/plugin_client/Standalone/juce_StandaloneFilterWindow.cpp; sourceTree = SOURCE_ROOT; }; + FAC43251D74E5140740BEF60 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_StandaloneFilterWindow.h; path = ../../src/audio/plugin_client/Standalone/juce_StandaloneFilterWindow.h; sourceTree = SOURCE_ROOT; }; + 2E96F55074F4EB74171EE6B6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_IncludeCharacteristics.h; path = ../../src/audio/plugin_client/juce_IncludeCharacteristics.h; sourceTree = SOURCE_ROOT; }; + 13F64389F0E25731A98E92CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PluginHeaders.h; path = ../../src/audio/plugin_client/juce_PluginHeaders.h; sourceTree = SOURCE_ROOT; }; + 7CDC2FA849B7ED73A2638A11 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_PluginHostType.h; path = ../../src/audio/plugin_client/juce_PluginHostType.h; sourceTree = SOURCE_ROOT; }; D76BDCCF9E1A1F26A8F578F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_AudioUnitPluginFormat.h; path = ../../src/audio/plugin_host/formats/juce_AudioUnitPluginFormat.h; sourceTree = SOURCE_ROOT; }; 50FAF92038EBD0127900AAA1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_AudioUnitPluginFormat.mm; path = ../../src/audio/plugin_host/formats/juce_AudioUnitPluginFormat.mm; sourceTree = SOURCE_ROOT; }; 2073E1A497363200233CD34E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_DirectXPluginFormat.h; path = ../../src/audio/plugin_host/formats/juce_DirectXPluginFormat.h; sourceTree = SOURCE_ROOT; }; @@ -1191,31 +1189,29 @@ 01712FF0A160032FA1DAA8C2, 899BD7E18BE1EF7CDF53784C ); name = midi; sourceTree = ""; }; 844109733F09B5915AF75797 = { isa = PBXGroup; children = ( - 1D420B75C62607886A571698 ); name = AU; sourceTree = ""; }; + 7B88F6B8E3A10CEAD9B0EE88 ); name = AU; sourceTree = ""; }; FAA6189E385BD13EFEFE2E08 = { isa = PBXGroup; children = ( - 451684777825E63BCAD84F80, - 34AB1C83D6D5BB468415EF9F, - 1DF9F1811D91207E3399ED73, - 0756D78F534D94A6D21DEB66, - 7AA357732543414F6B93B193, - E99897FE7C6D6BF9FFDEBC08, - 84BB474B771F9ED7E2267589 ); name = RTAS; sourceTree = ""; }; + 1101E8CB676FDEEF0A89D921, + F222E5825D83E711C9F1B789, + CEAA2B84462EF0B5026EAB0A, + 9A3151864FB90A6A4BCCAE9B, + BCE37F0D994C0ADF2CCFF796, + F52ECCD6C02108A2D7F672F5, + 833C3F205F05BA4ADC883E53 ); name = RTAS; sourceTree = ""; }; EBF4EE8E84A562DE2EBAE6BB = { isa = PBXGroup; children = ( - 8B169373A9223571680BFB71, - 4238044BB69E2FAEC7B16982 ); name = VST; sourceTree = ""; }; + 69C4FF0DD888BA25477561C8, + 37E1FC756833849B8C7C1215 ); name = VST; sourceTree = ""; }; 0F0D49D13522C94A0F37D4AB = { isa = PBXGroup; children = ( - 6C5940264E5E38729E74EFD8, - 955532BC480632ECF12F0481, - 235F9F5E2A3113B6B774869C, - 014FB7F784D205EC810AAA52 ); name = Standalone; sourceTree = ""; }; + 2741189DF800566462E24A14, + FAC43251D74E5140740BEF60 ); name = Standalone; sourceTree = ""; }; 2805C9C796CD7D77C2D662BF = { isa = PBXGroup; children = ( 844109733F09B5915AF75797, FAA6189E385BD13EFEFE2E08, EBF4EE8E84A562DE2EBAE6BB, 0F0D49D13522C94A0F37D4AB, - 6B3896A2CB1BB379BCDD9575, - 6F4941C73B96CE8028AD7999, - 21EAF73E1E8D839ABDF6B1CF ); name = plugin_client; sourceTree = ""; }; + 2E96F55074F4EB74171EE6B6, + 13F64389F0E25731A98E92CD, + 7CDC2FA849B7ED73A2638A11 ); name = plugin_client; sourceTree = ""; }; B1F82C796B56FCD97D211D8E = { isa = PBXGroup; children = ( D76BDCCF9E1A1F26A8F578F0, 50FAF92038EBD0127900AAA1, diff --git a/Juce.jucer b/Juce.jucer index 78ba86c6f6..ca0d02cbf9 100644 --- a/Juce.jucer +++ b/Juce.jucer @@ -250,10 +250,6 @@ file="src/audio/plugin_client/VST/juce_VST_Wrapper.mm"/> - - - + diff --git a/extras/audio plugins/demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj b/extras/audio plugins/demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj index a3cf6dea60..119dd4b717 100644 --- a/extras/audio plugins/demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj +++ b/extras/audio plugins/demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj @@ -145,7 +145,7 @@ - + diff --git a/juce_amalgamated.cpp b/juce_amalgamated.cpp index 44a46b64ce..f01d81ec59 100644 --- a/juce_amalgamated.cpp +++ b/juce_amalgamated.cpp @@ -16547,22 +16547,17 @@ void Thread::stopAllThreads (const int timeOutMilliseconds) void SpinLock::enter() const noexcept { - if (! lock.compareAndSetBool (1, 0)) + if (! tryEnter()) { for (int i = 20; --i >= 0;) - if (lock.compareAndSetBool (1, 0)) + if (tryEnter()) return; - while (! lock.compareAndSetBool (1, 0)) + while (! tryEnter()) Thread::yield(); } } -bool SpinLock::tryEnter() const noexcept -{ - return lock.compareAndSetBool (1, 0); -} - END_JUCE_NAMESPACE /*** End of inlined file: juce_Thread.cpp ***/ @@ -39078,6 +39073,8 @@ class InternalTimerThread : private Thread, private AsyncUpdater { public: + typedef SpinLock LockType; + InternalTimerThread() : Thread ("Juce Timer"), firstTimer (nullptr), @@ -39155,7 +39152,7 @@ public: void callTimers() { - const SpinLock::ScopedLockType sl (lock); + const LockType::ScopedLockType sl (lock); while (firstTimer != nullptr && firstTimer->countdownMs <= 0) { @@ -39165,7 +39162,7 @@ public: removeTimer (t); addTimer (t); - const SpinLock::ScopedUnlockType ul (lock); + const LockType::ScopedUnlockType ul (lock); JUCE_TRY { @@ -39240,7 +39237,7 @@ public: private: friend class Timer; static InternalTimerThread* instance; - static SpinLock lock; + static LockType lock; Timer* volatile firstTimer; Atomic callbackNeeded; @@ -39331,7 +39328,7 @@ private: int getTimeUntilFirstTimer (const int numMillisecsElapsed) const { - const SpinLock::ScopedLockType sl (lock); + const LockType::ScopedLockType sl (lock); for (Timer* t = firstTimer; t != nullptr; t = t->next) t->countdownMs -= numMillisecsElapsed; @@ -39348,7 +39345,7 @@ private: }; InternalTimerThread* InternalTimerThread::instance = nullptr; -SpinLock InternalTimerThread::lock; +InternalTimerThread::LockType InternalTimerThread::lock; void juce_callAnyTimersSynchronously() { @@ -39366,7 +39363,7 @@ Timer::Timer() noexcept next (nullptr) { #if JUCE_DEBUG - const SpinLock::ScopedLockType sl (InternalTimerThread::lock); + const InternalTimerThread::LockType::ScopedLockType sl (InternalTimerThread::lock); activeTimers.add (this); #endif } @@ -39378,7 +39375,7 @@ Timer::Timer (const Timer&) noexcept next (nullptr) { #if JUCE_DEBUG - const SpinLock::ScopedLockType sl (InternalTimerThread::lock); + const InternalTimerThread::LockType::ScopedLockType sl (InternalTimerThread::lock); activeTimers.add (this); #endif } @@ -39394,7 +39391,7 @@ Timer::~Timer() void Timer::startTimer (const int interval) noexcept { - const SpinLock::ScopedLockType sl (InternalTimerThread::lock); + const InternalTimerThread::LockType::ScopedLockType sl (InternalTimerThread::lock); #if JUCE_DEBUG // this isn't a valid object! Your timer might be a dangling pointer or something.. @@ -39415,7 +39412,7 @@ void Timer::startTimer (const int interval) noexcept void Timer::stopTimer() noexcept { - const SpinLock::ScopedLockType sl (InternalTimerThread::lock); + const InternalTimerThread::LockType::ScopedLockType sl (InternalTimerThread::lock); #if JUCE_DEBUG // this isn't a valid object! Your timer might be a dangling pointer or something.. diff --git a/juce_amalgamated.h b/juce_amalgamated.h index 6d5d7616fb..1783cc4133 100644 --- a/juce_amalgamated.h +++ b/juce_amalgamated.h @@ -73,7 +73,7 @@ namespace JuceDummyNamespace {} */ #define JUCE_MAJOR_VERSION 1 #define JUCE_MINOR_VERSION 53 -#define JUCE_BUILDNUMBER 72 +#define JUCE_BUILDNUMBER 73 /** Current Juce version number. @@ -22135,7 +22135,10 @@ public: void enter() const noexcept; /** Attempts to acquire the lock, returning true if this was successful. */ - bool tryEnter() const noexcept; + inline bool tryEnter() const noexcept + { + return lock.compareAndSetBool (1, 0); + } /** Releases the lock. */ inline void exit() const noexcept diff --git a/src/audio/plugin_client/RTAS/juce_RTAS_WinUtilities.cpp b/src/audio/plugin_client/RTAS/juce_RTAS_WinUtilities.cpp index cfb507b368..8896590b2f 100644 --- a/src/audio/plugin_client/RTAS/juce_RTAS_WinUtilities.cpp +++ b/src/audio/plugin_client/RTAS/juce_RTAS_WinUtilities.cpp @@ -23,22 +23,18 @@ ============================================================================== */ -#if _MSC_VER - // (these functions are in their own file because of problems including windows.h // at the same time as the Digi headers) -#include +#if _MSC_VER -#ifdef _MSC_VER - #pragma pack (push, 8) -#endif +#define _DO_NOT_DECLARE_INTERLOCKED_INTRINSICS_IN_MEMORY // (workaround for a VC build problem) +#include +#include +#pragma pack (push, 8) #include "../juce_PluginHeaders.h" - -#ifdef _MSC_VER - #pragma pack (pop) -#endif +#pragma pack (pop) #if JucePlugin_Build_RTAS diff --git a/src/audio/plugin_client/Standalone/juce_AudioFilterStreamer.cpp b/src/audio/plugin_client/Standalone/juce_AudioFilterStreamer.cpp deleted file mode 100644 index 4e71f875bc..0000000000 --- a/src/audio/plugin_client/Standalone/juce_AudioFilterStreamer.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-11 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_AudioFilterStreamer.h" -#include "../juce_IncludeCharacteristics.h" - - -//============================================================================== -AudioFilterStreamingDeviceManager::AudioFilterStreamingDeviceManager() -{ - player = new AudioProcessorPlayer(); - - addAudioCallback (player); - addMidiInputCallback (String::empty, player); -} - -AudioFilterStreamingDeviceManager::~AudioFilterStreamingDeviceManager() -{ - setFilter (nullptr); - - removeMidiInputCallback (String::empty, player); - removeAudioCallback (player); - - clearSingletonInstance(); -} - -void AudioFilterStreamingDeviceManager::setFilter (AudioProcessor* filterToStream) -{ - player->setProcessor (filterToStream); -} - -juce_ImplementSingleton (AudioFilterStreamingDeviceManager); diff --git a/src/audio/plugin_client/Standalone/juce_AudioFilterStreamer.h b/src/audio/plugin_client/Standalone/juce_AudioFilterStreamer.h deleted file mode 100644 index 456e5c82b9..0000000000 --- a/src/audio/plugin_client/Standalone/juce_AudioFilterStreamer.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-11 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_AUDIOFILTERSTREAMER_JUCEHEADER__ -#define __JUCE_AUDIOFILTERSTREAMER_JUCEHEADER__ - -#include "../juce_PluginHeaders.h" - - -//============================================================================== -/** - Wraps an AudioFilterStreamer in an AudioDeviceManager to make it easy to - create a standalone filter. - - This simply acts as a singleton AudioDeviceManager, which continuously - streams audio from the filter you give it with the setFilter() method. - - To use it, simply create an instance of it (or use getInstance() if you're - using it as a singleton), initialise it like you would a normal - AudioDeviceManager, and call setFilter() to start it running your plugin. - -*/ -class AudioFilterStreamingDeviceManager : public AudioDeviceManager -{ -public: - //============================================================================== - AudioFilterStreamingDeviceManager(); - ~AudioFilterStreamingDeviceManager(); - - juce_DeclareSingleton (AudioFilterStreamingDeviceManager, true); - - //============================================================================== - /** Tells the device which filter to stream audio through. - - Pass in 0 to deselect the current filter. - */ - void setFilter (AudioProcessor* filterToStream); - -private: - //============================================================================== - ScopedPointer player; - - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AudioFilterStreamingDeviceManager); -}; - - -#endif // __JUCE_AUDIOFILTERSTREAMER_JUCEHEADER__ diff --git a/src/audio/plugin_client/Standalone/juce_StandaloneFilterWindow.cpp b/src/audio/plugin_client/Standalone/juce_StandaloneFilterWindow.cpp index 64a9d90f2f..022e799198 100644 --- a/src/audio/plugin_client/Standalone/juce_StandaloneFilterWindow.cpp +++ b/src/audio/plugin_client/Standalone/juce_StandaloneFilterWindow.cpp @@ -24,7 +24,7 @@ */ #include "juce_StandaloneFilterWindow.h" -#include "../juce_PluginHeaders.h" + //============================================================================== /** Somewhere in the codebase of your plugin, you need to implement this function @@ -50,57 +50,57 @@ StandaloneFilterWindow::StandaloneFilterWindow (const String& title, JUCE_TRY { filter = createPluginFilter(); + } + JUCE_CATCH_ALL - if (filter != nullptr) - { - filter->setPlayConfigDetails (JucePlugin_MaxNumInputChannels, - JucePlugin_MaxNumOutputChannels, - 44100, 512); - - PropertySet* const globalSettings = getGlobalSettings(); + if (filter == nullptr) + { + jassertfalse // Your filter didn't create correctly! In a standalone app that's not too great. + JUCEApplication::quit(); + } - deviceManager = new AudioFilterStreamingDeviceManager(); - deviceManager->setFilter (filter); + filter->setPlayConfigDetails (JucePlugin_MaxNumInputChannels, + JucePlugin_MaxNumOutputChannels, + 44100, 512); - ScopedPointer savedState; + PropertySet* const globalSettings = getGlobalSettings(); - if (globalSettings != nullptr) - savedState = globalSettings->getXmlValue ("audioSetup"); + deviceManager = new AudioDeviceManager(); + deviceManager->addAudioCallback (&player); + deviceManager->addMidiInputCallback (String::empty, &player); - deviceManager->initialise (filter->getNumInputChannels(), - filter->getNumOutputChannels(), - savedState, - true); + player.setProcessor (filter); - if (globalSettings != nullptr) - { - MemoryBlock data; + ScopedPointer savedState; - if (data.fromBase64Encoding (globalSettings->getValue ("filterState")) - && data.getSize() > 0) - { - filter->setStateInformation (data.getData(), data.getSize()); - } - } + if (globalSettings != nullptr) + savedState = globalSettings->getXmlValue ("audioSetup"); - setContentOwned (filter->createEditorIfNeeded(), true); + deviceManager->initialise (filter->getNumInputChannels(), + filter->getNumOutputChannels(), + savedState, + true); - const int x = globalSettings->getIntValue ("windowX", -100); - const int y = globalSettings->getIntValue ("windowY", -100); + if (globalSettings != nullptr) + { + MemoryBlock data; - if (x != -100 && y != -100) - setBoundsConstrained (Rectangle (x, y, getWidth(), getHeight())); - else - centreWithSize (getWidth(), getHeight()); + if (data.fromBase64Encoding (globalSettings->getValue ("filterState")) + && data.getSize() > 0) + { + filter->setStateInformation (data.getData(), data.getSize()); } } - JUCE_CATCH_ALL - if (deviceManager == nullptr) - { - jassertfalse // Your filter didn't create correctly! In a standalone app that's not too great. - JUCEApplication::quit(); - } + setContentOwned (filter->createEditorIfNeeded(), true); + + const int x = globalSettings->getIntValue ("windowX", -100); + const int y = globalSettings->getIntValue ("windowY", -100); + + if (x != -100 && y != -100) + setBoundsConstrained (Rectangle (x, y, getWidth(), getHeight())); + else + centreWithSize (getWidth(), getHeight()); } StandaloneFilterWindow::~StandaloneFilterWindow() @@ -119,6 +119,8 @@ StandaloneFilterWindow::~StandaloneFilterWindow() } } + deviceManager->removeMidiInputCallback (String::empty, &player); + deviceManager->removeAudioCallback (&player); deviceManager = nullptr; if (globalSettings != nullptr && filter != nullptr) @@ -135,8 +137,7 @@ StandaloneFilterWindow::~StandaloneFilterWindow() //============================================================================== void StandaloneFilterWindow::deleteFilter() { - if (deviceManager != nullptr) - deviceManager->setFilter (nullptr); + player.setProcessor (nullptr); if (filter != nullptr && getContentComponent() != nullptr) { @@ -156,7 +157,7 @@ void StandaloneFilterWindow::resetFilter() if (filter != nullptr) { if (deviceManager != nullptr) - deviceManager->setFilter (filter); + player.setProcessor (filter); setContentOwned (filter->createEditorIfNeeded(), true); } @@ -258,36 +259,23 @@ void StandaloneFilterWindow::resized() void StandaloneFilterWindow::buttonClicked (Button*) { - if (filter == nullptr) - return; - - PopupMenu m; - m.addItem (1, TRANS("Audio Settings...")); - m.addSeparator(); - m.addItem (2, TRANS("Save current state...")); - m.addItem (3, TRANS("Load a saved state...")); - m.addSeparator(); - m.addItem (4, TRANS("Reset to default state")); - - switch (m.showAt (&optionsButton)) + if (filter != nullptr) { - case 1: - showAudioSettingsDialog(); - break; - - case 2: - saveState(); - break; - - case 3: - loadState(); - break; - - case 4: - resetFilter(); - break; - - default: - break; + PopupMenu m; + m.addItem (1, TRANS("Audio Settings...")); + m.addSeparator(); + m.addItem (2, TRANS("Save current state...")); + m.addItem (3, TRANS("Load a saved state...")); + m.addSeparator(); + m.addItem (4, TRANS("Reset to default state")); + + switch (m.showAt (&optionsButton)) + { + case 1: showAudioSettingsDialog(); break; + case 2: saveState(); break; + case 3: loadState(); break; + case 4: resetFilter(); break; + default: break; + } } } diff --git a/src/audio/plugin_client/Standalone/juce_StandaloneFilterWindow.h b/src/audio/plugin_client/Standalone/juce_StandaloneFilterWindow.h index 91e1a9adf9..c477440c35 100644 --- a/src/audio/plugin_client/Standalone/juce_StandaloneFilterWindow.h +++ b/src/audio/plugin_client/Standalone/juce_StandaloneFilterWindow.h @@ -26,7 +26,7 @@ #ifndef __JUCE_STANDALONEFILTERWINDOW_JUCEHEADER__ #define __JUCE_STANDALONEFILTERWINDOW_JUCEHEADER__ -#include "juce_AudioFilterStreamer.h" +#include "../juce_PluginHeaders.h" //============================================================================== @@ -76,7 +76,8 @@ public: private: ScopedPointer filter; - ScopedPointer deviceManager; + ScopedPointer deviceManager; + AudioProcessorPlayer player; TextButton optionsButton; void deleteFilter(); diff --git a/src/audio/plugin_client/juce_IncludeCharacteristics.h b/src/audio/plugin_client/juce_IncludeCharacteristics.h index 37a720c9a5..efb5a35c31 100644 --- a/src/audio/plugin_client/juce_IncludeCharacteristics.h +++ b/src/audio/plugin_client/juce_IncludeCharacteristics.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-9 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ diff --git a/src/audio/plugin_client/juce_PluginHeaders.h b/src/audio/plugin_client/juce_PluginHeaders.h index 7b6afb3f2d..efa729c660 100644 --- a/src/audio/plugin_client/juce_PluginHeaders.h +++ b/src/audio/plugin_client/juce_PluginHeaders.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-9 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -24,7 +24,7 @@ */ #include "juce_IncludeCharacteristics.h" -#include "../../../juce_amalgamated.h" +#include "../../../juce.h" #ifndef __JUCE_PLUGINHEADERS_JUCEHEADER__ #define __JUCE_PLUGINHEADERS_JUCEHEADER__ @@ -121,10 +121,10 @@ static void removeWindowHidingHooks (Component* comp) comp->getProperties() ["carbonEventRef"].toString().getHexValue64()); } -#else +#elif JUCE_MAC static void attachWindowHidingHooks (void*, void*, void*) {} static void removeWindowHidingHooks (void*) {} #endif -#endif +#endif // __JUCE_PLUGINHEADERS_JUCEHEADER__ diff --git a/src/audio/plugin_client/juce_PluginHostType.h b/src/audio/plugin_client/juce_PluginHostType.h index 1f824d5f85..1dd5751ae6 100644 --- a/src/audio/plugin_client/juce_PluginHostType.h +++ b/src/audio/plugin_client/juce_PluginHostType.h @@ -2,7 +2,7 @@ ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-9 by Raw Material Software Ltd. + Copyright 2004-11 by Raw Material Software Ltd. ------------------------------------------------------------------------------ @@ -23,7 +23,6 @@ ============================================================================== */ - //============================================================================== class PluginHostType { diff --git a/src/core/juce_StandardHeader.h b/src/core/juce_StandardHeader.h index de332ea03c..381f78bb37 100644 --- a/src/core/juce_StandardHeader.h +++ b/src/core/juce_StandardHeader.h @@ -33,7 +33,7 @@ */ #define JUCE_MAJOR_VERSION 1 #define JUCE_MINOR_VERSION 53 -#define JUCE_BUILDNUMBER 72 +#define JUCE_BUILDNUMBER 73 /** Current Juce version number. diff --git a/src/events/juce_Timer.cpp b/src/events/juce_Timer.cpp index 1630085700..eb76385fe4 100644 --- a/src/events/juce_Timer.cpp +++ b/src/events/juce_Timer.cpp @@ -44,6 +44,8 @@ class InternalTimerThread : private Thread, private AsyncUpdater { public: + typedef SpinLock LockType; + InternalTimerThread() : Thread ("Juce Timer"), firstTimer (nullptr), @@ -121,7 +123,7 @@ public: void callTimers() { - const SpinLock::ScopedLockType sl (lock); + const LockType::ScopedLockType sl (lock); while (firstTimer != nullptr && firstTimer->countdownMs <= 0) { @@ -131,7 +133,7 @@ public: removeTimer (t); addTimer (t); - const SpinLock::ScopedUnlockType ul (lock); + const LockType::ScopedUnlockType ul (lock); JUCE_TRY { @@ -206,7 +208,7 @@ public: private: friend class Timer; static InternalTimerThread* instance; - static SpinLock lock; + static LockType lock; Timer* volatile firstTimer; Atomic callbackNeeded; @@ -298,7 +300,7 @@ private: int getTimeUntilFirstTimer (const int numMillisecsElapsed) const { - const SpinLock::ScopedLockType sl (lock); + const LockType::ScopedLockType sl (lock); for (Timer* t = firstTimer; t != nullptr; t = t->next) t->countdownMs -= numMillisecsElapsed; @@ -315,7 +317,7 @@ private: }; InternalTimerThread* InternalTimerThread::instance = nullptr; -SpinLock InternalTimerThread::lock; +InternalTimerThread::LockType InternalTimerThread::lock; void juce_callAnyTimersSynchronously() { @@ -334,7 +336,7 @@ Timer::Timer() noexcept next (nullptr) { #if JUCE_DEBUG - const SpinLock::ScopedLockType sl (InternalTimerThread::lock); + const InternalTimerThread::LockType::ScopedLockType sl (InternalTimerThread::lock); activeTimers.add (this); #endif } @@ -346,7 +348,7 @@ Timer::Timer (const Timer&) noexcept next (nullptr) { #if JUCE_DEBUG - const SpinLock::ScopedLockType sl (InternalTimerThread::lock); + const InternalTimerThread::LockType::ScopedLockType sl (InternalTimerThread::lock); activeTimers.add (this); #endif } @@ -362,7 +364,7 @@ Timer::~Timer() void Timer::startTimer (const int interval) noexcept { - const SpinLock::ScopedLockType sl (InternalTimerThread::lock); + const InternalTimerThread::LockType::ScopedLockType sl (InternalTimerThread::lock); #if JUCE_DEBUG // this isn't a valid object! Your timer might be a dangling pointer or something.. @@ -383,7 +385,7 @@ void Timer::startTimer (const int interval) noexcept void Timer::stopTimer() noexcept { - const SpinLock::ScopedLockType sl (InternalTimerThread::lock); + const InternalTimerThread::LockType::ScopedLockType sl (InternalTimerThread::lock); #if JUCE_DEBUG // this isn't a valid object! Your timer might be a dangling pointer or something..