Browse Source

Removed file/folder

tags/2021-05-28
jules 17 years ago
parent
commit
d648cb3678
51 changed files with 0 additions and 9078 deletions
  1. +0
    -272
      extras/audio plugins/How to use this framework.txt
  2. +0
    -28
      extras/audio plugins/demo/build/AudioUnit/Info-JuceAU.plist
  3. +0
    -9
      extras/audio plugins/demo/build/AudioUnit/JuceAU.exp
  4. +0
    -609
      extras/audio plugins/demo/build/AudioUnit/JuceDemoAU.xcodeproj/project.pbxproj
  5. +0
    -32
      extras/audio plugins/demo/build/RTAS_Mac/Info.plist
  6. +0
    -394
      extras/audio plugins/demo/build/RTAS_Mac/juce_RTASDemo.xcodeproj/project.pbxproj
  7. +0
    -49
      extras/audio plugins/demo/build/RTAS_Win32/juce_RTAS.sln
  8. +0
    -629
      extras/audio plugins/demo/build/RTAS_Win32/juce_RTAS.vcproj
  9. +0
    -112
      extras/audio plugins/demo/build/RTAS_Win32/juce_RTASDemo.rc
  10. +0
    -14
      extras/audio plugins/demo/build/RTAS_Win32/resource.h
  11. +0
    -55
      extras/audio plugins/demo/build/VST_Linux/premake.lua
  12. +0
    -28
      extras/audio plugins/demo/build/VST_Mac/Info.plist
  13. +0
    -22
      extras/audio plugins/demo/build/VST_Mac/JuceVST-Info.plist
  14. +0
    -289
      extras/audio plugins/demo/build/VST_Mac/JuceVST.xcodeproj/project.pbxproj
  15. +0
    -16
      extras/audio plugins/demo/build/VST_Mac/version.plist
  16. +0
    -39
      extras/audio plugins/demo/build/VST_Win32/juce_vst.sln
  17. +0
    -268
      extras/audio plugins/demo/build/VST_Win32/juce_vst.vcproj
  18. +0
    -195
      extras/audio plugins/demo/src/DemoEditorComponent.cpp
  19. +0
    -99
      extras/audio plugins/demo/src/DemoEditorComponent.h
  20. +0
    -236
      extras/audio plugins/demo/src/DemoJuceFilter.cpp
  21. +0
    -112
      extras/audio plugins/demo/src/DemoJuceFilter.h
  22. +0
    -270
      extras/audio plugins/demo/src/JucePluginCharacteristics.h
  23. +0
    -948
      extras/audio plugins/wrapper/formats/AudioUnit/juce_AudioUnitWrapper.cpp
  24. +0
    -70
      extras/audio plugins/wrapper/formats/AudioUnit/juce_AudioUnitWrapper.r
  25. BIN
      extras/audio plugins/wrapper/formats/RTAS/DefaultResourceFile
  26. +0
    -4
      extras/audio plugins/wrapper/formats/RTAS/DummyResourceFile.r
  27. +0
    -63
      extras/audio plugins/wrapper/formats/RTAS/juce_RTASCompileFlags.h
  28. +0
    -139
      extras/audio plugins/wrapper/formats/RTAS/juce_RTASUtilities.cpp
  29. +0
    -1092
      extras/audio plugins/wrapper/formats/RTAS/juce_RTASWrapper.cpp
  30. +0
    -3
      extras/audio plugins/wrapper/formats/RTAS/juce_RTAS_dlldefs.def
  31. +0
    -44
      extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectGroup.cpp
  32. +0
    -44
      extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectGroupMIDI.cpp
  33. +0
    -44
      extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectMIDIUtils.cpp
  34. +0
    -44
      extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcess.cpp
  35. +0
    -44
      extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcessAS.cpp
  36. +0
    -44
      extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcessMIDI.cpp
  37. +0
    -44
      extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectType.cpp
  38. +0
    -44
      extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectTypeRTAS.cpp
  39. +0
    -44
      extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_ChunkDataParser.cpp
  40. +0
    -46
      extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_DLLMain.cpp
  41. +0
    -46
      extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_DefaultSwap.cpp
  42. +0
    -40
      extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_Dispatcher.cpp
  43. +0
    -45
      extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_Header.h
  44. +0
    -44
      extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_PlugInUtils.cpp
  45. +0
    -40
      extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_PluginInitialize.cpp
  46. +0
    -173
      extras/audio plugins/wrapper/formats/Standalone/juce_AudioFilterStreamer.cpp
  47. +0
    -128
      extras/audio plugins/wrapper/formats/Standalone/juce_AudioFilterStreamer.h
  48. +0
    -301
      extras/audio plugins/wrapper/formats/Standalone/juce_StandaloneFilterWindow.cpp
  49. +0
    -96
      extras/audio plugins/wrapper/formats/Standalone/juce_StandaloneFilterWindow.h
  50. +0
    -1529
      extras/audio plugins/wrapper/formats/VST/juce_VstWrapper.cpp
  51. +0
    -98
      extras/audio plugins/wrapper/juce_IncludeCharacteristics.h

+ 0
- 272
extras/audio plugins/How to use this framework.txt View File

@@ -1,272 +0,0 @@

The Juce Audio Plugin project!
==============================

(c) 2005-6 by Raw Material Software, visit www.rawmaterialsoftware.com for more info.

The idea behind this is to create a framework which lets you write a platform-independent
audio plugin using Juce, which can be easily rebuilt to target multiple different plugin
formats and platforms.


How does it work?
=================

There's a generic audio plugin base class defined in juce_AudioFilterBase.h, and to write
your plugin, you just need to create a sub-class of this.

You can then compile your class against one or more of the platform-specific projects,
so that it gets wrapped as a VST, AudioUnit, RTAS, etc. - hopefully without changing any
of your code at all, or having to go anywhere near any platform-specific stuff.


How do I use it?
================

Under the 'wrapper/formats' directory are a bunch of different sets of files containing the
wrapper code for each different plugin type.

There is also a 'demo' folder - this shows an example plugin which can be built in all
the different formats. The demo folder contains:

- a 'src' directory containing the common, platform-independent code that defines this
plugin's behaviour
- a 'build' directory which contains projects for building the demo for each different
platform and format.

Have a look at the demo classes to see how it works, and then to create a real plugin,
you'll need to replace the demo files with your own code.

I've tried to add helpful comments where you might run across common compile errors, to
help describe what you might be doing wrong, as getting a build set-up for some of these
formats can be a bit of a pain. Please let me know if you find there's anything missing
from these instructions or anything I could change to help smooth the build process along
a bit.

I'd recommend NOT putting your own plugin code inside the JuceAudioPlugin directory - it's
much neater to keep it somewhere separate and to alter the projects to point to your
files instead of the demo ones. That way when new versions of this library come out, it'll
make it easier to update to the latest code.

For details about how to create your own projects for the various formats, see below.


Sending feedback:
=================

- if you spot a bug or some kind of host incompatibility, tell me, of course!

- the plan is that no-one should need to change any of the platform-specific code, or the base-class
code.. So if you find that your plugin can't do something you want it to, then rather than just
jumping in and hacking things to get the functionality you need, why not contact me and we'll
figure out a nice generic way of doing it. That way it'll benefit all the users, and you won't
have to hack it all over again when the next version comes out.

- if you're really determined to rewrite large chunks of my code and send it to me to look at,
*please* don't reformat anything in your own preferred style, or change the format of the
comments, etc.. It's bad enough looking at people's code and trying to figure out why they've
done something, but if everything's moved around I can't even diff it..


What are the licensing issues?
==============================

Juce is released under the GPL (Gnu Public License) - this means that you're free to use
and redistribute it as long as your products are also released under the GPL. Basically
this means that if you use it, you also have to give away your source code.
If you want to release a closed-source application, you can buy a commercial license
that lets you avoid this restriction - see http://www.rawmaterialsoftware.com/juce for more info,
or see the comments at the top of all the Juce source files.

If you're building the VST projects or releasing a VST, you'll need have a look at Steinberg's
developer site to see what licensing rules apply these days. Their website's at
http://www.steinberg.net

If you're building an RTAS then you'll need to sign Digidesign's developer license to get
their SDK. Visit http://www.digidesign.com for more info.


-----------------------------------------------------------------------------------------------------

How to create your own VST project
==================================

- Visit http://www.steinberg.net and jump through whatever hoops are necessary to download
and install the VST SDK.
- Make sure your include path contains an entry for the "vstsdk2.4" folder containing
the SDK.
- First try loading the VST demo project in JuceAudioPlugin/demo/build. Hopefully this
should build correctly.
- To create your own project for a VST, the simplest way is to take a copy of
the demo project and go through it carefully, changing any relevent settings to reflect
your own project.

N.B. On the Mac, there's an important point to note about exported symbols.. When XCode builds
the plugin, I've had unpredictable results when trying to stop it from exporting all of
the internal functions as public symbols. There are some flags that are supposed to turn this
off, but sometimes they don't seem to have any effect, and using an explicit exports file also
seems a bit hit-and-miss. (If anyone knows better and can get this working, please let me know!)
Anyway, as well as being wasteful and showing everyone what's inside your plugin, leaving all
the symbols in there will cause fatal crashes when used with Tracktion, or alongside any other
Juce-based plugins. A way of making sure your plugin is stripped is to use the command
"strip -x -S YourPlugin.vst/Contents/MacOS/YourPlugin" after bulding it, which removes the
unnecessary symbols (although in my experience this also doesn't seem to work all the time,
so it's a good idea to check it using the unix "nm" command).


-----------------------------------------------------------------------------------------------------

How to create your own AudioUnit project
========================================

- If you've got XCode installed, the demo project in JuceAudioPlugin/demo/build/AudioUnit
should just build. You may need to tweak a few paths to make sure it can find the
juce.h include file and juce library.
- When copying this project to make your own, a good plan is to open up a view of the settings
for the project and target, viewing the "customised settings" to see those values that
have to be deliberately set for the plugin to work.

N.B. For the Mac there can be an issue with exported symbols - see the note about this for
VSTs, as the same solution can be used for AudioUnits.


-----------------------------------------------------------------------------------------------------

How to create your own RTAS project
===================================


RTAS is a bit more of a pain to build than VSTs or AUs. To begin with:

- Contact Digidesign, ask to become a Digidesign Development Partner, sign the relevent
agreements and NDAs.
- From the Digidesign website, download their latest Plug-In SDK
- Install the SDK and build some of the demo plugins to make sure it all works.

Compiling the juce demo RTAS on the PC:
=======================================

- Using the Digidesign demo projects in the SDK, make sure you've built debug and release
versions of these static libraries: DAE.lib, DigiExt.lib, DSI.lib, PlugInLib.lib.

- In Visual Studio, add all of this lot to your include path:

c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\EffectClasses
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\ProcessClasses
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\ProcessClasses\Interfaces
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\Utilities
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\RTASP_Adapt
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\CoreClasses
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\Controls
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\Meters
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\ViewClasses
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\DSPClasses
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\Interfaces
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\common
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\common\Platform
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\SignalProcessing\Public
c:\yourdirectory\PT_73_SDK\AlturaPorts\SADriver\Interfaces
c:\yourdirectory\PT_73_SDK\AlturaPorts\DigiPublic\Interfaces
c:\yourdirectory\PT_73_SDK\AlturaPorts\Fic\Interfaces\DAEClient
c:\yourdirectory\PT_73_SDK\AlturaPorts\NewFileLibs\Cmn
c:\yourdirectory\PT_73_SDK\AlturaPorts\NewFileLibs\DOA
c:\yourdirectory\PT_73_SDK\AlturaPorts\AlturaSource\PPC_H
c:\yourdirectory\PT_73_SDK\AlturaPorts\AlturaSource\AppSupport
c:\yourdirectory\PT_73_SDK\AvidCode\AVX2sdk\AVX\avx2\avx2sdk\inc

- The Visual Studio juce_RTAS project contains a folder called "libs", with "debug" and
"release" subdirectories - these should contain links to the Digidesign lib files
DAE.lib, DigiExt.lib, DSI.lib, PlugInLib.lib - you'll need to update these links to
point to the correct locations according to where you've installed the SDK.

- Fingers crossed, this should now compile..

- IMPORTANT NOTE! If you're using MSVC2005 to build your plugin, the users will need to
have the Microsoft VC8 Runtime installed on their machines, otherwise the DLL will
silently fail to load. You should probably add the runtime to your plugin's installer,
and you can get a copy of it here:
http://www.microsoft.com/downloads/details.aspx?FamilyID=32bc1bee-a3f9-4c13-9c99-220b62a191ee&DisplayLang=en


Creating a project for your own RTAS on the PC:
=================================================

- start a new empty project in Developer Studio, as a "Windows DLL"
- in the source tree, create the same folders and add to them the same list of
cpp files that are in the demo project's "wrapper code" folder.
- select all the CPP files in the "wrapper code/RTAS specific" folder, and also
the juce_RTASWrapper.cpp file, (but NOT the juce_RTASUtilities.cpp file or any
other files!), and in their properties dialog, under C++/Advanced, change their
"Calling convention" setting to "__stdcall".
Remember to do this for both your debug and release builds!
- in your project's C++/General settings, add an additional include path so that
it will be able find your JucePluginCharacteristics.h file.
- Under "linker settings", change the output file name to have the suffix ".dpm"
instead of ".dll"
- Under "linker settings/input/ignore specific library", you'll probably need to
add "libcmtd.lib" for debug, and "libcmt.lib" for release.
- Under "linkey settings", set the Module definition file to be
JuceAudioPlugin/wrapper/formats/RTAS/juce_RTAS_dlldefs.def
- You might want to change the output directory to "\Program Files\Common Files\Digidesign\DAE\Plug-Ins\"
if you want the built plugin to go directly into the PT plugins folder
- Add a custom build step to copy the dummy resource file "JuceAudioPlugin\wrapper\formats\RTAS\DefaultResourceFile"
to your target directory, renaming to to be the same as your .dpm file, but with
".rsr" on the end of the name. The demo project does this with the command
"copy /Y ..\..\..\wrapper\formats\RTAS\DefaultResourceFile "$(TargetPath)".rsr"
- Under the "general" properties, make sure that the character set is not unicode, as
this seems to stop some of the Digi code building. Hopefully this will be fixed
in future SDK releases
- add a "libs" folder to your project, and copy the set of libraries from the
equivalent folder in the demo project. Make sure you enable the debug/release
versions of these libraries appropriately.

There are quite a few things that you need to get right for an RTAS to compile correctly -
the Digi SDK documentation has a full list of tips on setting up a project, but the
main ones to note are:

- the SDK uses __stdcall as its calling convention, but JUCE uses __cdecl. I've got
around this by leaving the project's default setting as __cdecl, but changing it
specifically for those files that include or build files from the SDK - i.e. for
most of the files in the "wrapper code/RTAS specific" folder of the demo project.
- the default struct alignment for the SDK is 2 bytes, wheras the default as used in
juce is 8 bytes. Again, I've left this at the default setting, and have explicitly
changed it with pragmas when including/building SDK files.
- even though it's not used, each xx.dpm file needs to have a corresponding
xx.dpm.rsr file next to it, or PT will refuse to load it. The demo project currently
does this by using a custom build step to copy and rename a small dummy rsr file called
JuceAudioPlugin/wrapper/formats/RTAS/DefaultResourceFile


Compiling the juce demo RTAS on the Mac:
========================================

- After installing the Digidesign SDK, make sure you've run the config_SDK_for_Mac command in
its root directory. This sets up some of the tools that it needs.
- Load the juce_RTASDemo.xcodeproject and look through the project in XCode to find
all the broken links to Digidesign files. You'll need to repair these to make them
point to the location of the SDK files on your machine.
- Open the project's settings, and look for the "MacBag" setting - this defines the location
of the MacBag folder in the Digidesign SDK. You'll need to update this to point to
its location on your machine.
- It should all compile now, fingers crossed..

- Building a universal binary on the Mac: for this, you'll need to recompile the Digidesign
PluginLibrary project as a universal binary. The easiest way to do this is to add the
following lines to the top of the CommonDebugSettings.xcconfig and CommonReleaseSettings.xcconfig
files (these are found deep in the PT SDK tree somewhere, and are used for config by both the
Digi projects and the juce plugin projects):
ARCHS = ppc i386
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk
MACOSX_DEPLOYMENT_TARGET_ppc = 10.3


Creating a new project for your own RTAS plugin on the Mac:
===========================================================

It's probably easiest to take a copy of the juce demo project and go through it changing
its settings to those of your plugin.

If you decide to start from scratch, use the juce demo project as a reference to see
what needs to go in there. Looking at its project info for "customised settings" is a good
way to see what values have been set deliberately.


+ 0
- 28
extras/audio plugins/demo/build/AudioUnit/Info-JuceAU.plist View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string></string>
<key>CFBundleGetInfoString</key>
<string></string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.rawmaterialsoftware.JuceAUDemo</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Juce Audio Unit Demo</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string></string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
</dict>
</plist>

+ 0
- 9
extras/audio plugins/demo/build/AudioUnit/JuceAU.exp View File

@@ -1,9 +0,0 @@
#
# This file must contain entries for the two AU entry points.
#
# Your JucePluginCharacteristics.h file must define the prefix used for these function names - for
# more info, see the comments in JucePluginCharacteristics.h
#

_JuceDemoAUEntry
_JuceDemoAUViewEntry

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

@@ -1,609 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 42;
objects = {

/* Begin PBXBuildFile section */
3E8BF105079CA60300021B09 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D199ED03175E1E01CA2136 /* AUBase.h */; };
3E8BF106079CA60300021B09 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D199EF03175E1E01CA2136 /* AUDispatch.h */; };
3E8BF107079CA60300021B09 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D199F103175E1E01CA2136 /* AUInputElement.h */; };
3E8BF108079CA60300021B09 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D199F303175E1E01CA2136 /* AUOutputElement.h */; };
3E8BF109079CA60300021B09 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D199F603175E1E01CA2136 /* AUScopeElement.h */; };
3E8BF10A079CA60300021B09 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D199FA03175E1E01CA2136 /* ComponentBase.h */; };
3E8BF10B079CA60300021B09 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D199FF03175E1E01CA2136 /* AUEffectBase.h */; };
3E8BF10C079CA60300021B09 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D19A0F03175E1E01CA2136 /* AUBuffer.h */; };
3E8BF10D079CA60300021B09 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D19A6903175E8C01CA2136 /* CAStreamBasicDescription.h */; };
3E8BF10E079CA60300021B09 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 7967EF8C04D70E7C00C625F7 /* CAAudioChannelLayout.h */; };
3E8BF113079CA60300021B09 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D199EC03175E1E01CA2136 /* AUBase.cpp */; };
3E8BF114079CA60300021B09 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D199EE03175E1E01CA2136 /* AUDispatch.cpp */; };
3E8BF115079CA60300021B09 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D199F003175E1E01CA2136 /* AUInputElement.cpp */; };
3E8BF116079CA60300021B09 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D199F203175E1E01CA2136 /* AUOutputElement.cpp */; };
3E8BF117079CA60300021B09 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D199F503175E1E01CA2136 /* AUScopeElement.cpp */; };
3E8BF118079CA60300021B09 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D199F903175E1E01CA2136 /* ComponentBase.cpp */; };
3E8BF119079CA60300021B09 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D199FE03175E1E01CA2136 /* AUEffectBase.cpp */; };
3E8BF11A079CA60300021B09 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D19A0E03175E1E01CA2136 /* AUBuffer.cpp */; };
3E8BF11B079CA60300021B09 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7967EF8B04D70E7C00C625F7 /* CAAudioChannelLayout.cpp */; };
3E8BF11C079CA60300021B09 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7967EF8D04D70E7C00C625F7 /* CAStreamBasicDescription.cpp */; };
3E8BF11F079CA60300021B09 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5AA9A2F0281AAB901C34293 /* CoreFoundation.framework */; };
3E8BF120079CA60300021B09 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5AA9A300281AAB901C34293 /* CoreServices.framework */; };
3E8BF121079CA60300021B09 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5DA37E702821D04014500A0 /* Carbon.framework */; };
3E8BF122079CA60300021B09 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5D19ABE0317606901CA2136 /* AudioUnit.framework */; };
844C50290C71B6E300D0082E /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 844C50280C71B6E300D0082E /* IOKit.framework */; };
845FAE5F0A5C0A6A008C94D8 /* juce.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 845FAE5E0A5C0A6A008C94D8 /* juce.xcconfig */; };
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 */; };
84BC4E5E0C8DDD3D00FA249B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84BC4E5D0C8DDD3C00FA249B /* OpenGL.framework */; };
84CFAEFB090964560053C22C /* AUCarbonViewDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D19AAB03175F3201CA2136 /* AUCarbonViewDispatch.cpp */; };
84CFAEFC090964560053C22C /* AUCarbonViewControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D19AA903175F3201CA2136 /* AUCarbonViewControl.cpp */; };
84CFAEFD090964560053C22C /* AUCarbonViewBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D19AA703175F3201CA2136 /* AUCarbonViewBase.cpp */; };
84CFAF0E090965080053C22C /* CarbonEventHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D19AB003175F3201CA2136 /* CarbonEventHandler.cpp */; };
84CFAF10090965080053C22C /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EF64FA42057BC39200D99563 /* CAAUParameter.cpp */; };
84CFAFEB0909666C0053C22C /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E8BF154079CA7A800021B09 /* AudioToolbox.framework */; };
84CFB029090968590053C22C /* DemoJuceAudioUnit.component in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3E8BF126079CA60300021B09 /* DemoJuceAudioUnit.component */; };
84EB400B090A4A2C008FAC1B /* juce_AudioUnitWrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84EB4009090A4A2C008FAC1B /* juce_AudioUnitWrapper.cpp */; };
84EB400C090A4A2C008FAC1B /* juce_AudioUnitWrapper.r in Rez */ = {isa = PBXBuildFile; fileRef = 84EB400A090A4A2C008FAC1B /* juce_AudioUnitWrapper.r */; };
84EB4042090A4F5A008FAC1B /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4E5DC280898301D00589A5A /* CAVectorUnit.cpp */; };
84EB404E090A5116008FAC1B /* JucePluginCharacteristics.h in Headers */ = {isa = PBXBuildFile; fileRef = 84EB404D090A5116008FAC1B /* JucePluginCharacteristics.h */; };
84F0521E090674BB00AEC8DB /* Info-JuceAU.plist in Resources */ = {isa = PBXBuildFile; fileRef = 84F05215090674BB00AEC8DB /* Info-JuceAU.plist */; };
84F0548F090687F600AEC8DB /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84F0548E090687F600AEC8DB /* CoreAudio.framework */; };
84F054E80906C8DD00AEC8DB /* AUMIDIBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84F054E40906C8DD00AEC8DB /* AUMIDIBase.cpp */; };
84F054E90906C8DD00AEC8DB /* AUMIDIBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F054E50906C8DD00AEC8DB /* AUMIDIBase.h */; };
84F054EA0906C8DD00AEC8DB /* AUMIDIEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84F054E60906C8DD00AEC8DB /* AUMIDIEffectBase.cpp */; };
84F054EB0906C8DD00AEC8DB /* AUMIDIEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F054E70906C8DD00AEC8DB /* AUMIDIEffectBase.h */; };
84F055010906E9EA00AEC8DB /* DemoEditorComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84F054FD0906E9EA00AEC8DB /* DemoEditorComponent.cpp */; };
84F055020906E9EA00AEC8DB /* DemoEditorComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F054FE0906E9EA00AEC8DB /* DemoEditorComponent.h */; };
84F055030906E9EA00AEC8DB /* DemoJuceFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84F054FF0906E9EA00AEC8DB /* DemoJuceFilter.cpp */; };
84F055040906E9EA00AEC8DB /* DemoJuceFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F055000906E9EA00AEC8DB /* DemoJuceFilter.h */; };
84F055260906FBCF00AEC8DB /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F055250906FBCF00AEC8DB /* AUSilentTimeout.h */; };
84F87963093B1EDC00225D65 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84F87962093B1EDC00225D65 /* AGL.framework */; };
84FDAFE90C15B9E200CD0087 /* libjucedebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 84FDAFBD0C15B8F100CD0087 /* libjucedebug.a */; };
A9E885EA0874B5BF00B2DFE8 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = A9E885E90874B5BF00B2DFE8 /* CAThreadSafeList.h */; };
F4E5DC2C0898301D00589A5A /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = F4E5DC290898301D00589A5A /* CAVectorUnit.h */; };
F4E5DC2D0898301D00589A5A /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = F4E5DC2A0898301D00589A5A /* CAVectorUnitTypes.h */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
84FDAFBC0C15B8F100CD0087 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 84F0545A0906865D00AEC8DB /* Juce.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = D2AAC046055464E500DB518D;
remoteInfo = Juce;
};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
84CFB0240909684B0053C22C /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 12;
dstPath = "$HOME/Library/Audio/Plug-Ins/Components";
dstSubfolderSpec = 0;
files = (
84CFB029090968590053C22C /* DemoJuceAudioUnit.component in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
3E3AAA740670E29D00C484A8 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
3E8BF126079CA60300021B09 /* DemoJuceAudioUnit.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DemoJuceAudioUnit.component; sourceTree = BUILT_PRODUCTS_DIR; };
3E8BF154079CA7A800021B09 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
7967EF8B04D70E7C00C625F7 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
7967EF8C04D70E7C00C625F7 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
7967EF8D04D70E7C00C625F7 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; 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; };
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>"; };
84BC4E5D0C8DDD3C00FA249B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; 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; };
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; };
84F05215090674BB00AEC8DB /* Info-JuceAU.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = "Info-JuceAU.plist"; sourceTree = "<group>"; };
84F05217090674BB00AEC8DB /* JuceAU.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = JuceAU.exp; sourceTree = "<group>"; };
84F0545A0906865D00AEC8DB /* Juce.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Juce.xcodeproj; path = ../../../../../build/macosx/Juce.xcodeproj; sourceTree = SOURCE_ROOT; };
84F0548E090687F600AEC8DB /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
84F054E40906C8DD00AEC8DB /* AUMIDIBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = AUMIDIBase.cpp; path = /Developer/Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIBase.cpp; sourceTree = "<absolute>"; };
84F054E50906C8DD00AEC8DB /* AUMIDIBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = AUMIDIBase.h; path = /Developer/Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIBase.h; sourceTree = "<absolute>"; };
84F054E60906C8DD00AEC8DB /* AUMIDIEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = AUMIDIEffectBase.cpp; path = /Developer/Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIEffectBase.cpp; sourceTree = "<absolute>"; };
84F054E70906C8DD00AEC8DB /* AUMIDIEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = AUMIDIEffectBase.h; path = /Developer/Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIEffectBase.h; sourceTree = "<absolute>"; };
84F054FD0906E9EA00AEC8DB /* DemoEditorComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = DemoEditorComponent.cpp; path = ../../src/DemoEditorComponent.cpp; sourceTree = SOURCE_ROOT; };
84F054FE0906E9EA00AEC8DB /* DemoEditorComponent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DemoEditorComponent.h; path = ../../src/DemoEditorComponent.h; sourceTree = SOURCE_ROOT; };
84F054FF0906E9EA00AEC8DB /* DemoJuceFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = DemoJuceFilter.cpp; path = ../../src/DemoJuceFilter.cpp; sourceTree = SOURCE_ROOT; };
84F055000906E9EA00AEC8DB /* DemoJuceFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DemoJuceFilter.h; path = ../../src/DemoJuceFilter.h; sourceTree = SOURCE_ROOT; };
84F055250906FBCF00AEC8DB /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = AUSilentTimeout.h; path = /Developer/Examples/CoreAudio/AudioUnits/AUPublic/Utility/AUSilentTimeout.h; sourceTree = "<absolute>"; };
84F87962093B1EDC00225D65 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
A3C2CC6105B4A4BE000F141E /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
A9E885E90874B5BF00B2DFE8 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
EF64FA42057BC39200D99563 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
EF64FA43057BC39200D99563 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
F4E5DC280898301D00589A5A /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
F4E5DC290898301D00589A5A /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
F4E5DC2A0898301D00589A5A /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
F5AA9A2F0281AAB901C34293 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CoreFoundation.framework; sourceTree = "<group>"; };
F5AA9A300281AAB901C34293 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CoreServices.framework; sourceTree = "<group>"; };
F5D199EC03175E1E01CA2136 /* AUBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
F5D199ED03175E1E01CA2136 /* AUBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
F5D199EE03175E1E01CA2136 /* AUDispatch.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
F5D199EF03175E1E01CA2136 /* AUDispatch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
F5D199F003175E1E01CA2136 /* AUInputElement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
F5D199F103175E1E01CA2136 /* AUInputElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
F5D199F203175E1E01CA2136 /* AUOutputElement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
F5D199F303175E1E01CA2136 /* AUOutputElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
F5D199F503175E1E01CA2136 /* AUScopeElement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
F5D199F603175E1E01CA2136 /* AUScopeElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
F5D199F903175E1E01CA2136 /* ComponentBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
F5D199FA03175E1E01CA2136 /* ComponentBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
F5D199FE03175E1E01CA2136 /* AUEffectBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
F5D199FF03175E1E01CA2136 /* AUEffectBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
F5D19A0E03175E1E01CA2136 /* AUBuffer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
F5D19A0F03175E1E01CA2136 /* AUBuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
F5D19A6903175E8C01CA2136 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
F5D19AA703175F3201CA2136 /* AUCarbonViewBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUCarbonViewBase.cpp; sourceTree = "<group>"; };
F5D19AA803175F3201CA2136 /* AUCarbonViewBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUCarbonViewBase.h; sourceTree = "<group>"; };
F5D19AA903175F3201CA2136 /* AUCarbonViewControl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUCarbonViewControl.cpp; sourceTree = "<group>"; };
F5D19AAA03175F3201CA2136 /* AUCarbonViewControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUCarbonViewControl.h; sourceTree = "<group>"; };
F5D19AAB03175F3201CA2136 /* AUCarbonViewDispatch.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUCarbonViewDispatch.cpp; sourceTree = "<group>"; };
F5D19AB003175F3201CA2136 /* CarbonEventHandler.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CarbonEventHandler.cpp; sourceTree = "<group>"; };
F5D19AB103175F3201CA2136 /* CarbonEventHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CarbonEventHandler.h; sourceTree = "<group>"; };
F5D19ABE0317606901CA2136 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AudioUnit.framework; sourceTree = "<group>"; };
F5DA37E702821D04014500A0 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Carbon.framework; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
3E8BF11E079CA60300021B09 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
84FDAFE90C15B9E200CD0087 /* libjucedebug.a in Frameworks */,
84CFAFEB0909666C0053C22C /* AudioToolbox.framework in Frameworks */,
3E8BF11F079CA60300021B09 /* CoreFoundation.framework in Frameworks */,
3E8BF120079CA60300021B09 /* CoreServices.framework in Frameworks */,
3E8BF121079CA60300021B09 /* Carbon.framework in Frameworks */,
3E8BF122079CA60300021B09 /* AudioUnit.framework in Frameworks */,
84F0548F090687F600AEC8DB /* CoreAudio.framework in Frameworks */,
84F87963093B1EDC00225D65 /* AGL.framework in Frameworks */,
845FAEE10A5C2696008C94D8 /* QuickTime.framework in Frameworks */,
844C50290C71B6E300D0082E /* IOKit.framework in Frameworks */,
84BC4E5E0C8DDD3D00FA249B /* OpenGL.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
84EB403B090A4ED3008FAC1B /* Juce AU Code */ = {
isa = PBXGroup;
children = (
84EB4009090A4A2C008FAC1B /* juce_AudioUnitWrapper.cpp */,
84EB400A090A4A2C008FAC1B /* juce_AudioUnitWrapper.r */,
);
name = "Juce AU Code";
sourceTree = "<group>";
};
84F0516D09066DB800AEC8DB /* Plugin Code */ = {
isa = PBXGroup;
children = (
84F054FD0906E9EA00AEC8DB /* DemoEditorComponent.cpp */,
84F054FE0906E9EA00AEC8DB /* DemoEditorComponent.h */,
84F054FF0906E9EA00AEC8DB /* DemoJuceFilter.cpp */,
84F055000906E9EA00AEC8DB /* DemoJuceFilter.h */,
84EB404D090A5116008FAC1B /* JucePluginCharacteristics.h */,
84F05215090674BB00AEC8DB /* Info-JuceAU.plist */,
84F05217090674BB00AEC8DB /* JuceAU.exp */,
);
name = "Plugin Code";
sourceTree = "<group>";
};
84F0516E09066DC900AEC8DB /* Wrapper Code */ = {
isa = PBXGroup;
children = (
84EB403B090A4ED3008FAC1B /* Juce AU Code */,
F5AA99C50281A64501C34293 /* Apple AU Code */,
);
name = "Wrapper Code";
sourceTree = "<group>";
};
84FDAFB90C15B8F100CD0087 /* Products */ = {
isa = PBXGroup;
children = (
84FDAFBD0C15B8F100CD0087 /* libjucedebug.a */,
);
name = Products;
sourceTree = "<group>";
};
A3C2CC6005B4A4BE000F141E /* AUViewBase */ = {
isa = PBXGroup;
children = (
A3C2CC6105B4A4BE000F141E /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
F5AA99B60281A61201C34293 = {
isa = PBXGroup;
children = (
F5D199EA03175DB401CA2136 /* Source */,
845FAE5E0A5C0A6A008C94D8 /* juce.xcconfig */,
F5AA99C40281A62C01C34293 /* Products */,
F5AA9E890281AAC901C34293 /* Frameworks */,
);
sourceTree = "<group>";
};
F5AA99C40281A62C01C34293 /* Products */ = {
isa = PBXGroup;
children = (
3E8BF126079CA60300021B09 /* DemoJuceAudioUnit.component */,
);
name = Products;
sourceTree = "<group>";
};
F5AA99C50281A64501C34293 /* Apple AU Code */ = {
isa = PBXGroup;
children = (
F5D199EB03175E1E01CA2136 /* AUBase */,
A3C2CC6005B4A4BE000F141E /* AUViewBase */,
F5D19AA603175F3201CA2136 /* AUCarbonViewBase */,
F5D199FD03175E1E01CA2136 /* OtherBases */,
F5D19A0C03175E1E01CA2136 /* Utility */,
F5D19A3603175E8C01CA2136 /* PublicUtility */,
);
name = "Apple AU Code";
path = /Developer/Examples/CoreAudio/AudioUnits/AUPublic;
sourceTree = "<absolute>";
};
F5AA9E890281AAC901C34293 /* Frameworks */ = {
isa = PBXGroup;
children = (
84F0545A0906865D00AEC8DB /* Juce.xcodeproj */,
F5D19ABE0317606901CA2136 /* AudioUnit.framework */,
3E8BF154079CA7A800021B09 /* AudioToolbox.framework */,
84F0548E090687F600AEC8DB /* CoreAudio.framework */,
F5DA37E702821D04014500A0 /* Carbon.framework */,
F5AA9A2F0281AAB901C34293 /* CoreFoundation.framework */,
F5AA9A300281AAB901C34293 /* CoreServices.framework */,
84F87962093B1EDC00225D65 /* AGL.framework */,
84BC4E5D0C8DDD3C00FA249B /* OpenGL.framework */,
844C50280C71B6E300D0082E /* IOKit.framework */,
845FAEE00A5C2696008C94D8 /* QuickTime.framework */,
);
name = Frameworks;
path = /System/Library/Frameworks;
sourceTree = "<absolute>";
};
F5D199EA03175DB401CA2136 /* Source */ = {
isa = PBXGroup;
children = (
84F0516D09066DB800AEC8DB /* Plugin Code */,
84F0516E09066DC900AEC8DB /* Wrapper Code */,
);
name = Source;
sourceTree = "<group>";
};
F5D199EB03175E1E01CA2136 /* AUBase */ = {
isa = PBXGroup;
children = (
3E3AAA740670E29D00C484A8 /* AUResources.r */,
F5D199EC03175E1E01CA2136 /* AUBase.cpp */,
F5D199ED03175E1E01CA2136 /* AUBase.h */,
F5D199EE03175E1E01CA2136 /* AUDispatch.cpp */,
F5D199EF03175E1E01CA2136 /* AUDispatch.h */,
F5D199F003175E1E01CA2136 /* AUInputElement.cpp */,
F5D199F103175E1E01CA2136 /* AUInputElement.h */,
F5D199F203175E1E01CA2136 /* AUOutputElement.cpp */,
F5D199F303175E1E01CA2136 /* AUOutputElement.h */,
F5D199F503175E1E01CA2136 /* AUScopeElement.cpp */,
F5D199F603175E1E01CA2136 /* AUScopeElement.h */,
F5D199F903175E1E01CA2136 /* ComponentBase.cpp */,
F5D199FA03175E1E01CA2136 /* ComponentBase.h */,
);
path = AUBase;
sourceTree = "<group>";
};
F5D199FD03175E1E01CA2136 /* OtherBases */ = {
isa = PBXGroup;
children = (
84F054E40906C8DD00AEC8DB /* AUMIDIBase.cpp */,
84F054E50906C8DD00AEC8DB /* AUMIDIBase.h */,
84F054E60906C8DD00AEC8DB /* AUMIDIEffectBase.cpp */,
84F054E70906C8DD00AEC8DB /* AUMIDIEffectBase.h */,
F5D199FE03175E1E01CA2136 /* AUEffectBase.cpp */,
F5D199FF03175E1E01CA2136 /* AUEffectBase.h */,
84B4CDCF0C7DD23B0083122F /* MusicDeviceBase.cpp */,
84B4CDD00C7DD23B0083122F /* MusicDeviceBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
F5D19A0C03175E1E01CA2136 /* Utility */ = {
isa = PBXGroup;
children = (
F5D19A0E03175E1E01CA2136 /* AUBuffer.cpp */,
F5D19A0F03175E1E01CA2136 /* AUBuffer.h */,
84F055250906FBCF00AEC8DB /* AUSilentTimeout.h */,
);
path = Utility;
sourceTree = "<group>";
};
F5D19A3603175E8C01CA2136 /* PublicUtility */ = {
isa = PBXGroup;
children = (
F4E5DC280898301D00589A5A /* CAVectorUnit.cpp */,
F4E5DC290898301D00589A5A /* CAVectorUnit.h */,
F4E5DC2A0898301D00589A5A /* CAVectorUnitTypes.h */,
A9E885E90874B5BF00B2DFE8 /* CAThreadSafeList.h */,
7967EF8C04D70E7C00C625F7 /* CAAudioChannelLayout.h */,
7967EF8B04D70E7C00C625F7 /* CAAudioChannelLayout.cpp */,
F5D19A6903175E8C01CA2136 /* CAStreamBasicDescription.h */,
7967EF8D04D70E7C00C625F7 /* CAStreamBasicDescription.cpp */,
EF64FA42057BC39200D99563 /* CAAUParameter.cpp */,
EF64FA43057BC39200D99563 /* CAAUParameter.h */,
);
name = PublicUtility;
path = /Developer/Examples/CoreAudio/PublicUtility;
sourceTree = "<absolute>";
};
F5D19AA603175F3201CA2136 /* AUCarbonViewBase */ = {
isa = PBXGroup;
children = (
F5D19AA703175F3201CA2136 /* AUCarbonViewBase.cpp */,
F5D19AA803175F3201CA2136 /* AUCarbonViewBase.h */,
F5D19AA903175F3201CA2136 /* AUCarbonViewControl.cpp */,
F5D19AAA03175F3201CA2136 /* AUCarbonViewControl.h */,
F5D19AAB03175F3201CA2136 /* AUCarbonViewDispatch.cpp */,
F5D19AB003175F3201CA2136 /* CarbonEventHandler.cpp */,
F5D19AB103175F3201CA2136 /* CarbonEventHandler.h */,
);
path = AUCarbonViewBase;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
3E8BF103079CA60300021B09 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
3E8BF105079CA60300021B09 /* AUBase.h in Headers */,
3E8BF106079CA60300021B09 /* AUDispatch.h in Headers */,
3E8BF107079CA60300021B09 /* AUInputElement.h in Headers */,
3E8BF108079CA60300021B09 /* AUOutputElement.h in Headers */,
3E8BF109079CA60300021B09 /* AUScopeElement.h in Headers */,
3E8BF10A079CA60300021B09 /* ComponentBase.h in Headers */,
3E8BF10B079CA60300021B09 /* AUEffectBase.h in Headers */,
3E8BF10C079CA60300021B09 /* AUBuffer.h in Headers */,
3E8BF10D079CA60300021B09 /* CAStreamBasicDescription.h in Headers */,
3E8BF10E079CA60300021B09 /* CAAudioChannelLayout.h in Headers */,
A9E885EA0874B5BF00B2DFE8 /* CAThreadSafeList.h in Headers */,
F4E5DC2C0898301D00589A5A /* CAVectorUnit.h in Headers */,
F4E5DC2D0898301D00589A5A /* CAVectorUnitTypes.h in Headers */,
84F054E90906C8DD00AEC8DB /* AUMIDIBase.h in Headers */,
84F054EB0906C8DD00AEC8DB /* AUMIDIEffectBase.h in Headers */,
84F055020906E9EA00AEC8DB /* DemoEditorComponent.h in Headers */,
84F055040906E9EA00AEC8DB /* DemoJuceFilter.h in Headers */,
84F055260906FBCF00AEC8DB /* AUSilentTimeout.h in Headers */,
84EB404E090A5116008FAC1B /* JucePluginCharacteristics.h in Headers */,
84B4CDD20C7DD23B0083122F /* MusicDeviceBase.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
3E8BF102079CA60300021B09 /* JuceAU */ = {
isa = PBXNativeTarget;
buildConfigurationList = A9E884AD0874ABE600B2DFE8 /* Build configuration list for PBXNativeTarget "JuceAU" */;
buildPhases = (
3E8BF103079CA60300021B09 /* Headers */,
3E8BF110079CA60300021B09 /* Resources */,
3E8BF111079CA60300021B09 /* Sources */,
3E8BF11E079CA60300021B09 /* Frameworks */,
3E8BF123079CA60300021B09 /* Rez */,
84CFB0240909684B0053C22C /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = JuceAU;
productInstallPath = "$(USER_LIBRARY_DIR)/Bundles";
productName = MultitapAU;
productReference = 3E8BF126079CA60300021B09 /* DemoJuceAudioUnit.component */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
F5AA99BA0281A61201C34293 /* Project object */ = {
isa = PBXProject;
buildConfigurationList = A9E884B90874ABE600B2DFE8 /* Build configuration list for PBXProject "JuceDemoAU" */;
hasScannedForEncodings = 1;
mainGroup = F5AA99B60281A61201C34293;
productRefGroup = F5AA99C40281A62C01C34293 /* Products */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = 84FDAFB90C15B8F100CD0087 /* Products */;
ProjectRef = 84F0545A0906865D00AEC8DB /* Juce.xcodeproj */;
},
);
targets = (
3E8BF102079CA60300021B09 /* JuceAU */,
);
};
/* End PBXProject section */

/* Begin PBXReferenceProxy section */
84FDAFBD0C15B8F100CD0087 /* libjucedebug.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libjucedebug.a;
remoteRef = 84FDAFBC0C15B8F100CD0087 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */

/* Begin PBXResourcesBuildPhase section */
3E8BF110079CA60300021B09 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
84F0521E090674BB00AEC8DB /* Info-JuceAU.plist in Resources */,
845FAE5F0A5C0A6A008C94D8 /* juce.xcconfig in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */

/* Begin PBXRezBuildPhase section */
3E8BF123079CA60300021B09 /* Rez */ = {
isa = PBXRezBuildPhase;
buildActionMask = 2147483647;
files = (
84EB400C090A4A2C008FAC1B /* juce_AudioUnitWrapper.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
3E8BF111079CA60300021B09 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
3E8BF115079CA60300021B09 /* AUInputElement.cpp in Sources */,
3E8BF116079CA60300021B09 /* AUOutputElement.cpp in Sources */,
3E8BF117079CA60300021B09 /* AUScopeElement.cpp in Sources */,
3E8BF113079CA60300021B09 /* AUBase.cpp in Sources */,
3E8BF119079CA60300021B09 /* AUEffectBase.cpp in Sources */,
3E8BF114079CA60300021B09 /* AUDispatch.cpp in Sources */,
3E8BF11C079CA60300021B09 /* CAStreamBasicDescription.cpp in Sources */,
3E8BF11B079CA60300021B09 /* CAAudioChannelLayout.cpp in Sources */,
84CFAF0E090965080053C22C /* CarbonEventHandler.cpp in Sources */,
84CFAEFB090964560053C22C /* AUCarbonViewDispatch.cpp in Sources */,
84CFAEFC090964560053C22C /* AUCarbonViewControl.cpp in Sources */,
84CFAEFD090964560053C22C /* AUCarbonViewBase.cpp in Sources */,
3E8BF118079CA60300021B09 /* ComponentBase.cpp in Sources */,
84CFAF10090965080053C22C /* CAAUParameter.cpp in Sources */,
3E8BF11A079CA60300021B09 /* AUBuffer.cpp in Sources */,
84F054E80906C8DD00AEC8DB /* AUMIDIBase.cpp in Sources */,
84F054EA0906C8DD00AEC8DB /* AUMIDIEffectBase.cpp in Sources */,
84F055010906E9EA00AEC8DB /* DemoEditorComponent.cpp in Sources */,
84F055030906E9EA00AEC8DB /* DemoJuceFilter.cpp in Sources */,
84EB400B090A4A2C008FAC1B /* juce_AudioUnitWrapper.cpp in Sources */,
84EB4042090A4F5A008FAC1B /* CAVectorUnit.cpp in Sources */,
84B4CDD10C7DD23B0083122F /* MusicDeviceBase.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
A9E884AE0874ABE600B2DFE8 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
EXPORTED_SYMBOLS_FILE = JuceAU.exp;
FRAMEWORK_SEARCH_PATHS = "";
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GCC_USE_GCC3_PFE_SUPPORT = YES;
INFOPLIST_FILE = "Info-JuceAU.plist";
INSTALL_PATH = "/Library/Audio/Plug-Ins/Components/";
OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -I / -I /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers";
PRODUCT_NAME = "$(AU_NAME)";
SECTORDER_FLAGS = "";
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
"-Wno-non-virtual-dtor",
);
WRAPPER_EXTENSION = component;
ZERO_LINK = NO;
};
name = Debug;
};
A9E884AF0874ABE600B2DFE8 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = YES;
EXPORTED_SYMBOLS_FILE = JuceAU.exp;
FRAMEWORK_SEARCH_PATHS = "";
GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_OPTIMIZATION_LEVEL = 3;
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GCC_USE_GCC3_PFE_SUPPORT = YES;
INFOPLIST_FILE = "Info-JuceAU.plist";
INSTALL_PATH = "/Library/Audio/Plug-Ins/Components/";
OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -I / -I /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers";
PRODUCT_NAME = "$(AU_NAME)";
SECTORDER_FLAGS = "";
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
"-Wno-non-virtual-dtor",
);
WRAPPER_EXTENSION = component;
ZERO_LINK = NO;
};
name = Release;
};
A9E884BA0874ABE600B2DFE8 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 845FAE5E0A5C0A6A008C94D8 /* juce.xcconfig */;
buildSettings = {
AU_NAME = DemoJuceAudioUnit;
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
HEADER_SEARCH_PATHS = ../../../../../;
LIBRARY_SEARCH_PATHS = ../../../../../bin;
};
name = Debug;
};
A9E884BB0874ABE600B2DFE8 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 845FAE5E0A5C0A6A008C94D8 /* juce.xcconfig */;
buildSettings = {
AU_NAME = DemoJuceAudioUnit;
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
HEADER_SEARCH_PATHS = ../../../../../;
LIBRARY_SEARCH_PATHS = ../../../../../bin;
};
name = Release;
};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
A9E884AD0874ABE600B2DFE8 /* Build configuration list for PBXNativeTarget "JuceAU" */ = {
isa = XCConfigurationList;
buildConfigurations = (
A9E884AE0874ABE600B2DFE8 /* Debug */,
A9E884AF0874ABE600B2DFE8 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
A9E884B90874ABE600B2DFE8 /* Build configuration list for PBXProject "JuceDemoAU" */ = {
isa = XCConfigurationList;
buildConfigurations = (
A9E884BA0874ABE600B2DFE8 /* Debug */,
A9E884BB0874ABE600B2DFE8 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
};
rootObject = F5AA99BA0281A61201C34293 /* Project object */;
}

+ 0
- 32
extras/audio plugins/demo/build/RTAS_Mac/Info.plist View File

@@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>EXECUTABLE_NAME</string>
<key>CFBundleGetInfoString</key>
<string>VERSION_STR</string>
<key>CFBundleIdentifier</key>
<string>com.rawmaterialsoftware.JuceDemo</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>PRODUCT_NAME</string>
<key>CFBundlePackageType</key>
<string>TDMw</string>
<key>CFBundleShortVersionString</key>
<string>VERSION_STR</string>
<key>CFBundleSignature</key>
<string>PTul</string>
<key>CFBundleVersion</key>
<string>VERSION_NUM</string>
<key>LSMultipleInstancesProhibited</key>
<string>true</string>
<key>LSPrefersCarbon</key>
<true/>
<key>NSAppleScriptEnabled</key>
<string>No</string>
</dict>
</plist>

+ 0
- 394
extras/audio plugins/demo/build/RTAS_Mac/juce_RTASDemo.xcodeproj/project.pbxproj View File

@@ -1,394 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 42;
objects = {

/* Begin PBXBuildFile section */
5B521CB1088F264F009C75FE /* System.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B521CB0088F264F009C75FE /* System.framework */; };
841E07300AF9F015005E6FCC /* DemoEditorComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 841E072B0AF9F015005E6FCC /* DemoEditorComponent.cpp */; };
841E07310AF9F015005E6FCC /* DemoJuceFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 841E072D0AF9F015005E6FCC /* DemoJuceFilter.cpp */; };
841E073D0AF9F099005E6FCC /* juce_RTASUtilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 841E073B0AF9F099005E6FCC /* juce_RTASUtilities.cpp */; };
841E073E0AF9F099005E6FCC /* juce_RTASWrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 841E073C0AF9F099005E6FCC /* juce_RTASWrapper.cpp */; };
846444EF0AFA005B00E7B2BE /* juce_Wrapper_CEffectGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444E20AFA005B00E7B2BE /* juce_Wrapper_CEffectGroup.cpp */; };
846444F00AFA005B00E7B2BE /* juce_Wrapper_CEffectGroupMIDI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444E30AFA005B00E7B2BE /* juce_Wrapper_CEffectGroupMIDI.cpp */; };
846444F10AFA005B00E7B2BE /* juce_Wrapper_CEffectMIDIUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444E40AFA005B00E7B2BE /* juce_Wrapper_CEffectMIDIUtils.cpp */; };
846444F20AFA005B00E7B2BE /* juce_Wrapper_CEffectProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444E50AFA005B00E7B2BE /* juce_Wrapper_CEffectProcess.cpp */; };
846444F30AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessAS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444E60AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessAS.cpp */; };
846444F40AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessMIDI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444E70AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessMIDI.cpp */; };
846444F50AFA005B00E7B2BE /* juce_Wrapper_CEffectType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444E80AFA005B00E7B2BE /* juce_Wrapper_CEffectType.cpp */; };
846444F60AFA005B00E7B2BE /* juce_Wrapper_CEffectTypeRTAS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444E90AFA005B00E7B2BE /* juce_Wrapper_CEffectTypeRTAS.cpp */; };
846444F70AFA005B00E7B2BE /* juce_Wrapper_ChunkDataParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444EA0AFA005B00E7B2BE /* juce_Wrapper_ChunkDataParser.cpp */; };
846444FA0AFA005B00E7B2BE /* juce_Wrapper_PlugInUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444EE0AFA005B00E7B2BE /* juce_Wrapper_PlugInUtils.cpp */; };
846445060AFA010800E7B2BE /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 846445040AFA010800E7B2BE /* AGL.framework */; };
846445070AFA010800E7B2BE /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 846445050AFA010800E7B2BE /* CoreAudio.framework */; };
8464450A0AFA012100E7B2BE /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 846445090AFA012100E7B2BE /* QuickTime.framework */; };
84BC4E9C0C8DDF6400FA249B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84BC4E9B0C8DDF6400FA249B /* OpenGL.framework */; };
84C9D7FB0AFA3C9C00F1348E /* juce_Wrapper_Dispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84C9D7F90AFA3C9C00F1348E /* juce_Wrapper_Dispatcher.cpp */; };
84C9D7FC0AFA3C9C00F1348E /* juce_Wrapper_PluginInitialize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84C9D7FA0AFA3C9C00F1348E /* juce_Wrapper_PluginInitialize.cpp */; };
84EEB4180AFB6679009655FF /* DummyResourceFile.r in Rez */ = {isa = PBXBuildFile; fileRef = 84EEB4170AFB6679009655FF /* DummyResourceFile.r */; };
84FAD76D0C7C894B00AF3028 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84FAD76C0C7C894B00AF3028 /* IOKit.framework */; };
84FAD77B0C7C89E100AF3028 /* libPluginLibrary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 84FAD7770C7C897000AF3028 /* libPluginLibrary.a */; };
84FDB0120C15BBCE00CD0087 /* libjucedebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 84FDB0100C15BBA500CD0087 /* libjucedebug.a */; };
8D01CCCE0486CAD60068D4B7 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
84FAD7760C7C897000AF3028 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 5B521CEB08916D36009C75FE /* PluginLibrary.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = B65B09B30860FB0800FE2E6A;
remoteInfo = "Plugin Library";
};
84FDB00F0C15BBA500CD0087 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 846444D70AF9FFDB00E7B2BE /* Juce.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = D2AAC046055464E500DB518D;
remoteInfo = Juce;
};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
5B521CB0088F264F009C75FE /* System.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = System.framework; path = /System/Library/Frameworks/System.framework; sourceTree = "<absolute>"; };
5B521CEB08916D36009C75FE /* PluginLibrary.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = PluginLibrary.xcodeproj; path = /Users/jules/stuff/PT_73_SDK/AlturaPorts/TDMPlugIns/PlugInLibrary/MacBuild/PluginLibrary.xcodeproj; sourceTree = "<absolute>"; };
841E072B0AF9F015005E6FCC /* DemoEditorComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = DemoEditorComponent.cpp; path = ../../src/DemoEditorComponent.cpp; sourceTree = SOURCE_ROOT; };
841E072C0AF9F015005E6FCC /* DemoEditorComponent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DemoEditorComponent.h; path = ../../src/DemoEditorComponent.h; sourceTree = SOURCE_ROOT; };
841E072D0AF9F015005E6FCC /* DemoJuceFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = DemoJuceFilter.cpp; path = ../../src/DemoJuceFilter.cpp; sourceTree = SOURCE_ROOT; };
841E072E0AF9F015005E6FCC /* DemoJuceFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DemoJuceFilter.h; path = ../../src/DemoJuceFilter.h; sourceTree = SOURCE_ROOT; };
841E072F0AF9F015005E6FCC /* JucePluginCharacteristics.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JucePluginCharacteristics.h; path = ../../src/JucePluginCharacteristics.h; sourceTree = SOURCE_ROOT; };
841E073B0AF9F099005E6FCC /* juce_RTASUtilities.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTASUtilities.cpp; path = ../../../wrapper/formats/RTAS/juce_RTASUtilities.cpp; sourceTree = SOURCE_ROOT; };
841E073C0AF9F099005E6FCC /* juce_RTASWrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTASWrapper.cpp; path = ../../../wrapper/formats/RTAS/juce_RTASWrapper.cpp; sourceTree = SOURCE_ROOT; };
841E07420AF9F126005E6FCC /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = Info.plist; sourceTree = "<group>"; };
846444D70AF9FFDB00E7B2BE /* Juce.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Juce.xcodeproj; path = ../../../../../build/macosx/Juce.xcodeproj; sourceTree = SOURCE_ROOT; };
846444E20AFA005B00E7B2BE /* juce_Wrapper_CEffectGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_CEffectGroup.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectGroup.cpp; sourceTree = SOURCE_ROOT; };
846444E30AFA005B00E7B2BE /* juce_Wrapper_CEffectGroupMIDI.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_CEffectGroupMIDI.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectGroupMIDI.cpp; sourceTree = SOURCE_ROOT; };
846444E40AFA005B00E7B2BE /* juce_Wrapper_CEffectMIDIUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_CEffectMIDIUtils.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectMIDIUtils.cpp; sourceTree = SOURCE_ROOT; };
846444E50AFA005B00E7B2BE /* juce_Wrapper_CEffectProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_CEffectProcess.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcess.cpp; sourceTree = SOURCE_ROOT; };
846444E60AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessAS.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_CEffectProcessAS.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcessAS.cpp; sourceTree = SOURCE_ROOT; };
846444E70AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessMIDI.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_CEffectProcessMIDI.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcessMIDI.cpp; sourceTree = SOURCE_ROOT; };
846444E80AFA005B00E7B2BE /* juce_Wrapper_CEffectType.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_CEffectType.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectType.cpp; sourceTree = SOURCE_ROOT; };
846444E90AFA005B00E7B2BE /* juce_Wrapper_CEffectTypeRTAS.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_CEffectTypeRTAS.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectTypeRTAS.cpp; sourceTree = SOURCE_ROOT; };
846444EA0AFA005B00E7B2BE /* juce_Wrapper_ChunkDataParser.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_ChunkDataParser.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_ChunkDataParser.cpp; sourceTree = SOURCE_ROOT; };
846444ED0AFA005B00E7B2BE /* juce_Wrapper_Header.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = juce_Wrapper_Header.h; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_Header.h; sourceTree = SOURCE_ROOT; };
846444EE0AFA005B00E7B2BE /* juce_Wrapper_PlugInUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_PlugInUtils.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_PlugInUtils.cpp; sourceTree = SOURCE_ROOT; };
846445040AFA010800E7B2BE /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
846445050AFA010800E7B2BE /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
846445090AFA012100E7B2BE /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = "<absolute>"; };
84BC4E9B0C8DDF6400FA249B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
84C442690B306D39003FCBFF /* CommonReleaseSettings.xcconfig */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xcconfig; name = CommonReleaseSettings.xcconfig; path = /Users/jules/stuff/PT_73_SDK/AlturaPorts/TDMPlugIns/common/Mac/CommonReleaseSettings.xcconfig; sourceTree = "<absolute>"; };
84C4426A0B306D39003FCBFF /* CommonDebugSettings.xcconfig */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xcconfig; name = CommonDebugSettings.xcconfig; path = /Users/jules/stuff/PT_73_SDK/AlturaPorts/TDMPlugIns/common/Mac/CommonDebugSettings.xcconfig; sourceTree = "<absolute>"; };
84C9D7F90AFA3C9C00F1348E /* juce_Wrapper_Dispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_Dispatcher.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_Dispatcher.cpp; sourceTree = SOURCE_ROOT; };
84C9D7FA0AFA3C9C00F1348E /* juce_Wrapper_PluginInitialize.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_PluginInitialize.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_PluginInitialize.cpp; sourceTree = SOURCE_ROOT; };
84EEB4170AFB6679009655FF /* DummyResourceFile.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; name = DummyResourceFile.r; path = ../../../wrapper/formats/RTAS/DummyResourceFile.r; sourceTree = SOURCE_ROOT; };
84F5CF5F0B1B705E00A2E279 /* juce_RTASCompileFlags.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = juce_RTASCompileFlags.h; path = ../../../wrapper/formats/RTAS/juce_RTASCompileFlags.h; sourceTree = SOURCE_ROOT; };
84FAD76C0C7C894B00AF3028 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
8D01CCD20486CAD60068D4B7 /* JuceRTASDemo.dpm */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = JuceRTASDemo.dpm; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
8D01CCCD0486CAD60068D4B7 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
84FAD77B0C7C89E100AF3028 /* libPluginLibrary.a in Frameworks */,
84FDB0120C15BBCE00CD0087 /* libjucedebug.a in Frameworks */,
8D01CCCE0486CAD60068D4B7 /* Carbon.framework in Frameworks */,
5B521CB1088F264F009C75FE /* System.framework in Frameworks */,
846445060AFA010800E7B2BE /* AGL.framework in Frameworks */,
846445070AFA010800E7B2BE /* CoreAudio.framework in Frameworks */,
8464450A0AFA012100E7B2BE /* QuickTime.framework in Frameworks */,
84FAD76D0C7C894B00AF3028 /* IOKit.framework in Frameworks */,
84BC4E9C0C8DDF6400FA249B /* OpenGL.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
089C166AFE841209C02AAC07 /* ProjectTemplate */ = {
isa = PBXGroup;
children = (
84C442690B306D39003FCBFF /* CommonReleaseSettings.xcconfig */,
84C4426A0B306D39003FCBFF /* CommonDebugSettings.xcconfig */,
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = ProjectTemplate;
sourceTree = "<group>";
};
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
isa = PBXGroup;
children = (
84BC4E9B0C8DDF6400FA249B /* OpenGL.framework */,
84FAD76C0C7C894B00AF3028 /* IOKit.framework */,
846445040AFA010800E7B2BE /* AGL.framework */,
846445050AFA010800E7B2BE /* CoreAudio.framework */,
846445090AFA012100E7B2BE /* QuickTime.framework */,
846444D70AF9FFDB00E7B2BE /* Juce.xcodeproj */,
5B521CEB08916D36009C75FE /* PluginLibrary.xcodeproj */,
5B521CB0088F264F009C75FE /* System.framework */,
08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */,
);
name = "External Frameworks and Libraries";
sourceTree = "<group>";
};
089C167CFE841241C02AAC07 /* Resources */ = {
isa = PBXGroup;
children = (
84EEB4170AFB6679009655FF /* DummyResourceFile.r */,
841E07420AF9F126005E6FCC /* Info.plist */,
);
name = Resources;
sourceTree = "<group>";
};
08FB77ADFE841716C02AAC07 /* Source */ = {
isa = PBXGroup;
children = (
841E07270AF9EFE2005E6FCC /* filter */,
841E072A0AF9EFEF005E6FCC /* wrapper */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* JuceRTASDemo.dpm */,
);
name = Products;
sourceTree = "<group>";
};
841E07270AF9EFE2005E6FCC /* filter */ = {
isa = PBXGroup;
children = (
841E072B0AF9F015005E6FCC /* DemoEditorComponent.cpp */,
841E072C0AF9F015005E6FCC /* DemoEditorComponent.h */,
841E072D0AF9F015005E6FCC /* DemoJuceFilter.cpp */,
841E072E0AF9F015005E6FCC /* DemoJuceFilter.h */,
841E072F0AF9F015005E6FCC /* JucePluginCharacteristics.h */,
);
name = filter;
sourceTree = "<group>";
};
841E072A0AF9EFEF005E6FCC /* wrapper */ = {
isa = PBXGroup;
children = (
841E07340AF9F02D005E6FCC /* rtas specific */,
);
name = wrapper;
sourceTree = "<group>";
};
841E07340AF9F02D005E6FCC /* rtas specific */ = {
isa = PBXGroup;
children = (
846444E10AFA003B00E7B2BE /* Digi code wrappers */,
841E073B0AF9F099005E6FCC /* juce_RTASUtilities.cpp */,
841E073C0AF9F099005E6FCC /* juce_RTASWrapper.cpp */,
84F5CF5F0B1B705E00A2E279 /* juce_RTASCompileFlags.h */,
);
name = "rtas specific";
sourceTree = "<group>";
};
846444E10AFA003B00E7B2BE /* Digi code wrappers */ = {
isa = PBXGroup;
children = (
84C9D7F90AFA3C9C00F1348E /* juce_Wrapper_Dispatcher.cpp */,
84C9D7FA0AFA3C9C00F1348E /* juce_Wrapper_PluginInitialize.cpp */,
846444E20AFA005B00E7B2BE /* juce_Wrapper_CEffectGroup.cpp */,
846444E30AFA005B00E7B2BE /* juce_Wrapper_CEffectGroupMIDI.cpp */,
846444E40AFA005B00E7B2BE /* juce_Wrapper_CEffectMIDIUtils.cpp */,
846444E50AFA005B00E7B2BE /* juce_Wrapper_CEffectProcess.cpp */,
846444E60AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessAS.cpp */,
846444E70AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessMIDI.cpp */,
846444E80AFA005B00E7B2BE /* juce_Wrapper_CEffectType.cpp */,
846444E90AFA005B00E7B2BE /* juce_Wrapper_CEffectTypeRTAS.cpp */,
846444EA0AFA005B00E7B2BE /* juce_Wrapper_ChunkDataParser.cpp */,
846444ED0AFA005B00E7B2BE /* juce_Wrapper_Header.h */,
846444EE0AFA005B00E7B2BE /* juce_Wrapper_PlugInUtils.cpp */,
);
name = "Digi code wrappers";
sourceTree = "<group>";
};
84FAD7730C7C897000AF3028 /* Products */ = {
isa = PBXGroup;
children = (
84FAD7770C7C897000AF3028 /* libPluginLibrary.a */,
);
name = Products;
sourceTree = "<group>";
};
84FDB00C0C15BBA500CD0087 /* Products */ = {
isa = PBXGroup;
children = (
84FDB0100C15BBA500CD0087 /* libjucedebug.a */,
);
name = Products;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* JuceRTASDemo */ = {
isa = PBXNativeTarget;
buildConfigurationList = 5B521C99088F2389009C75FE /* Build configuration list for PBXNativeTarget "JuceRTASDemo" */;
buildPhases = (
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
5B521D370891748B009C75FE /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = JuceRTASDemo;
productInstallPath = "$(HOME)/Library/Bundles";
productName = ProjectTemplate;
productReference = 8D01CCD20486CAD60068D4B7 /* JuceRTASDemo.dpm */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
buildConfigurationList = 5B521C9D088F2389009C75FE /* Build configuration list for PBXProject "juce_RTASDemo" */;
hasScannedForEncodings = 1;
mainGroup = 089C166AFE841209C02AAC07 /* ProjectTemplate */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = 84FDB00C0C15BBA500CD0087 /* Products */;
ProjectRef = 846444D70AF9FFDB00E7B2BE /* Juce.xcodeproj */;
},
{
ProductGroup = 84FAD7730C7C897000AF3028 /* Products */;
ProjectRef = 5B521CEB08916D36009C75FE /* PluginLibrary.xcodeproj */;
},
);
targets = (
8D01CCC60486CAD60068D4B7 /* JuceRTASDemo */,
);
};
/* End PBXProject section */

/* Begin PBXReferenceProxy section */
84FAD7770C7C897000AF3028 /* libPluginLibrary.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libPluginLibrary.a;
remoteRef = 84FAD7760C7C897000AF3028 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
84FDB0100C15BBA500CD0087 /* libjucedebug.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libjucedebug.a;
remoteRef = 84FDB00F0C15BBA500CD0087 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */

/* Begin PBXRezBuildPhase section */
5B521D370891748B009C75FE /* Rez */ = {
isa = PBXRezBuildPhase;
buildActionMask = 2147483647;
files = (
84EEB4180AFB6679009655FF /* DummyResourceFile.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
841E07300AF9F015005E6FCC /* DemoEditorComponent.cpp in Sources */,
841E07310AF9F015005E6FCC /* DemoJuceFilter.cpp in Sources */,
841E073D0AF9F099005E6FCC /* juce_RTASUtilities.cpp in Sources */,
841E073E0AF9F099005E6FCC /* juce_RTASWrapper.cpp in Sources */,
846444EF0AFA005B00E7B2BE /* juce_Wrapper_CEffectGroup.cpp in Sources */,
846444F00AFA005B00E7B2BE /* juce_Wrapper_CEffectGroupMIDI.cpp in Sources */,
846444F10AFA005B00E7B2BE /* juce_Wrapper_CEffectMIDIUtils.cpp in Sources */,
846444F20AFA005B00E7B2BE /* juce_Wrapper_CEffectProcess.cpp in Sources */,
846444F30AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessAS.cpp in Sources */,
846444F40AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessMIDI.cpp in Sources */,
846444F50AFA005B00E7B2BE /* juce_Wrapper_CEffectType.cpp in Sources */,
846444F60AFA005B00E7B2BE /* juce_Wrapper_CEffectTypeRTAS.cpp in Sources */,
846444F70AFA005B00E7B2BE /* juce_Wrapper_ChunkDataParser.cpp in Sources */,
846444FA0AFA005B00E7B2BE /* juce_Wrapper_PlugInUtils.cpp in Sources */,
84C9D7FB0AFA3C9C00F1348E /* juce_Wrapper_Dispatcher.cpp in Sources */,
84C9D7FC0AFA3C9C00F1348E /* juce_Wrapper_PluginInitialize.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
5B521C9A088F2389009C75FE /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
};
name = Debug;
};
5B521C9E088F2389009C75FE /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 84C4426A0B306D39003FCBFF /* CommonDebugSettings.xcconfig */;
buildSettings = {
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
MacBag = /Users/jules/stuff/PT_73_SDK/MacBag;
PRODUCT_NAME = JuceRTASDemo;
USER_HEADER_SEARCH_PATHS = "/Users/jules/code/juce $(inherited)";
};
name = Debug;
};
5BEA73AA09E4370600964A97 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
};
name = Release;
};
5BEA73AB09E4370600964A97 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 84C442690B306D39003FCBFF /* CommonReleaseSettings.xcconfig */;
buildSettings = {
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
MacBag = /Users/jules/stuff/PT_73_SDK/MacBag;
PRODUCT_NAME = JuceRTASDemo;
USER_HEADER_SEARCH_PATHS = "/Users/jules/code/juce $(inherited)";
};
name = Release;
};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
5B521C99088F2389009C75FE /* Build configuration list for PBXNativeTarget "JuceRTASDemo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
5B521C9A088F2389009C75FE /* Debug */,
5BEA73AA09E4370600964A97 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
5B521C9D088F2389009C75FE /* Build configuration list for PBXProject "juce_RTASDemo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
5B521C9E088F2389009C75FE /* Debug */,
5BEA73AB09E4370600964A97 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
};
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
}

+ 0
- 49
extras/audio plugins/demo/build/RTAS_Win32/juce_RTAS.sln View File

@@ -1,49 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "juce_RTAS", "juce_RTAS.vcproj", "{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}"
ProjectSection(ProjectDependencies) = postProject
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26} = {AE232C11-D91C-4CA1-B24E-8B11A52EFF26}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JUCE", "..\..\..\..\..\build\win32\vc8\JUCE.vcproj", "{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug DLL|Win32 = Debug DLL|Win32
Debug|Win32 = Debug|Win32
DLL Debug|Win32 = DLL Debug|Win32
DLL Release|Win32 = DLL Release|Win32
Release DLL|Win32 = Release DLL|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.Debug DLL|Win32.ActiveCfg = Debug|Win32
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.Debug DLL|Win32.Build.0 = Debug|Win32
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.Debug|Win32.ActiveCfg = Debug|Win32
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.Debug|Win32.Build.0 = Debug|Win32
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.DLL Debug|Win32.ActiveCfg = Debug|Win32
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.DLL Debug|Win32.Build.0 = Debug|Win32
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.DLL Release|Win32.ActiveCfg = Release|Win32
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.DLL Release|Win32.Build.0 = Release|Win32
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.Release DLL|Win32.ActiveCfg = Release|Win32
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.Release DLL|Win32.Build.0 = Release|Win32
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.Release|Win32.ActiveCfg = Release|Win32
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.Release|Win32.Build.0 = Release|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Debug DLL|Win32.ActiveCfg = Debug|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Debug DLL|Win32.Build.0 = Debug|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Debug|Win32.ActiveCfg = Debug|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Debug|Win32.Build.0 = Debug|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.DLL Release|Win32.Build.0 = DLL Release|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Release DLL|Win32.ActiveCfg = Release|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Release DLL|Win32.Build.0 = Release|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Release|Win32.ActiveCfg = Release|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

+ 0
- 629
extras/audio plugins/demo/build/RTAS_Win32/juce_RTAS.vcproj View File

@@ -1,629 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="juce_RTAS"
ProjectGUID="{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}"
RootNamespace="juce_RTAS"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="0"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
CommandLine="copy /Y ..\..\..\wrapper\formats\RTAS\DefaultResourceFile &quot;$(TargetPath)&quot;.rsr&#x0D;&#x0A;"
Outputs="$(TargetPath).rsr"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../src"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;JUCE_RTAS_EXPORTS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)\$(ProjectName).dpm"
LinkIncremental="2"
AdditionalLibraryDirectories=""
IgnoreDefaultLibraryNames="libcmtd.lib"
ModuleDefinitionFile="../../../wrapper/formats/RTAS/juce_RTAS_dlldefs.def"
GenerateDebugInformation="true"
SubSystem="2"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="0"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
CommandLine="copy /Y ..\..\..\wrapper\formats\RTAS\DefaultResourceFile &quot;$(TargetPath)&quot;.rsr&#x0D;&#x0A;"
Outputs="$(TargetPath).rsr"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="../../src"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;JUCE_RTAS_EXPORTS"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
CallingConvention="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)\$(ProjectName).dpm"
LinkIncremental="1"
IgnoreDefaultLibraryNames="libcmt.lib"
ModuleDefinitionFile="../../../wrapper/formats/RTAS/juce_RTAS_dlldefs.def"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<Filter
Name="filter"
>
<File
RelativePath="..\..\src\DemoEditorComponent.cpp"
>
</File>
<File
RelativePath="..\..\src\DemoEditorComponent.h"
>
</File>
<File
RelativePath="..\..\src\DemoJuceFilter.cpp"
>
</File>
<File
RelativePath="..\..\src\DemoJuceFilter.h"
>
</File>
<File
RelativePath="..\..\src\JucePluginCharacteristics.h"
>
</File>
</Filter>
<Filter
Name="wrapper code"
>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\juce_RTASCompileFlags.h"
>
</File>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\juce_RTASUtilities.cpp"
>
</File>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\juce_RTASWrapper.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
</File>
<Filter
Name="cpp wrappers"
>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\juce_RTAS_dlldefs.def"
>
</File>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_CEffectGroup.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_CEffectGroupMIDI.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_CEffectMIDIUtils.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_CEffectProcess.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_CEffectProcessAS.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_CEffectProcessMIDI.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_CEffectType.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_CEffectTypeRTAS.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_ChunkDataParser.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_DefaultSwap.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_DLLMain.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_Header.h"
>
</File>
<File
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_PlugInUtils.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
CallingConvention="2"
/>
</FileConfiguration>
</File>
</Filter>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".\resource.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
<File
RelativePath=".\juce_RTASDemo.rc"
>
</File>
</Filter>
<Filter
Name="libs"
>
<Filter
Name="debug"
>
<File
RelativePath="..\..\..\..\..\..\..\essentials\PT_73_SDK\WinBag\Debug\lib\DAE.lib"
>
<FileConfiguration
Name="Release|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\..\..\..\..\essentials\PT_73_SDK\WinBag\Debug\lib\DigiExt.lib"
>
<FileConfiguration
Name="Release|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\..\..\..\..\essentials\PT_73_SDK\WinBag\Debug\lib\DSI.lib"
>
<FileConfiguration
Name="Release|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\..\..\..\..\essentials\PT_73_SDK\WinBag\Debug\lib\PlugInLib.lib"
>
<FileConfiguration
Name="Release|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="release"
>
<File
RelativePath="..\..\..\..\..\..\..\essentials\PT_73_SDK\WinBag\Release\lib\DAE.lib"
>
<FileConfiguration
Name="Debug|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\..\..\..\..\essentials\PT_73_SDK\WinBag\Release\lib\DigiExt.lib"
>
<FileConfiguration
Name="Debug|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\..\..\..\..\essentials\PT_73_SDK\WinBag\Release\lib\DSI.lib"
>
<FileConfiguration
Name="Debug|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\..\..\..\..\..\essentials\PT_73_SDK\WinBag\Release\lib\PlugInLib.lib"
>
<FileConfiguration
Name="Debug|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
</File>
</Filter>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

+ 0
- 112
extras/audio plugins/demo/build/RTAS_Win32/juce_RTASDemo.rc View File

@@ -1,112 +0,0 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// English (U.K.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080904b0"
BEGIN
VALUE "FileDescription", "Juce Audio Plugin RTAS Demo"
VALUE "FileVersion", "1, 0, 0, 1"
VALUE "InternalName", "Juce RTAS Demo"
VALUE "LegalCopyright", "Copyright (C) 2006"
VALUE "ProductName", "Juce RTAS Demo"
VALUE "ProductVersion", "1, 0, 0, 1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x809, 1200
END
END
#endif // English (U.K.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

+ 0
- 14
extras/audio plugins/demo/build/RTAS_Win32/resource.h View File

@@ -1,14 +0,0 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by juce_RTASDemo.rc
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

+ 0
- 55
extras/audio plugins/demo/build/VST_Linux/premake.lua View File

@@ -1,55 +0,0 @@
project.name = "JucePluginDemo"
project.bindir = "build"
project.libdir = "build"
project.configs = { "Debug", "Release" }
package = newpackage()
package.name = "JucePluginDemo"
package.kind = "dll"
package.language = "c++"
package.objdir = "build/intermediate"
package.config["Debug"].objdir = "build/intermediate/Debug"
package.config["Release"].objdir = "build/intermediate/Release"
package.config["Debug"].defines = { "LINUX=1", "DEBUG=1", "_DEBUG=1" }
package.config["Debug"].buildoptions = { "-O0 -ggdb -g3 -Wall" }
package.config["Release"].defines = { "LINUX=1", "NDEBUG=1" }
package.config["Release"].buildoptions = { "-O2 -s" }
package.includepaths = {
"/usr/include",
"../../../../../",
"/usr/include/vst/source/common",
"/usr/include/vst",
"../../src"
}
package.libpaths = {
"../../../../../bin",
"/usr/X11R6/lib/",
"/usr/lib"
}
package.config["Debug"].links = {
"freetype", "pthread", "rt", "X11", "GL", "GLU", "Xinerama", "asound", "juce_debug"
}
package.config["Release"].links = {
"freetype", "pthread", "rt", "X11", "GL", "GLU", "Xinerama", "asound", "juce"
}
package.files = {
matchfiles (
"../../../wrapper/*.h",
"../../../wrapper/*.cpp",
"../../../wrapper/formats/VST/*.cpp"
),
matchrecursive (
"../../src/*.h",
"../../src/*.cpp"
)
}

+ 0
- 28
extras/audio plugins/demo/build/VST_Mac/Info.plist View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>JuceVST</string>
<key>CFBundleGetInfoString</key>
<string>Juce VST Demo plugin</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.rawmaterialsoftware.JuceVSTDemo</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>JuceVST</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string></string>
<key>CFBundleSignature</key>
<string>JUCE</string>
<key>CFBundleVersion</key>
<string>0.0.1</string>
</dict>
</plist>

+ 0
- 22
extras/audio plugins/demo/build/VST_Mac/JuceVST-Info.plist View File

@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>JuceVST</string>
<key>CFBundleIdentifier</key>
<string>com.rawmaterialsoftware.JuceVST</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>1.0</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<string>yes</string>
</dict>
</plist>

+ 0
- 289
extras/audio plugins/demo/build/VST_Mac/JuceVST.xcodeproj/project.pbxproj View File

@@ -1,289 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 42;
objects = {

/* Begin PBXBuildFile section */
8456E9D008A29AE60087C412 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8456E9CF08A29AE60087C412 /* CoreServices.framework */; };
845FAE4C0A5C09FA008C94D8 /* juce.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 845FAE4B0A5C09FA008C94D8 /* juce.xcconfig */; };
84BACBD20987847C0073300C /* juce_VstWrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84BACBD10987847C0073300C /* juce_VstWrapper.cpp */; };
84BC4EBC0C8DE02200FA249B /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84BC4EBA0C8DE02200FA249B /* IOKit.framework */; };
84BC4EBD0C8DE02200FA249B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84BC4EBB0C8DE02200FA249B /* OpenGL.framework */; };
84E1AE51089EBAAA00E85E4F /* DemoEditorComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84E1AE4D089EBAAA00E85E4F /* DemoEditorComponent.cpp */; };
84E1AE52089EBAAA00E85E4F /* DemoJuceFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84E1AE4F089EBAAA00E85E4F /* DemoJuceFilter.cpp */; };
84E1AF2B089EBE4C00E85E4F /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84E1AF2A089EBE4C00E85E4F /* Carbon.framework */; };
84E1AF30089EBE5A00E85E4F /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84E1AF2F089EBE5A00E85E4F /* QuickTime.framework */; };
84E1AF34089EBE6C00E85E4F /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84E1AF33089EBE6C00E85E4F /* AGL.framework */; };
84E1AF38089EBF1300E85E4F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84E1AF37089EBF1300E85E4F /* CoreAudio.framework */; };
84E1AF42089EBFD900E85E4F /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 84E1AF41089EBFD900E85E4F /* Info.plist */; };
84F5CF040B1B66B100A2E279 /* How to use this framework.txt in Resources */ = {isa = PBXBuildFile; fileRef = 84F5CF030B1B66B100A2E279 /* How to use this framework.txt */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
84551AA009BDB8F3009C9F3E /* JucePluginCharacteristics.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JucePluginCharacteristics.h; path = ../../src/JucePluginCharacteristics.h; sourceTree = SOURCE_ROOT; };
8456E9CF08A29AE60087C412 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
845FAE4B0A5C09FA008C94D8 /* juce.xcconfig */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xcconfig; name = juce.xcconfig; path = ../../../../../build/macosx/juce.xcconfig; sourceTree = SOURCE_ROOT; };
84BACBD10987847C0073300C /* juce_VstWrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_VstWrapper.cpp; path = ../../../wrapper/formats/VST/juce_VstWrapper.cpp; sourceTree = SOURCE_ROOT; };
84BC4EBA0C8DE02200FA249B /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
84BC4EBB0C8DE02200FA249B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
84E1AE47089EBA6A00E85E4F /* JuceVST.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = JuceVST.vst; sourceTree = BUILT_PRODUCTS_DIR; };
84E1AE4D089EBAAA00E85E4F /* DemoEditorComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = DemoEditorComponent.cpp; path = ../../src/DemoEditorComponent.cpp; sourceTree = SOURCE_ROOT; };
84E1AE4E089EBAAA00E85E4F /* DemoEditorComponent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DemoEditorComponent.h; path = ../../src/DemoEditorComponent.h; sourceTree = SOURCE_ROOT; };
84E1AE4F089EBAAA00E85E4F /* DemoJuceFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = DemoJuceFilter.cpp; path = ../../src/DemoJuceFilter.cpp; sourceTree = SOURCE_ROOT; };
84E1AE50089EBAAA00E85E4F /* DemoJuceFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DemoJuceFilter.h; path = ../../src/DemoJuceFilter.h; sourceTree = SOURCE_ROOT; };
84E1AF2A089EBE4C00E85E4F /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
84E1AF2F089EBE5A00E85E4F /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = "<absolute>"; };
84E1AF33089EBE6C00E85E4F /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
84E1AF37089EBF1300E85E4F /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
84E1AF41089EBFD900E85E4F /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = Info.plist; sourceTree = SOURCE_ROOT; };
84F5CF030B1B66B100A2E279 /* How to use this framework.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = "How to use this framework.txt"; path = "../../../How to use this framework.txt"; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
84E1AE45089EBA6A00E85E4F /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
84E1AF2B089EBE4C00E85E4F /* Carbon.framework in Frameworks */,
84E1AF30089EBE5A00E85E4F /* QuickTime.framework in Frameworks */,
84E1AF34089EBE6C00E85E4F /* AGL.framework in Frameworks */,
84E1AF38089EBF1300E85E4F /* CoreAudio.framework in Frameworks */,
8456E9D008A29AE60087C412 /* CoreServices.framework in Frameworks */,
84BC4EBC0C8DE02200FA249B /* IOKit.framework in Frameworks */,
84BC4EBD0C8DE02200FA249B /* OpenGL.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
089C166AFE841209C02AAC07 /* JuceVST */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
84F5CF030B1B66B100A2E279 /* How to use this framework.txt */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = JuceVST;
sourceTree = "<group>";
};
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
isa = PBXGroup;
children = (
84BC4EBA0C8DE02200FA249B /* IOKit.framework */,
84BC4EBB0C8DE02200FA249B /* OpenGL.framework */,
84E1AF2A089EBE4C00E85E4F /* Carbon.framework */,
8456E9CF08A29AE60087C412 /* CoreServices.framework */,
84E1AF37089EBF1300E85E4F /* CoreAudio.framework */,
84E1AF33089EBE6C00E85E4F /* AGL.framework */,
84E1AF2F089EBE5A00E85E4F /* QuickTime.framework */,
);
name = "External Frameworks and Libraries";
sourceTree = "<group>";
};
089C167CFE841241C02AAC07 /* Resources */ = {
isa = PBXGroup;
children = (
84E1AF41089EBFD900E85E4F /* Info.plist */,
);
name = Resources;
sourceTree = "<group>";
};
08FB77ADFE841716C02AAC07 /* Source */ = {
isa = PBXGroup;
children = (
84E1AE4C089EBA9300E85E4F /* filter */,
84E1AE53089EBACA00E85E4F /* wrapper code */,
845FAE4B0A5C09FA008C94D8 /* juce.xcconfig */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
84E1AE47089EBA6A00E85E4F /* JuceVST.vst */,
);
name = Products;
sourceTree = "<group>";
};
84E1AE4C089EBA9300E85E4F /* filter */ = {
isa = PBXGroup;
children = (
84E1AE4D089EBAAA00E85E4F /* DemoEditorComponent.cpp */,
84E1AE4E089EBAAA00E85E4F /* DemoEditorComponent.h */,
84E1AE4F089EBAAA00E85E4F /* DemoJuceFilter.cpp */,
84E1AE50089EBAAA00E85E4F /* DemoJuceFilter.h */,
84551AA009BDB8F3009C9F3E /* JucePluginCharacteristics.h */,
);
name = filter;
sourceTree = "<group>";
};
84E1AE53089EBACA00E85E4F /* wrapper code */ = {
isa = PBXGroup;
children = (
84BACBD10987847C0073300C /* juce_VstWrapper.cpp */,
);
name = "wrapper code";
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
84E1AE46089EBA6A00E85E4F /* JuceVST */ = {
isa = PBXNativeTarget;
buildConfigurationList = 84E1AE48089EBA8900E85E4F /* Build configuration list for PBXNativeTarget "JuceVST" */;
buildPhases = (
84E1AE43089EBA6A00E85E4F /* Resources */,
84E1AE44089EBA6A00E85E4F /* Sources */,
84E1AE45089EBA6A00E85E4F /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = JuceVST;
productName = JuceVST;
productReference = 84E1AE47089EBA6A00E85E4F /* JuceVST.vst */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
buildConfigurationList = 84E1ADD2089EB1BA00E85E4F /* Build configuration list for PBXProject "JuceVST" */;
hasScannedForEncodings = 1;
mainGroup = 089C166AFE841209C02AAC07 /* JuceVST */;
projectDirPath = "";
targets = (
84E1AE46089EBA6A00E85E4F /* JuceVST */,
);
};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
84E1AE43089EBA6A00E85E4F /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
84E1AF42089EBFD900E85E4F /* Info.plist in Resources */,
845FAE4C0A5C09FA008C94D8 /* juce.xcconfig in Resources */,
84F5CF040B1B66B100A2E279 /* How to use this framework.txt in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
84E1AE44089EBA6A00E85E4F /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
84E1AE51089EBAAA00E85E4F /* DemoEditorComponent.cpp in Sources */,
84E1AE52089EBAAA00E85E4F /* DemoJuceFilter.cpp in Sources */,
84BACBD20987847C0073300C /* juce_VstWrapper.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
84E1ADD3089EB1BA00E85E4F /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 845FAE4B0A5C09FA008C94D8 /* juce.xcconfig */;
buildSettings = {
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
HEADER_SEARCH_PATHS = (
../../../../..,
"~/stuff/vstsdk2.4/",
);
LIBRARY_SEARCH_PATHS = ../../../../../bin;
OTHER_LDFLAGS = "-ljucedebug";
};
name = Debug;
};
84E1ADD4089EB1BA00E85E4F /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 845FAE4B0A5C09FA008C94D8 /* juce.xcconfig */;
buildSettings = {
GCC_PREPROCESSOR_DEFINITIONS = NDEBUG;
HEADER_SEARCH_PATHS = (
../../../../..,
"~/stuff/vstsdk2.4/",
);
LIBRARY_SEARCH_PATHS = ../../../../../bin;
OTHER_LDFLAGS = "-ljuce";
};
name = Release;
};
84E1AE49089EBA8900E85E4F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GENERATE_PKGINFO_FILE = YES;
INFOPLIST_FILE = info.plist;
PRODUCT_NAME = JuceVST;
SYMROOT = "$(HOME)/Library/Audio/Plug-Ins/VST";
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
WRAPPER_EXTENSION = vst;
};
name = Debug;
};
84E1AE4A089EBA8900E85E4F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = YES;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GENERATE_PKGINFO_FILE = YES;
INFOPLIST_FILE = info.plist;
PRODUCT_NAME = JuceVST;
SYMROOT = "$(HOME)/Library/Audio/Plug-Ins/VST";
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
WRAPPER_EXTENSION = vst;
};
name = Release;
};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
84E1ADD2089EB1BA00E85E4F /* Build configuration list for PBXProject "JuceVST" */ = {
isa = XCConfigurationList;
buildConfigurations = (
84E1ADD3089EB1BA00E85E4F /* Debug */,
84E1ADD4089EB1BA00E85E4F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
84E1AE48089EBA8900E85E4F /* Build configuration list for PBXNativeTarget "JuceVST" */ = {
isa = XCConfigurationList;
buildConfigurations = (
84E1AE49089EBA8900E85E4F /* Debug */,
84E1AE4A089EBA8900E85E4F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
};
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
}

+ 0
- 16
extras/audio plugins/demo/build/VST_Mac/version.plist View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildVersion</key>
<string>38</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>ProjectName</key>
<string>CarbonProjectTemplates</string>
<key>SourceVersion</key>
<string>140000</string>
</dict>
</plist>

+ 0
- 39
extras/audio plugins/demo/build/VST_Win32/juce_vst.sln View File

@@ -1,39 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JuceAudioPlugin Demo", "juce_vst.vcproj", "{6F0F1E35-EAF8-431A-83D9-F0340921E560}"
ProjectSection(ProjectDependencies) = postProject
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26} = {AE232C11-D91C-4CA1-B24E-8B11A52EFF26}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JUCE", "..\..\..\..\..\build\win32\vc8\JUCE.vcproj", "{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
DLL Debug|Win32 = DLL Debug|Win32
DLL Release|Win32 = DLL Release|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6F0F1E35-EAF8-431A-83D9-F0340921E560}.Debug|Win32.ActiveCfg = Debug|Win32
{6F0F1E35-EAF8-431A-83D9-F0340921E560}.Debug|Win32.Build.0 = Debug|Win32
{6F0F1E35-EAF8-431A-83D9-F0340921E560}.DLL Debug|Win32.ActiveCfg = Debug|Win32
{6F0F1E35-EAF8-431A-83D9-F0340921E560}.DLL Debug|Win32.Build.0 = Debug|Win32
{6F0F1E35-EAF8-431A-83D9-F0340921E560}.DLL Release|Win32.ActiveCfg = Release|Win32
{6F0F1E35-EAF8-431A-83D9-F0340921E560}.DLL Release|Win32.Build.0 = Release|Win32
{6F0F1E35-EAF8-431A-83D9-F0340921E560}.Release|Win32.ActiveCfg = Release|Win32
{6F0F1E35-EAF8-431A-83D9-F0340921E560}.Release|Win32.Build.0 = Release|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Debug|Win32.ActiveCfg = Debug|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Debug|Win32.Build.0 = Debug|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.DLL Release|Win32.Build.0 = DLL Release|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Release|Win32.ActiveCfg = Release|Win32
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

+ 0
- 268
extras/audio plugins/demo/build/VST_Win32/juce_vst.vcproj View File

@@ -1,268 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="JuceAudioPlugin Demo"
ProjectGUID="{6F0F1E35-EAF8-431A-83D9-F0340921E560}"
RootNamespace="JuceAudioPlugin Demo"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\Debug"
IntermediateDirectory=".\Debug"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Debug/juce_vst.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../src"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;JUCE_VST_EXPORTS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\Debug/juce_vst.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
ProgramDataBaseFileName=".\Debug/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="2057"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile=".\Debug/juce_vst.dll"
LinkIncremental="2"
SuppressStartupBanner="true"
GenerateManifest="false"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/juce_vst.pdb"
ImportLibrary=".\Debug/juce_vst.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Debug/juce_vst.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory=".\Release"
IntermediateDirectory=".\Release"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Release/juce_vst.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="3"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
WholeProgramOptimization="true"
AdditionalIncludeDirectories="../../src"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;JUCE_VST_EXPORTS"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\Release/juce_vst.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="2057"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile=".\Release/juce_vst.dll"
LinkIncremental="1"
SuppressStartupBanner="true"
GenerateManifest="false"
ProgramDatabaseFile=".\Release/juce_vst.pdb"
ImportLibrary=".\Release/juce_vst.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Release/juce_vst.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<Filter
Name="filter"
>
<File
RelativePath="..\..\src\DemoEditorComponent.cpp"
>
</File>
<File
RelativePath="..\..\src\DemoEditorComponent.h"
>
</File>
<File
RelativePath="..\..\src\DemoJuceFilter.cpp"
>
</File>
<File
RelativePath="..\..\src\DemoJuceFilter.h"
>
</File>
<File
RelativePath="..\..\src\JucePluginCharacteristics.h"
>
</File>
</Filter>
<Filter
Name="wrapper_code"
>
<File
RelativePath="..\..\..\wrapper\formats\VST\juce_VstWrapper.cpp"
>
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
>
</Filter>
<File
RelativePath="..\..\readme.txt"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

+ 0
- 195
extras/audio plugins/demo/src/DemoEditorComponent.cpp View File

@@ -1,195 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include "../../../../juce.h"
#include "DemoEditorComponent.h"
//==============================================================================
// quick-and-dirty function to format a timecode string
static const String timeToTimecodeString (const double seconds)
{
const double absSecs = fabs (seconds);
const tchar* const sign = (seconds < 0) ? T("-") : T("");
const int hours = (int) (absSecs / (60.0 * 60.0));
const int mins = ((int) (absSecs / 60.0)) % 60;
const int secs = ((int) absSecs) % 60;
return String::formatted (T("%s%02d:%02d:%02d:%03d"),
sign, hours, mins, secs,
roundDoubleToInt (absSecs * 1000) % 1000);
}
// quick-and-dirty function to format a bars/beats string
static const String ppqToBarsBeatsString (const double ppq,
const double lastBarPPQ,
const int numerator,
const int denominator)
{
if (numerator == 0 || denominator == 0)
return T("1|1|0");
const int ppqPerBar = (numerator * 4 / denominator);
const double beats = (fmod (ppq, ppqPerBar) / ppqPerBar) * numerator;
const int bar = ((int) ppq) / ppqPerBar + 1;
const int beat = ((int) beats) + 1;
const int ticks = ((int) (fmod (beats, 1.0) * 960.0));
String s;
s << bar << T('|') << beat << T('|') << ticks;
return s;
}
//==============================================================================
DemoEditorComponent::DemoEditorComponent (DemoJuceFilter* const ownerFilter)
: AudioProcessorEditor (ownerFilter)
{
// create our gain slider..
addAndMakeVisible (gainSlider = new Slider (T("gain")));
gainSlider->addListener (this);
gainSlider->setRange (0.0, 1.0, 0.01);
gainSlider->setTooltip (T("changes the volume of the audio that runs through the plugin.."));
// get the gain parameter from the filter and use it to set up our slider
gainSlider->setValue (ownerFilter->getParameter (0), false);
// create and add the midi keyboard component..
addAndMakeVisible (midiKeyboard
= new MidiKeyboardComponent (ownerFilter->keyboardState,
MidiKeyboardComponent::horizontalKeyboard));
// add a label that will display the current timecode and status..
addAndMakeVisible (infoLabel = new Label (String::empty, String::empty));
// add the triangular resizer component for the bottom-right of the UI
addAndMakeVisible (resizer = new ResizableCornerComponent (this, &resizeLimits));
resizeLimits.setSizeLimits (150, 150, 800, 300);
// set our component's initial size to be the last one that was stored in the filter's settings
setSize (ownerFilter->lastUIWidth,
ownerFilter->lastUIHeight);
// register ourselves with the filter - it will use its ChangeBroadcaster base
// class to tell us when something has changed, and this will call our changeListenerCallback()
// method.
ownerFilter->addChangeListener (this);
}
DemoEditorComponent::~DemoEditorComponent()
{
getFilter()->removeChangeListener (this);
deleteAllChildren();
}
//==============================================================================
void DemoEditorComponent::paint (Graphics& g)
{
// just clear the window
g.fillAll (Colour::greyLevel (0.9f));
}
void DemoEditorComponent::resized()
{
gainSlider->setBounds (10, 10, 200, 22);
infoLabel->setBounds (10, 35, 450, 20);
const int keyboardHeight = 70;
midiKeyboard->setBounds (4, getHeight() - keyboardHeight - 4,
getWidth() - 8, keyboardHeight);
resizer->setBounds (getWidth() - 16, getHeight() - 16, 16, 16);
// if we've been resized, tell the filter so that it can store the new size
// in its settings
getFilter()->lastUIWidth = getWidth();
getFilter()->lastUIHeight = getHeight();
}
//==============================================================================
void DemoEditorComponent::changeListenerCallback (void* source)
{
// this is the filter telling us that it's changed, so we'll update our
// display of the time, midi message, etc.
updateParametersFromFilter();
}
void DemoEditorComponent::sliderValueChanged (Slider*)
{
getFilter()->setParameterNotifyingHost (0, (float) gainSlider->getValue());
}
//==============================================================================
void DemoEditorComponent::updateParametersFromFilter()
{
DemoJuceFilter* const filter = getFilter();
// we use this lock to make sure the processBlock() method isn't writing to the
// lastMidiMessage variable while we're trying to read it, but be extra-careful to
// only hold the lock for a minimum amount of time..
filter->getCallbackLock().enter();
// take a local copy of the info we need while we've got the lock..
const AudioPlayHead::CurrentPositionInfo positionInfo (filter->lastPosInfo);
const float newGain = filter->getParameter (0);
// ..release the lock ASAP
filter->getCallbackLock().exit();
// ..and after releasing the lock, we're free to do the time-consuming UI stuff..
String infoText;
infoText << String (positionInfo.bpm, 2) << T(" bpm, ")
<< positionInfo.timeSigNumerator << T("/") << positionInfo.timeSigDenominator
<< T(" - ") << timeToTimecodeString (positionInfo.timeInSeconds)
<< T(" - ") << ppqToBarsBeatsString (positionInfo.ppqPosition,
positionInfo.ppqPositionOfLastBarStart,
positionInfo.timeSigNumerator,
positionInfo.timeSigDenominator);
if (positionInfo.isPlaying)
infoText << T(" (playing)");
infoLabel->setText (infoText, false);
/* Update our slider.
(note that it's important here to tell the slider not to send a change
message, because that would cause it to call the filter with a parameter
change message again, and the values would drift out.
*/
gainSlider->setValue (newGain, false);
setSize (filter->lastUIWidth,
filter->lastUIHeight);
}

+ 0
- 99
extras/audio plugins/demo/src/DemoEditorComponent.h View File

@@ -1,99 +0,0 @@
/*
==============================================================================
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 DEMOJUCEPLUGINEDITOR_H
#define DEMOJUCEPLUGINEDITOR_H
#include "DemoJuceFilter.h"
//==============================================================================
/**
This is the Component that our filter will use as its UI.
One or more of these is created by the DemoJuceFilter::createEditor() method,
and they will be deleted at some later time by the wrapper code.
To demonstrate the correct way of connecting a filter to its UI, this
class is a ChangeListener, and our demo filter is a ChangeBroadcaster. The
editor component registers with the filter when it's created and deregisters
when it's destroyed. When the filter's parameters are changed, it broadcasts
a message and this editor responds by updating its display.
*/
class DemoEditorComponent : public AudioProcessorEditor,
public ChangeListener,
public SliderListener
{
public:
/** Constructor.
When created, this will register itself with the filter for changes. It's
safe to assume that the filter won't be deleted before this object is.
*/
DemoEditorComponent (DemoJuceFilter* const ownerFilter);
/** Destructor. */
~DemoEditorComponent();
//==============================================================================
/** Our demo filter is a ChangeBroadcaster, and will call us back when one of
its parameters changes.
*/
void changeListenerCallback (void* source);
void sliderValueChanged (Slider*);
//==============================================================================
/** Standard Juce paint callback. */
void paint (Graphics& g);
/** Standard Juce resize callback. */
void resized();
private:
//==============================================================================
Slider* gainSlider;
MidiKeyboardComponent* midiKeyboard;
Label* infoLabel;
ResizableCornerComponent* resizer;
ComponentBoundsConstrainer resizeLimits;
TooltipWindow tooltipWindow;
void updateParametersFromFilter();
// handy wrapper method to avoid having to cast the filter to a DemoJuceFilter
// every time we need it..
DemoJuceFilter* getFilter() const throw() { return (DemoJuceFilter*) getAudioProcessor(); }
};
#endif

+ 0
- 236
extras/audio plugins/demo/src/DemoJuceFilter.cpp View File

@@ -1,236 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include "../../../../juce.h"
#include "DemoJuceFilter.h"
#include "DemoEditorComponent.h"
//==============================================================================
/**
This function must be implemented to create a new instance of your
plugin object.
*/
AudioProcessor* JUCE_CALLTYPE createPluginFilter()
{
return new DemoJuceFilter();
}
//==============================================================================
DemoJuceFilter::DemoJuceFilter()
{
gain = 1.0f;
lastUIWidth = 400;
lastUIHeight = 140;
zeromem (&lastPosInfo, sizeof (lastPosInfo));
lastPosInfo.timeSigNumerator = 4;
lastPosInfo.timeSigDenominator = 4;
lastPosInfo.bpm = 120;
}
DemoJuceFilter::~DemoJuceFilter()
{
}
//==============================================================================
int DemoJuceFilter::getNumParameters()
{
return 1;
}
float DemoJuceFilter::getParameter (int index)
{
return (index == 0) ? gain
: 0.0f;
}
void DemoJuceFilter::setParameter (int index, float newValue)
{
if (index == 0)
{
if (gain != newValue)
{
gain = newValue;
// if this is changing the gain, broadcast a change message which
// our editor will pick up.
sendChangeMessage (this);
}
}
}
const String DemoJuceFilter::getParameterName (int index)
{
if (index == 0)
return T("gain");
return String::empty;
}
const String DemoJuceFilter::getParameterText (int index)
{
if (index == 0)
return String (gain, 2);
return String::empty;
}
const String DemoJuceFilter::getInputChannelName (const int channelIndex) const
{
return String (channelIndex + 1);
}
const String DemoJuceFilter::getOutputChannelName (const int channelIndex) const
{
return String (channelIndex + 1);
}
bool DemoJuceFilter::isInputChannelStereoPair (int index) const
{
return false;
}
bool DemoJuceFilter::isOutputChannelStereoPair (int index) const
{
return false;
}
//==============================================================================
void DemoJuceFilter::prepareToPlay (double sampleRate, int samplesPerBlock)
{
// do your pre-playback setup stuff here..
keyboardState.reset();
}
void DemoJuceFilter::releaseResources()
{
// when playback stops, you can use this as an opportunity to free up any
// spare memory, etc.
}
void DemoJuceFilter::processBlock (AudioSampleBuffer& buffer,
MidiBuffer& midiMessages)
{
// for each of our input channels, we'll attenuate its level by the
// amount that our volume parameter is set to.
for (int channel = 0; channel < getNumInputChannels(); ++channel)
{
buffer.applyGain (channel, 0, buffer.getNumSamples(), gain);
}
// in case we have more outputs than inputs, we'll clear any output
// channels that didn't contain input data, (because these aren't
// guaranteed to be empty - they may contain garbage).
for (int i = getNumInputChannels(); i < getNumOutputChannels(); ++i)
{
buffer.clear (i, 0, buffer.getNumSamples());
}
// if any midi messages come in, use them to update the keyboard state object. This
// object sends notification to the UI component about key up/down changes
keyboardState.processNextMidiBuffer (midiMessages,
0, buffer.getNumSamples(),
true);
// have a go at getting the current time from the host, and if it's changed, tell
// our UI to update itself.
AudioPlayHead::CurrentPositionInfo pos;
if (getPlayHead() != 0 && getPlayHead()->getCurrentPosition (pos))
{
if (memcmp (&pos, &lastPosInfo, sizeof (pos)) != 0)
{
lastPosInfo = pos;
sendChangeMessage (this);
}
}
else
{
zeromem (&lastPosInfo, sizeof (lastPosInfo));
lastPosInfo.timeSigNumerator = 4;
lastPosInfo.timeSigDenominator = 4;
lastPosInfo.bpm = 120;
}
}
//==============================================================================
AudioProcessorEditor* DemoJuceFilter::createEditor()
{
return new DemoEditorComponent (this);
}
//==============================================================================
void DemoJuceFilter::getStateInformation (MemoryBlock& destData)
{
// you can store your parameters as binary data if you want to or if you've got
// a load of binary to put in there, but if you're not doing anything too heavy,
// XML is a much cleaner way of doing it - here's an example of how to store your
// params as XML..
// create an outer XML element..
XmlElement xmlState (T("MYPLUGINSETTINGS"));
// add some attributes to it..
xmlState.setAttribute (T("pluginVersion"), 1);
xmlState.setAttribute (T("gainLevel"), gain);
xmlState.setAttribute (T("uiWidth"), lastUIWidth);
xmlState.setAttribute (T("uiHeight"), lastUIHeight);
// you could also add as many child elements as you need to here..
// then use this helper function to stuff it into the binary blob and return it..
copyXmlToBinary (xmlState, destData);
}
void DemoJuceFilter::setStateInformation (const void* data, int sizeInBytes)
{
// use this helper function to get the XML from this binary blob..
XmlElement* const xmlState = getXmlFromBinary (data, sizeInBytes);
if (xmlState != 0)
{
// check that it's the right type of xml..
if (xmlState->hasTagName (T("MYPLUGINSETTINGS")))
{
// ok, now pull out our parameters..
gain = (float) xmlState->getDoubleAttribute (T("gainLevel"), gain);
lastUIWidth = xmlState->getIntAttribute (T("uiWidth"), lastUIWidth);
lastUIHeight = xmlState->getIntAttribute (T("uiHeight"), lastUIHeight);
sendChangeMessage (this);
}
delete xmlState;
}
}

+ 0
- 112
extras/audio plugins/demo/src/DemoJuceFilter.h View File

@@ -1,112 +0,0 @@
/*
==============================================================================
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 DEMOJUCEPLUGINFILTER_H
#define DEMOJUCEPLUGINFILTER_H
//==============================================================================
/**
A simple plugin filter that just applies a gain change to the audio
passing through it.
*/
class DemoJuceFilter : public AudioProcessor,
public ChangeBroadcaster
{
public:
//==============================================================================
DemoJuceFilter();
~DemoJuceFilter();
//==============================================================================
void prepareToPlay (double sampleRate, int samplesPerBlock);
void releaseResources();
void processBlock (AudioSampleBuffer& buffer,
MidiBuffer& midiMessages);
//==============================================================================
AudioProcessorEditor* createEditor();
//==============================================================================
int getNumParameters();
float getParameter (int index);
void setParameter (int index, float newValue);
const String getParameterName (int index);
const String getParameterText (int index);
const String getInputChannelName (const int channelIndex) const;
const String getOutputChannelName (const int channelIndex) const;
bool isInputChannelStereoPair (int index) const;
bool isOutputChannelStereoPair (int index) const;
//==============================================================================
int getNumPrograms() { return 0; }
int getCurrentProgram() { return 0; }
void setCurrentProgram (int index) { }
const String getProgramName (int index) { return String::empty; }
void changeProgramName (int index, const String& newName) { }
//==============================================================================
void getStateInformation (MemoryBlock& destData);
void setStateInformation (const void* data, int sizeInBytes);
//==============================================================================
// These properties are public so that our editor component can access them
// - a bit of a hacky way to do it, but it's only a demo!
// this is kept up to date with the midi messages that arrive, and the UI component
// registers with it so it can represent the incoming messages
MidiKeyboardState keyboardState;
// this keeps a copy of the last set of time info that was acquired during an audio
// callback - the UI component will read this and display it.
AudioPlayHead::CurrentPositionInfo lastPosInfo;
// these are used to persist the UI's size - the values are stored along with the
// filter's other parameters, and the UI component will update them when it gets
// resized.
int lastUIWidth, lastUIHeight;
//==============================================================================
juce_UseDebuggingNewOperator
private:
// this is our gain - the UI and the host can access this by getting/setting
// parameter 0.
float gain;
};
#endif

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

@@ -1,270 +0,0 @@
/*
==============================================================================
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 AudioProcessor::getNumInputChannels()
method.
*/
#define JucePlugin_MaxNumInputChannels 2
/** The maximum number of channels of audio output that the plugin can handle.
The actual number of channels supplied may be less than this, depending on the host.
For VSTs, you specify a maximum number of channels, for AUs and RTAS a set
of channel configurations is specified in JucePlugin_PreferredChannelConfigurations
and the host will choose one of these, but you should still set the max number of
channels correctly.
As soon as a plugin's prepareToPlay() method is called, you can find out the actual
number of channels that will be used with the AudioProcessor::getNumOutputChannels()
method.
*/
#define JucePlugin_MaxNumOutputChannels 2
/** This allows the plugin to specify the configurations of input/output channels that
they can support.
AU and RTAS hosts will use this information, although VSTs only have a concept of
a maximum number of channels.
The list is a set of pairs of values in the form { numInputs, numOutputs }, and each
pair indicates a valid configuration that the plugin can handle.
So for example, {1, 1}, {2, 2} means that the plugin can be used in just two
configurations: either with 1 input and 1 output, or with 2 inputs and 2 outputs. If
you used this in Pro-Tools, the plugin could be placed on a mono or stereo track.
If the list was just {1, 1}, then Pro-Tools would only allow it to be used as a mono
plugin.
As soon as a plugin's prepareToPlay() method is called, you can find out the actual
number of channels that the host has connected to the plugin by using the
AudioProcessor::getNumOutputChannels() and AudioFilterBase::getNumInputChannels()
methods.
*/
#define JucePlugin_PreferredChannelConfigurations { 1, 1 }, { 2, 2 }
//==============================================================================
/** Set this value to 1 if your plugin is a synth, or 0 if it isn't.
*/
#define JucePlugin_IsSynth 0
/** Set this to 1 if your plugin needs to receive midi messages, or 0 if
it doesn't.
*/
#define JucePlugin_WantsMidiInput 1
/** Set this to 1 if your plugin wants to output midi messages, or 0 if
it doesn't.
*/
#define JucePlugin_ProducesMidiOutput 1
/** If this is 1, it means that when the plugins input buffers are
silent, it's output will be too.
Some hosts may use this to avoid calling the plugin when no audio
would be produced.
*/
#define JucePlugin_SilenceInProducesSilenceOut 0
/** If 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

+ 0
- 948
extras/audio plugins/wrapper/formats/AudioUnit/juce_AudioUnitWrapper.cpp View File

@@ -1,948 +0,0 @@
/*
==============================================================================

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.

==============================================================================
*/

#include <AudioUnit/AudioUnit.h>
#include "AUMIDIEffectBase.h"
#include "MusicDeviceBase.h"
#include "AUCarbonViewBase.h"
#include "../../juce_IncludeCharacteristics.h"
#include "../../../../../juce.h"

//==============================================================================
#define juceFilterObjectPropertyID 0x1a45ffe9
static VoidArray activePlugins;

static const short channelConfigs[][2] = { JucePlugin_PreferredChannelConfigurations };
static const int numChannelConfigs = numElementsInArray (channelConfigs);

BEGIN_JUCE_NAMESPACE
extern void juce_setCurrentExecutableFileNameFromBundleId (const String& bundleId) throw();
END_JUCE_NAMESPACE

#if JucePlugin_IsSynth
#define JuceAUBaseClass MusicDeviceBase
#else
#define JuceAUBaseClass AUMIDIEffectBase
#endif

//==============================================================================
/** Somewhere in the codebase of your plugin, you need to implement this function
and make it create an instance of the filter subclass that you're building.
*/
extern AudioProcessor* JUCE_CALLTYPE createPluginFilter();


//==============================================================================
class JuceAU : public JuceAUBaseClass,
public AudioProcessorListener,
public AudioPlayHead
{
public:
//==============================================================================
JuceAU (AudioUnit component)
#if JucePlugin_IsSynth
: MusicDeviceBase (component, 0, 1),
#else
: AUMIDIEffectBase (component),
#endif
juceFilter (0),
bufferSpace (2, 16),
channels (0),
prepared (false)
{
CreateElements();

if (activePlugins.size() == 0)
{
initialiseJuce_GUI();

#ifdef JucePlugin_CFBundleIdentifier
juce_setCurrentExecutableFileNameFromBundleId (JucePlugin_CFBundleIdentifier);
#endif

MessageManager::getInstance()->setTimeBeforeShowingWaitCursor (0);
}

juceFilter = createPluginFilter();
juceFilter->setPlayHead (this);
juceFilter->addListener (this);

jassert (juceFilter != 0);
Globals()->UseIndexedParameters (juceFilter->getNumParameters());

activePlugins.add (this);

zerostruct (auEvent);
auEvent.mArgument.mParameter.mAudioUnit = GetComponentInstance();
auEvent.mArgument.mParameter.mScope = kAudioUnitScope_Global;
auEvent.mArgument.mParameter.mElement = 0;
}

~JuceAU()
{
delete juceFilter;
juceFilter = 0;

juce_free (channels);
channels = 0;

jassert (activePlugins.contains (this));
activePlugins.removeValue (this);

if (activePlugins.size() == 0)
shutdownJuce_GUI();
}

//==============================================================================
ComponentResult GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32& outDataSize,
Boolean& outWritable)
{
if (inScope == kAudioUnitScope_Global)
{
if (inID == juceFilterObjectPropertyID)
{
outWritable = false;
outDataSize = sizeof (void*);
return noErr;
}
}

return JuceAUBaseClass::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}

ComponentResult GetProperty (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void* outData)
{
if (inScope == kAudioUnitScope_Global)
{
if (inID == juceFilterObjectPropertyID)
{
*((void**) outData) = (void*) juceFilter;
return noErr;
}
}

return JuceAUBaseClass::GetProperty (inID, inScope, inElement, outData);
}

ComponentResult SaveState (CFPropertyListRef* outData)
{
ComponentResult err = JuceAUBaseClass::SaveState (outData);

if (err != noErr)
return err;

jassert (CFGetTypeID (*outData) == CFDictionaryGetTypeID());

CFMutableDictionaryRef dict = (CFMutableDictionaryRef) *outData;

if (juceFilter != 0)
{
MemoryBlock state;
juceFilter->getCurrentProgramStateInformation (state);

if (state.getSize() > 0)
{
CFDataRef ourState = CFDataCreate (kCFAllocatorDefault, (const uint8*) state, state.getSize());
CFDictionarySetValue (dict, CFSTR("jucePluginState"), ourState);
CFRelease (ourState);
}
}

return noErr;
}

ComponentResult RestoreState (CFPropertyListRef inData)
{
ComponentResult err = JuceAUBaseClass::RestoreState (inData);

if (err != noErr)
return err;

if (juceFilter != 0)
{
CFDictionaryRef dict = (CFDictionaryRef) inData;
CFDataRef data = 0;

if (CFDictionaryGetValueIfPresent (dict, CFSTR("jucePluginState"),
(const void**) &data))
{
if (data != 0)
{
const int numBytes = (int) CFDataGetLength (data);
const uint8* const rawBytes = CFDataGetBytePtr (data);

if (numBytes > 0)
juceFilter->setCurrentProgramStateInformation (rawBytes, numBytes);
}
}
}

return noErr;
}

UInt32 SupportedNumChannels (const AUChannelInfo** outInfo)
{
// You need to actually add some configurations to the JucePlugin_PreferredChannelConfigurations
// value in your JucePluginCharacteristics.h file..
jassert (numChannelConfigs > 0);

if (outInfo != 0)
{
for (int i = 0; i < numChannelConfigs; ++i)
{
#if JucePlugin_IsSynth
channelInfo[i].inChannels = 0;
#else
channelInfo[i].inChannels = channelConfigs[i][0];
#endif
channelInfo[i].outChannels = channelConfigs[i][1];

outInfo[i] = channelInfo + i;
}
}

return numChannelConfigs;
}

//==============================================================================
ComponentResult GetParameterInfo (AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo& outParameterInfo)
{
const int index = (int) inParameterID;

if (inScope == kAudioUnitScope_Global
&& juceFilter != 0
&& index < juceFilter->getNumParameters())
{
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable
| kAudioUnitParameterFlag_HasCFNameString;

const String name (juceFilter->getParameterName (index));

// set whether the param is automatable (unnamed parameters aren't allowed to be automated)
if (name.isEmpty() || ! juceFilter->isParameterAutomatable (index))
outParameterInfo.flags |= kAudioUnitParameterFlag_NonRealTime;

AUBase::FillInParameterName (outParameterInfo,
PlatformUtilities::juceStringToCFString (name),
false);

outParameterInfo.minValue = 0.0f;
outParameterInfo.maxValue = 1.0f;
outParameterInfo.defaultValue = 0.0f;
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;

return noErr;
}
else
{
return kAudioUnitErr_InvalidParameter;
}
}

ComponentResult GetParameter (AudioUnitParameterID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
Float32& outValue)
{
if (inScope == kAudioUnitScope_Global && juceFilter != 0)
{
outValue = juceFilter->getParameter ((int) inID);
return noErr;
}

return AUBase::GetParameter (inID, inScope, inElement, outValue);
}

ComponentResult SetParameter (AudioUnitParameterID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
Float32 inValue,
UInt32 inBufferOffsetInFrames)
{
if (inScope == kAudioUnitScope_Global && juceFilter != 0)
{
juceFilter->setParameter ((int) inID, inValue);
return noErr;
}

return AUBase::SetParameter (inID, inScope, inElement, inValue, inBufferOffsetInFrames);
}

//==============================================================================
ComponentResult Version() { return JucePlugin_VersionCode; }

bool SupportsTail() { return true; }
Float64 GetTailTime() { return 0; }

Float64 GetSampleRate()
{
return GetOutput(0)->GetStreamFormat().mSampleRate;
}

Float64 GetLatency()
{
jassert (GetSampleRate() > 0);

if (GetSampleRate() <= 0)
return 0.0;

return juceFilter->getLatencySamples() / GetSampleRate();
}

//==============================================================================
int GetNumCustomUIComponents() { return 1; }

void GetUIComponentDescs (ComponentDescription* inDescArray)
{
inDescArray[0].componentType = kAudioUnitCarbonViewComponentType;
inDescArray[0].componentSubType = JucePlugin_AUSubType;
inDescArray[0].componentManufacturer = JucePlugin_AUManufacturerCode;
inDescArray[0].componentFlags = 0;
inDescArray[0].componentFlagsMask = 0;
}

//==============================================================================
bool getCurrentPosition (AudioPlayHead::CurrentPositionInfo& info)
{
info.timeSigNumerator = 0;
info.timeSigDenominator = 0;
info.timeInSeconds = 0;
info.editOriginTime = 0;
info.ppqPositionOfLastBarStart = 0;
info.isPlaying = false;
info.isRecording = false;

switch (lastSMPTETime.mType)
{
case kSMPTETimeType24:
info.frameRate = AudioPlayHead::fps24;
break;

case kSMPTETimeType25:
info.frameRate = AudioPlayHead::fps25;
break;

case kSMPTETimeType30Drop:
info.frameRate = AudioPlayHead::fps30drop;
break;

case kSMPTETimeType30:
info.frameRate = AudioPlayHead::fps30;
break;

case kSMPTETimeType2997:
info.frameRate = AudioPlayHead::fps2997;
break;

case kSMPTETimeType2997Drop:
info.frameRate = AudioPlayHead::fps2997drop;
break;

//case kSMPTETimeType60:
//case kSMPTETimeType5994:
default:
info.frameRate = AudioPlayHead::fpsUnknown;
break;
}

if (CallHostBeatAndTempo (&info.ppqPosition, &info.bpm) != noErr)
{
info.ppqPosition = 0;
info.bpm = 0;
}

UInt32 outDeltaSampleOffsetToNextBeat;
double outCurrentMeasureDownBeat;
float num;
UInt32 den;

if (CallHostMusicalTimeLocation (&outDeltaSampleOffsetToNextBeat, &num, &den,
&outCurrentMeasureDownBeat) == noErr)
{
info.timeSigNumerator = (int) num;
info.timeSigDenominator = den;
info.ppqPositionOfLastBarStart = outCurrentMeasureDownBeat;
}

double outCurrentSampleInTimeLine, outCycleStartBeat, outCycleEndBeat;
Boolean playing, playchanged, looping;

if (CallHostTransportState (&playing,
&playchanged,
&outCurrentSampleInTimeLine,
&looping,
&outCycleStartBeat,
&outCycleEndBeat) == noErr)
{
info.isPlaying = playing;
info.timeInSeconds = outCurrentSampleInTimeLine / GetSampleRate();
}

return true;
}

void sendAUEvent (const AudioUnitEventType type, const int index) throw()
{
if (AUEventListenerNotify != 0)
{
auEvent.mEventType = type;
auEvent.mArgument.mParameter.mParameterID = (AudioUnitParameterID) index;
AUEventListenerNotify (0, 0, &auEvent);
}
}

void audioProcessorParameterChanged (AudioProcessor*, int index, float newValue)
{
sendAUEvent (kAudioUnitEvent_ParameterValueChange, index);
}

void audioProcessorParameterChangeGestureBegin (AudioProcessor*, int index)
{
sendAUEvent (kAudioUnitEvent_BeginParameterChangeGesture, index);
}

void audioProcessorParameterChangeGestureEnd (AudioProcessor*, int index)
{
sendAUEvent (kAudioUnitEvent_EndParameterChangeGesture, index);
}

void audioProcessorChanged (AudioProcessor*)
{
// xxx is there an AU equivalent?
}

bool StreamFormatWritable (AudioUnitScope inScope, AudioUnitElement element)
{
return ! IsInitialized();
}

ComponentResult StartNote (MusicDeviceInstrumentID, MusicDeviceGroupID, NoteInstanceID&, UInt32, const MusicDeviceNoteParams&)
{
return noErr;
}

ComponentResult StopNote (MusicDeviceGroupID, NoteInstanceID, UInt32)
{
return noErr;
}

//==============================================================================
ComponentResult Initialize()
{
#if ! JucePlugin_IsSynth
const int numIns = GetInput(0) != 0 ? GetInput(0)->GetStreamFormat().mChannelsPerFrame : 0;
#endif
const int numOuts = GetOutput(0) != 0 ? GetOutput(0)->GetStreamFormat().mChannelsPerFrame : 0;

bool isValidChannelConfig = false;

for (int i = 0; i < numChannelConfigs; ++i)
#if JucePlugin_IsSynth
if (numOuts == channelConfigs[i][1])
#else
if (numIns == channelConfigs[i][0] && numOuts == channelConfigs[i][1])
#endif
isValidChannelConfig = true;

if (! isValidChannelConfig)
return kAudioUnitErr_FormatNotSupported;

JuceAUBaseClass::Initialize();
prepareToPlay();
return noErr;
}

void Cleanup()
{
JuceAUBaseClass::Cleanup();

if (juceFilter != 0)
juceFilter->releaseResources();

bufferSpace.setSize (2, 16);
midiEvents.clear();
prepared = false;
}

ComponentResult Reset (AudioUnitScope inScope, AudioUnitElement inElement)
{
if (! prepared)
prepareToPlay();

return JuceAUBaseClass::Reset (inScope, inElement);
}

void prepareToPlay()
{
if (juceFilter != 0)
{
#if ! JucePlugin_IsSynth
juceFilter->setPlayConfigDetails (GetInput(0)->GetStreamFormat().mChannelsPerFrame,
#else
juceFilter->setPlayConfigDetails (0,
#endif
GetOutput(0)->GetStreamFormat().mChannelsPerFrame,
GetSampleRate(),
GetMaxFramesPerSlice());

bufferSpace.setSize (juceFilter->getNumInputChannels() + juceFilter->getNumOutputChannels(),
GetMaxFramesPerSlice() + 32);

juceFilter->prepareToPlay (GetSampleRate(),
GetMaxFramesPerSlice());

midiEvents.clear();

juce_free (channels);
channels = (float**) juce_calloc (sizeof (float*) * jmax (juceFilter->getNumInputChannels(),
juceFilter->getNumOutputChannels()) + 4);

prepared = true;
}
}

ComponentResult Render (AudioUnitRenderActionFlags &ioActionFlags,
const AudioTimeStamp& inTimeStamp,
UInt32 nFrames)
{
lastSMPTETime = inTimeStamp.mSMPTETime;

#if ! JucePlugin_IsSynth
return JuceAUBaseClass::Render (ioActionFlags, inTimeStamp, nFrames);
#else
// synths can't have any inputs..
AudioBufferList inBuffer;
inBuffer.mNumberBuffers = 0;

return ProcessBufferLists (ioActionFlags, inBuffer, GetOutput(0)->GetBufferList(), nFrames);
#endif
}


OSStatus ProcessBufferLists (AudioUnitRenderActionFlags& ioActionFlags,
const AudioBufferList& inBuffer,
AudioBufferList& outBuffer,
UInt32 numSamples)
{
if (juceFilter != 0)
{
jassert (prepared);

int numOutChans = 0;
int nextSpareBufferChan = 0;
bool needToReinterleave = false;
const int numIn = juceFilter->getNumInputChannels();
const int numOut = juceFilter->getNumOutputChannels();

unsigned int i;
for (i = 0; i < outBuffer.mNumberBuffers; ++i)
{
AudioBuffer& buf = outBuffer.mBuffers[i];

if (buf.mNumberChannels == 1)
{
channels [numOutChans++] = (float*) buf.mData;
}
else
{
needToReinterleave = true;

for (unsigned int subChan = 0; subChan < buf.mNumberChannels && numOutChans < numOut; ++subChan)
channels [numOutChans++] = bufferSpace.getSampleData (nextSpareBufferChan++);
}

if (numOutChans >= numOut)
break;
}

int numInChans = 0;

for (i = 0; i < inBuffer.mNumberBuffers; ++i)
{
const AudioBuffer& buf = inBuffer.mBuffers[i];

if (buf.mNumberChannels == 1)
{
if (numInChans < numOutChans)
memcpy (channels [numInChans], (const float*) buf.mData, sizeof (float) * numSamples);
else
channels [numInChans] = (float*) buf.mData;

++numInChans;
}
else
{
// need to de-interleave..
for (unsigned int subChan = 0; subChan < buf.mNumberChannels && numInChans < numIn; ++subChan)
{
float* dest;

if (numInChans < numOutChans)
{
dest = channels [numInChans++];
}
else
{
dest = bufferSpace.getSampleData (nextSpareBufferChan++);
channels [numInChans++] = dest;
}

const float* src = ((const float*) buf.mData) + subChan;

for (int j = numSamples; --j >= 0;)
{
*dest++ = *src;
src += buf.mNumberChannels;
}
}
}

if (numInChans >= numIn)
break;
}

{
AudioSampleBuffer buffer (channels, jmax (numIn, numOut), numSamples);

const ScopedLock sl (juceFilter->getCallbackLock());

if (juceFilter->isSuspended())
{
for (int i = 0; i < numOut; ++i)
zeromem (channels [i], sizeof (float) * numSamples);
}
else
{
juceFilter->processBlock (buffer, midiEvents);
}
}

if (! midiEvents.isEmpty())
{
#if JucePlugin_ProducesMidiOutput
const uint8* midiEventData;
int midiEventSize, midiEventPosition;
MidiBuffer::Iterator i (midiEvents);

while (i.getNextEvent (midiEventData, midiEventSize, midiEventPosition))
{
jassert (((unsigned int) midiEventPosition) < (unsigned int) numSamples);



//xxx
}
#else
// if your plugin creates midi messages, you'll need to set
// the JucePlugin_ProducesMidiOutput macro to 1 in your
// JucePluginCharacteristics.h file
//jassert (midiEvents.getNumEvents() <= numMidiEventsComingIn);
#endif
midiEvents.clear();
}

if (needToReinterleave)
{
nextSpareBufferChan = 0;

for (i = 0; i < outBuffer.mNumberBuffers; ++i)
{
AudioBuffer& buf = outBuffer.mBuffers[i];

if (buf.mNumberChannels > 1)
{
for (unsigned int subChan = 0; subChan < buf.mNumberChannels; ++subChan)
{
const float* src = bufferSpace.getSampleData (nextSpareBufferChan++);
float* dest = ((float*) buf.mData) + subChan;

for (int j = numSamples; --j >= 0;)
{
*dest = *src++;
dest += buf.mNumberChannels;
}
}
}
}
}

#if ! JucePlugin_SilenceInProducesSilenceOut
ioActionFlags &= ~kAudioUnitRenderAction_OutputIsSilence;
#endif
}

return noErr;
}

protected:
OSStatus HandleMidiEvent (UInt8 nStatus,
UInt8 inChannel,
UInt8 inData1,
UInt8 inData2,
long inStartFrame)
{
#if JucePlugin_WantsMidiInput
uint8 data [4];
data[0] = nStatus | inChannel;
data[1] = inData1;
data[2] = inData2;

midiEvents.addEvent (data, 3, inStartFrame);
#endif

return noErr;
}

//==============================================================================
private:
AudioProcessor* juceFilter;
AudioSampleBuffer bufferSpace;
float** channels;
MidiBuffer midiEvents;
bool prepared;
SMPTETime lastSMPTETime;
AUChannelInfo channelInfo [numChannelConfigs];
AudioUnitEvent auEvent;
};


//==============================================================================
class JuceAUComponentHolder : public Component
{
public:
JuceAUComponentHolder (Component* const editorComp)
{
addAndMakeVisible (editorComp);
setOpaque (true);
setVisible (true);
setBroughtToFrontOnMouseClick (true);

#if ! JucePlugin_EditorRequiresKeyboardFocus
setWantsKeyboardFocus (false);
#endif
}

~JuceAUComponentHolder()
{
}

void resized()
{
if (getNumChildComponents() > 0)
getChildComponent (0)->setBounds (0, 0, getWidth(), getHeight());
}

void paint (Graphics& g)
{
}
};

//==============================================================================
class JuceAUView : public AUCarbonViewBase,
public ComponentListener,
public MouseListener,
public Timer
{
AudioProcessor* juceFilter;
AudioProcessorEditor* editorComp;
Component* windowComp;
bool recursive;
int mx, my;

public:
JuceAUView (AudioUnitCarbonView auview)
: AUCarbonViewBase (auview),
juceFilter (0),
editorComp (0),
windowComp (0),
recursive (false),
mx (0),
my (0)
{
}

~JuceAUView()
{
deleteUI();
}

ComponentResult CreateUI (Float32 inXOffset, Float32 inYOffset)
{
if (juceFilter == 0)
{
UInt32 propertySize = sizeof (&juceFilter);

AudioUnitGetProperty (GetEditAudioUnit(),
juceFilterObjectPropertyID,
kAudioUnitScope_Global,
0,
&juceFilter,
&propertySize);
}

if (juceFilter != 0)
{
deleteUI();

editorComp = juceFilter->createEditorIfNeeded();

const int w = editorComp->getWidth();
const int h = editorComp->getHeight();

editorComp->setOpaque (true);
editorComp->setVisible (true);

windowComp = new JuceAUComponentHolder (editorComp);
windowComp->setBounds ((int) inXOffset, (int) inYOffset, w, h);

windowComp->addToDesktop (0, (void*) mCarbonPane);
SizeControl (mCarbonPane, w, h);

editorComp->addComponentListener (this);
windowComp->addMouseListener (this, true);

startTimer (20);
}
else
{
jassertfalse // can't get a pointer to our effect
}

return noErr;
}

void componentMovedOrResized (Component& component,
bool wasMoved,
bool wasResized)
{
if (! recursive)
{
recursive = true;

if (editorComp != 0 && wasResized)
{
const int w = jmax (32, editorComp->getWidth());
const int h = jmax (32, editorComp->getHeight());

SizeControl (mCarbonPane, w, h);

if (windowComp->getWidth() != w
|| windowComp->getHeight() != h)
{
windowComp->setSize (w, h);
}

editorComp->repaint();
}

recursive = false;
}
}

void timerCallback()
{
// for some stupid Apple-related reason, mouse move events just don't seem to get sent
// to the windows in an AU, so we have to bodge it here and simulate them with a
// timer..
if (editorComp != 0)
{
int x, y;
Desktop::getInstance().getMousePosition (x, y);

if (x != mx || y != my)
{
mx = x;
my = y;

if (! ModifierKeys::getCurrentModifiers().isAnyMouseButtonDown())
{
for (int i = ComponentPeer::getNumPeers(); --i >= 0;)
{
ComponentPeer* const peer = ComponentPeer::getPeer (i);

int rx = x, ry = y;
peer->getComponent()->globalPositionToRelative (rx, ry);

if (peer->contains (rx, ry, false) && peer->getComponent()->isShowing())
{
peer->handleMouseMove (rx, ry, Time::currentTimeMillis());
break;
}
}
}
}
}
}

void mouseMove (const MouseEvent& e)
{
Desktop::getInstance().getMousePosition (mx, my);
startTimer (20);
}

private:
void deleteUI()
{
PopupMenu::dismissAllActiveMenus();

// there's some kind of component currently modal, but the host
// is trying to delete our plugin..
jassert (Component::getCurrentlyModalComponent() == 0);

if (editorComp != 0)
juceFilter->editorBeingDeleted (editorComp);

deleteAndZero (editorComp);
deleteAndZero (windowComp);
}
};

//==============================================================================
#define JUCE_COMPONENT_ENTRYX(Class, Name, Suffix) \
extern "C" __attribute__((visibility("default"))) ComponentResult Name ## Suffix (ComponentParameters* params, Class* obj); \
extern "C" __attribute__((visibility("default"))) ComponentResult Name ## Suffix (ComponentParameters* params, Class* obj) \
{ \
return ComponentEntryPoint<Class>::Dispatch(params, obj); \
}

#define JUCE_COMPONENT_ENTRY(Class, Name, Suffix) JUCE_COMPONENT_ENTRYX(Class, Name, Suffix)

JUCE_COMPONENT_ENTRY (JuceAU, JucePlugin_AUExportPrefix, Entry)
JUCE_COMPONENT_ENTRY (JuceAUView, JucePlugin_AUExportPrefix, ViewEntry)

+ 0
- 70
extras/audio plugins/wrapper/formats/AudioUnit/juce_AudioUnitWrapper.r View File

@@ -1,70 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include <AudioUnit/AudioUnit.r>
#include <AudioUnit/AudioUnitCarbonView.r>
//==============================================================================
/* The JucePluginCharacteristics.h file is supposed to live in your plugin-specific
project directory, and has to contain info describing its name, type, etc. For
more info, see the JucePluginCharacteristics.h that is included in the demo plugin.
You may need to adjust the include path of your project to make sure it can be
found by this include statement. (Don't hack this file to change the include path)
*/
#include "JucePluginCharacteristics.h"
//==============================================================================
// component resources for Audio Unit
#define RES_ID 1000
#define COMP_TYPE JucePlugin_AUMainType
#define COMP_SUBTYPE JucePlugin_AUSubType
#define COMP_MANUF JucePlugin_AUManufacturerCode
#define VERSION JucePlugin_VersionCode
#define NAME JucePlugin_Manufacturer ": " JucePlugin_Name
#define DESCRIPTION JucePlugin_Desc
#define ENTRY_POINT JucePlugin_AUExportPrefixQuoted "Entry"
#include "/Developer/Examples/CoreAudio/AudioUnits/AUPublic/AUBase/AUResources.r"
//==============================================================================
// component resources for Audio Unit Carbon View
#define RES_ID 2000
#define COMP_TYPE kAudioUnitCarbonViewComponentType
#define COMP_SUBTYPE JucePlugin_AUSubType
#define COMP_MANUF JucePlugin_AUManufacturerCode
#define VERSION JucePlugin_VersionCode
#define NAME JucePlugin_Manufacturer ": " JucePlugin_Name " View"
#define DESCRIPTION NAME
#define ENTRY_POINT JucePlugin_AUExportPrefixQuoted "ViewEntry"
#include "/Developer/Examples/CoreAudio/AudioUnits/AUPublic/AUBase/AUResources.r"

BIN
extras/audio plugins/wrapper/formats/RTAS/DefaultResourceFile View File

Before After

+ 0
- 4
extras/audio plugins/wrapper/formats/RTAS/DummyResourceFile.r View File

@@ -1,4 +0,0 @@

// This dummy file is added to the resources section of the project to
// force XCode to create some resources for the dpm. If there aren't any
// resources, PT would refuse to load the plugin..

+ 0
- 63
extras/audio plugins/wrapper/formats/RTAS/juce_RTASCompileFlags.h View File

@@ -1,63 +0,0 @@
/*
==============================================================================
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_RTASCOMPILEFLAGS_JUCEHEADER__
#define __JUCE_RTASCOMPILEFLAGS_JUCEHEADER__
#ifdef _MSC_VER
#define kCompileAsCodeResource 0
#define kBuildStandAlone 0
#define kNoDSP 0
#define kNoDAE 0
#define kNoSDS 0
#define kNoViews 0
#define kUseDSPCodeDecode 0
#define WINDOWS_VERSION 1
#define PLUGIN_SDK_BUILD 1
#define PLUGIN_SDK_DIRECTMIDI 1
#else
#define kCompileAsCodeResource 0
#define kNoDSP 1
#define kNoDAE 0
#define kNoSDS 0
#define kNoViews 0
#define kUseDSPCodeDecode 0
#define PLUGIN_SDK_BUILD 1
#define PLUGIN_SDK_DIRECTMIDI 1
#endif
#endif // __JUCE_RTASCOMPILEFLAGS_JUCEHEADER__

+ 0
- 139
extras/audio plugins/wrapper/formats/RTAS/juce_RTASUtilities.cpp View File

@@ -1,139 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#if _MSC_VER
// (these functions are in a separate file because of problems including windows.h
// at the same time as the Digi headers)
#include <windows.h>
#ifdef _MSC_VER
#pragma pack (push, 8)
#endif
#include "../../../../../juce.h"
#ifdef _MSC_VER
#pragma pack (pop)
#endif
//==============================================================================
void JUCE_CALLTYPE attachSubWindow (void* hostWindow,
int& titleW, int& titleH,
Component* comp)
{
RECT clientRect;
GetClientRect ((HWND) hostWindow, &clientRect);
titleW = clientRect.right - clientRect.left;
titleH = jmax (0, (clientRect.bottom - clientRect.top) - comp->getHeight());
comp->setTopLeftPosition (0, titleH);
comp->addToDesktop (0);
HWND plugWnd = (HWND) comp->getWindowHandle();
SetParent (plugWnd, (HWND) hostWindow);
DWORD val = GetWindowLong (plugWnd, GWL_STYLE);
val = (val & ~WS_POPUP) | WS_CHILD;
SetWindowLong (plugWnd, GWL_STYLE, val);
}
void JUCE_CALLTYPE resizeHostWindow (void* hostWindow,
int& titleW, int& titleH,
Component* comp)
{
RECT clientRect, windowRect;
GetClientRect ((HWND) hostWindow, &clientRect);
GetWindowRect ((HWND) hostWindow, &windowRect);
const int borderW = (windowRect.right - windowRect.left) - (clientRect.right - clientRect.left);
const int borderH = (windowRect.bottom - windowRect.top) - (clientRect.bottom - clientRect.top);
SetWindowPos ((HWND) hostWindow, 0, 0, 0,
borderW + jmax (titleW, comp->getWidth()),
borderH + comp->getHeight() + titleH,
SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOOWNERZORDER);
}
#if ! JucePlugin_EditorRequiresKeyboardFocus
static HWND findMDIParentOf (HWND w)
{
const int frameThickness = GetSystemMetrics (SM_CYFIXEDFRAME);
while (w != 0)
{
HWND parent = GetParent (w);
if (parent == 0)
break;
TCHAR windowType [32];
zeromem (windowType, sizeof (windowType));
GetClassName (parent, windowType, 31);
if (String (windowType).equalsIgnoreCase (T("MDIClient")))
{
w = parent;
break;
}
RECT windowPos;
GetWindowRect (w, &windowPos);
RECT parentPos;
GetWindowRect (parent, &parentPos);
int dw = (parentPos.right - parentPos.left) - (windowPos.right - windowPos.left);
int dh = (parentPos.bottom - parentPos.top) - (windowPos.bottom - windowPos.top);
if (dw > 100 || dh > 100)
break;
w = parent;
if (dw == 2 * frameThickness)
break;
}
return w;
}
void JUCE_CALLTYPE passFocusToHostWindow (void* hostWindow)
{
SetFocus (findMDIParentOf ((HWND) hostWindow));
}
#endif
#endif

+ 0
- 1092
extras/audio plugins/wrapper/formats/RTAS/juce_RTASWrapper.cpp
File diff suppressed because it is too large
View File


+ 0
- 3
extras/audio plugins/wrapper/formats/RTAS/juce_RTAS_dlldefs.def View File

@@ -1,3 +0,0 @@
EXPORTS
NewPlugIn @1
_PI_GetRoutineDescriptor @2

+ 0
- 44
extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectGroup.cpp View File

@@ -1,44 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include "juce_Wrapper_Header.h"
/*
This file is used to include and build a digidesign CPP file without your project needing to
reference the file directly. Because the file will be located via the include path, this means
that the project doesn't have to change to cope with people's SDKs being in different locations.
Note about include paths
If you get an error including this file, check your paths - there's a full list of
Digidesign paths in juce_RTASWrapper.cpp
*/
#include "CEffectGroup.cpp"

+ 0
- 44
extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectGroupMIDI.cpp View File

@@ -1,44 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include "juce_Wrapper_Header.h"
/*
This file is used to include and build a digidesign CPP file without your project needing to
reference the file directly. Because the file will be located via the include path, this means
that the project doesn't have to change to cope with people's SDKs being in different locations.
Note about include paths
If you get an error including this file, check your paths - there's a full list of
Digidesign paths in juce_RTASWrapper.cpp
*/
#include "CEffectGroupMIDI.cpp"

+ 0
- 44
extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectMIDIUtils.cpp View File

@@ -1,44 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include "juce_Wrapper_Header.h"
/*
This file is used to include and build a digidesign CPP file without your project needing to
reference the file directly. Because the file will be located via the include path, this means
that the project doesn't have to change to cope with people's SDKs being in different locations.
Note about include paths
If you get an error including this file, check your paths - there's a full list of
Digidesign paths in juce_RTASWrapper.cpp
*/
#include "CEffectMIDIUtils.cpp"

+ 0
- 44
extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcess.cpp View File

@@ -1,44 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include "juce_Wrapper_Header.h"
/*
This file is used to include and build a digidesign CPP file without your project needing to
reference the file directly. Because the file will be located via the include path, this means
that the project doesn't have to change to cope with people's SDKs being in different locations.
Note about include paths
If you get an error including this file, check your paths - there's a full list of
Digidesign paths in juce_RTASWrapper.cpp
*/
#include "CEffectProcess.cpp"

+ 0
- 44
extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcessAS.cpp View File

@@ -1,44 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include "juce_Wrapper_Header.h"
/*
This file is used to include and build a digidesign CPP file without your project needing to
reference the file directly. Because the file will be located via the include path, this means
that the project doesn't have to change to cope with people's SDKs being in different locations.
Note about include paths
If you get an error including this file, check your paths - there's a full list of
Digidesign paths in juce_RTASWrapper.cpp
*/
#include "CEffectProcessAS.cpp"

+ 0
- 44
extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcessMIDI.cpp View File

@@ -1,44 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include "juce_Wrapper_Header.h"
/*
This file is used to include and build a digidesign CPP file without your project needing to
reference the file directly. Because the file will be located via the include path, this means
that the project doesn't have to change to cope with people's SDKs being in different locations.
Note about include paths
If you get an error including this file, check your paths - there's a full list of
Digidesign paths in juce_RTASWrapper.cpp
*/
#include "CEffectProcessMIDI.cpp"

+ 0
- 44
extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectType.cpp View File

@@ -1,44 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include "juce_Wrapper_Header.h"
/*
This file is used to include and build a digidesign CPP file without your project needing to
reference the file directly. Because the file will be located via the include path, this means
that the project doesn't have to change to cope with people's SDKs being in different locations.
Note about include paths
If you get an error including this file, check your paths - there's a full list of
Digidesign paths in juce_RTASWrapper.cpp
*/
#include "CEffectType.cpp"

+ 0
- 44
extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectTypeRTAS.cpp View File

@@ -1,44 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include "juce_Wrapper_Header.h"
/*
This file is used to include and build a digidesign CPP file without your project needing to
reference the file directly. Because the file will be located via the include path, this means
that the project doesn't have to change to cope with people's SDKs being in different locations.
Note about include paths
If you get an error including this file, check your paths - there's a full list of
Digidesign paths in juce_RTASWrapper.cpp
*/
#include "CEffectTypeRTAS.cpp"

+ 0
- 44
extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_ChunkDataParser.cpp View File

@@ -1,44 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include "juce_Wrapper_Header.h"
/*
This file is used to include and build a digidesign CPP file without your project needing to
reference the file directly. Because the file will be located via the include path, this means
that the project doesn't have to change to cope with people's SDKs being in different locations.
Note about include paths
If you get an error including this file, check your paths - there's a full list of
Digidesign paths in juce_RTASWrapper.cpp
*/
#include "ChunkDataParser.cpp"

+ 0
- 46
extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_DLLMain.cpp View File

@@ -1,46 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include "juce_Wrapper_Header.h"
/*
This file is used to include and build a digidesign CPP file without your project needing to
reference the file directly. Because the file will be located via the include path, this means
that the project doesn't have to change to cope with people's SDKs being in different locations.
Note about include paths
If you get an error including this file, check your paths - there's a full list of
Digidesign paths in juce_RTASWrapper.cpp
*/
#if WINDOWS_VERSION
#include "DLLMain.cpp"
#endif

+ 0
- 46
extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_DefaultSwap.cpp View File

@@ -1,46 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include "juce_Wrapper_Header.h"
/*
This file is used to include and build a digidesign CPP file without your project needing to
reference the file directly. Because the file will be located via the include path, this means
that the project doesn't have to change to cope with people's SDKs being in different locations.
Note about include paths
If you get an error including this file, check your paths - there's a full list of
Digidesign paths in juce_RTASWrapper.cpp
*/
#if WINDOWS_VERSION
#include "DefaultSwap.cpp"
#endif

+ 0
- 40
extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_Dispatcher.cpp View File

@@ -1,40 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
/* This file is used to include and build a digidesign CPP file without your project needing to
reference the file directly. Because the file will be located via the include path, this means
that the project doesn't have to change to cope with people's SDKs being in different locations.
*/
#include "juce_Wrapper_Header.h"
#if ! WINDOWS_VERSION
#include "Dispatcher.cpp"
#endif

+ 0
- 45
extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_Header.h View File

@@ -1,45 +0,0 @@
/*
==============================================================================
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_WRAPPER_HEADER_JUCEHEADER__
#define __JUCE_WRAPPER_HEADER_JUCEHEADER__
#include "../juce_RTASCompileFlags.h"
#ifdef _MSC_VER
// the Digidesign projects all use a struct alignment of 2..
#pragma pack (2)
#pragma warning (disable: 4267 4996 4311 4312 4103)
#include "ForcedInclude.h"
#endif
#endif // __JUCE_WRAPPER_HEADER_JUCEHEADER__

+ 0
- 44
extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_PlugInUtils.cpp View File

@@ -1,44 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include "juce_Wrapper_Header.h"
/*
This file is used to include and build a digidesign CPP file without your project needing to
reference the file directly. Because the file will be located via the include path, this means
that the project doesn't have to change to cope with people's SDKs being in different locations.
Note about include paths
If you get an error including this file, check your paths - there's a full list of
Digidesign paths in juce_RTASWrapper.cpp
*/
#include "PlugInUtils.cpp"

+ 0
- 40
extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_PluginInitialize.cpp View File

@@ -1,40 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
/* This file is used to include and build a digidesign CPP file without your project needing to
reference the file directly. Because the file will be located via the include path, this means
that the project doesn't have to change to cope with people's SDKs being in different locations.
*/
#include "juce_Wrapper_Header.h"
#if ! WINDOWS_VERSION
#include "PlugInInitialize.cpp"
#endif

+ 0
- 173
extras/audio plugins/wrapper/formats/Standalone/juce_AudioFilterStreamer.cpp View File

@@ -1,173 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include "juce_AudioFilterStreamer.h"
#include "../../juce_IncludeCharacteristics.h"
//==============================================================================
AudioFilterStreamer::AudioFilterStreamer (AudioProcessor& filterToUse)
: filter (filterToUse),
isPlaying (false),
sampleRate (0),
emptyBuffer (1, 32)
{
filter.setPlayConfigDetails (JucePlugin_MaxNumInputChannels, JucePlugin_MaxNumOutputChannels, 0, 0);
filter.setPlayHead (this);
}
AudioFilterStreamer::~AudioFilterStreamer()
{
audioDeviceStopped();
}
void AudioFilterStreamer::audioDeviceIOCallback (const float** inputChannelData,
int totalNumInputChannels,
float** outputChannelData,
int totalNumOutputChannels,
int numSamples)
{
MidiBuffer midiBuffer;
midiCollector.removeNextBlockOfMessages (midiBuffer, numSamples);
int i, numActiveInChans = 0, numActiveOutChans = 0;
int numOutsWanted = filter.getNumOutputChannels();
const int numInsWanted = filter.getNumInputChannels();
for (i = 0; i < totalNumInputChannels; ++i)
if (inputChannelData[i] != 0)
inChans [numActiveInChans++] = (float*) inputChannelData[i];
while (numActiveInChans < numInsWanted)
inChans [numActiveInChans++] = emptyBuffer.getSampleData (0, 0);
for (i = 0; i < totalNumOutputChannels; ++i)
if (outputChannelData[i] != 0)
outChans [numActiveOutChans++] = outputChannelData[i];
i = 0;
while (numActiveOutChans < numOutsWanted)
outChans [numActiveOutChans++] = emptyBuffer.getSampleData (++i, 0);
AudioSampleBuffer input (inChans, jmin (numInsWanted, numActiveInChans), numSamples);
AudioSampleBuffer output (outChans, jmin (numOutsWanted, numActiveOutChans), numSamples);
{
const ScopedLock sl (filter.getCallbackLock());
if (filter.isSuspended())
{
output.clear();
}
else
{
for (int i = jmin (output.getNumChannels(), input.getNumChannels()); --i >= 0;)
output.copyFrom (i, 0, input, i, 0, numSamples);
filter.processBlock (output, midiBuffer);
}
}
while (numOutsWanted < numActiveOutChans)
zeromem (outChans[numOutsWanted++], sizeof (float) * numSamples);
}
void AudioFilterStreamer::audioDeviceAboutToStart (double sampleRate_,
int numSamplesPerBlock)
{
sampleRate = sampleRate_;
isPlaying = true;
emptyBuffer.setSize (1 + filter.getNumOutputChannels(),
jmax (2048, numSamplesPerBlock * 2));
emptyBuffer.clear();
midiCollector.reset (sampleRate);
filter.prepareToPlay (sampleRate, numSamplesPerBlock);
}
void AudioFilterStreamer::audioDeviceStopped()
{
isPlaying = false;
filter.releaseResources();
midiCollector.reset (sampleRate);
emptyBuffer.setSize (1, 32);
}
void AudioFilterStreamer::handleIncomingMidiMessage (MidiInput* source, const MidiMessage& message)
{
#if JucePlugin_WantsMidiInput
midiCollector.addMessageToQueue (message);
#endif
}
bool AudioFilterStreamer::getCurrentPosition (AudioPlayHead::CurrentPositionInfo& info)
{
return false;
}
//==============================================================================
AudioFilterStreamingDeviceManager::AudioFilterStreamingDeviceManager()
: streamer (0)
{
}
AudioFilterStreamingDeviceManager::~AudioFilterStreamingDeviceManager()
{
setFilter (0);
clearSingletonInstance();
}
void AudioFilterStreamingDeviceManager::setFilter (AudioProcessor* filterToStream)
{
if (streamer != 0)
{
removeMidiInputCallback (streamer);
setAudioCallback (0);
delete streamer;
streamer = 0;
}
if (filterToStream != 0)
{
streamer = new AudioFilterStreamer (*filterToStream);
setAudioCallback (streamer);
addMidiInputCallback (String::empty, streamer);
}
}
juce_ImplementSingleton (AudioFilterStreamingDeviceManager);

+ 0
- 128
extras/audio plugins/wrapper/formats/Standalone/juce_AudioFilterStreamer.h View File

@@ -1,128 +0,0 @@
/*
==============================================================================
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_AUDIOFILTERSTREAMER_JUCEHEADER__
#define __JUCE_AUDIOFILTERSTREAMER_JUCEHEADER__
#include "../../../../../juce.h"
//==============================================================================
/**
A class that wraps an AudioProcessor as an AudioIODeviceCallback, so its
output can be streamed directly to/from some audio and midi inputs and outputs.
To use it, just create an instance of this for your filter, and register it
as the callback with an AudioIODevice or AudioDeviceManager object.
To receive midi input in your filter, you should also register it as a
MidiInputCallback with a suitable MidiInput or an AudioDeviceManager.
And for an even easier way of doing a standalone plugin, see the
AudioFilterStreamingDeviceManager class...
*/
class AudioFilterStreamer : public AudioIODeviceCallback,
public MidiInputCallback,
public AudioPlayHead
{
public:
//==============================================================================
AudioFilterStreamer (AudioProcessor& filterToUse);
~AudioFilterStreamer();
//==============================================================================
void audioDeviceIOCallback (const float** inputChannelData,
int totalNumInputChannels,
float** outputChannelData,
int totalNumOutputChannels,
int numSamples);
void audioDeviceAboutToStart (double sampleRate, int numSamplesPerBlock);
void audioDeviceStopped();
void handleIncomingMidiMessage (MidiInput* source, const MidiMessage& message);
bool getCurrentPosition (AudioPlayHead::CurrentPositionInfo& info);
juce_UseDebuggingNewOperator
private:
//==============================================================================
AudioProcessor& filter;
bool isPlaying;
double sampleRate;
MidiMessageCollector midiCollector;
float* outChans [128];
float* inChans [128];
AudioSampleBuffer emptyBuffer;
};
//==============================================================================
/**
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);
//==============================================================================
juce_UseDebuggingNewOperator
private:
AudioFilterStreamer* streamer;
};
#endif // __JUCE_AUDIOFILTERSTREAMER_JUCEHEADER__

+ 0
- 301
extras/audio plugins/wrapper/formats/Standalone/juce_StandaloneFilterWindow.cpp View File

@@ -1,301 +0,0 @@
/*
==============================================================================
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.
==============================================================================
*/
#include "juce_StandaloneFilterWindow.h"
#include "../../juce_IncludeCharacteristics.h"
//==============================================================================
/** Somewhere in the codebase of your plugin, you need to implement this function
and make it create an instance of the filter subclass that you're building.
*/
extern AudioProcessor* JUCE_CALLTYPE createPluginFilter();
//==============================================================================
StandaloneFilterWindow::StandaloneFilterWindow (const String& title,
const Colour& backgroundColour)
: DocumentWindow (title, backgroundColour,
DocumentWindow::minimiseButton
| DocumentWindow::closeButton),
filter (0),
deviceManager (0),
optionsButton (0)
{
setTitleBarButtonsRequired (DocumentWindow::minimiseButton | DocumentWindow::closeButton, false);
PropertySet* const globalSettings = getGlobalSettings();
optionsButton = new TextButton (T("options"));
Component::addAndMakeVisible (optionsButton);
optionsButton->addButtonListener (this);
optionsButton->setTriggeredOnMouseDown (true);
JUCE_TRY
{
filter = createPluginFilter();
if (filter != 0)
{
deviceManager = new AudioFilterStreamingDeviceManager();
deviceManager->setFilter (filter);
XmlElement* savedState = 0;
if (globalSettings != 0)
savedState = globalSettings->getXmlValue (T("audioSetup"));
deviceManager->initialise (filter->getNumInputChannels(),
filter->getNumOutputChannels(),
savedState,
true);
delete savedState;
if (globalSettings != 0)
{
juce::MemoryBlock data;
if (data.fromBase64Encoding (globalSettings->getValue (T("filterState")))
&& data.getSize() > 0)
{
filter->setStateInformation (data.getData(), data.getSize());
}
}
setContentComponent (filter->createEditorIfNeeded(), true, true);
const int x = globalSettings->getIntValue (T("windowX"), -100);
const int y = globalSettings->getIntValue (T("windowY"), -100);
if (x != -100 && y != -100)
setBoundsConstrained (x, y, getWidth(), getHeight());
else
centreWithSize (getWidth(), getHeight());
}
}
JUCE_CATCH_ALL
if (deviceManager == 0)
{
jassertfalse // Your filter didn't create correctly! In a standalone app that's not too great.
JUCEApplication::quit();
}
}
StandaloneFilterWindow::~StandaloneFilterWindow()
{
PropertySet* const globalSettings = getGlobalSettings();
globalSettings->setValue (T("windowX"), getX());
globalSettings->setValue (T("windowY"), getY());
deleteAndZero (optionsButton);
if (globalSettings != 0 && deviceManager != 0)
{
XmlElement* const xml = deviceManager->createStateXml();
globalSettings->setValue (T("audioSetup"), xml);
delete xml;
}
deleteAndZero (deviceManager);
if (globalSettings != 0 && filter != 0)
{
juce::MemoryBlock data;
filter->getStateInformation (data);
globalSettings->setValue (T("filterState"), data.toBase64Encoding());
}
deleteFilter();
}
//==============================================================================
void StandaloneFilterWindow::deleteFilter()
{
if (deviceManager != 0)
deviceManager->setFilter (0);
if (filter != 0 && getContentComponent() != 0)
{
filter->editorBeingDeleted (dynamic_cast <AudioProcessorEditor*> (getContentComponent()));
setContentComponent (0, true);
}
deleteAndZero (filter);
}
void StandaloneFilterWindow::resetFilter()
{
deleteFilter();
filter = createPluginFilter();
if (filter != 0)
{
if (deviceManager != 0)
deviceManager->setFilter (filter);
setContentComponent (filter->createEditorIfNeeded(), true, true);
}
PropertySet* const globalSettings = getGlobalSettings();
if (globalSettings != 0)
globalSettings->removeValue (T("filterState"));
}
//==============================================================================
void StandaloneFilterWindow::saveState()
{
PropertySet* const globalSettings = getGlobalSettings();
FileChooser fc (TRANS("Save current state"),
globalSettings != 0 ? File (globalSettings->getValue (T("lastStateFile")))
: File::nonexistent);
if (fc.browseForFileToSave (true))
{
juce::MemoryBlock data;
filter->getStateInformation (data);
if (! fc.getResult().replaceWithData (data.getData(), data.getSize()))
{
AlertWindow::showMessageBox (AlertWindow::WarningIcon,
TRANS("Error whilst saving"),
TRANS("Couldn't write to the specified file!"));
}
}
}
void StandaloneFilterWindow::loadState()
{
PropertySet* const globalSettings = getGlobalSettings();
FileChooser fc (TRANS("Load a saved state"),
globalSettings != 0 ? File (globalSettings->getValue (T("lastStateFile")))
: File::nonexistent);
if (fc.browseForFileToOpen())
{
juce::MemoryBlock data;
if (fc.getResult().loadFileAsData (data))
{
filter->setStateInformation (data.getData(), data.getSize());
}
else
{
AlertWindow::showMessageBox (AlertWindow::WarningIcon,
TRANS("Error whilst loading"),
TRANS("Couldn't read from the specified file!"));
}
}
}
//==============================================================================
PropertySet* StandaloneFilterWindow::getGlobalSettings()
{
/* If you want this class to store the plugin's settings, you can set up an
ApplicationProperties object and use this method as it is, or override this
method to return your own custom PropertySet.
If using this method without changing it, you'll probably need to call
ApplicationProperties::setStorageParameters() in your plugin's constructor to
tell it where to save the file.
*/
return ApplicationProperties::getInstance()->getUserSettings();
}
void StandaloneFilterWindow::showAudioSettingsDialog()
{
AudioDeviceSelectorComponent selectorComp (*deviceManager,
filter->getNumInputChannels(),
filter->getNumInputChannels(),
filter->getNumOutputChannels(),
filter->getNumOutputChannels(),
true, false);
selectorComp.setSize (500, 350);
DialogWindow::showModalDialog (TRANS("Audio Settings"), &selectorComp, this, Colours::lightgrey, true, false, false);
}
//==============================================================================
void StandaloneFilterWindow::closeButtonPressed()
{
JUCEApplication::quit();
}
void StandaloneFilterWindow::resized()
{
DocumentWindow::resized();
if (optionsButton != 0)
optionsButton->setBounds (8, 6, 60, getTitleBarHeight() - 8);
}
void StandaloneFilterWindow::buttonClicked (Button*)
{
if (filter == 0)
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))
{
case 1:
showAudioSettingsDialog();
break;
case 2:
saveState();
break;
case 3:
loadState();
break;
case 4:
resetFilter();
break;
default:
break;
}
}

+ 0
- 96
extras/audio plugins/wrapper/formats/Standalone/juce_StandaloneFilterWindow.h View File

@@ -1,96 +0,0 @@
/*
==============================================================================
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_STANDALONEFILTERWINDOW_JUCEHEADER__
#define __JUCE_STANDALONEFILTERWINDOW_JUCEHEADER__
#include "juce_AudioFilterStreamer.h"
//==============================================================================
/**
A class that can be used to run a simple standalone application containing your filter.
Just create one of these objects in your JUCEApplication::initialise() method, and
let it do its work. It will create your filter object using the same createFilter() function
that the other plugin wrappers use.
*/
class StandaloneFilterWindow : public DocumentWindow,
public ButtonListener
{
public:
//==============================================================================
StandaloneFilterWindow (const String& title,
const Colour& backgroundColour);
~StandaloneFilterWindow();
//==============================================================================
/** Deletes and re-creates the filter and its UI. */
void resetFilter();
/** Pops up a dialog letting the user save the filter's state to a file. */
void saveState();
/** Pops up a dialog letting the user re-load the filter's state from a file. */
void loadState();
/** Shows the audio properties dialog box modally. */
virtual void showAudioSettingsDialog();
/** Returns the property set to use for storing the app's last state.
This will be used to store the audio set-up and the filter's last state.
*/
virtual PropertySet* getGlobalSettings();
//==============================================================================
/** @internal */
void closeButtonPressed();
/** @internal */
void buttonClicked (Button*);
/** @internal */
void resized();
juce_UseDebuggingNewOperator
private:
AudioProcessor* filter;
AudioFilterStreamingDeviceManager* deviceManager;
Button* optionsButton;
void deleteFilter();
StandaloneFilterWindow (const StandaloneFilterWindow&);
const StandaloneFilterWindow& operator= (const StandaloneFilterWindow&);
};
#endif // __JUCE_STANDALONEFILTERWINDOW_JUCEHEADER__

+ 0
- 1529
extras/audio plugins/wrapper/formats/VST/juce_VstWrapper.cpp
File diff suppressed because it is too large
View File


+ 0
- 98
extras/audio plugins/wrapper/juce_IncludeCharacteristics.h View File

@@ -1,98 +0,0 @@
/*
==============================================================================
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_INCLUDECHARACTERISTICS_JUCEHEADER__
#define __JUCE_INCLUDECHARACTERISTICS_JUCEHEADER__
//==============================================================================
/* The JucePluginCharacteristics.h file is supposed to live in your plugin-specific
project directory, and has to contain info describing its name, type, etc. For
more info, see the JucePluginCharacteristics.h that is included in the demo plugin.
You may need to adjust the include path of your project to make sure it can be
found by this include statement. (Don't hack this file to change the include path)
*/
#include "JucePluginCharacteristics.h"
//==============================================================================
// The following stuff is just to cause a compile error if you've forgotten to
// define all your plugin settings properly.
#ifndef JucePlugin_IsSynth
#error "You need to define the JucePlugin_IsSynth value in your JucePluginCharacteristics.h file!"
#endif
#ifndef JucePlugin_ManufacturerCode
#error "You need to define the JucePlugin_ManufacturerCode value in your JucePluginCharacteristics.h file!"
#endif
#ifndef JucePlugin_PluginCode
#error "You need to define the JucePlugin_PluginCode value in your JucePluginCharacteristics.h file!"
#endif
#ifndef JucePlugin_ProducesMidiOutput
#error "You need to define the JucePlugin_ProducesMidiOutput value in your JucePluginCharacteristics.h file!"
#endif
#ifndef JucePlugin_WantsMidiInput
#error "You need to define the JucePlugin_WantsMidiInput value in your JucePluginCharacteristics.h file!"
#endif
#ifndef JucePlugin_MaxNumInputChannels
#error "You need to define the JucePlugin_MaxNumInputChannels value in your JucePluginCharacteristics.h file!"
#endif
#ifndef JucePlugin_MaxNumOutputChannels
#error "You need to define the JucePlugin_MaxNumOutputChannels value in your JucePluginCharacteristics.h file!"
#endif
#ifndef JucePlugin_PreferredChannelConfigurations
#error "You need to define the JucePlugin_PreferredChannelConfigurations value in your JucePluginCharacteristics.h file!"
#endif
#ifdef JucePlugin_Latency
#error "JucePlugin_Latency is now deprecated - instead, call the AudioProcessor::setLatencySamples() method if your plugin has a non-zero delay"
#endif
#ifndef JucePlugin_SilenceInProducesSilenceOut
#error "You need to define the JucePlugin_SilenceInProducesSilenceOut value in your JucePluginCharacteristics.h file!"
#endif
#ifndef JucePlugin_EditorRequiresKeyboardFocus
#error "You need to define the JucePlugin_EditorRequiresKeyboardFocus value in your JucePluginCharacteristics.h file!"
#endif
#if JUCE_USE_VSTSDK_2_4 != 0 && JUCE_USE_VSTSDK_2_4 != 1
#error "You need to define the JUCE_USE_VSTSDK_2_4 value in your JucePluginCharacteristics.h file!"
#endif
#endif // __JUCE_INCLUDECHARACTERISTICS_JUCEHEADER__

Loading…
Cancel
Save