Browse Source

tags/2021-05-28
jules 18 years ago
parent
commit
93e504eb85
3 changed files with 1223 additions and 1167 deletions
  1. +8
    -0
      extras/audio plugins/demo/build/AudioUnit/JuceDemoAU.xcodeproj/project.pbxproj
  2. +270
    -270
      extras/audio plugins/demo/src/JucePluginCharacteristics.h
  3. +945
    -897
      extras/audio plugins/wrapper/formats/AudioUnit/juce_AudioUnitWrapper.cpp

+ 8
- 0
extras/audio plugins/demo/build/AudioUnit/JuceDemoAU.xcodeproj/project.pbxproj View File

@@ -34,6 +34,8 @@
844C50290C71B6E300D0082E /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 844C50280C71B6E300D0082E /* IOKit.framework */; }; 844C50290C71B6E300D0082E /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 844C50280C71B6E300D0082E /* IOKit.framework */; };
845FAE5F0A5C0A6A008C94D8 /* juce.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 845FAE5E0A5C0A6A008C94D8 /* juce.xcconfig */; }; 845FAE5F0A5C0A6A008C94D8 /* juce.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 845FAE5E0A5C0A6A008C94D8 /* juce.xcconfig */; };
845FAEE10A5C2696008C94D8 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 845FAEE00A5C2696008C94D8 /* QuickTime.framework */; }; 845FAEE10A5C2696008C94D8 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 845FAEE00A5C2696008C94D8 /* QuickTime.framework */; };
84B4CDD10C7DD23B0083122F /* MusicDeviceBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B4CDCF0C7DD23B0083122F /* MusicDeviceBase.cpp */; };
84B4CDD20C7DD23B0083122F /* MusicDeviceBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 84B4CDD00C7DD23B0083122F /* MusicDeviceBase.h */; };
84CFAEFB090964560053C22C /* AUCarbonViewDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D19AAB03175F3201CA2136 /* AUCarbonViewDispatch.cpp */; }; 84CFAEFB090964560053C22C /* AUCarbonViewDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D19AAB03175F3201CA2136 /* AUCarbonViewDispatch.cpp */; };
84CFAEFC090964560053C22C /* AUCarbonViewControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D19AA903175F3201CA2136 /* AUCarbonViewControl.cpp */; }; 84CFAEFC090964560053C22C /* AUCarbonViewControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D19AA903175F3201CA2136 /* AUCarbonViewControl.cpp */; };
84CFAEFD090964560053C22C /* AUCarbonViewBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D19AA703175F3201CA2136 /* AUCarbonViewBase.cpp */; }; 84CFAEFD090964560053C22C /* AUCarbonViewBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D19AA703175F3201CA2136 /* AUCarbonViewBase.cpp */; };
@@ -100,6 +102,8 @@
844C50280C71B6E300D0082E /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = IOKit.framework; sourceTree = "<group>"; }; 844C50280C71B6E300D0082E /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = IOKit.framework; sourceTree = "<group>"; };
845FAE5E0A5C0A6A008C94D8 /* juce.xcconfig */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xcconfig; name = juce.xcconfig; path = ../../../../../build/macosx/juce.xcconfig; sourceTree = SOURCE_ROOT; }; 845FAE5E0A5C0A6A008C94D8 /* juce.xcconfig */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xcconfig; name = juce.xcconfig; path = ../../../../../build/macosx/juce.xcconfig; sourceTree = SOURCE_ROOT; };
845FAEE00A5C2696008C94D8 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = QuickTime.framework; sourceTree = "<group>"; }; 845FAEE00A5C2696008C94D8 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = QuickTime.framework; sourceTree = "<group>"; };
84B4CDCF0C7DD23B0083122F /* MusicDeviceBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = MusicDeviceBase.cpp; path = /Developer/Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/MusicDeviceBase.cpp; sourceTree = "<absolute>"; };
84B4CDD00C7DD23B0083122F /* MusicDeviceBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = MusicDeviceBase.h; path = /Developer/Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/MusicDeviceBase.h; sourceTree = "<absolute>"; };
84EB4009090A4A2C008FAC1B /* juce_AudioUnitWrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioUnitWrapper.cpp; path = ../../../wrapper/formats/AudioUnit/juce_AudioUnitWrapper.cpp; sourceTree = SOURCE_ROOT; }; 84EB4009090A4A2C008FAC1B /* juce_AudioUnitWrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioUnitWrapper.cpp; path = ../../../wrapper/formats/AudioUnit/juce_AudioUnitWrapper.cpp; sourceTree = SOURCE_ROOT; };
84EB400A090A4A2C008FAC1B /* juce_AudioUnitWrapper.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; name = juce_AudioUnitWrapper.r; path = ../../../wrapper/formats/AudioUnit/juce_AudioUnitWrapper.r; sourceTree = SOURCE_ROOT; }; 84EB400A090A4A2C008FAC1B /* juce_AudioUnitWrapper.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; name = juce_AudioUnitWrapper.r; path = ../../../wrapper/formats/AudioUnit/juce_AudioUnitWrapper.r; sourceTree = SOURCE_ROOT; };
84EB404D090A5116008FAC1B /* JucePluginCharacteristics.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JucePluginCharacteristics.h; path = ../../src/JucePluginCharacteristics.h; sourceTree = SOURCE_ROOT; }; 84EB404D090A5116008FAC1B /* JucePluginCharacteristics.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JucePluginCharacteristics.h; path = ../../src/JucePluginCharacteristics.h; sourceTree = SOURCE_ROOT; };
@@ -319,6 +323,8 @@
84F054E70906C8DD00AEC8DB /* AUMIDIEffectBase.h */, 84F054E70906C8DD00AEC8DB /* AUMIDIEffectBase.h */,
F5D199FE03175E1E01CA2136 /* AUEffectBase.cpp */, F5D199FE03175E1E01CA2136 /* AUEffectBase.cpp */,
F5D199FF03175E1E01CA2136 /* AUEffectBase.h */, F5D199FF03175E1E01CA2136 /* AUEffectBase.h */,
84B4CDCF0C7DD23B0083122F /* MusicDeviceBase.cpp */,
84B4CDD00C7DD23B0083122F /* MusicDeviceBase.h */,
); );
path = OtherBases; path = OtherBases;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -393,6 +399,7 @@
84F055040906E9EA00AEC8DB /* DemoJuceFilter.h in Headers */, 84F055040906E9EA00AEC8DB /* DemoJuceFilter.h in Headers */,
84F055260906FBCF00AEC8DB /* AUSilentTimeout.h in Headers */, 84F055260906FBCF00AEC8DB /* AUSilentTimeout.h in Headers */,
84EB404E090A5116008FAC1B /* JucePluginCharacteristics.h in Headers */, 84EB404E090A5116008FAC1B /* JucePluginCharacteristics.h in Headers */,
84B4CDD20C7DD23B0083122F /* MusicDeviceBase.h in Headers */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@@ -503,6 +510,7 @@
84F055030906E9EA00AEC8DB /* DemoJuceFilter.cpp in Sources */, 84F055030906E9EA00AEC8DB /* DemoJuceFilter.cpp in Sources */,
84EB400B090A4A2C008FAC1B /* juce_AudioUnitWrapper.cpp in Sources */, 84EB400B090A4A2C008FAC1B /* juce_AudioUnitWrapper.cpp in Sources */,
84EB4042090A4F5A008FAC1B /* CAVectorUnit.cpp in Sources */, 84EB4042090A4F5A008FAC1B /* CAVectorUnit.cpp in Sources */,
84B4CDD10C7DD23B0083122F /* MusicDeviceBase.cpp in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };


+ 270
- 270
extras/audio plugins/demo/src/JucePluginCharacteristics.h View File

@@ -1,270 +1,270 @@
/*
==============================================================================
This file is part of the JUCE library - "Jules' Utility Class Extensions"
Copyright 2004-7 by Raw Material Software ltd.
------------------------------------------------------------------------------
JUCE can be redistributed and/or modified under the terms of the
GNU General Public License, as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.
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.
You should have received a copy of the GNU General Public License
along with JUCE; if not, visit www.gnu.org/licenses or write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA
------------------------------------------------------------------------------
If you'd like to release a closed-source product which uses JUCE, commercial
licenses are also available: visit www.rawmaterialsoftware.com/juce for
more information.
==============================================================================
*/
#ifndef __JUCE_PLUGIN_CHARACTERISTICS_H__
#define __JUCE_PLUGIN_CHARACTERISTICS_H__
//==============================================================================
/* All of the following settings need to be defined for your plugin.
Go through each of these definitions and check that it's correctly
set-up before trying to do a build.
*/
//==============================================================================
/* Generic settings */
/** The name of your plugin. (Try to keep this as short as possible)
*/
#define JucePlugin_Name "Juce Demo Plugin"
/** A longer decription of your plugin.
*/
#define JucePlugin_Desc "A Demo Plugin demonstrating Juce"
/** The name of your company. (Try to keep this as short as possible)
*/
#define JucePlugin_Manufacturer "Raw Material Software"
/** A four-character code for your company.
Use single quotes - this isn't a string!
*/
#define JucePlugin_ManufacturerCode 'RawM'
/** A unique four-character code for your plugin.
Use single quotes - this isn't a string!
Note that for AU compatibility, this must contain at least one
upper-case letter.
*/
#define JucePlugin_PluginCode 'JcDm'
//==============================================================================
/** The maximum number of channels of audio input that the plugin can handle.
The actual number of channels supplied may be less than this, depending on the host.
For VSTs, you specify a maximum number of channels, for AUs and RTAS a set
of channel configurations is specified in JucePlugin_PreferredChannelConfigurations
and the host will choose one of these, but you should still set the max number of
channels correctly.
As soon as a plugin's prepareToPlay() method is called, you can find out the actual
number of channels that will be used with the AudioFilterBase::getNumInputChannels()
method.
*/
#define JucePlugin_MaxNumInputChannels 2
/** The maximum number of channels of audio output that the plugin can handle.
The actual number of channels supplied may be less than this, depending on the host.
For VSTs, you specify a maximum number of channels, for AUs and RTAS a set
of channel configurations is specified in JucePlugin_PreferredChannelConfigurations
and the host will choose one of these, but you should still set the max number of
channels correctly.
As soon as a plugin's prepareToPlay() method is called, you can find out the actual
number of channels that will be used with the AudioFilterBase::getNumOutputChannels()
method.
*/
#define JucePlugin_MaxNumOutputChannels 2
/** This allows the plugin to specify the configurations of input/output channels that
they can support.
AU and RTAS hosts will use this information, although VSTs only have a concept of
a maximum number of channels.
The list is a set of pairs of values in the form { numInputs, numOutputs }, and each
pair indicates a valid configuration that the plugin can handle.
So for example, {1, 1}, {2, 2} means that the plugin can be used in just two
configurations: either with 1 input and 1 output, or with 2 inputs and 2 outputs. If
you used this in Pro-Tools, the plugin could be placed on a mono or stereo track.
If the list was just {1, 1}, then Pro-Tools would only allow it to be used as a mono
plugin.
As soon as a plugin's prepareToPlay() method is called, you can find out the actual
number of channels that the host has connected to the plugin by using the
AudioFilterBase::getNumOutputChannels() and AudioFilterBase::getNumInputChannels()
methods.
*/
#define JucePlugin_PreferredChannelConfigurations { 1, 1 }, { 2, 2 }
//==============================================================================
/** Set this value to 1 if your plugin is a synth, or 0 if it isn't.
*/
#define JucePlugin_IsSynth 1
/** Set this to 1 if your plugin needs to receive midi messages, or 0 if
it doesn't.
*/
#define JucePlugin_WantsMidiInput 1
/** Set this to 1 if your plugin wants to output midi messages, or 0 if
it doesn't.
*/
#define JucePlugin_ProducesMidiOutput 1
/** If this is 1, it means that when the plugins input buffers are
silent, it's output will be too.
Some hosts may use this to avoid calling the plugin when no audio
would be produced.
*/
#define JucePlugin_SilenceInProducesSilenceOut 0
/** If set to 1, this hints that the host should ignore any keys that are pressed
when the plugin has keyboard focus. If 0, then the host should still execute
any shortcut keys that are pressed, even if the plugin does have focus.
Various hosts/platforms may deal with this differently, or ignore it.
*/
#define JucePlugin_EditorRequiresKeyboardFocus 1
//==============================================================================
/** A version number
*/
#define JucePlugin_VersionCode 0x00010100
#define JucePlugin_VersionString "1.1"
//==============================================================================
/* VST settings */
/** For VSTs, if you're compiling against the V2.3 SDK, set this to zero. If
you're using V2.4 or later, make sure it's set to 1.
*/
#define JUCE_USE_VSTSDK_2_4 1
/** Defines a UID for your VST plugin.
The default setting here is probably fine, unless you specifically need
a custom value. It's passed to the setUniqueID() method of the plugin class.
*/
#define JucePlugin_VSTUniqueID JucePlugin_PluginCode
/** Defines the type of plugin. For most pursposes, you don't need to change this
setting.
*/
#if JucePlugin_IsSynth
#define JucePlugin_VSTCategory kPlugCategSynth
#else
#define JucePlugin_VSTCategory kPlugCategEffect
#endif
//==============================================================================
/* AudioUnit settings */
/** Defines the major type of plugin - see AUComponent.h for the available options.
If it's an effect, you should use kAudioUnitType_Effect. For a synth, you'll
need to use kAudioUnitType_MusicEffect or kAudioUnitType_MusicDevice.
*/
#if JucePlugin_IsSynth
#define JucePlugin_AUMainType kAudioUnitType_MusicEffect
#else
#define JucePlugin_AUMainType kAudioUnitType_Effect
#endif
/** A 4-character plugin ID code that should be unique.
You can leave this using the generic value JucePlugin_PluginCode, or
override it if necessary.
Note that for AU, this must contain at least one upper-case letter.
*/
#define JucePlugin_AUSubType JucePlugin_PluginCode
/** A prefix for the names of exported entry-point functions that the component exposes.
It's very important that your plugin's .exp file contains two entries that correspond to
this name. So for example if you set the prefix to "abc" then your exports
file must contain:
_abcEntry
_abcViewEntry
*/
#define JucePlugin_AUExportPrefix JuceDemoAU
/** This is the same as JucePlugin_AUExportPrefix, but in quotes
(needed for the resource compiler...)
*/
#define JucePlugin_AUExportPrefixQuoted "JuceDemoAU"
/** A 4-character manufacturer code - this is your company name.
You can leave this using the generic value JucePlugin_ManufacturerCode, or
override it if necessary.
*/
#define JucePlugin_AUManufacturerCode JucePlugin_ManufacturerCode
/** If you define this value to be the same as the CFBundleIdentifier in your
plugin's plist, it allows the plugin to work out its own path, which is
needed if you want to use File::getSpecialLocation (currentExecutableFile)
*/
#define JucePlugin_CFBundleIdentifier "com.rawmaterialsoftware.JuceDemo"
//==============================================================================
/* RTAS settings */
/** How to categorise this plugin.
For a synth you probably want to set this to ePlugInCategory_SWGenerators.
For an effect, you could choose one of:
ePlugInCategory_None, ePlugInCategory_EQ, ePlugInCategory_Dynamics,
ePlugInCategory_PitchShift, ePlugInCategory_Reverb, ePlugInCategory_Delay,
ePlugInCategory_Modulation, ePlugInCategory_Harmonic, ePlugInCategory_NoiseReduction,
ePlugInCategory_Dither, ePlugInCategory_SoundField
(All values are listed in FicPluginEnums.h)
*/
#if JucePlugin_IsSynth
#define JucePlugin_RTASCategory ePlugInCategory_SWGenerators
#else
#define JucePlugin_RTASCategory ePlugInCategory_None
#endif
/** A 4-character manufacturer code - this is your company name.
You can leave this using the generic value JucePlugin_ManufacturerCode, or
override it if necessary.
*/
#define JucePlugin_RTASManufacturerCode JucePlugin_ManufacturerCode
/** A 4-character plugin ID code that should be unique.
You can leave this using the generic value JucePlugin_PluginCode, or
override it if necessary.
*/
#define JucePlugin_RTASProductId JucePlugin_PluginCode
//==============================================================================
#endif
/*
==============================================================================
This file is part of the JUCE library - "Jules' Utility Class Extensions"
Copyright 2004-7 by Raw Material Software ltd.
------------------------------------------------------------------------------
JUCE can be redistributed and/or modified under the terms of the
GNU General Public License, as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.
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.
You should have received a copy of the GNU General Public License
along with JUCE; if not, visit www.gnu.org/licenses or write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA
------------------------------------------------------------------------------
If you'd like to release a closed-source product which uses JUCE, commercial
licenses are also available: visit www.rawmaterialsoftware.com/juce for
more information.
==============================================================================
*/
#ifndef __JUCE_PLUGIN_CHARACTERISTICS_H__
#define __JUCE_PLUGIN_CHARACTERISTICS_H__
//==============================================================================
/* All of the following settings need to be defined for your plugin.
Go through each of these definitions and check that it's correctly
set-up before trying to do a build.
*/
//==============================================================================
/* Generic settings */
/** The name of your plugin. (Try to keep this as short as possible)
*/
#define JucePlugin_Name "Juce Demo Plugin"
/** A longer decription of your plugin.
*/
#define JucePlugin_Desc "A Demo Plugin demonstrating Juce"
/** The name of your company. (Try to keep this as short as possible)
*/
#define JucePlugin_Manufacturer "Raw Material Software"
/** A four-character code for your company.
Use single quotes - this isn't a string!
*/
#define JucePlugin_ManufacturerCode 'RawM'
/** A unique four-character code for your plugin.
Use single quotes - this isn't a string!
Note that for AU compatibility, this must contain at least one
upper-case letter.
*/
#define JucePlugin_PluginCode 'JcDm'
//==============================================================================
/** The maximum number of channels of audio input that the plugin can handle.
The actual number of channels supplied may be less than this, depending on the host.
For VSTs, you specify a maximum number of channels, for AUs and RTAS a set
of channel configurations is specified in JucePlugin_PreferredChannelConfigurations
and the host will choose one of these, but you should still set the max number of
channels correctly.
As soon as a plugin's prepareToPlay() method is called, you can find out the actual
number of channels that will be used with the AudioFilterBase::getNumInputChannels()
method.
*/
#define JucePlugin_MaxNumInputChannels 2
/** The maximum number of channels of audio output that the plugin can handle.
The actual number of channels supplied may be less than this, depending on the host.
For VSTs, you specify a maximum number of channels, for AUs and RTAS a set
of channel configurations is specified in JucePlugin_PreferredChannelConfigurations
and the host will choose one of these, but you should still set the max number of
channels correctly.
As soon as a plugin's prepareToPlay() method is called, you can find out the actual
number of channels that will be used with the AudioFilterBase::getNumOutputChannels()
method.
*/
#define JucePlugin_MaxNumOutputChannels 2
/** This allows the plugin to specify the configurations of input/output channels that
they can support.
AU and RTAS hosts will use this information, although VSTs only have a concept of
a maximum number of channels.
The list is a set of pairs of values in the form { numInputs, numOutputs }, and each
pair indicates a valid configuration that the plugin can handle.
So for example, {1, 1}, {2, 2} means that the plugin can be used in just two
configurations: either with 1 input and 1 output, or with 2 inputs and 2 outputs. If
you used this in Pro-Tools, the plugin could be placed on a mono or stereo track.
If the list was just {1, 1}, then Pro-Tools would only allow it to be used as a mono
plugin.
As soon as a plugin's prepareToPlay() method is called, you can find out the actual
number of channels that the host has connected to the plugin by using the
AudioFilterBase::getNumOutputChannels() and AudioFilterBase::getNumInputChannels()
methods.
*/
#define JucePlugin_PreferredChannelConfigurations { 1, 1 }, { 2, 2 }
//==============================================================================
/** Set this value to 1 if your plugin is a synth, or 0 if it isn't.
*/
#define JucePlugin_IsSynth 0
/** Set this to 1 if your plugin needs to receive midi messages, or 0 if
it doesn't.
*/
#define JucePlugin_WantsMidiInput 1
/** Set this to 1 if your plugin wants to output midi messages, or 0 if
it doesn't.
*/
#define JucePlugin_ProducesMidiOutput 1
/** If this is 1, it means that when the plugins input buffers are
silent, it's output will be too.
Some hosts may use this to avoid calling the plugin when no audio
would be produced.
*/
#define JucePlugin_SilenceInProducesSilenceOut 0
/** If set to 1, this hints that the host should ignore any keys that are pressed
when the plugin has keyboard focus. If 0, then the host should still execute
any shortcut keys that are pressed, even if the plugin does have focus.
Various hosts/platforms may deal with this differently, or ignore it.
*/
#define JucePlugin_EditorRequiresKeyboardFocus 1
//==============================================================================
/** A version number
*/
#define JucePlugin_VersionCode 0x00010100
#define JucePlugin_VersionString "1.1"
//==============================================================================
/* VST settings */
/** For VSTs, if you're compiling against the V2.3 SDK, set this to zero. If
you're using V2.4 or later, make sure it's set to 1.
*/
#define JUCE_USE_VSTSDK_2_4 1
/** Defines a UID for your VST plugin.
The default setting here is probably fine, unless you specifically need
a custom value. It's passed to the setUniqueID() method of the plugin class.
*/
#define JucePlugin_VSTUniqueID JucePlugin_PluginCode
/** Defines the type of plugin. For most pursposes, you don't need to change this
setting.
*/
#if JucePlugin_IsSynth
#define JucePlugin_VSTCategory kPlugCategSynth
#else
#define JucePlugin_VSTCategory kPlugCategEffect
#endif
//==============================================================================
/* AudioUnit settings */
/** Defines the major type of plugin - see AUComponent.h for the available options.
If it's an effect, you should use kAudioUnitType_Effect. For a synth, you'll
need to use kAudioUnitType_MusicEffect or kAudioUnitType_MusicDevice.
*/
#if JucePlugin_IsSynth
#define JucePlugin_AUMainType kAudioUnitType_MusicDevice
#else
#define JucePlugin_AUMainType kAudioUnitType_Effect
#endif
/** A 4-character plugin ID code that should be unique.
You can leave this using the generic value JucePlugin_PluginCode, or
override it if necessary.
Note that for AU, this must contain at least one upper-case letter.
*/
#define JucePlugin_AUSubType JucePlugin_PluginCode
/** A prefix for the names of exported entry-point functions that the component exposes.
It's very important that your plugin's .exp file contains two entries that correspond to
this name. So for example if you set the prefix to "abc" then your exports
file must contain:
_abcEntry
_abcViewEntry
*/
#define JucePlugin_AUExportPrefix JuceDemoAU
/** This is the same as JucePlugin_AUExportPrefix, but in quotes
(needed for the resource compiler...)
*/
#define JucePlugin_AUExportPrefixQuoted "JuceDemoAU"
/** A 4-character manufacturer code - this is your company name.
You can leave this using the generic value JucePlugin_ManufacturerCode, or
override it if necessary.
*/
#define JucePlugin_AUManufacturerCode JucePlugin_ManufacturerCode
/** If you define this value to be the same as the CFBundleIdentifier in your
plugin's plist, it allows the plugin to work out its own path, which is
needed if you want to use File::getSpecialLocation (currentExecutableFile)
*/
#define JucePlugin_CFBundleIdentifier "com.rawmaterialsoftware.JuceDemo"
//==============================================================================
/* RTAS settings */
/** How to categorise this plugin.
For a synth you probably want to set this to ePlugInCategory_SWGenerators.
For an effect, you could choose one of:
ePlugInCategory_None, ePlugInCategory_EQ, ePlugInCategory_Dynamics,
ePlugInCategory_PitchShift, ePlugInCategory_Reverb, ePlugInCategory_Delay,
ePlugInCategory_Modulation, ePlugInCategory_Harmonic, ePlugInCategory_NoiseReduction,
ePlugInCategory_Dither, ePlugInCategory_SoundField
(All values are listed in FicPluginEnums.h)
*/
#if JucePlugin_IsSynth
#define JucePlugin_RTASCategory ePlugInCategory_SWGenerators
#else
#define JucePlugin_RTASCategory ePlugInCategory_None
#endif
/** A 4-character manufacturer code - this is your company name.
You can leave this using the generic value JucePlugin_ManufacturerCode, or
override it if necessary.
*/
#define JucePlugin_RTASManufacturerCode JucePlugin_ManufacturerCode
/** A 4-character plugin ID code that should be unique.
You can leave this using the generic value JucePlugin_PluginCode, or
override it if necessary.
*/
#define JucePlugin_RTASProductId JucePlugin_PluginCode
//==============================================================================
#endif

+ 945
- 897
extras/audio plugins/wrapper/formats/AudioUnit/juce_AudioUnitWrapper.cpp
File diff suppressed because it is too large
View File


Loading…
Cancel
Save