mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Removed file/folder
This commit is contained in:
parent
a091314554
commit
d648cb3678
51 changed files with 0 additions and 9078 deletions
|
|
@ -1,272 +0,0 @@
|
|||
|
||||
The Juce Audio Plugin project!
|
||||
==============================
|
||||
|
||||
(c) 2005-6 by Raw Material Software, visit www.rawmaterialsoftware.com for more info.
|
||||
|
||||
The idea behind this is to create a framework which lets you write a platform-independent
|
||||
audio plugin using Juce, which can be easily rebuilt to target multiple different plugin
|
||||
formats and platforms.
|
||||
|
||||
|
||||
How does it work?
|
||||
=================
|
||||
|
||||
There's a generic audio plugin base class defined in juce_AudioFilterBase.h, and to write
|
||||
your plugin, you just need to create a sub-class of this.
|
||||
|
||||
You can then compile your class against one or more of the platform-specific projects,
|
||||
so that it gets wrapped as a VST, AudioUnit, RTAS, etc. - hopefully without changing any
|
||||
of your code at all, or having to go anywhere near any platform-specific stuff.
|
||||
|
||||
|
||||
How do I use it?
|
||||
================
|
||||
|
||||
Under the 'wrapper/formats' directory are a bunch of different sets of files containing the
|
||||
wrapper code for each different plugin type.
|
||||
|
||||
There is also a 'demo' folder - this shows an example plugin which can be built in all
|
||||
the different formats. The demo folder contains:
|
||||
|
||||
- a 'src' directory containing the common, platform-independent code that defines this
|
||||
plugin's behaviour
|
||||
- a 'build' directory which contains projects for building the demo for each different
|
||||
platform and format.
|
||||
|
||||
Have a look at the demo classes to see how it works, and then to create a real plugin,
|
||||
you'll need to replace the demo files with your own code.
|
||||
|
||||
I've tried to add helpful comments where you might run across common compile errors, to
|
||||
help describe what you might be doing wrong, as getting a build set-up for some of these
|
||||
formats can be a bit of a pain. Please let me know if you find there's anything missing
|
||||
from these instructions or anything I could change to help smooth the build process along
|
||||
a bit.
|
||||
|
||||
I'd recommend NOT putting your own plugin code inside the JuceAudioPlugin directory - it's
|
||||
much neater to keep it somewhere separate and to alter the projects to point to your
|
||||
files instead of the demo ones. That way when new versions of this library come out, it'll
|
||||
make it easier to update to the latest code.
|
||||
|
||||
For details about how to create your own projects for the various formats, see below.
|
||||
|
||||
|
||||
Sending feedback:
|
||||
=================
|
||||
|
||||
- if you spot a bug or some kind of host incompatibility, tell me, of course!
|
||||
|
||||
- the plan is that no-one should need to change any of the platform-specific code, or the base-class
|
||||
code.. So if you find that your plugin can't do something you want it to, then rather than just
|
||||
jumping in and hacking things to get the functionality you need, why not contact me and we'll
|
||||
figure out a nice generic way of doing it. That way it'll benefit all the users, and you won't
|
||||
have to hack it all over again when the next version comes out.
|
||||
|
||||
- if you're really determined to rewrite large chunks of my code and send it to me to look at,
|
||||
*please* don't reformat anything in your own preferred style, or change the format of the
|
||||
comments, etc.. It's bad enough looking at people's code and trying to figure out why they've
|
||||
done something, but if everything's moved around I can't even diff it..
|
||||
|
||||
|
||||
What are the licensing issues?
|
||||
==============================
|
||||
|
||||
Juce is released under the GPL (Gnu Public License) - this means that you're free to use
|
||||
and redistribute it as long as your products are also released under the GPL. Basically
|
||||
this means that if you use it, you also have to give away your source code.
|
||||
If you want to release a closed-source application, you can buy a commercial license
|
||||
that lets you avoid this restriction - see http://www.rawmaterialsoftware.com/juce for more info,
|
||||
or see the comments at the top of all the Juce source files.
|
||||
|
||||
If you're building the VST projects or releasing a VST, you'll need have a look at Steinberg's
|
||||
developer site to see what licensing rules apply these days. Their website's at
|
||||
http://www.steinberg.net
|
||||
|
||||
If you're building an RTAS then you'll need to sign Digidesign's developer license to get
|
||||
their SDK. Visit http://www.digidesign.com for more info.
|
||||
|
||||
|
||||
-----------------------------------------------------------------------------------------------------
|
||||
|
||||
How to create your own VST project
|
||||
==================================
|
||||
|
||||
- Visit http://www.steinberg.net and jump through whatever hoops are necessary to download
|
||||
and install the VST SDK.
|
||||
- Make sure your include path contains an entry for the "vstsdk2.4" folder containing
|
||||
the SDK.
|
||||
- First try loading the VST demo project in JuceAudioPlugin/demo/build. Hopefully this
|
||||
should build correctly.
|
||||
- To create your own project for a VST, the simplest way is to take a copy of
|
||||
the demo project and go through it carefully, changing any relevent settings to reflect
|
||||
your own project.
|
||||
|
||||
N.B. On the Mac, there's an important point to note about exported symbols.. When XCode builds
|
||||
the plugin, I've had unpredictable results when trying to stop it from exporting all of
|
||||
the internal functions as public symbols. There are some flags that are supposed to turn this
|
||||
off, but sometimes they don't seem to have any effect, and using an explicit exports file also
|
||||
seems a bit hit-and-miss. (If anyone knows better and can get this working, please let me know!)
|
||||
Anyway, as well as being wasteful and showing everyone what's inside your plugin, leaving all
|
||||
the symbols in there will cause fatal crashes when used with Tracktion, or alongside any other
|
||||
Juce-based plugins. A way of making sure your plugin is stripped is to use the command
|
||||
"strip -x -S YourPlugin.vst/Contents/MacOS/YourPlugin" after bulding it, which removes the
|
||||
unnecessary symbols (although in my experience this also doesn't seem to work all the time,
|
||||
so it's a good idea to check it using the unix "nm" command).
|
||||
|
||||
|
||||
-----------------------------------------------------------------------------------------------------
|
||||
|
||||
How to create your own AudioUnit project
|
||||
========================================
|
||||
|
||||
- If you've got XCode installed, the demo project in JuceAudioPlugin/demo/build/AudioUnit
|
||||
should just build. You may need to tweak a few paths to make sure it can find the
|
||||
juce.h include file and juce library.
|
||||
- When copying this project to make your own, a good plan is to open up a view of the settings
|
||||
for the project and target, viewing the "customised settings" to see those values that
|
||||
have to be deliberately set for the plugin to work.
|
||||
|
||||
N.B. For the Mac there can be an issue with exported symbols - see the note about this for
|
||||
VSTs, as the same solution can be used for AudioUnits.
|
||||
|
||||
|
||||
-----------------------------------------------------------------------------------------------------
|
||||
|
||||
How to create your own RTAS project
|
||||
===================================
|
||||
|
||||
|
||||
RTAS is a bit more of a pain to build than VSTs or AUs. To begin with:
|
||||
|
||||
- Contact Digidesign, ask to become a Digidesign Development Partner, sign the relevent
|
||||
agreements and NDAs.
|
||||
- From the Digidesign website, download their latest Plug-In SDK
|
||||
- Install the SDK and build some of the demo plugins to make sure it all works.
|
||||
|
||||
Compiling the juce demo RTAS on the PC:
|
||||
=======================================
|
||||
|
||||
- Using the Digidesign demo projects in the SDK, make sure you've built debug and release
|
||||
versions of these static libraries: DAE.lib, DigiExt.lib, DSI.lib, PlugInLib.lib.
|
||||
|
||||
- In Visual Studio, add all of this lot to your include path:
|
||||
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\EffectClasses
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\ProcessClasses
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\ProcessClasses\Interfaces
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\Utilities
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\RTASP_Adapt
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\CoreClasses
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\Controls
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\Meters
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\ViewClasses
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\DSPClasses
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\PluginLibrary\Interfaces
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\common
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\common\Platform
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\TDMPlugins\SignalProcessing\Public
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\SADriver\Interfaces
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\DigiPublic\Interfaces
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\Fic\Interfaces\DAEClient
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\NewFileLibs\Cmn
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\NewFileLibs\DOA
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\AlturaSource\PPC_H
|
||||
c:\yourdirectory\PT_73_SDK\AlturaPorts\AlturaSource\AppSupport
|
||||
c:\yourdirectory\PT_73_SDK\AvidCode\AVX2sdk\AVX\avx2\avx2sdk\inc
|
||||
|
||||
- The Visual Studio juce_RTAS project contains a folder called "libs", with "debug" and
|
||||
"release" subdirectories - these should contain links to the Digidesign lib files
|
||||
DAE.lib, DigiExt.lib, DSI.lib, PlugInLib.lib - you'll need to update these links to
|
||||
point to the correct locations according to where you've installed the SDK.
|
||||
|
||||
- Fingers crossed, this should now compile..
|
||||
|
||||
- IMPORTANT NOTE! If you're using MSVC2005 to build your plugin, the users will need to
|
||||
have the Microsoft VC8 Runtime installed on their machines, otherwise the DLL will
|
||||
silently fail to load. You should probably add the runtime to your plugin's installer,
|
||||
and you can get a copy of it here:
|
||||
http://www.microsoft.com/downloads/details.aspx?FamilyID=32bc1bee-a3f9-4c13-9c99-220b62a191ee&DisplayLang=en
|
||||
|
||||
|
||||
Creating a project for your own RTAS on the PC:
|
||||
=================================================
|
||||
|
||||
- start a new empty project in Developer Studio, as a "Windows DLL"
|
||||
- in the source tree, create the same folders and add to them the same list of
|
||||
cpp files that are in the demo project's "wrapper code" folder.
|
||||
- select all the CPP files in the "wrapper code/RTAS specific" folder, and also
|
||||
the juce_RTASWrapper.cpp file, (but NOT the juce_RTASUtilities.cpp file or any
|
||||
other files!), and in their properties dialog, under C++/Advanced, change their
|
||||
"Calling convention" setting to "__stdcall".
|
||||
Remember to do this for both your debug and release builds!
|
||||
- in your project's C++/General settings, add an additional include path so that
|
||||
it will be able find your JucePluginCharacteristics.h file.
|
||||
- Under "linker settings", change the output file name to have the suffix ".dpm"
|
||||
instead of ".dll"
|
||||
- Under "linker settings/input/ignore specific library", you'll probably need to
|
||||
add "libcmtd.lib" for debug, and "libcmt.lib" for release.
|
||||
- Under "linkey settings", set the Module definition file to be
|
||||
JuceAudioPlugin/wrapper/formats/RTAS/juce_RTAS_dlldefs.def
|
||||
- You might want to change the output directory to "\Program Files\Common Files\Digidesign\DAE\Plug-Ins\"
|
||||
if you want the built plugin to go directly into the PT plugins folder
|
||||
- Add a custom build step to copy the dummy resource file "JuceAudioPlugin\wrapper\formats\RTAS\DefaultResourceFile"
|
||||
to your target directory, renaming to to be the same as your .dpm file, but with
|
||||
".rsr" on the end of the name. The demo project does this with the command
|
||||
"copy /Y ..\..\..\wrapper\formats\RTAS\DefaultResourceFile "$(TargetPath)".rsr"
|
||||
- Under the "general" properties, make sure that the character set is not unicode, as
|
||||
this seems to stop some of the Digi code building. Hopefully this will be fixed
|
||||
in future SDK releases
|
||||
- add a "libs" folder to your project, and copy the set of libraries from the
|
||||
equivalent folder in the demo project. Make sure you enable the debug/release
|
||||
versions of these libraries appropriately.
|
||||
|
||||
There are quite a few things that you need to get right for an RTAS to compile correctly -
|
||||
the Digi SDK documentation has a full list of tips on setting up a project, but the
|
||||
main ones to note are:
|
||||
|
||||
- the SDK uses __stdcall as its calling convention, but JUCE uses __cdecl. I've got
|
||||
around this by leaving the project's default setting as __cdecl, but changing it
|
||||
specifically for those files that include or build files from the SDK - i.e. for
|
||||
most of the files in the "wrapper code/RTAS specific" folder of the demo project.
|
||||
- the default struct alignment for the SDK is 2 bytes, wheras the default as used in
|
||||
juce is 8 bytes. Again, I've left this at the default setting, and have explicitly
|
||||
changed it with pragmas when including/building SDK files.
|
||||
- even though it's not used, each xx.dpm file needs to have a corresponding
|
||||
xx.dpm.rsr file next to it, or PT will refuse to load it. The demo project currently
|
||||
does this by using a custom build step to copy and rename a small dummy rsr file called
|
||||
JuceAudioPlugin/wrapper/formats/RTAS/DefaultResourceFile
|
||||
|
||||
|
||||
Compiling the juce demo RTAS on the Mac:
|
||||
========================================
|
||||
|
||||
- After installing the Digidesign SDK, make sure you've run the config_SDK_for_Mac command in
|
||||
its root directory. This sets up some of the tools that it needs.
|
||||
- Load the juce_RTASDemo.xcodeproject and look through the project in XCode to find
|
||||
all the broken links to Digidesign files. You'll need to repair these to make them
|
||||
point to the location of the SDK files on your machine.
|
||||
- Open the project's settings, and look for the "MacBag" setting - this defines the location
|
||||
of the MacBag folder in the Digidesign SDK. You'll need to update this to point to
|
||||
its location on your machine.
|
||||
- It should all compile now, fingers crossed..
|
||||
|
||||
- Building a universal binary on the Mac: for this, you'll need to recompile the Digidesign
|
||||
PluginLibrary project as a universal binary. The easiest way to do this is to add the
|
||||
following lines to the top of the CommonDebugSettings.xcconfig and CommonReleaseSettings.xcconfig
|
||||
files (these are found deep in the PT SDK tree somewhere, and are used for config by both the
|
||||
Digi projects and the juce plugin projects):
|
||||
ARCHS = ppc i386
|
||||
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk
|
||||
MACOSX_DEPLOYMENT_TARGET_ppc = 10.3
|
||||
|
||||
|
||||
Creating a new project for your own RTAS plugin on the Mac:
|
||||
===========================================================
|
||||
|
||||
It's probably easiest to take a copy of the juce demo project and go through it changing
|
||||
its settings to those of your plugin.
|
||||
|
||||
If you decide to start from scratch, use the juce demo project as a reference to see
|
||||
what needs to go in there. Looking at its project info for "customised settings" is a good
|
||||
way to see what values have been set deliberately.
|
||||
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string></string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string></string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.rawmaterialsoftware.JuceAUDemo</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Juce Audio Unit Demo</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string></string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0.0</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
#
|
||||
# This file must contain entries for the two AU entry points.
|
||||
#
|
||||
# Your JucePluginCharacteristics.h file must define the prefix used for these function names - for
|
||||
# more info, see the comments in JucePluginCharacteristics.h
|
||||
#
|
||||
|
||||
_JuceDemoAUEntry
|
||||
_JuceDemoAUViewEntry
|
||||
|
|
@ -1,609 +0,0 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 42;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
3E8BF105079CA60300021B09 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D199ED03175E1E01CA2136 /* AUBase.h */; };
|
||||
3E8BF106079CA60300021B09 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D199EF03175E1E01CA2136 /* AUDispatch.h */; };
|
||||
3E8BF107079CA60300021B09 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D199F103175E1E01CA2136 /* AUInputElement.h */; };
|
||||
3E8BF108079CA60300021B09 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D199F303175E1E01CA2136 /* AUOutputElement.h */; };
|
||||
3E8BF109079CA60300021B09 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D199F603175E1E01CA2136 /* AUScopeElement.h */; };
|
||||
3E8BF10A079CA60300021B09 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D199FA03175E1E01CA2136 /* ComponentBase.h */; };
|
||||
3E8BF10B079CA60300021B09 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D199FF03175E1E01CA2136 /* AUEffectBase.h */; };
|
||||
3E8BF10C079CA60300021B09 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D19A0F03175E1E01CA2136 /* AUBuffer.h */; };
|
||||
3E8BF10D079CA60300021B09 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D19A6903175E8C01CA2136 /* CAStreamBasicDescription.h */; };
|
||||
3E8BF10E079CA60300021B09 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 7967EF8C04D70E7C00C625F7 /* CAAudioChannelLayout.h */; };
|
||||
3E8BF113079CA60300021B09 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D199EC03175E1E01CA2136 /* AUBase.cpp */; };
|
||||
3E8BF114079CA60300021B09 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D199EE03175E1E01CA2136 /* AUDispatch.cpp */; };
|
||||
3E8BF115079CA60300021B09 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D199F003175E1E01CA2136 /* AUInputElement.cpp */; };
|
||||
3E8BF116079CA60300021B09 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D199F203175E1E01CA2136 /* AUOutputElement.cpp */; };
|
||||
3E8BF117079CA60300021B09 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D199F503175E1E01CA2136 /* AUScopeElement.cpp */; };
|
||||
3E8BF118079CA60300021B09 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D199F903175E1E01CA2136 /* ComponentBase.cpp */; };
|
||||
3E8BF119079CA60300021B09 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D199FE03175E1E01CA2136 /* AUEffectBase.cpp */; };
|
||||
3E8BF11A079CA60300021B09 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D19A0E03175E1E01CA2136 /* AUBuffer.cpp */; };
|
||||
3E8BF11B079CA60300021B09 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7967EF8B04D70E7C00C625F7 /* CAAudioChannelLayout.cpp */; };
|
||||
3E8BF11C079CA60300021B09 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7967EF8D04D70E7C00C625F7 /* CAStreamBasicDescription.cpp */; };
|
||||
3E8BF11F079CA60300021B09 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5AA9A2F0281AAB901C34293 /* CoreFoundation.framework */; };
|
||||
3E8BF120079CA60300021B09 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5AA9A300281AAB901C34293 /* CoreServices.framework */; };
|
||||
3E8BF121079CA60300021B09 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5DA37E702821D04014500A0 /* Carbon.framework */; };
|
||||
3E8BF122079CA60300021B09 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5D19ABE0317606901CA2136 /* AudioUnit.framework */; };
|
||||
844C50290C71B6E300D0082E /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 844C50280C71B6E300D0082E /* IOKit.framework */; };
|
||||
845FAE5F0A5C0A6A008C94D8 /* juce.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 845FAE5E0A5C0A6A008C94D8 /* juce.xcconfig */; };
|
||||
845FAEE10A5C2696008C94D8 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 845FAEE00A5C2696008C94D8 /* QuickTime.framework */; };
|
||||
84B4CDD10C7DD23B0083122F /* MusicDeviceBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B4CDCF0C7DD23B0083122F /* MusicDeviceBase.cpp */; };
|
||||
84B4CDD20C7DD23B0083122F /* MusicDeviceBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 84B4CDD00C7DD23B0083122F /* MusicDeviceBase.h */; };
|
||||
84BC4E5E0C8DDD3D00FA249B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84BC4E5D0C8DDD3C00FA249B /* OpenGL.framework */; };
|
||||
84CFAEFB090964560053C22C /* AUCarbonViewDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D19AAB03175F3201CA2136 /* AUCarbonViewDispatch.cpp */; };
|
||||
84CFAEFC090964560053C22C /* AUCarbonViewControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D19AA903175F3201CA2136 /* AUCarbonViewControl.cpp */; };
|
||||
84CFAEFD090964560053C22C /* AUCarbonViewBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D19AA703175F3201CA2136 /* AUCarbonViewBase.cpp */; };
|
||||
84CFAF0E090965080053C22C /* CarbonEventHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D19AB003175F3201CA2136 /* CarbonEventHandler.cpp */; };
|
||||
84CFAF10090965080053C22C /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EF64FA42057BC39200D99563 /* CAAUParameter.cpp */; };
|
||||
84CFAFEB0909666C0053C22C /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E8BF154079CA7A800021B09 /* AudioToolbox.framework */; };
|
||||
84CFB029090968590053C22C /* DemoJuceAudioUnit.component in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3E8BF126079CA60300021B09 /* DemoJuceAudioUnit.component */; };
|
||||
84EB400B090A4A2C008FAC1B /* juce_AudioUnitWrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84EB4009090A4A2C008FAC1B /* juce_AudioUnitWrapper.cpp */; };
|
||||
84EB400C090A4A2C008FAC1B /* juce_AudioUnitWrapper.r in Rez */ = {isa = PBXBuildFile; fileRef = 84EB400A090A4A2C008FAC1B /* juce_AudioUnitWrapper.r */; };
|
||||
84EB4042090A4F5A008FAC1B /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4E5DC280898301D00589A5A /* CAVectorUnit.cpp */; };
|
||||
84EB404E090A5116008FAC1B /* JucePluginCharacteristics.h in Headers */ = {isa = PBXBuildFile; fileRef = 84EB404D090A5116008FAC1B /* JucePluginCharacteristics.h */; };
|
||||
84F0521E090674BB00AEC8DB /* Info-JuceAU.plist in Resources */ = {isa = PBXBuildFile; fileRef = 84F05215090674BB00AEC8DB /* Info-JuceAU.plist */; };
|
||||
84F0548F090687F600AEC8DB /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84F0548E090687F600AEC8DB /* CoreAudio.framework */; };
|
||||
84F054E80906C8DD00AEC8DB /* AUMIDIBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84F054E40906C8DD00AEC8DB /* AUMIDIBase.cpp */; };
|
||||
84F054E90906C8DD00AEC8DB /* AUMIDIBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F054E50906C8DD00AEC8DB /* AUMIDIBase.h */; };
|
||||
84F054EA0906C8DD00AEC8DB /* AUMIDIEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84F054E60906C8DD00AEC8DB /* AUMIDIEffectBase.cpp */; };
|
||||
84F054EB0906C8DD00AEC8DB /* AUMIDIEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F054E70906C8DD00AEC8DB /* AUMIDIEffectBase.h */; };
|
||||
84F055010906E9EA00AEC8DB /* DemoEditorComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84F054FD0906E9EA00AEC8DB /* DemoEditorComponent.cpp */; };
|
||||
84F055020906E9EA00AEC8DB /* DemoEditorComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F054FE0906E9EA00AEC8DB /* DemoEditorComponent.h */; };
|
||||
84F055030906E9EA00AEC8DB /* DemoJuceFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84F054FF0906E9EA00AEC8DB /* DemoJuceFilter.cpp */; };
|
||||
84F055040906E9EA00AEC8DB /* DemoJuceFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F055000906E9EA00AEC8DB /* DemoJuceFilter.h */; };
|
||||
84F055260906FBCF00AEC8DB /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F055250906FBCF00AEC8DB /* AUSilentTimeout.h */; };
|
||||
84F87963093B1EDC00225D65 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84F87962093B1EDC00225D65 /* AGL.framework */; };
|
||||
84FDAFE90C15B9E200CD0087 /* libjucedebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 84FDAFBD0C15B8F100CD0087 /* libjucedebug.a */; };
|
||||
A9E885EA0874B5BF00B2DFE8 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = A9E885E90874B5BF00B2DFE8 /* CAThreadSafeList.h */; };
|
||||
F4E5DC2C0898301D00589A5A /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = F4E5DC290898301D00589A5A /* CAVectorUnit.h */; };
|
||||
F4E5DC2D0898301D00589A5A /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = F4E5DC2A0898301D00589A5A /* CAVectorUnitTypes.h */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
84FDAFBC0C15B8F100CD0087 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 84F0545A0906865D00AEC8DB /* Juce.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = D2AAC046055464E500DB518D;
|
||||
remoteInfo = Juce;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
84CFB0240909684B0053C22C /* CopyFiles */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 12;
|
||||
dstPath = "$HOME/Library/Audio/Plug-Ins/Components";
|
||||
dstSubfolderSpec = 0;
|
||||
files = (
|
||||
84CFB029090968590053C22C /* DemoJuceAudioUnit.component in CopyFiles */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
3E3AAA740670E29D00C484A8 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
|
||||
3E8BF126079CA60300021B09 /* DemoJuceAudioUnit.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DemoJuceAudioUnit.component; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
3E8BF154079CA7A800021B09 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
|
||||
7967EF8B04D70E7C00C625F7 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
|
||||
7967EF8C04D70E7C00C625F7 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
|
||||
7967EF8D04D70E7C00C625F7 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
|
||||
844C50280C71B6E300D0082E /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = IOKit.framework; sourceTree = "<group>"; };
|
||||
845FAE5E0A5C0A6A008C94D8 /* juce.xcconfig */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xcconfig; name = juce.xcconfig; path = ../../../../../build/macosx/juce.xcconfig; sourceTree = SOURCE_ROOT; };
|
||||
845FAEE00A5C2696008C94D8 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = QuickTime.framework; sourceTree = "<group>"; };
|
||||
84B4CDCF0C7DD23B0083122F /* MusicDeviceBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = MusicDeviceBase.cpp; path = /Developer/Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/MusicDeviceBase.cpp; sourceTree = "<absolute>"; };
|
||||
84B4CDD00C7DD23B0083122F /* MusicDeviceBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = MusicDeviceBase.h; path = /Developer/Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/MusicDeviceBase.h; sourceTree = "<absolute>"; };
|
||||
84BC4E5D0C8DDD3C00FA249B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
|
||||
84EB4009090A4A2C008FAC1B /* juce_AudioUnitWrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_AudioUnitWrapper.cpp; path = ../../../wrapper/formats/AudioUnit/juce_AudioUnitWrapper.cpp; sourceTree = SOURCE_ROOT; };
|
||||
84EB400A090A4A2C008FAC1B /* juce_AudioUnitWrapper.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; name = juce_AudioUnitWrapper.r; path = ../../../wrapper/formats/AudioUnit/juce_AudioUnitWrapper.r; sourceTree = SOURCE_ROOT; };
|
||||
84EB404D090A5116008FAC1B /* JucePluginCharacteristics.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JucePluginCharacteristics.h; path = ../../src/JucePluginCharacteristics.h; sourceTree = SOURCE_ROOT; };
|
||||
84F05215090674BB00AEC8DB /* Info-JuceAU.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = "Info-JuceAU.plist"; sourceTree = "<group>"; };
|
||||
84F05217090674BB00AEC8DB /* JuceAU.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = JuceAU.exp; sourceTree = "<group>"; };
|
||||
84F0545A0906865D00AEC8DB /* Juce.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Juce.xcodeproj; path = ../../../../../build/macosx/Juce.xcodeproj; sourceTree = SOURCE_ROOT; };
|
||||
84F0548E090687F600AEC8DB /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
|
||||
84F054E40906C8DD00AEC8DB /* AUMIDIBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = AUMIDIBase.cpp; path = /Developer/Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIBase.cpp; sourceTree = "<absolute>"; };
|
||||
84F054E50906C8DD00AEC8DB /* AUMIDIBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = AUMIDIBase.h; path = /Developer/Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIBase.h; sourceTree = "<absolute>"; };
|
||||
84F054E60906C8DD00AEC8DB /* AUMIDIEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = AUMIDIEffectBase.cpp; path = /Developer/Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIEffectBase.cpp; sourceTree = "<absolute>"; };
|
||||
84F054E70906C8DD00AEC8DB /* AUMIDIEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = AUMIDIEffectBase.h; path = /Developer/Examples/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIEffectBase.h; sourceTree = "<absolute>"; };
|
||||
84F054FD0906E9EA00AEC8DB /* DemoEditorComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = DemoEditorComponent.cpp; path = ../../src/DemoEditorComponent.cpp; sourceTree = SOURCE_ROOT; };
|
||||
84F054FE0906E9EA00AEC8DB /* DemoEditorComponent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DemoEditorComponent.h; path = ../../src/DemoEditorComponent.h; sourceTree = SOURCE_ROOT; };
|
||||
84F054FF0906E9EA00AEC8DB /* DemoJuceFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = DemoJuceFilter.cpp; path = ../../src/DemoJuceFilter.cpp; sourceTree = SOURCE_ROOT; };
|
||||
84F055000906E9EA00AEC8DB /* DemoJuceFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DemoJuceFilter.h; path = ../../src/DemoJuceFilter.h; sourceTree = SOURCE_ROOT; };
|
||||
84F055250906FBCF00AEC8DB /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = AUSilentTimeout.h; path = /Developer/Examples/CoreAudio/AudioUnits/AUPublic/Utility/AUSilentTimeout.h; sourceTree = "<absolute>"; };
|
||||
84F87962093B1EDC00225D65 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
|
||||
A3C2CC6105B4A4BE000F141E /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
|
||||
A9E885E90874B5BF00B2DFE8 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
|
||||
EF64FA42057BC39200D99563 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
|
||||
EF64FA43057BC39200D99563 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
|
||||
F4E5DC280898301D00589A5A /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
|
||||
F4E5DC290898301D00589A5A /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
|
||||
F4E5DC2A0898301D00589A5A /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
|
||||
F5AA9A2F0281AAB901C34293 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CoreFoundation.framework; sourceTree = "<group>"; };
|
||||
F5AA9A300281AAB901C34293 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CoreServices.framework; sourceTree = "<group>"; };
|
||||
F5D199EC03175E1E01CA2136 /* AUBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
|
||||
F5D199ED03175E1E01CA2136 /* AUBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
|
||||
F5D199EE03175E1E01CA2136 /* AUDispatch.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
|
||||
F5D199EF03175E1E01CA2136 /* AUDispatch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
|
||||
F5D199F003175E1E01CA2136 /* AUInputElement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
|
||||
F5D199F103175E1E01CA2136 /* AUInputElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
|
||||
F5D199F203175E1E01CA2136 /* AUOutputElement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
|
||||
F5D199F303175E1E01CA2136 /* AUOutputElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
|
||||
F5D199F503175E1E01CA2136 /* AUScopeElement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
|
||||
F5D199F603175E1E01CA2136 /* AUScopeElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
|
||||
F5D199F903175E1E01CA2136 /* ComponentBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
|
||||
F5D199FA03175E1E01CA2136 /* ComponentBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
|
||||
F5D199FE03175E1E01CA2136 /* AUEffectBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
|
||||
F5D199FF03175E1E01CA2136 /* AUEffectBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
|
||||
F5D19A0E03175E1E01CA2136 /* AUBuffer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
|
||||
F5D19A0F03175E1E01CA2136 /* AUBuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
|
||||
F5D19A6903175E8C01CA2136 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
|
||||
F5D19AA703175F3201CA2136 /* AUCarbonViewBase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUCarbonViewBase.cpp; sourceTree = "<group>"; };
|
||||
F5D19AA803175F3201CA2136 /* AUCarbonViewBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUCarbonViewBase.h; sourceTree = "<group>"; };
|
||||
F5D19AA903175F3201CA2136 /* AUCarbonViewControl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUCarbonViewControl.cpp; sourceTree = "<group>"; };
|
||||
F5D19AAA03175F3201CA2136 /* AUCarbonViewControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AUCarbonViewControl.h; sourceTree = "<group>"; };
|
||||
F5D19AAB03175F3201CA2136 /* AUCarbonViewDispatch.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AUCarbonViewDispatch.cpp; sourceTree = "<group>"; };
|
||||
F5D19AB003175F3201CA2136 /* CarbonEventHandler.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CarbonEventHandler.cpp; sourceTree = "<group>"; };
|
||||
F5D19AB103175F3201CA2136 /* CarbonEventHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CarbonEventHandler.h; sourceTree = "<group>"; };
|
||||
F5D19ABE0317606901CA2136 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AudioUnit.framework; sourceTree = "<group>"; };
|
||||
F5DA37E702821D04014500A0 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Carbon.framework; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
3E8BF11E079CA60300021B09 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
84FDAFE90C15B9E200CD0087 /* libjucedebug.a in Frameworks */,
|
||||
84CFAFEB0909666C0053C22C /* AudioToolbox.framework in Frameworks */,
|
||||
3E8BF11F079CA60300021B09 /* CoreFoundation.framework in Frameworks */,
|
||||
3E8BF120079CA60300021B09 /* CoreServices.framework in Frameworks */,
|
||||
3E8BF121079CA60300021B09 /* Carbon.framework in Frameworks */,
|
||||
3E8BF122079CA60300021B09 /* AudioUnit.framework in Frameworks */,
|
||||
84F0548F090687F600AEC8DB /* CoreAudio.framework in Frameworks */,
|
||||
84F87963093B1EDC00225D65 /* AGL.framework in Frameworks */,
|
||||
845FAEE10A5C2696008C94D8 /* QuickTime.framework in Frameworks */,
|
||||
844C50290C71B6E300D0082E /* IOKit.framework in Frameworks */,
|
||||
84BC4E5E0C8DDD3D00FA249B /* OpenGL.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
84EB403B090A4ED3008FAC1B /* Juce AU Code */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84EB4009090A4A2C008FAC1B /* juce_AudioUnitWrapper.cpp */,
|
||||
84EB400A090A4A2C008FAC1B /* juce_AudioUnitWrapper.r */,
|
||||
);
|
||||
name = "Juce AU Code";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
84F0516D09066DB800AEC8DB /* Plugin Code */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84F054FD0906E9EA00AEC8DB /* DemoEditorComponent.cpp */,
|
||||
84F054FE0906E9EA00AEC8DB /* DemoEditorComponent.h */,
|
||||
84F054FF0906E9EA00AEC8DB /* DemoJuceFilter.cpp */,
|
||||
84F055000906E9EA00AEC8DB /* DemoJuceFilter.h */,
|
||||
84EB404D090A5116008FAC1B /* JucePluginCharacteristics.h */,
|
||||
84F05215090674BB00AEC8DB /* Info-JuceAU.plist */,
|
||||
84F05217090674BB00AEC8DB /* JuceAU.exp */,
|
||||
);
|
||||
name = "Plugin Code";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
84F0516E09066DC900AEC8DB /* Wrapper Code */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84EB403B090A4ED3008FAC1B /* Juce AU Code */,
|
||||
F5AA99C50281A64501C34293 /* Apple AU Code */,
|
||||
);
|
||||
name = "Wrapper Code";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
84FDAFB90C15B8F100CD0087 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84FDAFBD0C15B8F100CD0087 /* libjucedebug.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
A3C2CC6005B4A4BE000F141E /* AUViewBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
A3C2CC6105B4A4BE000F141E /* AUViewLocalizedStringKeys.h */,
|
||||
);
|
||||
path = AUViewBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F5AA99B60281A61201C34293 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F5D199EA03175DB401CA2136 /* Source */,
|
||||
845FAE5E0A5C0A6A008C94D8 /* juce.xcconfig */,
|
||||
F5AA99C40281A62C01C34293 /* Products */,
|
||||
F5AA9E890281AAC901C34293 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F5AA99C40281A62C01C34293 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3E8BF126079CA60300021B09 /* DemoJuceAudioUnit.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F5AA99C50281A64501C34293 /* Apple AU Code */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F5D199EB03175E1E01CA2136 /* AUBase */,
|
||||
A3C2CC6005B4A4BE000F141E /* AUViewBase */,
|
||||
F5D19AA603175F3201CA2136 /* AUCarbonViewBase */,
|
||||
F5D199FD03175E1E01CA2136 /* OtherBases */,
|
||||
F5D19A0C03175E1E01CA2136 /* Utility */,
|
||||
F5D19A3603175E8C01CA2136 /* PublicUtility */,
|
||||
);
|
||||
name = "Apple AU Code";
|
||||
path = /Developer/Examples/CoreAudio/AudioUnits/AUPublic;
|
||||
sourceTree = "<absolute>";
|
||||
};
|
||||
F5AA9E890281AAC901C34293 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84F0545A0906865D00AEC8DB /* Juce.xcodeproj */,
|
||||
F5D19ABE0317606901CA2136 /* AudioUnit.framework */,
|
||||
3E8BF154079CA7A800021B09 /* AudioToolbox.framework */,
|
||||
84F0548E090687F600AEC8DB /* CoreAudio.framework */,
|
||||
F5DA37E702821D04014500A0 /* Carbon.framework */,
|
||||
F5AA9A2F0281AAB901C34293 /* CoreFoundation.framework */,
|
||||
F5AA9A300281AAB901C34293 /* CoreServices.framework */,
|
||||
84F87962093B1EDC00225D65 /* AGL.framework */,
|
||||
84BC4E5D0C8DDD3C00FA249B /* OpenGL.framework */,
|
||||
844C50280C71B6E300D0082E /* IOKit.framework */,
|
||||
845FAEE00A5C2696008C94D8 /* QuickTime.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
path = /System/Library/Frameworks;
|
||||
sourceTree = "<absolute>";
|
||||
};
|
||||
F5D199EA03175DB401CA2136 /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84F0516D09066DB800AEC8DB /* Plugin Code */,
|
||||
84F0516E09066DC900AEC8DB /* Wrapper Code */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F5D199EB03175E1E01CA2136 /* AUBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3E3AAA740670E29D00C484A8 /* AUResources.r */,
|
||||
F5D199EC03175E1E01CA2136 /* AUBase.cpp */,
|
||||
F5D199ED03175E1E01CA2136 /* AUBase.h */,
|
||||
F5D199EE03175E1E01CA2136 /* AUDispatch.cpp */,
|
||||
F5D199EF03175E1E01CA2136 /* AUDispatch.h */,
|
||||
F5D199F003175E1E01CA2136 /* AUInputElement.cpp */,
|
||||
F5D199F103175E1E01CA2136 /* AUInputElement.h */,
|
||||
F5D199F203175E1E01CA2136 /* AUOutputElement.cpp */,
|
||||
F5D199F303175E1E01CA2136 /* AUOutputElement.h */,
|
||||
F5D199F503175E1E01CA2136 /* AUScopeElement.cpp */,
|
||||
F5D199F603175E1E01CA2136 /* AUScopeElement.h */,
|
||||
F5D199F903175E1E01CA2136 /* ComponentBase.cpp */,
|
||||
F5D199FA03175E1E01CA2136 /* ComponentBase.h */,
|
||||
);
|
||||
path = AUBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F5D199FD03175E1E01CA2136 /* OtherBases */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84F054E40906C8DD00AEC8DB /* AUMIDIBase.cpp */,
|
||||
84F054E50906C8DD00AEC8DB /* AUMIDIBase.h */,
|
||||
84F054E60906C8DD00AEC8DB /* AUMIDIEffectBase.cpp */,
|
||||
84F054E70906C8DD00AEC8DB /* AUMIDIEffectBase.h */,
|
||||
F5D199FE03175E1E01CA2136 /* AUEffectBase.cpp */,
|
||||
F5D199FF03175E1E01CA2136 /* AUEffectBase.h */,
|
||||
84B4CDCF0C7DD23B0083122F /* MusicDeviceBase.cpp */,
|
||||
84B4CDD00C7DD23B0083122F /* MusicDeviceBase.h */,
|
||||
);
|
||||
path = OtherBases;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F5D19A0C03175E1E01CA2136 /* Utility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F5D19A0E03175E1E01CA2136 /* AUBuffer.cpp */,
|
||||
F5D19A0F03175E1E01CA2136 /* AUBuffer.h */,
|
||||
84F055250906FBCF00AEC8DB /* AUSilentTimeout.h */,
|
||||
);
|
||||
path = Utility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F5D19A3603175E8C01CA2136 /* PublicUtility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F4E5DC280898301D00589A5A /* CAVectorUnit.cpp */,
|
||||
F4E5DC290898301D00589A5A /* CAVectorUnit.h */,
|
||||
F4E5DC2A0898301D00589A5A /* CAVectorUnitTypes.h */,
|
||||
A9E885E90874B5BF00B2DFE8 /* CAThreadSafeList.h */,
|
||||
7967EF8C04D70E7C00C625F7 /* CAAudioChannelLayout.h */,
|
||||
7967EF8B04D70E7C00C625F7 /* CAAudioChannelLayout.cpp */,
|
||||
F5D19A6903175E8C01CA2136 /* CAStreamBasicDescription.h */,
|
||||
7967EF8D04D70E7C00C625F7 /* CAStreamBasicDescription.cpp */,
|
||||
EF64FA42057BC39200D99563 /* CAAUParameter.cpp */,
|
||||
EF64FA43057BC39200D99563 /* CAAUParameter.h */,
|
||||
);
|
||||
name = PublicUtility;
|
||||
path = /Developer/Examples/CoreAudio/PublicUtility;
|
||||
sourceTree = "<absolute>";
|
||||
};
|
||||
F5D19AA603175F3201CA2136 /* AUCarbonViewBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F5D19AA703175F3201CA2136 /* AUCarbonViewBase.cpp */,
|
||||
F5D19AA803175F3201CA2136 /* AUCarbonViewBase.h */,
|
||||
F5D19AA903175F3201CA2136 /* AUCarbonViewControl.cpp */,
|
||||
F5D19AAA03175F3201CA2136 /* AUCarbonViewControl.h */,
|
||||
F5D19AAB03175F3201CA2136 /* AUCarbonViewDispatch.cpp */,
|
||||
F5D19AB003175F3201CA2136 /* CarbonEventHandler.cpp */,
|
||||
F5D19AB103175F3201CA2136 /* CarbonEventHandler.h */,
|
||||
);
|
||||
path = AUCarbonViewBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
3E8BF103079CA60300021B09 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
3E8BF105079CA60300021B09 /* AUBase.h in Headers */,
|
||||
3E8BF106079CA60300021B09 /* AUDispatch.h in Headers */,
|
||||
3E8BF107079CA60300021B09 /* AUInputElement.h in Headers */,
|
||||
3E8BF108079CA60300021B09 /* AUOutputElement.h in Headers */,
|
||||
3E8BF109079CA60300021B09 /* AUScopeElement.h in Headers */,
|
||||
3E8BF10A079CA60300021B09 /* ComponentBase.h in Headers */,
|
||||
3E8BF10B079CA60300021B09 /* AUEffectBase.h in Headers */,
|
||||
3E8BF10C079CA60300021B09 /* AUBuffer.h in Headers */,
|
||||
3E8BF10D079CA60300021B09 /* CAStreamBasicDescription.h in Headers */,
|
||||
3E8BF10E079CA60300021B09 /* CAAudioChannelLayout.h in Headers */,
|
||||
A9E885EA0874B5BF00B2DFE8 /* CAThreadSafeList.h in Headers */,
|
||||
F4E5DC2C0898301D00589A5A /* CAVectorUnit.h in Headers */,
|
||||
F4E5DC2D0898301D00589A5A /* CAVectorUnitTypes.h in Headers */,
|
||||
84F054E90906C8DD00AEC8DB /* AUMIDIBase.h in Headers */,
|
||||
84F054EB0906C8DD00AEC8DB /* AUMIDIEffectBase.h in Headers */,
|
||||
84F055020906E9EA00AEC8DB /* DemoEditorComponent.h in Headers */,
|
||||
84F055040906E9EA00AEC8DB /* DemoJuceFilter.h in Headers */,
|
||||
84F055260906FBCF00AEC8DB /* AUSilentTimeout.h in Headers */,
|
||||
84EB404E090A5116008FAC1B /* JucePluginCharacteristics.h in Headers */,
|
||||
84B4CDD20C7DD23B0083122F /* MusicDeviceBase.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
3E8BF102079CA60300021B09 /* JuceAU */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = A9E884AD0874ABE600B2DFE8 /* Build configuration list for PBXNativeTarget "JuceAU" */;
|
||||
buildPhases = (
|
||||
3E8BF103079CA60300021B09 /* Headers */,
|
||||
3E8BF110079CA60300021B09 /* Resources */,
|
||||
3E8BF111079CA60300021B09 /* Sources */,
|
||||
3E8BF11E079CA60300021B09 /* Frameworks */,
|
||||
3E8BF123079CA60300021B09 /* Rez */,
|
||||
84CFB0240909684B0053C22C /* CopyFiles */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = JuceAU;
|
||||
productInstallPath = "$(USER_LIBRARY_DIR)/Bundles";
|
||||
productName = MultitapAU;
|
||||
productReference = 3E8BF126079CA60300021B09 /* DemoJuceAudioUnit.component */;
|
||||
productType = "com.apple.product-type.bundle";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
F5AA99BA0281A61201C34293 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
buildConfigurationList = A9E884B90874ABE600B2DFE8 /* Build configuration list for PBXProject "JuceDemoAU" */;
|
||||
hasScannedForEncodings = 1;
|
||||
mainGroup = F5AA99B60281A61201C34293;
|
||||
productRefGroup = F5AA99C40281A62C01C34293 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectReferences = (
|
||||
{
|
||||
ProductGroup = 84FDAFB90C15B8F100CD0087 /* Products */;
|
||||
ProjectRef = 84F0545A0906865D00AEC8DB /* Juce.xcodeproj */;
|
||||
},
|
||||
);
|
||||
targets = (
|
||||
3E8BF102079CA60300021B09 /* JuceAU */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXReferenceProxy section */
|
||||
84FDAFBD0C15B8F100CD0087 /* libjucedebug.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libjucedebug.a;
|
||||
remoteRef = 84FDAFBC0C15B8F100CD0087 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
/* End PBXReferenceProxy section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
3E8BF110079CA60300021B09 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
84F0521E090674BB00AEC8DB /* Info-JuceAU.plist in Resources */,
|
||||
845FAE5F0A5C0A6A008C94D8 /* juce.xcconfig in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXRezBuildPhase section */
|
||||
3E8BF123079CA60300021B09 /* Rez */ = {
|
||||
isa = PBXRezBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
84EB400C090A4A2C008FAC1B /* juce_AudioUnitWrapper.r in Rez */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXRezBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
3E8BF111079CA60300021B09 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
3E8BF115079CA60300021B09 /* AUInputElement.cpp in Sources */,
|
||||
3E8BF116079CA60300021B09 /* AUOutputElement.cpp in Sources */,
|
||||
3E8BF117079CA60300021B09 /* AUScopeElement.cpp in Sources */,
|
||||
3E8BF113079CA60300021B09 /* AUBase.cpp in Sources */,
|
||||
3E8BF119079CA60300021B09 /* AUEffectBase.cpp in Sources */,
|
||||
3E8BF114079CA60300021B09 /* AUDispatch.cpp in Sources */,
|
||||
3E8BF11C079CA60300021B09 /* CAStreamBasicDescription.cpp in Sources */,
|
||||
3E8BF11B079CA60300021B09 /* CAAudioChannelLayout.cpp in Sources */,
|
||||
84CFAF0E090965080053C22C /* CarbonEventHandler.cpp in Sources */,
|
||||
84CFAEFB090964560053C22C /* AUCarbonViewDispatch.cpp in Sources */,
|
||||
84CFAEFC090964560053C22C /* AUCarbonViewControl.cpp in Sources */,
|
||||
84CFAEFD090964560053C22C /* AUCarbonViewBase.cpp in Sources */,
|
||||
3E8BF118079CA60300021B09 /* ComponentBase.cpp in Sources */,
|
||||
84CFAF10090965080053C22C /* CAAUParameter.cpp in Sources */,
|
||||
3E8BF11A079CA60300021B09 /* AUBuffer.cpp in Sources */,
|
||||
84F054E80906C8DD00AEC8DB /* AUMIDIBase.cpp in Sources */,
|
||||
84F054EA0906C8DD00AEC8DB /* AUMIDIEffectBase.cpp in Sources */,
|
||||
84F055010906E9EA00AEC8DB /* DemoEditorComponent.cpp in Sources */,
|
||||
84F055030906E9EA00AEC8DB /* DemoJuceFilter.cpp in Sources */,
|
||||
84EB400B090A4A2C008FAC1B /* juce_AudioUnitWrapper.cpp in Sources */,
|
||||
84EB4042090A4F5A008FAC1B /* CAVectorUnit.cpp in Sources */,
|
||||
84B4CDD10C7DD23B0083122F /* MusicDeviceBase.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
A9E884AE0874ABE600B2DFE8 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = NO;
|
||||
EXPORTED_SYMBOLS_FILE = JuceAU.exp;
|
||||
FRAMEWORK_SEARCH_PATHS = "";
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
|
||||
GCC_USE_GCC3_PFE_SUPPORT = YES;
|
||||
INFOPLIST_FILE = "Info-JuceAU.plist";
|
||||
INSTALL_PATH = "/Library/Audio/Plug-Ins/Components/";
|
||||
OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -I / -I /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers";
|
||||
PRODUCT_NAME = "$(AU_NAME)";
|
||||
SECTORDER_FLAGS = "";
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
"-Wno-non-virtual-dtor",
|
||||
);
|
||||
WRAPPER_EXTENSION = component;
|
||||
ZERO_LINK = NO;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
A9E884AF0874ABE600B2DFE8 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = YES;
|
||||
EXPORTED_SYMBOLS_FILE = JuceAU.exp;
|
||||
FRAMEWORK_SEARCH_PATHS = "";
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 3;
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
|
||||
GCC_USE_GCC3_PFE_SUPPORT = YES;
|
||||
INFOPLIST_FILE = "Info-JuceAU.plist";
|
||||
INSTALL_PATH = "/Library/Audio/Plug-Ins/Components/";
|
||||
OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -I / -I /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers";
|
||||
PRODUCT_NAME = "$(AU_NAME)";
|
||||
SECTORDER_FLAGS = "";
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
"-Wno-non-virtual-dtor",
|
||||
);
|
||||
WRAPPER_EXTENSION = component;
|
||||
ZERO_LINK = NO;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
A9E884BA0874ABE600B2DFE8 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 845FAE5E0A5C0A6A008C94D8 /* juce.xcconfig */;
|
||||
buildSettings = {
|
||||
AU_NAME = DemoJuceAudioUnit;
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
|
||||
HEADER_SEARCH_PATHS = ../../../../../;
|
||||
LIBRARY_SEARCH_PATHS = ../../../../../bin;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
A9E884BB0874ABE600B2DFE8 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 845FAE5E0A5C0A6A008C94D8 /* juce.xcconfig */;
|
||||
buildSettings = {
|
||||
AU_NAME = DemoJuceAudioUnit;
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
|
||||
HEADER_SEARCH_PATHS = ../../../../../;
|
||||
LIBRARY_SEARCH_PATHS = ../../../../../bin;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
A9E884AD0874ABE600B2DFE8 /* Build configuration list for PBXNativeTarget "JuceAU" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
A9E884AE0874ABE600B2DFE8 /* Debug */,
|
||||
A9E884AF0874ABE600B2DFE8 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
A9E884B90874ABE600B2DFE8 /* Build configuration list for PBXProject "JuceDemoAU" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
A9E884BA0874ABE600B2DFE8 /* Debug */,
|
||||
A9E884BB0874ABE600B2DFE8 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = F5AA99BA0281A61201C34293 /* Project object */;
|
||||
}
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>EXECUTABLE_NAME</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>VERSION_STR</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.rawmaterialsoftware.JuceDemo</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>PRODUCT_NAME</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>TDMw</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>VERSION_STR</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>PTul</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>VERSION_NUM</string>
|
||||
<key>LSMultipleInstancesProhibited</key>
|
||||
<string>true</string>
|
||||
<key>LSPrefersCarbon</key>
|
||||
<true/>
|
||||
<key>NSAppleScriptEnabled</key>
|
||||
<string>No</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -1,394 +0,0 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 42;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
5B521CB1088F264F009C75FE /* System.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B521CB0088F264F009C75FE /* System.framework */; };
|
||||
841E07300AF9F015005E6FCC /* DemoEditorComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 841E072B0AF9F015005E6FCC /* DemoEditorComponent.cpp */; };
|
||||
841E07310AF9F015005E6FCC /* DemoJuceFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 841E072D0AF9F015005E6FCC /* DemoJuceFilter.cpp */; };
|
||||
841E073D0AF9F099005E6FCC /* juce_RTASUtilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 841E073B0AF9F099005E6FCC /* juce_RTASUtilities.cpp */; };
|
||||
841E073E0AF9F099005E6FCC /* juce_RTASWrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 841E073C0AF9F099005E6FCC /* juce_RTASWrapper.cpp */; };
|
||||
846444EF0AFA005B00E7B2BE /* juce_Wrapper_CEffectGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444E20AFA005B00E7B2BE /* juce_Wrapper_CEffectGroup.cpp */; };
|
||||
846444F00AFA005B00E7B2BE /* juce_Wrapper_CEffectGroupMIDI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444E30AFA005B00E7B2BE /* juce_Wrapper_CEffectGroupMIDI.cpp */; };
|
||||
846444F10AFA005B00E7B2BE /* juce_Wrapper_CEffectMIDIUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444E40AFA005B00E7B2BE /* juce_Wrapper_CEffectMIDIUtils.cpp */; };
|
||||
846444F20AFA005B00E7B2BE /* juce_Wrapper_CEffectProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444E50AFA005B00E7B2BE /* juce_Wrapper_CEffectProcess.cpp */; };
|
||||
846444F30AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessAS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444E60AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessAS.cpp */; };
|
||||
846444F40AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessMIDI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444E70AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessMIDI.cpp */; };
|
||||
846444F50AFA005B00E7B2BE /* juce_Wrapper_CEffectType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444E80AFA005B00E7B2BE /* juce_Wrapper_CEffectType.cpp */; };
|
||||
846444F60AFA005B00E7B2BE /* juce_Wrapper_CEffectTypeRTAS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444E90AFA005B00E7B2BE /* juce_Wrapper_CEffectTypeRTAS.cpp */; };
|
||||
846444F70AFA005B00E7B2BE /* juce_Wrapper_ChunkDataParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444EA0AFA005B00E7B2BE /* juce_Wrapper_ChunkDataParser.cpp */; };
|
||||
846444FA0AFA005B00E7B2BE /* juce_Wrapper_PlugInUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 846444EE0AFA005B00E7B2BE /* juce_Wrapper_PlugInUtils.cpp */; };
|
||||
846445060AFA010800E7B2BE /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 846445040AFA010800E7B2BE /* AGL.framework */; };
|
||||
846445070AFA010800E7B2BE /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 846445050AFA010800E7B2BE /* CoreAudio.framework */; };
|
||||
8464450A0AFA012100E7B2BE /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 846445090AFA012100E7B2BE /* QuickTime.framework */; };
|
||||
84BC4E9C0C8DDF6400FA249B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84BC4E9B0C8DDF6400FA249B /* OpenGL.framework */; };
|
||||
84C9D7FB0AFA3C9C00F1348E /* juce_Wrapper_Dispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84C9D7F90AFA3C9C00F1348E /* juce_Wrapper_Dispatcher.cpp */; };
|
||||
84C9D7FC0AFA3C9C00F1348E /* juce_Wrapper_PluginInitialize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84C9D7FA0AFA3C9C00F1348E /* juce_Wrapper_PluginInitialize.cpp */; };
|
||||
84EEB4180AFB6679009655FF /* DummyResourceFile.r in Rez */ = {isa = PBXBuildFile; fileRef = 84EEB4170AFB6679009655FF /* DummyResourceFile.r */; };
|
||||
84FAD76D0C7C894B00AF3028 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84FAD76C0C7C894B00AF3028 /* IOKit.framework */; };
|
||||
84FAD77B0C7C89E100AF3028 /* libPluginLibrary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 84FAD7770C7C897000AF3028 /* libPluginLibrary.a */; };
|
||||
84FDB0120C15BBCE00CD0087 /* libjucedebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 84FDB0100C15BBA500CD0087 /* libjucedebug.a */; };
|
||||
8D01CCCE0486CAD60068D4B7 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
84FAD7760C7C897000AF3028 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 5B521CEB08916D36009C75FE /* PluginLibrary.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = B65B09B30860FB0800FE2E6A;
|
||||
remoteInfo = "Plugin Library";
|
||||
};
|
||||
84FDB00F0C15BBA500CD0087 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 846444D70AF9FFDB00E7B2BE /* Juce.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = D2AAC046055464E500DB518D;
|
||||
remoteInfo = Juce;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
|
||||
5B521CB0088F264F009C75FE /* System.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = System.framework; path = /System/Library/Frameworks/System.framework; sourceTree = "<absolute>"; };
|
||||
5B521CEB08916D36009C75FE /* PluginLibrary.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = PluginLibrary.xcodeproj; path = /Users/jules/stuff/PT_73_SDK/AlturaPorts/TDMPlugIns/PlugInLibrary/MacBuild/PluginLibrary.xcodeproj; sourceTree = "<absolute>"; };
|
||||
841E072B0AF9F015005E6FCC /* DemoEditorComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = DemoEditorComponent.cpp; path = ../../src/DemoEditorComponent.cpp; sourceTree = SOURCE_ROOT; };
|
||||
841E072C0AF9F015005E6FCC /* DemoEditorComponent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DemoEditorComponent.h; path = ../../src/DemoEditorComponent.h; sourceTree = SOURCE_ROOT; };
|
||||
841E072D0AF9F015005E6FCC /* DemoJuceFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = DemoJuceFilter.cpp; path = ../../src/DemoJuceFilter.cpp; sourceTree = SOURCE_ROOT; };
|
||||
841E072E0AF9F015005E6FCC /* DemoJuceFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DemoJuceFilter.h; path = ../../src/DemoJuceFilter.h; sourceTree = SOURCE_ROOT; };
|
||||
841E072F0AF9F015005E6FCC /* JucePluginCharacteristics.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JucePluginCharacteristics.h; path = ../../src/JucePluginCharacteristics.h; sourceTree = SOURCE_ROOT; };
|
||||
841E073B0AF9F099005E6FCC /* juce_RTASUtilities.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTASUtilities.cpp; path = ../../../wrapper/formats/RTAS/juce_RTASUtilities.cpp; sourceTree = SOURCE_ROOT; };
|
||||
841E073C0AF9F099005E6FCC /* juce_RTASWrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_RTASWrapper.cpp; path = ../../../wrapper/formats/RTAS/juce_RTASWrapper.cpp; sourceTree = SOURCE_ROOT; };
|
||||
841E07420AF9F126005E6FCC /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
846444D70AF9FFDB00E7B2BE /* Juce.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Juce.xcodeproj; path = ../../../../../build/macosx/Juce.xcodeproj; sourceTree = SOURCE_ROOT; };
|
||||
846444E20AFA005B00E7B2BE /* juce_Wrapper_CEffectGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_CEffectGroup.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectGroup.cpp; sourceTree = SOURCE_ROOT; };
|
||||
846444E30AFA005B00E7B2BE /* juce_Wrapper_CEffectGroupMIDI.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_CEffectGroupMIDI.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectGroupMIDI.cpp; sourceTree = SOURCE_ROOT; };
|
||||
846444E40AFA005B00E7B2BE /* juce_Wrapper_CEffectMIDIUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_CEffectMIDIUtils.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectMIDIUtils.cpp; sourceTree = SOURCE_ROOT; };
|
||||
846444E50AFA005B00E7B2BE /* juce_Wrapper_CEffectProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_CEffectProcess.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcess.cpp; sourceTree = SOURCE_ROOT; };
|
||||
846444E60AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessAS.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_CEffectProcessAS.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcessAS.cpp; sourceTree = SOURCE_ROOT; };
|
||||
846444E70AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessMIDI.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_CEffectProcessMIDI.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcessMIDI.cpp; sourceTree = SOURCE_ROOT; };
|
||||
846444E80AFA005B00E7B2BE /* juce_Wrapper_CEffectType.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_CEffectType.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectType.cpp; sourceTree = SOURCE_ROOT; };
|
||||
846444E90AFA005B00E7B2BE /* juce_Wrapper_CEffectTypeRTAS.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_CEffectTypeRTAS.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectTypeRTAS.cpp; sourceTree = SOURCE_ROOT; };
|
||||
846444EA0AFA005B00E7B2BE /* juce_Wrapper_ChunkDataParser.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_ChunkDataParser.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_ChunkDataParser.cpp; sourceTree = SOURCE_ROOT; };
|
||||
846444ED0AFA005B00E7B2BE /* juce_Wrapper_Header.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = juce_Wrapper_Header.h; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_Header.h; sourceTree = SOURCE_ROOT; };
|
||||
846444EE0AFA005B00E7B2BE /* juce_Wrapper_PlugInUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_PlugInUtils.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_PlugInUtils.cpp; sourceTree = SOURCE_ROOT; };
|
||||
846445040AFA010800E7B2BE /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
|
||||
846445050AFA010800E7B2BE /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
|
||||
846445090AFA012100E7B2BE /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = "<absolute>"; };
|
||||
84BC4E9B0C8DDF6400FA249B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
|
||||
84C442690B306D39003FCBFF /* CommonReleaseSettings.xcconfig */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xcconfig; name = CommonReleaseSettings.xcconfig; path = /Users/jules/stuff/PT_73_SDK/AlturaPorts/TDMPlugIns/common/Mac/CommonReleaseSettings.xcconfig; sourceTree = "<absolute>"; };
|
||||
84C4426A0B306D39003FCBFF /* CommonDebugSettings.xcconfig */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xcconfig; name = CommonDebugSettings.xcconfig; path = /Users/jules/stuff/PT_73_SDK/AlturaPorts/TDMPlugIns/common/Mac/CommonDebugSettings.xcconfig; sourceTree = "<absolute>"; };
|
||||
84C9D7F90AFA3C9C00F1348E /* juce_Wrapper_Dispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_Dispatcher.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_Dispatcher.cpp; sourceTree = SOURCE_ROOT; };
|
||||
84C9D7FA0AFA3C9C00F1348E /* juce_Wrapper_PluginInitialize.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Wrapper_PluginInitialize.cpp; path = ../../../wrapper/formats/RTAS/wrappers/juce_Wrapper_PluginInitialize.cpp; sourceTree = SOURCE_ROOT; };
|
||||
84EEB4170AFB6679009655FF /* DummyResourceFile.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; name = DummyResourceFile.r; path = ../../../wrapper/formats/RTAS/DummyResourceFile.r; sourceTree = SOURCE_ROOT; };
|
||||
84F5CF5F0B1B705E00A2E279 /* juce_RTASCompileFlags.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = juce_RTASCompileFlags.h; path = ../../../wrapper/formats/RTAS/juce_RTASCompileFlags.h; sourceTree = SOURCE_ROOT; };
|
||||
84FAD76C0C7C894B00AF3028 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* JuceRTASDemo.dpm */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = JuceRTASDemo.dpm; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
84FAD77B0C7C89E100AF3028 /* libPluginLibrary.a in Frameworks */,
|
||||
84FDB0120C15BBCE00CD0087 /* libjucedebug.a in Frameworks */,
|
||||
8D01CCCE0486CAD60068D4B7 /* Carbon.framework in Frameworks */,
|
||||
5B521CB1088F264F009C75FE /* System.framework in Frameworks */,
|
||||
846445060AFA010800E7B2BE /* AGL.framework in Frameworks */,
|
||||
846445070AFA010800E7B2BE /* CoreAudio.framework in Frameworks */,
|
||||
8464450A0AFA012100E7B2BE /* QuickTime.framework in Frameworks */,
|
||||
84FAD76D0C7C894B00AF3028 /* IOKit.framework in Frameworks */,
|
||||
84BC4E9C0C8DDF6400FA249B /* OpenGL.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
089C166AFE841209C02AAC07 /* ProjectTemplate */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84C442690B306D39003FCBFF /* CommonReleaseSettings.xcconfig */,
|
||||
84C4426A0B306D39003FCBFF /* CommonDebugSettings.xcconfig */,
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = ProjectTemplate;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84BC4E9B0C8DDF6400FA249B /* OpenGL.framework */,
|
||||
84FAD76C0C7C894B00AF3028 /* IOKit.framework */,
|
||||
846445040AFA010800E7B2BE /* AGL.framework */,
|
||||
846445050AFA010800E7B2BE /* CoreAudio.framework */,
|
||||
846445090AFA012100E7B2BE /* QuickTime.framework */,
|
||||
846444D70AF9FFDB00E7B2BE /* Juce.xcodeproj */,
|
||||
5B521CEB08916D36009C75FE /* PluginLibrary.xcodeproj */,
|
||||
5B521CB0088F264F009C75FE /* System.framework */,
|
||||
08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */,
|
||||
);
|
||||
name = "External Frameworks and Libraries";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C167CFE841241C02AAC07 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84EEB4170AFB6679009655FF /* DummyResourceFile.r */,
|
||||
841E07420AF9F126005E6FCC /* Info.plist */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
08FB77ADFE841716C02AAC07 /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
841E07270AF9EFE2005E6FCC /* filter */,
|
||||
841E072A0AF9EFEF005E6FCC /* wrapper */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD20486CAD60068D4B7 /* JuceRTASDemo.dpm */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
841E07270AF9EFE2005E6FCC /* filter */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
841E072B0AF9F015005E6FCC /* DemoEditorComponent.cpp */,
|
||||
841E072C0AF9F015005E6FCC /* DemoEditorComponent.h */,
|
||||
841E072D0AF9F015005E6FCC /* DemoJuceFilter.cpp */,
|
||||
841E072E0AF9F015005E6FCC /* DemoJuceFilter.h */,
|
||||
841E072F0AF9F015005E6FCC /* JucePluginCharacteristics.h */,
|
||||
);
|
||||
name = filter;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
841E072A0AF9EFEF005E6FCC /* wrapper */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
841E07340AF9F02D005E6FCC /* rtas specific */,
|
||||
);
|
||||
name = wrapper;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
841E07340AF9F02D005E6FCC /* rtas specific */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
846444E10AFA003B00E7B2BE /* Digi code wrappers */,
|
||||
841E073B0AF9F099005E6FCC /* juce_RTASUtilities.cpp */,
|
||||
841E073C0AF9F099005E6FCC /* juce_RTASWrapper.cpp */,
|
||||
84F5CF5F0B1B705E00A2E279 /* juce_RTASCompileFlags.h */,
|
||||
);
|
||||
name = "rtas specific";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
846444E10AFA003B00E7B2BE /* Digi code wrappers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84C9D7F90AFA3C9C00F1348E /* juce_Wrapper_Dispatcher.cpp */,
|
||||
84C9D7FA0AFA3C9C00F1348E /* juce_Wrapper_PluginInitialize.cpp */,
|
||||
846444E20AFA005B00E7B2BE /* juce_Wrapper_CEffectGroup.cpp */,
|
||||
846444E30AFA005B00E7B2BE /* juce_Wrapper_CEffectGroupMIDI.cpp */,
|
||||
846444E40AFA005B00E7B2BE /* juce_Wrapper_CEffectMIDIUtils.cpp */,
|
||||
846444E50AFA005B00E7B2BE /* juce_Wrapper_CEffectProcess.cpp */,
|
||||
846444E60AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessAS.cpp */,
|
||||
846444E70AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessMIDI.cpp */,
|
||||
846444E80AFA005B00E7B2BE /* juce_Wrapper_CEffectType.cpp */,
|
||||
846444E90AFA005B00E7B2BE /* juce_Wrapper_CEffectTypeRTAS.cpp */,
|
||||
846444EA0AFA005B00E7B2BE /* juce_Wrapper_ChunkDataParser.cpp */,
|
||||
846444ED0AFA005B00E7B2BE /* juce_Wrapper_Header.h */,
|
||||
846444EE0AFA005B00E7B2BE /* juce_Wrapper_PlugInUtils.cpp */,
|
||||
);
|
||||
name = "Digi code wrappers";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
84FAD7730C7C897000AF3028 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84FAD7770C7C897000AF3028 /* libPluginLibrary.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
84FDB00C0C15BBA500CD0087 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84FDB0100C15BBA500CD0087 /* libjucedebug.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D01CCC60486CAD60068D4B7 /* JuceRTASDemo */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 5B521C99088F2389009C75FE /* Build configuration list for PBXNativeTarget "JuceRTASDemo" */;
|
||||
buildPhases = (
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
5B521D370891748B009C75FE /* Rez */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = JuceRTASDemo;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = ProjectTemplate;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* JuceRTASDemo.dpm */;
|
||||
productType = "com.apple.product-type.bundle";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
buildConfigurationList = 5B521C9D088F2389009C75FE /* Build configuration list for PBXProject "juce_RTASDemo" */;
|
||||
hasScannedForEncodings = 1;
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* ProjectTemplate */;
|
||||
projectDirPath = "";
|
||||
projectReferences = (
|
||||
{
|
||||
ProductGroup = 84FDB00C0C15BBA500CD0087 /* Products */;
|
||||
ProjectRef = 846444D70AF9FFDB00E7B2BE /* Juce.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 84FAD7730C7C897000AF3028 /* Products */;
|
||||
ProjectRef = 5B521CEB08916D36009C75FE /* PluginLibrary.xcodeproj */;
|
||||
},
|
||||
);
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* JuceRTASDemo */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXReferenceProxy section */
|
||||
84FAD7770C7C897000AF3028 /* libPluginLibrary.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libPluginLibrary.a;
|
||||
remoteRef = 84FAD7760C7C897000AF3028 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
84FDB0100C15BBA500CD0087 /* libjucedebug.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libjucedebug.a;
|
||||
remoteRef = 84FDB00F0C15BBA500CD0087 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
/* End PBXReferenceProxy section */
|
||||
|
||||
/* Begin PBXRezBuildPhase section */
|
||||
5B521D370891748B009C75FE /* Rez */ = {
|
||||
isa = PBXRezBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
84EEB4180AFB6679009655FF /* DummyResourceFile.r in Rez */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXRezBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
841E07300AF9F015005E6FCC /* DemoEditorComponent.cpp in Sources */,
|
||||
841E07310AF9F015005E6FCC /* DemoJuceFilter.cpp in Sources */,
|
||||
841E073D0AF9F099005E6FCC /* juce_RTASUtilities.cpp in Sources */,
|
||||
841E073E0AF9F099005E6FCC /* juce_RTASWrapper.cpp in Sources */,
|
||||
846444EF0AFA005B00E7B2BE /* juce_Wrapper_CEffectGroup.cpp in Sources */,
|
||||
846444F00AFA005B00E7B2BE /* juce_Wrapper_CEffectGroupMIDI.cpp in Sources */,
|
||||
846444F10AFA005B00E7B2BE /* juce_Wrapper_CEffectMIDIUtils.cpp in Sources */,
|
||||
846444F20AFA005B00E7B2BE /* juce_Wrapper_CEffectProcess.cpp in Sources */,
|
||||
846444F30AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessAS.cpp in Sources */,
|
||||
846444F40AFA005B00E7B2BE /* juce_Wrapper_CEffectProcessMIDI.cpp in Sources */,
|
||||
846444F50AFA005B00E7B2BE /* juce_Wrapper_CEffectType.cpp in Sources */,
|
||||
846444F60AFA005B00E7B2BE /* juce_Wrapper_CEffectTypeRTAS.cpp in Sources */,
|
||||
846444F70AFA005B00E7B2BE /* juce_Wrapper_ChunkDataParser.cpp in Sources */,
|
||||
846444FA0AFA005B00E7B2BE /* juce_Wrapper_PlugInUtils.cpp in Sources */,
|
||||
84C9D7FB0AFA3C9C00F1348E /* juce_Wrapper_Dispatcher.cpp in Sources */,
|
||||
84C9D7FC0AFA3C9C00F1348E /* juce_Wrapper_PluginInitialize.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
5B521C9A088F2389009C75FE /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
5B521C9E088F2389009C75FE /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 84C4426A0B306D39003FCBFF /* CommonDebugSettings.xcconfig */;
|
||||
buildSettings = {
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
|
||||
MacBag = /Users/jules/stuff/PT_73_SDK/MacBag;
|
||||
PRODUCT_NAME = JuceRTASDemo;
|
||||
USER_HEADER_SEARCH_PATHS = "/Users/jules/code/juce $(inherited)";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
5BEA73AA09E4370600964A97 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
5BEA73AB09E4370600964A97 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 84C442690B306D39003FCBFF /* CommonReleaseSettings.xcconfig */;
|
||||
buildSettings = {
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
|
||||
MacBag = /Users/jules/stuff/PT_73_SDK/MacBag;
|
||||
PRODUCT_NAME = JuceRTASDemo;
|
||||
USER_HEADER_SEARCH_PATHS = "/Users/jules/code/juce $(inherited)";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
5B521C99088F2389009C75FE /* Build configuration list for PBXNativeTarget "JuceRTASDemo" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
5B521C9A088F2389009C75FE /* Debug */,
|
||||
5BEA73AA09E4370600964A97 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
5B521C9D088F2389009C75FE /* Build configuration list for PBXProject "juce_RTASDemo" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
5B521C9E088F2389009C75FE /* Debug */,
|
||||
5BEA73AB09E4370600964A97 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "juce_RTAS", "juce_RTAS.vcproj", "{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26} = {AE232C11-D91C-4CA1-B24E-8B11A52EFF26}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JUCE", "..\..\..\..\..\build\win32\vc8\JUCE.vcproj", "{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug DLL|Win32 = Debug DLL|Win32
|
||||
Debug|Win32 = Debug|Win32
|
||||
DLL Debug|Win32 = DLL Debug|Win32
|
||||
DLL Release|Win32 = DLL Release|Win32
|
||||
Release DLL|Win32 = Release DLL|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.Debug DLL|Win32.ActiveCfg = Debug|Win32
|
||||
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.Debug DLL|Win32.Build.0 = Debug|Win32
|
||||
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.DLL Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.DLL Debug|Win32.Build.0 = Debug|Win32
|
||||
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.DLL Release|Win32.ActiveCfg = Release|Win32
|
||||
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.DLL Release|Win32.Build.0 = Release|Win32
|
||||
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.Release DLL|Win32.ActiveCfg = Release|Win32
|
||||
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.Release DLL|Win32.Build.0 = Release|Win32
|
||||
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}.Release|Win32.Build.0 = Release|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Debug DLL|Win32.ActiveCfg = Debug|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Debug DLL|Win32.Build.0 = Debug|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.DLL Release|Win32.Build.0 = DLL Release|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Release DLL|Win32.ActiveCfg = Release|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Release DLL|Win32.Build.0 = Release|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
@ -1,629 +0,0 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="juce_RTAS"
|
||||
ProjectGUID="{2EB09DDD-CF48-45ED-9698-6C5ADF123C98}"
|
||||
RootNamespace="juce_RTAS"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
CharacterSet="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
CommandLine="copy /Y ..\..\..\wrapper\formats\RTAS\DefaultResourceFile "$(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;JUCE_RTAS_EXPORTS"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)\$(ProjectName).dpm"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories=""
|
||||
IgnoreDefaultLibraryNames="libcmtd.lib"
|
||||
ModuleDefinitionFile="../../../wrapper/formats/RTAS/juce_RTAS_dlldefs.def"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
CharacterSet="0"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
CommandLine="copy /Y ..\..\..\wrapper\formats\RTAS\DefaultResourceFile "$(TargetPath)".rsr
"
|
||||
Outputs="$(TargetPath).rsr"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="../../src"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;JUCE_RTAS_EXPORTS"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
CallingConvention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)\$(ProjectName).dpm"
|
||||
LinkIncremental="1"
|
||||
IgnoreDefaultLibraryNames="libcmt.lib"
|
||||
ModuleDefinitionFile="../../../wrapper/formats/RTAS/juce_RTAS_dlldefs.def"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<Filter
|
||||
Name="filter"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\DemoEditorComponent.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\DemoEditorComponent.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\DemoJuceFilter.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\DemoJuceFilter.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\JucePluginCharacteristics.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="wrapper code"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\juce_RTASCompileFlags.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\juce_RTASUtilities.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\juce_RTASWrapper.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<Filter
|
||||
Name="cpp wrappers"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\juce_RTAS_dlldefs.def"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_CEffectGroup.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_CEffectGroupMIDI.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_CEffectMIDIUtils.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_CEffectProcess.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_CEffectProcessAS.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_CEffectProcessMIDI.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_CEffectType.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_CEffectTypeRTAS.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_ChunkDataParser.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_DefaultSwap.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_DLLMain.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_Header.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\RTAS\wrappers\juce_Wrapper_PlugInUtils.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
CallingConvention="2"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\resource.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\juce_RTASDemo.rc"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="libs"
|
||||
>
|
||||
<Filter
|
||||
Name="debug"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\..\..\..\..\..\essentials\PT_73_SDK\WinBag\Debug\lib\DAE.lib"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\..\..\..\essentials\PT_73_SDK\WinBag\Debug\lib\DigiExt.lib"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\..\..\..\essentials\PT_73_SDK\WinBag\Debug\lib\DSI.lib"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\..\..\..\essentials\PT_73_SDK\WinBag\Debug\lib\PlugInLib.lib"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="release"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\..\..\..\..\..\essentials\PT_73_SDK\WinBag\Release\lib\DAE.lib"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\..\..\..\essentials\PT_73_SDK\WinBag\Release\lib\DigiExt.lib"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\..\..\..\essentials\PT_73_SDK\WinBag\Release\lib\DSI.lib"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\..\..\..\essentials\PT_73_SDK\WinBag\Release\lib\PlugInLib.lib"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.K.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,1
|
||||
PRODUCTVERSION 1,0,0,1
|
||||
FILEFLAGSMASK 0x17L
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "080904b0"
|
||||
BEGIN
|
||||
VALUE "FileDescription", "Juce Audio Plugin RTAS Demo"
|
||||
VALUE "FileVersion", "1, 0, 0, 1"
|
||||
VALUE "InternalName", "Juce RTAS Demo"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2006"
|
||||
VALUE "ProductName", "Juce RTAS Demo"
|
||||
VALUE "ProductVersion", "1, 0, 0, 1"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x809, 1200
|
||||
END
|
||||
END
|
||||
|
||||
#endif // English (U.K.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by juce_RTASDemo.rc
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 101
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1001
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
|
||||
project.name = "JucePluginDemo"
|
||||
project.bindir = "build"
|
||||
project.libdir = "build"
|
||||
|
||||
project.configs = { "Debug", "Release" }
|
||||
|
||||
package = newpackage()
|
||||
package.name = "JucePluginDemo"
|
||||
package.kind = "dll"
|
||||
package.language = "c++"
|
||||
|
||||
package.objdir = "build/intermediate"
|
||||
package.config["Debug"].objdir = "build/intermediate/Debug"
|
||||
package.config["Release"].objdir = "build/intermediate/Release"
|
||||
|
||||
package.config["Debug"].defines = { "LINUX=1", "DEBUG=1", "_DEBUG=1" }
|
||||
package.config["Debug"].buildoptions = { "-O0 -ggdb -g3 -Wall" }
|
||||
|
||||
package.config["Release"].defines = { "LINUX=1", "NDEBUG=1" }
|
||||
package.config["Release"].buildoptions = { "-O2 -s" }
|
||||
|
||||
package.includepaths = {
|
||||
"/usr/include",
|
||||
"../../../../../",
|
||||
"/usr/include/vst/source/common",
|
||||
"/usr/include/vst",
|
||||
"../../src"
|
||||
}
|
||||
|
||||
package.libpaths = {
|
||||
"../../../../../bin",
|
||||
"/usr/X11R6/lib/",
|
||||
"/usr/lib"
|
||||
}
|
||||
|
||||
package.config["Debug"].links = {
|
||||
"freetype", "pthread", "rt", "X11", "GL", "GLU", "Xinerama", "asound", "juce_debug"
|
||||
}
|
||||
|
||||
package.config["Release"].links = {
|
||||
"freetype", "pthread", "rt", "X11", "GL", "GLU", "Xinerama", "asound", "juce"
|
||||
}
|
||||
|
||||
package.files = {
|
||||
matchfiles (
|
||||
"../../../wrapper/*.h",
|
||||
"../../../wrapper/*.cpp",
|
||||
"../../../wrapper/formats/VST/*.cpp"
|
||||
),
|
||||
matchrecursive (
|
||||
"../../src/*.h",
|
||||
"../../src/*.cpp"
|
||||
)
|
||||
}
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>JuceVST</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>Juce VST Demo plugin</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.rawmaterialsoftware.JuceVSTDemo</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>JuceVST</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string></string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>JUCE</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>0.0.1</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>JuceVST</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.rawmaterialsoftware.JuceVST</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<string>yes</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -1,289 +0,0 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 42;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
8456E9D008A29AE60087C412 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8456E9CF08A29AE60087C412 /* CoreServices.framework */; };
|
||||
845FAE4C0A5C09FA008C94D8 /* juce.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 845FAE4B0A5C09FA008C94D8 /* juce.xcconfig */; };
|
||||
84BACBD20987847C0073300C /* juce_VstWrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84BACBD10987847C0073300C /* juce_VstWrapper.cpp */; };
|
||||
84BC4EBC0C8DE02200FA249B /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84BC4EBA0C8DE02200FA249B /* IOKit.framework */; };
|
||||
84BC4EBD0C8DE02200FA249B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84BC4EBB0C8DE02200FA249B /* OpenGL.framework */; };
|
||||
84E1AE51089EBAAA00E85E4F /* DemoEditorComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84E1AE4D089EBAAA00E85E4F /* DemoEditorComponent.cpp */; };
|
||||
84E1AE52089EBAAA00E85E4F /* DemoJuceFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84E1AE4F089EBAAA00E85E4F /* DemoJuceFilter.cpp */; };
|
||||
84E1AF2B089EBE4C00E85E4F /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84E1AF2A089EBE4C00E85E4F /* Carbon.framework */; };
|
||||
84E1AF30089EBE5A00E85E4F /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84E1AF2F089EBE5A00E85E4F /* QuickTime.framework */; };
|
||||
84E1AF34089EBE6C00E85E4F /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84E1AF33089EBE6C00E85E4F /* AGL.framework */; };
|
||||
84E1AF38089EBF1300E85E4F /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84E1AF37089EBF1300E85E4F /* CoreAudio.framework */; };
|
||||
84E1AF42089EBFD900E85E4F /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 84E1AF41089EBFD900E85E4F /* Info.plist */; };
|
||||
84F5CF040B1B66B100A2E279 /* How to use this framework.txt in Resources */ = {isa = PBXBuildFile; fileRef = 84F5CF030B1B66B100A2E279 /* How to use this framework.txt */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
84551AA009BDB8F3009C9F3E /* JucePluginCharacteristics.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JucePluginCharacteristics.h; path = ../../src/JucePluginCharacteristics.h; sourceTree = SOURCE_ROOT; };
|
||||
8456E9CF08A29AE60087C412 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
|
||||
845FAE4B0A5C09FA008C94D8 /* juce.xcconfig */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xcconfig; name = juce.xcconfig; path = ../../../../../build/macosx/juce.xcconfig; sourceTree = SOURCE_ROOT; };
|
||||
84BACBD10987847C0073300C /* juce_VstWrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = juce_VstWrapper.cpp; path = ../../../wrapper/formats/VST/juce_VstWrapper.cpp; sourceTree = SOURCE_ROOT; };
|
||||
84BC4EBA0C8DE02200FA249B /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
|
||||
84BC4EBB0C8DE02200FA249B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
|
||||
84E1AE47089EBA6A00E85E4F /* JuceVST.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = JuceVST.vst; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
84E1AE4D089EBAAA00E85E4F /* DemoEditorComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = DemoEditorComponent.cpp; path = ../../src/DemoEditorComponent.cpp; sourceTree = SOURCE_ROOT; };
|
||||
84E1AE4E089EBAAA00E85E4F /* DemoEditorComponent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DemoEditorComponent.h; path = ../../src/DemoEditorComponent.h; sourceTree = SOURCE_ROOT; };
|
||||
84E1AE4F089EBAAA00E85E4F /* DemoJuceFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = DemoJuceFilter.cpp; path = ../../src/DemoJuceFilter.cpp; sourceTree = SOURCE_ROOT; };
|
||||
84E1AE50089EBAAA00E85E4F /* DemoJuceFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DemoJuceFilter.h; path = ../../src/DemoJuceFilter.h; sourceTree = SOURCE_ROOT; };
|
||||
84E1AF2A089EBE4C00E85E4F /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
|
||||
84E1AF2F089EBE5A00E85E4F /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = "<absolute>"; };
|
||||
84E1AF33089EBE6C00E85E4F /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
|
||||
84E1AF37089EBF1300E85E4F /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
|
||||
84E1AF41089EBFD900E85E4F /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = Info.plist; sourceTree = SOURCE_ROOT; };
|
||||
84F5CF030B1B66B100A2E279 /* How to use this framework.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = "How to use this framework.txt"; path = "../../../How to use this framework.txt"; sourceTree = SOURCE_ROOT; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
84E1AE45089EBA6A00E85E4F /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
84E1AF2B089EBE4C00E85E4F /* Carbon.framework in Frameworks */,
|
||||
84E1AF30089EBE5A00E85E4F /* QuickTime.framework in Frameworks */,
|
||||
84E1AF34089EBE6C00E85E4F /* AGL.framework in Frameworks */,
|
||||
84E1AF38089EBF1300E85E4F /* CoreAudio.framework in Frameworks */,
|
||||
8456E9D008A29AE60087C412 /* CoreServices.framework in Frameworks */,
|
||||
84BC4EBC0C8DE02200FA249B /* IOKit.framework in Frameworks */,
|
||||
84BC4EBD0C8DE02200FA249B /* OpenGL.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
089C166AFE841209C02AAC07 /* JuceVST */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
84F5CF030B1B66B100A2E279 /* How to use this framework.txt */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = JuceVST;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84BC4EBA0C8DE02200FA249B /* IOKit.framework */,
|
||||
84BC4EBB0C8DE02200FA249B /* OpenGL.framework */,
|
||||
84E1AF2A089EBE4C00E85E4F /* Carbon.framework */,
|
||||
8456E9CF08A29AE60087C412 /* CoreServices.framework */,
|
||||
84E1AF37089EBF1300E85E4F /* CoreAudio.framework */,
|
||||
84E1AF33089EBE6C00E85E4F /* AGL.framework */,
|
||||
84E1AF2F089EBE5A00E85E4F /* QuickTime.framework */,
|
||||
);
|
||||
name = "External Frameworks and Libraries";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C167CFE841241C02AAC07 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84E1AF41089EBFD900E85E4F /* Info.plist */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
08FB77ADFE841716C02AAC07 /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84E1AE4C089EBA9300E85E4F /* filter */,
|
||||
84E1AE53089EBACA00E85E4F /* wrapper code */,
|
||||
845FAE4B0A5C09FA008C94D8 /* juce.xcconfig */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84E1AE47089EBA6A00E85E4F /* JuceVST.vst */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
84E1AE4C089EBA9300E85E4F /* filter */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84E1AE4D089EBAAA00E85E4F /* DemoEditorComponent.cpp */,
|
||||
84E1AE4E089EBAAA00E85E4F /* DemoEditorComponent.h */,
|
||||
84E1AE4F089EBAAA00E85E4F /* DemoJuceFilter.cpp */,
|
||||
84E1AE50089EBAAA00E85E4F /* DemoJuceFilter.h */,
|
||||
84551AA009BDB8F3009C9F3E /* JucePluginCharacteristics.h */,
|
||||
);
|
||||
name = filter;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
84E1AE53089EBACA00E85E4F /* wrapper code */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
84BACBD10987847C0073300C /* juce_VstWrapper.cpp */,
|
||||
);
|
||||
name = "wrapper code";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
84E1AE46089EBA6A00E85E4F /* JuceVST */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 84E1AE48089EBA8900E85E4F /* Build configuration list for PBXNativeTarget "JuceVST" */;
|
||||
buildPhases = (
|
||||
84E1AE43089EBA6A00E85E4F /* Resources */,
|
||||
84E1AE44089EBA6A00E85E4F /* Sources */,
|
||||
84E1AE45089EBA6A00E85E4F /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = JuceVST;
|
||||
productName = JuceVST;
|
||||
productReference = 84E1AE47089EBA6A00E85E4F /* JuceVST.vst */;
|
||||
productType = "com.apple.product-type.bundle";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
buildConfigurationList = 84E1ADD2089EB1BA00E85E4F /* Build configuration list for PBXProject "JuceVST" */;
|
||||
hasScannedForEncodings = 1;
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* JuceVST */;
|
||||
projectDirPath = "";
|
||||
targets = (
|
||||
84E1AE46089EBA6A00E85E4F /* JuceVST */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
84E1AE43089EBA6A00E85E4F /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
84E1AF42089EBFD900E85E4F /* Info.plist in Resources */,
|
||||
845FAE4C0A5C09FA008C94D8 /* juce.xcconfig in Resources */,
|
||||
84F5CF040B1B66B100A2E279 /* How to use this framework.txt in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
84E1AE44089EBA6A00E85E4F /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
84E1AE51089EBAAA00E85E4F /* DemoEditorComponent.cpp in Sources */,
|
||||
84E1AE52089EBAAA00E85E4F /* DemoJuceFilter.cpp in Sources */,
|
||||
84BACBD20987847C0073300C /* juce_VstWrapper.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
84E1ADD3089EB1BA00E85E4F /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 845FAE4B0A5C09FA008C94D8 /* juce.xcconfig */;
|
||||
buildSettings = {
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
../../../../..,
|
||||
"~/stuff/vstsdk2.4/",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = ../../../../../bin;
|
||||
OTHER_LDFLAGS = "-ljucedebug";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
84E1ADD4089EB1BA00E85E4F /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 845FAE4B0A5C09FA008C94D8 /* juce.xcconfig */;
|
||||
buildSettings = {
|
||||
GCC_PREPROCESSOR_DEFINITIONS = NDEBUG;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
../../../../..,
|
||||
"~/stuff/vstsdk2.4/",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = ../../../../../bin;
|
||||
OTHER_LDFLAGS = "-ljuce";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
84E1AE49089EBA8900E85E4F /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
|
||||
GENERATE_PKGINFO_FILE = YES;
|
||||
INFOPLIST_FILE = info.plist;
|
||||
PRODUCT_NAME = JuceVST;
|
||||
SYMROOT = "$(HOME)/Library/Audio/Plug-Ins/VST";
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
WRAPPER_EXTENSION = vst;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
84E1AE4A089EBA8900E85E4F /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = YES;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
|
||||
GENERATE_PKGINFO_FILE = YES;
|
||||
INFOPLIST_FILE = info.plist;
|
||||
PRODUCT_NAME = JuceVST;
|
||||
SYMROOT = "$(HOME)/Library/Audio/Plug-Ins/VST";
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
WRAPPER_EXTENSION = vst;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
84E1ADD2089EB1BA00E85E4F /* Build configuration list for PBXProject "JuceVST" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
84E1ADD3089EB1BA00E85E4F /* Debug */,
|
||||
84E1ADD4089EB1BA00E85E4F /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
84E1AE48089EBA8900E85E4F /* Build configuration list for PBXNativeTarget "JuceVST" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
84E1AE49089EBA8900E85E4F /* Debug */,
|
||||
84E1AE4A089EBA8900E85E4F /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildVersion</key>
|
||||
<string>38</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>ProjectName</key>
|
||||
<string>CarbonProjectTemplates</string>
|
||||
<key>SourceVersion</key>
|
||||
<string>140000</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JuceAudioPlugin Demo", "juce_vst.vcproj", "{6F0F1E35-EAF8-431A-83D9-F0340921E560}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26} = {AE232C11-D91C-4CA1-B24E-8B11A52EFF26}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JUCE", "..\..\..\..\..\build\win32\vc8\JUCE.vcproj", "{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
DLL Debug|Win32 = DLL Debug|Win32
|
||||
DLL Release|Win32 = DLL Release|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{6F0F1E35-EAF8-431A-83D9-F0340921E560}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6F0F1E35-EAF8-431A-83D9-F0340921E560}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6F0F1E35-EAF8-431A-83D9-F0340921E560}.DLL Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6F0F1E35-EAF8-431A-83D9-F0340921E560}.DLL Debug|Win32.Build.0 = Debug|Win32
|
||||
{6F0F1E35-EAF8-431A-83D9-F0340921E560}.DLL Release|Win32.ActiveCfg = Release|Win32
|
||||
{6F0F1E35-EAF8-431A-83D9-F0340921E560}.DLL Release|Win32.Build.0 = Release|Win32
|
||||
{6F0F1E35-EAF8-431A-83D9-F0340921E560}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6F0F1E35-EAF8-431A-83D9-F0340921E560}.Release|Win32.Build.0 = Release|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.DLL Release|Win32.Build.0 = DLL Release|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{AE232C11-D91C-4CA1-B24E-8B11A52EFF26}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
@ -1,268 +0,0 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="JuceAudioPlugin Demo"
|
||||
ProjectGUID="{6F0F1E35-EAF8-431A-83D9-F0340921E560}"
|
||||
RootNamespace="JuceAudioPlugin Demo"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Debug/juce_vst.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../src"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;JUCE_VST_EXPORTS"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
RuntimeTypeInfo="true"
|
||||
UsePrecompiledHeader="0"
|
||||
PrecompiledHeaderFile=".\Debug/juce_vst.pch"
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="2057"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile=".\Debug/juce_vst.dll"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
GenerateManifest="false"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\Debug/juce_vst.pdb"
|
||||
ImportLibrary=".\Debug/juce_vst.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile=".\Debug/juce_vst.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\Release"
|
||||
IntermediateDirectory=".\Release"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Release/juce_vst.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="3"
|
||||
InlineFunctionExpansion="1"
|
||||
EnableIntrinsicFunctions="true"
|
||||
FavorSizeOrSpeed="1"
|
||||
WholeProgramOptimization="true"
|
||||
AdditionalIncludeDirectories="../../src"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;JUCE_VST_EXPORTS"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
RuntimeTypeInfo="true"
|
||||
UsePrecompiledHeader="0"
|
||||
PrecompiledHeaderFile=".\Release/juce_vst.pch"
|
||||
AssemblerListingLocation=".\Release/"
|
||||
ObjectFile=".\Release/"
|
||||
ProgramDataBaseFileName=".\Release/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="2057"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile=".\Release/juce_vst.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
GenerateManifest="false"
|
||||
ProgramDatabaseFile=".\Release/juce_vst.pdb"
|
||||
ImportLibrary=".\Release/juce_vst.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile=".\Release/juce_vst.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
>
|
||||
<Filter
|
||||
Name="filter"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\DemoEditorComponent.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\DemoEditorComponent.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\DemoJuceFilter.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\DemoJuceFilter.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\JucePluginCharacteristics.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="wrapper_code"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\..\wrapper\formats\VST\juce_VstWrapper.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath="..\..\readme.txt"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
|
|
@ -1,195 +0,0 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-7 by Raw Material Software ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the
|
||||
GNU General Public License, as published by the Free Software Foundation;
|
||||
either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with JUCE; if not, visit www.gnu.org/licenses or write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
If you'd like to release a closed-source product which uses JUCE, commercial
|
||||
licenses are also available: visit www.rawmaterialsoftware.com/juce for
|
||||
more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#include "../../../../juce.h"
|
||||
#include "DemoEditorComponent.h"
|
||||
|
||||
//==============================================================================
|
||||
// quick-and-dirty function to format a timecode string
|
||||
static const String timeToTimecodeString (const double seconds)
|
||||
{
|
||||
const double absSecs = fabs (seconds);
|
||||
const tchar* const sign = (seconds < 0) ? T("-") : T("");
|
||||
|
||||
const int hours = (int) (absSecs / (60.0 * 60.0));
|
||||
const int mins = ((int) (absSecs / 60.0)) % 60;
|
||||
const int secs = ((int) absSecs) % 60;
|
||||
|
||||
return String::formatted (T("%s%02d:%02d:%02d:%03d"),
|
||||
sign, hours, mins, secs,
|
||||
roundDoubleToInt (absSecs * 1000) % 1000);
|
||||
}
|
||||
|
||||
// quick-and-dirty function to format a bars/beats string
|
||||
static const String ppqToBarsBeatsString (const double ppq,
|
||||
const double lastBarPPQ,
|
||||
const int numerator,
|
||||
const int denominator)
|
||||
{
|
||||
if (numerator == 0 || denominator == 0)
|
||||
return T("1|1|0");
|
||||
|
||||
const int ppqPerBar = (numerator * 4 / denominator);
|
||||
const double beats = (fmod (ppq, ppqPerBar) / ppqPerBar) * numerator;
|
||||
|
||||
const int bar = ((int) ppq) / ppqPerBar + 1;
|
||||
const int beat = ((int) beats) + 1;
|
||||
const int ticks = ((int) (fmod (beats, 1.0) * 960.0));
|
||||
|
||||
String s;
|
||||
s << bar << T('|') << beat << T('|') << ticks;
|
||||
return s;
|
||||
}
|
||||
|
||||
|
||||
//==============================================================================
|
||||
DemoEditorComponent::DemoEditorComponent (DemoJuceFilter* const ownerFilter)
|
||||
: AudioProcessorEditor (ownerFilter)
|
||||
{
|
||||
// create our gain slider..
|
||||
addAndMakeVisible (gainSlider = new Slider (T("gain")));
|
||||
gainSlider->addListener (this);
|
||||
gainSlider->setRange (0.0, 1.0, 0.01);
|
||||
gainSlider->setTooltip (T("changes the volume of the audio that runs through the plugin.."));
|
||||
|
||||
// get the gain parameter from the filter and use it to set up our slider
|
||||
gainSlider->setValue (ownerFilter->getParameter (0), false);
|
||||
|
||||
// create and add the midi keyboard component..
|
||||
addAndMakeVisible (midiKeyboard
|
||||
= new MidiKeyboardComponent (ownerFilter->keyboardState,
|
||||
MidiKeyboardComponent::horizontalKeyboard));
|
||||
|
||||
// add a label that will display the current timecode and status..
|
||||
addAndMakeVisible (infoLabel = new Label (String::empty, String::empty));
|
||||
|
||||
// add the triangular resizer component for the bottom-right of the UI
|
||||
addAndMakeVisible (resizer = new ResizableCornerComponent (this, &resizeLimits));
|
||||
resizeLimits.setSizeLimits (150, 150, 800, 300);
|
||||
|
||||
// set our component's initial size to be the last one that was stored in the filter's settings
|
||||
setSize (ownerFilter->lastUIWidth,
|
||||
ownerFilter->lastUIHeight);
|
||||
|
||||
// register ourselves with the filter - it will use its ChangeBroadcaster base
|
||||
// class to tell us when something has changed, and this will call our changeListenerCallback()
|
||||
// method.
|
||||
ownerFilter->addChangeListener (this);
|
||||
}
|
||||
|
||||
DemoEditorComponent::~DemoEditorComponent()
|
||||
{
|
||||
getFilter()->removeChangeListener (this);
|
||||
|
||||
deleteAllChildren();
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void DemoEditorComponent::paint (Graphics& g)
|
||||
{
|
||||
// just clear the window
|
||||
g.fillAll (Colour::greyLevel (0.9f));
|
||||
}
|
||||
|
||||
void DemoEditorComponent::resized()
|
||||
{
|
||||
gainSlider->setBounds (10, 10, 200, 22);
|
||||
infoLabel->setBounds (10, 35, 450, 20);
|
||||
|
||||
const int keyboardHeight = 70;
|
||||
midiKeyboard->setBounds (4, getHeight() - keyboardHeight - 4,
|
||||
getWidth() - 8, keyboardHeight);
|
||||
|
||||
resizer->setBounds (getWidth() - 16, getHeight() - 16, 16, 16);
|
||||
|
||||
// if we've been resized, tell the filter so that it can store the new size
|
||||
// in its settings
|
||||
getFilter()->lastUIWidth = getWidth();
|
||||
getFilter()->lastUIHeight = getHeight();
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void DemoEditorComponent::changeListenerCallback (void* source)
|
||||
{
|
||||
// this is the filter telling us that it's changed, so we'll update our
|
||||
// display of the time, midi message, etc.
|
||||
updateParametersFromFilter();
|
||||
}
|
||||
|
||||
void DemoEditorComponent::sliderValueChanged (Slider*)
|
||||
{
|
||||
getFilter()->setParameterNotifyingHost (0, (float) gainSlider->getValue());
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void DemoEditorComponent::updateParametersFromFilter()
|
||||
{
|
||||
DemoJuceFilter* const filter = getFilter();
|
||||
|
||||
// we use this lock to make sure the processBlock() method isn't writing to the
|
||||
// lastMidiMessage variable while we're trying to read it, but be extra-careful to
|
||||
// only hold the lock for a minimum amount of time..
|
||||
filter->getCallbackLock().enter();
|
||||
|
||||
// take a local copy of the info we need while we've got the lock..
|
||||
const AudioPlayHead::CurrentPositionInfo positionInfo (filter->lastPosInfo);
|
||||
const float newGain = filter->getParameter (0);
|
||||
|
||||
// ..release the lock ASAP
|
||||
filter->getCallbackLock().exit();
|
||||
|
||||
|
||||
// ..and after releasing the lock, we're free to do the time-consuming UI stuff..
|
||||
String infoText;
|
||||
infoText << String (positionInfo.bpm, 2) << T(" bpm, ")
|
||||
<< positionInfo.timeSigNumerator << T("/") << positionInfo.timeSigDenominator
|
||||
<< T(" - ") << timeToTimecodeString (positionInfo.timeInSeconds)
|
||||
<< T(" - ") << ppqToBarsBeatsString (positionInfo.ppqPosition,
|
||||
positionInfo.ppqPositionOfLastBarStart,
|
||||
positionInfo.timeSigNumerator,
|
||||
positionInfo.timeSigDenominator);
|
||||
|
||||
if (positionInfo.isPlaying)
|
||||
infoText << T(" (playing)");
|
||||
|
||||
infoLabel->setText (infoText, false);
|
||||
|
||||
/* Update our slider.
|
||||
|
||||
(note that it's important here to tell the slider not to send a change
|
||||
message, because that would cause it to call the filter with a parameter
|
||||
change message again, and the values would drift out.
|
||||
*/
|
||||
gainSlider->setValue (newGain, false);
|
||||
|
||||
setSize (filter->lastUIWidth,
|
||||
filter->lastUIHeight);
|
||||
}
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-7 by Raw Material Software ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the
|
||||
GNU General Public License, as published by the Free Software Foundation;
|
||||
either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with JUCE; if not, visit www.gnu.org/licenses or write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
If you'd like to release a closed-source product which uses JUCE, commercial
|
||||
licenses are also available: visit www.rawmaterialsoftware.com/juce for
|
||||
more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#ifndef DEMOJUCEPLUGINEDITOR_H
|
||||
#define DEMOJUCEPLUGINEDITOR_H
|
||||
|
||||
#include "DemoJuceFilter.h"
|
||||
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
This is the Component that our filter will use as its UI.
|
||||
|
||||
One or more of these is created by the DemoJuceFilter::createEditor() method,
|
||||
and they will be deleted at some later time by the wrapper code.
|
||||
|
||||
To demonstrate the correct way of connecting a filter to its UI, this
|
||||
class is a ChangeListener, and our demo filter is a ChangeBroadcaster. The
|
||||
editor component registers with the filter when it's created and deregisters
|
||||
when it's destroyed. When the filter's parameters are changed, it broadcasts
|
||||
a message and this editor responds by updating its display.
|
||||
*/
|
||||
class DemoEditorComponent : public AudioProcessorEditor,
|
||||
public ChangeListener,
|
||||
public SliderListener
|
||||
{
|
||||
public:
|
||||
/** Constructor.
|
||||
|
||||
When created, this will register itself with the filter for changes. It's
|
||||
safe to assume that the filter won't be deleted before this object is.
|
||||
*/
|
||||
DemoEditorComponent (DemoJuceFilter* const ownerFilter);
|
||||
|
||||
/** Destructor. */
|
||||
~DemoEditorComponent();
|
||||
|
||||
//==============================================================================
|
||||
/** Our demo filter is a ChangeBroadcaster, and will call us back when one of
|
||||
its parameters changes.
|
||||
*/
|
||||
void changeListenerCallback (void* source);
|
||||
|
||||
void sliderValueChanged (Slider*);
|
||||
|
||||
//==============================================================================
|
||||
/** Standard Juce paint callback. */
|
||||
void paint (Graphics& g);
|
||||
|
||||
/** Standard Juce resize callback. */
|
||||
void resized();
|
||||
|
||||
|
||||
private:
|
||||
//==============================================================================
|
||||
Slider* gainSlider;
|
||||
MidiKeyboardComponent* midiKeyboard;
|
||||
Label* infoLabel;
|
||||
ResizableCornerComponent* resizer;
|
||||
ComponentBoundsConstrainer resizeLimits;
|
||||
TooltipWindow tooltipWindow;
|
||||
|
||||
void updateParametersFromFilter();
|
||||
|
||||
// handy wrapper method to avoid having to cast the filter to a DemoJuceFilter
|
||||
// every time we need it..
|
||||
DemoJuceFilter* getFilter() const throw() { return (DemoJuceFilter*) getAudioProcessor(); }
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
|
@ -1,236 +0,0 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-7 by Raw Material Software ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the
|
||||
GNU General Public License, as published by the Free Software Foundation;
|
||||
either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with JUCE; if not, visit www.gnu.org/licenses or write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
If you'd like to release a closed-source product which uses JUCE, commercial
|
||||
licenses are also available: visit www.rawmaterialsoftware.com/juce for
|
||||
more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#include "../../../../juce.h"
|
||||
#include "DemoJuceFilter.h"
|
||||
#include "DemoEditorComponent.h"
|
||||
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
This function must be implemented to create a new instance of your
|
||||
plugin object.
|
||||
*/
|
||||
AudioProcessor* JUCE_CALLTYPE createPluginFilter()
|
||||
{
|
||||
return new DemoJuceFilter();
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
DemoJuceFilter::DemoJuceFilter()
|
||||
{
|
||||
gain = 1.0f;
|
||||
lastUIWidth = 400;
|
||||
lastUIHeight = 140;
|
||||
|
||||
zeromem (&lastPosInfo, sizeof (lastPosInfo));
|
||||
lastPosInfo.timeSigNumerator = 4;
|
||||
lastPosInfo.timeSigDenominator = 4;
|
||||
lastPosInfo.bpm = 120;
|
||||
}
|
||||
|
||||
DemoJuceFilter::~DemoJuceFilter()
|
||||
{
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
int DemoJuceFilter::getNumParameters()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
float DemoJuceFilter::getParameter (int index)
|
||||
{
|
||||
return (index == 0) ? gain
|
||||
: 0.0f;
|
||||
}
|
||||
|
||||
void DemoJuceFilter::setParameter (int index, float newValue)
|
||||
{
|
||||
if (index == 0)
|
||||
{
|
||||
if (gain != newValue)
|
||||
{
|
||||
gain = newValue;
|
||||
|
||||
// if this is changing the gain, broadcast a change message which
|
||||
// our editor will pick up.
|
||||
sendChangeMessage (this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const String DemoJuceFilter::getParameterName (int index)
|
||||
{
|
||||
if (index == 0)
|
||||
return T("gain");
|
||||
|
||||
return String::empty;
|
||||
}
|
||||
|
||||
const String DemoJuceFilter::getParameterText (int index)
|
||||
{
|
||||
if (index == 0)
|
||||
return String (gain, 2);
|
||||
|
||||
return String::empty;
|
||||
}
|
||||
|
||||
const String DemoJuceFilter::getInputChannelName (const int channelIndex) const
|
||||
{
|
||||
return String (channelIndex + 1);
|
||||
}
|
||||
|
||||
const String DemoJuceFilter::getOutputChannelName (const int channelIndex) const
|
||||
{
|
||||
return String (channelIndex + 1);
|
||||
}
|
||||
|
||||
bool DemoJuceFilter::isInputChannelStereoPair (int index) const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool DemoJuceFilter::isOutputChannelStereoPair (int index) const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void DemoJuceFilter::prepareToPlay (double sampleRate, int samplesPerBlock)
|
||||
{
|
||||
// do your pre-playback setup stuff here..
|
||||
keyboardState.reset();
|
||||
}
|
||||
|
||||
void DemoJuceFilter::releaseResources()
|
||||
{
|
||||
// when playback stops, you can use this as an opportunity to free up any
|
||||
// spare memory, etc.
|
||||
}
|
||||
|
||||
void DemoJuceFilter::processBlock (AudioSampleBuffer& buffer,
|
||||
MidiBuffer& midiMessages)
|
||||
{
|
||||
// for each of our input channels, we'll attenuate its level by the
|
||||
// amount that our volume parameter is set to.
|
||||
for (int channel = 0; channel < getNumInputChannels(); ++channel)
|
||||
{
|
||||
buffer.applyGain (channel, 0, buffer.getNumSamples(), gain);
|
||||
}
|
||||
|
||||
// in case we have more outputs than inputs, we'll clear any output
|
||||
// channels that didn't contain input data, (because these aren't
|
||||
// guaranteed to be empty - they may contain garbage).
|
||||
for (int i = getNumInputChannels(); i < getNumOutputChannels(); ++i)
|
||||
{
|
||||
buffer.clear (i, 0, buffer.getNumSamples());
|
||||
}
|
||||
|
||||
// if any midi messages come in, use them to update the keyboard state object. This
|
||||
// object sends notification to the UI component about key up/down changes
|
||||
keyboardState.processNextMidiBuffer (midiMessages,
|
||||
0, buffer.getNumSamples(),
|
||||
true);
|
||||
|
||||
// have a go at getting the current time from the host, and if it's changed, tell
|
||||
// our UI to update itself.
|
||||
AudioPlayHead::CurrentPositionInfo pos;
|
||||
|
||||
if (getPlayHead() != 0 && getPlayHead()->getCurrentPosition (pos))
|
||||
{
|
||||
if (memcmp (&pos, &lastPosInfo, sizeof (pos)) != 0)
|
||||
{
|
||||
lastPosInfo = pos;
|
||||
sendChangeMessage (this);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
zeromem (&lastPosInfo, sizeof (lastPosInfo));
|
||||
lastPosInfo.timeSigNumerator = 4;
|
||||
lastPosInfo.timeSigDenominator = 4;
|
||||
lastPosInfo.bpm = 120;
|
||||
}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
AudioProcessorEditor* DemoJuceFilter::createEditor()
|
||||
{
|
||||
return new DemoEditorComponent (this);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void DemoJuceFilter::getStateInformation (MemoryBlock& destData)
|
||||
{
|
||||
// you can store your parameters as binary data if you want to or if you've got
|
||||
// a load of binary to put in there, but if you're not doing anything too heavy,
|
||||
// XML is a much cleaner way of doing it - here's an example of how to store your
|
||||
// params as XML..
|
||||
|
||||
// create an outer XML element..
|
||||
XmlElement xmlState (T("MYPLUGINSETTINGS"));
|
||||
|
||||
// add some attributes to it..
|
||||
xmlState.setAttribute (T("pluginVersion"), 1);
|
||||
xmlState.setAttribute (T("gainLevel"), gain);
|
||||
xmlState.setAttribute (T("uiWidth"), lastUIWidth);
|
||||
xmlState.setAttribute (T("uiHeight"), lastUIHeight);
|
||||
|
||||
// you could also add as many child elements as you need to here..
|
||||
|
||||
|
||||
// then use this helper function to stuff it into the binary blob and return it..
|
||||
copyXmlToBinary (xmlState, destData);
|
||||
}
|
||||
|
||||
void DemoJuceFilter::setStateInformation (const void* data, int sizeInBytes)
|
||||
{
|
||||
// use this helper function to get the XML from this binary blob..
|
||||
XmlElement* const xmlState = getXmlFromBinary (data, sizeInBytes);
|
||||
|
||||
if (xmlState != 0)
|
||||
{
|
||||
// check that it's the right type of xml..
|
||||
if (xmlState->hasTagName (T("MYPLUGINSETTINGS")))
|
||||
{
|
||||
// ok, now pull out our parameters..
|
||||
gain = (float) xmlState->getDoubleAttribute (T("gainLevel"), gain);
|
||||
|
||||
lastUIWidth = xmlState->getIntAttribute (T("uiWidth"), lastUIWidth);
|
||||
lastUIHeight = xmlState->getIntAttribute (T("uiHeight"), lastUIHeight);
|
||||
|
||||
sendChangeMessage (this);
|
||||
}
|
||||
|
||||
delete xmlState;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-7 by Raw Material Software ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the
|
||||
GNU General Public License, as published by the Free Software Foundation;
|
||||
either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with JUCE; if not, visit www.gnu.org/licenses or write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
If you'd like to release a closed-source product which uses JUCE, commercial
|
||||
licenses are also available: visit www.rawmaterialsoftware.com/juce for
|
||||
more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#ifndef DEMOJUCEPLUGINFILTER_H
|
||||
#define DEMOJUCEPLUGINFILTER_H
|
||||
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
A simple plugin filter that just applies a gain change to the audio
|
||||
passing through it.
|
||||
|
||||
*/
|
||||
class DemoJuceFilter : public AudioProcessor,
|
||||
public ChangeBroadcaster
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
DemoJuceFilter();
|
||||
~DemoJuceFilter();
|
||||
|
||||
//==============================================================================
|
||||
void prepareToPlay (double sampleRate, int samplesPerBlock);
|
||||
void releaseResources();
|
||||
|
||||
void processBlock (AudioSampleBuffer& buffer,
|
||||
MidiBuffer& midiMessages);
|
||||
|
||||
//==============================================================================
|
||||
AudioProcessorEditor* createEditor();
|
||||
|
||||
//==============================================================================
|
||||
int getNumParameters();
|
||||
|
||||
float getParameter (int index);
|
||||
void setParameter (int index, float newValue);
|
||||
|
||||
const String getParameterName (int index);
|
||||
const String getParameterText (int index);
|
||||
|
||||
const String getInputChannelName (const int channelIndex) const;
|
||||
const String getOutputChannelName (const int channelIndex) const;
|
||||
bool isInputChannelStereoPair (int index) const;
|
||||
bool isOutputChannelStereoPair (int index) const;
|
||||
|
||||
//==============================================================================
|
||||
int getNumPrograms() { return 0; }
|
||||
int getCurrentProgram() { return 0; }
|
||||
void setCurrentProgram (int index) { }
|
||||
const String getProgramName (int index) { return String::empty; }
|
||||
void changeProgramName (int index, const String& newName) { }
|
||||
|
||||
//==============================================================================
|
||||
void getStateInformation (MemoryBlock& destData);
|
||||
void setStateInformation (const void* data, int sizeInBytes);
|
||||
|
||||
//==============================================================================
|
||||
// These properties are public so that our editor component can access them
|
||||
// - a bit of a hacky way to do it, but it's only a demo!
|
||||
|
||||
// this is kept up to date with the midi messages that arrive, and the UI component
|
||||
// registers with it so it can represent the incoming messages
|
||||
MidiKeyboardState keyboardState;
|
||||
|
||||
// this keeps a copy of the last set of time info that was acquired during an audio
|
||||
// callback - the UI component will read this and display it.
|
||||
AudioPlayHead::CurrentPositionInfo lastPosInfo;
|
||||
|
||||
// these are used to persist the UI's size - the values are stored along with the
|
||||
// filter's other parameters, and the UI component will update them when it gets
|
||||
// resized.
|
||||
int lastUIWidth, lastUIHeight;
|
||||
|
||||
//==============================================================================
|
||||
juce_UseDebuggingNewOperator
|
||||
|
||||
private:
|
||||
// this is our gain - the UI and the host can access this by getting/setting
|
||||
// parameter 0.
|
||||
float gain;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
|
@ -1,270 +0,0 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-7 by Raw Material Software ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the
|
||||
GNU General Public License, as published by the Free Software Foundation;
|
||||
either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with JUCE; if not, visit www.gnu.org/licenses or write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
If you'd like to release a closed-source product which uses JUCE, commercial
|
||||
licenses are also available: visit www.rawmaterialsoftware.com/juce for
|
||||
more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#ifndef __JUCE_PLUGIN_CHARACTERISTICS_H__
|
||||
#define __JUCE_PLUGIN_CHARACTERISTICS_H__
|
||||
|
||||
|
||||
//==============================================================================
|
||||
/* All of the following settings need to be defined for your plugin.
|
||||
|
||||
Go through each of these definitions and check that it's correctly
|
||||
set-up before trying to do a build.
|
||||
*/
|
||||
|
||||
//==============================================================================
|
||||
/* Generic settings */
|
||||
|
||||
/** The name of your plugin. (Try to keep this as short as possible)
|
||||
*/
|
||||
#define JucePlugin_Name "Juce Demo Plugin"
|
||||
|
||||
/** A longer decription of your plugin.
|
||||
*/
|
||||
#define JucePlugin_Desc "A Demo Plugin demonstrating Juce"
|
||||
|
||||
/** The name of your company. (Try to keep this as short as possible)
|
||||
*/
|
||||
#define JucePlugin_Manufacturer "Raw Material Software"
|
||||
|
||||
/** A four-character code for your company.
|
||||
Use single quotes - this isn't a string!
|
||||
*/
|
||||
#define JucePlugin_ManufacturerCode 'RawM'
|
||||
|
||||
/** A unique four-character code for your plugin.
|
||||
Use single quotes - this isn't a string!
|
||||
|
||||
Note that for AU compatibility, this must contain at least one
|
||||
upper-case letter.
|
||||
*/
|
||||
#define JucePlugin_PluginCode 'JcDm'
|
||||
|
||||
//==============================================================================
|
||||
/** The maximum number of channels of audio input that the plugin can handle.
|
||||
|
||||
The actual number of channels supplied may be less than this, depending on the host.
|
||||
For VSTs, you specify a maximum number of channels, for AUs and RTAS a set
|
||||
of channel configurations is specified in JucePlugin_PreferredChannelConfigurations
|
||||
and the host will choose one of these, but you should still set the max number of
|
||||
channels correctly.
|
||||
|
||||
As soon as a plugin's prepareToPlay() method is called, you can find out the actual
|
||||
number of channels that will be used with the AudioProcessor::getNumInputChannels()
|
||||
method.
|
||||
*/
|
||||
#define JucePlugin_MaxNumInputChannels 2
|
||||
|
||||
/** The maximum number of channels of audio output that the plugin can handle.
|
||||
|
||||
The actual number of channels supplied may be less than this, depending on the host.
|
||||
For VSTs, you specify a maximum number of channels, for AUs and RTAS a set
|
||||
of channel configurations is specified in JucePlugin_PreferredChannelConfigurations
|
||||
and the host will choose one of these, but you should still set the max number of
|
||||
channels correctly.
|
||||
|
||||
As soon as a plugin's prepareToPlay() method is called, you can find out the actual
|
||||
number of channels that will be used with the AudioProcessor::getNumOutputChannels()
|
||||
method.
|
||||
*/
|
||||
#define JucePlugin_MaxNumOutputChannels 2
|
||||
|
||||
/** This allows the plugin to specify the configurations of input/output channels that
|
||||
they can support.
|
||||
|
||||
AU and RTAS hosts will use this information, although VSTs only have a concept of
|
||||
a maximum number of channels.
|
||||
|
||||
The list is a set of pairs of values in the form { numInputs, numOutputs }, and each
|
||||
pair indicates a valid configuration that the plugin can handle.
|
||||
|
||||
So for example, {1, 1}, {2, 2} means that the plugin can be used in just two
|
||||
configurations: either with 1 input and 1 output, or with 2 inputs and 2 outputs. If
|
||||
you used this in Pro-Tools, the plugin could be placed on a mono or stereo track.
|
||||
If the list was just {1, 1}, then Pro-Tools would only allow it to be used as a mono
|
||||
plugin.
|
||||
|
||||
As soon as a plugin's prepareToPlay() method is called, you can find out the actual
|
||||
number of channels that the host has connected to the plugin by using the
|
||||
AudioProcessor::getNumOutputChannels() and AudioFilterBase::getNumInputChannels()
|
||||
methods.
|
||||
*/
|
||||
#define JucePlugin_PreferredChannelConfigurations { 1, 1 }, { 2, 2 }
|
||||
|
||||
//==============================================================================
|
||||
/** Set this value to 1 if your plugin is a synth, or 0 if it isn't.
|
||||
*/
|
||||
#define JucePlugin_IsSynth 0
|
||||
|
||||
/** Set this to 1 if your plugin needs to receive midi messages, or 0 if
|
||||
it doesn't.
|
||||
*/
|
||||
#define JucePlugin_WantsMidiInput 1
|
||||
|
||||
/** Set this to 1 if your plugin wants to output midi messages, or 0 if
|
||||
it doesn't.
|
||||
*/
|
||||
#define JucePlugin_ProducesMidiOutput 1
|
||||
|
||||
/** If this is 1, it means that when the plugins input buffers are
|
||||
silent, it's output will be too.
|
||||
|
||||
Some hosts may use this to avoid calling the plugin when no audio
|
||||
would be produced.
|
||||
*/
|
||||
#define JucePlugin_SilenceInProducesSilenceOut 0
|
||||
|
||||
/** If set to 1, this hints that the host should ignore any keys that are pressed
|
||||
when the plugin has keyboard focus. If 0, then the host should still execute
|
||||
any shortcut keys that are pressed, even if the plugin does have focus.
|
||||
|
||||
Various hosts/platforms may deal with this differently, or ignore it.
|
||||
*/
|
||||
#define JucePlugin_EditorRequiresKeyboardFocus 1
|
||||
|
||||
|
||||
//==============================================================================
|
||||
/** A version number
|
||||
*/
|
||||
#define JucePlugin_VersionCode 0x00010100
|
||||
|
||||
#define JucePlugin_VersionString "1.1"
|
||||
|
||||
|
||||
//==============================================================================
|
||||
/* VST settings */
|
||||
|
||||
/** For VSTs, if you're compiling against the V2.3 SDK, set this to zero. If
|
||||
you're using V2.4 or later, make sure it's set to 1.
|
||||
*/
|
||||
#define JUCE_USE_VSTSDK_2_4 1
|
||||
|
||||
/** Defines a UID for your VST plugin.
|
||||
The default setting here is probably fine, unless you specifically need
|
||||
a custom value. It's passed to the setUniqueID() method of the plugin class.
|
||||
*/
|
||||
#define JucePlugin_VSTUniqueID JucePlugin_PluginCode
|
||||
|
||||
/** Defines the type of plugin. For most pursposes, you don't need to change this
|
||||
setting.
|
||||
*/
|
||||
#if JucePlugin_IsSynth
|
||||
#define JucePlugin_VSTCategory kPlugCategSynth
|
||||
#else
|
||||
#define JucePlugin_VSTCategory kPlugCategEffect
|
||||
#endif
|
||||
|
||||
//==============================================================================
|
||||
/* AudioUnit settings */
|
||||
|
||||
/** Defines the major type of plugin - see AUComponent.h for the available options.
|
||||
If it's an effect, you should use kAudioUnitType_Effect. For a synth, you'll
|
||||
need to use kAudioUnitType_MusicEffect or kAudioUnitType_MusicDevice.
|
||||
*/
|
||||
#if JucePlugin_IsSynth
|
||||
#define JucePlugin_AUMainType kAudioUnitType_MusicDevice
|
||||
#else
|
||||
#define JucePlugin_AUMainType kAudioUnitType_Effect
|
||||
#endif
|
||||
|
||||
/** A 4-character plugin ID code that should be unique.
|
||||
|
||||
You can leave this using the generic value JucePlugin_PluginCode, or
|
||||
override it if necessary.
|
||||
|
||||
Note that for AU, this must contain at least one upper-case letter.
|
||||
*/
|
||||
#define JucePlugin_AUSubType JucePlugin_PluginCode
|
||||
|
||||
/** A prefix for the names of exported entry-point functions that the component exposes.
|
||||
|
||||
It's very important that your plugin's .exp file contains two entries that correspond to
|
||||
this name. So for example if you set the prefix to "abc" then your exports
|
||||
file must contain:
|
||||
|
||||
_abcEntry
|
||||
_abcViewEntry
|
||||
*/
|
||||
#define JucePlugin_AUExportPrefix JuceDemoAU
|
||||
|
||||
/** This is the same as JucePlugin_AUExportPrefix, but in quotes
|
||||
(needed for the resource compiler...)
|
||||
*/
|
||||
#define JucePlugin_AUExportPrefixQuoted "JuceDemoAU"
|
||||
|
||||
/** A 4-character manufacturer code - this is your company name.
|
||||
You can leave this using the generic value JucePlugin_ManufacturerCode, or
|
||||
override it if necessary.
|
||||
*/
|
||||
#define JucePlugin_AUManufacturerCode JucePlugin_ManufacturerCode
|
||||
|
||||
/** If you define this value to be the same as the CFBundleIdentifier in your
|
||||
plugin's plist, it allows the plugin to work out its own path, which is
|
||||
needed if you want to use File::getSpecialLocation (currentExecutableFile)
|
||||
*/
|
||||
#define JucePlugin_CFBundleIdentifier "com.rawmaterialsoftware.JuceDemo"
|
||||
|
||||
//==============================================================================
|
||||
/* RTAS settings */
|
||||
|
||||
/** How to categorise this plugin.
|
||||
|
||||
For a synth you probably want to set this to ePlugInCategory_SWGenerators.
|
||||
For an effect, you could choose one of:
|
||||
ePlugInCategory_None, ePlugInCategory_EQ, ePlugInCategory_Dynamics,
|
||||
ePlugInCategory_PitchShift, ePlugInCategory_Reverb, ePlugInCategory_Delay,
|
||||
ePlugInCategory_Modulation, ePlugInCategory_Harmonic, ePlugInCategory_NoiseReduction,
|
||||
ePlugInCategory_Dither, ePlugInCategory_SoundField
|
||||
|
||||
(All values are listed in FicPluginEnums.h)
|
||||
*/
|
||||
#if JucePlugin_IsSynth
|
||||
#define JucePlugin_RTASCategory ePlugInCategory_SWGenerators
|
||||
#else
|
||||
#define JucePlugin_RTASCategory ePlugInCategory_None
|
||||
#endif
|
||||
|
||||
/** A 4-character manufacturer code - this is your company name.
|
||||
You can leave this using the generic value JucePlugin_ManufacturerCode, or
|
||||
override it if necessary.
|
||||
*/
|
||||
#define JucePlugin_RTASManufacturerCode JucePlugin_ManufacturerCode
|
||||
|
||||
/** A 4-character plugin ID code that should be unique.
|
||||
You can leave this using the generic value JucePlugin_PluginCode, or
|
||||
override it if necessary.
|
||||
*/
|
||||
#define JucePlugin_RTASProductId JucePlugin_PluginCode
|
||||
|
||||
|
||||
//==============================================================================
|
||||
|
||||
#endif
|
||||
|
|
@ -1,948 +0,0 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-7 by Raw Material Software ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the
|
||||
GNU General Public License, as published by the Free Software Foundation;
|
||||
either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with JUCE; if not, visit www.gnu.org/licenses or write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
If you'd like to release a closed-source product which uses JUCE, commercial
|
||||
licenses are also available: visit www.rawmaterialsoftware.com/juce for
|
||||
more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#include <AudioUnit/AudioUnit.h>
|
||||
#include "AUMIDIEffectBase.h"
|
||||
#include "MusicDeviceBase.h"
|
||||
#include "AUCarbonViewBase.h"
|
||||
#include "../../juce_IncludeCharacteristics.h"
|
||||
#include "../../../../../juce.h"
|
||||
|
||||
//==============================================================================
|
||||
#define juceFilterObjectPropertyID 0x1a45ffe9
|
||||
static VoidArray activePlugins;
|
||||
|
||||
static const short channelConfigs[][2] = { JucePlugin_PreferredChannelConfigurations };
|
||||
static const int numChannelConfigs = numElementsInArray (channelConfigs);
|
||||
|
||||
BEGIN_JUCE_NAMESPACE
|
||||
extern void juce_setCurrentExecutableFileNameFromBundleId (const String& bundleId) throw();
|
||||
END_JUCE_NAMESPACE
|
||||
|
||||
#if JucePlugin_IsSynth
|
||||
#define JuceAUBaseClass MusicDeviceBase
|
||||
#else
|
||||
#define JuceAUBaseClass AUMIDIEffectBase
|
||||
#endif
|
||||
|
||||
//==============================================================================
|
||||
/** Somewhere in the codebase of your plugin, you need to implement this function
|
||||
and make it create an instance of the filter subclass that you're building.
|
||||
*/
|
||||
extern AudioProcessor* JUCE_CALLTYPE createPluginFilter();
|
||||
|
||||
|
||||
//==============================================================================
|
||||
class JuceAU : public JuceAUBaseClass,
|
||||
public AudioProcessorListener,
|
||||
public AudioPlayHead
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
JuceAU (AudioUnit component)
|
||||
#if JucePlugin_IsSynth
|
||||
: MusicDeviceBase (component, 0, 1),
|
||||
#else
|
||||
: AUMIDIEffectBase (component),
|
||||
#endif
|
||||
juceFilter (0),
|
||||
bufferSpace (2, 16),
|
||||
channels (0),
|
||||
prepared (false)
|
||||
{
|
||||
CreateElements();
|
||||
|
||||
if (activePlugins.size() == 0)
|
||||
{
|
||||
initialiseJuce_GUI();
|
||||
|
||||
#ifdef JucePlugin_CFBundleIdentifier
|
||||
juce_setCurrentExecutableFileNameFromBundleId (JucePlugin_CFBundleIdentifier);
|
||||
#endif
|
||||
|
||||
MessageManager::getInstance()->setTimeBeforeShowingWaitCursor (0);
|
||||
}
|
||||
|
||||
juceFilter = createPluginFilter();
|
||||
juceFilter->setPlayHead (this);
|
||||
juceFilter->addListener (this);
|
||||
|
||||
jassert (juceFilter != 0);
|
||||
Globals()->UseIndexedParameters (juceFilter->getNumParameters());
|
||||
|
||||
activePlugins.add (this);
|
||||
|
||||
zerostruct (auEvent);
|
||||
auEvent.mArgument.mParameter.mAudioUnit = GetComponentInstance();
|
||||
auEvent.mArgument.mParameter.mScope = kAudioUnitScope_Global;
|
||||
auEvent.mArgument.mParameter.mElement = 0;
|
||||
}
|
||||
|
||||
~JuceAU()
|
||||
{
|
||||
delete juceFilter;
|
||||
juceFilter = 0;
|
||||
|
||||
juce_free (channels);
|
||||
channels = 0;
|
||||
|
||||
jassert (activePlugins.contains (this));
|
||||
activePlugins.removeValue (this);
|
||||
|
||||
if (activePlugins.size() == 0)
|
||||
shutdownJuce_GUI();
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
ComponentResult GetPropertyInfo (AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
UInt32& outDataSize,
|
||||
Boolean& outWritable)
|
||||
{
|
||||
if (inScope == kAudioUnitScope_Global)
|
||||
{
|
||||
if (inID == juceFilterObjectPropertyID)
|
||||
{
|
||||
outWritable = false;
|
||||
outDataSize = sizeof (void*);
|
||||
return noErr;
|
||||
}
|
||||
}
|
||||
|
||||
return JuceAUBaseClass::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
ComponentResult GetProperty (AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void* outData)
|
||||
{
|
||||
if (inScope == kAudioUnitScope_Global)
|
||||
{
|
||||
if (inID == juceFilterObjectPropertyID)
|
||||
{
|
||||
*((void**) outData) = (void*) juceFilter;
|
||||
return noErr;
|
||||
}
|
||||
}
|
||||
|
||||
return JuceAUBaseClass::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
ComponentResult SaveState (CFPropertyListRef* outData)
|
||||
{
|
||||
ComponentResult err = JuceAUBaseClass::SaveState (outData);
|
||||
|
||||
if (err != noErr)
|
||||
return err;
|
||||
|
||||
jassert (CFGetTypeID (*outData) == CFDictionaryGetTypeID());
|
||||
|
||||
CFMutableDictionaryRef dict = (CFMutableDictionaryRef) *outData;
|
||||
|
||||
if (juceFilter != 0)
|
||||
{
|
||||
MemoryBlock state;
|
||||
juceFilter->getCurrentProgramStateInformation (state);
|
||||
|
||||
if (state.getSize() > 0)
|
||||
{
|
||||
CFDataRef ourState = CFDataCreate (kCFAllocatorDefault, (const uint8*) state, state.getSize());
|
||||
CFDictionarySetValue (dict, CFSTR("jucePluginState"), ourState);
|
||||
CFRelease (ourState);
|
||||
}
|
||||
}
|
||||
|
||||
return noErr;
|
||||
}
|
||||
|
||||
ComponentResult RestoreState (CFPropertyListRef inData)
|
||||
{
|
||||
ComponentResult err = JuceAUBaseClass::RestoreState (inData);
|
||||
|
||||
if (err != noErr)
|
||||
return err;
|
||||
|
||||
if (juceFilter != 0)
|
||||
{
|
||||
CFDictionaryRef dict = (CFDictionaryRef) inData;
|
||||
CFDataRef data = 0;
|
||||
|
||||
if (CFDictionaryGetValueIfPresent (dict, CFSTR("jucePluginState"),
|
||||
(const void**) &data))
|
||||
{
|
||||
if (data != 0)
|
||||
{
|
||||
const int numBytes = (int) CFDataGetLength (data);
|
||||
const uint8* const rawBytes = CFDataGetBytePtr (data);
|
||||
|
||||
if (numBytes > 0)
|
||||
juceFilter->setCurrentProgramStateInformation (rawBytes, numBytes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return noErr;
|
||||
}
|
||||
|
||||
UInt32 SupportedNumChannels (const AUChannelInfo** outInfo)
|
||||
{
|
||||
// You need to actually add some configurations to the JucePlugin_PreferredChannelConfigurations
|
||||
// value in your JucePluginCharacteristics.h file..
|
||||
jassert (numChannelConfigs > 0);
|
||||
|
||||
if (outInfo != 0)
|
||||
{
|
||||
for (int i = 0; i < numChannelConfigs; ++i)
|
||||
{
|
||||
#if JucePlugin_IsSynth
|
||||
channelInfo[i].inChannels = 0;
|
||||
#else
|
||||
channelInfo[i].inChannels = channelConfigs[i][0];
|
||||
#endif
|
||||
channelInfo[i].outChannels = channelConfigs[i][1];
|
||||
|
||||
outInfo[i] = channelInfo + i;
|
||||
}
|
||||
}
|
||||
|
||||
return numChannelConfigs;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
ComponentResult GetParameterInfo (AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
AudioUnitParameterInfo& outParameterInfo)
|
||||
{
|
||||
const int index = (int) inParameterID;
|
||||
|
||||
if (inScope == kAudioUnitScope_Global
|
||||
&& juceFilter != 0
|
||||
&& index < juceFilter->getNumParameters())
|
||||
{
|
||||
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
|
||||
| kAudioUnitParameterFlag_IsReadable
|
||||
| kAudioUnitParameterFlag_HasCFNameString;
|
||||
|
||||
const String name (juceFilter->getParameterName (index));
|
||||
|
||||
// set whether the param is automatable (unnamed parameters aren't allowed to be automated)
|
||||
if (name.isEmpty() || ! juceFilter->isParameterAutomatable (index))
|
||||
outParameterInfo.flags |= kAudioUnitParameterFlag_NonRealTime;
|
||||
|
||||
AUBase::FillInParameterName (outParameterInfo,
|
||||
PlatformUtilities::juceStringToCFString (name),
|
||||
false);
|
||||
|
||||
outParameterInfo.minValue = 0.0f;
|
||||
outParameterInfo.maxValue = 1.0f;
|
||||
outParameterInfo.defaultValue = 0.0f;
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
|
||||
return noErr;
|
||||
}
|
||||
else
|
||||
{
|
||||
return kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
}
|
||||
|
||||
ComponentResult GetParameter (AudioUnitParameterID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
Float32& outValue)
|
||||
{
|
||||
if (inScope == kAudioUnitScope_Global && juceFilter != 0)
|
||||
{
|
||||
outValue = juceFilter->getParameter ((int) inID);
|
||||
return noErr;
|
||||
}
|
||||
|
||||
return AUBase::GetParameter (inID, inScope, inElement, outValue);
|
||||
}
|
||||
|
||||
ComponentResult SetParameter (AudioUnitParameterID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
Float32 inValue,
|
||||
UInt32 inBufferOffsetInFrames)
|
||||
{
|
||||
if (inScope == kAudioUnitScope_Global && juceFilter != 0)
|
||||
{
|
||||
juceFilter->setParameter ((int) inID, inValue);
|
||||
return noErr;
|
||||
}
|
||||
|
||||
return AUBase::SetParameter (inID, inScope, inElement, inValue, inBufferOffsetInFrames);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
ComponentResult Version() { return JucePlugin_VersionCode; }
|
||||
|
||||
bool SupportsTail() { return true; }
|
||||
Float64 GetTailTime() { return 0; }
|
||||
|
||||
Float64 GetSampleRate()
|
||||
{
|
||||
return GetOutput(0)->GetStreamFormat().mSampleRate;
|
||||
}
|
||||
|
||||
Float64 GetLatency()
|
||||
{
|
||||
jassert (GetSampleRate() > 0);
|
||||
|
||||
if (GetSampleRate() <= 0)
|
||||
return 0.0;
|
||||
|
||||
return juceFilter->getLatencySamples() / GetSampleRate();
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
int GetNumCustomUIComponents() { return 1; }
|
||||
|
||||
void GetUIComponentDescs (ComponentDescription* inDescArray)
|
||||
{
|
||||
inDescArray[0].componentType = kAudioUnitCarbonViewComponentType;
|
||||
inDescArray[0].componentSubType = JucePlugin_AUSubType;
|
||||
inDescArray[0].componentManufacturer = JucePlugin_AUManufacturerCode;
|
||||
inDescArray[0].componentFlags = 0;
|
||||
inDescArray[0].componentFlagsMask = 0;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool getCurrentPosition (AudioPlayHead::CurrentPositionInfo& info)
|
||||
{
|
||||
info.timeSigNumerator = 0;
|
||||
info.timeSigDenominator = 0;
|
||||
info.timeInSeconds = 0;
|
||||
info.editOriginTime = 0;
|
||||
info.ppqPositionOfLastBarStart = 0;
|
||||
info.isPlaying = false;
|
||||
info.isRecording = false;
|
||||
|
||||
switch (lastSMPTETime.mType)
|
||||
{
|
||||
case kSMPTETimeType24:
|
||||
info.frameRate = AudioPlayHead::fps24;
|
||||
break;
|
||||
|
||||
case kSMPTETimeType25:
|
||||
info.frameRate = AudioPlayHead::fps25;
|
||||
break;
|
||||
|
||||
case kSMPTETimeType30Drop:
|
||||
info.frameRate = AudioPlayHead::fps30drop;
|
||||
break;
|
||||
|
||||
case kSMPTETimeType30:
|
||||
info.frameRate = AudioPlayHead::fps30;
|
||||
break;
|
||||
|
||||
case kSMPTETimeType2997:
|
||||
info.frameRate = AudioPlayHead::fps2997;
|
||||
break;
|
||||
|
||||
case kSMPTETimeType2997Drop:
|
||||
info.frameRate = AudioPlayHead::fps2997drop;
|
||||
break;
|
||||
|
||||
//case kSMPTETimeType60:
|
||||
//case kSMPTETimeType5994:
|
||||
default:
|
||||
info.frameRate = AudioPlayHead::fpsUnknown;
|
||||
break;
|
||||
}
|
||||
|
||||
if (CallHostBeatAndTempo (&info.ppqPosition, &info.bpm) != noErr)
|
||||
{
|
||||
info.ppqPosition = 0;
|
||||
info.bpm = 0;
|
||||
}
|
||||
|
||||
UInt32 outDeltaSampleOffsetToNextBeat;
|
||||
double outCurrentMeasureDownBeat;
|
||||
float num;
|
||||
UInt32 den;
|
||||
|
||||
if (CallHostMusicalTimeLocation (&outDeltaSampleOffsetToNextBeat, &num, &den,
|
||||
&outCurrentMeasureDownBeat) == noErr)
|
||||
{
|
||||
info.timeSigNumerator = (int) num;
|
||||
info.timeSigDenominator = den;
|
||||
info.ppqPositionOfLastBarStart = outCurrentMeasureDownBeat;
|
||||
}
|
||||
|
||||
double outCurrentSampleInTimeLine, outCycleStartBeat, outCycleEndBeat;
|
||||
Boolean playing, playchanged, looping;
|
||||
|
||||
if (CallHostTransportState (&playing,
|
||||
&playchanged,
|
||||
&outCurrentSampleInTimeLine,
|
||||
&looping,
|
||||
&outCycleStartBeat,
|
||||
&outCycleEndBeat) == noErr)
|
||||
{
|
||||
info.isPlaying = playing;
|
||||
info.timeInSeconds = outCurrentSampleInTimeLine / GetSampleRate();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void sendAUEvent (const AudioUnitEventType type, const int index) throw()
|
||||
{
|
||||
if (AUEventListenerNotify != 0)
|
||||
{
|
||||
auEvent.mEventType = type;
|
||||
auEvent.mArgument.mParameter.mParameterID = (AudioUnitParameterID) index;
|
||||
AUEventListenerNotify (0, 0, &auEvent);
|
||||
}
|
||||
}
|
||||
|
||||
void audioProcessorParameterChanged (AudioProcessor*, int index, float newValue)
|
||||
{
|
||||
sendAUEvent (kAudioUnitEvent_ParameterValueChange, index);
|
||||
}
|
||||
|
||||
void audioProcessorParameterChangeGestureBegin (AudioProcessor*, int index)
|
||||
{
|
||||
sendAUEvent (kAudioUnitEvent_BeginParameterChangeGesture, index);
|
||||
}
|
||||
|
||||
void audioProcessorParameterChangeGestureEnd (AudioProcessor*, int index)
|
||||
{
|
||||
sendAUEvent (kAudioUnitEvent_EndParameterChangeGesture, index);
|
||||
}
|
||||
|
||||
void audioProcessorChanged (AudioProcessor*)
|
||||
{
|
||||
// xxx is there an AU equivalent?
|
||||
}
|
||||
|
||||
bool StreamFormatWritable (AudioUnitScope inScope, AudioUnitElement element)
|
||||
{
|
||||
return ! IsInitialized();
|
||||
}
|
||||
|
||||
ComponentResult StartNote (MusicDeviceInstrumentID, MusicDeviceGroupID, NoteInstanceID&, UInt32, const MusicDeviceNoteParams&)
|
||||
{
|
||||
return noErr;
|
||||
}
|
||||
|
||||
ComponentResult StopNote (MusicDeviceGroupID, NoteInstanceID, UInt32)
|
||||
{
|
||||
return noErr;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
ComponentResult Initialize()
|
||||
{
|
||||
#if ! JucePlugin_IsSynth
|
||||
const int numIns = GetInput(0) != 0 ? GetInput(0)->GetStreamFormat().mChannelsPerFrame : 0;
|
||||
#endif
|
||||
const int numOuts = GetOutput(0) != 0 ? GetOutput(0)->GetStreamFormat().mChannelsPerFrame : 0;
|
||||
|
||||
bool isValidChannelConfig = false;
|
||||
|
||||
for (int i = 0; i < numChannelConfigs; ++i)
|
||||
#if JucePlugin_IsSynth
|
||||
if (numOuts == channelConfigs[i][1])
|
||||
#else
|
||||
if (numIns == channelConfigs[i][0] && numOuts == channelConfigs[i][1])
|
||||
#endif
|
||||
isValidChannelConfig = true;
|
||||
|
||||
if (! isValidChannelConfig)
|
||||
return kAudioUnitErr_FormatNotSupported;
|
||||
|
||||
JuceAUBaseClass::Initialize();
|
||||
prepareToPlay();
|
||||
return noErr;
|
||||
}
|
||||
|
||||
void Cleanup()
|
||||
{
|
||||
JuceAUBaseClass::Cleanup();
|
||||
|
||||
if (juceFilter != 0)
|
||||
juceFilter->releaseResources();
|
||||
|
||||
bufferSpace.setSize (2, 16);
|
||||
midiEvents.clear();
|
||||
prepared = false;
|
||||
}
|
||||
|
||||
ComponentResult Reset (AudioUnitScope inScope, AudioUnitElement inElement)
|
||||
{
|
||||
if (! prepared)
|
||||
prepareToPlay();
|
||||
|
||||
return JuceAUBaseClass::Reset (inScope, inElement);
|
||||
}
|
||||
|
||||
void prepareToPlay()
|
||||
{
|
||||
if (juceFilter != 0)
|
||||
{
|
||||
#if ! JucePlugin_IsSynth
|
||||
juceFilter->setPlayConfigDetails (GetInput(0)->GetStreamFormat().mChannelsPerFrame,
|
||||
#else
|
||||
juceFilter->setPlayConfigDetails (0,
|
||||
#endif
|
||||
GetOutput(0)->GetStreamFormat().mChannelsPerFrame,
|
||||
GetSampleRate(),
|
||||
GetMaxFramesPerSlice());
|
||||
|
||||
bufferSpace.setSize (juceFilter->getNumInputChannels() + juceFilter->getNumOutputChannels(),
|
||||
GetMaxFramesPerSlice() + 32);
|
||||
|
||||
juceFilter->prepareToPlay (GetSampleRate(),
|
||||
GetMaxFramesPerSlice());
|
||||
|
||||
midiEvents.clear();
|
||||
|
||||
juce_free (channels);
|
||||
channels = (float**) juce_calloc (sizeof (float*) * jmax (juceFilter->getNumInputChannels(),
|
||||
juceFilter->getNumOutputChannels()) + 4);
|
||||
|
||||
prepared = true;
|
||||
}
|
||||
}
|
||||
|
||||
ComponentResult Render (AudioUnitRenderActionFlags &ioActionFlags,
|
||||
const AudioTimeStamp& inTimeStamp,
|
||||
UInt32 nFrames)
|
||||
{
|
||||
lastSMPTETime = inTimeStamp.mSMPTETime;
|
||||
|
||||
#if ! JucePlugin_IsSynth
|
||||
return JuceAUBaseClass::Render (ioActionFlags, inTimeStamp, nFrames);
|
||||
#else
|
||||
// synths can't have any inputs..
|
||||
AudioBufferList inBuffer;
|
||||
inBuffer.mNumberBuffers = 0;
|
||||
|
||||
return ProcessBufferLists (ioActionFlags, inBuffer, GetOutput(0)->GetBufferList(), nFrames);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
OSStatus ProcessBufferLists (AudioUnitRenderActionFlags& ioActionFlags,
|
||||
const AudioBufferList& inBuffer,
|
||||
AudioBufferList& outBuffer,
|
||||
UInt32 numSamples)
|
||||
{
|
||||
if (juceFilter != 0)
|
||||
{
|
||||
jassert (prepared);
|
||||
|
||||
int numOutChans = 0;
|
||||
int nextSpareBufferChan = 0;
|
||||
bool needToReinterleave = false;
|
||||
const int numIn = juceFilter->getNumInputChannels();
|
||||
const int numOut = juceFilter->getNumOutputChannels();
|
||||
|
||||
unsigned int i;
|
||||
for (i = 0; i < outBuffer.mNumberBuffers; ++i)
|
||||
{
|
||||
AudioBuffer& buf = outBuffer.mBuffers[i];
|
||||
|
||||
if (buf.mNumberChannels == 1)
|
||||
{
|
||||
channels [numOutChans++] = (float*) buf.mData;
|
||||
}
|
||||
else
|
||||
{
|
||||
needToReinterleave = true;
|
||||
|
||||
for (unsigned int subChan = 0; subChan < buf.mNumberChannels && numOutChans < numOut; ++subChan)
|
||||
channels [numOutChans++] = bufferSpace.getSampleData (nextSpareBufferChan++);
|
||||
}
|
||||
|
||||
if (numOutChans >= numOut)
|
||||
break;
|
||||
}
|
||||
|
||||
int numInChans = 0;
|
||||
|
||||
for (i = 0; i < inBuffer.mNumberBuffers; ++i)
|
||||
{
|
||||
const AudioBuffer& buf = inBuffer.mBuffers[i];
|
||||
|
||||
if (buf.mNumberChannels == 1)
|
||||
{
|
||||
if (numInChans < numOutChans)
|
||||
memcpy (channels [numInChans], (const float*) buf.mData, sizeof (float) * numSamples);
|
||||
else
|
||||
channels [numInChans] = (float*) buf.mData;
|
||||
|
||||
++numInChans;
|
||||
}
|
||||
else
|
||||
{
|
||||
// need to de-interleave..
|
||||
for (unsigned int subChan = 0; subChan < buf.mNumberChannels && numInChans < numIn; ++subChan)
|
||||
{
|
||||
float* dest;
|
||||
|
||||
if (numInChans < numOutChans)
|
||||
{
|
||||
dest = channels [numInChans++];
|
||||
}
|
||||
else
|
||||
{
|
||||
dest = bufferSpace.getSampleData (nextSpareBufferChan++);
|
||||
channels [numInChans++] = dest;
|
||||
}
|
||||
|
||||
const float* src = ((const float*) buf.mData) + subChan;
|
||||
|
||||
for (int j = numSamples; --j >= 0;)
|
||||
{
|
||||
*dest++ = *src;
|
||||
src += buf.mNumberChannels;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (numInChans >= numIn)
|
||||
break;
|
||||
}
|
||||
|
||||
{
|
||||
AudioSampleBuffer buffer (channels, jmax (numIn, numOut), numSamples);
|
||||
|
||||
const ScopedLock sl (juceFilter->getCallbackLock());
|
||||
|
||||
if (juceFilter->isSuspended())
|
||||
{
|
||||
for (int i = 0; i < numOut; ++i)
|
||||
zeromem (channels [i], sizeof (float) * numSamples);
|
||||
}
|
||||
else
|
||||
{
|
||||
juceFilter->processBlock (buffer, midiEvents);
|
||||
}
|
||||
}
|
||||
|
||||
if (! midiEvents.isEmpty())
|
||||
{
|
||||
#if JucePlugin_ProducesMidiOutput
|
||||
const uint8* midiEventData;
|
||||
int midiEventSize, midiEventPosition;
|
||||
MidiBuffer::Iterator i (midiEvents);
|
||||
|
||||
while (i.getNextEvent (midiEventData, midiEventSize, midiEventPosition))
|
||||
{
|
||||
jassert (((unsigned int) midiEventPosition) < (unsigned int) numSamples);
|
||||
|
||||
|
||||
|
||||
//xxx
|
||||
}
|
||||
#else
|
||||
// if your plugin creates midi messages, you'll need to set
|
||||
// the JucePlugin_ProducesMidiOutput macro to 1 in your
|
||||
// JucePluginCharacteristics.h file
|
||||
//jassert (midiEvents.getNumEvents() <= numMidiEventsComingIn);
|
||||
#endif
|
||||
midiEvents.clear();
|
||||
}
|
||||
|
||||
if (needToReinterleave)
|
||||
{
|
||||
nextSpareBufferChan = 0;
|
||||
|
||||
for (i = 0; i < outBuffer.mNumberBuffers; ++i)
|
||||
{
|
||||
AudioBuffer& buf = outBuffer.mBuffers[i];
|
||||
|
||||
if (buf.mNumberChannels > 1)
|
||||
{
|
||||
for (unsigned int subChan = 0; subChan < buf.mNumberChannels; ++subChan)
|
||||
{
|
||||
const float* src = bufferSpace.getSampleData (nextSpareBufferChan++);
|
||||
float* dest = ((float*) buf.mData) + subChan;
|
||||
|
||||
for (int j = numSamples; --j >= 0;)
|
||||
{
|
||||
*dest = *src++;
|
||||
dest += buf.mNumberChannels;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if ! JucePlugin_SilenceInProducesSilenceOut
|
||||
ioActionFlags &= ~kAudioUnitRenderAction_OutputIsSilence;
|
||||
#endif
|
||||
}
|
||||
|
||||
return noErr;
|
||||
}
|
||||
|
||||
protected:
|
||||
OSStatus HandleMidiEvent (UInt8 nStatus,
|
||||
UInt8 inChannel,
|
||||
UInt8 inData1,
|
||||
UInt8 inData2,
|
||||
long inStartFrame)
|
||||
{
|
||||
#if JucePlugin_WantsMidiInput
|
||||
uint8 data [4];
|
||||
data[0] = nStatus | inChannel;
|
||||
data[1] = inData1;
|
||||
data[2] = inData2;
|
||||
|
||||
midiEvents.addEvent (data, 3, inStartFrame);
|
||||
#endif
|
||||
|
||||
return noErr;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
private:
|
||||
AudioProcessor* juceFilter;
|
||||
AudioSampleBuffer bufferSpace;
|
||||
float** channels;
|
||||
MidiBuffer midiEvents;
|
||||
bool prepared;
|
||||
SMPTETime lastSMPTETime;
|
||||
AUChannelInfo channelInfo [numChannelConfigs];
|
||||
AudioUnitEvent auEvent;
|
||||
};
|
||||
|
||||
|
||||
//==============================================================================
|
||||
class JuceAUComponentHolder : public Component
|
||||
{
|
||||
public:
|
||||
JuceAUComponentHolder (Component* const editorComp)
|
||||
{
|
||||
addAndMakeVisible (editorComp);
|
||||
setOpaque (true);
|
||||
setVisible (true);
|
||||
setBroughtToFrontOnMouseClick (true);
|
||||
|
||||
#if ! JucePlugin_EditorRequiresKeyboardFocus
|
||||
setWantsKeyboardFocus (false);
|
||||
#endif
|
||||
}
|
||||
|
||||
~JuceAUComponentHolder()
|
||||
{
|
||||
}
|
||||
|
||||
void resized()
|
||||
{
|
||||
if (getNumChildComponents() > 0)
|
||||
getChildComponent (0)->setBounds (0, 0, getWidth(), getHeight());
|
||||
}
|
||||
|
||||
void paint (Graphics& g)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
class JuceAUView : public AUCarbonViewBase,
|
||||
public ComponentListener,
|
||||
public MouseListener,
|
||||
public Timer
|
||||
{
|
||||
AudioProcessor* juceFilter;
|
||||
AudioProcessorEditor* editorComp;
|
||||
Component* windowComp;
|
||||
bool recursive;
|
||||
int mx, my;
|
||||
|
||||
public:
|
||||
JuceAUView (AudioUnitCarbonView auview)
|
||||
: AUCarbonViewBase (auview),
|
||||
juceFilter (0),
|
||||
editorComp (0),
|
||||
windowComp (0),
|
||||
recursive (false),
|
||||
mx (0),
|
||||
my (0)
|
||||
{
|
||||
}
|
||||
|
||||
~JuceAUView()
|
||||
{
|
||||
deleteUI();
|
||||
}
|
||||
|
||||
ComponentResult CreateUI (Float32 inXOffset, Float32 inYOffset)
|
||||
{
|
||||
if (juceFilter == 0)
|
||||
{
|
||||
UInt32 propertySize = sizeof (&juceFilter);
|
||||
|
||||
AudioUnitGetProperty (GetEditAudioUnit(),
|
||||
juceFilterObjectPropertyID,
|
||||
kAudioUnitScope_Global,
|
||||
0,
|
||||
&juceFilter,
|
||||
&propertySize);
|
||||
}
|
||||
|
||||
if (juceFilter != 0)
|
||||
{
|
||||
deleteUI();
|
||||
|
||||
editorComp = juceFilter->createEditorIfNeeded();
|
||||
|
||||
const int w = editorComp->getWidth();
|
||||
const int h = editorComp->getHeight();
|
||||
|
||||
editorComp->setOpaque (true);
|
||||
editorComp->setVisible (true);
|
||||
|
||||
windowComp = new JuceAUComponentHolder (editorComp);
|
||||
windowComp->setBounds ((int) inXOffset, (int) inYOffset, w, h);
|
||||
|
||||
windowComp->addToDesktop (0, (void*) mCarbonPane);
|
||||
SizeControl (mCarbonPane, w, h);
|
||||
|
||||
editorComp->addComponentListener (this);
|
||||
windowComp->addMouseListener (this, true);
|
||||
|
||||
startTimer (20);
|
||||
}
|
||||
else
|
||||
{
|
||||
jassertfalse // can't get a pointer to our effect
|
||||
}
|
||||
|
||||
return noErr;
|
||||
}
|
||||
|
||||
void componentMovedOrResized (Component& component,
|
||||
bool wasMoved,
|
||||
bool wasResized)
|
||||
{
|
||||
if (! recursive)
|
||||
{
|
||||
recursive = true;
|
||||
|
||||
if (editorComp != 0 && wasResized)
|
||||
{
|
||||
const int w = jmax (32, editorComp->getWidth());
|
||||
const int h = jmax (32, editorComp->getHeight());
|
||||
|
||||
SizeControl (mCarbonPane, w, h);
|
||||
|
||||
if (windowComp->getWidth() != w
|
||||
|| windowComp->getHeight() != h)
|
||||
{
|
||||
windowComp->setSize (w, h);
|
||||
}
|
||||
|
||||
editorComp->repaint();
|
||||
}
|
||||
|
||||
recursive = false;
|
||||
}
|
||||
}
|
||||
|
||||
void timerCallback()
|
||||
{
|
||||
// for some stupid Apple-related reason, mouse move events just don't seem to get sent
|
||||
// to the windows in an AU, so we have to bodge it here and simulate them with a
|
||||
// timer..
|
||||
if (editorComp != 0)
|
||||
{
|
||||
int x, y;
|
||||
Desktop::getInstance().getMousePosition (x, y);
|
||||
|
||||
if (x != mx || y != my)
|
||||
{
|
||||
mx = x;
|
||||
my = y;
|
||||
|
||||
if (! ModifierKeys::getCurrentModifiers().isAnyMouseButtonDown())
|
||||
{
|
||||
for (int i = ComponentPeer::getNumPeers(); --i >= 0;)
|
||||
{
|
||||
ComponentPeer* const peer = ComponentPeer::getPeer (i);
|
||||
|
||||
int rx = x, ry = y;
|
||||
peer->getComponent()->globalPositionToRelative (rx, ry);
|
||||
|
||||
if (peer->contains (rx, ry, false) && peer->getComponent()->isShowing())
|
||||
{
|
||||
peer->handleMouseMove (rx, ry, Time::currentTimeMillis());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void mouseMove (const MouseEvent& e)
|
||||
{
|
||||
Desktop::getInstance().getMousePosition (mx, my);
|
||||
startTimer (20);
|
||||
}
|
||||
|
||||
private:
|
||||
void deleteUI()
|
||||
{
|
||||
PopupMenu::dismissAllActiveMenus();
|
||||
|
||||
// there's some kind of component currently modal, but the host
|
||||
// is trying to delete our plugin..
|
||||
jassert (Component::getCurrentlyModalComponent() == 0);
|
||||
|
||||
if (editorComp != 0)
|
||||
juceFilter->editorBeingDeleted (editorComp);
|
||||
|
||||
deleteAndZero (editorComp);
|
||||
deleteAndZero (windowComp);
|
||||
}
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
#define JUCE_COMPONENT_ENTRYX(Class, Name, Suffix) \
|
||||
extern "C" __attribute__((visibility("default"))) ComponentResult Name ## Suffix (ComponentParameters* params, Class* obj); \
|
||||
extern "C" __attribute__((visibility("default"))) ComponentResult Name ## Suffix (ComponentParameters* params, Class* obj) \
|
||||
{ \
|
||||
return ComponentEntryPoint<Class>::Dispatch(params, obj); \
|
||||
}
|
||||
|
||||
#define JUCE_COMPONENT_ENTRY(Class, Name, Suffix) JUCE_COMPONENT_ENTRYX(Class, Name, Suffix)
|
||||
|
||||
JUCE_COMPONENT_ENTRY (JuceAU, JucePlugin_AUExportPrefix, Entry)
|
||||
JUCE_COMPONENT_ENTRY (JuceAUView, JucePlugin_AUExportPrefix, ViewEntry)
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-7 by Raw Material Software ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the
|
||||
GNU General Public License, as published by the Free Software Foundation;
|
||||
either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with JUCE; if not, visit www.gnu.org/licenses or write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
If you'd like to release a closed-source product which uses JUCE, commercial
|
||||
licenses are also available: visit www.rawmaterialsoftware.com/juce for
|
||||
more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#include <AudioUnit/AudioUnit.r>
|
||||
#include <AudioUnit/AudioUnitCarbonView.r>
|
||||
|
||||
//==============================================================================
|
||||
/* The JucePluginCharacteristics.h file is supposed to live in your plugin-specific
|
||||
project directory, and has to contain info describing its name, type, etc. For
|
||||
more info, see the JucePluginCharacteristics.h that is included in the demo plugin.
|
||||
|
||||
You may need to adjust the include path of your project to make sure it can be
|
||||
found by this include statement. (Don't hack this file to change the include path)
|
||||
*/
|
||||
#include "JucePluginCharacteristics.h"
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// component resources for Audio Unit
|
||||
#define RES_ID 1000
|
||||
#define COMP_TYPE JucePlugin_AUMainType
|
||||
#define COMP_SUBTYPE JucePlugin_AUSubType
|
||||
#define COMP_MANUF JucePlugin_AUManufacturerCode
|
||||
#define VERSION JucePlugin_VersionCode
|
||||
#define NAME JucePlugin_Manufacturer ": " JucePlugin_Name
|
||||
#define DESCRIPTION JucePlugin_Desc
|
||||
#define ENTRY_POINT JucePlugin_AUExportPrefixQuoted "Entry"
|
||||
|
||||
#include "/Developer/Examples/CoreAudio/AudioUnits/AUPublic/AUBase/AUResources.r"
|
||||
|
||||
//==============================================================================
|
||||
// component resources for Audio Unit Carbon View
|
||||
#define RES_ID 2000
|
||||
#define COMP_TYPE kAudioUnitCarbonViewComponentType
|
||||
#define COMP_SUBTYPE JucePlugin_AUSubType
|
||||
#define COMP_MANUF JucePlugin_AUManufacturerCode
|
||||
#define VERSION JucePlugin_VersionCode
|
||||
#define NAME JucePlugin_Manufacturer ": " JucePlugin_Name " View"
|
||||
#define DESCRIPTION NAME
|
||||
#define ENTRY_POINT JucePlugin_AUExportPrefixQuoted "ViewEntry"
|
||||
|
||||
#include "/Developer/Examples/CoreAudio/AudioUnits/AUPublic/AUBase/AUResources.r"
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.1 KiB |
|
|
@ -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,63 +0,0 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-7 by Raw Material Software ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the
|
||||
GNU General Public License, as published by the Free Software Foundation;
|
||||
either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with JUCE; if not, visit www.gnu.org/licenses or write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
If you'd like to release a closed-source product which uses JUCE, commercial
|
||||
licenses are also available: visit www.rawmaterialsoftware.com/juce for
|
||||
more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#ifndef __JUCE_RTASCOMPILEFLAGS_JUCEHEADER__
|
||||
#define __JUCE_RTASCOMPILEFLAGS_JUCEHEADER__
|
||||
|
||||
#ifdef _MSC_VER
|
||||
|
||||
#define kCompileAsCodeResource 0
|
||||
#define kBuildStandAlone 0
|
||||
#define kNoDSP 0
|
||||
#define kNoDAE 0
|
||||
#define kNoSDS 0
|
||||
#define kNoViews 0
|
||||
#define kUseDSPCodeDecode 0
|
||||
|
||||
#define WINDOWS_VERSION 1
|
||||
#define PLUGIN_SDK_BUILD 1
|
||||
#define PLUGIN_SDK_DIRECTMIDI 1
|
||||
|
||||
#else
|
||||
|
||||
#define kCompileAsCodeResource 0
|
||||
#define kNoDSP 1
|
||||
#define kNoDAE 0
|
||||
#define kNoSDS 0
|
||||
#define kNoViews 0
|
||||
#define kUseDSPCodeDecode 0
|
||||
|
||||
#define PLUGIN_SDK_BUILD 1
|
||||
#define PLUGIN_SDK_DIRECTMIDI 1
|
||||
|
||||
#endif
|
||||
|
||||
#endif // __JUCE_RTASCOMPILEFLAGS_JUCEHEADER__
|
||||
|
|
@ -1,139 +0,0 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-7 by Raw Material Software ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the
|
||||
GNU General Public License, as published by the Free Software Foundation;
|
||||
either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with JUCE; if not, visit www.gnu.org/licenses or write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
If you'd like to release a closed-source product which uses JUCE, commercial
|
||||
licenses are also available: visit www.rawmaterialsoftware.com/juce for
|
||||
more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#if _MSC_VER
|
||||
|
||||
// (these functions are in a separate file because of problems including windows.h
|
||||
// at the same time as the Digi headers)
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma pack (push, 8)
|
||||
#endif
|
||||
|
||||
#include "../../../../../juce.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma pack (pop)
|
||||
#endif
|
||||
|
||||
|
||||
//==============================================================================
|
||||
void JUCE_CALLTYPE attachSubWindow (void* hostWindow,
|
||||
int& titleW, int& titleH,
|
||||
Component* comp)
|
||||
{
|
||||
RECT clientRect;
|
||||
GetClientRect ((HWND) hostWindow, &clientRect);
|
||||
|
||||
titleW = clientRect.right - clientRect.left;
|
||||
titleH = jmax (0, (clientRect.bottom - clientRect.top) - comp->getHeight());
|
||||
comp->setTopLeftPosition (0, titleH);
|
||||
|
||||
comp->addToDesktop (0);
|
||||
|
||||
HWND plugWnd = (HWND) comp->getWindowHandle();
|
||||
SetParent (plugWnd, (HWND) hostWindow);
|
||||
|
||||
DWORD val = GetWindowLong (plugWnd, GWL_STYLE);
|
||||
val = (val & ~WS_POPUP) | WS_CHILD;
|
||||
SetWindowLong (plugWnd, GWL_STYLE, val);
|
||||
}
|
||||
|
||||
void JUCE_CALLTYPE resizeHostWindow (void* hostWindow,
|
||||
int& titleW, int& titleH,
|
||||
Component* comp)
|
||||
{
|
||||
RECT clientRect, windowRect;
|
||||
GetClientRect ((HWND) hostWindow, &clientRect);
|
||||
GetWindowRect ((HWND) hostWindow, &windowRect);
|
||||
const int borderW = (windowRect.right - windowRect.left) - (clientRect.right - clientRect.left);
|
||||
const int borderH = (windowRect.bottom - windowRect.top) - (clientRect.bottom - clientRect.top);
|
||||
|
||||
SetWindowPos ((HWND) hostWindow, 0, 0, 0,
|
||||
borderW + jmax (titleW, comp->getWidth()),
|
||||
borderH + comp->getHeight() + titleH,
|
||||
SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOOWNERZORDER);
|
||||
}
|
||||
|
||||
#if ! JucePlugin_EditorRequiresKeyboardFocus
|
||||
|
||||
static HWND findMDIParentOf (HWND w)
|
||||
{
|
||||
const int frameThickness = GetSystemMetrics (SM_CYFIXEDFRAME);
|
||||
|
||||
while (w != 0)
|
||||
{
|
||||
HWND parent = GetParent (w);
|
||||
|
||||
if (parent == 0)
|
||||
break;
|
||||
|
||||
TCHAR windowType [32];
|
||||
zeromem (windowType, sizeof (windowType));
|
||||
GetClassName (parent, windowType, 31);
|
||||
|
||||
if (String (windowType).equalsIgnoreCase (T("MDIClient")))
|
||||
{
|
||||
w = parent;
|
||||
break;
|
||||
}
|
||||
|
||||
RECT windowPos;
|
||||
GetWindowRect (w, &windowPos);
|
||||
|
||||
RECT parentPos;
|
||||
GetWindowRect (parent, &parentPos);
|
||||
|
||||
int dw = (parentPos.right - parentPos.left) - (windowPos.right - windowPos.left);
|
||||
int dh = (parentPos.bottom - parentPos.top) - (windowPos.bottom - windowPos.top);
|
||||
|
||||
if (dw > 100 || dh > 100)
|
||||
break;
|
||||
|
||||
w = parent;
|
||||
|
||||
if (dw == 2 * frameThickness)
|
||||
break;
|
||||
}
|
||||
|
||||
return w;
|
||||
}
|
||||
|
||||
void JUCE_CALLTYPE passFocusToHostWindow (void* hostWindow)
|
||||
{
|
||||
SetFocus (findMDIParentOf ((HWND) hostWindow));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,3 +0,0 @@
|
|||
EXPORTS
|
||||
NewPlugIn @1
|
||||
_PI_GetRoutineDescriptor @2
|
||||
|
|
@ -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 "CEffectMIDIUtils.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 "CEffectProcess.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 "CEffectProcessMIDI.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,45 +0,0 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-7 by Raw Material Software ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the
|
||||
GNU General Public License, as published by the Free Software Foundation;
|
||||
either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with JUCE; if not, visit www.gnu.org/licenses or write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
If you'd like to release a closed-source product which uses JUCE, commercial
|
||||
licenses are also available: visit www.rawmaterialsoftware.com/juce for
|
||||
more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#ifndef __JUCE_WRAPPER_HEADER_JUCEHEADER__
|
||||
#define __JUCE_WRAPPER_HEADER_JUCEHEADER__
|
||||
|
||||
#include "../juce_RTASCompileFlags.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
// the Digidesign projects all use a struct alignment of 2..
|
||||
#pragma pack (2)
|
||||
#pragma warning (disable: 4267 4996 4311 4312 4103)
|
||||
|
||||
#include "ForcedInclude.h"
|
||||
#endif
|
||||
|
||||
#endif // __JUCE_WRAPPER_HEADER_JUCEHEADER__
|
||||
|
|
@ -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,173 +0,0 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-7 by Raw Material Software ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the
|
||||
GNU General Public License, as published by the Free Software Foundation;
|
||||
either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with JUCE; if not, visit www.gnu.org/licenses or write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
If you'd like to release a closed-source product which uses JUCE, commercial
|
||||
licenses are also available: visit www.rawmaterialsoftware.com/juce for
|
||||
more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#include "juce_AudioFilterStreamer.h"
|
||||
#include "../../juce_IncludeCharacteristics.h"
|
||||
|
||||
|
||||
//==============================================================================
|
||||
AudioFilterStreamer::AudioFilterStreamer (AudioProcessor& filterToUse)
|
||||
: filter (filterToUse),
|
||||
isPlaying (false),
|
||||
sampleRate (0),
|
||||
emptyBuffer (1, 32)
|
||||
{
|
||||
filter.setPlayConfigDetails (JucePlugin_MaxNumInputChannels, JucePlugin_MaxNumOutputChannels, 0, 0);
|
||||
|
||||
filter.setPlayHead (this);
|
||||
}
|
||||
|
||||
AudioFilterStreamer::~AudioFilterStreamer()
|
||||
{
|
||||
audioDeviceStopped();
|
||||
}
|
||||
|
||||
void AudioFilterStreamer::audioDeviceIOCallback (const float** inputChannelData,
|
||||
int totalNumInputChannels,
|
||||
float** outputChannelData,
|
||||
int totalNumOutputChannels,
|
||||
int numSamples)
|
||||
{
|
||||
MidiBuffer midiBuffer;
|
||||
midiCollector.removeNextBlockOfMessages (midiBuffer, numSamples);
|
||||
|
||||
int i, numActiveInChans = 0, numActiveOutChans = 0;
|
||||
int numOutsWanted = filter.getNumOutputChannels();
|
||||
const int numInsWanted = filter.getNumInputChannels();
|
||||
|
||||
for (i = 0; i < totalNumInputChannels; ++i)
|
||||
if (inputChannelData[i] != 0)
|
||||
inChans [numActiveInChans++] = (float*) inputChannelData[i];
|
||||
|
||||
while (numActiveInChans < numInsWanted)
|
||||
inChans [numActiveInChans++] = emptyBuffer.getSampleData (0, 0);
|
||||
|
||||
for (i = 0; i < totalNumOutputChannels; ++i)
|
||||
if (outputChannelData[i] != 0)
|
||||
outChans [numActiveOutChans++] = outputChannelData[i];
|
||||
|
||||
i = 0;
|
||||
while (numActiveOutChans < numOutsWanted)
|
||||
outChans [numActiveOutChans++] = emptyBuffer.getSampleData (++i, 0);
|
||||
|
||||
AudioSampleBuffer input (inChans, jmin (numInsWanted, numActiveInChans), numSamples);
|
||||
AudioSampleBuffer output (outChans, jmin (numOutsWanted, numActiveOutChans), numSamples);
|
||||
|
||||
{
|
||||
const ScopedLock sl (filter.getCallbackLock());
|
||||
|
||||
if (filter.isSuspended())
|
||||
{
|
||||
output.clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = jmin (output.getNumChannels(), input.getNumChannels()); --i >= 0;)
|
||||
output.copyFrom (i, 0, input, i, 0, numSamples);
|
||||
|
||||
filter.processBlock (output, midiBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
while (numOutsWanted < numActiveOutChans)
|
||||
zeromem (outChans[numOutsWanted++], sizeof (float) * numSamples);
|
||||
}
|
||||
|
||||
void AudioFilterStreamer::audioDeviceAboutToStart (double sampleRate_,
|
||||
int numSamplesPerBlock)
|
||||
{
|
||||
sampleRate = sampleRate_;
|
||||
|
||||
isPlaying = true;
|
||||
|
||||
emptyBuffer.setSize (1 + filter.getNumOutputChannels(),
|
||||
jmax (2048, numSamplesPerBlock * 2));
|
||||
emptyBuffer.clear();
|
||||
|
||||
midiCollector.reset (sampleRate);
|
||||
|
||||
filter.prepareToPlay (sampleRate, numSamplesPerBlock);
|
||||
}
|
||||
|
||||
void AudioFilterStreamer::audioDeviceStopped()
|
||||
{
|
||||
isPlaying = false;
|
||||
filter.releaseResources();
|
||||
midiCollector.reset (sampleRate);
|
||||
emptyBuffer.setSize (1, 32);
|
||||
}
|
||||
|
||||
void AudioFilterStreamer::handleIncomingMidiMessage (MidiInput* source, const MidiMessage& message)
|
||||
{
|
||||
#if JucePlugin_WantsMidiInput
|
||||
midiCollector.addMessageToQueue (message);
|
||||
#endif
|
||||
}
|
||||
|
||||
bool AudioFilterStreamer::getCurrentPosition (AudioPlayHead::CurrentPositionInfo& info)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
//==============================================================================
|
||||
AudioFilterStreamingDeviceManager::AudioFilterStreamingDeviceManager()
|
||||
: streamer (0)
|
||||
{
|
||||
}
|
||||
|
||||
AudioFilterStreamingDeviceManager::~AudioFilterStreamingDeviceManager()
|
||||
{
|
||||
setFilter (0);
|
||||
clearSingletonInstance();
|
||||
}
|
||||
|
||||
void AudioFilterStreamingDeviceManager::setFilter (AudioProcessor* filterToStream)
|
||||
{
|
||||
if (streamer != 0)
|
||||
{
|
||||
removeMidiInputCallback (streamer);
|
||||
setAudioCallback (0);
|
||||
|
||||
delete streamer;
|
||||
streamer = 0;
|
||||
}
|
||||
|
||||
if (filterToStream != 0)
|
||||
{
|
||||
streamer = new AudioFilterStreamer (*filterToStream);
|
||||
|
||||
setAudioCallback (streamer);
|
||||
addMidiInputCallback (String::empty, streamer);
|
||||
}
|
||||
}
|
||||
|
||||
juce_ImplementSingleton (AudioFilterStreamingDeviceManager);
|
||||
|
|
@ -1,128 +0,0 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-7 by Raw Material Software ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the
|
||||
GNU General Public License, as published by the Free Software Foundation;
|
||||
either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with JUCE; if not, visit www.gnu.org/licenses or write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
If you'd like to release a closed-source product which uses JUCE, commercial
|
||||
licenses are also available: visit www.rawmaterialsoftware.com/juce for
|
||||
more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#ifndef __JUCE_AUDIOFILTERSTREAMER_JUCEHEADER__
|
||||
#define __JUCE_AUDIOFILTERSTREAMER_JUCEHEADER__
|
||||
|
||||
#include "../../../../../juce.h"
|
||||
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
A class that wraps an AudioProcessor as an AudioIODeviceCallback, so its
|
||||
output can be streamed directly to/from some audio and midi inputs and outputs.
|
||||
|
||||
To use it, just create an instance of this for your filter, and register it
|
||||
as the callback with an AudioIODevice or AudioDeviceManager object.
|
||||
|
||||
To receive midi input in your filter, you should also register it as a
|
||||
MidiInputCallback with a suitable MidiInput or an AudioDeviceManager.
|
||||
|
||||
And for an even easier way of doing a standalone plugin, see the
|
||||
AudioFilterStreamingDeviceManager class...
|
||||
*/
|
||||
class AudioFilterStreamer : public AudioIODeviceCallback,
|
||||
public MidiInputCallback,
|
||||
public AudioPlayHead
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
AudioFilterStreamer (AudioProcessor& filterToUse);
|
||||
~AudioFilterStreamer();
|
||||
|
||||
|
||||
//==============================================================================
|
||||
void audioDeviceIOCallback (const float** inputChannelData,
|
||||
int totalNumInputChannels,
|
||||
float** outputChannelData,
|
||||
int totalNumOutputChannels,
|
||||
int numSamples);
|
||||
|
||||
void audioDeviceAboutToStart (double sampleRate, int numSamplesPerBlock);
|
||||
void audioDeviceStopped();
|
||||
|
||||
void handleIncomingMidiMessage (MidiInput* source, const MidiMessage& message);
|
||||
|
||||
bool getCurrentPosition (AudioPlayHead::CurrentPositionInfo& info);
|
||||
|
||||
juce_UseDebuggingNewOperator
|
||||
|
||||
private:
|
||||
//==============================================================================
|
||||
AudioProcessor& filter;
|
||||
bool isPlaying;
|
||||
double sampleRate;
|
||||
MidiMessageCollector midiCollector;
|
||||
|
||||
float* outChans [128];
|
||||
float* inChans [128];
|
||||
AudioSampleBuffer emptyBuffer;
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
Wraps an AudioFilterStreamer in an AudioDeviceManager to make it easy to
|
||||
create a standalone filter.
|
||||
|
||||
This simply acts as a singleton AudioDeviceManager, which continuously
|
||||
streams audio from the filter you give it with the setFilter() method.
|
||||
|
||||
To use it, simply create an instance of it (or use getInstance() if you're
|
||||
using it as a singleton), initialise it like you would a normal
|
||||
AudioDeviceManager, and call setFilter() to start it running your plugin.
|
||||
|
||||
*/
|
||||
class AudioFilterStreamingDeviceManager : public AudioDeviceManager
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
AudioFilterStreamingDeviceManager();
|
||||
~AudioFilterStreamingDeviceManager();
|
||||
|
||||
juce_DeclareSingleton (AudioFilterStreamingDeviceManager, true);
|
||||
|
||||
//==============================================================================
|
||||
/** Tells the device which filter to stream audio through.
|
||||
|
||||
Pass in 0 to deselect the current filter.
|
||||
*/
|
||||
void setFilter (AudioProcessor* filterToStream);
|
||||
|
||||
|
||||
//==============================================================================
|
||||
juce_UseDebuggingNewOperator
|
||||
|
||||
private:
|
||||
AudioFilterStreamer* streamer;
|
||||
};
|
||||
|
||||
|
||||
#endif // __JUCE_AUDIOFILTERSTREAMER_JUCEHEADER__
|
||||
|
|
@ -1,301 +0,0 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-7 by Raw Material Software ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the
|
||||
GNU General Public License, as published by the Free Software Foundation;
|
||||
either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with JUCE; if not, visit www.gnu.org/licenses or write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
If you'd like to release a closed-source product which uses JUCE, commercial
|
||||
licenses are also available: visit www.rawmaterialsoftware.com/juce for
|
||||
more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#include "juce_StandaloneFilterWindow.h"
|
||||
#include "../../juce_IncludeCharacteristics.h"
|
||||
|
||||
//==============================================================================
|
||||
/** Somewhere in the codebase of your plugin, you need to implement this function
|
||||
and make it create an instance of the filter subclass that you're building.
|
||||
*/
|
||||
extern AudioProcessor* JUCE_CALLTYPE createPluginFilter();
|
||||
|
||||
|
||||
//==============================================================================
|
||||
StandaloneFilterWindow::StandaloneFilterWindow (const String& title,
|
||||
const Colour& backgroundColour)
|
||||
: DocumentWindow (title, backgroundColour,
|
||||
DocumentWindow::minimiseButton
|
||||
| DocumentWindow::closeButton),
|
||||
filter (0),
|
||||
deviceManager (0),
|
||||
optionsButton (0)
|
||||
{
|
||||
setTitleBarButtonsRequired (DocumentWindow::minimiseButton | DocumentWindow::closeButton, false);
|
||||
|
||||
PropertySet* const globalSettings = getGlobalSettings();
|
||||
|
||||
optionsButton = new TextButton (T("options"));
|
||||
Component::addAndMakeVisible (optionsButton);
|
||||
optionsButton->addButtonListener (this);
|
||||
optionsButton->setTriggeredOnMouseDown (true);
|
||||
|
||||
JUCE_TRY
|
||||
{
|
||||
filter = createPluginFilter();
|
||||
|
||||
if (filter != 0)
|
||||
{
|
||||
deviceManager = new AudioFilterStreamingDeviceManager();
|
||||
deviceManager->setFilter (filter);
|
||||
|
||||
XmlElement* savedState = 0;
|
||||
|
||||
if (globalSettings != 0)
|
||||
savedState = globalSettings->getXmlValue (T("audioSetup"));
|
||||
|
||||
deviceManager->initialise (filter->getNumInputChannels(),
|
||||
filter->getNumOutputChannels(),
|
||||
savedState,
|
||||
true);
|
||||
|
||||
delete savedState;
|
||||
|
||||
if (globalSettings != 0)
|
||||
{
|
||||
juce::MemoryBlock data;
|
||||
|
||||
if (data.fromBase64Encoding (globalSettings->getValue (T("filterState")))
|
||||
&& data.getSize() > 0)
|
||||
{
|
||||
filter->setStateInformation (data.getData(), data.getSize());
|
||||
}
|
||||
}
|
||||
|
||||
setContentComponent (filter->createEditorIfNeeded(), true, true);
|
||||
|
||||
const int x = globalSettings->getIntValue (T("windowX"), -100);
|
||||
const int y = globalSettings->getIntValue (T("windowY"), -100);
|
||||
|
||||
if (x != -100 && y != -100)
|
||||
setBoundsConstrained (x, y, getWidth(), getHeight());
|
||||
else
|
||||
centreWithSize (getWidth(), getHeight());
|
||||
}
|
||||
}
|
||||
JUCE_CATCH_ALL
|
||||
|
||||
if (deviceManager == 0)
|
||||
{
|
||||
jassertfalse // Your filter didn't create correctly! In a standalone app that's not too great.
|
||||
JUCEApplication::quit();
|
||||
}
|
||||
}
|
||||
|
||||
StandaloneFilterWindow::~StandaloneFilterWindow()
|
||||
{
|
||||
PropertySet* const globalSettings = getGlobalSettings();
|
||||
|
||||
globalSettings->setValue (T("windowX"), getX());
|
||||
globalSettings->setValue (T("windowY"), getY());
|
||||
|
||||
deleteAndZero (optionsButton);
|
||||
|
||||
if (globalSettings != 0 && deviceManager != 0)
|
||||
{
|
||||
XmlElement* const xml = deviceManager->createStateXml();
|
||||
globalSettings->setValue (T("audioSetup"), xml);
|
||||
delete xml;
|
||||
}
|
||||
|
||||
deleteAndZero (deviceManager);
|
||||
|
||||
if (globalSettings != 0 && filter != 0)
|
||||
{
|
||||
juce::MemoryBlock data;
|
||||
filter->getStateInformation (data);
|
||||
|
||||
globalSettings->setValue (T("filterState"), data.toBase64Encoding());
|
||||
}
|
||||
|
||||
deleteFilter();
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void StandaloneFilterWindow::deleteFilter()
|
||||
{
|
||||
if (deviceManager != 0)
|
||||
deviceManager->setFilter (0);
|
||||
|
||||
if (filter != 0 && getContentComponent() != 0)
|
||||
{
|
||||
filter->editorBeingDeleted (dynamic_cast <AudioProcessorEditor*> (getContentComponent()));
|
||||
setContentComponent (0, true);
|
||||
}
|
||||
|
||||
deleteAndZero (filter);
|
||||
}
|
||||
|
||||
void StandaloneFilterWindow::resetFilter()
|
||||
{
|
||||
deleteFilter();
|
||||
|
||||
filter = createPluginFilter();
|
||||
|
||||
if (filter != 0)
|
||||
{
|
||||
if (deviceManager != 0)
|
||||
deviceManager->setFilter (filter);
|
||||
|
||||
setContentComponent (filter->createEditorIfNeeded(), true, true);
|
||||
}
|
||||
|
||||
PropertySet* const globalSettings = getGlobalSettings();
|
||||
|
||||
if (globalSettings != 0)
|
||||
globalSettings->removeValue (T("filterState"));
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void StandaloneFilterWindow::saveState()
|
||||
{
|
||||
PropertySet* const globalSettings = getGlobalSettings();
|
||||
|
||||
FileChooser fc (TRANS("Save current state"),
|
||||
globalSettings != 0 ? File (globalSettings->getValue (T("lastStateFile")))
|
||||
: File::nonexistent);
|
||||
|
||||
if (fc.browseForFileToSave (true))
|
||||
{
|
||||
juce::MemoryBlock data;
|
||||
filter->getStateInformation (data);
|
||||
|
||||
if (! fc.getResult().replaceWithData (data.getData(), data.getSize()))
|
||||
{
|
||||
AlertWindow::showMessageBox (AlertWindow::WarningIcon,
|
||||
TRANS("Error whilst saving"),
|
||||
TRANS("Couldn't write to the specified file!"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void StandaloneFilterWindow::loadState()
|
||||
{
|
||||
PropertySet* const globalSettings = getGlobalSettings();
|
||||
|
||||
FileChooser fc (TRANS("Load a saved state"),
|
||||
globalSettings != 0 ? File (globalSettings->getValue (T("lastStateFile")))
|
||||
: File::nonexistent);
|
||||
|
||||
if (fc.browseForFileToOpen())
|
||||
{
|
||||
juce::MemoryBlock data;
|
||||
|
||||
if (fc.getResult().loadFileAsData (data))
|
||||
{
|
||||
filter->setStateInformation (data.getData(), data.getSize());
|
||||
}
|
||||
else
|
||||
{
|
||||
AlertWindow::showMessageBox (AlertWindow::WarningIcon,
|
||||
TRANS("Error whilst loading"),
|
||||
TRANS("Couldn't read from the specified file!"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
PropertySet* StandaloneFilterWindow::getGlobalSettings()
|
||||
{
|
||||
/* If you want this class to store the plugin's settings, you can set up an
|
||||
ApplicationProperties object and use this method as it is, or override this
|
||||
method to return your own custom PropertySet.
|
||||
|
||||
If using this method without changing it, you'll probably need to call
|
||||
ApplicationProperties::setStorageParameters() in your plugin's constructor to
|
||||
tell it where to save the file.
|
||||
*/
|
||||
return ApplicationProperties::getInstance()->getUserSettings();
|
||||
}
|
||||
|
||||
void StandaloneFilterWindow::showAudioSettingsDialog()
|
||||
{
|
||||
AudioDeviceSelectorComponent selectorComp (*deviceManager,
|
||||
filter->getNumInputChannels(),
|
||||
filter->getNumInputChannels(),
|
||||
filter->getNumOutputChannels(),
|
||||
filter->getNumOutputChannels(),
|
||||
true, false);
|
||||
|
||||
selectorComp.setSize (500, 350);
|
||||
|
||||
DialogWindow::showModalDialog (TRANS("Audio Settings"), &selectorComp, this, Colours::lightgrey, true, false, false);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void StandaloneFilterWindow::closeButtonPressed()
|
||||
{
|
||||
JUCEApplication::quit();
|
||||
}
|
||||
|
||||
void StandaloneFilterWindow::resized()
|
||||
{
|
||||
DocumentWindow::resized();
|
||||
|
||||
if (optionsButton != 0)
|
||||
optionsButton->setBounds (8, 6, 60, getTitleBarHeight() - 8);
|
||||
}
|
||||
|
||||
void StandaloneFilterWindow::buttonClicked (Button*)
|
||||
{
|
||||
if (filter == 0)
|
||||
return;
|
||||
|
||||
PopupMenu m;
|
||||
m.addItem (1, TRANS("Audio Settings..."));
|
||||
m.addSeparator();
|
||||
m.addItem (2, TRANS("Save current state..."));
|
||||
m.addItem (3, TRANS("Load a saved state..."));
|
||||
m.addSeparator();
|
||||
m.addItem (4, TRANS("Reset to default state"));
|
||||
|
||||
switch (m.showAt (optionsButton))
|
||||
{
|
||||
case 1:
|
||||
showAudioSettingsDialog();
|
||||
break;
|
||||
|
||||
case 2:
|
||||
saveState();
|
||||
break;
|
||||
|
||||
case 3:
|
||||
loadState();
|
||||
break;
|
||||
|
||||
case 4:
|
||||
resetFilter();
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-7 by Raw Material Software ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the
|
||||
GNU General Public License, as published by the Free Software Foundation;
|
||||
either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with JUCE; if not, visit www.gnu.org/licenses or write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
If you'd like to release a closed-source product which uses JUCE, commercial
|
||||
licenses are also available: visit www.rawmaterialsoftware.com/juce for
|
||||
more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#ifndef __JUCE_STANDALONEFILTERWINDOW_JUCEHEADER__
|
||||
#define __JUCE_STANDALONEFILTERWINDOW_JUCEHEADER__
|
||||
|
||||
#include "juce_AudioFilterStreamer.h"
|
||||
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
A class that can be used to run a simple standalone application containing your filter.
|
||||
|
||||
Just create one of these objects in your JUCEApplication::initialise() method, and
|
||||
let it do its work. It will create your filter object using the same createFilter() function
|
||||
that the other plugin wrappers use.
|
||||
*/
|
||||
class StandaloneFilterWindow : public DocumentWindow,
|
||||
public ButtonListener
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
StandaloneFilterWindow (const String& title,
|
||||
const Colour& backgroundColour);
|
||||
|
||||
~StandaloneFilterWindow();
|
||||
|
||||
//==============================================================================
|
||||
/** Deletes and re-creates the filter and its UI. */
|
||||
void resetFilter();
|
||||
|
||||
/** Pops up a dialog letting the user save the filter's state to a file. */
|
||||
void saveState();
|
||||
|
||||
/** Pops up a dialog letting the user re-load the filter's state from a file. */
|
||||
void loadState();
|
||||
|
||||
/** Shows the audio properties dialog box modally. */
|
||||
virtual void showAudioSettingsDialog();
|
||||
|
||||
/** Returns the property set to use for storing the app's last state.
|
||||
|
||||
This will be used to store the audio set-up and the filter's last state.
|
||||
*/
|
||||
virtual PropertySet* getGlobalSettings();
|
||||
|
||||
//==============================================================================
|
||||
/** @internal */
|
||||
void closeButtonPressed();
|
||||
/** @internal */
|
||||
void buttonClicked (Button*);
|
||||
/** @internal */
|
||||
void resized();
|
||||
|
||||
juce_UseDebuggingNewOperator
|
||||
|
||||
private:
|
||||
AudioProcessor* filter;
|
||||
AudioFilterStreamingDeviceManager* deviceManager;
|
||||
Button* optionsButton;
|
||||
|
||||
void deleteFilter();
|
||||
|
||||
StandaloneFilterWindow (const StandaloneFilterWindow&);
|
||||
const StandaloneFilterWindow& operator= (const StandaloneFilterWindow&);
|
||||
};
|
||||
|
||||
#endif // __JUCE_STANDALONEFILTERWINDOW_JUCEHEADER__
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,98 +0,0 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-7 by Raw Material Software ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the
|
||||
GNU General Public License, as published by the Free Software Foundation;
|
||||
either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with JUCE; if not, visit www.gnu.org/licenses or write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
If you'd like to release a closed-source product which uses JUCE, commercial
|
||||
licenses are also available: visit www.rawmaterialsoftware.com/juce for
|
||||
more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#ifndef __JUCE_INCLUDECHARACTERISTICS_JUCEHEADER__
|
||||
#define __JUCE_INCLUDECHARACTERISTICS_JUCEHEADER__
|
||||
|
||||
//==============================================================================
|
||||
/* The JucePluginCharacteristics.h file is supposed to live in your plugin-specific
|
||||
project directory, and has to contain info describing its name, type, etc. For
|
||||
more info, see the JucePluginCharacteristics.h that is included in the demo plugin.
|
||||
|
||||
You may need to adjust the include path of your project to make sure it can be
|
||||
found by this include statement. (Don't hack this file to change the include path)
|
||||
*/
|
||||
#include "JucePluginCharacteristics.h"
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// The following stuff is just to cause a compile error if you've forgotten to
|
||||
// define all your plugin settings properly.
|
||||
|
||||
#ifndef JucePlugin_IsSynth
|
||||
#error "You need to define the JucePlugin_IsSynth value in your JucePluginCharacteristics.h file!"
|
||||
#endif
|
||||
|
||||
#ifndef JucePlugin_ManufacturerCode
|
||||
#error "You need to define the JucePlugin_ManufacturerCode value in your JucePluginCharacteristics.h file!"
|
||||
#endif
|
||||
|
||||
#ifndef JucePlugin_PluginCode
|
||||
#error "You need to define the JucePlugin_PluginCode value in your JucePluginCharacteristics.h file!"
|
||||
#endif
|
||||
|
||||
#ifndef JucePlugin_ProducesMidiOutput
|
||||
#error "You need to define the JucePlugin_ProducesMidiOutput value in your JucePluginCharacteristics.h file!"
|
||||
#endif
|
||||
|
||||
#ifndef JucePlugin_WantsMidiInput
|
||||
#error "You need to define the JucePlugin_WantsMidiInput value in your JucePluginCharacteristics.h file!"
|
||||
#endif
|
||||
|
||||
#ifndef JucePlugin_MaxNumInputChannels
|
||||
#error "You need to define the JucePlugin_MaxNumInputChannels value in your JucePluginCharacteristics.h file!"
|
||||
#endif
|
||||
|
||||
#ifndef JucePlugin_MaxNumOutputChannels
|
||||
#error "You need to define the JucePlugin_MaxNumOutputChannels value in your JucePluginCharacteristics.h file!"
|
||||
#endif
|
||||
|
||||
#ifndef JucePlugin_PreferredChannelConfigurations
|
||||
#error "You need to define the JucePlugin_PreferredChannelConfigurations value in your JucePluginCharacteristics.h file!"
|
||||
#endif
|
||||
|
||||
#ifdef JucePlugin_Latency
|
||||
#error "JucePlugin_Latency is now deprecated - instead, call the AudioProcessor::setLatencySamples() method if your plugin has a non-zero delay"
|
||||
#endif
|
||||
|
||||
#ifndef JucePlugin_SilenceInProducesSilenceOut
|
||||
#error "You need to define the JucePlugin_SilenceInProducesSilenceOut value in your JucePluginCharacteristics.h file!"
|
||||
#endif
|
||||
|
||||
#ifndef JucePlugin_EditorRequiresKeyboardFocus
|
||||
#error "You need to define the JucePlugin_EditorRequiresKeyboardFocus value in your JucePluginCharacteristics.h file!"
|
||||
#endif
|
||||
|
||||
#if JUCE_USE_VSTSDK_2_4 != 0 && JUCE_USE_VSTSDK_2_4 != 1
|
||||
#error "You need to define the JUCE_USE_VSTSDK_2_4 value in your JucePluginCharacteristics.h file!"
|
||||
#endif
|
||||
|
||||
#endif // __JUCE_INCLUDECHARACTERISTICS_JUCEHEADER__
|
||||
Loading…
Add table
Add a link
Reference in a new issue