Browse Source

whitespace cleanup

tags/2021-05-28
jules 17 years ago
parent
commit
69d0eb483e
12 changed files with 1567 additions and 1565 deletions
  1. +4
    -2
      build/macosx/platform_specific_code/juce_mac_NativeCode.mm
  2. +4
    -4
      build/win32/platform_specific_code/juce_win32_PlatformUtils.cpp
  3. +285
    -285
      extras/audio plugins/demo/src/JucePluginCharacteristics.h
  4. +101
    -101
      extras/audio plugins/wrapper/RTAS/juce_RTAS_MacUtilities.mm
  5. +991
    -991
      extras/audio plugins/wrapper/RTAS/juce_RTAS_Wrapper.cpp
  6. +1
    -1
      extras/audio plugins/wrapper/Standalone/juce_AudioFilterStreamer.cpp
  7. +171
    -171
      extras/audio plugins/wrapper/VST/juce_VST_Wrapper.mm
  8. +0
    -1
      extras/juce demo/src/BinaryData.cpp
  9. +0
    -1
      extras/the jucer/src/BinaryData.cpp
  10. +4
    -2
      juce_amalgamated.cpp
  11. +4
    -4
      src/juce_core/misc/juce_PlatformUtilities.h
  12. +2
    -2
      src/juce_core/misc/juce_Uuid.cpp

+ 4
- 2
build/macosx/platform_specific_code/juce_mac_NativeCode.mm View File

@@ -78,10 +78,12 @@ BEGIN_JUCE_NAMESPACE
#undef Point
//==============================================================================
#define ObjCExtraSuffix 1
#ifndef JUCE_ObjCExtraSuffix
#define JUCE_ObjCExtraSuffix 2
#endif
#define appendMacro1(a, b, c, d) a ## _ ## b ## _ ## c ## _ ## d
#define appendMacro2(a, b, c, d) appendMacro1(a, b, c, d)
#define MakeObjCClassName(rootName) appendMacro2 (rootName, JUCE_MAJOR_VERSION, JUCE_MINOR_VERSION, ObjCExtraSuffix)
#define MakeObjCClassName(rootName) appendMacro2 (rootName, JUCE_MAJOR_VERSION, JUCE_MINOR_VERSION, JUCE_ObjCExtraSuffix)
//==============================================================================
#define JUCE_INCLUDED_FILE 1


+ 4
- 4
build/win32/platform_specific_code/juce_win32_PlatformUtils.cpp View File

@@ -159,9 +159,9 @@ void PlatformUtilities::deleteRegistryKey (const String& regKeyPath)
}
}
void PlatformUtilities::registerFileAssociation (const String& fileExtension,
const String& symbolicDescription,
const String& fullDescription,
void PlatformUtilities::registerFileAssociation (const String& fileExtension,
const String& symbolicDescription,
const String& fullDescription,
const File& targetExecutable,
int iconResourceNumber)
{
@@ -175,7 +175,7 @@ void PlatformUtilities::registerFileAssociation (const String& fileExtension,
setRegistryValue (key + "\\", fullDescription);
setRegistryValue (key + "\\shell\\open\\command\\",
setRegistryValue (key + "\\shell\\open\\command\\",
targetExecutable.getFullPathName() + " %1");
}


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

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

+ 101
- 101
extras/audio plugins/wrapper/RTAS/juce_RTAS_MacUtilities.mm View File

@@ -1,101 +1,101 @@
/*
==============================================================================
This file is part of the JUCE library - "Jules' Utility Class Extensions"
Copyright 2004-7 by Raw Material Software ltd.
------------------------------------------------------------------------------
JUCE can be redistributed and/or modified under the terms of the
GNU General Public License, as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.
JUCE is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with JUCE; if not, visit www.gnu.org/licenses or write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA
------------------------------------------------------------------------------
If you'd like to release a closed-source product which uses JUCE, commercial
licenses are also available: visit www.rawmaterialsoftware.com/juce for
more information.
==============================================================================
*/
// If you get an error here, you might need to make sure that
// your build config files don't specify "C++" as one of the
// flags in OTHER_CFLAGS, because that stops the compiler building
// obj-c files correctly.
@class dummyclassname;
#include <Cocoa/Cocoa.h>
#include "../juce_PluginHeaders.h"
#if JucePlugin_Build_RTAS
//==============================================================================
void initialiseMacRTAS()
{
NSApplicationLoad();
}
void* attachSubWindow (void* hostWindowRef, Component* comp)
{
const ScopedAutoReleasePool pool;
NSWindow* hostWindow = [[NSWindow alloc] initWithWindowRef: hostWindowRef];
[hostWindow retain];
[hostWindow setCanHide: YES];
[hostWindow setReleasedWhenClosed: YES];
NSView* content = [hostWindow contentView];
NSRect f = [content frame];
f.size.width = comp->getWidth();
f.size.height = comp->getHeight();
[content setFrame: f];
NSPoint windowPos = [hostWindow convertBaseToScreen: f.origin];
windowPos.y = [[NSScreen mainScreen] frame].size.height - (windowPos.y + f.size.height);
comp->setTopLeftPosition ((int) windowPos.x, (int) windowPos.y);
#if ! JucePlugin_EditorRequiresKeyboardFocus
comp->addToDesktop (ComponentPeer::windowIsTemporary | ComponentPeer::windowIgnoresKeyPresses);
#else
comp->addToDesktop (ComponentPeer::windowIsTemporary);
#endif
comp->setVisible (true);
NSView* pluginView = (NSView*) comp->getWindowHandle();
NSWindow* pluginWindow = [pluginView window];
[hostWindow addChildWindow: pluginWindow
ordered: NSWindowAbove];
[hostWindow orderFront: nil];
[pluginWindow orderFront: nil];
return hostWindow;
}
void removeSubWindow (void* nsWindow, Component* comp)
{
const ScopedAutoReleasePool pool;
NSView* pluginView = (NSView*) comp->getWindowHandle();
NSWindow* hostWindow = (NSWindow*) nsWindow;
NSWindow* pluginWindow = [pluginView window];
[hostWindow removeChildWindow: pluginWindow];
comp->removeFromDesktop();
[hostWindow release];
}
#endif
/*
==============================================================================
This file is part of the JUCE library - "Jules' Utility Class Extensions"
Copyright 2004-7 by Raw Material Software ltd.
------------------------------------------------------------------------------
JUCE can be redistributed and/or modified under the terms of the
GNU General Public License, as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.
JUCE is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with JUCE; if not, visit www.gnu.org/licenses or write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA
------------------------------------------------------------------------------
If you'd like to release a closed-source product which uses JUCE, commercial
licenses are also available: visit www.rawmaterialsoftware.com/juce for
more information.
==============================================================================
*/
// If you get an error here, you might need to make sure that
// your build config files don't specify "C++" as one of the
// flags in OTHER_CFLAGS, because that stops the compiler building
// obj-c files correctly.
@class dummyclassname;
#include <Cocoa/Cocoa.h>
#include "../juce_PluginHeaders.h"
#if JucePlugin_Build_RTAS
//==============================================================================
void initialiseMacRTAS()
{
NSApplicationLoad();
}
void* attachSubWindow (void* hostWindowRef, Component* comp)
{
const ScopedAutoReleasePool pool;
NSWindow* hostWindow = [[NSWindow alloc] initWithWindowRef: hostWindowRef];
[hostWindow retain];
[hostWindow setCanHide: YES];
[hostWindow setReleasedWhenClosed: YES];
NSView* content = [hostWindow contentView];
NSRect f = [content frame];
f.size.width = comp->getWidth();
f.size.height = comp->getHeight();
[content setFrame: f];
NSPoint windowPos = [hostWindow convertBaseToScreen: f.origin];
windowPos.y = [[NSScreen mainScreen] frame].size.height - (windowPos.y + f.size.height);
comp->setTopLeftPosition ((int) windowPos.x, (int) windowPos.y);
#if ! JucePlugin_EditorRequiresKeyboardFocus
comp->addToDesktop (ComponentPeer::windowIsTemporary | ComponentPeer::windowIgnoresKeyPresses);
#else
comp->addToDesktop (ComponentPeer::windowIsTemporary);
#endif
comp->setVisible (true);
NSView* pluginView = (NSView*) comp->getWindowHandle();
NSWindow* pluginWindow = [pluginView window];
[hostWindow addChildWindow: pluginWindow
ordered: NSWindowAbove];
[hostWindow orderFront: nil];
[pluginWindow orderFront: nil];
return hostWindow;
}
void removeSubWindow (void* nsWindow, Component* comp)
{
const ScopedAutoReleasePool pool;
NSView* pluginView = (NSView*) comp->getWindowHandle();
NSWindow* hostWindow = (NSWindow*) nsWindow;
NSWindow* pluginWindow = [pluginView window];
[hostWindow removeChildWindow: pluginWindow];
comp->removeFromDesktop();
[hostWindow release];
}
#endif

+ 991
- 991
extras/audio plugins/wrapper/RTAS/juce_RTAS_Wrapper.cpp
File diff suppressed because it is too large
View File


+ 1
- 1
extras/audio plugins/wrapper/Standalone/juce_AudioFilterStreamer.cpp View File

@@ -30,7 +30,7 @@
*/
#include "juce_AudioFilterStreamer.h"
#include "../../juce_IncludeCharacteristics.h"
#include "../juce_IncludeCharacteristics.h"
//==============================================================================


+ 171
- 171
extras/audio plugins/wrapper/VST/juce_VST_Wrapper.mm View File

@@ -1,171 +1,171 @@
/*
==============================================================================
This file is part of the JUCE library - "Jules' Utility Class Extensions"
Copyright 2004-7 by Raw Material Software ltd.
------------------------------------------------------------------------------
JUCE can be redistributed and/or modified under the terms of the
GNU General Public License, as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.
JUCE is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with JUCE; if not, visit www.gnu.org/licenses or write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA
------------------------------------------------------------------------------
If you'd like to release a closed-source product which uses JUCE, commercial
licenses are also available: visit www.rawmaterialsoftware.com/juce for
more information.
==============================================================================
*/
//==============================================================================
#include "../juce_IncludeCharacteristics.h"
#if JucePlugin_Build_VST
#include <Cocoa/Cocoa.h>
#define ADD_CARBON_BODGE 1 // see note below..
#if ADD_CARBON_BODGE
#include <Carbon/Carbon.h>
#endif
#include "../juce_PluginHeaders.h"
//==============================================================================
BEGIN_JUCE_NAMESPACE
#if ADD_CARBON_BODGE
/* When you wrap a WindowRef as an NSWindow, it seems to bugger up the HideWindow
function, so when the host tries (and fails) to hide the window, this catches
the event and does the job properly.
*/
static pascal OSStatus windowVisibilityBodge (EventHandlerCallRef, EventRef e, void* user)
{
NSWindow* hostWindow = (NSWindow*) user;
switch (GetEventKind (e))
{
case kEventWindowShown:
[hostWindow orderFront: nil];
break;
case kEventWindowHidden:
[hostWindow orderOut: nil];
break;
}
return eventNotHandledErr;
}
#endif
//==============================================================================
void initialiseMac()
{
NSApplicationLoad();
}
void* attachComponentToWindowRef (Component* comp, void* windowRef)
{
const ScopedAutoReleasePool pool;
NSWindow* hostWindow = [[NSWindow alloc] initWithWindowRef: windowRef];
[hostWindow retain];
[hostWindow setCanHide: YES];
[hostWindow setReleasedWhenClosed: YES];
NSView* content = [hostWindow contentView];
NSRect f = [content frame];
NSPoint windowPos = [hostWindow convertBaseToScreen: f.origin];
windowPos.y = [[NSScreen mainScreen] frame].size.height - (windowPos.y + f.size.height);
comp->setTopLeftPosition ((int) windowPos.x, (int) windowPos.y);
#if ! JucePlugin_EditorRequiresKeyboardFocus
comp->addToDesktop (ComponentPeer::windowIsTemporary | ComponentPeer::windowIgnoresKeyPresses);
#else
comp->addToDesktop (ComponentPeer::windowIsTemporary);
#endif
comp->setVisible (true);
comp->toFront (false);
NSView* pluginView = (NSView*) comp->getWindowHandle();
NSWindow* pluginWindow = [pluginView window];
[pluginWindow setExcludedFromWindowsMenu: YES];
[pluginWindow setCanHide: YES];
[hostWindow addChildWindow: pluginWindow
ordered: NSWindowAbove];
[hostWindow orderFront: nil];
[pluginWindow orderFront: nil];
#if ADD_CARBON_BODGE
// Adds a callback bodge to work around some problems with wrapped
// carbon windows..
const EventTypeSpec eventsToCatch[] = {
{ kEventClassWindow, kEventWindowShown },
{ kEventClassWindow, kEventWindowHidden }
};
InstallWindowEventHandler ((WindowRef) windowRef,
NewEventHandlerUPP (windowVisibilityBodge),
GetEventTypeCount (eventsToCatch), eventsToCatch,
(void*) hostWindow, 0);
#endif
return hostWindow;
}
void detachComponentFromWindowRef (Component* comp, void* nsWindow)
{
const ScopedAutoReleasePool pool;
NSWindow* hostWindow = (NSWindow*) nsWindow;
NSView* pluginView = (NSView*) comp->getWindowHandle();
NSWindow* pluginWindow = [pluginView window];
[hostWindow removeChildWindow: pluginWindow];
comp->removeFromDesktop();
[hostWindow release];
}
void setNativeHostWindowSize (void* nsWindow, Component* component, int newWidth, int newHeight)
{
NSWindow* hostWindow = (NSWindow*) nsWindow;
if (hostWindow != 0)
{
ScopedAutoReleasePool pool;
// Can't use the cocoa NSWindow resizing code, or it messes up in Live.
Rect r;
GetWindowBounds ((WindowRef) [hostWindow windowRef], kWindowContentRgn, &r);
r.right += newWidth - component->getWidth();
r.bottom += newHeight - component->getHeight();
SetWindowBounds ((WindowRef) [hostWindow windowRef], kWindowContentRgn, &r);
[[hostWindow contentView] setNeedsDisplay: YES];
}
}
void checkWindowVisibility (void* nsWindow, Component* comp)
{
NSWindow* hostWindow = (NSWindow*) nsWindow;
comp->setVisible ([hostWindow isVisible]);
}
END_JUCE_NAMESPACE
#endif
/*
==============================================================================
This file is part of the JUCE library - "Jules' Utility Class Extensions"
Copyright 2004-7 by Raw Material Software ltd.
------------------------------------------------------------------------------
JUCE can be redistributed and/or modified under the terms of the
GNU General Public License, as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.
JUCE is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with JUCE; if not, visit www.gnu.org/licenses or write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA
------------------------------------------------------------------------------
If you'd like to release a closed-source product which uses JUCE, commercial
licenses are also available: visit www.rawmaterialsoftware.com/juce for
more information.
==============================================================================
*/
//==============================================================================
#include "../juce_IncludeCharacteristics.h"
#if JucePlugin_Build_VST
#include <Cocoa/Cocoa.h>
#define ADD_CARBON_BODGE 1 // see note below..
#if ADD_CARBON_BODGE
#include <Carbon/Carbon.h>
#endif
#include "../juce_PluginHeaders.h"
//==============================================================================
BEGIN_JUCE_NAMESPACE
#if ADD_CARBON_BODGE
/* When you wrap a WindowRef as an NSWindow, it seems to bugger up the HideWindow
function, so when the host tries (and fails) to hide the window, this catches
the event and does the job properly.
*/
static pascal OSStatus windowVisibilityBodge (EventHandlerCallRef, EventRef e, void* user)
{
NSWindow* hostWindow = (NSWindow*) user;
switch (GetEventKind (e))
{
case kEventWindowShown:
[hostWindow orderFront: nil];
break;
case kEventWindowHidden:
[hostWindow orderOut: nil];
break;
}
return eventNotHandledErr;
}
#endif
//==============================================================================
void initialiseMac()
{
NSApplicationLoad();
}
void* attachComponentToWindowRef (Component* comp, void* windowRef)
{
const ScopedAutoReleasePool pool;
NSWindow* hostWindow = [[NSWindow alloc] initWithWindowRef: windowRef];
[hostWindow retain];
[hostWindow setCanHide: YES];
[hostWindow setReleasedWhenClosed: YES];
NSView* content = [hostWindow contentView];
NSRect f = [content frame];
NSPoint windowPos = [hostWindow convertBaseToScreen: f.origin];
windowPos.y = [[NSScreen mainScreen] frame].size.height - (windowPos.y + f.size.height);
comp->setTopLeftPosition ((int) windowPos.x, (int) windowPos.y);
#if ! JucePlugin_EditorRequiresKeyboardFocus
comp->addToDesktop (ComponentPeer::windowIsTemporary | ComponentPeer::windowIgnoresKeyPresses);
#else
comp->addToDesktop (ComponentPeer::windowIsTemporary);
#endif
comp->setVisible (true);
comp->toFront (false);
NSView* pluginView = (NSView*) comp->getWindowHandle();
NSWindow* pluginWindow = [pluginView window];
[pluginWindow setExcludedFromWindowsMenu: YES];
[pluginWindow setCanHide: YES];
[hostWindow addChildWindow: pluginWindow
ordered: NSWindowAbove];
[hostWindow orderFront: nil];
[pluginWindow orderFront: nil];
#if ADD_CARBON_BODGE
// Adds a callback bodge to work around some problems with wrapped
// carbon windows..
const EventTypeSpec eventsToCatch[] = {
{ kEventClassWindow, kEventWindowShown },
{ kEventClassWindow, kEventWindowHidden }
};
InstallWindowEventHandler ((WindowRef) windowRef,
NewEventHandlerUPP (windowVisibilityBodge),
GetEventTypeCount (eventsToCatch), eventsToCatch,
(void*) hostWindow, 0);
#endif
return hostWindow;
}
void detachComponentFromWindowRef (Component* comp, void* nsWindow)
{
const ScopedAutoReleasePool pool;
NSWindow* hostWindow = (NSWindow*) nsWindow;
NSView* pluginView = (NSView*) comp->getWindowHandle();
NSWindow* pluginWindow = [pluginView window];
[hostWindow removeChildWindow: pluginWindow];
comp->removeFromDesktop();
[hostWindow release];
}
void setNativeHostWindowSize (void* nsWindow, Component* component, int newWidth, int newHeight)
{
NSWindow* hostWindow = (NSWindow*) nsWindow;
if (hostWindow != 0)
{
ScopedAutoReleasePool pool;
// Can't use the cocoa NSWindow resizing code, or it messes up in Live.
Rect r;
GetWindowBounds ((WindowRef) [hostWindow windowRef], kWindowContentRgn, &r);
r.right += newWidth - component->getWidth();
r.bottom += newHeight - component->getHeight();
SetWindowBounds ((WindowRef) [hostWindow windowRef], kWindowContentRgn, &r);
[[hostWindow contentView] setNeedsDisplay: YES];
}
}
void checkWindowVisibility (void* nsWindow, Component* comp)
{
NSWindow* hostWindow = (NSWindow*) nsWindow;
comp->setVisible ([hostWindow isVisible]);
}
END_JUCE_NAMESPACE
#endif

+ 0
- 1
extras/juce demo/src/BinaryData.cpp View File

@@ -7974,4 +7974,3 @@ static const unsigned char temp17[] = {47,42,13,10,32,32,61,61,61,61,61,61,61,61
111,109,109,97,110,100,77,97,110,97,103,101,114,41,13,10,123,13,10,32,32,32,32,114,101,116,117,114,110,32,110,101,119,32,87,105,100,103,101,116,
115,68,101,109,111,32,40,99,111,109,109,97,110,100,77,97,110,97,103,101,114,41,59,13,10,125,13,10,0,0};
const char* BinaryData::widgetsdemo_cpp = (const char*) temp17;

+ 0
- 1
extras/the jucer/src/BinaryData.cpp View File

@@ -911,4 +911,3 @@ static const unsigned char temp4[] = {137,80,78,71,13,10,26,10,0,0,0,13,73,72,68
0,98,28,9,155,95,0,2,104,68,236,11,1,8,160,17,225,73,128,0,3,0,120,52,172,151,198,78,252,63,0,0,0,0,73,69,78,68,174,66,
96,130,0,0};
const char* BinaryData::prefs_misc_png = (const char*) temp4;

+ 4
- 2
juce_amalgamated.cpp View File

@@ -262487,10 +262487,12 @@ BEGIN_JUCE_NAMESPACE

#undef Point

#define ObjCExtraSuffix 1
#ifndef JUCE_ObjCExtraSuffix
#define JUCE_ObjCExtraSuffix 2
#endif
#define appendMacro1(a, b, c, d) a ## _ ## b ## _ ## c ## _ ## d
#define appendMacro2(a, b, c, d) appendMacro1(a, b, c, d)
#define MakeObjCClassName(rootName) appendMacro2 (rootName, JUCE_MAJOR_VERSION, JUCE_MINOR_VERSION, ObjCExtraSuffix)
#define MakeObjCClassName(rootName) appendMacro2 (rootName, JUCE_MAJOR_VERSION, JUCE_MINOR_VERSION, JUCE_ObjCExtraSuffix)

#define JUCE_INCLUDED_FILE 1



+ 4
- 4
src/juce_core/misc/juce_PlatformUtilities.h View File

@@ -112,7 +112,7 @@ public:
/** WIN32 ONLY - Creates a file association in the registry.
This lets you set the exe that should be launched by a given file extension.
@param fileExtension the file extension to associate, including the
@param fileExtension the file extension to associate, including the
initial dot, e.g. ".txt"
@param symbolicDescription a space-free short token to identify the file type
@param fullDescription a human-readable description of the file type
@@ -121,9 +121,9 @@ public:
found by looking up this resource number in the
executable. Pass 0 here to not use an icon
*/
static void registerFileAssociation (const String& fileExtension,
const String& symbolicDescription,
const String& fullDescription,
static void registerFileAssociation (const String& fileExtension,
const String& symbolicDescription,
const String& fullDescription,
const File& targetExecutable,
int iconResourceNumber);


+ 2
- 2
src/juce_core/misc/juce_Uuid.cpp View File

@@ -42,7 +42,7 @@ BEGIN_JUCE_NAMESPACE
//==============================================================================
Uuid::Uuid()
{
// Mix up any available MAC addresses with some time-based pseudo-random numbers
// Mix up any available MAC addresses with some time-based pseudo-random numbers
// to make it very very unlikely that two UUIDs will ever be the same..
static int64 macAddresses[2];
@@ -60,7 +60,7 @@ Uuid::Uuid()
// We'll use both a local RNG that is re-seeded, plus the shared RNG,
// whose seed will carry over between calls to this method.
Random r (macAddresses[0] ^ macAddresses[1]
Random r (macAddresses[0] ^ macAddresses[1]
^ Random::getSystemRandom().nextInt64());
for (int i = 4; --i >= 0;)


Loading…
Cancel
Save