| @@ -1,272 +1,289 @@ | |||
| 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. | |||
| The Juce Polymorphic Plugin Project! | |||
| ==================================== | |||
| (c) 2008 by Raw Material Software, visit www.rawmaterialsoftware.com for more info. | |||
| ----------------------------------------------------------------------------------------------------- | |||
| The purpose of this framework is to make is simple to write an audio plugin in a generic | |||
| way, which can then be compiled as a VST, AudioUnit, RTAS, or any combination of these. | |||
| It's "polymorphic" because the output is a single binary module that acts as all of the | |||
| different plugin formats at the same time. This means that you only need to maintain one | |||
| project, and only need to perform one build to create a multi-format plugin. | |||
| Also included are some helper classes that make it easy to create a stand-alone app to | |||
| run your plugin without a host. This might be useful in its own right, but can also be very | |||
| handy when developing your plugin, because you can build, test and debug it without needing | |||
| to keep restarting a 3rd-party host. | |||
| How does it work? | |||
| ================= | |||
| To create your plugin, you just create a subclass of the AudioPluginInstance class to | |||
| perform the processing. And your plugin UI is written like any normal Juce UI component. | |||
| All the platform-specific code is hidden away in wrapper classes that you just add to | |||
| your project - you should (hopefully) never need to even see the inner workings of these. | |||
| 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. | |||
| Getting Started | |||
| =============== | |||
| There's also a 'demo' folder - this contains an example plugin which can be built in all | |||
| the different formats. | |||
| 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 demo plugin 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. | |||
| ----------------------------------------------------------------------------------------------------- | |||
| Prerequisites for building a VST | |||
| ================================ | |||
| - 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. | |||
| ----------------------------------------------------------------------------------------------------- | |||
| Prerequisites for building an RTAS | |||
| ================================== | |||
| - 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. | |||
| - In Visual Studio: Add all of these 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 | |||
| - In Visual Studio: Using the Digidesign demo projects in the SDK, make sure you've compiled | |||
| debug and release versions of the following static libraries: | |||
| DAE.lib, DigiExt.lib, DSI.lib, PlugInLib.lib. | |||
| - In XCode: After installing the Digidesign SDK, make sure you've run the config_SDK_for_Mac | |||
| command in the SDK's root directory. This sets up some of the tools that it needs. | |||
| ----------------------------------------------------------------------------------------------------- | |||
| Choosing the formats to build | |||
| ============================= | |||
| Each plugin project needs to contain a JucePluginCharacteristics.h file, which holds all the | |||
| plugin-specific build details. In here, there are three macros that you can set to enable each | |||
| of the available formats: | |||
| #define JucePlugin_Build_VST 1 | |||
| #define JucePlugin_Build_RTAS 1 | |||
| #define JucePlugin_Build_AU 1 | |||
| You can set these to 0 to disable the formats that you don't want to build, and this will avoid | |||
| any compilation problems if, for example, you don't have the appropriate SDK for a particular format. | |||
| ----------------------------------------------------------------------------------------------------- | |||
| Creating a PC VST/RTAS plugin in Visual Studio | |||
| ============================================== | |||
| - First try loading the VST demo project in JuceAudioPlugin/demo/build. Hopefully this | |||
| should build correctly. | |||
| - Create a new, empty, win32 project using Visual Studio. Choose "DLL" as the type of | |||
| product to build | |||
| - If building an RTAS, add to your project all the juce_RTAS_*.cpp files from the wrapper/RTAS folder. | |||
| - If building a VST, add to your project all the juce_VST_*.cpp files from the wrapper/VST folder. | |||
| - Create yourself a JucePluginCharacteristics.h file, starting with a copy of the one in the | |||
| demo project. Go through each item inside it carefully, and set them to the appropriate value | |||
| for your plugin. | |||
| - Under "Additional Include Directories", add the folder in which you're going to put | |||
| your JucePluginCharacteristics.h file. | |||
| - If you're doing an RTAS, change these project settings (these can all be ignored if you're only doing a VST): | |||
| - Set "C++/Code Generation/Runtime Library" to be "Multi-threaded DLL" or "Multi-threaded Debug DLL" | |||
| - Set the "Linker/Input/Module Definition file" to point to "wrapper/RTAS/juce_RTAS_WinExports.def" | |||
| - Under "Linker/Input/Delay loaded DLLs", add the following: | |||
| "DAE.dll; DigiExt.dll; DSI.dll; PluginLib.dll; DSPManager.dll" | |||
| - You may (or may not) need to add "libcmtd.lib; libcmt.lib" to the "Linker/Input/Ignore Specific Library" setting. | |||
| - For ONLY the following files: | |||
| juce_RTAS_Wrapper.cpp, juce_RTAS_DigiCode1.cpp, juce_RTAS_DigiCode2.cpp, juce_RTAS_DigiCode3.cpp, | |||
| change their "C++/Advanced/Calling Convention" property to "__stdcall". All other files should | |||
| be left with the default calling convention of "__cdecl" | |||
| - Set the "Linker/General/Output File" property to "$(OutDir)\$(ProjectName).dpm" (If you're building | |||
| a polymorphic VST/RTAS, then you can simply copy or rename the finished .dpm file to a .dll, and | |||
| it'll function as a VST) | |||
| - Under "Custom build step", add the following command: | |||
| copy /Y "\yourdirectory\juce\extras\audio plugins\wrapper\RTAS\juce_RTAS_WinResources.rsr" "$(TargetPath)".rsr | |||
| The corresponding "Outputs" setting for this must be set to "$(TargetPath)".rsr | |||
| (This will copy and rename the juce_RTAS_WinResources.rsr file to sit next to the finished .dpm file. It's | |||
| a dummy resource file, but PT will refuse to load the plugin unless it has a corresponding .rsr file) | |||
| - Because the RTAS code duplicates some win32 constants, you might need to force it to link correctly | |||
| by adding "/FORCE:multiple" to the linker's additional command line options. | |||
| - 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 | |||
| - When setting properties, remember to change them for both your debug and release builds! | |||
| - Create your actual plugin classes and add them to the project. Obviously this is the hard bit! | |||
| - Add the amalgamated juce source file to the project - have a look at the demo app for neat ways of doing this. | |||
| - NOTE: on Windows, because RTAS uses the altura mac-style code, there are annoying clashes caused if | |||
| you also include the Apple QuickTime headers, so you might need to turn off quicktime by setting the | |||
| juce config macro: #define JUCE_QUICKTIME 0 | |||
| - 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 Mac AU/VST/RTAS plugin in XCode | |||
| ========================================== | |||
| - For an AU, make sure that the JucePlugin_Build_AU is enabled in your JucePluginCharacteristics.h | |||
| - In XCode, create a new project based on the "Audio Unit Effect" template | |||
| - XCode will create a bunch of template source files for you - you can remove all of these from the project | |||
| and delete them | |||
| - In the target settings, clear the "Exported Symbols File" setting. The exports are specified by directives | |||
| within the wrapper code, so don't need to be listed explicitly. | |||
| - All all the Apple frameworks that Juce normally requires to the "External Frameworks" list | |||
| - Add all the juce_AU_* files from the /wrapper/AU directory to your project | |||
| - The template project creates an AUPublic group that contains lots of AudioUnit source files. But | |||
| it leaves out files that it thinks you might not need, e.g. if you chose an "Audio Unit Effect" project, | |||
| then it won't add the classes for handling MIDI. So you'll probably need to go into this folder | |||
| and check that it contains AUMIDIBase.cpp, AUMidiEffectBase.cpp, MusicDeviceBase.cpp, etc | |||
| - As for the PC, you'll need to make sure your project contains a correctly set-up JucePluginCharacteristics.h | |||
| file - start with a copy of the one in the demo plugin project, and go through it making sure that | |||
| all the values make sense for your plugin. | |||
| - Create your actual plugin classes and add them to the project. Obviously this is the hard bit! | |||
| You should now be able to build a functional AU! If you want VST support as well, then read on... | |||
| - Make sure that the JucePlugin_Build_VST is enabled in your JucePluginCharacteristics.h | |||
| - For VST support, add all the juce_VST_* files from /wrapper/VST | |||
| - In your target info settings, add the vstsdk2_4 folder to your "Header Search Paths" list | |||
| - Make sure that in your Info.plist, the "Bundle Name" value is correctly set to the name of your plugin. | |||
| Now, if you compile, the resulting bundle should work as both a VST and AU - you can simply copy or rename it, | |||
| changing the suffix to ".vst", and put it in your VST folder. | |||
| If you also want to build an RTAS, then carry on reading... | |||
| - Make sure that the JucePlugin_Build_RTAS is enabled in your JucePluginCharacteristics.h | |||
| - 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. | |||
| - Add the files from /wrapper/RTAS to your project. Obviously a couple of these are for Windows, so | |||
| you shouldn't add those | |||
| - In the Digi SDK, in /AlturaPorts/TDMPlugins/common/mac, there are two config files: | |||
| CommonDebugSettings.xconfig and CommonReleaseSettings.xconfig | |||
| These contain lots of Digi hackery to get their stuff to compile, so you should add them to your project | |||
| and change your project's settings to use these files as their base config. Even so, it's all a bit of a mess, | |||
| and you may need to tweak them a bit to get it to work on your system. | |||
| - In your target settings, add a custom build setting called "MacBag", and set this to the path where the | |||
| "MacBag" folder of the Digi SDK lives. | |||
| - Add the following to your "Header Search Paths" setting (it's easiest to copy-and-paste this setting from | |||
| the demo project): | |||
| "$(MacBag)/../AlturaPorts/TDMPlugIns/PlugInLibrary/**" | |||
| "$(MacBag)/../AlturaPorts/TDMPlugIns/DSPManager/**" | |||
| "$(MacBag)/../AlturaPorts/TDMPlugIns/SupplementalPlugInLib/Encryption" | |||
| "$(MacBag)/../AlturaPorts/TDMPlugIns/SupplementalPlugInLib/GraphicsExtensions" | |||
| "$(MacBag)/../AlturaPorts/TDMPlugIns/common" | |||
| "$(MacBag)/../AlturaPorts/TDMPlugIns/common/PI_LibInterface" | |||
| "$(MacBag)/../AlturaPorts/TDMPlugIns/PACEProtection/**" | |||
| "$(MacBag)/../AlturaPorts/OMS/Headers" | |||
| "$(MacBag)/../AlturaPorts/Fic/Interfaces/**" | |||
| "$(MacBag)/../AlturaPorts/Fic/Source/SignalNets" | |||
| "$(MacBag)/../AlturaPorts/DSIPublicInterface/PublicHeaders" | |||
| "$(MacBag)/../DAEWin/Include" | |||
| "$(MacBag)/../AlturaPorts/DigiPublic/Interfaces" | |||
| "$(MacBag)/../AlturaPorts/DigiPublic" | |||
| "$(MacBag)/../AlturaPorts/NewFileLibs/DOA" | |||
| "$(MacBag)/../AlturaPorts/NewFileLibs/Cmn" | |||
| "$(MacBag)/../AlturaPorts/TDMPlugIns/SignalProcessing/**" | |||
| "$(MacBag)/../AvidCode/AVX2sdk/AVX/avx2/avx2sdk/inc" | |||
| "$(MacBag)/../AvidCode/AVX2sdk/AVX/avx2/avx2sdk/utils" | |||
| - If you get include errors compiling some of the DigiDesign code, you may need to | |||
| add "/Developer/Headers/FlatCarbon" to your header search path. | |||
| - In the SDK, find the PluginLibrary.xcodeproj file, and add this to your "External frameworks and Libraries". | |||
| If you've already compiled this library, you can open its item in your XCode project treeview, to find | |||
| the "libPluginLibrary.a" item inside it. Drag this subitem down to your Target/"Link Binary With Libraries" | |||
| build stage and drop it there to add it to the link process. | |||
| - In your Info.plist, change the "Bundle OS Type Code" to "TDMw", and the "Bundle Creator OS Type Code" to | |||
| "PTul". | |||
| You should now be able to build an RTAS! Again, just renaming the finished bundle to ".dpm" and | |||
| putting it in your RTAS folder should be do the trick. | |||
| If you get any weird build problems, a good tip is to try comparing the demo plugin's build settings with your | |||
| own - this should usually show up what's missing. | |||
| 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). | |||
| @@ -0,0 +1,55 @@ | |||
| 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/VST/*.cpp" | |||
| ), | |||
| matchrecursive ( | |||
| "../../src/*.h", | |||
| "../../src/*.cpp" | |||
| ) | |||
| } | |||
| @@ -0,0 +1,28 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE plist PUBLIC "-//Apple//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>CFBundleIconFile</key> | |||
| <string></string> | |||
| <key>CFBundleIdentifier</key> | |||
| <string>com.rawmaterialsoftware.${PRODUCT_NAME:identifier}</string> | |||
| <key>CFBundleName</key> | |||
| <string>${PRODUCT_NAME}</string> | |||
| <key>CFBundleInfoDictionaryVersion</key> | |||
| <string>6.0</string> | |||
| <key>CFBundlePackageType</key> | |||
| <string>BNDL</string> | |||
| <key>CFBundleShortVersionString</key> | |||
| <string>1.1</string> | |||
| <key>CFBundleSignature</key> | |||
| <string>????</string> | |||
| <key>CFBundleVersion</key> | |||
| <string>1.1</string> | |||
| <key>CSResourcesFileMapped</key> | |||
| <true/> | |||
| </dict> | |||
| </plist> | |||
| @@ -0,0 +1,713 @@ | |||
| // !$*UTF8*$! | |||
| { | |||
| archiveVersion = 1; | |||
| classes = { | |||
| }; | |||
| objectVersion = 45; | |||
| objects = { | |||
| /* Begin PBXBuildFile section */ | |||
| 3EEA126E089847F5002C6BFC /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */; }; | |||
| 3EEA126F089847F5002C6BFC /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */; }; | |||
| 3EEA1270089847F5002C6BFC /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */; }; | |||
| 843792AA0EFBF14B002A2725 /* DemoEditorComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843792A20EFBF14B002A2725 /* DemoEditorComponent.cpp */; }; | |||
| 843792AB0EFBF14B002A2725 /* DemoEditorComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 843792A30EFBF14B002A2725 /* DemoEditorComponent.h */; }; | |||
| 843792AC0EFBF14B002A2725 /* DemoJuceFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843792A40EFBF14B002A2725 /* DemoJuceFilter.cpp */; }; | |||
| 843792AD0EFBF14B002A2725 /* DemoJuceFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 843792A50EFBF14B002A2725 /* DemoJuceFilter.h */; }; | |||
| 843792AE0EFBF14B002A2725 /* includes.h in Headers */ = {isa = PBXBuildFile; fileRef = 843792A60EFBF14B002A2725 /* includes.h */; }; | |||
| 843792AF0EFBF14B002A2725 /* juce_AppConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 843792A70EFBF14B002A2725 /* juce_AppConfig.h */; }; | |||
| 843792B00EFBF14B002A2725 /* juce_LibrarySource.mm in Sources */ = {isa = PBXBuildFile; fileRef = 843792A80EFBF14B002A2725 /* juce_LibrarySource.mm */; }; | |||
| 843792B10EFBF14B002A2725 /* JucePluginCharacteristics.h in Headers */ = {isa = PBXBuildFile; fileRef = 843792A90EFBF14B002A2725 /* JucePluginCharacteristics.h */; }; | |||
| 843792B50EFBF175002A2725 /* juce_AU_Resources.r in Rez */ = {isa = PBXBuildFile; fileRef = 843792B30EFBF175002A2725 /* juce_AU_Resources.r */; }; | |||
| 843792B60EFBF175002A2725 /* juce_AU_Wrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 843792B40EFBF175002A2725 /* juce_AU_Wrapper.mm */; }; | |||
| 8437956E0EFBF323002A2725 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 843795630EFBF323002A2725 /* AudioToolbox.framework */; }; | |||
| 8437956F0EFBF323002A2725 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 843795640EFBF323002A2725 /* AudioUnit.framework */; }; | |||
| 843795700EFBF323002A2725 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 843795650EFBF323002A2725 /* Cocoa.framework */; }; | |||
| 843795710EFBF323002A2725 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 843795660EFBF323002A2725 /* OpenGL.framework */; }; | |||
| 843795720EFBF323002A2725 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 843795670EFBF323002A2725 /* IOKit.framework */; }; | |||
| 843795730EFBF323002A2725 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 843795680EFBF323002A2725 /* Carbon.framework */; }; | |||
| 843795740EFBF323002A2725 /* CoreMIDI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 843795690EFBF323002A2725 /* CoreMIDI.framework */; }; | |||
| 843795750EFBF323002A2725 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8437956A0EFBF323002A2725 /* CoreAudio.framework */; }; | |||
| 843795760EFBF323002A2725 /* DiscRecording.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8437956B0EFBF323002A2725 /* DiscRecording.framework */; }; | |||
| 843795770EFBF323002A2725 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8437956C0EFBF323002A2725 /* QTKit.framework */; }; | |||
| 843795780EFBF323002A2725 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8437956D0EFBF323002A2725 /* WebKit.framework */; }; | |||
| 843796690EFBF357002A2725 /* AUMIDIBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8437965F0EFBF357002A2725 /* AUMIDIBase.cpp */; }; | |||
| 8437966A0EFBF357002A2725 /* AUMIDIBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 843796600EFBF357002A2725 /* AUMIDIBase.h */; }; | |||
| 8437966B0EFBF357002A2725 /* AUMIDIEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843796610EFBF357002A2725 /* AUMIDIEffectBase.cpp */; }; | |||
| 8437966C0EFBF357002A2725 /* AUMIDIEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 843796620EFBF357002A2725 /* AUMIDIEffectBase.h */; }; | |||
| 8437966D0EFBF357002A2725 /* AUOutputBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843796630EFBF357002A2725 /* AUOutputBase.cpp */; }; | |||
| 8437966E0EFBF357002A2725 /* AUOutputBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 843796640EFBF357002A2725 /* AUOutputBase.h */; }; | |||
| 843796710EFBF357002A2725 /* MusicDeviceBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843796670EFBF357002A2725 /* MusicDeviceBase.cpp */; }; | |||
| 843796720EFBF357002A2725 /* MusicDeviceBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 843796680EFBF357002A2725 /* MusicDeviceBase.h */; }; | |||
| 843796750EFBF416002A2725 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 843796740EFBF416002A2725 /* CoreFoundation.framework */; }; | |||
| 8437967F0EFBF5E4002A2725 /* juce_VST_Wrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8437967D0EFBF5E4002A2725 /* juce_VST_Wrapper.cpp */; }; | |||
| 843796800EFBF5E4002A2725 /* juce_VST_Wrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8437967E0EFBF5E4002A2725 /* juce_VST_Wrapper.mm */; }; | |||
| 843796DC0EFBFD16002A2725 /* juce_RTAS_DigiCode1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843796D50EFBFD16002A2725 /* juce_RTAS_DigiCode1.cpp */; }; | |||
| 843796DD0EFBFD16002A2725 /* juce_RTAS_DigiCode2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843796D60EFBFD16002A2725 /* juce_RTAS_DigiCode2.cpp */; }; | |||
| 843796DE0EFBFD16002A2725 /* juce_RTAS_DigiCode3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843796D70EFBFD16002A2725 /* juce_RTAS_DigiCode3.cpp */; }; | |||
| 843796DF0EFBFD16002A2725 /* juce_RTAS_DigiCode_Header.h in Headers */ = {isa = PBXBuildFile; fileRef = 843796D80EFBFD16002A2725 /* juce_RTAS_DigiCode_Header.h */; }; | |||
| 843796E00EFBFD16002A2725 /* juce_RTAS_MacResources.r in Rez */ = {isa = PBXBuildFile; fileRef = 843796D90EFBFD16002A2725 /* juce_RTAS_MacResources.r */; }; | |||
| 843796E10EFBFD16002A2725 /* juce_RTAS_MacUtilities.mm in Sources */ = {isa = PBXBuildFile; fileRef = 843796DA0EFBFD16002A2725 /* juce_RTAS_MacUtilities.mm */; }; | |||
| 843796E20EFBFD16002A2725 /* juce_RTAS_Wrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843796DB0EFBFD16002A2725 /* juce_RTAS_Wrapper.cpp */; }; | |||
| 843796F60EFC0102002A2725 /* CommonDebugSettings.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 843796F40EFC0102002A2725 /* CommonDebugSettings.xcconfig */; }; | |||
| 843796F70EFC0102002A2725 /* CommonReleaseSettings.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 843796F50EFC0102002A2725 /* CommonReleaseSettings.xcconfig */; }; | |||
| 843797050EFC0269002A2725 /* libPluginLibrary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 843797030EFC022E002A2725 /* libPluginLibrary.a */; }; | |||
| 8BA05AAE072073D300365D66 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A7F072073D200365D66 /* AUBase.cpp */; }; | |||
| 8BA05AAF072073D300365D66 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A80072073D200365D66 /* AUBase.h */; }; | |||
| 8BA05AB0072073D300365D66 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A81072073D200365D66 /* AUDispatch.cpp */; }; | |||
| 8BA05AB1072073D300365D66 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A82072073D200365D66 /* AUDispatch.h */; }; | |||
| 8BA05AB2072073D300365D66 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A83072073D200365D66 /* AUInputElement.cpp */; }; | |||
| 8BA05AB3072073D300365D66 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A84072073D200365D66 /* AUInputElement.h */; }; | |||
| 8BA05AB4072073D300365D66 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A85072073D200365D66 /* AUOutputElement.cpp */; }; | |||
| 8BA05AB5072073D300365D66 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A86072073D200365D66 /* AUOutputElement.h */; }; | |||
| 8BA05AB7072073D300365D66 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A88072073D200365D66 /* AUScopeElement.cpp */; }; | |||
| 8BA05AB8072073D300365D66 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A89072073D200365D66 /* AUScopeElement.h */; }; | |||
| 8BA05AB9072073D300365D66 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A8A072073D200365D66 /* ComponentBase.cpp */; }; | |||
| 8BA05ABA072073D300365D66 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A8B072073D200365D66 /* ComponentBase.h */; }; | |||
| 8BA05AC6072073D300365D66 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */; }; | |||
| 8BA05AC7072073D300365D66 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A9B072073D200365D66 /* AUEffectBase.h */; }; | |||
| 8BA05AD2072073D300365D66 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AA7072073D200365D66 /* AUBuffer.cpp */; }; | |||
| 8BA05AD3072073D300365D66 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AA8072073D200365D66 /* AUBuffer.h */; }; | |||
| 8BA05AD4072073D300365D66 /* AUDebugDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */; }; | |||
| 8BA05AD5072073D300365D66 /* AUDebugDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */; }; | |||
| 8BA05AD6072073D300365D66 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */; }; | |||
| 8BA05AD7072073D300365D66 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */; }; | |||
| 8BA05AD8072073D300365D66 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */; }; | |||
| 8BA05AE50720742100365D66 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */; }; | |||
| 8BA05AE60720742100365D66 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */; }; | |||
| 8BA05AE70720742100365D66 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AE10720742100365D66 /* CAMutex.cpp */; }; | |||
| 8BA05AE80720742100365D66 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE20720742100365D66 /* CAMutex.h */; }; | |||
| 8BA05AE90720742100365D66 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */; }; | |||
| 8BA05AEA0720742100365D66 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */; }; | |||
| 8BA05B070720754400365D66 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05B050720754400365D66 /* CAAUParameter.cpp */; }; | |||
| 8BA05B080720754400365D66 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05B060720754400365D66 /* CAAUParameter.h */; }; | |||
| 8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; }; | |||
| /* End PBXBuildFile section */ | |||
| /* Begin PBXContainerItemProxy section */ | |||
| 843797020EFC022E002A2725 /* PBXContainerItemProxy */ = { | |||
| isa = PBXContainerItemProxy; | |||
| containerPortal = 843796FE0EFC022E002A2725 /* PluginLibrary.xcodeproj */; | |||
| proxyType = 2; | |||
| remoteGlobalIDString = B65B09B30860FB0800FE2E6A; | |||
| remoteInfo = "Plugin Library"; | |||
| }; | |||
| /* End PBXContainerItemProxy section */ | |||
| /* Begin PBXFileReference section */ | |||
| 089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; }; | |||
| 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; }; | |||
| 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; }; | |||
| 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; }; | |||
| 843792A20EFBF14B002A2725 /* DemoEditorComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DemoEditorComponent.cpp; path = ../../src/DemoEditorComponent.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 843792A30EFBF14B002A2725 /* DemoEditorComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DemoEditorComponent.h; path = ../../src/DemoEditorComponent.h; sourceTree = SOURCE_ROOT; }; | |||
| 843792A40EFBF14B002A2725 /* DemoJuceFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DemoJuceFilter.cpp; path = ../../src/DemoJuceFilter.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 843792A50EFBF14B002A2725 /* DemoJuceFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DemoJuceFilter.h; path = ../../src/DemoJuceFilter.h; sourceTree = SOURCE_ROOT; }; | |||
| 843792A60EFBF14B002A2725 /* includes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = includes.h; path = ../../src/includes.h; sourceTree = SOURCE_ROOT; }; | |||
| 843792A70EFBF14B002A2725 /* juce_AppConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = juce_AppConfig.h; path = ../../src/juce_AppConfig.h; sourceTree = SOURCE_ROOT; }; | |||
| 843792A80EFBF14B002A2725 /* juce_LibrarySource.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_LibrarySource.mm; path = ../../src/juce_LibrarySource.mm; sourceTree = SOURCE_ROOT; }; | |||
| 843792A90EFBF14B002A2725 /* JucePluginCharacteristics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JucePluginCharacteristics.h; path = ../../src/JucePluginCharacteristics.h; sourceTree = SOURCE_ROOT; }; | |||
| 843792B30EFBF175002A2725 /* juce_AU_Resources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; name = juce_AU_Resources.r; path = ../../../wrapper/AU/juce_AU_Resources.r; sourceTree = SOURCE_ROOT; }; | |||
| 843792B40EFBF175002A2725 /* juce_AU_Wrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_AU_Wrapper.mm; path = ../../../wrapper/AU/juce_AU_Wrapper.mm; sourceTree = SOURCE_ROOT; }; | |||
| 843795630EFBF323002A2725 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; }; | |||
| 843795640EFBF323002A2725 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; }; | |||
| 843795650EFBF323002A2725 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; }; | |||
| 843795660EFBF323002A2725 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; }; | |||
| 843795670EFBF323002A2725 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; }; | |||
| 843795680EFBF323002A2725 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; }; | |||
| 843795690EFBF323002A2725 /* CoreMIDI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = /System/Library/Frameworks/CoreMIDI.framework; sourceTree = "<absolute>"; }; | |||
| 8437956A0EFBF323002A2725 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; }; | |||
| 8437956B0EFBF323002A2725 /* DiscRecording.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = /System/Library/Frameworks/DiscRecording.framework; sourceTree = "<absolute>"; }; | |||
| 8437956C0EFBF323002A2725 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = "<absolute>"; }; | |||
| 8437956D0EFBF323002A2725 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = /System/Library/Frameworks/WebKit.framework; sourceTree = "<absolute>"; }; | |||
| 8437965F0EFBF357002A2725 /* AUMIDIBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AUMIDIBase.cpp; path = Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIBase.cpp; sourceTree = DEVELOPER_DIR; }; | |||
| 843796600EFBF357002A2725 /* AUMIDIBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AUMIDIBase.h; path = Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIBase.h; sourceTree = DEVELOPER_DIR; }; | |||
| 843796610EFBF357002A2725 /* AUMIDIEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AUMIDIEffectBase.cpp; path = Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIEffectBase.cpp; sourceTree = DEVELOPER_DIR; }; | |||
| 843796620EFBF357002A2725 /* AUMIDIEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AUMIDIEffectBase.h; path = Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIEffectBase.h; sourceTree = DEVELOPER_DIR; }; | |||
| 843796630EFBF357002A2725 /* AUOutputBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AUOutputBase.cpp; path = Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/AUOutputBase.cpp; sourceTree = DEVELOPER_DIR; }; | |||
| 843796640EFBF357002A2725 /* AUOutputBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AUOutputBase.h; path = Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/AUOutputBase.h; sourceTree = DEVELOPER_DIR; }; | |||
| 843796670EFBF357002A2725 /* MusicDeviceBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MusicDeviceBase.cpp; path = Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/MusicDeviceBase.cpp; sourceTree = DEVELOPER_DIR; }; | |||
| 843796680EFBF357002A2725 /* MusicDeviceBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MusicDeviceBase.h; path = Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/MusicDeviceBase.h; sourceTree = DEVELOPER_DIR; }; | |||
| 843796740EFBF416002A2725 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; }; | |||
| 8437967D0EFBF5E4002A2725 /* juce_VST_Wrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = juce_VST_Wrapper.cpp; path = ../../../wrapper/VST/juce_VST_Wrapper.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 8437967E0EFBF5E4002A2725 /* juce_VST_Wrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_VST_Wrapper.mm; path = ../../../wrapper/VST/juce_VST_Wrapper.mm; sourceTree = SOURCE_ROOT; }; | |||
| 843796D50EFBFD16002A2725 /* juce_RTAS_DigiCode1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode1.cpp; path = ../../../wrapper/RTAS/juce_RTAS_DigiCode1.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 843796D60EFBFD16002A2725 /* juce_RTAS_DigiCode2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode2.cpp; path = ../../../wrapper/RTAS/juce_RTAS_DigiCode2.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 843796D70EFBFD16002A2725 /* juce_RTAS_DigiCode3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_DigiCode3.cpp; path = ../../../wrapper/RTAS/juce_RTAS_DigiCode3.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 843796D80EFBFD16002A2725 /* juce_RTAS_DigiCode_Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = juce_RTAS_DigiCode_Header.h; path = ../../../wrapper/RTAS/juce_RTAS_DigiCode_Header.h; sourceTree = SOURCE_ROOT; }; | |||
| 843796D90EFBFD16002A2725 /* juce_RTAS_MacResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; name = juce_RTAS_MacResources.r; path = ../../../wrapper/RTAS/juce_RTAS_MacResources.r; sourceTree = SOURCE_ROOT; }; | |||
| 843796DA0EFBFD16002A2725 /* juce_RTAS_MacUtilities.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_RTAS_MacUtilities.mm; path = ../../../wrapper/RTAS/juce_RTAS_MacUtilities.mm; sourceTree = SOURCE_ROOT; }; | |||
| 843796DB0EFBFD16002A2725 /* juce_RTAS_Wrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTAS_Wrapper.cpp; path = ../../../wrapper/RTAS/juce_RTAS_Wrapper.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 843796F40EFC0102002A2725 /* CommonDebugSettings.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CommonDebugSettings.xcconfig; path = /Users/jules/stuff/PT_73_SDK/AlturaPorts/TDMPlugIns/common/Mac/CommonDebugSettings.xcconfig; sourceTree = "<absolute>"; }; | |||
| 843796F50EFC0102002A2725 /* CommonReleaseSettings.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CommonReleaseSettings.xcconfig; path = /Users/jules/stuff/PT_73_SDK/AlturaPorts/TDMPlugIns/common/Mac/CommonReleaseSettings.xcconfig; sourceTree = "<absolute>"; }; | |||
| 843796FE0EFC022E002A2725 /* 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>"; }; | |||
| 8BA05A7F072073D200365D66 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; }; | |||
| 8BA05A80072073D200365D66 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; }; | |||
| 8BA05A81072073D200365D66 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; }; | |||
| 8BA05A82072073D200365D66 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; }; | |||
| 8BA05A83072073D200365D66 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; }; | |||
| 8BA05A84072073D200365D66 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; }; | |||
| 8BA05A85072073D200365D66 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; }; | |||
| 8BA05A86072073D200365D66 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; }; | |||
| 8BA05A87072073D200365D66 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; }; | |||
| 8BA05A88072073D200365D66 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; }; | |||
| 8BA05A89072073D200365D66 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; }; | |||
| 8BA05A8A072073D200365D66 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; }; | |||
| 8BA05A8B072073D200365D66 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; }; | |||
| 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; }; | |||
| 8BA05A9B072073D200365D66 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; }; | |||
| 8BA05AA7072073D200365D66 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; }; | |||
| 8BA05AA8072073D200365D66 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; }; | |||
| 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDebugDispatcher.cpp; sourceTree = "<group>"; }; | |||
| 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDebugDispatcher.h; sourceTree = "<group>"; }; | |||
| 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; }; | |||
| 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; }; | |||
| 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; }; | |||
| 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; }; | |||
| 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; }; | |||
| 8BA05AE10720742100365D66 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; }; | |||
| 8BA05AE20720742100365D66 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; }; | |||
| 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; }; | |||
| 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; }; | |||
| 8BA05B050720754400365D66 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; }; | |||
| 8BA05B060720754400365D66 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; }; | |||
| 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; }; | |||
| 8D01CCD20486CAD60068D4B7 /* JuceDemoPlugin.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = JuceDemoPlugin.component; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
| /* End PBXFileReference section */ | |||
| /* Begin PBXFrameworksBuildPhase section */ | |||
| 8D01CCCD0486CAD60068D4B7 /* Frameworks */ = { | |||
| isa = PBXFrameworksBuildPhase; | |||
| buildActionMask = 2147483647; | |||
| files = ( | |||
| 843797050EFC0269002A2725 /* libPluginLibrary.a in Frameworks */, | |||
| 8437956E0EFBF323002A2725 /* AudioToolbox.framework in Frameworks */, | |||
| 8437956F0EFBF323002A2725 /* AudioUnit.framework in Frameworks */, | |||
| 843795700EFBF323002A2725 /* Cocoa.framework in Frameworks */, | |||
| 843795710EFBF323002A2725 /* OpenGL.framework in Frameworks */, | |||
| 843795720EFBF323002A2725 /* IOKit.framework in Frameworks */, | |||
| 843795730EFBF323002A2725 /* Carbon.framework in Frameworks */, | |||
| 843795740EFBF323002A2725 /* CoreMIDI.framework in Frameworks */, | |||
| 843795750EFBF323002A2725 /* CoreAudio.framework in Frameworks */, | |||
| 843795760EFBF323002A2725 /* DiscRecording.framework in Frameworks */, | |||
| 843795770EFBF323002A2725 /* QTKit.framework in Frameworks */, | |||
| 843795780EFBF323002A2725 /* WebKit.framework in Frameworks */, | |||
| 843796750EFBF416002A2725 /* CoreFoundation.framework in Frameworks */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||
| /* End PBXFrameworksBuildPhase section */ | |||
| /* Begin PBXGroup section */ | |||
| 089C166AFE841209C02AAC07 /* JuceDemoPlugin */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 843796F40EFC0102002A2725 /* CommonDebugSettings.xcconfig */, | |||
| 843796F50EFC0102002A2725 /* CommonReleaseSettings.xcconfig */, | |||
| 08FB77ADFE841716C02AAC07 /* Source */, | |||
| 089C167CFE841241C02AAC07 /* Resources */, | |||
| 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, | |||
| 19C28FB4FE9D528D11CA2CBB /* Products */, | |||
| ); | |||
| name = JuceDemoPlugin; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 843796FE0EFC022E002A2725 /* PluginLibrary.xcodeproj */, | |||
| 843796740EFBF416002A2725 /* CoreFoundation.framework */, | |||
| 843795630EFBF323002A2725 /* AudioToolbox.framework */, | |||
| 843795640EFBF323002A2725 /* AudioUnit.framework */, | |||
| 843795650EFBF323002A2725 /* Cocoa.framework */, | |||
| 843795660EFBF323002A2725 /* OpenGL.framework */, | |||
| 843795670EFBF323002A2725 /* IOKit.framework */, | |||
| 843795680EFBF323002A2725 /* Carbon.framework */, | |||
| 843795690EFBF323002A2725 /* CoreMIDI.framework */, | |||
| 8437956A0EFBF323002A2725 /* CoreAudio.framework */, | |||
| 8437956B0EFBF323002A2725 /* DiscRecording.framework */, | |||
| 8437956C0EFBF323002A2725 /* QTKit.framework */, | |||
| 8437956D0EFBF323002A2725 /* WebKit.framework */, | |||
| ); | |||
| name = "External Frameworks and Libraries"; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 089C167CFE841241C02AAC07 /* Resources */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 8D01CCD10486CAD60068D4B7 /* Info.plist */, | |||
| 089C167DFE841241C02AAC07 /* InfoPlist.strings */, | |||
| ); | |||
| name = Resources; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 08FB77ADFE841716C02AAC07 /* Source */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 8437929D0EFBF08E002A2725 /* Filter */, | |||
| 8437929E0EFBF098002A2725 /* Wrapper Code */, | |||
| ); | |||
| name = Source; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 19C28FB4FE9D528D11CA2CBB /* Products */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 8D01CCD20486CAD60068D4B7 /* JuceDemoPlugin.component */, | |||
| ); | |||
| name = Products; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 8437929D0EFBF08E002A2725 /* Filter */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 843792A20EFBF14B002A2725 /* DemoEditorComponent.cpp */, | |||
| 843792A30EFBF14B002A2725 /* DemoEditorComponent.h */, | |||
| 843792A40EFBF14B002A2725 /* DemoJuceFilter.cpp */, | |||
| 843792A50EFBF14B002A2725 /* DemoJuceFilter.h */, | |||
| 843792A60EFBF14B002A2725 /* includes.h */, | |||
| 843792A70EFBF14B002A2725 /* juce_AppConfig.h */, | |||
| 843792A80EFBF14B002A2725 /* juce_LibrarySource.mm */, | |||
| 843792A90EFBF14B002A2725 /* JucePluginCharacteristics.h */, | |||
| ); | |||
| name = Filter; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 8437929E0EFBF098002A2725 /* Wrapper Code */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 843796D40EFBFCE3002A2725 /* Juce RTAS Wrapper */, | |||
| 8437967C0EFBF5C6002A2725 /* Juce VST Wrapper */, | |||
| 843792B20EFBF157002A2725 /* Juce AU Wrapper */, | |||
| 8BA05AEB0720742700365D66 /* PublicUtility */, | |||
| 8BA05A7D072073D200365D66 /* AUPublic */, | |||
| ); | |||
| name = "Wrapper Code"; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 843792B20EFBF157002A2725 /* Juce AU Wrapper */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 843792B30EFBF175002A2725 /* juce_AU_Resources.r */, | |||
| 843792B40EFBF175002A2725 /* juce_AU_Wrapper.mm */, | |||
| ); | |||
| name = "Juce AU Wrapper"; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 8437967C0EFBF5C6002A2725 /* Juce VST Wrapper */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 8437967D0EFBF5E4002A2725 /* juce_VST_Wrapper.cpp */, | |||
| 8437967E0EFBF5E4002A2725 /* juce_VST_Wrapper.mm */, | |||
| ); | |||
| name = "Juce VST Wrapper"; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 843796D40EFBFCE3002A2725 /* Juce RTAS Wrapper */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 843796D50EFBFD16002A2725 /* juce_RTAS_DigiCode1.cpp */, | |||
| 843796D60EFBFD16002A2725 /* juce_RTAS_DigiCode2.cpp */, | |||
| 843796D70EFBFD16002A2725 /* juce_RTAS_DigiCode3.cpp */, | |||
| 843796D80EFBFD16002A2725 /* juce_RTAS_DigiCode_Header.h */, | |||
| 843796D90EFBFD16002A2725 /* juce_RTAS_MacResources.r */, | |||
| 843796DA0EFBFD16002A2725 /* juce_RTAS_MacUtilities.mm */, | |||
| 843796DB0EFBFD16002A2725 /* juce_RTAS_Wrapper.cpp */, | |||
| ); | |||
| name = "Juce RTAS Wrapper"; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 843796FF0EFC022E002A2725 /* Products */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 843797030EFC022E002A2725 /* libPluginLibrary.a */, | |||
| ); | |||
| name = Products; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 8BA05A7D072073D200365D66 /* AUPublic */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 8BA05A7E072073D200365D66 /* AUBase */, | |||
| 8BA05A99072073D200365D66 /* OtherBases */, | |||
| 8BA05AA6072073D200365D66 /* Utility */, | |||
| ); | |||
| name = AUPublic; | |||
| path = Examples/CoreAudio/AudioUnits/AUPublic; | |||
| sourceTree = DEVELOPER_DIR; | |||
| }; | |||
| 8BA05A7E072073D200365D66 /* AUBase */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 8BA05A7F072073D200365D66 /* AUBase.cpp */, | |||
| 8BA05A80072073D200365D66 /* AUBase.h */, | |||
| 8BA05A81072073D200365D66 /* AUDispatch.cpp */, | |||
| 8BA05A82072073D200365D66 /* AUDispatch.h */, | |||
| 8BA05A83072073D200365D66 /* AUInputElement.cpp */, | |||
| 8BA05A84072073D200365D66 /* AUInputElement.h */, | |||
| 8BA05A85072073D200365D66 /* AUOutputElement.cpp */, | |||
| 8BA05A86072073D200365D66 /* AUOutputElement.h */, | |||
| 8BA05A87072073D200365D66 /* AUResources.r */, | |||
| 8BA05A88072073D200365D66 /* AUScopeElement.cpp */, | |||
| 8BA05A89072073D200365D66 /* AUScopeElement.h */, | |||
| 8BA05A8A072073D200365D66 /* ComponentBase.cpp */, | |||
| 8BA05A8B072073D200365D66 /* ComponentBase.h */, | |||
| ); | |||
| path = AUBase; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 8BA05A99072073D200365D66 /* OtherBases */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 8437965F0EFBF357002A2725 /* AUMIDIBase.cpp */, | |||
| 843796600EFBF357002A2725 /* AUMIDIBase.h */, | |||
| 843796610EFBF357002A2725 /* AUMIDIEffectBase.cpp */, | |||
| 843796620EFBF357002A2725 /* AUMIDIEffectBase.h */, | |||
| 843796630EFBF357002A2725 /* AUOutputBase.cpp */, | |||
| 843796640EFBF357002A2725 /* AUOutputBase.h */, | |||
| 843796670EFBF357002A2725 /* MusicDeviceBase.cpp */, | |||
| 843796680EFBF357002A2725 /* MusicDeviceBase.h */, | |||
| 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */, | |||
| 8BA05A9B072073D200365D66 /* AUEffectBase.h */, | |||
| ); | |||
| path = OtherBases; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 8BA05AA6072073D200365D66 /* Utility */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 8BA05AA7072073D200365D66 /* AUBuffer.cpp */, | |||
| 8BA05AA8072073D200365D66 /* AUBuffer.h */, | |||
| 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */, | |||
| 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */, | |||
| 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */, | |||
| 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */, | |||
| 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */, | |||
| ); | |||
| path = Utility; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 8BA05AEB0720742700365D66 /* PublicUtility */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 8BA05B050720754400365D66 /* CAAUParameter.cpp */, | |||
| 8BA05B060720754400365D66 /* CAAUParameter.h */, | |||
| 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */, | |||
| 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */, | |||
| 8BA05AE10720742100365D66 /* CAMutex.cpp */, | |||
| 8BA05AE20720742100365D66 /* CAMutex.h */, | |||
| 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */, | |||
| 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */, | |||
| 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */, | |||
| 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */, | |||
| 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */, | |||
| ); | |||
| name = PublicUtility; | |||
| path = Examples/CoreAudio/PublicUtility; | |||
| sourceTree = DEVELOPER_DIR; | |||
| }; | |||
| /* End PBXGroup section */ | |||
| /* Begin PBXHeadersBuildPhase section */ | |||
| 8D01CCC70486CAD60068D4B7 /* Headers */ = { | |||
| isa = PBXHeadersBuildPhase; | |||
| buildActionMask = 2147483647; | |||
| files = ( | |||
| 8BA05AAF072073D300365D66 /* AUBase.h in Headers */, | |||
| 8BA05AB1072073D300365D66 /* AUDispatch.h in Headers */, | |||
| 8BA05AB3072073D300365D66 /* AUInputElement.h in Headers */, | |||
| 8BA05AB5072073D300365D66 /* AUOutputElement.h in Headers */, | |||
| 8BA05AB8072073D300365D66 /* AUScopeElement.h in Headers */, | |||
| 8BA05ABA072073D300365D66 /* ComponentBase.h in Headers */, | |||
| 8BA05AC7072073D300365D66 /* AUEffectBase.h in Headers */, | |||
| 8BA05AD3072073D300365D66 /* AUBuffer.h in Headers */, | |||
| 8BA05AD5072073D300365D66 /* AUDebugDispatcher.h in Headers */, | |||
| 8BA05AD6072073D300365D66 /* AUInputFormatConverter.h in Headers */, | |||
| 8BA05AD7072073D300365D66 /* AUSilentTimeout.h in Headers */, | |||
| 8BA05AD8072073D300365D66 /* AUTimestampGenerator.h in Headers */, | |||
| 8BA05AE60720742100365D66 /* CAAudioChannelLayout.h in Headers */, | |||
| 8BA05AE80720742100365D66 /* CAMutex.h in Headers */, | |||
| 8BA05AEA0720742100365D66 /* CAStreamBasicDescription.h in Headers */, | |||
| 8BA05B080720754400365D66 /* CAAUParameter.h in Headers */, | |||
| 3EEA126F089847F5002C6BFC /* CAVectorUnit.h in Headers */, | |||
| 3EEA1270089847F5002C6BFC /* CAVectorUnitTypes.h in Headers */, | |||
| 843792AB0EFBF14B002A2725 /* DemoEditorComponent.h in Headers */, | |||
| 843792AD0EFBF14B002A2725 /* DemoJuceFilter.h in Headers */, | |||
| 843792AE0EFBF14B002A2725 /* includes.h in Headers */, | |||
| 843792AF0EFBF14B002A2725 /* juce_AppConfig.h in Headers */, | |||
| 843792B10EFBF14B002A2725 /* JucePluginCharacteristics.h in Headers */, | |||
| 8437966A0EFBF357002A2725 /* AUMIDIBase.h in Headers */, | |||
| 8437966C0EFBF357002A2725 /* AUMIDIEffectBase.h in Headers */, | |||
| 8437966E0EFBF357002A2725 /* AUOutputBase.h in Headers */, | |||
| 843796720EFBF357002A2725 /* MusicDeviceBase.h in Headers */, | |||
| 843796DF0EFBFD16002A2725 /* juce_RTAS_DigiCode_Header.h in Headers */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||
| /* End PBXHeadersBuildPhase section */ | |||
| /* Begin PBXNativeTarget section */ | |||
| 8D01CCC60486CAD60068D4B7 /* JuceDemoPlugin */ = { | |||
| isa = PBXNativeTarget; | |||
| buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "JuceDemoPlugin" */; | |||
| buildPhases = ( | |||
| 8D01CCC70486CAD60068D4B7 /* Headers */, | |||
| 8D01CCC90486CAD60068D4B7 /* Resources */, | |||
| 8D01CCCB0486CAD60068D4B7 /* Sources */, | |||
| 8D01CCCD0486CAD60068D4B7 /* Frameworks */, | |||
| 8D01CCCF0486CAD60068D4B7 /* Rez */, | |||
| ); | |||
| buildRules = ( | |||
| ); | |||
| dependencies = ( | |||
| ); | |||
| name = JuceDemoPlugin; | |||
| productInstallPath = "$(HOME)/Library/Bundles"; | |||
| productName = JuceDemoPlugin; | |||
| productReference = 8D01CCD20486CAD60068D4B7 /* JuceDemoPlugin.component */; | |||
| productType = "com.apple.product-type.bundle"; | |||
| }; | |||
| /* End PBXNativeTarget section */ | |||
| /* Begin PBXProject section */ | |||
| 089C1669FE841209C02AAC07 /* Project object */ = { | |||
| isa = PBXProject; | |||
| buildConfigurationList = 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "JuceDemoPlugin" */; | |||
| compatibilityVersion = "Xcode 3.1"; | |||
| hasScannedForEncodings = 1; | |||
| mainGroup = 089C166AFE841209C02AAC07 /* JuceDemoPlugin */; | |||
| projectDirPath = ""; | |||
| projectReferences = ( | |||
| { | |||
| ProductGroup = 843796FF0EFC022E002A2725 /* Products */; | |||
| ProjectRef = 843796FE0EFC022E002A2725 /* PluginLibrary.xcodeproj */; | |||
| }, | |||
| ); | |||
| projectRoot = ""; | |||
| targets = ( | |||
| 8D01CCC60486CAD60068D4B7 /* JuceDemoPlugin */, | |||
| ); | |||
| }; | |||
| /* End PBXProject section */ | |||
| /* Begin PBXReferenceProxy section */ | |||
| 843797030EFC022E002A2725 /* libPluginLibrary.a */ = { | |||
| isa = PBXReferenceProxy; | |||
| fileType = archive.ar; | |||
| path = libPluginLibrary.a; | |||
| remoteRef = 843797020EFC022E002A2725 /* PBXContainerItemProxy */; | |||
| sourceTree = BUILT_PRODUCTS_DIR; | |||
| }; | |||
| /* End PBXReferenceProxy section */ | |||
| /* Begin PBXResourcesBuildPhase section */ | |||
| 8D01CCC90486CAD60068D4B7 /* Resources */ = { | |||
| isa = PBXResourcesBuildPhase; | |||
| buildActionMask = 2147483647; | |||
| files = ( | |||
| 8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */, | |||
| 843796F60EFC0102002A2725 /* CommonDebugSettings.xcconfig in Resources */, | |||
| 843796F70EFC0102002A2725 /* CommonReleaseSettings.xcconfig in Resources */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||
| /* End PBXResourcesBuildPhase section */ | |||
| /* Begin PBXRezBuildPhase section */ | |||
| 8D01CCCF0486CAD60068D4B7 /* Rez */ = { | |||
| isa = PBXRezBuildPhase; | |||
| buildActionMask = 2147483647; | |||
| files = ( | |||
| 843792B50EFBF175002A2725 /* juce_AU_Resources.r in Rez */, | |||
| 843796E00EFBFD16002A2725 /* juce_RTAS_MacResources.r in Rez */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||
| /* End PBXRezBuildPhase section */ | |||
| /* Begin PBXSourcesBuildPhase section */ | |||
| 8D01CCCB0486CAD60068D4B7 /* Sources */ = { | |||
| isa = PBXSourcesBuildPhase; | |||
| buildActionMask = 2147483647; | |||
| files = ( | |||
| 8BA05AAE072073D300365D66 /* AUBase.cpp in Sources */, | |||
| 8BA05AB0072073D300365D66 /* AUDispatch.cpp in Sources */, | |||
| 8BA05AB2072073D300365D66 /* AUInputElement.cpp in Sources */, | |||
| 8BA05AB4072073D300365D66 /* AUOutputElement.cpp in Sources */, | |||
| 8BA05AB7072073D300365D66 /* AUScopeElement.cpp in Sources */, | |||
| 8BA05AB9072073D300365D66 /* ComponentBase.cpp in Sources */, | |||
| 8BA05AC6072073D300365D66 /* AUEffectBase.cpp in Sources */, | |||
| 8BA05AD2072073D300365D66 /* AUBuffer.cpp in Sources */, | |||
| 8BA05AD4072073D300365D66 /* AUDebugDispatcher.cpp in Sources */, | |||
| 8BA05AE50720742100365D66 /* CAAudioChannelLayout.cpp in Sources */, | |||
| 8BA05AE70720742100365D66 /* CAMutex.cpp in Sources */, | |||
| 8BA05AE90720742100365D66 /* CAStreamBasicDescription.cpp in Sources */, | |||
| 8BA05B070720754400365D66 /* CAAUParameter.cpp in Sources */, | |||
| 3EEA126E089847F5002C6BFC /* CAVectorUnit.cpp in Sources */, | |||
| 843792AA0EFBF14B002A2725 /* DemoEditorComponent.cpp in Sources */, | |||
| 843792AC0EFBF14B002A2725 /* DemoJuceFilter.cpp in Sources */, | |||
| 843792B00EFBF14B002A2725 /* juce_LibrarySource.mm in Sources */, | |||
| 843792B60EFBF175002A2725 /* juce_AU_Wrapper.mm in Sources */, | |||
| 843796690EFBF357002A2725 /* AUMIDIBase.cpp in Sources */, | |||
| 8437966B0EFBF357002A2725 /* AUMIDIEffectBase.cpp in Sources */, | |||
| 8437966D0EFBF357002A2725 /* AUOutputBase.cpp in Sources */, | |||
| 843796710EFBF357002A2725 /* MusicDeviceBase.cpp in Sources */, | |||
| 8437967F0EFBF5E4002A2725 /* juce_VST_Wrapper.cpp in Sources */, | |||
| 843796800EFBF5E4002A2725 /* juce_VST_Wrapper.mm in Sources */, | |||
| 843796DC0EFBFD16002A2725 /* juce_RTAS_DigiCode1.cpp in Sources */, | |||
| 843796DD0EFBFD16002A2725 /* juce_RTAS_DigiCode2.cpp in Sources */, | |||
| 843796DE0EFBFD16002A2725 /* juce_RTAS_DigiCode3.cpp in Sources */, | |||
| 843796E10EFBFD16002A2725 /* juce_RTAS_MacUtilities.mm in Sources */, | |||
| 843796E20EFBFD16002A2725 /* juce_RTAS_Wrapper.cpp in Sources */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||
| /* End PBXSourcesBuildPhase section */ | |||
| /* Begin PBXVariantGroup section */ | |||
| 089C167DFE841241C02AAC07 /* InfoPlist.strings */ = { | |||
| isa = PBXVariantGroup; | |||
| children = ( | |||
| 089C167EFE841241C02AAC07 /* English */, | |||
| ); | |||
| name = InfoPlist.strings; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| /* End PBXVariantGroup section */ | |||
| /* Begin XCBuildConfiguration section */ | |||
| 3E4BA244089833B7007656EC /* Debug */ = { | |||
| isa = XCBuildConfiguration; | |||
| buildSettings = { | |||
| GCC_ENABLE_FIX_AND_CONTINUE = YES; | |||
| GCC_OPTIMIZATION_LEVEL = 0; | |||
| GENERATE_PKGINFO_FILE = YES; | |||
| HEADER_SEARCH_PATHS = ( | |||
| /Developer/Headers/FlatCarbon, | |||
| "~/stuff/vstsdk2.4", | |||
| "\"$(MacBag)/../AlturaPorts/TDMPlugIns/PlugInLibrary/**\"", | |||
| "\"$(MacBag)/../AlturaPorts/TDMPlugIns/DSPManager/**\"", | |||
| "\"$(MacBag)/../AlturaPorts/TDMPlugIns/SupplementalPlugInLib/Encryption\"", | |||
| "\"$(MacBag)/../AlturaPorts/TDMPlugIns/SupplementalPlugInLib/GraphicsExtensions\"", | |||
| "\"$(MacBag)/../AlturaPorts/TDMPlugIns/common\"", | |||
| "\"$(MacBag)/../AlturaPorts/TDMPlugIns/common/PI_LibInterface\"", | |||
| "\"$(MacBag)/../AlturaPorts/TDMPlugIns/PACEProtection/**\"", | |||
| "\"$(MacBag)/../AlturaPorts/OMS/Headers\"", | |||
| "\"$(MacBag)/../AlturaPorts/Fic/Interfaces/**\"", | |||
| "\"$(MacBag)/../AlturaPorts/Fic/Source/SignalNets\"", | |||
| "\"$(MacBag)/../AlturaPorts/DSIPublicInterface/PublicHeaders\"", | |||
| "\"$(MacBag)/../DAEWin/Include\"", | |||
| "\"$(MacBag)/../AlturaPorts/DigiPublic/Interfaces\"", | |||
| "\"$(MacBag)/../AlturaPorts/DigiPublic\"", | |||
| "\"$(MacBag)/../AlturaPorts/NewFileLibs/DOA\"", | |||
| "\"$(MacBag)/../AlturaPorts/NewFileLibs/Cmn\"", | |||
| "\"$(MacBag)/../AlturaPorts/TDMPlugIns/SignalProcessing/**\"", | |||
| "\"$(MacBag)/../AvidCode/AVX2sdk/AVX/avx2/avx2sdk/inc\"", | |||
| "\"$(MacBag)/../AvidCode/AVX2sdk/AVX/avx2/avx2sdk/utils\"", | |||
| ); | |||
| INFOPLIST_FILE = Info.plist; | |||
| INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/"; | |||
| LIBRARY_STYLE = Bundle; | |||
| MacBag = /Users/jules/stuff/PT_73_SDK/MacBag; | |||
| OTHER_LDFLAGS = "-bundle"; | |||
| OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Examples/CoreAudio/AudioUnits/AUPublic/AUBase\""; | |||
| PRODUCT_NAME = JuceDemoPlugin; | |||
| WARNING_CFLAGS = ( | |||
| "-Wmost", | |||
| "-Wno-four-char-constants", | |||
| "-Wno-unknown-pragmas", | |||
| ); | |||
| WRAPPER_EXTENSION = component; | |||
| }; | |||
| name = Debug; | |||
| }; | |||
| 3E4BA245089833B7007656EC /* Release */ = { | |||
| isa = XCBuildConfiguration; | |||
| buildSettings = { | |||
| DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; | |||
| GCC_ENABLE_FIX_AND_CONTINUE = NO; | |||
| GENERATE_PKGINFO_FILE = YES; | |||
| HEADER_SEARCH_PATHS = ( | |||
| /Developer/Headers/FlatCarbon, | |||
| "~/stuff/vstsdk2.4", | |||
| "\"$(MacBag)/../AlturaPorts/TDMPlugIns/PlugInLibrary/**\"", | |||
| "\"$(MacBag)/../AlturaPorts/TDMPlugIns/DSPManager/**\"", | |||
| "\"$(MacBag)/../AlturaPorts/TDMPlugIns/SupplementalPlugInLib/Encryption\"", | |||
| "\"$(MacBag)/../AlturaPorts/TDMPlugIns/SupplementalPlugInLib/GraphicsExtensions\"", | |||
| "\"$(MacBag)/../AlturaPorts/TDMPlugIns/common\"", | |||
| "\"$(MacBag)/../AlturaPorts/TDMPlugIns/common/PI_LibInterface\"", | |||
| "\"$(MacBag)/../AlturaPorts/TDMPlugIns/PACEProtection/**\"", | |||
| "\"$(MacBag)/../AlturaPorts/OMS/Headers\"", | |||
| "\"$(MacBag)/../AlturaPorts/Fic/Interfaces/**\"", | |||
| "\"$(MacBag)/../AlturaPorts/Fic/Source/SignalNets\"", | |||
| "\"$(MacBag)/../AlturaPorts/DSIPublicInterface/PublicHeaders\"", | |||
| "\"$(MacBag)/../DAEWin/Include\"", | |||
| "\"$(MacBag)/../AlturaPorts/DigiPublic/Interfaces\"", | |||
| "\"$(MacBag)/../AlturaPorts/DigiPublic\"", | |||
| "\"$(MacBag)/../AlturaPorts/NewFileLibs/DOA\"", | |||
| "\"$(MacBag)/../AlturaPorts/NewFileLibs/Cmn\"", | |||
| "\"$(MacBag)/../AlturaPorts/TDMPlugIns/SignalProcessing/**\"", | |||
| "\"$(MacBag)/../AvidCode/AVX2sdk/AVX/avx2/avx2sdk/inc\"", | |||
| "\"$(MacBag)/../AvidCode/AVX2sdk/AVX/avx2/avx2sdk/utils\"", | |||
| ); | |||
| INFOPLIST_FILE = Info.plist; | |||
| INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/"; | |||
| LIBRARY_STYLE = Bundle; | |||
| OTHER_LDFLAGS = "-bundle"; | |||
| OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Examples/CoreAudio/AudioUnits/AUPublic/AUBase\""; | |||
| PRODUCT_NAME = JuceDemoPlugin; | |||
| WARNING_CFLAGS = ( | |||
| "-Wmost", | |||
| "-Wno-four-char-constants", | |||
| "-Wno-unknown-pragmas", | |||
| ); | |||
| WRAPPER_EXTENSION = component; | |||
| }; | |||
| name = Release; | |||
| }; | |||
| 3E4BA248089833B7007656EC /* Debug */ = { | |||
| isa = XCBuildConfiguration; | |||
| baseConfigurationReference = 843796F40EFC0102002A2725 /* CommonDebugSettings.xcconfig */; | |||
| buildSettings = { | |||
| ARCHS = "$(ARCHS_STANDARD_32_BIT)"; | |||
| GCC_C_LANGUAGE_STANDARD = c99; | |||
| ONLY_ACTIVE_ARCH = YES; | |||
| SDKROOT = macosx10.5; | |||
| }; | |||
| name = Debug; | |||
| }; | |||
| 3E4BA249089833B7007656EC /* Release */ = { | |||
| isa = XCBuildConfiguration; | |||
| baseConfigurationReference = 843796F50EFC0102002A2725 /* CommonReleaseSettings.xcconfig */; | |||
| buildSettings = { | |||
| ARCHS = "$(ARCHS_STANDARD_32_BIT)"; | |||
| GCC_C_LANGUAGE_STANDARD = c99; | |||
| SDKROOT = macosx10.5; | |||
| }; | |||
| name = Release; | |||
| }; | |||
| /* End XCBuildConfiguration section */ | |||
| /* Begin XCConfigurationList section */ | |||
| 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "JuceDemoPlugin" */ = { | |||
| isa = XCConfigurationList; | |||
| buildConfigurations = ( | |||
| 3E4BA244089833B7007656EC /* Debug */, | |||
| 3E4BA245089833B7007656EC /* Release */, | |||
| ); | |||
| defaultConfigurationIsVisible = 0; | |||
| defaultConfigurationName = Debug; | |||
| }; | |||
| 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "JuceDemoPlugin" */ = { | |||
| isa = XCConfigurationList; | |||
| buildConfigurations = ( | |||
| 3E4BA248089833B7007656EC /* Debug */, | |||
| 3E4BA249089833B7007656EC /* Release */, | |||
| ); | |||
| defaultConfigurationIsVisible = 0; | |||
| defaultConfigurationName = Debug; | |||
| }; | |||
| /* End XCConfigurationList section */ | |||
| }; | |||
| rootObject = 089C1669FE841209C02AAC07 /* Project object */; | |||
| } | |||
| @@ -0,0 +1,20 @@ | |||
|  | |||
| Microsoft Visual Studio Solution File, Format Version 9.00 | |||
| # Visual Studio 2005 | |||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JuceDemoPlugin", "JuceDemoPlugin.vcproj", "{39DADE4E-B715-4809-AD10-2F5A4213D633}" | |||
| EndProject | |||
| Global | |||
| GlobalSection(SolutionConfigurationPlatforms) = preSolution | |||
| Debug|Win32 = Debug|Win32 | |||
| Release|Win32 = Release|Win32 | |||
| EndGlobalSection | |||
| GlobalSection(ProjectConfigurationPlatforms) = postSolution | |||
| {39DADE4E-B715-4809-AD10-2F5A4213D633}.Debug|Win32.ActiveCfg = Debug|Win32 | |||
| {39DADE4E-B715-4809-AD10-2F5A4213D633}.Debug|Win32.Build.0 = Debug|Win32 | |||
| {39DADE4E-B715-4809-AD10-2F5A4213D633}.Release|Win32.ActiveCfg = Release|Win32 | |||
| {39DADE4E-B715-4809-AD10-2F5A4213D633}.Release|Win32.Build.0 = Release|Win32 | |||
| EndGlobalSection | |||
| GlobalSection(SolutionProperties) = preSolution | |||
| HideSolutionNode = FALSE | |||
| EndGlobalSection | |||
| EndGlobal | |||
| @@ -0,0 +1,347 @@ | |||
| <?xml version="1.0" encoding="Windows-1252"?> | |||
| <VisualStudioProject | |||
| ProjectType="Visual C++" | |||
| Version="8.00" | |||
| Name="JuceDemoPlugin" | |||
| ProjectGUID="{39DADE4E-B715-4809-AD10-2F5A4213D633}" | |||
| RootNamespace="JuceDemoPlugin" | |||
| Keyword="Win32Proj" | |||
| > | |||
| <Platforms> | |||
| <Platform | |||
| Name="Win32" | |||
| /> | |||
| </Platforms> | |||
| <ToolFiles> | |||
| </ToolFiles> | |||
| <Configurations> | |||
| <Configuration | |||
| Name="Debug|Win32" | |||
| OutputDirectory="$(SolutionDir)$(ConfigurationName)" | |||
| IntermediateDirectory="$(ConfigurationName)" | |||
| ConfigurationType="2" | |||
| CharacterSet="1" | |||
| > | |||
| <Tool | |||
| Name="VCPreBuildEventTool" | |||
| /> | |||
| <Tool | |||
| Name="VCCustomBuildTool" | |||
| CommandLine="copy /Y "..\..\..\wrapper\RTAS\juce_RTAS_WinResources.rsr" "$(TargetPath)".rsr
" | |||
| Outputs=""$(TargetPath)".rsr" | |||
| /> | |||
| <Tool | |||
| Name="VCXMLDataGeneratorTool" | |||
| /> | |||
| <Tool | |||
| Name="VCWebServiceProxyGeneratorTool" | |||
| /> | |||
| <Tool | |||
| Name="VCMIDLTool" | |||
| /> | |||
| <Tool | |||
| Name="VCCLCompilerTool" | |||
| Optimization="0" | |||
| AdditionalIncludeDirectories="../../src" | |||
| PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;JUCEDEMOPLUGIN_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" | |||
| AdditionalOptions="/FORCE:multiple" | |||
| OutputFile="$(OutDir)\$(ProjectName).dpm" | |||
| LinkIncremental="2" | |||
| ModuleDefinitionFile="../../../wrapper/RTAS/juce_RTAS_WinExports.def" | |||
| DelayLoadDLLs="DAE.dll; DigiExt.dll; DSI.dll; PluginLib.dll; DSPManager.dll" | |||
| GenerateDebugInformation="true" | |||
| SubSystem="2" | |||
| TargetMachine="1" | |||
| /> | |||
| <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="1" | |||
| WholeProgramOptimization="1" | |||
| > | |||
| <Tool | |||
| Name="VCPreBuildEventTool" | |||
| /> | |||
| <Tool | |||
| Name="VCCustomBuildTool" | |||
| CommandLine="copy /Y "..\..\..\wrapper\RTAS\juce_RTAS_WinResources.rsr" "$(TargetPath)".rsr
" | |||
| Outputs=""$(TargetPath)".rsr" | |||
| /> | |||
| <Tool | |||
| Name="VCXMLDataGeneratorTool" | |||
| /> | |||
| <Tool | |||
| Name="VCWebServiceProxyGeneratorTool" | |||
| /> | |||
| <Tool | |||
| Name="VCMIDLTool" | |||
| /> | |||
| <Tool | |||
| Name="VCCLCompilerTool" | |||
| AdditionalIncludeDirectories="../../src" | |||
| PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;JUCEDEMOPLUGIN_EXPORTS" | |||
| RuntimeLibrary="2" | |||
| UsePrecompiledHeader="0" | |||
| WarningLevel="3" | |||
| Detect64BitPortabilityProblems="true" | |||
| DebugInformationFormat="3" | |||
| /> | |||
| <Tool | |||
| Name="VCManagedResourceCompilerTool" | |||
| /> | |||
| <Tool | |||
| Name="VCResourceCompilerTool" | |||
| /> | |||
| <Tool | |||
| Name="VCPreLinkEventTool" | |||
| /> | |||
| <Tool | |||
| Name="VCLinkerTool" | |||
| AdditionalOptions="/FORCE:multiple" | |||
| OutputFile="$(OutDir)\$(ProjectName).dpm" | |||
| LinkIncremental="1" | |||
| ModuleDefinitionFile="../../../wrapper/RTAS/juce_RTAS_WinExports.def" | |||
| DelayLoadDLLs="DAE.dll; DigiExt.dll; DSI.dll; PluginLib.dll; DSPManager.dll" | |||
| GenerateDebugInformation="true" | |||
| SubSystem="2" | |||
| OptimizeReferences="2" | |||
| EnableCOMDATFolding="2" | |||
| TargetMachine="1" | |||
| /> | |||
| <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="plugin" | |||
| > | |||
| <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\includes.h" | |||
| > | |||
| </File> | |||
| <File | |||
| RelativePath="..\..\src\juce_AppConfig.h" | |||
| > | |||
| </File> | |||
| <File | |||
| RelativePath="..\..\src\juce_LibrarySource.cpp" | |||
| > | |||
| </File> | |||
| <File | |||
| RelativePath="..\..\src\JucePluginCharacteristics.h" | |||
| > | |||
| </File> | |||
| </Filter> | |||
| <Filter | |||
| Name="wrapper" | |||
| > | |||
| <Filter | |||
| Name="VST" | |||
| > | |||
| <File | |||
| RelativePath="..\..\..\wrapper\VST\juce_VST_Wrapper.cpp" | |||
| > | |||
| </File> | |||
| </Filter> | |||
| <Filter | |||
| Name="RTAS" | |||
| > | |||
| <File | |||
| RelativePath="..\..\..\wrapper\RTAS\juce_RTAS_DigiCode1.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\RTAS\juce_RTAS_DigiCode2.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\RTAS\juce_RTAS_DigiCode3.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\RTAS\juce_RTAS_DigiCode_Header.h" | |||
| > | |||
| </File> | |||
| <File | |||
| RelativePath="..\..\..\wrapper\RTAS\juce_RTAS_WinUtilities.cpp" | |||
| > | |||
| </File> | |||
| <File | |||
| RelativePath="..\..\..\wrapper\RTAS\juce_RTAS_Wrapper.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}" | |||
| > | |||
| </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}" | |||
| > | |||
| </Filter> | |||
| </Files> | |||
| <Globals> | |||
| </Globals> | |||
| </VisualStudioProject> | |||
| @@ -1,270 +1,285 @@ | |||
| /* | |||
| ============================================================================== | |||
| 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 | |||
| /* | |||
| ============================================================================== | |||
| 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. | |||
| */ | |||
| //============================================================================== | |||
| /* Plugin Formats to build */ | |||
| #define JucePlugin_Build_VST 1 | |||
| #define JucePlugin_Build_RTAS 0 | |||
| #define JucePlugin_Build_AU 1 | |||
| //============================================================================== | |||
| /* 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 | |||
| /** You need to set this path to point to the location of the Digidesign WinBag | |||
| directory on your machine. (Only needed for Windows builds). Make sure you | |||
| don't put a slash on the end. | |||
| */ | |||
| #define JucePlugin_WinBag_path "C:\\essentials\\PT_73_SDK\\WinBag" | |||
| //============================================================================== | |||
| #endif | |||
| @@ -29,16 +29,29 @@ | |||
| ============================================================================== | |||
| */ | |||
| #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 | |||
| This file contains settings that you might want to explicitly apply to | |||
| the your build. | |||
| If you get an error including this file, check your paths - there's a full list of | |||
| Digidesign paths in juce_RTASWrapper.cpp | |||
| Most of these are turned on or off by default, but you can override | |||
| that setting here by un-commenting it and giving it a 1 or 0 value. | |||
| */ | |||
| #include "CEffectProcess.cpp" | |||
| #define JUCE_QUICKTIME 0 | |||
| //#define JUCE_PLUGINHOST_VST 1 | |||
| //#define JUCE_PLUGINHOST_AU 1 | |||
| //#define JUCE_ONLY_BUILD_CORE_LIBRARY 1 | |||
| //#define JUCE_FORCE_DEBUG 1 | |||
| //#define JUCE_LOG_ASSERTIONS 1 | |||
| //#define JUCE_ASIO 1 | |||
| //#define JUCE_ALSA 1 | |||
| //#define JUCE_OPENGL 1 | |||
| //#define JUCE_USE_FLAC 1 | |||
| //#define JUCE_USE_OGGVORBIS 1 | |||
| //#define JUCE_USE_CDBURNER 1 | |||
| //#define JUCE_ENABLE_REPAINT_DEBUGGING 1 | |||
| //#define JUCE_USE_XINERAMA 1 | |||
| //#define JUCE_USE_XSHM 1 | |||
| //#define JUCE_CHECK_MEMORY_LEAKS 1 | |||
| //#define JUCE_CATCH_UNHANDLED_EXCEPTIONS 1 | |||
| //#define JUCE_STRINGS_ARE_UNICODE 1 | |||
| @@ -0,0 +1,12 @@ | |||
| /* | |||
| This file includes the entire juce source tree via the amalgamated file. | |||
| You could add the amalgamated file directly to your project, but doing it | |||
| like this allows you to put your app's config settings in the | |||
| juce_AppConfig.h file and have them applied to both the juce headers and | |||
| the source code. | |||
| */ | |||
| #include "juce_AppConfig.h" | |||
| #include "../../../../juce_amalgamated.cpp" | |||
| @@ -0,0 +1,12 @@ | |||
| /* | |||
| This file includes the entire juce source tree via the amalgamated file. | |||
| You could add the amalgamated file directly to your project, but doing it | |||
| like this allows you to put your app's config settings in the | |||
| juce_AppConfig.h file and have them applied to both the juce headers and | |||
| the source code. | |||
| */ | |||
| #include "juce_AppConfig.h" | |||
| #include "../../../../juce_amalgamated.mm" | |||
| @@ -1,57 +1,57 @@ | |||
| /* | |||
| ============================================================================== | |||
| 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> | |||
| //============================================================================== | |||
| /* 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" | |||
| /* | |||
| ============================================================================== | |||
| 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> | |||
| //============================================================================== | |||
| /* 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 "AUResources.r" | |||
| @@ -35,9 +35,9 @@ | |||
| #include <AudioToolbox/AudioUnitUtilities.h> | |||
| #include "AUMIDIEffectBase.h" | |||
| #include "MusicDeviceBase.h" | |||
| #include "../../juce_IncludeCharacteristics.h" | |||
| #include "../../../../../juce_amalgamated.h" | |||
| //#include "../../../../../juce.h" | |||
| #include "../juce_PluginHeaders.h" | |||
| #if JucePlugin_Build_AU | |||
| //============================================================================== | |||
| #define juceFilterObjectPropertyID 0x1a45ffe9 | |||
| @@ -849,10 +849,14 @@ protected: | |||
| void componentMovedOrResized (Component& component, bool wasMoved, bool wasResized) | |||
| { | |||
| if (wasResized) | |||
| //if (wasResized) | |||
| { | |||
| NSView* view = (NSView*) component.getWindowHandle(); | |||
| [[view superview] setFrameSize: NSMakeSize (component.getWidth(), component.getHeight())]; | |||
| NSRect r = [[view superview] frame]; | |||
| r.origin.y = r.origin.y + r.size.height - component.getHeight(); | |||
| r.size.width = component.getWidth(); | |||
| r.size.height = component.getHeight(); | |||
| [[view superview] setFrame: r]; | |||
| [view setFrame: NSMakeRect (0, 0, component.getWidth(), component.getHeight())]; | |||
| [view setNeedsDisplay: YES]; | |||
| } | |||
| @@ -987,8 +991,6 @@ private: | |||
| if (editorComp == 0) | |||
| return 0; | |||
| DBG (String (inPreferredSize.width) + " " + String (inPreferredSize.height)); | |||
| DBG (String (editorComp->getWidth()) + " " + String (editorComp->getHeight())); | |||
| return [[[JuceUIViewClass alloc] initWithFilter: filter | |||
| withAU: au | |||
| @@ -1008,3 +1010,5 @@ extern "C" __attribute__((visibility("default"))) ComponentResult Name ## Suffix | |||
| JUCE_COMPONENT_ENTRY (JuceAU, JucePlugin_AUExportPrefix, Entry) | |||
| //JUCE_COMPONENT_ENTRY (JuceAUView, JucePlugin_AUExportPrefix, ViewEntry) | |||
| #endif | |||
| @@ -29,16 +29,37 @@ | |||
| ============================================================================== | |||
| */ | |||
| #include "juce_Wrapper_Header.h" | |||
| #include "juce_RTAS_DigiCode_Header.h" | |||
| #if JucePlugin_Build_RTAS | |||
| /* | |||
| 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. | |||
| This file is used to include and build the required digidesign CPP files without your project | |||
| needing to reference the files directly. Because these files will be found via your 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 | |||
| Important note on Windows: In your project settings for the three juce_RTAS_DigiCode.cpp files and | |||
| the juce_RTAS_Wrapper.cpp file, you need to set the calling convention to "__stdcall". | |||
| If you don't do this, you'll get some unresolved externals and will spend a long time wondering what's | |||
| going on... All the other files in your project can be set to use the normal __cdecl convention. | |||
| If you get an error including this file, check your paths - there's a full list of | |||
| Digidesign paths in juce_RTASWrapper.cpp | |||
| If you get an error building the includes statements below, check your paths - there's a full | |||
| list of the necessary Digidesign paths in juce_RTAS_Wrapper.cpp | |||
| */ | |||
| #if WINDOWS_VERSION | |||
| #undef _UNICODE | |||
| #undef UNICODE | |||
| #endif | |||
| #include "CEffectGroup.cpp" | |||
| #include "CEffectGroupMIDI.cpp" | |||
| #include "CEffectMIDIUtils.cpp" | |||
| #include "CEffectProcess.cpp" | |||
| #include "CEffectProcessAS.cpp" | |||
| #include "CEffectType.cpp" | |||
| #include "CEffectTypeRTAS.cpp" | |||
| #include "ChunkDataParser.cpp" | |||
| #endif | |||
| @@ -29,16 +29,26 @@ | |||
| ============================================================================== | |||
| */ | |||
| #include "juce_Wrapper_Header.h" | |||
| #include "juce_RTAS_DigiCode_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 JucePlugin_Build_RTAS | |||
| If you get an error including this file, check your paths - there's a full list of | |||
| Digidesign paths in juce_RTASWrapper.cpp | |||
| /* | |||
| This file is used to include and build the required digidesign CPP files without your project | |||
| needing to reference the files directly. Because these files will be found via your include path, | |||
| this means that the project doesn't have to change to cope with people's SDKs being in different | |||
| locations. | |||
| Important note on Windows: In your project settings for the three juce_RTAS_DigiCode.cpp files and | |||
| the juce_RTAS_Wrapper.cpp file, you need to set the calling convention to "__stdcall". | |||
| If you don't do this, you'll get some unresolved externals and will spend a long time wondering what's | |||
| going on... All the other files in your project can be set to use the normal __cdecl convention. | |||
| If you get an error building the includes statements below, check your paths - there's a full | |||
| list of the necessary Digidesign paths in juce_RTAS_Wrapper.cpp | |||
| */ | |||
| #include "CEffectProcessMIDI.cpp" | |||
| #include "PlugInUtils.cpp" | |||
| #endif | |||
| @@ -0,0 +1,95 @@ | |||
| /* | |||
| ============================================================================== | |||
| 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_RTAS_DigiCode_Header.h" | |||
| /* | |||
| This file is used to include and build the required digidesign CPP files without your project | |||
| needing to reference the files directly. Because these files will be found via your include path, | |||
| this means that the project doesn't have to change to cope with people's SDKs being in different | |||
| locations. | |||
| Important note on Windows: In your project settings for the three juce_RTAS_DigiCode.cpp files and | |||
| the juce_RTAS_Wrapper.cpp file, you need to set the calling convention to "__stdcall". | |||
| If you don't do this, you'll get some unresolved externals and will spend a long time wondering what's | |||
| going on... All the other files in your project can be set to use the normal __cdecl convention. | |||
| If you get an error building the includes statements below, check your paths - there's a full | |||
| list of the necessary Digidesign paths in juce_RTAS_Wrapper.cpp | |||
| */ | |||
| #if JucePlugin_Build_RTAS | |||
| #if WINDOWS_VERSION | |||
| //============================================================================== | |||
| #undef _UNICODE | |||
| #undef UNICODE | |||
| #if JucePlugin_Build_VST | |||
| #define DllMain DllMainRTAS | |||
| #include "DLLMain.cpp" | |||
| #undef DllMain | |||
| extern BOOL WINAPI DllMainVST (HINSTANCE instance, DWORD dwReason, LPVOID); | |||
| // This overloaded DllMain can work as either an RTAS or a VST.. | |||
| extern "C" BOOL WINAPI DllMain (HINSTANCE hInstance, DWORD ul_reason_for_call, LPVOID lpReserved) | |||
| { | |||
| if (GetModuleHandle ("DAE.DLL") != 0) | |||
| return DllMainRTAS (hInstance, ul_reason_for_call, lpReserved); | |||
| else | |||
| return DllMainVST (hInstance, ul_reason_for_call, lpReserved); | |||
| } | |||
| #else | |||
| #include "DLLMain.cpp" | |||
| #endif | |||
| #include "DefaultSwap.cpp" | |||
| #else | |||
| //============================================================================== | |||
| #include "PlugInInitialize.cpp" | |||
| #include "Dispatcher.cpp" | |||
| #endif | |||
| #else | |||
| #if _MSC_VER | |||
| // (defining these stubs just makes it easier to quickly turn off the RTAS build without removing | |||
| // the exports table from your project settings) | |||
| short __stdcall NewPlugIn (void*) { return 0; } | |||
| short __stdcall _PI_GetRoutineDescriptor (long, void*) { return 0; } | |||
| #endif | |||
| #endif | |||
| @@ -29,9 +29,12 @@ | |||
| ============================================================================== | |||
| */ | |||
| #ifndef __JUCE_RTASCOMPILEFLAGS_JUCEHEADER__ | |||
| #define __JUCE_RTASCOMPILEFLAGS_JUCEHEADER__ | |||
| #ifndef __JUCE_RTAS_DIGICODE_HEADER_JUCEHEADER__ | |||
| #define __JUCE_RTAS_DIGICODE_HEADER_JUCEHEADER__ | |||
| #include "../juce_IncludeCharacteristics.h" | |||
| //============================================================================== | |||
| #ifdef _MSC_VER | |||
| #define kCompileAsCodeResource 0 | |||
| @@ -46,6 +49,12 @@ | |||
| #define PLUGIN_SDK_BUILD 1 | |||
| #define PLUGIN_SDK_DIRECTMIDI 1 | |||
| // the Digidesign projects all use a struct alignment of 2.. | |||
| #pragma pack (2) | |||
| #pragma warning (disable: 4267 4996 4311 4312 4103) | |||
| #include "ForcedInclude.h" | |||
| #else | |||
| #define kCompileAsCodeResource 0 | |||
| @@ -60,4 +69,5 @@ | |||
| #endif | |||
| #endif // __JUCE_RTASCOMPILEFLAGS_JUCEHEADER__ | |||
| #endif // __JUCE_RTAS_DIGICODE_HEADER_JUCEHEADER__ | |||
| @@ -0,0 +1,6 @@ | |||
| /* | |||
| 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 will refuse to load the plugin.. | |||
| */ | |||
| @@ -1,82 +1,101 @@ | |||
| /* | |||
| ============================================================================== | |||
| 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 <Cocoa/Cocoa.h> | |||
| #include "../../../../../juce_amalgamated.h" | |||
| //============================================================================== | |||
| void* attachSubWindow (void* hostWindowRef, Component* comp) | |||
| { | |||
| const ScopedAutoReleasePool pool; | |||
| NSWindow* hostWindow = [[NSWindow alloc] initWithWindowRef: hostWindowRef]; | |||
| [hostWindow retain]; | |||
| NSView* content = [hostWindow contentView]; | |||
| NSRect f = [content frame]; | |||
| f.size.width = comp->getWidth(); | |||
| f.size.height = comp->getHeight(); | |||
| [content setFrame: f]; | |||
| NSPoint windowPos = [hostWindow convertBaseToScreen: f.origin]; | |||
| windowPos.y = [[NSScreen mainScreen] frame].size.height - (windowPos.y + f.size.height); | |||
| comp->setTopLeftPosition ((int) windowPos.x, (int) windowPos.y); | |||
| #if ! JucePlugin_EditorRequiresKeyboardFocus | |||
| comp->addToDesktop (ComponentPeer::windowIsTemporary | ComponentPeer::windowIgnoresKeyPresses); | |||
| #else | |||
| comp->addToDesktop (ComponentPeer::windowIsTemporary); | |||
| #endif | |||
| comp->setVisible (true); | |||
| NSView* pluginView = (NSView*) comp->getWindowHandle(); | |||
| NSWindow* pluginWindow = [pluginView window]; | |||
| [hostWindow addChildWindow: pluginWindow | |||
| ordered: NSWindowAbove]; | |||
| [hostWindow orderFront: nil]; | |||
| return hostWindow; | |||
| } | |||
| void removeSubWindow (void* nsWindow, Component* comp) | |||
| { | |||
| const ScopedAutoReleasePool pool; | |||
| NSView* pluginView = (NSView*) comp->getWindowHandle(); | |||
| NSWindow* hostWindow = (NSWindow*) nsWindow; | |||
| NSWindow* pluginWindow = [pluginView window]; | |||
| [hostWindow removeChildWindow: pluginWindow]; | |||
| comp->removeFromDesktop(); | |||
| [hostWindow release]; | |||
| } | |||
| /* | |||
| ============================================================================== | |||
| 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 you get an error here, you might need to make sure that | |||
| // your build config files don't specify "C++" as one of the | |||
| // flags in OTHER_CFLAGS, because that stops the compiler building | |||
| // obj-c files correctly. | |||
| @class dummyclassname; | |||
| #include <Cocoa/Cocoa.h> | |||
| #include "../juce_PluginHeaders.h" | |||
| #if JucePlugin_Build_RTAS | |||
| //============================================================================== | |||
| void initialiseMacRTAS() | |||
| { | |||
| NSApplicationLoad(); | |||
| } | |||
| void* attachSubWindow (void* hostWindowRef, Component* comp) | |||
| { | |||
| const ScopedAutoReleasePool pool; | |||
| NSWindow* hostWindow = [[NSWindow alloc] initWithWindowRef: hostWindowRef]; | |||
| [hostWindow retain]; | |||
| [hostWindow setCanHide: YES]; | |||
| [hostWindow setReleasedWhenClosed: YES]; | |||
| NSView* content = [hostWindow contentView]; | |||
| NSRect f = [content frame]; | |||
| f.size.width = comp->getWidth(); | |||
| f.size.height = comp->getHeight(); | |||
| [content setFrame: f]; | |||
| NSPoint windowPos = [hostWindow convertBaseToScreen: f.origin]; | |||
| windowPos.y = [[NSScreen mainScreen] frame].size.height - (windowPos.y + f.size.height); | |||
| comp->setTopLeftPosition ((int) windowPos.x, (int) windowPos.y); | |||
| #if ! JucePlugin_EditorRequiresKeyboardFocus | |||
| comp->addToDesktop (ComponentPeer::windowIsTemporary | ComponentPeer::windowIgnoresKeyPresses); | |||
| #else | |||
| comp->addToDesktop (ComponentPeer::windowIsTemporary); | |||
| #endif | |||
| comp->setVisible (true); | |||
| NSView* pluginView = (NSView*) comp->getWindowHandle(); | |||
| NSWindow* pluginWindow = [pluginView window]; | |||
| [hostWindow addChildWindow: pluginWindow | |||
| ordered: NSWindowAbove]; | |||
| [hostWindow orderFront: nil]; | |||
| [pluginWindow orderFront: nil]; | |||
| return hostWindow; | |||
| } | |||
| void removeSubWindow (void* nsWindow, Component* comp) | |||
| { | |||
| const ScopedAutoReleasePool pool; | |||
| NSView* pluginView = (NSView*) comp->getWindowHandle(); | |||
| NSWindow* hostWindow = (NSWindow*) nsWindow; | |||
| NSWindow* pluginWindow = [pluginView window]; | |||
| [hostWindow removeChildWindow: pluginWindow]; | |||
| comp->removeFromDesktop(); | |||
| [hostWindow release]; | |||
| } | |||
| #endif | |||
| @@ -31,7 +31,7 @@ | |||
| #if _MSC_VER | |||
| // (these functions are in a separate file because of problems including windows.h | |||
| // (these functions are in their own file because of problems including windows.h | |||
| // at the same time as the Digi headers) | |||
| #include <windows.h> | |||
| @@ -40,12 +40,13 @@ | |||
| #pragma pack (push, 8) | |||
| #endif | |||
| #include "../../../../../juce_amalgamated.h" | |||
| #include "../juce_PluginHeaders.h" | |||
| #ifdef _MSC_VER | |||
| #pragma pack (pop) | |||
| #endif | |||
| #if JucePlugin_Build_RTAS | |||
| //============================================================================== | |||
| void JUCE_CALLTYPE attachSubWindow (void* hostWindow, | |||
| @@ -138,5 +139,5 @@ void JUCE_CALLTYPE passFocusToHostWindow (void* hostWindow) | |||
| } | |||
| #endif | |||
| #endif | |||
| #endif | |||
| @@ -32,7 +32,7 @@ | |||
| #ifndef __JUCE_AUDIOFILTERSTREAMER_JUCEHEADER__ | |||
| #define __JUCE_AUDIOFILTERSTREAMER_JUCEHEADER__ | |||
| #include "../../../../../juce_amalgamated.h" | |||
| #include "../juce_PluginHeaders.h" | |||
| //============================================================================== | |||
| @@ -30,7 +30,7 @@ | |||
| */ | |||
| #include "juce_StandaloneFilterWindow.h" | |||
| #include "../../juce_IncludeCharacteristics.h" | |||
| #include "../juce_PluginHeaders.h" | |||
| //============================================================================== | |||
| /** Somewhere in the codebase of your plugin, you need to implement this function | |||
| @@ -29,19 +29,6 @@ | |||
| ============================================================================== | |||
| */ | |||
| /* | |||
| *** DON'T EDIT THIS FILE!! *** | |||
| The idea is that everyone's plugins should share this same wrapper | |||
| code, so if you start hacking around in here you're missing the point! | |||
| If there's a bug or a function you need that can't be done without changing | |||
| some of the code in here, give me a shout so we can add it to the library, | |||
| rather than branching off and going it alone! | |||
| */ | |||
| //============================================================================== | |||
| #ifdef _MSC_VER | |||
| #pragma warning (disable : 4996) | |||
| #endif | |||
| @@ -62,7 +49,9 @@ | |||
| #define PRAGMA_ALIGN_SUPPORTED 1 | |||
| #endif | |||
| #include "../../juce_IncludeCharacteristics.h" | |||
| #include "../juce_PluginHeaders.h" | |||
| #if JucePlugin_Build_VST | |||
| //============================================================================== | |||
| /* These files come with the Steinberg VST SDK - to get them, you'll need to | |||
| @@ -119,8 +108,7 @@ | |||
| #pragma pack (push, 8) | |||
| #endif | |||
| //#include "../../../../../juce_amalgamated.h" | |||
| #include "../../../../../juce.h" | |||
| #include "../juce_PluginHeaders.h" | |||
| #ifdef _MSC_VER | |||
| #pragma pack (pop) | |||
| @@ -136,6 +124,7 @@ BEGIN_JUCE_NAMESPACE | |||
| extern void juce_callAnyTimersSynchronously(); | |||
| #if JUCE_MAC | |||
| extern void initialiseMac(); | |||
| extern void juce_setCurrentExecutableFileNameFromBundleId (const String& bundleId) throw(); | |||
| extern void* attachComponentToWindowRef (Component* component, void* windowRef); | |||
| extern void detachComponentFromWindowRef (Component* component, void* nsWindow); | |||
| @@ -626,8 +615,7 @@ public: | |||
| filter->setNonRealtime (getCurrentProcessLevel() == 4 /* kVstProcessLevelOffline */); | |||
| #if JUCE_WIN32 | |||
| if (GetThreadPriority (GetCurrentThread()) <= THREAD_PRIORITY_NORMAL | |||
| && GetThreadPriority (GetCurrentThread()) >= THREAD_PRIORITY_LOWEST) | |||
| if (GetThreadPriority (GetCurrentThread()) <= THREAD_PRIORITY_NORMAL) | |||
| filter->setNonRealtime (true); | |||
| #endif | |||
| } | |||
| @@ -1176,8 +1164,11 @@ public: | |||
| } | |||
| #if JUCE_MAC | |||
| detachComponentFromWindowRef (editorComp, hostWindow); | |||
| hostWindow = 0; | |||
| if (hostWindow != 0) | |||
| { | |||
| detachComponentFromWindowRef (editorComp, hostWindow); | |||
| hostWindow = 0; | |||
| } | |||
| #endif | |||
| filter->editorBeingDeleted (editorComp->getEditorComp()); | |||
| @@ -1262,7 +1253,7 @@ public: | |||
| *((ERect**) ptr) = &editorSize; | |||
| return (VstIntPtr) &editorSize; | |||
| return (VstIntPtr) (pointer_sized_int) &editorSize; | |||
| } | |||
| else | |||
| { | |||
| @@ -1495,11 +1486,13 @@ static AEffect* pluginEntryPoint (audioMasterCallback audioMaster) | |||
| extern "C" __attribute__ ((visibility("default"))) AEffect* VSTPluginMain (audioMasterCallback audioMaster) | |||
| { | |||
| initialiseMac(); | |||
| return pluginEntryPoint (audioMaster); | |||
| } | |||
| extern "C" __attribute__ ((visibility("default"))) AEffect* main_macho (audioMasterCallback audioMaster) | |||
| { | |||
| initialiseMac(); | |||
| return pluginEntryPoint (audioMaster); | |||
| } | |||
| @@ -1541,12 +1534,14 @@ extern "C" __declspec (dllexport) AEffect* VSTPluginMain (audioMasterCallback au | |||
| return pluginEntryPoint (audioMaster); | |||
| } | |||
| #ifndef _WIN64 // (can't compile this on win64, but it's not needed anyway with VST2.4) | |||
| extern "C" __declspec (dllexport) void* main (audioMasterCallback audioMaster) | |||
| { | |||
| return (void*) pluginEntryPoint (audioMaster); | |||
| } | |||
| #endif | |||
| BOOL WINAPI DllMain (HINSTANCE instance, DWORD dwReason, LPVOID) | |||
| BOOL WINAPI DllMainVST (HINSTANCE instance, DWORD dwReason, LPVOID) | |||
| { | |||
| if (dwReason == DLL_PROCESS_ATTACH) | |||
| PlatformUtilities::setCurrentModuleInstanceHandle (instance); | |||
| @@ -1555,3 +1550,5 @@ BOOL WINAPI DllMain (HINSTANCE instance, DWORD dwReason, LPVOID) | |||
| } | |||
| #endif | |||
| #endif | |||
| @@ -1,111 +1,171 @@ | |||
| /* | |||
| ============================================================================== | |||
| 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 <Cocoa/Cocoa.h> | |||
| #include "../../../../../juce.h" | |||
| BEGIN_JUCE_NAMESPACE | |||
| void* attachComponentToWindowRef (Component* comp, void* windowRef) | |||
| { | |||
| const ScopedAutoReleasePool pool; | |||
| NSWindow* hostWindow = [[NSWindow alloc] initWithWindowRef: windowRef]; | |||
| [hostWindow retain]; | |||
| [hostWindow setCanHide: YES]; | |||
| [hostWindow setReleasedWhenClosed: YES]; | |||
| NSView* content = [hostWindow contentView]; | |||
| NSRect f = [content frame]; | |||
| NSPoint windowPos = [hostWindow convertBaseToScreen: f.origin]; | |||
| windowPos.y = [[NSScreen mainScreen] frame].size.height - (windowPos.y + f.size.height); | |||
| comp->setTopLeftPosition ((int) windowPos.x, (int) windowPos.y); | |||
| #if ! JucePlugin_EditorRequiresKeyboardFocus | |||
| comp->addToDesktop (ComponentPeer::windowIsTemporary | ComponentPeer::windowIgnoresKeyPresses); | |||
| #else | |||
| comp->addToDesktop (ComponentPeer::windowIsTemporary); | |||
| #endif | |||
| comp->setVisible (true); | |||
| comp->toFront (false); | |||
| NSView* pluginView = (NSView*) comp->getWindowHandle(); | |||
| NSWindow* pluginWindow = [pluginView window]; | |||
| [pluginWindow setExcludedFromWindowsMenu: YES]; | |||
| [hostWindow addChildWindow: pluginWindow | |||
| ordered: NSWindowAbove]; | |||
| [hostWindow orderFront: nil]; | |||
| [pluginWindow orderFront: nil]; | |||
| return hostWindow; | |||
| } | |||
| void detachComponentFromWindowRef (Component* comp, void* nsWindow) | |||
| { | |||
| NSWindow* hostWindow = (NSWindow*) nsWindow; | |||
| if (hostWindow != 0) | |||
| { | |||
| const ScopedAutoReleasePool pool; | |||
| NSView* pluginView = (NSView*) comp->getWindowHandle(); | |||
| NSWindow* pluginWindow = [pluginView window]; | |||
| [hostWindow removeChildWindow: pluginWindow]; | |||
| comp->removeFromDesktop(); | |||
| [hostWindow release]; | |||
| } | |||
| } | |||
| void setNativeHostWindowSize (void* nsWindow, Component* component, int newWidth, int newHeight) | |||
| { | |||
| NSWindow* hostWindow = (NSWindow*) nsWindow; | |||
| if (hostWindow != 0) | |||
| { | |||
| ScopedAutoReleasePool pool; | |||
| NSRect f = [hostWindow frame]; | |||
| f.size.width += newWidth - component->getWidth(); | |||
| f.size.height += newHeight - component->getHeight(); | |||
| [hostWindow setFrame: f display: YES]; | |||
| } | |||
| } | |||
| void checkWindowVisibility (void* nsWindow, Component* comp) | |||
| { | |||
| NSWindow* hostWindow = (NSWindow*) nsWindow; | |||
| comp->setVisible ([hostWindow isVisible]); | |||
| } | |||
| END_JUCE_NAMESPACE | |||
| /* | |||
| ============================================================================== | |||
| 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_IncludeCharacteristics.h" | |||
| #if JucePlugin_Build_VST | |||
| #include <Cocoa/Cocoa.h> | |||
| #define ADD_CARBON_BODGE 1 // see note below.. | |||
| #if ADD_CARBON_BODGE | |||
| #include <Carbon/Carbon.h> | |||
| #endif | |||
| #include "../juce_PluginHeaders.h" | |||
| //============================================================================== | |||
| BEGIN_JUCE_NAMESPACE | |||
| #if ADD_CARBON_BODGE | |||
| /* When you wrap a WindowRef as an NSWindow, it seems to bugger up the HideWindow | |||
| function, so when the host tries (and fails) to hide the window, this catches | |||
| the event and does the job properly. | |||
| */ | |||
| static pascal OSStatus windowVisibilityBodge (EventHandlerCallRef, EventRef e, void* user) | |||
| { | |||
| NSWindow* hostWindow = (NSWindow*) user; | |||
| switch (GetEventKind (e)) | |||
| { | |||
| case kEventWindowShown: | |||
| [hostWindow orderFront: nil]; | |||
| break; | |||
| case kEventWindowHidden: | |||
| [hostWindow orderOut: nil]; | |||
| break; | |||
| } | |||
| return eventNotHandledErr; | |||
| } | |||
| #endif | |||
| //============================================================================== | |||
| void initialiseMac() | |||
| { | |||
| NSApplicationLoad(); | |||
| } | |||
| void* attachComponentToWindowRef (Component* comp, void* windowRef) | |||
| { | |||
| const ScopedAutoReleasePool pool; | |||
| NSWindow* hostWindow = [[NSWindow alloc] initWithWindowRef: windowRef]; | |||
| [hostWindow retain]; | |||
| [hostWindow setCanHide: YES]; | |||
| [hostWindow setReleasedWhenClosed: YES]; | |||
| NSView* content = [hostWindow contentView]; | |||
| NSRect f = [content frame]; | |||
| NSPoint windowPos = [hostWindow convertBaseToScreen: f.origin]; | |||
| windowPos.y = [[NSScreen mainScreen] frame].size.height - (windowPos.y + f.size.height); | |||
| comp->setTopLeftPosition ((int) windowPos.x, (int) windowPos.y); | |||
| #if ! JucePlugin_EditorRequiresKeyboardFocus | |||
| comp->addToDesktop (ComponentPeer::windowIsTemporary | ComponentPeer::windowIgnoresKeyPresses); | |||
| #else | |||
| comp->addToDesktop (ComponentPeer::windowIsTemporary); | |||
| #endif | |||
| comp->setVisible (true); | |||
| comp->toFront (false); | |||
| NSView* pluginView = (NSView*) comp->getWindowHandle(); | |||
| NSWindow* pluginWindow = [pluginView window]; | |||
| [pluginWindow setExcludedFromWindowsMenu: YES]; | |||
| [pluginWindow setCanHide: YES]; | |||
| [hostWindow addChildWindow: pluginWindow | |||
| ordered: NSWindowAbove]; | |||
| [hostWindow orderFront: nil]; | |||
| [pluginWindow orderFront: nil]; | |||
| #if ADD_CARBON_BODGE | |||
| // Adds a callback bodge to work around some problems with wrapped | |||
| // carbon windows.. | |||
| const EventTypeSpec eventsToCatch[] = { | |||
| { kEventClassWindow, kEventWindowShown }, | |||
| { kEventClassWindow, kEventWindowHidden } | |||
| }; | |||
| InstallWindowEventHandler ((WindowRef) windowRef, | |||
| NewEventHandlerUPP (windowVisibilityBodge), | |||
| GetEventTypeCount (eventsToCatch), eventsToCatch, | |||
| (void*) hostWindow, 0); | |||
| #endif | |||
| return hostWindow; | |||
| } | |||
| void detachComponentFromWindowRef (Component* comp, void* nsWindow) | |||
| { | |||
| const ScopedAutoReleasePool pool; | |||
| NSWindow* hostWindow = (NSWindow*) nsWindow; | |||
| NSView* pluginView = (NSView*) comp->getWindowHandle(); | |||
| NSWindow* pluginWindow = [pluginView window]; | |||
| [hostWindow removeChildWindow: pluginWindow]; | |||
| comp->removeFromDesktop(); | |||
| [hostWindow release]; | |||
| } | |||
| void setNativeHostWindowSize (void* nsWindow, Component* component, int newWidth, int newHeight) | |||
| { | |||
| NSWindow* hostWindow = (NSWindow*) nsWindow; | |||
| if (hostWindow != 0) | |||
| { | |||
| ScopedAutoReleasePool pool; | |||
| // Can't use the cocoa NSWindow resizing code, or it messes up in Live. | |||
| Rect r; | |||
| GetWindowBounds ((WindowRef) [hostWindow windowRef], kWindowContentRgn, &r); | |||
| r.right += newWidth - component->getWidth(); | |||
| r.bottom += newHeight - component->getHeight(); | |||
| SetWindowBounds ((WindowRef) [hostWindow windowRef], kWindowContentRgn, &r); | |||
| [[hostWindow contentView] setNeedsDisplay: YES]; | |||
| } | |||
| } | |||
| void checkWindowVisibility (void* nsWindow, Component* comp) | |||
| { | |||
| NSWindow* hostWindow = (NSWindow*) nsWindow; | |||
| comp->setVisible ([hostWindow isVisible]); | |||
| } | |||
| END_JUCE_NAMESPACE | |||
| #endif | |||
| @@ -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.. | |||
| @@ -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" | |||
| @@ -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" | |||
| @@ -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" | |||
| @@ -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" | |||
| @@ -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" | |||
| @@ -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" | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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" | |||
| @@ -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 | |||
| @@ -1,12 +0,0 @@ | |||
| # | |||
| # This file contains a list of the symbols that your VST plugin needs to export. | |||
| # | |||
| # It's very important that you refer to this file in your linker settings, under | |||
| # the "Exported Symbols File" heading. If you don't specify that these are the | |||
| # only two symbols exported, the linker will also export all the Obj-C symbols in | |||
| # Juce, and this will create all sorts of dynamic link problems when you have | |||
| # more than one juce-linked module loaded at the same time. | |||
| # | |||
| _VSTPluginMain | |||
| _main_macho | |||
| @@ -91,8 +91,16 @@ | |||
| #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 | |||
| #if ! (JucePlugin_Build_VST || JucePlugin_Build_AU || JucePlugin_Build_RTAS) | |||
| #error "You need to define at least one plugin format value in your JucePluginCharacteristics.h file!" | |||
| #endif | |||
| #if JucePlugin_Build_VST && (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 | |||
| #if JucePlugin_Build_RTAS && _MSC_VER && ! defined (JucePlugin_WinBag_path) | |||
| #error "You need to define the JucePlugin_WinBag_path value in your JucePluginCharacteristics.h file!" | |||
| #endif | |||
| #endif // __JUCE_INCLUDECHARACTERISTICS_JUCEHEADER__ | |||
| @@ -29,17 +29,5 @@ | |||
| ============================================================================== | |||
| */ | |||
| #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__ | |||
| #include "juce_IncludeCharacteristics.h" | |||
| #include "../../../juce_amalgamated.h" | |||