Browse Source

First check-in of AAX code - note that this is a work-in-progress and although it currently creates a plugin that gets scanned (on OSX at least), it doesn't yet work.

tags/2021-05-28
jules 13 years ago
parent
commit
ba9f24681f
6 changed files with 625 additions and 66 deletions
  1. +37
    -27
      extras/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj
  2. +21
    -17
      extras/audio plugin demo/Builds/VisualStudio2005/JuceDemoPlugin.vcproj
  3. +21
    -17
      extras/audio plugin demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj
  4. +7
    -4
      extras/audio plugin demo/JuceDemoPlugin.jucer
  5. +18
    -0
      extras/audio plugin demo/JuceLibraryCode/AppConfig.h
  6. +521
    -1
      modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp

+ 37
- 27
extras/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj View File

@@ -40,6 +40,8 @@
71BEA1E8715EC77F3BA35BAE = { isa = PBXBuildFile; fileRef = 79B958A028493E0DB0133E2B; settings = {COMPILER_FLAGS = "-w"; }; };
4E76293207C599EF3F0E9D66 = { isa = PBXBuildFile; fileRef = 71CDD3C8D311F7994DD5CC8F; settings = {COMPILER_FLAGS = "-w"; }; };
899A05A18F62ABBFF66B554E = { isa = PBXBuildFile; fileRef = EFCF0633FF23B5F88112A200; settings = {COMPILER_FLAGS = "-w"; }; };
74CF5671532851FFA52E9D0C = { isa = PBXBuildFile; fileRef = 1BAAB47A9C5B1D76D28FA282; };
E20B98D0BD4CB959779121EF = { isa = PBXBuildFile; fileRef = DCF6DECFAD7F4D907C0458A5; };
BF6B9A47774C03C34559CAFE = { isa = PBXBuildFile; fileRef = 8F59D489139F78A729CED9E5; };
C838DDB6686561401CFD352E = { isa = PBXBuildFile; fileRef = EE149F9075819C0132879D4C; };
1E7449C0D931784366EF8EDE = { isa = PBXBuildFile; fileRef = 7C7362C71D396DA95BBE38B8; };
@@ -163,6 +165,7 @@
1B2CE3B669D290A88A797C1A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; };
1B87D0FA74084D19A8A8E3DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; };
1BA3CC8191E979B1E7A43B88 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeTime.cpp"; path = "../../../../modules/juce_core/time/juce_RelativeTime.cpp"; sourceTree = "SOURCE_ROOT"; };
1BAAB47A9C5B1D76D28FA282 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AAX_Wrapper.cpp"; path = "../../../../modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp"; sourceTree = "SOURCE_ROOT"; };
1BB7481F0104929D679508EE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableEdgeComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
1BE2A39FBE87B3DA36C02468 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDirectoryScanner.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp"; sourceTree = "SOURCE_ROOT"; };
1C7E45B063CBDED867290BE4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LeakedObjectDetector.h"; path = "../../../../modules/juce_core/memory/juce_LeakedObjectDetector.h"; sourceTree = "SOURCE_ROOT"; };
@@ -405,6 +408,7 @@
682D51082D9FE9859F364A10 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = PluginProcessor.cpp; path = ../../Source/PluginProcessor.cpp; sourceTree = "SOURCE_ROOT"; };
68AB90F3F4B4ABA2AE384EE0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedValueSet.h"; path = "../../../../modules/juce_core/containers/juce_NamedValueSet.h"; sourceTree = "SOURCE_ROOT"; };
69859F37E963E8539BC36A35 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChannelRemappingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; };
69BA49B5D5F563FF8918C64C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_TextDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; };
6A2DA68C812379D32A014951 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Files.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Files.cpp"; sourceTree = "SOURCE_ROOT"; };
6A3C840E1B6CD34CA8C8DB4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; };
6A593B7ADFAC09D547EA809D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUCarbonViewBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewBase.cpp; sourceTree = "DEVELOPER_DIR"; };
@@ -536,6 +540,7 @@
8E40EB375F5C4AE1651F3E49 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PreferencesPanel.h"; path = "../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h"; sourceTree = "SOURCE_ROOT"; };
8E6F287CAEE4C6BA50E8E390 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WavAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
8E815C1193352E861B9C48BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; };
8E8EF7A3035A5F657E18814C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPool.h"; path = "../../../../modules/juce_core/text/juce_StringPool.h"; sourceTree = "SOURCE_ROOT"; };
8EB324480D60B3E3A81541E5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_VST_Wrapper.mm"; path = "../../../../modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.mm"; sourceTree = "SOURCE_ROOT"; };
8EBA0860E71D6BE24A7B814B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBoundsConstrainer.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h"; sourceTree = "SOURCE_ROOT"; };
8EBE02D4EB0AEDC03E88FBC4 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_core/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
@@ -643,53 +648,52 @@
ACC4E765AD4BF1D025FB4E83 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Network.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Network.cpp"; sourceTree = "SOURCE_ROOT"; };
AD33682668F35136E9195684 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessage.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessage.h"; sourceTree = "SOURCE_ROOT"; };
AD4C568CF5706BEDBE181243 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.h"; sourceTree = "SOURCE_ROOT"; };
AE3318FE584B5928D1F10897 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; };
AE3C497B58239EA75FD18AD9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; };
AEE273E29C5B07B96BAFFA46 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; };
AF14FDB3693F569F275C1A8C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; };
B0381BEAE259ABDDE18A64B0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
B1426528BB892D5736D80404 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeParallelogram.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h"; sourceTree = "SOURCE_ROOT"; };
B2067C8614967BECF8B198D1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; };
B23CBCBBD05E21AEA76FB9E8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDirectoryScanner.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h"; sourceTree = "SOURCE_ROOT"; };
B2686DED597A081F237B1B1D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSampleBuffer.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.cpp"; sourceTree = "SOURCE_ROOT"; };
B287E8FA86ED37F618F0ABC2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SubregionStream.cpp"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.cpp"; sourceTree = "SOURCE_ROOT"; };
B2B54E113A80EC53D5D71A38 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_gui_basics/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
B318D50696B303889BDCF072 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUMIDIEffectBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIEffectBase.h; sourceTree = "DEVELOPER_DIR"; };
B34E109560D77640B7648C4D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedWriteLock.h"; sourceTree = "SOURCE_ROOT"; };
B43E810ABF9939F0F6E76318 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NewLine.h"; path = "../../../../modules/juce_core/text/juce_NewLine.h"; sourceTree = "SOURCE_ROOT"; };
B45645B3B2E19FB1D72B91B6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AiffAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
B532D9954FB106B6095AE0C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; };
B5406E636D4CF8285721DCF3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ActiveXComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
B57C430D154C1C86350F246A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CustomTypeface.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp"; sourceTree = "SOURCE_ROOT"; };
B57D00796D30ECB2DE58035F = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_utils/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
B5FF7C5554FC26100CB08626 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FillType.h"; path = "../../../../modules/juce_graphics/colour/juce_FillType.h"; sourceTree = "SOURCE_ROOT"; };
B72762B6ACA5F73EF9F0A220 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GenericAudioProcessorEditor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; };
B7F3E4AF0F482E9F6EAF6C41 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiBuffer.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.h"; sourceTree = "SOURCE_ROOT"; };
B829B4BAE71C6F09169542B8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../../../modules/juce_core/juce_core.mm"; sourceTree = "SOURCE_ROOT"; };
B8B25605AB1A04A8AE545227 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; };
B8B760CB559864834CC9AB32 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; };
B9BDF0A1E699EA2D3549664E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; };
B9BE6469604B9D3252EFA7E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; };
BA98346EFD1037285E245CC9 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; };
BAF34E1248A8D20DDA992AFD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentDragger.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp"; sourceTree = "SOURCE_ROOT"; };
BB1148DE7477E7B58ABD2B95 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSubsectionReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.h"; sourceTree = "SOURCE_ROOT"; };
BB84A0B296CFBF17FAF145B0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TemporaryFile.h"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.h"; sourceTree = "SOURCE_ROOT"; };
BBBE74C4A9FA85B5F29FF346 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ButtonPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
BC369095BAEED8707D12F63B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CAStreamBasicDescription.cpp; path = Extras/CoreAudio/PublicUtility/CAStreamBasicDescription.cpp; sourceTree = "DEVELOPER_DIR"; };
BCE8039887ABB9343A257AFC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.h"; sourceTree = "SOURCE_ROOT"; };
BDB897B2503C29D7ABDDB656 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; };
BF9246177C0D98297F4228E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiBuffer.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.cpp"; sourceTree = "SOURCE_ROOT"; };
C37123DA8D32C1B6FC09FFF2 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
63F8022F081E22DFFFCAC998 = { isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = JuceDemoPlugin.component; sourceTree = "BUILT_PRODUCTS_DIR"; };
8E8EF7A3035A5F657E18814C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPool.h"; path = "../../../../modules/juce_core/text/juce_StringPool.h"; sourceTree = "SOURCE_ROOT"; };
AB0E8347C9AC7E4A861C0252 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilterAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
ACD46CD092A8EC640448BD70 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; };
AD7E9320CE88BADD17DA949C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiOutput.cpp"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp"; sourceTree = "SOURCE_ROOT"; };
B1426528BB892D5736D80404 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeParallelogram.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h"; sourceTree = "SOURCE_ROOT"; };
B2067C8614967BECF8B198D1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; };
B318D50696B303889BDCF072 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AUMIDIEffectBase.h; path = Extras/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIEffectBase.h; sourceTree = "DEVELOPER_DIR"; };
B34E109560D77640B7648C4D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedWriteLock.h"; sourceTree = "SOURCE_ROOT"; };
B57C430D154C1C86350F246A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CustomTypeface.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp"; sourceTree = "SOURCE_ROOT"; };
AE3318FE584B5928D1F10897 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; };
AF14FDB3693F569F275C1A8C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; };
B2B54E113A80EC53D5D71A38 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_gui_basics/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
B532D9954FB106B6095AE0C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; };
B5406E636D4CF8285721DCF3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ActiveXComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
B6938F0B102875B8B0BEBC44 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PreferencesPanel.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp"; sourceTree = "SOURCE_ROOT"; };
B829B4BAE71C6F09169542B8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../../../modules/juce_core/juce_core.mm"; sourceTree = "SOURCE_ROOT"; };
B8B25605AB1A04A8AE545227 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; };
B9BDF0A1E699EA2D3549664E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; };
B9BE6469604B9D3252EFA7E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; };
BAF34E1248A8D20DDA992AFD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentDragger.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp"; sourceTree = "SOURCE_ROOT"; };
BB84A0B296CFBF17FAF145B0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TemporaryFile.h"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.h"; sourceTree = "SOURCE_ROOT"; };
BBBE74C4A9FA85B5F29FF346 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ButtonPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
BBECA9EB9DD3C9B6CB04B10A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../../../modules/juce_core/misc/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; };
BBF88983012D33EFEF11EA81 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Network.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Network.cpp"; sourceTree = "SOURCE_ROOT"; };
BC369095BAEED8707D12F63B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CAStreamBasicDescription.cpp; path = Extras/CoreAudio/PublicUtility/CAStreamBasicDescription.cpp; sourceTree = "DEVELOPER_DIR"; };
BCB54D2E4C0C3357DACFD29B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NSViewComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_NSViewComponent.h"; sourceTree = "SOURCE_ROOT"; };
BD1EC91E61ECEAB657C78D5C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Toolbar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Toolbar.cpp"; sourceTree = "SOURCE_ROOT"; };
BDB897B2503C29D7ABDDB656 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; };
BE840C441E0B5AA5C8B2AB1E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Strings.mm"; path = "../../../../modules/juce_core/native/juce_mac_Strings.mm"; sourceTree = "SOURCE_ROOT"; };
BF0AB490EC0556BE60CDA25A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_android_JNIHelpers.h"; path = "../../../../modules/juce_core/native/juce_android_JNIHelpers.h"; sourceTree = "SOURCE_ROOT"; };
BF7B980A66A9E256863EEF9D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; };
@@ -785,6 +789,7 @@
DCB5B59D3F5E1075E42DC5AE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorPlayer.h"; path = "../../../../modules/juce_audio_utils/players/juce_AudioProcessorPlayer.h"; sourceTree = "SOURCE_ROOT"; };
DCBB26AF7804FDAC77B5A1CB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_AudioSource.h"; sourceTree = "SOURCE_ROOT"; };
DCC99A76773B6C721B867379 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../../../modules/juce_core/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; };
DCF6DECFAD7F4D907C0458A5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AAX_Wrapper.mm"; path = "../../../../modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.mm"; sourceTree = "SOURCE_ROOT"; };
DD34B7EEFCC8C96D4DEA420A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentAnimator.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp"; sourceTree = "SOURCE_ROOT"; };
DD86A1A94ABA06E59C5E5EB0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; };
DE003DCF42014FA6C64DFE95 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallOutBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_CallOutBox.h"; sourceTree = "SOURCE_ROOT"; };
@@ -794,7 +799,6 @@
DECF1A4C283822D8C7005676 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadWithProgressWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp"; sourceTree = "SOURCE_ROOT"; };
DEEA71B9C3EDDD33636CEEC3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinkedListPointer.h"; path = "../../../../modules/juce_core/containers/juce_LinkedListPointer.h"; sourceTree = "SOURCE_ROOT"; };
DF198098C73EA9C9AF6F1404 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GraphicsContext.h"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h"; sourceTree = "SOURCE_ROOT"; };
DF5319512B7F78CA5103CD2F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_ObjCSuffix.h"; path = "../../../../modules/juce_core/native/juce_mac_ObjCSuffix.h"; sourceTree = "SOURCE_ROOT"; };
DF693A14980C1E9D122E98F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferedInputStream.h"; path = "../../../../modules/juce_core/streams/juce_BufferedInputStream.h"; sourceTree = "SOURCE_ROOT"; };
DFAB472D7624CACD1723528F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; };
DFDEE243F607A7A7C2762D41 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TimeSliceThread.cpp"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -1063,7 +1067,10 @@
D2B28401B2AF968A31121042 = { isa = PBXGroup; children = (
1E496F7BF3B3C59E5ECACCDE,
8EB324480D60B3E3A81541E5 ); name = VST; sourceTree = "<group>"; };
09223D2BB7665EC51F1D574D = { isa = PBXGroup; children = (
A0988D15320C772CDF47FE3E = { isa = PBXGroup; children = (
1BAAB47A9C5B1D76D28FA282,
DCF6DECFAD7F4D907C0458A5 ); name = AAX; sourceTree = "<group>"; };
139649376A0174D40DD80EDB = { isa = PBXGroup; children = (
7B870EE6D43B984CADE69C28,
94AA9AF4939F914AD00CEE1F,
58CEA1474B2E77B7287D735B,
@@ -1074,7 +1081,8 @@
E96D0837CDD1CE8B768E4077,
4E83A3689ABB09F285F6FB2C,
D2B28401B2AF968A31121042,
09223D2BB7665EC51F1D574D,
A0988D15320C772CDF47FE3E,
139649376A0174D40DD80EDB,
76781D53929F0C91E6FA34A9,
E65E231978B796AA7868DC4A ); name = "juce_audio_plugin_client"; sourceTree = "<group>"; };
57F611C99ED4CDF784F6A28F = { isa = PBXGroup; children = (
@@ -1315,7 +1323,6 @@
AE3318FE584B5928D1F10897,
AF14FDB3693F569F275C1A8C,
DB28D7857D3A5BB7091AF74E,
DF5319512B7F78CA5103CD2F,
BE840C441E0B5AA5C8B2AB1E,
2EF063867325B40C75A151A8,
856FB15F4FAE36786254E62F,
@@ -1540,6 +1547,7 @@
4BDFDEDCF05F480BB99EE8A2,
059E68E0529FA25A30BB0152,
318F416CA5367D312EDEB440,
69BA49B5D5F563FF8918C64C,
522D22FEB38D52304F01508D ); name = mouse; sourceTree = "<group>"; };
CD807B7DC79445ED4A519333 = { isa = PBXGroup; children = (
D120181C3218F30A0102BC17,
@@ -1915,6 +1923,8 @@
83470AD511CD6CC1E485F29B = { isa = PBXGroup; children = (
A8A516552AE9B51F35B89B2C,
844343AA474A10F4CD613ACF,
1BAAB47A9C5B1D76D28FA282,
DCF6DECFAD7F4D907C0458A5,
8F59D489139F78A729CED9E5,
EE149F9075819C0132879D4C,
7C7362C71D396DA95BBE38B8,
@@ -1983,7 +1993,6 @@
GCC_PREPROCESSOR_DEFINITIONS = (
"_DEBUG=1",
"DEBUG=1",
"JUCE_ObjCExtraSuffix=JuceDemo",
"JUCER_XCODE_MAC_F6D2F4CF=1"); }; name = Debug; };
76082281008CF5F891C856DA = { isa = XCBuildConfiguration; buildSettings = {
SRCROOT = "../..";
@@ -2007,7 +2016,6 @@
GCC_PREPROCESSOR_DEFINITIONS = (
"_NDEBUG=1",
"NDEBUG=1",
"JUCE_ObjCExtraSuffix=JuceDemo",
"JUCER_XCODE_MAC_F6D2F4CF=1"); }; name = Release; };
6758D5C5D24024DB6F83E78F = { isa = XCBuildConfiguration; buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -2073,6 +2081,8 @@
71BEA1E8715EC77F3BA35BAE,
4E76293207C599EF3F0E9D66,
899A05A18F62ABBFF66B554E,
74CF5671532851FFA52E9D0C,
E20B98D0BD4CB959779121EF,
C838DDB6686561401CFD352E,
1E7449C0D931784366EF8EDE,
E0DCCF03F0911211D8A9F1F8,
@@ -2104,7 +2114,7 @@
CC4D3A6F1EF2934059AA9FEB,
221F46E90C0A8651AB76A0E5,
B46C12D99498E9FA8F1D083A ); runOnlyForDeploymentPostprocessing = 0; };
E277BCF6E051A6008DD74155 = { 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"; };
E277BCF6E051A6008DD74155 = { 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`\ncopyAAX=`nm -g \"$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH\" | grep -i 'GetEffectDescriptions' | 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\nif [ $copyAAX -gt 0 ]; then\n echo \"Copying to AAX folder...\"\n\n if [ -d \"/Applications/ProTools_3PDev/Plug-Ins\" ]; then\n AAX1=\"/Applications/ProTools_3PDev/Plug-Ins/$PRODUCT_NAME.aaxplugin\"\n\n if [ -d \"$AAX1\" ]; then\n rm -r \"$AAX1\"\n fi\n\n cp -r \"$original\" \"$AAX1\"\n fi\n\n if [ -d \"/Library/Application Support/Avid/Audio/Plug-Ins\" ]; then\n AAX2=\"/Library/Application Support/Avid/Audio/Plug-Ins/$PRODUCT_NAME.aaxplugin\"\n\n if [ -d \"$AAX2\" ]; then\n rm -r \"$AAX2\"\n fi\n\n cp -r \"$original\" \"$AAX2\"\n fi\nfi\n"; };
27A65CD0B053616E226D4547 = { isa = PBXNativeTarget; buildConfigurationList = 92D1022F6276146FC92B4442; buildPhases = (
0D832C784AB07BFDE57BCB92,
D95827C1509280C88845BCB4,


+ 21
- 17
extras/audio plugin demo/Builds/VisualStudio2005/JuceDemoPlugin.vcproj View File

@@ -26,7 +26,7 @@
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Debug\JuceDemoPlugin.tlb"
TypeLibraryName="$(IntDir)\JuceDemoPlugin.tlb"
HeaderFileName=""/>
<Tool Name="VCCLCompilerTool"
Optimization="0"
@@ -37,10 +37,10 @@
RuntimeLibrary="1"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\Debug\JuceDemoPlugin.pch"
AssemblerListingLocation=".\Debug\"
ObjectFile=".\Debug\"
ProgramDataBaseFileName=".\Debug\"
PrecompiledHeaderFile="$(IntDir)\JuceDemoPlugin.pch"
AssemblerListingLocation="$(IntDir)\"
ObjectFile="$(IntDir)\"
ProgramDataBaseFileName="$(IntDir)\"
WarningLevel="4"
SuppressStartupBanner="true"/>
<Tool Name="VCManagedResourceCompilerTool"/>
@@ -48,11 +48,11 @@
PreprocessorDefinitions="_DEBUG"/>
<Tool Name="VCPreLinkEventTool"/>
<Tool Name="VCLinkerTool"
OutputFile=".\Debug\JuceDemoPlugin.dll"
OutputFile="$(OutDir)\JuceDemoPlugin.dll"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="libcmt.lib, msvcrt.lib"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug\JuceDemoPlugin.pdb"
ProgramDatabaseFile="$(IntDir)\JuceDemoPlugin.pdb"
SubSystem="2"
GenerateManifest="true"
TargetMachine="1"/>
@@ -61,7 +61,7 @@
<Tool Name="VCXDCMakeTool"/>
<Tool Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Debug\JuceDemoPlugin.bsc"/>
OutputFile="$(IntDir)\JuceDemoPlugin.bsc"/>
<Tool Name="VCFxCopTool"/>
<Tool Name="VCAppVerifierTool"/>
<Tool Name="VCPostBuildEventTool"/>
@@ -83,7 +83,7 @@
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Release\JuceDemoPlugin.tlb"
TypeLibraryName="$(IntDir)\JuceDemoPlugin.tlb"
HeaderFileName=""/>
<Tool Name="VCCLCompilerTool"
Optimization="1"
@@ -94,10 +94,10 @@
RuntimeLibrary="0"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\Release\JuceDemoPlugin.pch"
AssemblerListingLocation=".\Release\"
ObjectFile=".\Release\"
ProgramDataBaseFileName=".\Release\"
PrecompiledHeaderFile="$(IntDir)\JuceDemoPlugin.pch"
AssemblerListingLocation="$(IntDir)\"
ObjectFile="$(IntDir)\"
ProgramDataBaseFileName="$(IntDir)\"
WarningLevel="4"
SuppressStartupBanner="true"/>
<Tool Name="VCManagedResourceCompilerTool"/>
@@ -105,11 +105,11 @@
PreprocessorDefinitions="NDEBUG"/>
<Tool Name="VCPreLinkEventTool"/>
<Tool Name="VCLinkerTool"
OutputFile=".\Release\JuceDemoPlugin.dll"
OutputFile="$(OutDir)\JuceDemoPlugin.dll"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
GenerateDebugInformation="false"
ProgramDatabaseFile=".\Release\JuceDemoPlugin.pdb"
ProgramDatabaseFile="$(IntDir)\JuceDemoPlugin.pdb"
SubSystem="2"
GenerateManifest="true"
OptimizeReferences="2"
@@ -120,7 +120,7 @@
<Tool Name="VCXDCMakeTool"/>
<Tool Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Release\JuceDemoPlugin.bsc"/>
OutputFile="$(IntDir)\JuceDemoPlugin.bsc"/>
<Tool Name="VCFxCopTool"/>
<Tool Name="VCAppVerifierTool"/>
<Tool Name="VCPostBuildEventTool"/>
@@ -809,6 +809,9 @@
<Filter Name="VST">
<File RelativePath="..\..\..\..\modules\juce_audio_plugin_client\VST\juce_VST_Wrapper.mm"/>
</Filter>
<Filter Name="AAX">
<File RelativePath="..\..\..\..\modules\juce_audio_plugin_client\AAX\juce_AAX_Wrapper.mm"/>
</Filter>
<Filter Name="utility">
<File RelativePath="..\..\..\..\modules\juce_audio_plugin_client\utility\juce_CarbonVisibility.h"/>
<File RelativePath="..\..\..\..\modules\juce_audio_plugin_client\utility\juce_CheckSettingMacros.h"/>
@@ -1806,7 +1809,6 @@
</File>
<File RelativePath="..\..\..\..\modules\juce_core\native\juce_mac_Files.mm"/>
<File RelativePath="..\..\..\..\modules\juce_core\native\juce_mac_Network.mm"/>
<File RelativePath="..\..\..\..\modules\juce_core\native\juce_mac_ObjCSuffix.h"/>
<File RelativePath="..\..\..\..\modules\juce_core\native\juce_mac_Strings.mm"/>
<File RelativePath="..\..\..\..\modules\juce_core\native\juce_mac_SystemStats.mm"/>
<File RelativePath="..\..\..\..\modules\juce_core\native\juce_mac_Threads.mm"/>
@@ -2704,6 +2706,7 @@
</File>
<File RelativePath="..\..\..\..\modules\juce_gui_basics\mouse\juce_MouseListener.h"/>
<File RelativePath="..\..\..\..\modules\juce_gui_basics\mouse\juce_SelectedItemSet.h"/>
<File RelativePath="..\..\..\..\modules\juce_gui_basics\mouse\juce_TextDragAndDropTarget.h"/>
<File RelativePath="..\..\..\..\modules\juce_gui_basics\mouse\juce_TooltipClient.h"/>
</Filter>
<Filter Name="keyboard">
@@ -4142,6 +4145,7 @@
</Filter>
<Filter Name="Juce Library Code">
<File RelativePath="..\..\JuceLibraryCode\AppConfig.h"/>
<File RelativePath="..\..\..\..\modules\juce_audio_plugin_client\AAX\juce_AAX_Wrapper.cpp"/>
<File RelativePath="..\..\..\..\modules\juce_audio_basics\juce_audio_basics.cpp"/>
<File RelativePath="..\..\..\..\modules\juce_audio_devices\juce_audio_devices.cpp"/>
<File RelativePath="..\..\..\..\modules\juce_audio_formats\juce_audio_formats.cpp"/>


+ 21
- 17
extras/audio plugin demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj View File

@@ -26,7 +26,7 @@
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Debug\JuceDemoPlugin.tlb"
TypeLibraryName="$(IntDir)\JuceDemoPlugin.tlb"
HeaderFileName=""/>
<Tool Name="VCCLCompilerTool"
Optimization="0"
@@ -37,10 +37,10 @@
RuntimeLibrary="1"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\Debug\JuceDemoPlugin.pch"
AssemblerListingLocation=".\Debug\"
ObjectFile=".\Debug\"
ProgramDataBaseFileName=".\Debug\"
PrecompiledHeaderFile="$(IntDir)\JuceDemoPlugin.pch"
AssemblerListingLocation="$(IntDir)\"
ObjectFile="$(IntDir)\"
ProgramDataBaseFileName="$(IntDir)\"
WarningLevel="4"
SuppressStartupBanner="true"/>
<Tool Name="VCManagedResourceCompilerTool"/>
@@ -48,11 +48,11 @@
PreprocessorDefinitions="_DEBUG"/>
<Tool Name="VCPreLinkEventTool"/>
<Tool Name="VCLinkerTool"
OutputFile=".\Debug\JuceDemoPlugin.dll"
OutputFile="$(OutDir)\JuceDemoPlugin.dll"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="libcmt.lib, msvcrt.lib"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug\JuceDemoPlugin.pdb"
ProgramDatabaseFile="$(IntDir)\JuceDemoPlugin.pdb"
SubSystem="2"
GenerateManifest="true"
TargetMachine="1"/>
@@ -61,7 +61,7 @@
<Tool Name="VCXDCMakeTool"/>
<Tool Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Debug\JuceDemoPlugin.bsc"/>
OutputFile="$(IntDir)\JuceDemoPlugin.bsc"/>
<Tool Name="VCFxCopTool"/>
<Tool Name="VCAppVerifierTool"/>
<Tool Name="VCPostBuildEventTool"/>
@@ -83,7 +83,7 @@
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Release\JuceDemoPlugin.tlb"
TypeLibraryName="$(IntDir)\JuceDemoPlugin.tlb"
HeaderFileName=""/>
<Tool Name="VCCLCompilerTool"
Optimization="1"
@@ -94,10 +94,10 @@
RuntimeLibrary="0"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\Release\JuceDemoPlugin.pch"
AssemblerListingLocation=".\Release\"
ObjectFile=".\Release\"
ProgramDataBaseFileName=".\Release\"
PrecompiledHeaderFile="$(IntDir)\JuceDemoPlugin.pch"
AssemblerListingLocation="$(IntDir)\"
ObjectFile="$(IntDir)\"
ProgramDataBaseFileName="$(IntDir)\"
WarningLevel="4"
SuppressStartupBanner="true"/>
<Tool Name="VCManagedResourceCompilerTool"/>
@@ -105,11 +105,11 @@
PreprocessorDefinitions="NDEBUG"/>
<Tool Name="VCPreLinkEventTool"/>
<Tool Name="VCLinkerTool"
OutputFile=".\Release\JuceDemoPlugin.dll"
OutputFile="$(OutDir)\JuceDemoPlugin.dll"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
GenerateDebugInformation="false"
ProgramDatabaseFile=".\Release\JuceDemoPlugin.pdb"
ProgramDatabaseFile="$(IntDir)\JuceDemoPlugin.pdb"
SubSystem="2"
GenerateManifest="true"
OptimizeReferences="2"
@@ -120,7 +120,7 @@
<Tool Name="VCXDCMakeTool"/>
<Tool Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Release\JuceDemoPlugin.bsc"/>
OutputFile="$(IntDir)\JuceDemoPlugin.bsc"/>
<Tool Name="VCFxCopTool"/>
<Tool Name="VCAppVerifierTool"/>
<Tool Name="VCPostBuildEventTool"/>
@@ -809,6 +809,9 @@
<Filter Name="VST">
<File RelativePath="..\..\..\..\modules\juce_audio_plugin_client\VST\juce_VST_Wrapper.mm"/>
</Filter>
<Filter Name="AAX">
<File RelativePath="..\..\..\..\modules\juce_audio_plugin_client\AAX\juce_AAX_Wrapper.mm"/>
</Filter>
<Filter Name="utility">
<File RelativePath="..\..\..\..\modules\juce_audio_plugin_client\utility\juce_CarbonVisibility.h"/>
<File RelativePath="..\..\..\..\modules\juce_audio_plugin_client\utility\juce_CheckSettingMacros.h"/>
@@ -1806,7 +1809,6 @@
</File>
<File RelativePath="..\..\..\..\modules\juce_core\native\juce_mac_Files.mm"/>
<File RelativePath="..\..\..\..\modules\juce_core\native\juce_mac_Network.mm"/>
<File RelativePath="..\..\..\..\modules\juce_core\native\juce_mac_ObjCSuffix.h"/>
<File RelativePath="..\..\..\..\modules\juce_core\native\juce_mac_Strings.mm"/>
<File RelativePath="..\..\..\..\modules\juce_core\native\juce_mac_SystemStats.mm"/>
<File RelativePath="..\..\..\..\modules\juce_core\native\juce_mac_Threads.mm"/>
@@ -2704,6 +2706,7 @@
</File>
<File RelativePath="..\..\..\..\modules\juce_gui_basics\mouse\juce_MouseListener.h"/>
<File RelativePath="..\..\..\..\modules\juce_gui_basics\mouse\juce_SelectedItemSet.h"/>
<File RelativePath="..\..\..\..\modules\juce_gui_basics\mouse\juce_TextDragAndDropTarget.h"/>
<File RelativePath="..\..\..\..\modules\juce_gui_basics\mouse\juce_TooltipClient.h"/>
</Filter>
<Filter Name="keyboard">
@@ -4142,6 +4145,7 @@
</Filter>
<Filter Name="Juce Library Code">
<File RelativePath="..\..\JuceLibraryCode\AppConfig.h"/>
<File RelativePath="..\..\..\..\modules\juce_audio_plugin_client\AAX\juce_AAX_Wrapper.cpp"/>
<File RelativePath="..\..\..\..\modules\juce_audio_basics\juce_audio_basics.cpp"/>
<File RelativePath="..\..\..\..\modules\juce_audio_devices\juce_audio_devices.cpp"/>
<File RelativePath="..\..\..\..\modules\juce_audio_formats\juce_audio_formats.cpp"/>


+ 7
- 4
extras/audio plugin demo/JuceDemoPlugin.jucer View File

@@ -9,10 +9,11 @@
pluginTailLength="0" pluginEditorRequiresKeys="1" pluginAUExportPrefix="JuceDemoProjectAU"
pluginAUViewClass="JuceDemoProjectAU_V1" pluginRTASCategory=""
bundleIdentifier="com.rawmaterialsoftware.JuceDemoPlugin" jucerVersion="3.0.0"
companyName="Raw Material Software Ltd.">
companyName="Raw Material Software Ltd." aaxIdentifier="com.yourcompany.JuceDemoPlugin"
buildAAX="0" pluginAAXCategory="AAX_ePlugInCategory_Dynamics">
<EXPORTFORMATS>
<XCODE_MAC targetFolder="Builds/MacOSX" vstFolder="~/SDKs/vstsdk2.4" rtasFolder="~/SDKs/PT_80_SDK"
juceFolder="../.." objCExtraSuffix="JuceDemo">
juceFolder="../.." objCExtraSuffix="JuceDemo" aaxFolder="~/SDKs/AAX">
<CONFIGURATIONS>
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemoPlugin"
osxSDK="default" osxCompatibility="default" osxArchitecture="default"/>
@@ -21,7 +22,8 @@
</CONFIGURATIONS>
</XCODE_MAC>
<VS2005 targetFolder="Builds/VisualStudio2005" vstFolder="c:\SDKs\vstsdk2.4"
rtasFolder="c:\SDKs\PT_80_SDK" juceFolder="../.." libraryType="1">
rtasFolder="c:\SDKs\PT_80_SDK" juceFolder="../.." libraryType="1"
aaxFolder="c:\SDKs\AAX">
<CONFIGURATIONS>
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemoPlugin"
winWarningLevel="4" generateManifest="1"/>
@@ -30,7 +32,8 @@
</CONFIGURATIONS>
</VS2005>
<VS2008 targetFolder="Builds/VisualStudio2008" vstFolder="c:\SDKs\vstsdk2.4"
rtasFolder="c:\SDKs\PT_80_SDK" juceFolder="../.." libraryType="1">
rtasFolder="c:\SDKs\PT_80_SDK" juceFolder="../.." libraryType="1"
aaxFolder="c:\SDKs\AAX">
<CONFIGURATIONS>
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemoPlugin"
winWarningLevel="4" generateManifest="1"/>


+ 18
- 0
extras/audio plugin demo/JuceLibraryCode/AppConfig.h View File

@@ -169,6 +169,9 @@
#ifndef JucePlugin_Build_RTAS
#define JucePlugin_Build_RTAS 0
#endif
#ifndef JucePlugin_Build_AAX
#define JucePlugin_Build_AAX 0
#endif
#ifndef JucePlugin_Name
#define JucePlugin_Name "Juce Demo Plugin"
#endif
@@ -253,5 +256,20 @@
#ifndef JucePlugin_RTASProductId
#define JucePlugin_RTASProductId JucePlugin_PluginCode
#endif
#ifndef JucePlugin_AAXIdentifier
#define JucePlugin_AAXIdentifier com.yourcompany.JuceDemoPlugin
#endif
#ifndef JucePlugin_AAXManufacturerCode
#define JucePlugin_AAXManufacturerCode JucePlugin_ManufacturerCode
#endif
#ifndef JucePlugin_AAXProductId
#define JucePlugin_AAXProductId JucePlugin_PluginCode
#endif
#ifndef JucePlugin_AAXPluginId
#define JucePlugin_AAXPluginId JucePlugin_PluginCode
#endif
#ifndef JucePlugin_AAXCategory
#define JucePlugin_AAXCategory AAX_ePlugInCategory_Dynamics
#endif
#endif // __JUCE_APPCONFIG_0NRD9LLGO__

+ 521
- 1
modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp View File

@@ -29,7 +29,527 @@
#include "../utility/juce_CheckSettingMacros.h"
#if JucePlugin_Build_AAX
#if JucePlugin_Build_AAX && (JUCE_INCLUDED_AAX_IN_MM || JUCE_WINDOWS)
#if JUCE_MAC
#include <Cocoa/Cocoa.h>
#endif
#include "../utility/juce_IncludeModuleHeaders.h"
#undef Component
#include "AAX_Exports.cpp"
#include "AAX_ICollection.h"
#include "AAX_IComponentDescriptor.h"
#include "AAX_IEffectDescriptor.h"
#include "AAX_IPropertyMap.h"
#include "AAX_CEffectParameters.h"
#include "AAX_Errors.h"
#include "AAX_CBinaryTaperDelegate.h"
#include "AAX_CBinaryDisplayDelegate.h"
#include "AAX_CEffectGUI.h"
#if JUCE_WINDOWS
static HINSTANCE moduleInstance = 0;
extern "C" BOOL WINAPI DllMain (HINSTANCE instance, DWORD selector, LPVOID)
{
if (selector == DLL_PROCESS_ATTACH)
moduleInstance = instance;
return true;
}
#endif
//==============================================================================
/** Somewhere in the codebase of your plugin, you need to implement this function
and make it return a new instance of the filter subclass that you're building.
*/
extern AudioProcessor* JUCE_CALLTYPE createPluginFilter();
//==============================================================================
struct AAXClasses
{
static void check (AAX_Result result)
{
jassert (result == AAX_SUCCESS);
}
struct FourCharConst
{
FourCharConst (const uint32 n) noexcept
{
asString[0] = (char) (n >> 24);
asString[1] = (char) (n >> 16);
asString[2] = (char) (n >> 8);
asString[3] = (char) n;
asString[4] = 0;
}
char asString[5];
};
static AAX_EStemFormat getFormatForChans (const int numChans) noexcept
{
switch (numChans)
{
case 0: return AAX_eStemFormat_None;
case 1: return AAX_eStemFormat_Mono;
case 2: return AAX_eStemFormat_Stereo;
case 3: return AAX_eStemFormat_LCR;
case 4: return AAX_eStemFormat_Quad;
case 5: return AAX_eStemFormat_5_0;
case 6: return AAX_eStemFormat_5_1;
case 7: return AAX_eStemFormat_6_1;
case 8: return AAX_eStemFormat_7_1_DTS;
default: jassertfalse; break; // hmm - not a valid number of chans..
}
return AAX_eStemFormat_None;
}
static int getNumChannelsForStemFormat (AAX_EStemFormat format) noexcept
{
switch (format)
{
case AAX_eStemFormat_None: return 0;
case AAX_eStemFormat_Mono: return 1;
case AAX_eStemFormat_Stereo: return 2;
case AAX_eStemFormat_LCR: return 3;
case AAX_eStemFormat_Quad: return 4;
case AAX_eStemFormat_5_0: return 5;
case AAX_eStemFormat_5_1: return 6;
case AAX_eStemFormat_6_1: return 7;
case AAX_eStemFormat_7_1_DTS: return 8;
default: jassertfalse; break; // hmm - not a valid number of chans..
}
return 0;
}
//==============================================================================
struct JUCELibraryRefCount
{
JUCELibraryRefCount() { if (getCount()++ == 0) initialise(); }
~JUCELibraryRefCount() { if (--getCount() == 0) shutdown(); }
private:
static void initialise()
{
#if JUCE_WINDOWS
PlatformUtilities::setCurrentModuleInstanceHandle (moduleInstance);
#endif
initialiseJuce_GUI();
}
static void shutdown()
{
shutdownJuce_GUI();
}
int& getCount() noexcept
{
static int count = 0;
return count;
}
};
//==============================================================================
struct PluginInstanceInfo
{
PluginInstanceInfo (AudioProcessor* pluginInstance_)
: pluginInstance (pluginInstance_)
{
}
void process (float* const* inputs, float* const* outputs, const int bufferSize)
{
const int numIns = pluginInstance->getNumInputChannels();
const int numOuts = pluginInstance->getNumOutputChannels();
const int bufferBytes = bufferSize * sizeof (float);
float* const* renderingChannels = inputs;
int numChans = numIns;
if (numOuts > numIns)
{
for (int i = 0; i < numIns; ++i)
memcpy (outputs[i], inputs[i], bufferBytes);
renderingChannels = outputs;
numChans = numOuts;
}
AudioSampleBuffer buffer (renderingChannels, numChans, bufferSize);
// XXX need to do midi..
midiBuffer.clear();
{
const ScopedLock sl (pluginInstance->getCallbackLock());
pluginInstance->processBlock (buffer, midiBuffer);
}
if (numOuts <= numIns)
{
for (int i = 0; i < numOuts; ++i)
memcpy (outputs[i], inputs[i], bufferBytes);
}
}
void bypass (float* const* inputs, float* const* outputs, int bufferSize)
{
const int numIns = pluginInstance->getNumInputChannels();
const int numOuts = pluginInstance->getNumOutputChannels();
for (int i = 0; i < numOuts; ++i)
{
if (i < numIns)
memcpy (outputs[i], inputs[i], sizeof (float) * bufferSize);
else
zeromem (outputs[i], sizeof (float) * bufferSize);
}
}
AudioProcessor* pluginInstance;
MidiBuffer midiBuffer;
};
//==============================================================================
struct JUCEAlgorithmContext
{
float* const* inputChannels;
float* const* outputChannels;
int32_t* bufferSize;
int32_t* bypass;
PluginInstanceInfo* pluginInstance;
int32_t* isPrepared;
};
struct JUCEAlgorithmIDs
{
enum
{
inputChannels = AAX_FIELD_INDEX (JUCEAlgorithmContext, inputChannels),
outputChannels = AAX_FIELD_INDEX (JUCEAlgorithmContext, outputChannels),
bufferSize = AAX_FIELD_INDEX (JUCEAlgorithmContext, bufferSize),
bypass = AAX_FIELD_INDEX (JUCEAlgorithmContext, bypass),
pluginInstance = AAX_FIELD_INDEX (JUCEAlgorithmContext, pluginInstance),
preparedFlag = AAX_FIELD_INDEX (JUCEAlgorithmContext, isPrepared)
};
};
//==============================================================================
class JuceAAX_GUI : public AAX_CEffectGUI
{
public:
JuceAAX_GUI() {}
virtual ~JuceAAX_GUI() { DeleteViewContainer(); }
static AAX_IEffectGUI* AAX_CALLBACK Create() { return new JuceAAX_GUI(); }
void CreateViewContents()
{
if (component == nullptr)
{
JuceAAX_Parameters* params = dynamic_cast <JuceAAX_Parameters*> (GetEffectParameters());
jassert (params != nullptr);
if (params != nullptr)
component = new ContentWrapperComponent (params->getPluginInstance());
}
}
void CreateViewContainer()
{
CreateViewContents();
void* nativeViewToAttachTo = GetViewContainerPtr();
if (nativeViewToAttachTo != nullptr)
{
#if JUCE_MAC
if (GetViewContainerType() == AAX_eViewContainer_Type_NSView)
#else
if (GetViewContainerType() == AAX_eViewContainer_Type_HWND)
#endif
{
component->setVisible (true);
component->addToDesktop (0, nativeViewToAttachTo);
}
}
}
void DeleteViewContainer()
{
if (component != nullptr)
{
JUCE_AUTORELEASEPOOL
component->removeFromDesktop();
component = nullptr;
}
}
virtual AAX_Result GetViewSize (AAX_Point* const viewSize) const
{
if (component != nullptr)
{
viewSize->horz = (float) component->getWidth();
viewSize->vert = (float) component->getHeight();
return AAX_SUCCESS;
}
return AAX_ERROR_NULL_OBJECT;
}
AAX_Result ParameterUpdated (AAX_CParamID iParameterID)
{
return AAX_SUCCESS;
}
AAX_Result SetControlHighlightInfo (AAX_CParamID iParameterID, AAX_CBoolean iIsHighlighted, AAX_EHighlightColor iColor)
{
return AAX_SUCCESS;
}
private:
class ContentWrapperComponent : public Component
{
public:
ContentWrapperComponent (AudioProcessor* plugin)
{
setOpaque (true);
addAndMakeVisible (pluginEditor = plugin->createEditor());
}
~ContentWrapperComponent()
{
if (pluginEditor != nullptr)
{
PopupMenu::dismissAllActiveMenus();
pluginEditor->getAudioProcessor()->editorBeingDeleted (pluginEditor);
}
}
void paint (Graphics& g)
{
g.fillAll (Colours::pink);
}
void resized()
{
if (pluginEditor != nullptr)
pluginEditor->setBounds (getLocalBounds());
}
private:
ScopedPointer<AudioProcessorEditor> pluginEditor;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ContentWrapperComponent);
};
ScopedPointer<ContentWrapperComponent> component;
JUCELibraryRefCount juceCount;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (JuceAAX_GUI);
};
//==============================================================================
class JuceAAX_Parameters : public AAX_CEffectParameters
{
public:
JuceAAX_Parameters()
{
pluginInstance = createPluginFilter();
}
static AAX_CEffectParameters* AAX_CALLBACK Create() { return new JuceAAX_Parameters(); }
AAX_Result EffectInit()
{
addBypassParameter();
// add other params..
return AAX_SUCCESS;
}
AAX_Result ResetFieldData (AAX_CFieldIndex fieldIndex, void* data, uint32_t dataSize) const
{
switch (fieldIndex)
{
case JUCEAlgorithmIDs::pluginInstance:
{
const size_t numObjects = dataSize / sizeof (PluginInstanceInfo);
PluginInstanceInfo* const objects = static_cast <PluginInstanceInfo*> (data);
jassert (numObjects == 1); // not sure how to handle more than one..
for (size_t i = 0; i < numObjects; ++i)
new (objects + i) PluginInstanceInfo (pluginInstance);
break;
}
case JUCEAlgorithmIDs::preparedFlag:
{
AAX_CSampleRate sampleRate;
check (Controller()->GetSampleRate (&sampleRate));
AAX_EStemFormat inputStemFormat = AAX_eStemFormat_None;
check (Controller()->GetInputStemFormat (&inputStemFormat));
const int numberOfInputChannels = getNumChannelsForStemFormat (inputStemFormat);
AAX_EStemFormat outputStemFormat = AAX_eStemFormat_None;
check (Controller()->GetOutputStemFormat (&outputStemFormat));
const int numberOfOutputChannels = getNumChannelsForStemFormat (outputStemFormat);
int32_t bufferSize = 0;
check (Controller()->GetSignalLatency (&bufferSize));
AudioProcessor* audioProcessor = getPluginInstance();
audioProcessor->setPlayConfigDetails (numberOfInputChannels, numberOfOutputChannels, sampleRate, bufferSize);
audioProcessor->prepareToPlay (sampleRate, bufferSize);
const size_t numObjects = dataSize / sizeof (uint32_t);
uint32_t* const objects = static_cast <uint32_t*> (data);
for (size_t i = 0; i < numObjects; ++i)
new (objects + i) uint32_t (1);
break;
}
}
return AAX_SUCCESS;
//return AAX_ERROR_INVALID_FIELD_INDEX;
}
AudioProcessor* getPluginInstance() const noexcept { return pluginInstance; }
private:
void addBypassParameter()
{
AAX_CString bypassID;
GetMasterBypassParameter (&bypassID);
AAX_IParameter* masterBypass = new AAX_CParameter<bool> (bypassID.CString(),
AAX_CString ("Master Bypass"),
false,
AAX_CBinaryTaperDelegate<bool>(),
AAX_CBinaryDisplayDelegate<bool> ("bypass", "on"),
true);
masterBypass->SetNumberOfSteps (2);
masterBypass->SetType (AAX_eParameterType_Discrete);
mParameterManager.AddParameter (masterBypass);
mPacketDispatcher.RegisterPacket (bypassID.CString(), JUCEAlgorithmIDs::bypass);
}
JUCELibraryRefCount juceCount;
ScopedPointer<AudioProcessor> pluginInstance;
JUCE_DECLARE_NON_COPYABLE (JuceAAX_Parameters);
};
//==============================================================================
static void AAX_CALLBACK algorithmProcessCallback (JUCEAlgorithmContext* const instancesBegin[],
const void* const instancesEnd)
{
for (JUCEAlgorithmContext* const* iter = instancesBegin; iter < instancesEnd; ++iter)
{
const JUCEAlgorithmContext& i = **iter;
if (*(i.bypass) != 0)
i.pluginInstance->bypass (i.inputChannels, i.outputChannels, *(i.bufferSize));
else
i.pluginInstance->process (i.inputChannels, i.outputChannels, *(i.bufferSize));
}
}
//==============================================================================
static void createDescriptor (AAX_IComponentDescriptor& desc, int numInputs, int numOutputs)
{
check (desc.AddAudioIn (JUCEAlgorithmIDs::inputChannels));
check (desc.AddAudioOut (JUCEAlgorithmIDs::outputChannels));
check (desc.AddAudioBufferLength (JUCEAlgorithmIDs::bufferSize));
check (desc.AddDataInPort (JUCEAlgorithmIDs::bypass, sizeof (int32_t)));
check (desc.AddPrivateData (JUCEAlgorithmIDs::pluginInstance, sizeof (PluginInstanceInfo)));
// Create a property map
AAX_IPropertyMap* const properties = desc.NewPropertyMap();
jassert (properties != nullptr);
properties->AddProperty (AAX_eProperty_ManufacturerID, JucePlugin_AAXManufacturerCode);
properties->AddProperty (AAX_eProperty_ProductID, JucePlugin_AAXProductId);
properties->AddProperty (AAX_eProperty_CanBypass, true);
properties->AddProperty (AAX_eProperty_InputStemFormat, getFormatForChans (numInputs));
properties->AddProperty (AAX_eProperty_OutputStemFormat, getFormatForChans (numOutputs));
properties->AddProperty (AAX_eProperty_PlugInID_Native, JucePlugin_AAXPluginId);
check (desc.AddProcessProc_Native (algorithmProcessCallback, properties));
}
static void getPlugInDescription (AAX_IEffectDescriptor& descriptor)
{
descriptor.AddName (JucePlugin_Desc);
descriptor.AddName (JucePlugin_Name);
descriptor.AddName (FourCharConst (JucePlugin_PluginCode).asString);
descriptor.AddCategory (JucePlugin_AAXCategory);
check (descriptor.AddProcPtr ((void*) JuceAAX_GUI::Create, kAAX_ProcPtrID_Create_EffectGUI));
check (descriptor.AddProcPtr ((void*) JuceAAX_Parameters::Create, kAAX_ProcPtrID_Create_EffectParameters));
const short channelConfigs[][2] = { JucePlugin_PreferredChannelConfigurations };
const int numConfigs = numElementsInArray (channelConfigs);
// You need to actually add some configurations to the JucePlugin_PreferredChannelConfigurations
// value in your JucePluginCharacteristics.h file..
jassert (numConfigs > 0);
for (int i = 0; i < numConfigs; ++i)
{
AAX_IComponentDescriptor* const desc = descriptor.NewComponentDescriptor();
if (desc != nullptr)
{
createDescriptor (*desc,
channelConfigs [i][0],
channelConfigs [i][1]);
check (descriptor.AddComponent (desc));
}
}
}
};
//==============================================================================
AAX_Result GetEffectDescriptions (AAX_ICollection* const collection)
{
AAXClasses::JUCELibraryRefCount libraryRefCount;
AAX_IEffectDescriptor* const descriptor = collection->NewDescriptor();
if (descriptor == nullptr)
return AAX_ERROR_NULL_OBJECT;
AAXClasses::getPlugInDescription (*descriptor);
collection->AddEffect (JUCE_STRINGIFY (JucePlugin_AAXIdentifier), descriptor);
collection->SetManufacturerName (JucePlugin_Manufacturer);
collection->AddPackageName (JucePlugin_Desc);
collection->AddPackageName (JucePlugin_Name);
collection->AddPackageName (AAXClasses::FourCharConst (JucePlugin_PluginCode).asString);
collection->SetPackageVersion (JucePlugin_VersionCode);
return AAX_SUCCESS;
}
#endif

Loading…
Cancel
Save