diff --git a/build/linux/platform_specific_code/juce_linux_Audio.cpp b/build/linux/platform_specific_code/juce_linux_Audio.cpp index 40d44d616a..66ee5d206f 100644 --- a/build/linux/platform_specific_code/juce_linux_Audio.cpp +++ b/build/linux/platform_specific_code/juce_linux_Audio.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -42,7 +42,7 @@ The package you need to install to get ASLA support is "libasound2-dev". - If you don't have the ALSA library and don't want to build Juce with audio support, + If you don't have the ALSA library and don't want to build Juce with audio support, just disable the JUCE_ALSA flag in juce_Config.h */ #include @@ -795,7 +795,7 @@ public: internal->setCallback (callback); if (callback != 0) - callback->audioDeviceAboutToStart (internal->sampleRate, + callback->audioDeviceAboutToStart (internal->sampleRate, internal->bufferSize); isStarted = (callback != 0); diff --git a/build/linux/platform_specific_code/juce_linux_AudioCDReader.cpp b/build/linux/platform_specific_code/juce_linux_AudioCDReader.cpp index 155e32c1a5..7bcaa6f7cc 100644 --- a/build/linux/platform_specific_code/juce_linux_AudioCDReader.cpp +++ b/build/linux/platform_specific_code/juce_linux_AudioCDReader.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/linux/platform_specific_code/juce_linux_FileChooser.cpp b/build/linux/platform_specific_code/juce_linux_FileChooser.cpp index bb74895463..6f26b64393 100644 --- a/build/linux/platform_specific_code/juce_linux_FileChooser.cpp +++ b/build/linux/platform_specific_code/juce_linux_FileChooser.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/linux/platform_specific_code/juce_linux_Files.cpp b/build/linux/platform_specific_code/juce_linux_Files.cpp index ec8d7e4516..94d6df4ec5 100644 --- a/build/linux/platform_specific_code/juce_linux_Files.cpp +++ b/build/linux/platform_specific_code/juce_linux_Files.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/linux/platform_specific_code/juce_linux_Fonts.cpp b/build/linux/platform_specific_code/juce_linux_Fonts.cpp index 8adc6da111..72ce9acb1d 100644 --- a/build/linux/platform_specific_code/juce_linux_Fonts.cpp +++ b/build/linux/platform_specific_code/juce_linux_Fonts.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/linux/platform_specific_code/juce_linux_Messaging.cpp b/build/linux/platform_specific_code/juce_linux_Messaging.cpp index 01a03b88ad..103656d28d 100644 --- a/build/linux/platform_specific_code/juce_linux_Messaging.cpp +++ b/build/linux/platform_specific_code/juce_linux_Messaging.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/linux/platform_specific_code/juce_linux_Midi.cpp b/build/linux/platform_specific_code/juce_linux_Midi.cpp index 717209f5a6..1f575ec766 100644 --- a/build/linux/platform_specific_code/juce_linux_Midi.cpp +++ b/build/linux/platform_specific_code/juce_linux_Midi.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/linux/platform_specific_code/juce_linux_NamedPipe.cpp b/build/linux/platform_specific_code/juce_linux_NamedPipe.cpp index 022e218655..1403b8e773 100644 --- a/build/linux/platform_specific_code/juce_linux_NamedPipe.cpp +++ b/build/linux/platform_specific_code/juce_linux_NamedPipe.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/linux/platform_specific_code/juce_linux_Network.cpp b/build/linux/platform_specific_code/juce_linux_Network.cpp index 5b390c6dcb..75b3bc2052 100644 --- a/build/linux/platform_specific_code/juce_linux_Network.cpp +++ b/build/linux/platform_specific_code/juce_linux_Network.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/linux/platform_specific_code/juce_linux_SystemStats.cpp b/build/linux/platform_specific_code/juce_linux_SystemStats.cpp index 153e74e4e5..afa7a42023 100644 --- a/build/linux/platform_specific_code/juce_linux_SystemStats.cpp +++ b/build/linux/platform_specific_code/juce_linux_SystemStats.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/linux/platform_specific_code/juce_linux_Threads.cpp b/build/linux/platform_specific_code/juce_linux_Threads.cpp index 68536a6b0e..1d63c96cc9 100644 --- a/build/linux/platform_specific_code/juce_linux_Threads.cpp +++ b/build/linux/platform_specific_code/juce_linux_Threads.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/linux/platform_specific_code/juce_linux_Windowing.cpp b/build/linux/platform_specific_code/juce_linux_Windowing.cpp index e1281d91a4..86879ea8f7 100644 --- a/build/linux/platform_specific_code/juce_linux_Windowing.cpp +++ b/build/linux/platform_specific_code/juce_linux_Windowing.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -1466,7 +1466,7 @@ public: handleMovedOrResized(); // if the native title bar is dragged, need to tell any active menus, etc. - if ((styleFlags & windowHasTitleBar) != 0 + if ((styleFlags & windowHasTitleBar) != 0 && component->isCurrentlyBlockedByAnotherModalComponent()) { Component* const currentModalComp = Component::getCurrentlyModalComponent(); @@ -2562,7 +2562,7 @@ void Desktop::setMousePosition (int x, int y) throw() XWarpPointer (display, None, root, 0, 0, 0, 0, x, y); } - + //============================================================================== void Desktop::setScreenSaverEnabled (const bool isEnabled) throw() { diff --git a/build/linux/platform_specific_code/linuxincludes.h b/build/linux/platform_specific_code/linuxincludes.h index 49af7ad8bc..580c709ed5 100644 --- a/build/linux/platform_specific_code/linuxincludes.h +++ b/build/linux/platform_specific_code/linuxincludes.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/macosx/platform_specific_code/juce_mac_CoreAudio.cpp b/build/macosx/platform_specific_code/juce_mac_CoreAudio.cpp index 9961ec4295..c46556e324 100644 --- a/build/macosx/platform_specific_code/juce_mac_CoreAudio.cpp +++ b/build/macosx/platform_specific_code/juce_mac_CoreAudio.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/macosx/platform_specific_code/juce_mac_CoreMidi.cpp b/build/macosx/platform_specific_code/juce_mac_CoreMidi.cpp index 08a025b110..44508b2904 100644 --- a/build/macosx/platform_specific_code/juce_mac_CoreMidi.cpp +++ b/build/macosx/platform_specific_code/juce_mac_CoreMidi.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/macosx/platform_specific_code/juce_mac_FileChooser.cpp b/build/macosx/platform_specific_code/juce_mac_FileChooser.cpp index 7f1faedc0d..1d20e5d7d8 100644 --- a/build/macosx/platform_specific_code/juce_mac_FileChooser.cpp +++ b/build/macosx/platform_specific_code/juce_mac_FileChooser.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/macosx/platform_specific_code/juce_mac_Files.cpp b/build/macosx/platform_specific_code/juce_mac_Files.cpp index af363634ad..bdda378c2c 100644 --- a/build/macosx/platform_specific_code/juce_mac_Files.cpp +++ b/build/macosx/platform_specific_code/juce_mac_Files.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/macosx/platform_specific_code/juce_mac_Fonts.cpp b/build/macosx/platform_specific_code/juce_mac_Fonts.cpp index 06d769b8bc..92cfb9a542 100644 --- a/build/macosx/platform_specific_code/juce_mac_Fonts.cpp +++ b/build/macosx/platform_specific_code/juce_mac_Fonts.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/macosx/platform_specific_code/juce_mac_HTTPStream.h b/build/macosx/platform_specific_code/juce_mac_HTTPStream.h index 80d1fee5e6..a0ad3e2a32 100644 --- a/build/macosx/platform_specific_code/juce_mac_HTTPStream.h +++ b/build/macosx/platform_specific_code/juce_mac_HTTPStream.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/macosx/platform_specific_code/juce_mac_Messaging.cpp b/build/macosx/platform_specific_code/juce_mac_Messaging.cpp index 0621b72276..ea0db3891b 100644 --- a/build/macosx/platform_specific_code/juce_mac_Messaging.cpp +++ b/build/macosx/platform_specific_code/juce_mac_Messaging.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/macosx/platform_specific_code/juce_mac_NamedPipe.cpp b/build/macosx/platform_specific_code/juce_mac_NamedPipe.cpp index ac0d8e3e58..31a581de89 100644 --- a/build/macosx/platform_specific_code/juce_mac_NamedPipe.cpp +++ b/build/macosx/platform_specific_code/juce_mac_NamedPipe.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/macosx/platform_specific_code/juce_mac_Network.cpp b/build/macosx/platform_specific_code/juce_mac_Network.cpp index 3fb5630ff9..1ab06012a0 100644 --- a/build/macosx/platform_specific_code/juce_mac_Network.cpp +++ b/build/macosx/platform_specific_code/juce_mac_Network.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/macosx/platform_specific_code/juce_mac_SystemStats.cpp b/build/macosx/platform_specific_code/juce_mac_SystemStats.cpp index 49ccf3b94c..7a0c2f3058 100644 --- a/build/macosx/platform_specific_code/juce_mac_SystemStats.cpp +++ b/build/macosx/platform_specific_code/juce_mac_SystemStats.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/macosx/platform_specific_code/juce_mac_Threads.cpp b/build/macosx/platform_specific_code/juce_mac_Threads.cpp index 8502ae843d..b97bbb2caf 100644 --- a/build/macosx/platform_specific_code/juce_mac_Threads.cpp +++ b/build/macosx/platform_specific_code/juce_mac_Threads.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/macosx/platform_specific_code/juce_mac_Windowing.cpp b/build/macosx/platform_specific_code/juce_mac_Windowing.cpp index 98d1092cdb..592c101c28 100644 --- a/build/macosx/platform_specific_code/juce_mac_Windowing.cpp +++ b/build/macosx/platform_specific_code/juce_mac_Windowing.cpp @@ -1,3367 +1,3367 @@ -/* - ============================================================================== - - 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 "../../../src/juce_core/basics/juce_StandardHeader.h" -#include -#include -#include -#include -#include -#include - -#if JUCE_OPENGL -#include -#endif - -BEGIN_JUCE_NAMESPACE - -#include "../../../src/juce_appframework/events/juce_Timer.h" -#include "../../../src/juce_appframework/application/juce_DeletedAtShutdown.h" -#include "../../../src/juce_appframework/events/juce_AsyncUpdater.h" -#include "../../../src/juce_appframework/events/juce_MessageManager.h" -#include "../../../src/juce_core/basics/juce_Singleton.h" -#include "../../../src/juce_core/basics/juce_Random.h" -#include "../../../src/juce_core/threads/juce_Process.h" -#include "../../../src/juce_appframework/application/juce_SystemClipboard.h" -#include "../../../src/juce_appframework/gui/components/keyboard/juce_KeyPress.h" -#include "../../../src/juce_appframework/gui/components/windows/juce_AlertWindow.h" -#include "../../../src/juce_appframework/gui/graphics/geometry/juce_RectangleList.h" -#include "../../../src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h" -#include "../../../src/juce_appframework/gui/components/juce_Desktop.h" -#include "../../../src/juce_appframework/gui/components/menus/juce_MenuBarModel.h" -#include "../../../src/juce_core/misc/juce_PlatformUtilities.h" -#include "../../../src/juce_appframework/application/juce_Application.h" -#include "../../../src/juce_appframework/gui/components/special/juce_OpenGLComponent.h" -#include "../../../src/juce_appframework/gui/components/mouse/juce_DragAndDropContainer.h" -#include "../../../src/juce_appframework/gui/components/keyboard/juce_KeyPressMappingSet.h" -#include "../../../src/juce_appframework/gui/graphics/imaging/juce_ImageFileFormat.h" - -#undef Point - -const WindowRegionCode windowRegionToUse = kWindowContentRgn; - -static HIObjectClassRef viewClassRef = 0; -static CFStringRef juceHiViewClassNameCFString = 0; -static ComponentPeer* juce_currentMouseTrackingPeer = 0; - - -//============================================================================== -static VoidArray keysCurrentlyDown; - -bool KeyPress::isKeyCurrentlyDown (const int keyCode) throw() -{ - if (keysCurrentlyDown.contains ((void*) keyCode)) - return true; - - if (keyCode >= 'A' && keyCode <= 'Z' - && keysCurrentlyDown.contains ((void*) (int) CharacterFunctions::toLowerCase ((tchar) keyCode))) - return true; - - if (keyCode >= 'a' && keyCode <= 'z' - && keysCurrentlyDown.contains ((void*) (int) CharacterFunctions::toUpperCase ((tchar) keyCode))) - return true; - - return false; -} - -//============================================================================== -static VoidArray minimisedWindows; - -static void setWindowMinimised (WindowRef ref, const bool isMinimised) -{ - if (isMinimised != minimisedWindows.contains (ref)) - CollapseWindow (ref, isMinimised); -} - -void juce_maximiseAllMinimisedWindows() -{ - const VoidArray minWin (minimisedWindows); - - for (int i = minWin.size(); --i >= 0;) - setWindowMinimised ((WindowRef) (minWin[i]), false); -} - -//============================================================================== -class HIViewComponentPeer; -static HIViewComponentPeer* currentlyFocusedPeer = 0; - - -//============================================================================== -static int currentModifiers = 0; - -static void updateModifiers (EventRef theEvent) -{ - currentModifiers &= ~ (ModifierKeys::shiftModifier | ModifierKeys::ctrlModifier - | ModifierKeys::altModifier | ModifierKeys::commandModifier); - - UInt32 m; - - if (theEvent != 0) - GetEventParameter (theEvent, kEventParamKeyModifiers, typeUInt32, 0, sizeof(m), 0, &m); - else - m = GetCurrentEventKeyModifiers(); - - if ((m & (shiftKey | rightShiftKey)) != 0) - currentModifiers |= ModifierKeys::shiftModifier; - - if ((m & (controlKey | rightControlKey)) != 0) - currentModifiers |= ModifierKeys::ctrlModifier; - - if ((m & (optionKey | rightOptionKey)) != 0) - currentModifiers |= ModifierKeys::altModifier; - - if ((m & cmdKey) != 0) - currentModifiers |= ModifierKeys::commandModifier; -} - -void ModifierKeys::updateCurrentModifiers() throw() -{ - currentModifierFlags = currentModifiers; -} - -static int64 getEventTime (EventRef event) -{ - const int64 millis = (int64) (1000.0 * (event != 0 ? GetEventTime (event) - : GetCurrentEventTime())); - - static int64 offset = 0; - if (offset == 0) - offset = Time::currentTimeMillis() - millis; - - return offset + millis; -} - - -//============================================================================== -class MacBitmapImage : public Image -{ -public: - //============================================================================== - CGColorSpaceRef colourspace; - CGDataProviderRef provider; - - //============================================================================== - MacBitmapImage (const PixelFormat format_, - const int w, const int h, const bool clearImage) - : Image (format_, w, h) - { - jassert (format_ == RGB || format_ == ARGB); - - pixelStride = (format_ == RGB) ? 3 : 4; - - lineStride = (w * pixelStride + 3) & ~3; - const int imageSize = lineStride * h; - - if (clearImage) - imageData = (uint8*) juce_calloc (imageSize); - else - imageData = (uint8*) juce_malloc (imageSize); - - //colourspace = CGColorSpaceCreateWithName (kCGColorSpaceUserRGB); - - CMProfileRef prof; - CMGetSystemProfile (&prof); - colourspace = CGColorSpaceCreateWithPlatformColorSpace (prof); - - provider = CGDataProviderCreateWithData (0, imageData, h * lineStride, 0); - } - - MacBitmapImage::~MacBitmapImage() - { - CGDataProviderRelease (provider); - CGColorSpaceRelease (colourspace); - - juce_free (imageData); - imageData = 0; // to stop the base class freeing this - } - - void blitToContext (CGContextRef context, const float dx, const float dy) - { - CGImageRef tempImage = CGImageCreate (getWidth(), getHeight(), - 8, pixelStride << 3, lineStride, colourspace, -#if MACOS_10_3_OR_EARLIER || JUCE_BIG_ENDIAN - hasAlphaChannel() ? kCGImageAlphaPremultipliedFirst - : kCGImageAlphaNone, -#else - hasAlphaChannel() ? kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst - : kCGImageAlphaNone, -#endif - provider, 0, false, - kCGRenderingIntentDefault); - - HIRect r; - r.origin.x = dx; - r.origin.y = dy; - r.size.width = (float) getWidth(); - r.size.height = (float) getHeight(); - - HIViewDrawCGImage (context, &r, tempImage); - - CGImageRelease (tempImage); - } - - juce_UseDebuggingNewOperator -}; - - -//============================================================================== -class MouseCheckTimer : private Timer, - private DeletedAtShutdown -{ - HIViewComponentPeer* lastPeerUnderMouse; - int lastX, lastY; - -public: - MouseCheckTimer() - : lastX (0), - lastY (0) - { - lastPeerUnderMouse = 0; - resetMouseMoveChecker(); - } - - ~MouseCheckTimer() - { - clearSingletonInstance(); - } - - juce_DeclareSingleton_SingleThreaded_Minimal (MouseCheckTimer) - - bool hasEverHadAMouseMove; - - void moved (HIViewComponentPeer* const peer) - { - if (hasEverHadAMouseMove) - startTimer (200); - - lastPeerUnderMouse = peer; - } - - void resetMouseMoveChecker() - { - hasEverHadAMouseMove = false; - startTimer (1000 / 16); - } - - void timerCallback(); -}; - -juce_ImplementSingleton_SingleThreaded (MouseCheckTimer) - -//============================================================================== -#if JUCE_QUICKTIME -extern void OfferMouseClickToQuickTime (WindowRef window, ::Point where, long when, long modifiers, - Component* topLevelComp); -#endif - - -//============================================================================== -class HIViewComponentPeer : public ComponentPeer, - private Timer -{ -public: - //============================================================================== - HIViewComponentPeer (Component* const component, - const int windowStyleFlags, - HIViewRef viewToAttachTo) - : ComponentPeer (component, windowStyleFlags), - fullScreen (false), - isCompositingWindow (false), - windowRef (0), - viewRef (0) - { - repainter = new RepaintManager (this); - - eventHandlerRef = 0; - - if (viewToAttachTo != 0) - { - isSharedWindow = true; - } - else - { - isSharedWindow = false; - - WindowRef newWindow = createNewWindow (windowStyleFlags); - - GetRootControl (newWindow, (ControlRef*) &viewToAttachTo); - jassert (viewToAttachTo != 0); - - HIViewRef growBox = 0; - HIViewFindByID (HIViewGetRoot (newWindow), kHIViewWindowGrowBoxID, &growBox); - - if (growBox != 0) - HIGrowBoxViewSetTransparent (growBox, true); - } - - createNewHIView(); - - HIViewAddSubview (viewToAttachTo, viewRef); - HIViewSetVisible (viewRef, component->isVisible()); - - setTitle (component->getName()); - - if (component->isVisible() && ! isSharedWindow) - { - ShowWindow (windowRef); - ActivateWindow (windowRef, component->getWantsKeyboardFocus()); - } - } - - ~HIViewComponentPeer() - { - minimisedWindows.removeValue (windowRef); - - if (IsValidWindowPtr (windowRef)) - { - if (! isSharedWindow) - { - CFRelease (viewRef); - viewRef = 0; - - DisposeWindow (windowRef); - } - else - { - if (eventHandlerRef != 0) - RemoveEventHandler (eventHandlerRef); - - CFRelease (viewRef); - viewRef = 0; - } - - windowRef = 0; - } - - if (currentlyFocusedPeer == this) - currentlyFocusedPeer = 0; - - delete repainter; - } - - //============================================================================== - void* getNativeHandle() const - { - return windowRef; - } - - void setVisible (bool shouldBeVisible) - { - HIViewSetVisible (viewRef, shouldBeVisible); - - if ((! isSharedWindow) && IsValidWindowPtr (windowRef)) - { - if (shouldBeVisible) - ShowWindow (windowRef); - else - HideWindow (windowRef); - - resizeViewToFitWindow(); - - // If nothing else is focused, then grab the focus too - if (shouldBeVisible - && Component::getCurrentlyFocusedComponent() == 0 - && Process::isForegroundProcess()) - { - component->toFront (true); - } - } - } - - void setTitle (const String& title) - { - if ((! isSharedWindow) && IsValidWindowPtr (windowRef)) - { - CFStringRef t = PlatformUtilities::juceStringToCFString (title); - SetWindowTitleWithCFString (windowRef, t); - CFRelease (t); - } - } - - void setPosition (int x, int y) - { - if (isSharedWindow) - { - HIViewPlaceInSuperviewAt (viewRef, x, y); - } - else if (IsValidWindowPtr (windowRef)) - { - Rect r; - GetWindowBounds (windowRef, windowRegionToUse, &r); - r.right += x - r.left; - r.bottom += y - r.top; - r.left = x; - r.top = y; - SetWindowBounds (windowRef, windowRegionToUse, &r); - } - } - - void setSize (int w, int h) - { - w = jmax (0, w); - h = jmax (0, h); - - if (w != getComponent()->getWidth() - || h != getComponent()->getHeight()) - { - repainter->repaint (0, 0, w, h); - } - - if (isSharedWindow) - { - HIRect r; - HIViewGetFrame (viewRef, &r); - r.size.width = (float) w; - r.size.height = (float) h; - HIViewSetFrame (viewRef, &r); - } - else if (IsValidWindowPtr (windowRef)) - { - Rect r; - GetWindowBounds (windowRef, windowRegionToUse, &r); - r.right = r.left + w; - r.bottom = r.top + h; - SetWindowBounds (windowRef, windowRegionToUse, &r); - } - } - - void setBounds (int x, int y, int w, int h, const bool isNowFullScreen) - { - fullScreen = isNowFullScreen; - w = jmax (0, w); - h = jmax (0, h); - - if (w != getComponent()->getWidth() - || h != getComponent()->getHeight()) - { - repainter->repaint (0, 0, w, h); - } - - if (isSharedWindow) - { - HIRect r; - r.origin.x = (float) x; - r.origin.y = (float) y; - r.size.width = (float) w; - r.size.height = (float) h; - HIViewSetFrame (viewRef, &r); - } - else if (IsValidWindowPtr (windowRef)) - { - Rect r; - r.left = x; - r.top = y; - r.right = x + w; - r.bottom = y + h; - SetWindowBounds (windowRef, windowRegionToUse, &r); - } - } - - void getBounds (int& x, int& y, int& w, int& h, const bool global) const - { - HIRect hiViewPos; - HIViewGetFrame (viewRef, &hiViewPos); - - if (global) - { - HIViewRef content = 0; - HIViewFindByID (HIViewGetRoot (windowRef), kHIViewWindowContentID, &content); - HIPoint p = { 0.0f, 0.0f }; - HIViewConvertPoint (&p, viewRef, content); - - x = (int) p.x; - y = (int) p.y; - - if (IsValidWindowPtr (windowRef)) - { - Rect windowPos; - GetWindowBounds (windowRef, kWindowContentRgn, &windowPos); - - x += windowPos.left; - y += windowPos.top; - } - } - else - { - x = (int) hiViewPos.origin.x; - y = (int) hiViewPos.origin.y; - } - - w = (int) hiViewPos.size.width; - h = (int) hiViewPos.size.height; - } - - void getBounds (int& x, int& y, int& w, int& h) const - { - getBounds (x, y, w, h, ! isSharedWindow); - } - - int getScreenX() const - { - int x, y, w, h; - getBounds (x, y, w, h, true); - return x; - } - - int getScreenY() const - { - int x, y, w, h; - getBounds (x, y, w, h, true); - return y; - } - - void relativePositionToGlobal (int& x, int& y) - { - int wx, wy, ww, wh; - getBounds (wx, wy, ww, wh, true); - - x += wx; - y += wy; - } - - void globalPositionToRelative (int& x, int& y) - { - int wx, wy, ww, wh; - getBounds (wx, wy, ww, wh, true); - - x -= wx; - y -= wy; - } - - void setMinimised (bool shouldBeMinimised) - { - if (! isSharedWindow) - setWindowMinimised (windowRef, shouldBeMinimised); - } - - bool isMinimised() const - { - return minimisedWindows.contains (windowRef); - } - - void setFullScreen (bool shouldBeFullScreen) - { - if (! isSharedWindow) - { - Rectangle r (lastNonFullscreenBounds); - - setMinimised (false); - - if (fullScreen != shouldBeFullScreen) - { - if (shouldBeFullScreen) - r = Desktop::getInstance().getMainMonitorArea(); - - // (can't call the component's setBounds method because that'll reset our fullscreen flag) - if (r != getComponent()->getBounds() && ! r.isEmpty()) - setBounds (r.getX(), r.getY(), r.getWidth(), r.getHeight(), shouldBeFullScreen); - } - } - } - - bool isFullScreen() const - { - return fullScreen; - } - - bool contains (int x, int y, bool trueIfInAChildWindow) const - { - if (x < 0 || y < 0 - || x >= component->getWidth() || y >= component->getHeight() - || ! IsValidWindowPtr (windowRef)) - return false; - - Rect r; - GetWindowBounds (windowRef, windowRegionToUse, &r); - - ::Point p; - p.h = r.left + x; - p.v = r.top + y; - - WindowRef ref2 = 0; - FindWindow (p, &ref2); - - if (windowRef != ref2) - return false; - - if (trueIfInAChildWindow) - return true; - - HIPoint p2; - p2.x = (float) x; - p2.y = (float) y; - HIViewRef hit; - - HIViewGetSubviewHit (viewRef, &p2, true, &hit); - return hit == 0 || hit == viewRef; - } - - const BorderSize getFrameSize() const - { - return BorderSize(); - } - - bool setAlwaysOnTop (bool alwaysOnTop) - { - // can't do this so return false and let the component create a new window - return false; - } - - void toFront (bool makeActiveWindow) - { - makeActiveWindow = makeActiveWindow - && component->isValidComponent() - && (component->getWantsKeyboardFocus() - || component->isCurrentlyModal()); - - if (windowRef != FrontWindow() - || (makeActiveWindow && ! IsWindowActive (windowRef)) - || ! Process::isForegroundProcess()) - { - if (! Process::isForegroundProcess()) - { - ProcessSerialNumber psn; - GetCurrentProcess (&psn); - SetFrontProcess (&psn); - } - - if (IsValidWindowPtr (windowRef)) - { - if (makeActiveWindow) - { - SelectWindow (windowRef); - SetUserFocusWindow (windowRef); - HIViewAdvanceFocus (viewRef, 0); - } - else - { - BringToFront (windowRef); - } - - handleBroughtToFront(); - } - } - } - - void toBehind (ComponentPeer* other) - { - HIViewComponentPeer* const otherWindow = dynamic_cast (other); - - if (other != 0 && windowRef != 0 && otherWindow->windowRef != 0) - { - if (windowRef == otherWindow->windowRef) - { - HIViewSetZOrder (viewRef, kHIViewZOrderBelow, otherWindow->viewRef); - } - else - { - SendBehind (windowRef, otherWindow->windowRef); - } - } - } - - void setIcon (const Image& /*newIcon*/) - { - // to do.. - } - - //============================================================================== - void viewFocusGain() - { - const MessageManagerLock messLock; - - if (currentlyFocusedPeer != this) - { - if (ComponentPeer::isValidPeer (currentlyFocusedPeer)) - currentlyFocusedPeer->handleFocusLoss(); - - currentlyFocusedPeer = this; - - handleFocusGain(); - } - } - - void viewFocusLoss() - { - if (currentlyFocusedPeer == this) - { - currentlyFocusedPeer = 0; - handleFocusLoss(); - } - } - - bool isFocused() const - { - return windowRef == GetUserFocusWindow() - && HIViewSubtreeContainsFocus (viewRef); - } - - void grabFocus() - { - if ((! isFocused()) && IsValidWindowPtr (windowRef)) - { - SetUserFocusWindow (windowRef); - HIViewAdvanceFocus (viewRef, 0); - } - } - - //============================================================================== - void repaint (int x, int y, int w, int h) - { - if (Rectangle::intersectRectangles (x, y, w, h, - 0, 0, - getComponent()->getWidth(), - getComponent()->getHeight())) - { - if ((getStyleFlags() & windowRepaintedExplictly) == 0) - { - if (isCompositingWindow) - { -#if MACOS_10_3_OR_EARLIER - RgnHandle rgn = NewRgn(); - SetRectRgn (rgn, x, y, x + w, y + h); - HIViewSetNeedsDisplayInRegion (viewRef, rgn, true); - DisposeRgn (rgn); -#else - HIRect r; - r.origin.x = x; - r.origin.y = y; - r.size.width = w; - r.size.height = h; - - HIViewSetNeedsDisplayInRect (viewRef, &r, true); -#endif - } - else - { - if (! isTimerRunning()) - startTimer (20); - } - } - - repainter->repaint (x, y, w, h); - } - } - - void timerCallback() - { - performAnyPendingRepaintsNow(); - } - - void performAnyPendingRepaintsNow() - { - stopTimer(); - - if (component->isVisible()) - { -#if MACOS_10_2_OR_EARLIER - if (! isCompositingWindow) - { - Rect w; - GetWindowBounds (windowRef, windowRegionToUse, &w); - - RgnHandle rgn = NewRgn(); - SetRectRgn (rgn, 0, 0, w.right - w.left, w.bottom - w.top); - UpdateControls (windowRef, rgn); - DisposeRgn (rgn); - } - else - { - EventRef theEvent; - - EventTypeSpec eventTypes[1]; - eventTypes[0].eventClass = kEventClassControl; - eventTypes[0].eventKind = kEventControlDraw; - - int n = 3; - while (--n >= 0 - && ReceiveNextEvent (1, eventTypes, kEventDurationNoWait, true, &theEvent) == noErr) - { - if (GetEventClass (theEvent) == kEventClassAppleEvent) - { - EventRecord eventRec; - if (ConvertEventRefToEventRecord (theEvent, &eventRec)) - AEProcessAppleEvent (&eventRec); - } - else - { - EventTargetRef theTarget = GetEventDispatcherTarget(); - SendEventToEventTarget (theEvent, theTarget); - } - - ReleaseEvent (theEvent); - } - } -#else - HIViewRender (viewRef); -#endif - } - } - - //============================================================================== - juce_UseDebuggingNewOperator - - WindowRef windowRef; - HIViewRef viewRef; - -private: - EventHandlerRef eventHandlerRef; - bool fullScreen, isSharedWindow, isCompositingWindow; - - //============================================================================== - class RepaintManager : public Timer - { -public: - RepaintManager (HIViewComponentPeer* const peer_) - : peer (peer_), - image (0) - { - } - - ~RepaintManager() - { - delete image; - } - - void timerCallback() - { - stopTimer(); - deleteAndZero (image); - } - - void repaint (int x, int y, int w, int h) - { - regionsNeedingRepaint.add (x, y, w, h); - } - - void repaintAnyRemainingRegions() - { - // if any regions have been invaldated during the paint callback, - // we need to repaint them explicitly because the mac throws this - // stuff away - for (RectangleList::Iterator i (regionsNeedingRepaint); i.next();) - { - const Rectangle& r = *i.getRectangle(); - peer->repaint (r.getX(), r.getY(), r.getWidth(), r.getHeight()); - } - } - - void paint (CGContextRef cgContext, int x, int y, int w, int h) - { - if (w > 0 && h > 0) - { - bool refresh = false; - int imW = image != 0 ? image->getWidth() : 0; - int imH = image != 0 ? image->getHeight() : 0; - - if (imW < w || imH < h) - { - imW = jmin (peer->getComponent()->getWidth(), (w + 31) & ~31); - imH = jmin (peer->getComponent()->getHeight(), (h + 31) & ~31); - - delete image; - image = new MacBitmapImage (peer->getComponent()->isOpaque() ? Image::RGB - : Image::ARGB, - imW, imH, false); - - refresh = true; - } - else if (imageX > x || imageY > y - || imageX + imW < x + w - || imageY + imH < y + h) - { - refresh = true; - } - - if (refresh) - { - regionsNeedingRepaint.clear(); - regionsNeedingRepaint.addWithoutMerging (Rectangle (x, y, imW, imH)); - imageX = x; - imageY = y; - } - - LowLevelGraphicsSoftwareRenderer context (*image); - context.setOrigin (-imageX, -imageY); - - if (context.reduceClipRegion (regionsNeedingRepaint)) - { - regionsNeedingRepaint.clear(); - - if (! peer->getComponent()->isOpaque()) - { - for (RectangleList::Iterator i (*context.getRawClipRegion()); i.next();) - { - const Rectangle& r = *i.getRectangle(); - image->clear (r.getX(), r.getY(), r.getWidth(), r.getHeight()); - } - } - - regionsNeedingRepaint.clear(); - peer->clearMaskedRegion(); - peer->handlePaint (context); - } - else - { - regionsNeedingRepaint.clear(); - } - - if (! peer->maskedRegion.isEmpty()) - { - RectangleList total (Rectangle (x, y, w, h)); - total.subtract (peer->maskedRegion); - - CGRect* rects = (CGRect*) juce_malloc (sizeof (CGRect) * total.getNumRectangles()); - int n = 0; - - for (RectangleList::Iterator i (total); i.next();) - { - const Rectangle& r = *i.getRectangle(); - rects[n].origin.x = (int) r.getX(); - rects[n].origin.y = (int) r.getY(); - rects[n].size.width = roundFloatToInt (r.getWidth()); - rects[n++].size.height = roundFloatToInt (r.getHeight()); - } - - CGContextClipToRects (cgContext, rects, n); - juce_free (rects); - } - - if (peer->isSharedWindow) - { - CGRect clip; - clip.origin.x = x; - clip.origin.y = y; - clip.size.width = jmin (w, peer->getComponent()->getWidth() - x); - clip.size.height = jmin (h, peer->getComponent()->getHeight() - y); - - CGContextClipToRect (cgContext, clip); - } - - image->blitToContext (cgContext, imageX, imageY); - } - - startTimer (3000); - } - - private: - HIViewComponentPeer* const peer; - MacBitmapImage* image; - int imageX, imageY; - RectangleList regionsNeedingRepaint; - - RepaintManager (const RepaintManager&); - const RepaintManager& operator= (const RepaintManager&); - }; - - RepaintManager* repainter; - - friend class RepaintManager; - - //============================================================================== - static OSStatus handleFrameRepaintEvent (EventHandlerCallRef myHandler, - EventRef theEvent, - void* userData) - { - // don't draw the frame.. - return noErr; - } - - //============================================================================== - OSStatus handleWindowClassEvent (EventRef theEvent) - { - switch (GetEventKind (theEvent)) - { - case kEventWindowBoundsChanged: - resizeViewToFitWindow(); - break; // allow other handlers in the event chain to also get a look at the events - - case kEventWindowBoundsChanging: - if ((styleFlags & (windowIsResizable | windowHasTitleBar)) == (windowIsResizable | windowHasTitleBar)) - { - UInt32 atts = 0; - GetEventParameter (theEvent, kEventParamAttributes, typeUInt32, - 0, sizeof (UInt32), 0, &atts); - - if ((atts & (kWindowBoundsChangeUserDrag | kWindowBoundsChangeUserResize)) != 0) - { - if (component->isCurrentlyBlockedByAnotherModalComponent()) - { - Component* const modal = Component::getCurrentlyModalComponent(); - if (modal != 0) - modal->inputAttemptWhenModal(); - } - - if ((atts & kWindowBoundsChangeUserResize) != 0 - && constrainer != 0 && ! isSharedWindow) - { - Rect current; - GetEventParameter (theEvent, kEventParamCurrentBounds, typeQDRectangle, - 0, sizeof (Rect), 0, ¤t); - - int x = current.left; - int y = current.top; - int w = current.right - current.left; - int h = current.bottom - current.top; - - const Rectangle currentRect (getComponent()->getBounds()); - - constrainer->checkBounds (x, y, w, h, currentRect, - Desktop::getInstance().getAllMonitorDisplayAreas().getBounds(), - y != currentRect.getY() && y + h == currentRect.getBottom(), - x != currentRect.getX() && x + w == currentRect.getRight(), - y == currentRect.getY() && y + h != currentRect.getBottom(), - x == currentRect.getX() && x + w != currentRect.getRight()); - - current.left = x; - current.top = y; - current.right = x + w; - current.bottom = y + h; - - SetEventParameter (theEvent, kEventParamCurrentBounds, typeQDRectangle, - sizeof (Rect), ¤t); - - return noErr; - } - } - } - break; - - case kEventWindowFocusAcquired: - keysCurrentlyDown.clear(); - - if ((! isSharedWindow) || HIViewSubtreeContainsFocus (viewRef)) - viewFocusGain(); - - break; // allow other handlers in the event chain to also get a look at the events - - case kEventWindowFocusRelinquish: - keysCurrentlyDown.clear(); - viewFocusLoss(); - - break; // allow other handlers in the event chain to also get a look at the events - - case kEventWindowCollapsed: - minimisedWindows.addIfNotAlreadyThere (windowRef); - handleMovedOrResized(); - break; // allow other handlers in the event chain to also get a look at the events - - case kEventWindowExpanded: - minimisedWindows.removeValue (windowRef); - handleMovedOrResized(); - break; // allow other handlers in the event chain to also get a look at the events - - case kEventWindowShown: - break; // allow other handlers in the event chain to also get a look at the events - - case kEventWindowClose: - if (isSharedWindow) - break; // break to let the OS delete the window - - handleUserClosingWindow(); - return noErr; // avoids letting the OS to delete the window, we'll do that ourselves. - - default: - break; - } - - return eventNotHandledErr; - } - - OSStatus handleKeyEvent (EventRef theEvent, juce_wchar textCharacter) - { - updateModifiers (theEvent); - - UniChar unicodeChars [4]; - zeromem (unicodeChars, sizeof (unicodeChars)); - GetEventParameter (theEvent, kEventParamKeyUnicodes, typeUnicodeText, 0, sizeof (unicodeChars), 0, unicodeChars); - - int keyCode = (int) (unsigned int) unicodeChars[0]; - - UInt32 rawKey = 0; - GetEventParameter (theEvent, kEventParamKeyCode, typeUInt32, 0, sizeof (UInt32), 0, &rawKey); - - if ((currentModifiers & ModifierKeys::ctrlModifier) != 0) - { - if (keyCode >= 1 && keyCode <= 26) - keyCode += ('A' - 1); - } - - static const int keyTranslations[] = - { - 0, 's', 'd', 'f', 'h', 'g', 'z', 'x', 'c', 'v', 0xa7, 'b', - 'q', 'w', 'e', 'r', 'y', 't', '1', '2', '3', '4', '6', '5', - '=', '9', '7', '-', '8', '0', ']', 'o', 'u', '[', 'i', 'p', - KeyPress::returnKey, 'l', 'j', '\'', 'k', ';', '\\', ',', '/', - 'n', 'm', '.', 0, KeyPress::spaceKey, '`', KeyPress::backspaceKey, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, KeyPress::numberPadDecimalPoint, - 0, KeyPress::numberPadMultiply, 0, KeyPress::numberPadAdd, - 0, KeyPress::numberPadDelete, 0, 0, 0, KeyPress::numberPadDivide, KeyPress::returnKey, - 0, KeyPress::numberPadSubtract, 0, 0, KeyPress::numberPadEquals, KeyPress::numberPad0, - KeyPress::numberPad1, KeyPress::numberPad2, KeyPress::numberPad3, - KeyPress::numberPad4, KeyPress::numberPad5, KeyPress::numberPad6, - KeyPress::numberPad7, 0, KeyPress::numberPad8, KeyPress::numberPad9, - 0, 0, 0, KeyPress::F5Key, KeyPress::F6Key, KeyPress::F7Key, KeyPress::F3Key, - KeyPress::F8Key, KeyPress::F9Key, 0, KeyPress::F11Key, 0, KeyPress::F13Key, - KeyPress::F16Key, KeyPress::F14Key, 0, KeyPress::F10Key, 0, KeyPress::F12Key, - 0, KeyPress::F15Key, 0, KeyPress::homeKey, KeyPress::pageUpKey, 0, KeyPress::F4Key, - KeyPress::endKey, KeyPress::F2Key, KeyPress::pageDownKey, KeyPress::F1Key, - KeyPress::leftKey, KeyPress::rightKey, KeyPress::downKey, KeyPress::upKey, 0 - }; - - if (rawKey > 0 && rawKey < numElementsInArray (keyTranslations) && keyTranslations [rawKey] != 0) - keyCode = keyTranslations [rawKey]; - else if (rawKey == 0 && textCharacter != 0) - keyCode = 'a'; - - if ((currentModifiers & (ModifierKeys::commandModifier | ModifierKeys::ctrlModifier)) != 0) - textCharacter = 0; - - static juce_wchar lastTextCharacter = 0; - - switch (GetEventKind (theEvent)) - { - case kEventRawKeyDown: - { - keysCurrentlyDown.addIfNotAlreadyThere ((void*) keyCode); - lastTextCharacter = textCharacter; - - const bool used1 = handleKeyUpOrDown(); - const bool used2 = handleKeyPress (keyCode, textCharacter); - - if (used1 || used2) - return noErr; - - break; - } - - case kEventRawKeyUp: - keysCurrentlyDown.removeValue ((void*) keyCode); - lastTextCharacter = 0; - if (handleKeyUpOrDown()) - return noErr; - - break; - - case kEventRawKeyRepeat: - if (handleKeyPress (keyCode, lastTextCharacter)) - return noErr; - - break; - - case kEventRawKeyModifiersChanged: - handleModifierKeysChange(); - break; - - default: - jassertfalse - break; - } - - return eventNotHandledErr; - } - - OSStatus handleTextInputEvent (EventRef theEvent) - { - UniChar uc; - GetEventParameter (theEvent, kEventParamTextInputSendText, typeUnicodeText, 0, sizeof (uc), 0, &uc); - - EventRef originalEvent; - GetEventParameter (theEvent, kEventParamTextInputSendKeyboardEvent, typeEventRef, 0, sizeof (originalEvent), 0, &originalEvent); - - return handleKeyEvent (originalEvent, (juce_wchar) uc); - } - - OSStatus handleMouseEvent (EventHandlerCallRef callRef, EventRef theEvent) - { - MouseCheckTimer::getInstance()->moved (this); - - ::Point where; - GetEventParameter (theEvent, kEventParamMouseLocation, typeQDPoint, 0, sizeof (::Point), 0, &where); - int x = where.h; - int y = where.v; - globalPositionToRelative (x, y); - - int64 time = getEventTime (theEvent); - - switch (GetEventKind (theEvent)) - { - case kEventMouseMoved: - MouseCheckTimer::getInstance()->hasEverHadAMouseMove = true; - updateModifiers (theEvent); - handleMouseMove (x, y, time); - break; - - case kEventMouseDragged: - updateModifiers (theEvent); - handleMouseDrag (x, y, time); - break; - - case kEventMouseDown: - { - if (! Process::isForegroundProcess()) - { - ProcessSerialNumber psn; - GetCurrentProcess (&psn); - SetFrontProcess (&psn); - - toFront (true); - } - -#if JUCE_QUICKTIME - { - long mods; - GetEventParameter (theEvent, kEventParamKeyModifiers, typeUInt32, 0, sizeof (mods), 0, &mods); - - ::Point where; - GetEventParameter (theEvent, kEventParamMouseLocation, typeQDPoint, 0, sizeof (::Point), 0, &where); - - OfferMouseClickToQuickTime (windowRef, where, EventTimeToTicks (GetEventTime (theEvent)), mods, component); - } -#endif - - if (component->isBroughtToFrontOnMouseClick() - && ! component->isCurrentlyBlockedByAnotherModalComponent()) - { - //ActivateWindow (windowRef, true); - SelectWindow (windowRef); - } - - EventMouseButton button; - GetEventParameter (theEvent, kEventParamMouseButton, typeMouseButton, 0, sizeof (EventMouseButton), 0, &button); - - // need to clear all these flags because sometimes the mac can swallow (right) mouse-up events and - // this makes a button get stuck down. Since there's no other way to tell what buttons are down, - // this is all I can think of doing about it.. - currentModifiers &= ~(ModifierKeys::leftButtonModifier | ModifierKeys::rightButtonModifier | ModifierKeys::middleButtonModifier); - - if (button == kEventMouseButtonPrimary) - currentModifiers |= ModifierKeys::leftButtonModifier; - else if (button == kEventMouseButtonSecondary) - currentModifiers |= ModifierKeys::rightButtonModifier; - else if (button == kEventMouseButtonTertiary) - currentModifiers |= ModifierKeys::middleButtonModifier; - - updateModifiers (theEvent); - - juce_currentMouseTrackingPeer = this; // puts the message dispatcher into mouse-tracking mode.. - handleMouseDown (x, y, time); - break; - } - - case kEventMouseUp: - { - const int oldModifiers = currentModifiers; - - EventMouseButton button; - GetEventParameter (theEvent, kEventParamMouseButton, typeMouseButton, 0, sizeof (EventMouseButton), 0, &button); - - if (button == kEventMouseButtonPrimary) - currentModifiers &= ~ModifierKeys::leftButtonModifier; - else if (button == kEventMouseButtonSecondary) - currentModifiers &= ~ModifierKeys::rightButtonModifier; - - updateModifiers (theEvent); - - juce_currentMouseTrackingPeer = 0; - handleMouseUp (oldModifiers, x, y, time); - break; - } - - case kEventMouseWheelMoved: - { - EventMouseWheelAxis axis; - GetEventParameter (theEvent, kEventParamMouseWheelAxis, typeMouseWheelAxis, 0, sizeof (axis), 0, &axis); - - SInt32 delta; - GetEventParameter (theEvent, kEventParamMouseWheelDelta, - typeLongInteger, 0, sizeof (delta), 0, &delta); - - updateModifiers (theEvent); - - handleMouseWheel (axis == kEventMouseWheelAxisX ? delta * 10 : 0, - axis == kEventMouseWheelAxisX ? 0 : delta * 10, - time); - - break; - } - } - - return noErr; - } - - OSStatus handleDragAndDrop (EventRef theEvent) - { - DragRef dragRef; - if (GetEventParameter (theEvent, kEventParamDragRef, typeDragRef, 0, sizeof (dragRef), 0, &dragRef) == noErr) - { - int mx, my; - component->getMouseXYRelative (mx, my); - - UInt16 numItems = 0; - if (CountDragItems (dragRef, &numItems) == noErr) - { - StringArray filenames; - - for (int i = 0; i < (int) numItems; ++i) - { - DragItemRef ref; - - if (GetDragItemReferenceNumber (dragRef, i + 1, &ref) == noErr) - { - const FlavorType flavorType = kDragFlavorTypeHFS; - - Size size = 0; - if (GetFlavorDataSize (dragRef, ref, flavorType, &size) == noErr) - { - void* data = juce_calloc (size); - - if (GetFlavorData (dragRef, ref, flavorType, data, &size, 0) == noErr) - { - HFSFlavor* f = (HFSFlavor*) data; - FSRef fsref; - - if (FSpMakeFSRef (&f->fileSpec, &fsref) == noErr) - { - const String path (PlatformUtilities::makePathFromFSRef (&fsref)); - - if (path.isNotEmpty()) - filenames.add (path); - } - } - - juce_free (data); - } - } - } - - filenames.trim(); - filenames.removeEmptyStrings(); - - if (filenames.size() > 0) - handleFilesDropped (mx, my, filenames); - } - } - - return noErr; - } - - void resizeViewToFitWindow() - { - HIRect r; - - if (isSharedWindow) - { - HIViewGetFrame (viewRef, &r); - r.size.width = (float) component->getWidth(); - r.size.height = (float) component->getHeight(); - } - else - { - r.origin.x = 0; - r.origin.y = 0; - - Rect w; - GetWindowBounds (windowRef, windowRegionToUse, &w); - - r.size.width = (float) (w.right - w.left); - r.size.height = (float) (w.bottom - w.top); - } - - HIViewSetFrame (viewRef, &r); - -#if MACOS_10_3_OR_EARLIER - component->repaint(); -#endif - } - - OSStatus hiViewDraw (EventRef theEvent) - { - CGContextRef context = 0; - GetEventParameter (theEvent, kEventParamCGContextRef, typeCGContextRef, 0, sizeof (CGContextRef), 0, &context); - - CGrafPtr oldPort; - CGrafPtr port = 0; - - if (context == 0) - { - GetEventParameter (theEvent, kEventParamGrafPort, typeGrafPtr, 0, sizeof (CGrafPtr), 0, &port); - - GetPort (&oldPort); - SetPort (port); - - if (port != 0) - QDBeginCGContext (port, &context); - - if (! isCompositingWindow) - { - Rect bounds; - GetWindowBounds (windowRef, windowRegionToUse, &bounds); - CGContextTranslateCTM (context, 0, bounds.bottom - bounds.top); - CGContextScaleCTM (context, 1.0, -1.0); - } - - if (isSharedWindow) - { - // NB - Had terrible problems trying to correctly get the position - // of this view relative to the window, and this seems wrong, but - // works better than any other method I've tried.. - HIRect hiViewPos; - HIViewGetFrame (viewRef, &hiViewPos); - CGContextTranslateCTM (context, hiViewPos.origin.x, hiViewPos.origin.y); - } - } - -#if MACOS_10_2_OR_EARLIER - RgnHandle rgn = 0; - GetEventParameter (theEvent, kEventParamRgnHandle, typeQDRgnHandle, 0, sizeof (RgnHandle), 0, &rgn); - - CGRect clip; - - // (avoid doing this in plugins because of some strange redraw bugs..) - if (rgn != 0 && JUCEApplication::getInstance() != 0) - { - Rect bounds; - GetRegionBounds (rgn, &bounds); - clip.origin.x = bounds.left; - clip.origin.y = bounds.top; - clip.size.width = bounds.right - bounds.left; - clip.size.height = bounds.bottom - bounds.top; - } - else - { - HIViewGetBounds (viewRef, &clip); - clip.origin.x = 0; - clip.origin.y = 0; - } -#else - CGRect clip (CGContextGetClipBoundingBox (context)); -#endif - - clip = CGRectIntegral (clip); - - if (clip.origin.x < 0) - { - clip.size.width += clip.origin.x; - clip.origin.x = 0; - } - - if (clip.origin.y < 0) - { - clip.size.height += clip.origin.y; - clip.origin.y = 0; - } - - if (! component->isOpaque()) - CGContextClearRect (context, clip); - - repainter->paint (context, - (int) clip.origin.x, (int) clip.origin.y, - (int) clip.size.width, (int) clip.size.height); - - if (port != 0) - { - CGContextFlush (context); - QDEndCGContext (port, &context); - - SetPort (oldPort); - } - - repainter->repaintAnyRemainingRegions(); - - return noErr; - } - - static pascal OSStatus handleWindowEvent (EventHandlerCallRef callRef, EventRef theEvent, void* userData) - { - MessageManager::delayWaitCursor(); - - HIViewComponentPeer* const peer = (HIViewComponentPeer*) userData; - - const MessageManagerLock messLock; - - if (ComponentPeer::isValidPeer (peer)) - return peer->handleWindowEventForPeer (callRef, theEvent); - - return eventNotHandledErr; - } - - OSStatus handleWindowEventForPeer (EventHandlerCallRef callRef, EventRef theEvent) - { - switch (GetEventClass (theEvent)) - { - case kEventClassMouse: - { - static HIViewComponentPeer* lastMouseDownPeer = 0; - - const UInt32 eventKind = GetEventKind (theEvent); - HIViewRef view = 0; - - if (eventKind == kEventMouseDragged) - { - view = viewRef; - } - else - { - HIViewGetViewForMouseEvent (HIViewGetRoot (windowRef), theEvent, &view); - - if (view != viewRef) - { - if ((eventKind == kEventMouseUp - || eventKind == kEventMouseExited) - && ComponentPeer::isValidPeer (lastMouseDownPeer)) - { - return lastMouseDownPeer->handleMouseEvent (callRef, theEvent); - } - - return eventNotHandledErr; - } - } - - if (eventKind == kEventMouseDown - || eventKind == kEventMouseDragged - || eventKind == kEventMouseEntered) - { - lastMouseDownPeer = this; - } - - return handleMouseEvent (callRef, theEvent); - } - break; - - case kEventClassWindow: - return handleWindowClassEvent (theEvent); - - case kEventClassKeyboard: - if (isFocused()) - return handleKeyEvent (theEvent, 0); - - break; - - case kEventClassTextInput: - if (isFocused()) - return handleTextInputEvent (theEvent); - - break; - - default: - break; - } - - return eventNotHandledErr; - } - - static pascal OSStatus hiViewEventHandler (EventHandlerCallRef myHandler, EventRef theEvent, void* userData) - { - MessageManager::delayWaitCursor(); - - const UInt32 eventKind = GetEventKind (theEvent); - const UInt32 eventClass = GetEventClass (theEvent); - - if (eventClass == kEventClassHIObject) - { - switch (eventKind) - { - case kEventHIObjectConstruct: - { - void* data = juce_calloc (sizeof (void*)); - SetEventParameter (theEvent, kEventParamHIObjectInstance, - typeVoidPtr, sizeof (void*), &data); - - return noErr; - } - - case kEventHIObjectInitialize: - GetEventParameter (theEvent, 'peer', typeVoidPtr, 0, sizeof (void*), 0, (void**) userData); - return noErr; - - case kEventHIObjectDestruct: - juce_free (userData); - return noErr; - - default: - break; - } - } - else if (eventClass == kEventClassControl) - { - HIViewComponentPeer* const peer = *(HIViewComponentPeer**) userData; - const MessageManagerLock messLock; - - if (! ComponentPeer::isValidPeer (peer)) - return eventNotHandledErr; - - switch (eventKind) - { - case kEventControlDraw: - return peer->hiViewDraw (theEvent); - - case kEventControlBoundsChanged: - { - HIRect bounds; - HIViewGetBounds (peer->viewRef, &bounds); - peer->repaint (0, 0, roundFloatToInt (bounds.size.width), roundFloatToInt (bounds.size.height)); - - peer->handleMovedOrResized(); - return noErr; - } - - case kEventControlHitTest: - { - HIPoint where; - GetEventParameter (theEvent, kEventParamMouseLocation, typeHIPoint, 0, sizeof (HIPoint), 0, &where); - - HIRect bounds; - HIViewGetBounds (peer->viewRef, &bounds); - - ControlPartCode part = kControlNoPart; - - if (CGRectContainsPoint (bounds, where)) - part = 1; - - SetEventParameter (theEvent, kEventParamControlPart, typeControlPartCode, sizeof (ControlPartCode), &part); - return noErr; - } - break; - - case kEventControlSetFocusPart: - { - ControlPartCode desiredFocus; - if (GetEventParameter (theEvent, kEventParamControlPart, typeControlPartCode, 0, sizeof (ControlPartCode), 0, &desiredFocus) != noErr) - break; - - if (desiredFocus == kControlNoPart) - peer->viewFocusLoss(); - else - peer->viewFocusGain(); - - return noErr; - } - break; - - case kEventControlDragEnter: - { -#if MACOS_10_2_OR_EARLIER - enum { kEventParamControlWouldAcceptDrop = 'cldg' }; -#endif - Boolean accept = true; - SetEventParameter (theEvent, kEventParamControlWouldAcceptDrop, typeBoolean, sizeof (accept), &accept); - return noErr; - } - - case kEventControlDragWithin: - return noErr; - - case kEventControlDragReceive: - return peer->handleDragAndDrop (theEvent); - - case kEventControlOwningWindowChanged: - return peer->ownerWindowChanged (theEvent); - -#if ! MACOS_10_2_OR_EARLIER - case kEventControlGetFrameMetrics: - { - CallNextEventHandler (myHandler, theEvent); - HIViewFrameMetrics metrics; - GetEventParameter (theEvent, kEventParamControlFrameMetrics, typeControlFrameMetrics, 0, sizeof (metrics), 0, &metrics); - metrics.top = metrics.bottom = 0; - SetEventParameter (theEvent, kEventParamControlFrameMetrics, typeControlFrameMetrics, sizeof (metrics), &metrics); - return noErr; - } -#endif - - case kEventControlInitialize: - { - UInt32 features = kControlSupportsDragAndDrop - | kControlSupportsFocus - | kControlHandlesTracking - | kControlSupportsEmbedding - | (1 << 8) /*kHIViewFeatureGetsFocusOnClick*/; - - SetEventParameter (theEvent, kEventParamControlFeatures, typeUInt32, sizeof (UInt32), &features); - return noErr; - } - - default: - break; - } - } - - return eventNotHandledErr; - } - - WindowRef createNewWindow (const int windowStyleFlags) - { - jassert (windowRef == 0); - - static ToolboxObjectClassRef customWindowClass = 0; - - if (customWindowClass == 0) - { - // Register our window class - const EventTypeSpec customTypes[] = { { kEventClassWindow, kEventWindowDrawFrame } }; - - UnsignedWide t; - Microseconds (&t); - const String randomString ((int) (t.lo & 0x7ffffff)); - const String juceWindowClassName (T("JUCEWindowClass_") + randomString); - CFStringRef juceWindowClassNameCFString = PlatformUtilities::juceStringToCFString (juceWindowClassName); - - RegisterToolboxObjectClass (juceWindowClassNameCFString, - 0, 1, customTypes, - NewEventHandlerUPP (handleFrameRepaintEvent), - 0, &customWindowClass); - - CFRelease (juceWindowClassNameCFString); - } - - Rect pos; - pos.left = getComponent()->getX(); - pos.top = getComponent()->getY(); - pos.right = getComponent()->getRight(); - pos.bottom = getComponent()->getBottom(); - - int attributes = kWindowStandardHandlerAttribute | kWindowCompositingAttribute; - if ((windowStyleFlags & windowHasDropShadow) == 0) - attributes |= kWindowNoShadowAttribute; - - if ((windowStyleFlags & windowIgnoresMouseClicks) != 0) - attributes |= kWindowIgnoreClicksAttribute; - -#if ! MACOS_10_3_OR_EARLIER - if ((windowStyleFlags & windowIsTemporary) != 0) - attributes |= kWindowDoesNotCycleAttribute; -#endif - - WindowRef newWindow = 0; - - if ((windowStyleFlags & windowHasTitleBar) == 0) - { - attributes |= kWindowCollapseBoxAttribute; - - WindowDefSpec customWindowSpec; - customWindowSpec.defType = kWindowDefObjectClass; - customWindowSpec.u.classRef = customWindowClass; - - CreateCustomWindow (&customWindowSpec, - ((windowStyleFlags & windowIsTemporary) != 0) ? kUtilityWindowClass : - (getComponent()->isAlwaysOnTop() ? kUtilityWindowClass - : kDocumentWindowClass), - attributes, - &pos, - &newWindow); - } - else - { - if ((windowStyleFlags & windowHasCloseButton) != 0) - attributes |= kWindowCloseBoxAttribute; - - if ((windowStyleFlags & windowHasMinimiseButton) != 0) - attributes |= kWindowCollapseBoxAttribute; - - if ((windowStyleFlags & windowHasMaximiseButton) != 0) - attributes |= kWindowFullZoomAttribute; - - if ((windowStyleFlags & windowIsResizable) != 0) - attributes |= kWindowResizableAttribute | kWindowLiveResizeAttribute; - - CreateNewWindow (kDocumentWindowClass, attributes, &pos, &newWindow); - } - - jassert (newWindow != 0); - if (newWindow != 0) - { - HideWindow (newWindow); - - SetAutomaticControlDragTrackingEnabledForWindow (newWindow, true); - - if (! getComponent()->isOpaque()) - SetWindowAlpha (newWindow, 0.9999999f); // to fool it into giving the window an alpha-channel - } - - return newWindow; - } - - OSStatus ownerWindowChanged (EventRef theEvent) - { - WindowRef newWindow = 0; - GetEventParameter (theEvent, kEventParamControlCurrentOwningWindow, typeWindowRef, 0, sizeof (newWindow), 0, &newWindow); - - if (windowRef != newWindow) - { - if (eventHandlerRef != 0) - { - RemoveEventHandler (eventHandlerRef); - eventHandlerRef = 0; - } - - windowRef = newWindow; - - if (windowRef != 0) - { - const EventTypeSpec eventTypes[] = - { - { kEventClassWindow, kEventWindowBoundsChanged }, - { kEventClassWindow, kEventWindowBoundsChanging }, - { kEventClassWindow, kEventWindowFocusAcquired }, - { kEventClassWindow, kEventWindowFocusRelinquish }, - { kEventClassWindow, kEventWindowCollapsed }, - { kEventClassWindow, kEventWindowExpanded }, - { kEventClassWindow, kEventWindowShown }, - { kEventClassWindow, kEventWindowClose }, - { kEventClassMouse, kEventMouseDown }, - { kEventClassMouse, kEventMouseUp }, - { kEventClassMouse, kEventMouseMoved }, - { kEventClassMouse, kEventMouseDragged }, - { kEventClassMouse, kEventMouseEntered }, - { kEventClassMouse, kEventMouseExited }, - { kEventClassMouse, kEventMouseWheelMoved }, - { kEventClassKeyboard, kEventRawKeyUp }, - { kEventClassKeyboard, kEventRawKeyRepeat }, - { kEventClassKeyboard, kEventRawKeyModifiersChanged }, - { kEventClassTextInput, kEventTextInputUnicodeForKeyEvent } - }; - - static EventHandlerUPP handleWindowEventUPP = 0; - - if (handleWindowEventUPP == 0) - handleWindowEventUPP = NewEventHandlerUPP (handleWindowEvent); - - InstallWindowEventHandler (windowRef, handleWindowEventUPP, - GetEventTypeCount (eventTypes), eventTypes, - (void*) this, (EventHandlerRef*) &eventHandlerRef); - - WindowAttributes attributes; - GetWindowAttributes (windowRef, &attributes); - -#if MACOS_10_3_OR_EARLIER - isCompositingWindow = ((attributes & kWindowCompositingAttribute) != 0); -#else - isCompositingWindow = HIViewIsCompositingEnabled (viewRef); -#endif - - MouseCheckTimer::getInstance()->resetMouseMoveChecker(); - } - } - - resizeViewToFitWindow(); - return noErr; - } - - void createNewHIView() - { - jassert (viewRef == 0); - - if (viewClassRef == 0) - { - // Register our HIView class - EventTypeSpec viewEvents[] = - { - { kEventClassHIObject, kEventHIObjectConstruct }, - { kEventClassHIObject, kEventHIObjectInitialize }, - { kEventClassHIObject, kEventHIObjectDestruct }, - { kEventClassControl, kEventControlInitialize }, - { kEventClassControl, kEventControlDraw }, - { kEventClassControl, kEventControlBoundsChanged }, - { kEventClassControl, kEventControlSetFocusPart }, - { kEventClassControl, kEventControlHitTest }, - { kEventClassControl, kEventControlDragEnter }, - { kEventClassControl, kEventControlDragWithin }, - { kEventClassControl, kEventControlDragReceive }, - { kEventClassControl, kEventControlOwningWindowChanged } - }; - - UnsignedWide t; - Microseconds (&t); - const String randomString ((int) (t.lo & 0x7ffffff)); - const String juceHiViewClassName (T("JUCEHIViewClass_") + randomString); - juceHiViewClassNameCFString = PlatformUtilities::juceStringToCFString (juceHiViewClassName); - - HIObjectRegisterSubclass (juceHiViewClassNameCFString, - kHIViewClassID, 0, - NewEventHandlerUPP (hiViewEventHandler), - GetEventTypeCount (viewEvents), - viewEvents, 0, - &viewClassRef); - } - - EventRef event; - CreateEvent (0, kEventClassHIObject, kEventHIObjectInitialize, GetCurrentEventTime(), kEventAttributeNone, &event); - - void* thisPointer = this; - SetEventParameter (event, 'peer', typeVoidPtr, sizeof (void*), &thisPointer); - - HIObjectCreate (juceHiViewClassNameCFString, event, (HIObjectRef*) &viewRef); - - SetControlDragTrackingEnabled (viewRef, true); - - if (isSharedWindow) - { - setBounds (component->getX(), component->getY(), - component->getWidth(), component->getHeight(), false); - } - } -}; - -bool juce_isHIViewCreatedByJuce (HIViewRef view) -{ - return juceHiViewClassNameCFString != 0 - && HIObjectIsOfClass ((HIObjectRef) view, juceHiViewClassNameCFString); -} - -static void trackNextMouseEvent() -{ - UInt32 mods; - MouseTrackingResult result; - ::Point where; - - if (TrackMouseLocationWithOptions ((GrafPtr) -1, 0, 0.01, //kEventDurationForever, - &where, &mods, &result) != noErr - || ! ComponentPeer::isValidPeer (juce_currentMouseTrackingPeer)) - { - juce_currentMouseTrackingPeer = 0; - return; - } - - if (result == kMouseTrackingTimedOut) - return; - -#if MACOS_10_3_OR_EARLIER - const int x = where.h - juce_currentMouseTrackingPeer->getScreenX(); - const int y = where.v - juce_currentMouseTrackingPeer->getScreenY(); -#else - HIPoint p; - p.x = where.h; - p.y = where.v; - HIPointConvert (&p, kHICoordSpaceScreenPixel, 0, - kHICoordSpaceView, ((HIViewComponentPeer*) juce_currentMouseTrackingPeer)->viewRef); - const int x = p.x; - const int y = p.y; -#endif - - if (result == kMouseTrackingMouseDragged) - { - updateModifiers (0); - juce_currentMouseTrackingPeer->handleMouseDrag (x, y, getEventTime (0)); - - if (! ComponentPeer::isValidPeer (juce_currentMouseTrackingPeer)) - { - juce_currentMouseTrackingPeer = 0; - return; - } - } - else if (result == kMouseTrackingMouseUp - || result == kMouseTrackingUserCancelled - || result == kMouseTrackingMouseMoved) - { - ComponentPeer* const oldPeer = juce_currentMouseTrackingPeer; - juce_currentMouseTrackingPeer = 0; - - if (ComponentPeer::isValidPeer (oldPeer)) - { - const int oldModifiers = currentModifiers; - currentModifiers &= ~(ModifierKeys::leftButtonModifier | ModifierKeys::rightButtonModifier | ModifierKeys::middleButtonModifier); - updateModifiers (0); - - oldPeer->handleMouseUp (oldModifiers, x, y, getEventTime (0)); - } - } -} - -bool juce_dispatchNextMessageOnSystemQueue (bool returnIfNoPendingMessages) -{ - if (juce_currentMouseTrackingPeer != 0) - trackNextMouseEvent(); - - EventRef theEvent; - - if (ReceiveNextEvent (0, 0, (returnIfNoPendingMessages) ? kEventDurationNoWait - : kEventDurationForever, - true, &theEvent) == noErr) - { - if (GetEventClass (theEvent) == kEventClassAppleEvent) - { - EventRecord eventRec; - if (ConvertEventRefToEventRecord (theEvent, &eventRec)) - AEProcessAppleEvent (&eventRec); - } - else - { - EventTargetRef theTarget = GetEventDispatcherTarget(); - SendEventToEventTarget (theEvent, theTarget); - } - - ReleaseEvent (theEvent); - return true; - } - - return false; -} - -//============================================================================== -ComponentPeer* Component::createNewPeer (int styleFlags, void* windowToAttachTo) -{ - return new HIViewComponentPeer (this, styleFlags, (HIViewRef) windowToAttachTo); -} - -//============================================================================== -void MouseCheckTimer::timerCallback() -{ - if (ModifierKeys::getCurrentModifiersRealtime().isAnyMouseButtonDown()) - return; - - if (Process::isForegroundProcess()) - { - bool stillOver = false; - int x = 0, y = 0, w = 0, h = 0; - int mx = 0, my = 0; - const bool validWindow = ComponentPeer::isValidPeer (lastPeerUnderMouse); - - if (validWindow) - { - lastPeerUnderMouse->getBounds (x, y, w, h, true); - Desktop::getMousePosition (mx, my); - - stillOver = (mx >= x && my >= y && mx < x + w && my < y + h); - - if (stillOver) - { - // check if it's over an embedded HIView - int rx = mx, ry = my; - lastPeerUnderMouse->globalPositionToRelative (rx, ry); - HIPoint hipoint; - hipoint.x = rx; - hipoint.y = ry; - - HIViewRef root; - GetRootControl ((WindowRef) lastPeerUnderMouse->getNativeHandle(), &root); - - HIViewRef hitview; - if (HIViewGetSubviewHit (root, &hipoint, true, &hitview) == noErr && hitview != 0) - { - stillOver = HIObjectIsOfClass ((HIObjectRef) hitview, juceHiViewClassNameCFString); - } - } - } - - if (! stillOver) - { - // mouse is outside our windows so set a normal cursor (only - // if we're running as an app, not a plugin) - if (JUCEApplication::getInstance() != 0) - SetThemeCursor (kThemeArrowCursor); - - if (validWindow) - lastPeerUnderMouse->handleMouseExit (mx - x, my - y, Time::currentTimeMillis()); - - if (hasEverHadAMouseMove) - stopTimer(); - } - - if ((! hasEverHadAMouseMove) && validWindow - && (mx != lastX || my != lastY)) - { - lastX = mx; - lastY = my; - - if (stillOver) - lastPeerUnderMouse->handleMouseMove (mx - x, my - y, Time::currentTimeMillis()); - } - } -} - -//============================================================================== -// called from juce_Messaging.cpp -void juce_HandleProcessFocusChange() -{ - keysCurrentlyDown.clear(); - - if (HIViewComponentPeer::isValidPeer (currentlyFocusedPeer)) - { - if (Process::isForegroundProcess()) - currentlyFocusedPeer->handleFocusGain(); - else - currentlyFocusedPeer->handleFocusLoss(); - } -} - -static bool performDrag (DragRef drag) -{ - EventRecord event; - event.what = mouseDown; - event.message = 0; - event.when = TickCount(); - - int x, y; - Desktop::getMousePosition (x, y); - event.where.h = x; - event.where.v = y; - - event.modifiers = GetCurrentKeyModifiers(); - - RgnHandle rgn = NewRgn(); - RgnHandle rgn2 = NewRgn(); - SetRectRgn (rgn, - event.where.h - 8, event.where.v - 8, - event.where.h + 8, event.where.v + 8); - CopyRgn (rgn, rgn2); - InsetRgn (rgn2, 1, 1); - DiffRgn (rgn, rgn2, rgn); - DisposeRgn (rgn2); - - bool result = TrackDrag (drag, &event, rgn) == noErr; - - DisposeRgn (rgn); - return result; -} - -bool DragAndDropContainer::performExternalDragDropOfFiles (const StringArray& files, const bool canMoveFiles) -{ - for (int i = ComponentPeer::getNumPeers(); --i >= 0;) - ComponentPeer::getPeer (i)->performAnyPendingRepaintsNow(); - - DragRef drag; - bool result = false; - - if (NewDrag (&drag) == noErr) - { - for (int i = 0; i < files.size(); ++i) - { - HFSFlavor hfsData; - - if (PlatformUtilities::makeFSSpecFromPath (&hfsData.fileSpec, files[i])) - { - FInfo info; - if (FSpGetFInfo (&hfsData.fileSpec, &info) == noErr) - { - hfsData.fileType = info.fdType; - hfsData.fileCreator = info.fdCreator; - hfsData.fdFlags = info.fdFlags; - - AddDragItemFlavor (drag, i + 1, kDragFlavorTypeHFS, &hfsData, sizeof (hfsData), 0); - result = true; - } - } - } - - SetDragAllowableActions (drag, canMoveFiles ? kDragActionAll - : kDragActionCopy, false); - - if (result) - result = performDrag (drag); - - DisposeDrag (drag); - } - - return result; -} - -bool DragAndDropContainer::performExternalDragDropOfText (const String& text) -{ - jassertfalse // not implemented! - return false; -} - - -//============================================================================== -bool Process::isForegroundProcess() throw() -{ - ProcessSerialNumber psn, front; - GetCurrentProcess (&psn); - GetFrontProcess (&front); - - Boolean b; - return (SameProcess (&psn, &front, &b) == noErr) && b; -} - -//============================================================================== -bool Desktop::canUseSemiTransparentWindows() throw() -{ - return true; -} - - -//============================================================================== -void Desktop::getMousePosition (int& x, int& y) throw() -{ - CGrafPtr currentPort; - GetPort (¤tPort); - - if (! IsValidPort (currentPort)) - { - WindowRef front = FrontWindow(); - - if (front != 0) - { - SetPortWindowPort (front); - } - else - { - x = y = 0; - return; - } - } - - ::Point p; - GetMouse (&p); - LocalToGlobal (&p); - x = p.h; - y = p.v; - - SetPort (currentPort); -} - -void Desktop::setMousePosition (int x, int y) throw() -{ - // this rubbish needs to be done around the warp call, to avoid causing a - // bizarre glitch.. - CGAssociateMouseAndMouseCursorPosition (false); - CGSetLocalEventsSuppressionInterval (0); - - CGPoint pos = { x, y }; - CGWarpMouseCursorPosition (pos); - - CGAssociateMouseAndMouseCursorPosition (true); -} - -const ModifierKeys ModifierKeys::getCurrentModifiersRealtime() throw() -{ - return ModifierKeys (currentModifiers); -} - -//============================================================================== -class ScreenSaverDefeater : public Timer, - public DeletedAtShutdown -{ -public: - ScreenSaverDefeater() throw() - { - startTimer (10000); - timerCallback(); - } - - ~ScreenSaverDefeater() - { - } - - void timerCallback() - { - if (Process::isForegroundProcess()) - UpdateSystemActivity (UsrActivity); - } -}; - -static ScreenSaverDefeater* screenSaverDefeater = 0; - -void Desktop::setScreenSaverEnabled (const bool isEnabled) throw() -{ - if (screenSaverDefeater == 0) - screenSaverDefeater = new ScreenSaverDefeater(); -} - -bool Desktop::isScreenSaverEnabled() throw() -{ - return screenSaverDefeater == 0; -} - -//============================================================================== -void juce_updateMultiMonitorInfo (Array & monitorCoords, const bool clipToWorkArea) throw() -{ - int mainMonitorIndex = 0; - CGDirectDisplayID mainDisplayID = CGMainDisplayID(); - - CGDisplayCount count = 0; - CGDirectDisplayID disps [8]; - - if (CGGetActiveDisplayList (numElementsInArray (disps), disps, &count) == noErr) - { - for (int i = 0; i < count; ++i) - { - if (mainDisplayID == disps[i]) - mainMonitorIndex = monitorCoords.size(); - - GDHandle hGDevice; - - if (clipToWorkArea - && DMGetGDeviceByDisplayID ((DisplayIDType) disps[i], &hGDevice, false) == noErr) - { - Rect rect; - GetAvailableWindowPositioningBounds (hGDevice, &rect); - - monitorCoords.add (Rectangle (rect.left, - rect.top, - rect.right - rect.left, - rect.bottom - rect.top)); - } - else - { - const CGRect r (CGDisplayBounds (disps[i])); - - monitorCoords.add (Rectangle ((int) r.origin.x, - (int) r.origin.y, - (int) r.size.width, - (int) r.size.height)); - } - } - } - - // make sure the first in the list is the main monitor - if (mainMonitorIndex > 0) - monitorCoords.swap (mainMonitorIndex, 0); - - jassert (monitorCoords.size() > 0); // xxx seems like this can happen when the screen's in power-saving mode.. - - if (monitorCoords.size() == 0) - monitorCoords.add (Rectangle (0, 0, 1024, 768)); - - //xxx need to register for display change callbacks -} - -//============================================================================== -struct CursorWrapper -{ - Cursor* cursor; - ThemeCursor themeCursor; -}; - -void* juce_createMouseCursorFromImage (const Image& image, int hotspotX, int hotspotY) throw() -{ - const int maxW = 16; - const int maxH = 16; - - const Image* im = ℑ - Image* newIm = 0; - - if (image.getWidth() > maxW || image.getHeight() > maxH) - { - im = newIm = image.createCopy (maxW, maxH); - - hotspotX = (hotspotX * maxW) / image.getWidth(); - hotspotY = (hotspotY * maxH) / image.getHeight(); - } - - Cursor* const c = new Cursor(); - c->hotSpot.h = hotspotX; - c->hotSpot.v = hotspotY; - - for (int y = 0; y < maxH; ++y) - { - c->data[y] = 0; - c->mask[y] = 0; - - for (int x = 0; x < maxW; ++x) - { - const Colour pixelColour (im->getPixelAt (15 - x, y)); - - if (pixelColour.getAlpha() > 0.5f) - { - c->mask[y] |= (1 << x); - - if (pixelColour.getBrightness() < 0.5f) - c->data[y] |= (1 << x); - } - } - - c->data[y] = CFSwapInt16BigToHost (c->data[y]); - c->mask[y] = CFSwapInt16BigToHost (c->mask[y]); - } - - if (newIm != 0) - delete newIm; - - CursorWrapper* const cw = new CursorWrapper(); - cw->cursor = c; - cw->themeCursor = kThemeArrowCursor; - return (void*) cw; -} - -static void* cursorFromData (const unsigned char* data, const int size, int hx, int hy) throw() -{ - Image* const im = ImageFileFormat::loadFrom ((const char*) data, size); - jassert (im != 0); - void* curs = juce_createMouseCursorFromImage (*im, hx, hy); - delete im; - return curs; -} - -const unsigned int kSpecialNoCursor = 'nocr'; - -void* juce_createStandardMouseCursor (MouseCursor::StandardCursorType type) throw() -{ - ThemeCursor id = kThemeArrowCursor; - - switch (type) - { - case MouseCursor::NormalCursor: - id = kThemeArrowCursor; - break; - - case MouseCursor::NoCursor: - id = kSpecialNoCursor; - break; - - case MouseCursor::DraggingHandCursor: - { - static const unsigned char cursData[] = {71,73,70,56,57,97,16,0,16,0,145,2,0,0,0,0,255,255,255,0, - 0,0,0,0,0,33,249,4,1,0,0,2,0,44,0,0,0,0,16,0, - 16,0,0,2,52,148,47,0,200,185,16,130,90,12,74,139,107,84,123,39, - 132,117,151,116,132,146,248,60,209,138,98,22,203,114,34,236,37,52,77,217, - 247,154,191,119,110,240,193,128,193,95,163,56,60,234,98,135,2,0,59 }; - const int cursDataSize = 99; - - return cursorFromData (cursData, cursDataSize, 8, 8); - } - break; - - case MouseCursor::CopyingCursor: - id = kThemeCopyArrowCursor; - break; - - case MouseCursor::WaitCursor: - id = kThemeWatchCursor; - break; - - case MouseCursor::IBeamCursor: - id = kThemeIBeamCursor; - break; - - case MouseCursor::PointingHandCursor: - id = kThemePointingHandCursor; - break; - - case MouseCursor::LeftRightResizeCursor: - case MouseCursor::LeftEdgeResizeCursor: - case MouseCursor::RightEdgeResizeCursor: - { - static const unsigned char cursData[] = {71,73,70,56,57,97,16,0,16,0,145,0,0,255,255,255,0,0,0,255, - 255,255,0,0,0,33,249,4,1,0,0,2,0,44,0,0,0,0,16,0, - 16,0,0,2,38,148,143,169,203,237,15,19,0,106,202,64,111,22,32,224, - 9,78,30,213,121,230,121,146,99,8,142,71,183,189,152,20,27,86,132,231, - 58,83,0,0,59 }; - const int cursDataSize = 85; - - return cursorFromData (cursData, cursDataSize, 8, 8); - } - - case MouseCursor::UpDownResizeCursor: - case MouseCursor::TopEdgeResizeCursor: - case MouseCursor::BottomEdgeResizeCursor: - { - static const unsigned char cursData[] = {71,73,70,56,57,97,16,0,16,0,145,0,0,255,255,255,0,0,0,255, - 255,255,0,0,0,33,249,4,1,0,0,2,0,44,0,0,0,0,16,0, - 16,0,0,2,38,148,111,128,187,16,202,90,152,48,10,55,169,189,192,245, - 106,121,27,34,142,201,99,158,224,86,154,109,216,61,29,155,105,180,61,190, - 121,84,0,0,59 }; - const int cursDataSize = 85; - - return cursorFromData (cursData, cursDataSize, 8, 8); - } - - case MouseCursor::TopLeftCornerResizeCursor: - case MouseCursor::BottomRightCornerResizeCursor: - { - static const unsigned char cursData[] = {71,73,70,56,57,97,16,0,16,0,145,0,0,255,255,255,0,0,0,255, - 255,255,0,0,0,33,249,4,1,0,0,2,0,44,0,0,0,0,16,0, - 16,0,0,2,43,132,15,162,187,16,255,18,99,14,202,217,44,158,213,221, - 237,9,225,38,94,35,73,5,31,42,170,108,106,174,112,43,195,209,91,185, - 104,174,131,208,77,66,28,10,0,59 }; - const int cursDataSize = 90; - - return cursorFromData (cursData, cursDataSize, 8, 8); - } - - case MouseCursor::TopRightCornerResizeCursor: - case MouseCursor::BottomLeftCornerResizeCursor: - { - static const unsigned char cursData[] = {71,73,70,56,57,97,16,0,16,0,145,0,0,255,255,255,0,0,0,255, - 255,255,0,0,0,33,249,4,1,0,0,2,0,44,0,0,0,0,16,0, - 16,0,0,2,45,148,127,160,11,232,16,98,108,14,65,73,107,194,122,223, - 92,65,141,216,145,134,162,153,221,25,128,73,166,62,173,16,203,237,188,94, - 120,46,237,105,239,123,48,80,157,2,0,59 }; - const int cursDataSize = 92; - - return cursorFromData (cursData, cursDataSize, 8, 8); - } - - case MouseCursor::UpDownLeftRightResizeCursor: - { - static const unsigned char cursData[] = {71,73,70,56,57,97,15,0,15,0,145,0,0,0,0,0,255,255,255,0, - 128,128,255,255,255,33,249,4,1,0,0,3,0,44,0,0,0,0,15,0, - 15,0,0,2,46,156,63,129,139,1,202,26,152,48,186,73,109,114,65,85, - 195,37,143,88,93,29,215,101,23,198,178,30,149,158,25,56,134,97,179,61, - 158,213,126,203,234,99,220,34,56,70,1,0,59,0,0 }; - const int cursDataSize = 93; - - return cursorFromData (cursData, cursDataSize, 7, 7); - } - - case MouseCursor::CrosshairCursor: - id = kThemeCrossCursor; - break; - } - - CursorWrapper* cw = new CursorWrapper(); - cw->cursor = 0; - cw->themeCursor = id; - - return (void*) cw; -} - -void juce_deleteMouseCursor (void* const cursorHandle, const bool isStandard) throw() -{ - CursorWrapper* const cw = (CursorWrapper*) cursorHandle; - - if (cw != 0) - { - delete cw->cursor; - delete cw; - } -} - -void MouseCursor::showInAllWindows() const throw() -{ - showInWindow (0); -} - -void MouseCursor::showInWindow (ComponentPeer*) const throw() -{ - const CursorWrapper* const cw = (CursorWrapper*) getHandle(); - - if (cw != 0) - { - static bool isCursorHidden = false; - static bool showingWaitCursor = false; - const bool shouldShowWaitCursor = (cw->themeCursor == kThemeWatchCursor); - const bool shouldHideCursor = (cw->themeCursor == kSpecialNoCursor); - - if (shouldShowWaitCursor != showingWaitCursor - && Process::isForegroundProcess()) - { - showingWaitCursor = shouldShowWaitCursor; - QDDisplayWaitCursor (shouldShowWaitCursor); - } - - if (shouldHideCursor != isCursorHidden) - { - isCursorHidden = shouldHideCursor; - - if (shouldHideCursor) - HideCursor(); - else - ShowCursor(); - } - - if (cw->cursor != 0) - SetCursor (cw->cursor); - else if (! (shouldShowWaitCursor || shouldHideCursor)) - SetThemeCursor (cw->themeCursor); - } -} - -//============================================================================== -Image* juce_createIconForFile (const File& file) -{ - return 0; -} - - -//============================================================================== -class MainMenuHandler; -static MainMenuHandler* mainMenu = 0; - -class MainMenuHandler : private MenuBarModelListener, - private DeletedAtShutdown -{ -public: - MainMenuHandler() throw() - : currentModel (0) - { - } - - ~MainMenuHandler() throw() - { - setMenu (0); - - jassert (mainMenu == this); - mainMenu = 0; - } - - void setMenu (MenuBarModel* const newMenuBarModel) throw() - { - if (currentModel != newMenuBarModel) - { - if (currentModel != 0) - currentModel->removeListener (this); - - currentModel = newMenuBarModel; - - if (currentModel != 0) - currentModel->addListener (this); - - menuBarItemsChanged (0); - } - } - - void menuBarItemsChanged (MenuBarModel*) - { - ClearMenuBar(); - - if (currentModel != 0) - { - int id = 1000; - const StringArray menuNames (currentModel->getMenuBarNames()); - - for (int i = 0; i < menuNames.size(); ++i) - { - const PopupMenu menu (currentModel->getMenuForIndex (i, menuNames [i])); - - MenuRef m = createMenu (menu, menuNames [i], id, i); - - InsertMenu (m, 0); - CFRelease (m); - } - } - } - - void menuCommandInvoked (MenuBarModel*, const ApplicationCommandTarget::InvocationInfo& info) - { - MenuRef menu = 0; - MenuItemIndex index = 0; - GetIndMenuItemWithCommandID (0, info.commandID, 1, &menu, &index); - - FlashMenuBar (GetMenuID (menu)); - FlashMenuBar (GetMenuID (menu)); - } - - void invoke (const int id, ApplicationCommandManager* const commandManager, const int topLevelIndex) const - { - if (currentModel != 0) - { - if (commandManager != 0) - { - ApplicationCommandTarget::InvocationInfo info (id); - info.invocationMethod = ApplicationCommandTarget::InvocationInfo::fromMenu; - - commandManager->invoke (info, true); - } - - currentModel->menuItemSelected (id, topLevelIndex); - } - } - - MenuBarModel* currentModel; - -private: - static MenuRef createMenu (const PopupMenu menu, - const String& menuName, - int& id, - const int topLevelIndex) - { - MenuRef m = 0; - - if (CreateNewMenu (id++, kMenuAttrAutoDisable, &m) == noErr) - { - CFStringRef name = PlatformUtilities::juceStringToCFString (menuName); - SetMenuTitleWithCFString (m, name); - CFRelease (name); - - PopupMenu::MenuItemIterator iter (menu); - - while (iter.next()) - { - MenuItemIndex index = 0; - - int flags = kMenuAttrAutoDisable | kMenuItemAttrIgnoreMeta | kMenuItemAttrNotPreviousAlternate; - if (! iter.isEnabled) - flags |= kMenuItemAttrDisabled; - - CFStringRef text = PlatformUtilities::juceStringToCFString (iter.itemName.upToFirstOccurrenceOf (T(""), false, true)); - - if (iter.isSeparator) - { - AppendMenuItemTextWithCFString (m, text, kMenuItemAttrSeparator, 0, &index); - } - else if (iter.isSectionHeader) - { - AppendMenuItemTextWithCFString (m, text, kMenuItemAttrSectionHeader, 0, &index); - } - else if (iter.subMenu != 0) - { - AppendMenuItemTextWithCFString (m, text, flags, id++, &index); - - MenuRef sub = createMenu (*iter.subMenu, iter.itemName, id, topLevelIndex); - SetMenuItemHierarchicalMenu (m, index, sub); - CFRelease (sub); - } - else - { - AppendMenuItemTextWithCFString (m, text, flags, iter.itemId, &index); - - if (iter.isTicked) - CheckMenuItem (m, index, true); - - SetMenuItemProperty (m, index, 'juce', 'apcm', sizeof (void*), &iter.commandManager); - SetMenuItemProperty (m, index, 'juce', 'topi', sizeof (int), &topLevelIndex); - - if (iter.commandManager != 0) - { - const Array keyPresses (iter.commandManager->getKeyMappings() - ->getKeyPressesAssignedToCommand (iter.itemId)); - - if (keyPresses.size() > 0) - { - const KeyPress& kp = keyPresses.getUnchecked(0); - int mods = 0; - - if (kp.getModifiers().isShiftDown()) - mods |= kMenuShiftModifier; - if (kp.getModifiers().isCtrlDown()) - mods |= kMenuControlModifier; - if (kp.getModifiers().isAltDown()) - mods |= kMenuOptionModifier; - if (! kp.getModifiers().isCommandDown()) - mods |= kMenuNoCommandModifier; - - tchar keyCode = (tchar) kp.getKeyCode(); - - if (kp.getKeyCode() >= KeyPress::numberPad0 - && kp.getKeyCode() <= KeyPress::numberPad9) - { - keyCode = (tchar) ((T('0') - KeyPress::numberPad0) + kp.getKeyCode()); - } - - SetMenuItemCommandKey (m, index, true, 255); - - if (CharacterFunctions::isLetterOrDigit (keyCode) - || CharacterFunctions::indexOfChar (T(",.;/\\'[]=-+_<>?{}\":"), keyCode, false) >= 0) - { - SetMenuItemModifiers (m, index, mods); - SetMenuItemCommandKey (m, index, false, CharacterFunctions::toUpperCase (keyCode)); - } - else - { - const SInt16 glyph = getGlyphForKeyCode (kp.getKeyCode()); - - if (glyph != 0) - { - SetMenuItemModifiers (m, index, mods); - SetMenuItemKeyGlyph (m, index, glyph); - } - } - - // if we set the key glyph to be a text char, and enable virtual - // key triggering, it stops the menu automatically triggering the callback - ChangeMenuItemAttributes (m, index, kMenuItemAttrUseVirtualKey, 0); - } - } - } - - CFRelease (text); - } - } - - return m; - } - - static SInt16 getGlyphForKeyCode (const int keyCode) throw() - { - if (keyCode == KeyPress::spaceKey) - return kMenuSpaceGlyph; - else if (keyCode == KeyPress::returnKey) - return kMenuReturnGlyph; - else if (keyCode == KeyPress::escapeKey) - return kMenuEscapeGlyph; - else if (keyCode == KeyPress::backspaceKey) - return kMenuDeleteLeftGlyph; - else if (keyCode == KeyPress::leftKey) - return kMenuLeftArrowGlyph; - else if (keyCode == KeyPress::rightKey) - return kMenuRightArrowGlyph; - else if (keyCode == KeyPress::upKey) - return kMenuUpArrowGlyph; - else if (keyCode == KeyPress::downKey) - return kMenuDownArrowGlyph; - else if (keyCode == KeyPress::pageUpKey) - return kMenuPageUpGlyph; - else if (keyCode == KeyPress::pageDownKey) - return kMenuPageDownGlyph; - else if (keyCode == KeyPress::endKey) - return kMenuSoutheastArrowGlyph; - else if (keyCode == KeyPress::homeKey) - return kMenuNorthwestArrowGlyph; - else if (keyCode == KeyPress::deleteKey) - return kMenuDeleteRightGlyph; - else if (keyCode == KeyPress::tabKey) - return kMenuTabRightGlyph; - else if (keyCode == KeyPress::F1Key) - return kMenuF1Glyph; - else if (keyCode == KeyPress::F2Key) - return kMenuF2Glyph; - else if (keyCode == KeyPress::F3Key) - return kMenuF3Glyph; - else if (keyCode == KeyPress::F4Key) - return kMenuF4Glyph; - else if (keyCode == KeyPress::F5Key) - return kMenuF5Glyph; - else if (keyCode == KeyPress::F6Key) - return kMenuF6Glyph; - else if (keyCode == KeyPress::F7Key) - return kMenuF7Glyph; - else if (keyCode == KeyPress::F8Key) - return kMenuF8Glyph; - else if (keyCode == KeyPress::F9Key) - return kMenuF9Glyph; - else if (keyCode == KeyPress::F10Key) - return kMenuF10Glyph; - else if (keyCode == KeyPress::F11Key) - return kMenuF11Glyph; - else if (keyCode == KeyPress::F12Key) - return kMenuF12Glyph; - else if (keyCode == KeyPress::F13Key) - return kMenuF13Glyph; - else if (keyCode == KeyPress::F14Key) - return kMenuF14Glyph; - else if (keyCode == KeyPress::F15Key) - return kMenuF15Glyph; - - return 0; - } -}; - -void MenuBarModel::setMacMainMenu (MenuBarModel* newMenuBarModel) throw() -{ - if (getMacMainMenu() != newMenuBarModel) - { - if (newMenuBarModel == 0) - { - delete mainMenu; - jassert (mainMenu == 0); // should be zeroed in the destructor - } - else - { - if (mainMenu == 0) - mainMenu = new MainMenuHandler(); - - mainMenu->setMenu (newMenuBarModel); - } - } -} - -MenuBarModel* MenuBarModel::getMacMainMenu() throw() -{ - return mainMenu != 0 ? mainMenu->currentModel : 0; -} - -// these functions are called externally from the message handling code -void juce_MainMenuAboutToBeUsed() -{ - // force an update of the items just before the menu appears.. - if (mainMenu != 0) - mainMenu->menuBarItemsChanged (0); -} - -void juce_InvokeMainMenuCommand (const HICommand& command) -{ - if (mainMenu != 0) - { - ApplicationCommandManager* commandManager = 0; - int topLevelIndex = 0; - - if (GetMenuItemProperty (command.menu.menuRef, command.menu.menuItemIndex, - 'juce', 'apcm', sizeof (commandManager), 0, &commandManager) == noErr - && GetMenuItemProperty (command.menu.menuRef, command.menu.menuItemIndex, - 'juce', 'topi', sizeof (topLevelIndex), 0, &topLevelIndex) == noErr) - { - mainMenu->invoke (command.commandID, commandManager, topLevelIndex); - } - } -} - -//============================================================================== -void PlatformUtilities::beep() -{ - SysBeep (30); -} - -//============================================================================== -void SystemClipboard::copyTextToClipboard (const String& text) throw() -{ - ClearCurrentScrap(); - ScrapRef ref; - GetCurrentScrap (&ref); - - const int len = text.length(); - const int numBytes = sizeof (UniChar) * len; - UniChar* const temp = (UniChar*) juce_calloc (numBytes); - - for (int i = 0; i < len; ++i) - temp[i] = (UniChar) text[i]; - - PutScrapFlavor (ref, - kScrapFlavorTypeUnicode, - kScrapFlavorMaskNone, - numBytes, - temp); - - juce_free (temp); -} - -const String SystemClipboard::getTextFromClipboard() throw() -{ - String result; - - ScrapRef ref; - GetCurrentScrap (&ref); - Size size = 0; - - if (GetScrapFlavorSize (ref, kScrapFlavorTypeUnicode, &size) == noErr - && size > 0) - { - void* const data = juce_calloc (size + 8); - - if (GetScrapFlavorData (ref, kScrapFlavorTypeUnicode, &size, data) == noErr) - { - result = PlatformUtilities::convertUTF16ToString ((UniChar*) data); - } - - juce_free (data); - } - - return result; -} - - -//============================================================================== -bool AlertWindow::showNativeDialogBox (const String& title, - const String& bodyText, - bool isOkCancel) -{ - Str255 tit, txt; - PlatformUtilities::copyToStr255 (tit, title); - PlatformUtilities::copyToStr255 (txt, bodyText); - - AlertStdAlertParamRec ar; - ar.movable = true; - ar.helpButton = false; - ar.filterProc = 0; - ar.defaultText = (const unsigned char*)-1; - ar.cancelText = (const unsigned char*)((isOkCancel) ? -1 : 0); - ar.otherText = 0; - ar.defaultButton = kAlertStdAlertOKButton; - ar.cancelButton = 0; - ar.position = kWindowDefaultPosition; - - SInt16 result; - StandardAlert (kAlertNoteAlert, tit, txt, &ar, &result); - return result == kAlertStdAlertOKButton; -} - -//============================================================================== -const int KeyPress::spaceKey = ' '; -const int KeyPress::returnKey = kReturnCharCode; -const int KeyPress::escapeKey = kEscapeCharCode; -const int KeyPress::backspaceKey = kBackspaceCharCode; -const int KeyPress::leftKey = kLeftArrowCharCode; -const int KeyPress::rightKey = kRightArrowCharCode; -const int KeyPress::upKey = kUpArrowCharCode; -const int KeyPress::downKey = kDownArrowCharCode; -const int KeyPress::pageUpKey = kPageUpCharCode; -const int KeyPress::pageDownKey = kPageDownCharCode; -const int KeyPress::endKey = kEndCharCode; -const int KeyPress::homeKey = kHomeCharCode; -const int KeyPress::deleteKey = kDeleteCharCode; -const int KeyPress::insertKey = -1; -const int KeyPress::tabKey = kTabCharCode; -const int KeyPress::F1Key = 0x10110; -const int KeyPress::F2Key = 0x10111; -const int KeyPress::F3Key = 0x10112; -const int KeyPress::F4Key = 0x10113; -const int KeyPress::F5Key = 0x10114; -const int KeyPress::F6Key = 0x10115; -const int KeyPress::F7Key = 0x10116; -const int KeyPress::F8Key = 0x10117; -const int KeyPress::F9Key = 0x10118; -const int KeyPress::F10Key = 0x10119; -const int KeyPress::F11Key = 0x1011a; -const int KeyPress::F12Key = 0x1011b; -const int KeyPress::F13Key = 0x1011c; -const int KeyPress::F14Key = 0x1011d; -const int KeyPress::F15Key = 0x1011e; -const int KeyPress::F16Key = 0x1011f; -const int KeyPress::numberPad0 = 0x30020; -const int KeyPress::numberPad1 = 0x30021; -const int KeyPress::numberPad2 = 0x30022; -const int KeyPress::numberPad3 = 0x30023; -const int KeyPress::numberPad4 = 0x30024; -const int KeyPress::numberPad5 = 0x30025; -const int KeyPress::numberPad6 = 0x30026; -const int KeyPress::numberPad7 = 0x30027; -const int KeyPress::numberPad8 = 0x30028; -const int KeyPress::numberPad9 = 0x30029; -const int KeyPress::numberPadAdd = 0x3002a; -const int KeyPress::numberPadSubtract = 0x3002b; -const int KeyPress::numberPadMultiply = 0x3002c; -const int KeyPress::numberPadDivide = 0x3002d; -const int KeyPress::numberPadSeparator = 0x3002e; -const int KeyPress::numberPadDecimalPoint = 0x3002f; -const int KeyPress::numberPadEquals = 0x30030; -const int KeyPress::numberPadDelete = 0x30031; -const int KeyPress::playKey = 0x30000; -const int KeyPress::stopKey = 0x30001; -const int KeyPress::fastForwardKey = 0x30002; -const int KeyPress::rewindKey = 0x30003; - - -//============================================================================== -AppleRemoteDevice::AppleRemoteDevice() - : device (0), - queue (0), - remoteId (0) -{ -} - -AppleRemoteDevice::~AppleRemoteDevice() -{ - stop(); -} - -static io_object_t getAppleRemoteDevice() throw() -{ - CFMutableDictionaryRef dict = IOServiceMatching ("AppleIRController"); - - io_iterator_t iter = 0; - io_object_t iod = 0; - - if (IOServiceGetMatchingServices (kIOMasterPortDefault, dict, &iter) == kIOReturnSuccess - && iter != 0) - { - iod = IOIteratorNext (iter); - } - - IOObjectRelease (iter); - return iod; -} - -static bool createAppleRemoteInterface (io_object_t iod, void** device) throw() -{ - jassert (*device == 0); - io_name_t classname; - - if (IOObjectGetClass (iod, classname) == kIOReturnSuccess) - { - IOCFPlugInInterface** cfPlugInInterface = 0; - SInt32 score = 0; - - if (IOCreatePlugInInterfaceForService (iod, - kIOHIDDeviceUserClientTypeID, - kIOCFPlugInInterfaceID, - &cfPlugInInterface, - &score) == kIOReturnSuccess) - { - HRESULT hr = (*cfPlugInInterface)->QueryInterface (cfPlugInInterface, - CFUUIDGetUUIDBytes (kIOHIDDeviceInterfaceID), - device); - - (void) hr; - - (*cfPlugInInterface)->Release (cfPlugInInterface); - } - } - - return *device != 0; -} - -bool AppleRemoteDevice::start (const bool inExclusiveMode) throw() -{ - if (queue != 0) - return true; - - stop(); - - bool result = false; - io_object_t iod = getAppleRemoteDevice(); - - if (iod != 0) - { - if (createAppleRemoteInterface (iod, &device) && open (inExclusiveMode)) - result = true; - else - stop(); - - IOObjectRelease (iod); - } - - return result; -} - -void AppleRemoteDevice::stop() throw() -{ - if (queue != 0) - { - (*(IOHIDQueueInterface**) queue)->stop ((IOHIDQueueInterface**) queue); - (*(IOHIDQueueInterface**) queue)->dispose ((IOHIDQueueInterface**) queue); - (*(IOHIDQueueInterface**) queue)->Release ((IOHIDQueueInterface**) queue); - queue = 0; - } - - if (device != 0) - { - (*(IOHIDDeviceInterface**) device)->close ((IOHIDDeviceInterface**) device); - (*(IOHIDDeviceInterface**) device)->Release ((IOHIDDeviceInterface**) device); - device = 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 "../../../src/juce_core/basics/juce_StandardHeader.h" +#include +#include +#include +#include +#include +#include + +#if JUCE_OPENGL +#include +#endif + +BEGIN_JUCE_NAMESPACE + +#include "../../../src/juce_appframework/events/juce_Timer.h" +#include "../../../src/juce_appframework/application/juce_DeletedAtShutdown.h" +#include "../../../src/juce_appframework/events/juce_AsyncUpdater.h" +#include "../../../src/juce_appframework/events/juce_MessageManager.h" +#include "../../../src/juce_core/basics/juce_Singleton.h" +#include "../../../src/juce_core/basics/juce_Random.h" +#include "../../../src/juce_core/threads/juce_Process.h" +#include "../../../src/juce_appframework/application/juce_SystemClipboard.h" +#include "../../../src/juce_appframework/gui/components/keyboard/juce_KeyPress.h" +#include "../../../src/juce_appframework/gui/components/windows/juce_AlertWindow.h" +#include "../../../src/juce_appframework/gui/graphics/geometry/juce_RectangleList.h" +#include "../../../src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h" +#include "../../../src/juce_appframework/gui/components/juce_Desktop.h" +#include "../../../src/juce_appframework/gui/components/menus/juce_MenuBarModel.h" +#include "../../../src/juce_core/misc/juce_PlatformUtilities.h" +#include "../../../src/juce_appframework/application/juce_Application.h" +#include "../../../src/juce_appframework/gui/components/special/juce_OpenGLComponent.h" +#include "../../../src/juce_appframework/gui/components/mouse/juce_DragAndDropContainer.h" +#include "../../../src/juce_appframework/gui/components/keyboard/juce_KeyPressMappingSet.h" +#include "../../../src/juce_appframework/gui/graphics/imaging/juce_ImageFileFormat.h" + +#undef Point + +const WindowRegionCode windowRegionToUse = kWindowContentRgn; + +static HIObjectClassRef viewClassRef = 0; +static CFStringRef juceHiViewClassNameCFString = 0; +static ComponentPeer* juce_currentMouseTrackingPeer = 0; + + +//============================================================================== +static VoidArray keysCurrentlyDown; + +bool KeyPress::isKeyCurrentlyDown (const int keyCode) throw() +{ + if (keysCurrentlyDown.contains ((void*) keyCode)) + return true; + + if (keyCode >= 'A' && keyCode <= 'Z' + && keysCurrentlyDown.contains ((void*) (int) CharacterFunctions::toLowerCase ((tchar) keyCode))) + return true; + + if (keyCode >= 'a' && keyCode <= 'z' + && keysCurrentlyDown.contains ((void*) (int) CharacterFunctions::toUpperCase ((tchar) keyCode))) + return true; + + return false; +} + +//============================================================================== +static VoidArray minimisedWindows; + +static void setWindowMinimised (WindowRef ref, const bool isMinimised) +{ + if (isMinimised != minimisedWindows.contains (ref)) + CollapseWindow (ref, isMinimised); +} + +void juce_maximiseAllMinimisedWindows() +{ + const VoidArray minWin (minimisedWindows); + + for (int i = minWin.size(); --i >= 0;) + setWindowMinimised ((WindowRef) (minWin[i]), false); +} + +//============================================================================== +class HIViewComponentPeer; +static HIViewComponentPeer* currentlyFocusedPeer = 0; + + +//============================================================================== +static int currentModifiers = 0; + +static void updateModifiers (EventRef theEvent) +{ + currentModifiers &= ~ (ModifierKeys::shiftModifier | ModifierKeys::ctrlModifier + | ModifierKeys::altModifier | ModifierKeys::commandModifier); + + UInt32 m; + + if (theEvent != 0) + GetEventParameter (theEvent, kEventParamKeyModifiers, typeUInt32, 0, sizeof(m), 0, &m); + else + m = GetCurrentEventKeyModifiers(); + + if ((m & (shiftKey | rightShiftKey)) != 0) + currentModifiers |= ModifierKeys::shiftModifier; + + if ((m & (controlKey | rightControlKey)) != 0) + currentModifiers |= ModifierKeys::ctrlModifier; + + if ((m & (optionKey | rightOptionKey)) != 0) + currentModifiers |= ModifierKeys::altModifier; + + if ((m & cmdKey) != 0) + currentModifiers |= ModifierKeys::commandModifier; +} + +void ModifierKeys::updateCurrentModifiers() throw() +{ + currentModifierFlags = currentModifiers; +} + +static int64 getEventTime (EventRef event) +{ + const int64 millis = (int64) (1000.0 * (event != 0 ? GetEventTime (event) + : GetCurrentEventTime())); + + static int64 offset = 0; + if (offset == 0) + offset = Time::currentTimeMillis() - millis; + + return offset + millis; +} + + +//============================================================================== +class MacBitmapImage : public Image +{ +public: + //============================================================================== + CGColorSpaceRef colourspace; + CGDataProviderRef provider; + + //============================================================================== + MacBitmapImage (const PixelFormat format_, + const int w, const int h, const bool clearImage) + : Image (format_, w, h) + { + jassert (format_ == RGB || format_ == ARGB); + + pixelStride = (format_ == RGB) ? 3 : 4; + + lineStride = (w * pixelStride + 3) & ~3; + const int imageSize = lineStride * h; + + if (clearImage) + imageData = (uint8*) juce_calloc (imageSize); + else + imageData = (uint8*) juce_malloc (imageSize); + + //colourspace = CGColorSpaceCreateWithName (kCGColorSpaceUserRGB); + + CMProfileRef prof; + CMGetSystemProfile (&prof); + colourspace = CGColorSpaceCreateWithPlatformColorSpace (prof); + + provider = CGDataProviderCreateWithData (0, imageData, h * lineStride, 0); + } + + MacBitmapImage::~MacBitmapImage() + { + CGDataProviderRelease (provider); + CGColorSpaceRelease (colourspace); + + juce_free (imageData); + imageData = 0; // to stop the base class freeing this + } + + void blitToContext (CGContextRef context, const float dx, const float dy) + { + CGImageRef tempImage = CGImageCreate (getWidth(), getHeight(), + 8, pixelStride << 3, lineStride, colourspace, +#if MACOS_10_3_OR_EARLIER || JUCE_BIG_ENDIAN + hasAlphaChannel() ? kCGImageAlphaPremultipliedFirst + : kCGImageAlphaNone, +#else + hasAlphaChannel() ? kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst + : kCGImageAlphaNone, +#endif + provider, 0, false, + kCGRenderingIntentDefault); + + HIRect r; + r.origin.x = dx; + r.origin.y = dy; + r.size.width = (float) getWidth(); + r.size.height = (float) getHeight(); + + HIViewDrawCGImage (context, &r, tempImage); + + CGImageRelease (tempImage); + } + + juce_UseDebuggingNewOperator +}; + + +//============================================================================== +class MouseCheckTimer : private Timer, + private DeletedAtShutdown +{ + HIViewComponentPeer* lastPeerUnderMouse; + int lastX, lastY; + +public: + MouseCheckTimer() + : lastX (0), + lastY (0) + { + lastPeerUnderMouse = 0; + resetMouseMoveChecker(); + } + + ~MouseCheckTimer() + { + clearSingletonInstance(); + } + + juce_DeclareSingleton_SingleThreaded_Minimal (MouseCheckTimer) + + bool hasEverHadAMouseMove; + + void moved (HIViewComponentPeer* const peer) + { + if (hasEverHadAMouseMove) + startTimer (200); + + lastPeerUnderMouse = peer; + } + + void resetMouseMoveChecker() + { + hasEverHadAMouseMove = false; + startTimer (1000 / 16); + } + + void timerCallback(); +}; + +juce_ImplementSingleton_SingleThreaded (MouseCheckTimer) + +//============================================================================== +#if JUCE_QUICKTIME +extern void OfferMouseClickToQuickTime (WindowRef window, ::Point where, long when, long modifiers, + Component* topLevelComp); +#endif + + +//============================================================================== +class HIViewComponentPeer : public ComponentPeer, + private Timer +{ +public: + //============================================================================== + HIViewComponentPeer (Component* const component, + const int windowStyleFlags, + HIViewRef viewToAttachTo) + : ComponentPeer (component, windowStyleFlags), + fullScreen (false), + isCompositingWindow (false), + windowRef (0), + viewRef (0) + { + repainter = new RepaintManager (this); + + eventHandlerRef = 0; + + if (viewToAttachTo != 0) + { + isSharedWindow = true; + } + else + { + isSharedWindow = false; + + WindowRef newWindow = createNewWindow (windowStyleFlags); + + GetRootControl (newWindow, (ControlRef*) &viewToAttachTo); + jassert (viewToAttachTo != 0); + + HIViewRef growBox = 0; + HIViewFindByID (HIViewGetRoot (newWindow), kHIViewWindowGrowBoxID, &growBox); + + if (growBox != 0) + HIGrowBoxViewSetTransparent (growBox, true); + } + + createNewHIView(); + + HIViewAddSubview (viewToAttachTo, viewRef); + HIViewSetVisible (viewRef, component->isVisible()); + + setTitle (component->getName()); + + if (component->isVisible() && ! isSharedWindow) + { + ShowWindow (windowRef); + ActivateWindow (windowRef, component->getWantsKeyboardFocus()); + } + } + + ~HIViewComponentPeer() + { + minimisedWindows.removeValue (windowRef); + + if (IsValidWindowPtr (windowRef)) + { + if (! isSharedWindow) + { + CFRelease (viewRef); + viewRef = 0; + + DisposeWindow (windowRef); + } + else + { + if (eventHandlerRef != 0) + RemoveEventHandler (eventHandlerRef); + + CFRelease (viewRef); + viewRef = 0; + } + + windowRef = 0; + } + + if (currentlyFocusedPeer == this) + currentlyFocusedPeer = 0; + + delete repainter; + } + + //============================================================================== + void* getNativeHandle() const + { + return windowRef; + } + + void setVisible (bool shouldBeVisible) + { + HIViewSetVisible (viewRef, shouldBeVisible); + + if ((! isSharedWindow) && IsValidWindowPtr (windowRef)) + { + if (shouldBeVisible) + ShowWindow (windowRef); + else + HideWindow (windowRef); + + resizeViewToFitWindow(); + + // If nothing else is focused, then grab the focus too + if (shouldBeVisible + && Component::getCurrentlyFocusedComponent() == 0 + && Process::isForegroundProcess()) + { + component->toFront (true); + } + } + } + + void setTitle (const String& title) + { + if ((! isSharedWindow) && IsValidWindowPtr (windowRef)) + { + CFStringRef t = PlatformUtilities::juceStringToCFString (title); + SetWindowTitleWithCFString (windowRef, t); + CFRelease (t); + } + } + + void setPosition (int x, int y) + { + if (isSharedWindow) + { + HIViewPlaceInSuperviewAt (viewRef, x, y); + } + else if (IsValidWindowPtr (windowRef)) + { + Rect r; + GetWindowBounds (windowRef, windowRegionToUse, &r); + r.right += x - r.left; + r.bottom += y - r.top; + r.left = x; + r.top = y; + SetWindowBounds (windowRef, windowRegionToUse, &r); + } + } + + void setSize (int w, int h) + { + w = jmax (0, w); + h = jmax (0, h); + + if (w != getComponent()->getWidth() + || h != getComponent()->getHeight()) + { + repainter->repaint (0, 0, w, h); + } + + if (isSharedWindow) + { + HIRect r; + HIViewGetFrame (viewRef, &r); + r.size.width = (float) w; + r.size.height = (float) h; + HIViewSetFrame (viewRef, &r); + } + else if (IsValidWindowPtr (windowRef)) + { + Rect r; + GetWindowBounds (windowRef, windowRegionToUse, &r); + r.right = r.left + w; + r.bottom = r.top + h; + SetWindowBounds (windowRef, windowRegionToUse, &r); + } + } + + void setBounds (int x, int y, int w, int h, const bool isNowFullScreen) + { + fullScreen = isNowFullScreen; + w = jmax (0, w); + h = jmax (0, h); + + if (w != getComponent()->getWidth() + || h != getComponent()->getHeight()) + { + repainter->repaint (0, 0, w, h); + } + + if (isSharedWindow) + { + HIRect r; + r.origin.x = (float) x; + r.origin.y = (float) y; + r.size.width = (float) w; + r.size.height = (float) h; + HIViewSetFrame (viewRef, &r); + } + else if (IsValidWindowPtr (windowRef)) + { + Rect r; + r.left = x; + r.top = y; + r.right = x + w; + r.bottom = y + h; + SetWindowBounds (windowRef, windowRegionToUse, &r); + } + } + + void getBounds (int& x, int& y, int& w, int& h, const bool global) const + { + HIRect hiViewPos; + HIViewGetFrame (viewRef, &hiViewPos); + + if (global) + { + HIViewRef content = 0; + HIViewFindByID (HIViewGetRoot (windowRef), kHIViewWindowContentID, &content); + HIPoint p = { 0.0f, 0.0f }; + HIViewConvertPoint (&p, viewRef, content); + + x = (int) p.x; + y = (int) p.y; + + if (IsValidWindowPtr (windowRef)) + { + Rect windowPos; + GetWindowBounds (windowRef, kWindowContentRgn, &windowPos); + + x += windowPos.left; + y += windowPos.top; + } + } + else + { + x = (int) hiViewPos.origin.x; + y = (int) hiViewPos.origin.y; + } + + w = (int) hiViewPos.size.width; + h = (int) hiViewPos.size.height; + } + + void getBounds (int& x, int& y, int& w, int& h) const + { + getBounds (x, y, w, h, ! isSharedWindow); + } + + int getScreenX() const + { + int x, y, w, h; + getBounds (x, y, w, h, true); + return x; + } + + int getScreenY() const + { + int x, y, w, h; + getBounds (x, y, w, h, true); + return y; + } + + void relativePositionToGlobal (int& x, int& y) + { + int wx, wy, ww, wh; + getBounds (wx, wy, ww, wh, true); + + x += wx; + y += wy; + } + + void globalPositionToRelative (int& x, int& y) + { + int wx, wy, ww, wh; + getBounds (wx, wy, ww, wh, true); + + x -= wx; + y -= wy; + } + + void setMinimised (bool shouldBeMinimised) + { + if (! isSharedWindow) + setWindowMinimised (windowRef, shouldBeMinimised); + } + + bool isMinimised() const + { + return minimisedWindows.contains (windowRef); + } + + void setFullScreen (bool shouldBeFullScreen) + { + if (! isSharedWindow) + { + Rectangle r (lastNonFullscreenBounds); + + setMinimised (false); + + if (fullScreen != shouldBeFullScreen) + { + if (shouldBeFullScreen) + r = Desktop::getInstance().getMainMonitorArea(); + + // (can't call the component's setBounds method because that'll reset our fullscreen flag) + if (r != getComponent()->getBounds() && ! r.isEmpty()) + setBounds (r.getX(), r.getY(), r.getWidth(), r.getHeight(), shouldBeFullScreen); + } + } + } + + bool isFullScreen() const + { + return fullScreen; + } + + bool contains (int x, int y, bool trueIfInAChildWindow) const + { + if (x < 0 || y < 0 + || x >= component->getWidth() || y >= component->getHeight() + || ! IsValidWindowPtr (windowRef)) + return false; + + Rect r; + GetWindowBounds (windowRef, windowRegionToUse, &r); + + ::Point p; + p.h = r.left + x; + p.v = r.top + y; + + WindowRef ref2 = 0; + FindWindow (p, &ref2); + + if (windowRef != ref2) + return false; + + if (trueIfInAChildWindow) + return true; + + HIPoint p2; + p2.x = (float) x; + p2.y = (float) y; + HIViewRef hit; + + HIViewGetSubviewHit (viewRef, &p2, true, &hit); + return hit == 0 || hit == viewRef; + } + + const BorderSize getFrameSize() const + { + return BorderSize(); + } + + bool setAlwaysOnTop (bool alwaysOnTop) + { + // can't do this so return false and let the component create a new window + return false; + } + + void toFront (bool makeActiveWindow) + { + makeActiveWindow = makeActiveWindow + && component->isValidComponent() + && (component->getWantsKeyboardFocus() + || component->isCurrentlyModal()); + + if (windowRef != FrontWindow() + || (makeActiveWindow && ! IsWindowActive (windowRef)) + || ! Process::isForegroundProcess()) + { + if (! Process::isForegroundProcess()) + { + ProcessSerialNumber psn; + GetCurrentProcess (&psn); + SetFrontProcess (&psn); + } + + if (IsValidWindowPtr (windowRef)) + { + if (makeActiveWindow) + { + SelectWindow (windowRef); + SetUserFocusWindow (windowRef); + HIViewAdvanceFocus (viewRef, 0); + } + else + { + BringToFront (windowRef); + } + + handleBroughtToFront(); + } + } + } + + void toBehind (ComponentPeer* other) + { + HIViewComponentPeer* const otherWindow = dynamic_cast (other); + + if (other != 0 && windowRef != 0 && otherWindow->windowRef != 0) + { + if (windowRef == otherWindow->windowRef) + { + HIViewSetZOrder (viewRef, kHIViewZOrderBelow, otherWindow->viewRef); + } + else + { + SendBehind (windowRef, otherWindow->windowRef); + } + } + } + + void setIcon (const Image& /*newIcon*/) + { + // to do.. + } + + //============================================================================== + void viewFocusGain() + { + const MessageManagerLock messLock; + + if (currentlyFocusedPeer != this) + { + if (ComponentPeer::isValidPeer (currentlyFocusedPeer)) + currentlyFocusedPeer->handleFocusLoss(); + + currentlyFocusedPeer = this; + + handleFocusGain(); + } + } + + void viewFocusLoss() + { + if (currentlyFocusedPeer == this) + { + currentlyFocusedPeer = 0; + handleFocusLoss(); + } + } + + bool isFocused() const + { + return windowRef == GetUserFocusWindow() + && HIViewSubtreeContainsFocus (viewRef); + } + + void grabFocus() + { + if ((! isFocused()) && IsValidWindowPtr (windowRef)) + { + SetUserFocusWindow (windowRef); + HIViewAdvanceFocus (viewRef, 0); + } + } + + //============================================================================== + void repaint (int x, int y, int w, int h) + { + if (Rectangle::intersectRectangles (x, y, w, h, + 0, 0, + getComponent()->getWidth(), + getComponent()->getHeight())) + { + if ((getStyleFlags() & windowRepaintedExplictly) == 0) + { + if (isCompositingWindow) + { +#if MACOS_10_3_OR_EARLIER + RgnHandle rgn = NewRgn(); + SetRectRgn (rgn, x, y, x + w, y + h); + HIViewSetNeedsDisplayInRegion (viewRef, rgn, true); + DisposeRgn (rgn); +#else + HIRect r; + r.origin.x = x; + r.origin.y = y; + r.size.width = w; + r.size.height = h; + + HIViewSetNeedsDisplayInRect (viewRef, &r, true); +#endif + } + else + { + if (! isTimerRunning()) + startTimer (20); + } + } + + repainter->repaint (x, y, w, h); + } + } + + void timerCallback() + { + performAnyPendingRepaintsNow(); + } + + void performAnyPendingRepaintsNow() + { + stopTimer(); + + if (component->isVisible()) + { +#if MACOS_10_2_OR_EARLIER + if (! isCompositingWindow) + { + Rect w; + GetWindowBounds (windowRef, windowRegionToUse, &w); + + RgnHandle rgn = NewRgn(); + SetRectRgn (rgn, 0, 0, w.right - w.left, w.bottom - w.top); + UpdateControls (windowRef, rgn); + DisposeRgn (rgn); + } + else + { + EventRef theEvent; + + EventTypeSpec eventTypes[1]; + eventTypes[0].eventClass = kEventClassControl; + eventTypes[0].eventKind = kEventControlDraw; + + int n = 3; + while (--n >= 0 + && ReceiveNextEvent (1, eventTypes, kEventDurationNoWait, true, &theEvent) == noErr) + { + if (GetEventClass (theEvent) == kEventClassAppleEvent) + { + EventRecord eventRec; + if (ConvertEventRefToEventRecord (theEvent, &eventRec)) + AEProcessAppleEvent (&eventRec); + } + else + { + EventTargetRef theTarget = GetEventDispatcherTarget(); + SendEventToEventTarget (theEvent, theTarget); + } + + ReleaseEvent (theEvent); + } + } +#else + HIViewRender (viewRef); +#endif + } + } + + //============================================================================== + juce_UseDebuggingNewOperator + + WindowRef windowRef; + HIViewRef viewRef; + +private: + EventHandlerRef eventHandlerRef; + bool fullScreen, isSharedWindow, isCompositingWindow; + + //============================================================================== + class RepaintManager : public Timer + { +public: + RepaintManager (HIViewComponentPeer* const peer_) + : peer (peer_), + image (0) + { + } + + ~RepaintManager() + { + delete image; + } + + void timerCallback() + { + stopTimer(); + deleteAndZero (image); + } + + void repaint (int x, int y, int w, int h) + { + regionsNeedingRepaint.add (x, y, w, h); + } + + void repaintAnyRemainingRegions() + { + // if any regions have been invaldated during the paint callback, + // we need to repaint them explicitly because the mac throws this + // stuff away + for (RectangleList::Iterator i (regionsNeedingRepaint); i.next();) + { + const Rectangle& r = *i.getRectangle(); + peer->repaint (r.getX(), r.getY(), r.getWidth(), r.getHeight()); + } + } + + void paint (CGContextRef cgContext, int x, int y, int w, int h) + { + if (w > 0 && h > 0) + { + bool refresh = false; + int imW = image != 0 ? image->getWidth() : 0; + int imH = image != 0 ? image->getHeight() : 0; + + if (imW < w || imH < h) + { + imW = jmin (peer->getComponent()->getWidth(), (w + 31) & ~31); + imH = jmin (peer->getComponent()->getHeight(), (h + 31) & ~31); + + delete image; + image = new MacBitmapImage (peer->getComponent()->isOpaque() ? Image::RGB + : Image::ARGB, + imW, imH, false); + + refresh = true; + } + else if (imageX > x || imageY > y + || imageX + imW < x + w + || imageY + imH < y + h) + { + refresh = true; + } + + if (refresh) + { + regionsNeedingRepaint.clear(); + regionsNeedingRepaint.addWithoutMerging (Rectangle (x, y, imW, imH)); + imageX = x; + imageY = y; + } + + LowLevelGraphicsSoftwareRenderer context (*image); + context.setOrigin (-imageX, -imageY); + + if (context.reduceClipRegion (regionsNeedingRepaint)) + { + regionsNeedingRepaint.clear(); + + if (! peer->getComponent()->isOpaque()) + { + for (RectangleList::Iterator i (*context.getRawClipRegion()); i.next();) + { + const Rectangle& r = *i.getRectangle(); + image->clear (r.getX(), r.getY(), r.getWidth(), r.getHeight()); + } + } + + regionsNeedingRepaint.clear(); + peer->clearMaskedRegion(); + peer->handlePaint (context); + } + else + { + regionsNeedingRepaint.clear(); + } + + if (! peer->maskedRegion.isEmpty()) + { + RectangleList total (Rectangle (x, y, w, h)); + total.subtract (peer->maskedRegion); + + CGRect* rects = (CGRect*) juce_malloc (sizeof (CGRect) * total.getNumRectangles()); + int n = 0; + + for (RectangleList::Iterator i (total); i.next();) + { + const Rectangle& r = *i.getRectangle(); + rects[n].origin.x = (int) r.getX(); + rects[n].origin.y = (int) r.getY(); + rects[n].size.width = roundFloatToInt (r.getWidth()); + rects[n++].size.height = roundFloatToInt (r.getHeight()); + } + + CGContextClipToRects (cgContext, rects, n); + juce_free (rects); + } + + if (peer->isSharedWindow) + { + CGRect clip; + clip.origin.x = x; + clip.origin.y = y; + clip.size.width = jmin (w, peer->getComponent()->getWidth() - x); + clip.size.height = jmin (h, peer->getComponent()->getHeight() - y); + + CGContextClipToRect (cgContext, clip); + } + + image->blitToContext (cgContext, imageX, imageY); + } + + startTimer (3000); + } + + private: + HIViewComponentPeer* const peer; + MacBitmapImage* image; + int imageX, imageY; + RectangleList regionsNeedingRepaint; + + RepaintManager (const RepaintManager&); + const RepaintManager& operator= (const RepaintManager&); + }; + + RepaintManager* repainter; + + friend class RepaintManager; + + //============================================================================== + static OSStatus handleFrameRepaintEvent (EventHandlerCallRef myHandler, + EventRef theEvent, + void* userData) + { + // don't draw the frame.. + return noErr; + } + + //============================================================================== + OSStatus handleWindowClassEvent (EventRef theEvent) + { + switch (GetEventKind (theEvent)) + { + case kEventWindowBoundsChanged: + resizeViewToFitWindow(); + break; // allow other handlers in the event chain to also get a look at the events + + case kEventWindowBoundsChanging: + if ((styleFlags & (windowIsResizable | windowHasTitleBar)) == (windowIsResizable | windowHasTitleBar)) + { + UInt32 atts = 0; + GetEventParameter (theEvent, kEventParamAttributes, typeUInt32, + 0, sizeof (UInt32), 0, &atts); + + if ((atts & (kWindowBoundsChangeUserDrag | kWindowBoundsChangeUserResize)) != 0) + { + if (component->isCurrentlyBlockedByAnotherModalComponent()) + { + Component* const modal = Component::getCurrentlyModalComponent(); + if (modal != 0) + modal->inputAttemptWhenModal(); + } + + if ((atts & kWindowBoundsChangeUserResize) != 0 + && constrainer != 0 && ! isSharedWindow) + { + Rect current; + GetEventParameter (theEvent, kEventParamCurrentBounds, typeQDRectangle, + 0, sizeof (Rect), 0, ¤t); + + int x = current.left; + int y = current.top; + int w = current.right - current.left; + int h = current.bottom - current.top; + + const Rectangle currentRect (getComponent()->getBounds()); + + constrainer->checkBounds (x, y, w, h, currentRect, + Desktop::getInstance().getAllMonitorDisplayAreas().getBounds(), + y != currentRect.getY() && y + h == currentRect.getBottom(), + x != currentRect.getX() && x + w == currentRect.getRight(), + y == currentRect.getY() && y + h != currentRect.getBottom(), + x == currentRect.getX() && x + w != currentRect.getRight()); + + current.left = x; + current.top = y; + current.right = x + w; + current.bottom = y + h; + + SetEventParameter (theEvent, kEventParamCurrentBounds, typeQDRectangle, + sizeof (Rect), ¤t); + + return noErr; + } + } + } + break; + + case kEventWindowFocusAcquired: + keysCurrentlyDown.clear(); + + if ((! isSharedWindow) || HIViewSubtreeContainsFocus (viewRef)) + viewFocusGain(); + + break; // allow other handlers in the event chain to also get a look at the events + + case kEventWindowFocusRelinquish: + keysCurrentlyDown.clear(); + viewFocusLoss(); + + break; // allow other handlers in the event chain to also get a look at the events + + case kEventWindowCollapsed: + minimisedWindows.addIfNotAlreadyThere (windowRef); + handleMovedOrResized(); + break; // allow other handlers in the event chain to also get a look at the events + + case kEventWindowExpanded: + minimisedWindows.removeValue (windowRef); + handleMovedOrResized(); + break; // allow other handlers in the event chain to also get a look at the events + + case kEventWindowShown: + break; // allow other handlers in the event chain to also get a look at the events + + case kEventWindowClose: + if (isSharedWindow) + break; // break to let the OS delete the window + + handleUserClosingWindow(); + return noErr; // avoids letting the OS to delete the window, we'll do that ourselves. + + default: + break; + } + + return eventNotHandledErr; + } + + OSStatus handleKeyEvent (EventRef theEvent, juce_wchar textCharacter) + { + updateModifiers (theEvent); + + UniChar unicodeChars [4]; + zeromem (unicodeChars, sizeof (unicodeChars)); + GetEventParameter (theEvent, kEventParamKeyUnicodes, typeUnicodeText, 0, sizeof (unicodeChars), 0, unicodeChars); + + int keyCode = (int) (unsigned int) unicodeChars[0]; + + UInt32 rawKey = 0; + GetEventParameter (theEvent, kEventParamKeyCode, typeUInt32, 0, sizeof (UInt32), 0, &rawKey); + + if ((currentModifiers & ModifierKeys::ctrlModifier) != 0) + { + if (keyCode >= 1 && keyCode <= 26) + keyCode += ('A' - 1); + } + + static const int keyTranslations[] = + { + 0, 's', 'd', 'f', 'h', 'g', 'z', 'x', 'c', 'v', 0xa7, 'b', + 'q', 'w', 'e', 'r', 'y', 't', '1', '2', '3', '4', '6', '5', + '=', '9', '7', '-', '8', '0', ']', 'o', 'u', '[', 'i', 'p', + KeyPress::returnKey, 'l', 'j', '\'', 'k', ';', '\\', ',', '/', + 'n', 'm', '.', 0, KeyPress::spaceKey, '`', KeyPress::backspaceKey, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, KeyPress::numberPadDecimalPoint, + 0, KeyPress::numberPadMultiply, 0, KeyPress::numberPadAdd, + 0, KeyPress::numberPadDelete, 0, 0, 0, KeyPress::numberPadDivide, KeyPress::returnKey, + 0, KeyPress::numberPadSubtract, 0, 0, KeyPress::numberPadEquals, KeyPress::numberPad0, + KeyPress::numberPad1, KeyPress::numberPad2, KeyPress::numberPad3, + KeyPress::numberPad4, KeyPress::numberPad5, KeyPress::numberPad6, + KeyPress::numberPad7, 0, KeyPress::numberPad8, KeyPress::numberPad9, + 0, 0, 0, KeyPress::F5Key, KeyPress::F6Key, KeyPress::F7Key, KeyPress::F3Key, + KeyPress::F8Key, KeyPress::F9Key, 0, KeyPress::F11Key, 0, KeyPress::F13Key, + KeyPress::F16Key, KeyPress::F14Key, 0, KeyPress::F10Key, 0, KeyPress::F12Key, + 0, KeyPress::F15Key, 0, KeyPress::homeKey, KeyPress::pageUpKey, 0, KeyPress::F4Key, + KeyPress::endKey, KeyPress::F2Key, KeyPress::pageDownKey, KeyPress::F1Key, + KeyPress::leftKey, KeyPress::rightKey, KeyPress::downKey, KeyPress::upKey, 0 + }; + + if (rawKey > 0 && rawKey < numElementsInArray (keyTranslations) && keyTranslations [rawKey] != 0) + keyCode = keyTranslations [rawKey]; + else if (rawKey == 0 && textCharacter != 0) + keyCode = 'a'; + + if ((currentModifiers & (ModifierKeys::commandModifier | ModifierKeys::ctrlModifier)) != 0) + textCharacter = 0; + + static juce_wchar lastTextCharacter = 0; + + switch (GetEventKind (theEvent)) + { + case kEventRawKeyDown: + { + keysCurrentlyDown.addIfNotAlreadyThere ((void*) keyCode); + lastTextCharacter = textCharacter; + + const bool used1 = handleKeyUpOrDown(); + const bool used2 = handleKeyPress (keyCode, textCharacter); + + if (used1 || used2) + return noErr; + + break; + } + + case kEventRawKeyUp: + keysCurrentlyDown.removeValue ((void*) keyCode); + lastTextCharacter = 0; + if (handleKeyUpOrDown()) + return noErr; + + break; + + case kEventRawKeyRepeat: + if (handleKeyPress (keyCode, lastTextCharacter)) + return noErr; + + break; + + case kEventRawKeyModifiersChanged: + handleModifierKeysChange(); + break; + + default: + jassertfalse + break; + } + + return eventNotHandledErr; + } + + OSStatus handleTextInputEvent (EventRef theEvent) + { + UniChar uc; + GetEventParameter (theEvent, kEventParamTextInputSendText, typeUnicodeText, 0, sizeof (uc), 0, &uc); + + EventRef originalEvent; + GetEventParameter (theEvent, kEventParamTextInputSendKeyboardEvent, typeEventRef, 0, sizeof (originalEvent), 0, &originalEvent); + + return handleKeyEvent (originalEvent, (juce_wchar) uc); + } + + OSStatus handleMouseEvent (EventHandlerCallRef callRef, EventRef theEvent) + { + MouseCheckTimer::getInstance()->moved (this); + + ::Point where; + GetEventParameter (theEvent, kEventParamMouseLocation, typeQDPoint, 0, sizeof (::Point), 0, &where); + int x = where.h; + int y = where.v; + globalPositionToRelative (x, y); + + int64 time = getEventTime (theEvent); + + switch (GetEventKind (theEvent)) + { + case kEventMouseMoved: + MouseCheckTimer::getInstance()->hasEverHadAMouseMove = true; + updateModifiers (theEvent); + handleMouseMove (x, y, time); + break; + + case kEventMouseDragged: + updateModifiers (theEvent); + handleMouseDrag (x, y, time); + break; + + case kEventMouseDown: + { + if (! Process::isForegroundProcess()) + { + ProcessSerialNumber psn; + GetCurrentProcess (&psn); + SetFrontProcess (&psn); + + toFront (true); + } + +#if JUCE_QUICKTIME + { + long mods; + GetEventParameter (theEvent, kEventParamKeyModifiers, typeUInt32, 0, sizeof (mods), 0, &mods); + + ::Point where; + GetEventParameter (theEvent, kEventParamMouseLocation, typeQDPoint, 0, sizeof (::Point), 0, &where); + + OfferMouseClickToQuickTime (windowRef, where, EventTimeToTicks (GetEventTime (theEvent)), mods, component); + } +#endif + + if (component->isBroughtToFrontOnMouseClick() + && ! component->isCurrentlyBlockedByAnotherModalComponent()) + { + //ActivateWindow (windowRef, true); + SelectWindow (windowRef); + } + + EventMouseButton button; + GetEventParameter (theEvent, kEventParamMouseButton, typeMouseButton, 0, sizeof (EventMouseButton), 0, &button); + + // need to clear all these flags because sometimes the mac can swallow (right) mouse-up events and + // this makes a button get stuck down. Since there's no other way to tell what buttons are down, + // this is all I can think of doing about it.. + currentModifiers &= ~(ModifierKeys::leftButtonModifier | ModifierKeys::rightButtonModifier | ModifierKeys::middleButtonModifier); + + if (button == kEventMouseButtonPrimary) + currentModifiers |= ModifierKeys::leftButtonModifier; + else if (button == kEventMouseButtonSecondary) + currentModifiers |= ModifierKeys::rightButtonModifier; + else if (button == kEventMouseButtonTertiary) + currentModifiers |= ModifierKeys::middleButtonModifier; + + updateModifiers (theEvent); + + juce_currentMouseTrackingPeer = this; // puts the message dispatcher into mouse-tracking mode.. + handleMouseDown (x, y, time); + break; + } + + case kEventMouseUp: + { + const int oldModifiers = currentModifiers; + + EventMouseButton button; + GetEventParameter (theEvent, kEventParamMouseButton, typeMouseButton, 0, sizeof (EventMouseButton), 0, &button); + + if (button == kEventMouseButtonPrimary) + currentModifiers &= ~ModifierKeys::leftButtonModifier; + else if (button == kEventMouseButtonSecondary) + currentModifiers &= ~ModifierKeys::rightButtonModifier; + + updateModifiers (theEvent); + + juce_currentMouseTrackingPeer = 0; + handleMouseUp (oldModifiers, x, y, time); + break; + } + + case kEventMouseWheelMoved: + { + EventMouseWheelAxis axis; + GetEventParameter (theEvent, kEventParamMouseWheelAxis, typeMouseWheelAxis, 0, sizeof (axis), 0, &axis); + + SInt32 delta; + GetEventParameter (theEvent, kEventParamMouseWheelDelta, + typeLongInteger, 0, sizeof (delta), 0, &delta); + + updateModifiers (theEvent); + + handleMouseWheel (axis == kEventMouseWheelAxisX ? delta * 10 : 0, + axis == kEventMouseWheelAxisX ? 0 : delta * 10, + time); + + break; + } + } + + return noErr; + } + + OSStatus handleDragAndDrop (EventRef theEvent) + { + DragRef dragRef; + if (GetEventParameter (theEvent, kEventParamDragRef, typeDragRef, 0, sizeof (dragRef), 0, &dragRef) == noErr) + { + int mx, my; + component->getMouseXYRelative (mx, my); + + UInt16 numItems = 0; + if (CountDragItems (dragRef, &numItems) == noErr) + { + StringArray filenames; + + for (int i = 0; i < (int) numItems; ++i) + { + DragItemRef ref; + + if (GetDragItemReferenceNumber (dragRef, i + 1, &ref) == noErr) + { + const FlavorType flavorType = kDragFlavorTypeHFS; + + Size size = 0; + if (GetFlavorDataSize (dragRef, ref, flavorType, &size) == noErr) + { + void* data = juce_calloc (size); + + if (GetFlavorData (dragRef, ref, flavorType, data, &size, 0) == noErr) + { + HFSFlavor* f = (HFSFlavor*) data; + FSRef fsref; + + if (FSpMakeFSRef (&f->fileSpec, &fsref) == noErr) + { + const String path (PlatformUtilities::makePathFromFSRef (&fsref)); + + if (path.isNotEmpty()) + filenames.add (path); + } + } + + juce_free (data); + } + } + } + + filenames.trim(); + filenames.removeEmptyStrings(); + + if (filenames.size() > 0) + handleFilesDropped (mx, my, filenames); + } + } + + return noErr; + } + + void resizeViewToFitWindow() + { + HIRect r; + + if (isSharedWindow) + { + HIViewGetFrame (viewRef, &r); + r.size.width = (float) component->getWidth(); + r.size.height = (float) component->getHeight(); + } + else + { + r.origin.x = 0; + r.origin.y = 0; + + Rect w; + GetWindowBounds (windowRef, windowRegionToUse, &w); + + r.size.width = (float) (w.right - w.left); + r.size.height = (float) (w.bottom - w.top); + } + + HIViewSetFrame (viewRef, &r); + +#if MACOS_10_3_OR_EARLIER + component->repaint(); +#endif + } + + OSStatus hiViewDraw (EventRef theEvent) + { + CGContextRef context = 0; + GetEventParameter (theEvent, kEventParamCGContextRef, typeCGContextRef, 0, sizeof (CGContextRef), 0, &context); + + CGrafPtr oldPort; + CGrafPtr port = 0; + + if (context == 0) + { + GetEventParameter (theEvent, kEventParamGrafPort, typeGrafPtr, 0, sizeof (CGrafPtr), 0, &port); + + GetPort (&oldPort); + SetPort (port); + + if (port != 0) + QDBeginCGContext (port, &context); + + if (! isCompositingWindow) + { + Rect bounds; + GetWindowBounds (windowRef, windowRegionToUse, &bounds); + CGContextTranslateCTM (context, 0, bounds.bottom - bounds.top); + CGContextScaleCTM (context, 1.0, -1.0); + } + + if (isSharedWindow) + { + // NB - Had terrible problems trying to correctly get the position + // of this view relative to the window, and this seems wrong, but + // works better than any other method I've tried.. + HIRect hiViewPos; + HIViewGetFrame (viewRef, &hiViewPos); + CGContextTranslateCTM (context, hiViewPos.origin.x, hiViewPos.origin.y); + } + } + +#if MACOS_10_2_OR_EARLIER + RgnHandle rgn = 0; + GetEventParameter (theEvent, kEventParamRgnHandle, typeQDRgnHandle, 0, sizeof (RgnHandle), 0, &rgn); + + CGRect clip; + + // (avoid doing this in plugins because of some strange redraw bugs..) + if (rgn != 0 && JUCEApplication::getInstance() != 0) + { + Rect bounds; + GetRegionBounds (rgn, &bounds); + clip.origin.x = bounds.left; + clip.origin.y = bounds.top; + clip.size.width = bounds.right - bounds.left; + clip.size.height = bounds.bottom - bounds.top; + } + else + { + HIViewGetBounds (viewRef, &clip); + clip.origin.x = 0; + clip.origin.y = 0; + } +#else + CGRect clip (CGContextGetClipBoundingBox (context)); +#endif + + clip = CGRectIntegral (clip); + + if (clip.origin.x < 0) + { + clip.size.width += clip.origin.x; + clip.origin.x = 0; + } + + if (clip.origin.y < 0) + { + clip.size.height += clip.origin.y; + clip.origin.y = 0; + } + + if (! component->isOpaque()) + CGContextClearRect (context, clip); + + repainter->paint (context, + (int) clip.origin.x, (int) clip.origin.y, + (int) clip.size.width, (int) clip.size.height); + + if (port != 0) + { + CGContextFlush (context); + QDEndCGContext (port, &context); + + SetPort (oldPort); + } + + repainter->repaintAnyRemainingRegions(); + + return noErr; + } + + static pascal OSStatus handleWindowEvent (EventHandlerCallRef callRef, EventRef theEvent, void* userData) + { + MessageManager::delayWaitCursor(); + + HIViewComponentPeer* const peer = (HIViewComponentPeer*) userData; + + const MessageManagerLock messLock; + + if (ComponentPeer::isValidPeer (peer)) + return peer->handleWindowEventForPeer (callRef, theEvent); + + return eventNotHandledErr; + } + + OSStatus handleWindowEventForPeer (EventHandlerCallRef callRef, EventRef theEvent) + { + switch (GetEventClass (theEvent)) + { + case kEventClassMouse: + { + static HIViewComponentPeer* lastMouseDownPeer = 0; + + const UInt32 eventKind = GetEventKind (theEvent); + HIViewRef view = 0; + + if (eventKind == kEventMouseDragged) + { + view = viewRef; + } + else + { + HIViewGetViewForMouseEvent (HIViewGetRoot (windowRef), theEvent, &view); + + if (view != viewRef) + { + if ((eventKind == kEventMouseUp + || eventKind == kEventMouseExited) + && ComponentPeer::isValidPeer (lastMouseDownPeer)) + { + return lastMouseDownPeer->handleMouseEvent (callRef, theEvent); + } + + return eventNotHandledErr; + } + } + + if (eventKind == kEventMouseDown + || eventKind == kEventMouseDragged + || eventKind == kEventMouseEntered) + { + lastMouseDownPeer = this; + } + + return handleMouseEvent (callRef, theEvent); + } + break; + + case kEventClassWindow: + return handleWindowClassEvent (theEvent); + + case kEventClassKeyboard: + if (isFocused()) + return handleKeyEvent (theEvent, 0); + + break; + + case kEventClassTextInput: + if (isFocused()) + return handleTextInputEvent (theEvent); + + break; + + default: + break; + } + + return eventNotHandledErr; + } + + static pascal OSStatus hiViewEventHandler (EventHandlerCallRef myHandler, EventRef theEvent, void* userData) + { + MessageManager::delayWaitCursor(); + + const UInt32 eventKind = GetEventKind (theEvent); + const UInt32 eventClass = GetEventClass (theEvent); + + if (eventClass == kEventClassHIObject) + { + switch (eventKind) + { + case kEventHIObjectConstruct: + { + void* data = juce_calloc (sizeof (void*)); + SetEventParameter (theEvent, kEventParamHIObjectInstance, + typeVoidPtr, sizeof (void*), &data); + + return noErr; + } + + case kEventHIObjectInitialize: + GetEventParameter (theEvent, 'peer', typeVoidPtr, 0, sizeof (void*), 0, (void**) userData); + return noErr; + + case kEventHIObjectDestruct: + juce_free (userData); + return noErr; + + default: + break; + } + } + else if (eventClass == kEventClassControl) + { + HIViewComponentPeer* const peer = *(HIViewComponentPeer**) userData; + const MessageManagerLock messLock; + + if (! ComponentPeer::isValidPeer (peer)) + return eventNotHandledErr; + + switch (eventKind) + { + case kEventControlDraw: + return peer->hiViewDraw (theEvent); + + case kEventControlBoundsChanged: + { + HIRect bounds; + HIViewGetBounds (peer->viewRef, &bounds); + peer->repaint (0, 0, roundFloatToInt (bounds.size.width), roundFloatToInt (bounds.size.height)); + + peer->handleMovedOrResized(); + return noErr; + } + + case kEventControlHitTest: + { + HIPoint where; + GetEventParameter (theEvent, kEventParamMouseLocation, typeHIPoint, 0, sizeof (HIPoint), 0, &where); + + HIRect bounds; + HIViewGetBounds (peer->viewRef, &bounds); + + ControlPartCode part = kControlNoPart; + + if (CGRectContainsPoint (bounds, where)) + part = 1; + + SetEventParameter (theEvent, kEventParamControlPart, typeControlPartCode, sizeof (ControlPartCode), &part); + return noErr; + } + break; + + case kEventControlSetFocusPart: + { + ControlPartCode desiredFocus; + if (GetEventParameter (theEvent, kEventParamControlPart, typeControlPartCode, 0, sizeof (ControlPartCode), 0, &desiredFocus) != noErr) + break; + + if (desiredFocus == kControlNoPart) + peer->viewFocusLoss(); + else + peer->viewFocusGain(); + + return noErr; + } + break; + + case kEventControlDragEnter: + { +#if MACOS_10_2_OR_EARLIER + enum { kEventParamControlWouldAcceptDrop = 'cldg' }; +#endif + Boolean accept = true; + SetEventParameter (theEvent, kEventParamControlWouldAcceptDrop, typeBoolean, sizeof (accept), &accept); + return noErr; + } + + case kEventControlDragWithin: + return noErr; + + case kEventControlDragReceive: + return peer->handleDragAndDrop (theEvent); + + case kEventControlOwningWindowChanged: + return peer->ownerWindowChanged (theEvent); + +#if ! MACOS_10_2_OR_EARLIER + case kEventControlGetFrameMetrics: + { + CallNextEventHandler (myHandler, theEvent); + HIViewFrameMetrics metrics; + GetEventParameter (theEvent, kEventParamControlFrameMetrics, typeControlFrameMetrics, 0, sizeof (metrics), 0, &metrics); + metrics.top = metrics.bottom = 0; + SetEventParameter (theEvent, kEventParamControlFrameMetrics, typeControlFrameMetrics, sizeof (metrics), &metrics); + return noErr; + } +#endif + + case kEventControlInitialize: + { + UInt32 features = kControlSupportsDragAndDrop + | kControlSupportsFocus + | kControlHandlesTracking + | kControlSupportsEmbedding + | (1 << 8) /*kHIViewFeatureGetsFocusOnClick*/; + + SetEventParameter (theEvent, kEventParamControlFeatures, typeUInt32, sizeof (UInt32), &features); + return noErr; + } + + default: + break; + } + } + + return eventNotHandledErr; + } + + WindowRef createNewWindow (const int windowStyleFlags) + { + jassert (windowRef == 0); + + static ToolboxObjectClassRef customWindowClass = 0; + + if (customWindowClass == 0) + { + // Register our window class + const EventTypeSpec customTypes[] = { { kEventClassWindow, kEventWindowDrawFrame } }; + + UnsignedWide t; + Microseconds (&t); + const String randomString ((int) (t.lo & 0x7ffffff)); + const String juceWindowClassName (T("JUCEWindowClass_") + randomString); + CFStringRef juceWindowClassNameCFString = PlatformUtilities::juceStringToCFString (juceWindowClassName); + + RegisterToolboxObjectClass (juceWindowClassNameCFString, + 0, 1, customTypes, + NewEventHandlerUPP (handleFrameRepaintEvent), + 0, &customWindowClass); + + CFRelease (juceWindowClassNameCFString); + } + + Rect pos; + pos.left = getComponent()->getX(); + pos.top = getComponent()->getY(); + pos.right = getComponent()->getRight(); + pos.bottom = getComponent()->getBottom(); + + int attributes = kWindowStandardHandlerAttribute | kWindowCompositingAttribute; + if ((windowStyleFlags & windowHasDropShadow) == 0) + attributes |= kWindowNoShadowAttribute; + + if ((windowStyleFlags & windowIgnoresMouseClicks) != 0) + attributes |= kWindowIgnoreClicksAttribute; + +#if ! MACOS_10_3_OR_EARLIER + if ((windowStyleFlags & windowIsTemporary) != 0) + attributes |= kWindowDoesNotCycleAttribute; +#endif + + WindowRef newWindow = 0; + + if ((windowStyleFlags & windowHasTitleBar) == 0) + { + attributes |= kWindowCollapseBoxAttribute; + + WindowDefSpec customWindowSpec; + customWindowSpec.defType = kWindowDefObjectClass; + customWindowSpec.u.classRef = customWindowClass; + + CreateCustomWindow (&customWindowSpec, + ((windowStyleFlags & windowIsTemporary) != 0) ? kUtilityWindowClass : + (getComponent()->isAlwaysOnTop() ? kUtilityWindowClass + : kDocumentWindowClass), + attributes, + &pos, + &newWindow); + } + else + { + if ((windowStyleFlags & windowHasCloseButton) != 0) + attributes |= kWindowCloseBoxAttribute; + + if ((windowStyleFlags & windowHasMinimiseButton) != 0) + attributes |= kWindowCollapseBoxAttribute; + + if ((windowStyleFlags & windowHasMaximiseButton) != 0) + attributes |= kWindowFullZoomAttribute; + + if ((windowStyleFlags & windowIsResizable) != 0) + attributes |= kWindowResizableAttribute | kWindowLiveResizeAttribute; + + CreateNewWindow (kDocumentWindowClass, attributes, &pos, &newWindow); + } + + jassert (newWindow != 0); + if (newWindow != 0) + { + HideWindow (newWindow); + + SetAutomaticControlDragTrackingEnabledForWindow (newWindow, true); + + if (! getComponent()->isOpaque()) + SetWindowAlpha (newWindow, 0.9999999f); // to fool it into giving the window an alpha-channel + } + + return newWindow; + } + + OSStatus ownerWindowChanged (EventRef theEvent) + { + WindowRef newWindow = 0; + GetEventParameter (theEvent, kEventParamControlCurrentOwningWindow, typeWindowRef, 0, sizeof (newWindow), 0, &newWindow); + + if (windowRef != newWindow) + { + if (eventHandlerRef != 0) + { + RemoveEventHandler (eventHandlerRef); + eventHandlerRef = 0; + } + + windowRef = newWindow; + + if (windowRef != 0) + { + const EventTypeSpec eventTypes[] = + { + { kEventClassWindow, kEventWindowBoundsChanged }, + { kEventClassWindow, kEventWindowBoundsChanging }, + { kEventClassWindow, kEventWindowFocusAcquired }, + { kEventClassWindow, kEventWindowFocusRelinquish }, + { kEventClassWindow, kEventWindowCollapsed }, + { kEventClassWindow, kEventWindowExpanded }, + { kEventClassWindow, kEventWindowShown }, + { kEventClassWindow, kEventWindowClose }, + { kEventClassMouse, kEventMouseDown }, + { kEventClassMouse, kEventMouseUp }, + { kEventClassMouse, kEventMouseMoved }, + { kEventClassMouse, kEventMouseDragged }, + { kEventClassMouse, kEventMouseEntered }, + { kEventClassMouse, kEventMouseExited }, + { kEventClassMouse, kEventMouseWheelMoved }, + { kEventClassKeyboard, kEventRawKeyUp }, + { kEventClassKeyboard, kEventRawKeyRepeat }, + { kEventClassKeyboard, kEventRawKeyModifiersChanged }, + { kEventClassTextInput, kEventTextInputUnicodeForKeyEvent } + }; + + static EventHandlerUPP handleWindowEventUPP = 0; + + if (handleWindowEventUPP == 0) + handleWindowEventUPP = NewEventHandlerUPP (handleWindowEvent); + + InstallWindowEventHandler (windowRef, handleWindowEventUPP, + GetEventTypeCount (eventTypes), eventTypes, + (void*) this, (EventHandlerRef*) &eventHandlerRef); + + WindowAttributes attributes; + GetWindowAttributes (windowRef, &attributes); + +#if MACOS_10_3_OR_EARLIER + isCompositingWindow = ((attributes & kWindowCompositingAttribute) != 0); +#else + isCompositingWindow = HIViewIsCompositingEnabled (viewRef); +#endif + + MouseCheckTimer::getInstance()->resetMouseMoveChecker(); + } + } + + resizeViewToFitWindow(); + return noErr; + } + + void createNewHIView() + { + jassert (viewRef == 0); + + if (viewClassRef == 0) + { + // Register our HIView class + EventTypeSpec viewEvents[] = + { + { kEventClassHIObject, kEventHIObjectConstruct }, + { kEventClassHIObject, kEventHIObjectInitialize }, + { kEventClassHIObject, kEventHIObjectDestruct }, + { kEventClassControl, kEventControlInitialize }, + { kEventClassControl, kEventControlDraw }, + { kEventClassControl, kEventControlBoundsChanged }, + { kEventClassControl, kEventControlSetFocusPart }, + { kEventClassControl, kEventControlHitTest }, + { kEventClassControl, kEventControlDragEnter }, + { kEventClassControl, kEventControlDragWithin }, + { kEventClassControl, kEventControlDragReceive }, + { kEventClassControl, kEventControlOwningWindowChanged } + }; + + UnsignedWide t; + Microseconds (&t); + const String randomString ((int) (t.lo & 0x7ffffff)); + const String juceHiViewClassName (T("JUCEHIViewClass_") + randomString); + juceHiViewClassNameCFString = PlatformUtilities::juceStringToCFString (juceHiViewClassName); + + HIObjectRegisterSubclass (juceHiViewClassNameCFString, + kHIViewClassID, 0, + NewEventHandlerUPP (hiViewEventHandler), + GetEventTypeCount (viewEvents), + viewEvents, 0, + &viewClassRef); + } + + EventRef event; + CreateEvent (0, kEventClassHIObject, kEventHIObjectInitialize, GetCurrentEventTime(), kEventAttributeNone, &event); + + void* thisPointer = this; + SetEventParameter (event, 'peer', typeVoidPtr, sizeof (void*), &thisPointer); + + HIObjectCreate (juceHiViewClassNameCFString, event, (HIObjectRef*) &viewRef); + + SetControlDragTrackingEnabled (viewRef, true); + + if (isSharedWindow) + { + setBounds (component->getX(), component->getY(), + component->getWidth(), component->getHeight(), false); + } + } +}; + +bool juce_isHIViewCreatedByJuce (HIViewRef view) +{ + return juceHiViewClassNameCFString != 0 + && HIObjectIsOfClass ((HIObjectRef) view, juceHiViewClassNameCFString); +} + +static void trackNextMouseEvent() +{ + UInt32 mods; + MouseTrackingResult result; + ::Point where; + + if (TrackMouseLocationWithOptions ((GrafPtr) -1, 0, 0.01, //kEventDurationForever, + &where, &mods, &result) != noErr + || ! ComponentPeer::isValidPeer (juce_currentMouseTrackingPeer)) + { + juce_currentMouseTrackingPeer = 0; + return; + } + + if (result == kMouseTrackingTimedOut) + return; + +#if MACOS_10_3_OR_EARLIER + const int x = where.h - juce_currentMouseTrackingPeer->getScreenX(); + const int y = where.v - juce_currentMouseTrackingPeer->getScreenY(); +#else + HIPoint p; + p.x = where.h; + p.y = where.v; + HIPointConvert (&p, kHICoordSpaceScreenPixel, 0, + kHICoordSpaceView, ((HIViewComponentPeer*) juce_currentMouseTrackingPeer)->viewRef); + const int x = p.x; + const int y = p.y; +#endif + + if (result == kMouseTrackingMouseDragged) + { + updateModifiers (0); + juce_currentMouseTrackingPeer->handleMouseDrag (x, y, getEventTime (0)); + + if (! ComponentPeer::isValidPeer (juce_currentMouseTrackingPeer)) + { + juce_currentMouseTrackingPeer = 0; + return; + } + } + else if (result == kMouseTrackingMouseUp + || result == kMouseTrackingUserCancelled + || result == kMouseTrackingMouseMoved) + { + ComponentPeer* const oldPeer = juce_currentMouseTrackingPeer; + juce_currentMouseTrackingPeer = 0; + + if (ComponentPeer::isValidPeer (oldPeer)) + { + const int oldModifiers = currentModifiers; + currentModifiers &= ~(ModifierKeys::leftButtonModifier | ModifierKeys::rightButtonModifier | ModifierKeys::middleButtonModifier); + updateModifiers (0); + + oldPeer->handleMouseUp (oldModifiers, x, y, getEventTime (0)); + } + } +} + +bool juce_dispatchNextMessageOnSystemQueue (bool returnIfNoPendingMessages) +{ + if (juce_currentMouseTrackingPeer != 0) + trackNextMouseEvent(); + + EventRef theEvent; + + if (ReceiveNextEvent (0, 0, (returnIfNoPendingMessages) ? kEventDurationNoWait + : kEventDurationForever, + true, &theEvent) == noErr) + { + if (GetEventClass (theEvent) == kEventClassAppleEvent) + { + EventRecord eventRec; + if (ConvertEventRefToEventRecord (theEvent, &eventRec)) + AEProcessAppleEvent (&eventRec); + } + else + { + EventTargetRef theTarget = GetEventDispatcherTarget(); + SendEventToEventTarget (theEvent, theTarget); + } + + ReleaseEvent (theEvent); + return true; + } + + return false; +} + +//============================================================================== +ComponentPeer* Component::createNewPeer (int styleFlags, void* windowToAttachTo) +{ + return new HIViewComponentPeer (this, styleFlags, (HIViewRef) windowToAttachTo); +} + +//============================================================================== +void MouseCheckTimer::timerCallback() +{ + if (ModifierKeys::getCurrentModifiersRealtime().isAnyMouseButtonDown()) + return; + + if (Process::isForegroundProcess()) + { + bool stillOver = false; + int x = 0, y = 0, w = 0, h = 0; + int mx = 0, my = 0; + const bool validWindow = ComponentPeer::isValidPeer (lastPeerUnderMouse); + + if (validWindow) + { + lastPeerUnderMouse->getBounds (x, y, w, h, true); + Desktop::getMousePosition (mx, my); + + stillOver = (mx >= x && my >= y && mx < x + w && my < y + h); + + if (stillOver) + { + // check if it's over an embedded HIView + int rx = mx, ry = my; + lastPeerUnderMouse->globalPositionToRelative (rx, ry); + HIPoint hipoint; + hipoint.x = rx; + hipoint.y = ry; + + HIViewRef root; + GetRootControl ((WindowRef) lastPeerUnderMouse->getNativeHandle(), &root); + + HIViewRef hitview; + if (HIViewGetSubviewHit (root, &hipoint, true, &hitview) == noErr && hitview != 0) + { + stillOver = HIObjectIsOfClass ((HIObjectRef) hitview, juceHiViewClassNameCFString); + } + } + } + + if (! stillOver) + { + // mouse is outside our windows so set a normal cursor (only + // if we're running as an app, not a plugin) + if (JUCEApplication::getInstance() != 0) + SetThemeCursor (kThemeArrowCursor); + + if (validWindow) + lastPeerUnderMouse->handleMouseExit (mx - x, my - y, Time::currentTimeMillis()); + + if (hasEverHadAMouseMove) + stopTimer(); + } + + if ((! hasEverHadAMouseMove) && validWindow + && (mx != lastX || my != lastY)) + { + lastX = mx; + lastY = my; + + if (stillOver) + lastPeerUnderMouse->handleMouseMove (mx - x, my - y, Time::currentTimeMillis()); + } + } +} + +//============================================================================== +// called from juce_Messaging.cpp +void juce_HandleProcessFocusChange() +{ + keysCurrentlyDown.clear(); + + if (HIViewComponentPeer::isValidPeer (currentlyFocusedPeer)) + { + if (Process::isForegroundProcess()) + currentlyFocusedPeer->handleFocusGain(); + else + currentlyFocusedPeer->handleFocusLoss(); + } +} + +static bool performDrag (DragRef drag) +{ + EventRecord event; + event.what = mouseDown; + event.message = 0; + event.when = TickCount(); + + int x, y; + Desktop::getMousePosition (x, y); + event.where.h = x; + event.where.v = y; + + event.modifiers = GetCurrentKeyModifiers(); + + RgnHandle rgn = NewRgn(); + RgnHandle rgn2 = NewRgn(); + SetRectRgn (rgn, + event.where.h - 8, event.where.v - 8, + event.where.h + 8, event.where.v + 8); + CopyRgn (rgn, rgn2); + InsetRgn (rgn2, 1, 1); + DiffRgn (rgn, rgn2, rgn); + DisposeRgn (rgn2); + + bool result = TrackDrag (drag, &event, rgn) == noErr; + + DisposeRgn (rgn); + return result; +} + +bool DragAndDropContainer::performExternalDragDropOfFiles (const StringArray& files, const bool canMoveFiles) +{ + for (int i = ComponentPeer::getNumPeers(); --i >= 0;) + ComponentPeer::getPeer (i)->performAnyPendingRepaintsNow(); + + DragRef drag; + bool result = false; + + if (NewDrag (&drag) == noErr) + { + for (int i = 0; i < files.size(); ++i) + { + HFSFlavor hfsData; + + if (PlatformUtilities::makeFSSpecFromPath (&hfsData.fileSpec, files[i])) + { + FInfo info; + if (FSpGetFInfo (&hfsData.fileSpec, &info) == noErr) + { + hfsData.fileType = info.fdType; + hfsData.fileCreator = info.fdCreator; + hfsData.fdFlags = info.fdFlags; + + AddDragItemFlavor (drag, i + 1, kDragFlavorTypeHFS, &hfsData, sizeof (hfsData), 0); + result = true; + } + } + } + + SetDragAllowableActions (drag, canMoveFiles ? kDragActionAll + : kDragActionCopy, false); + + if (result) + result = performDrag (drag); + + DisposeDrag (drag); + } + + return result; +} + +bool DragAndDropContainer::performExternalDragDropOfText (const String& text) +{ + jassertfalse // not implemented! + return false; +} + + +//============================================================================== +bool Process::isForegroundProcess() throw() +{ + ProcessSerialNumber psn, front; + GetCurrentProcess (&psn); + GetFrontProcess (&front); + + Boolean b; + return (SameProcess (&psn, &front, &b) == noErr) && b; +} + +//============================================================================== +bool Desktop::canUseSemiTransparentWindows() throw() +{ + return true; +} + + +//============================================================================== +void Desktop::getMousePosition (int& x, int& y) throw() +{ + CGrafPtr currentPort; + GetPort (¤tPort); + + if (! IsValidPort (currentPort)) + { + WindowRef front = FrontWindow(); + + if (front != 0) + { + SetPortWindowPort (front); + } + else + { + x = y = 0; + return; + } + } + + ::Point p; + GetMouse (&p); + LocalToGlobal (&p); + x = p.h; + y = p.v; + + SetPort (currentPort); +} + +void Desktop::setMousePosition (int x, int y) throw() +{ + // this rubbish needs to be done around the warp call, to avoid causing a + // bizarre glitch.. + CGAssociateMouseAndMouseCursorPosition (false); + CGSetLocalEventsSuppressionInterval (0); + + CGPoint pos = { x, y }; + CGWarpMouseCursorPosition (pos); + + CGAssociateMouseAndMouseCursorPosition (true); +} + +const ModifierKeys ModifierKeys::getCurrentModifiersRealtime() throw() +{ + return ModifierKeys (currentModifiers); +} + +//============================================================================== +class ScreenSaverDefeater : public Timer, + public DeletedAtShutdown +{ +public: + ScreenSaverDefeater() throw() + { + startTimer (10000); + timerCallback(); + } + + ~ScreenSaverDefeater() + { + } + + void timerCallback() + { + if (Process::isForegroundProcess()) + UpdateSystemActivity (UsrActivity); + } +}; + +static ScreenSaverDefeater* screenSaverDefeater = 0; + +void Desktop::setScreenSaverEnabled (const bool isEnabled) throw() +{ + if (screenSaverDefeater == 0) + screenSaverDefeater = new ScreenSaverDefeater(); +} + +bool Desktop::isScreenSaverEnabled() throw() +{ + return screenSaverDefeater == 0; +} + +//============================================================================== +void juce_updateMultiMonitorInfo (Array & monitorCoords, const bool clipToWorkArea) throw() +{ + int mainMonitorIndex = 0; + CGDirectDisplayID mainDisplayID = CGMainDisplayID(); + + CGDisplayCount count = 0; + CGDirectDisplayID disps [8]; + + if (CGGetActiveDisplayList (numElementsInArray (disps), disps, &count) == noErr) + { + for (int i = 0; i < count; ++i) + { + if (mainDisplayID == disps[i]) + mainMonitorIndex = monitorCoords.size(); + + GDHandle hGDevice; + + if (clipToWorkArea + && DMGetGDeviceByDisplayID ((DisplayIDType) disps[i], &hGDevice, false) == noErr) + { + Rect rect; + GetAvailableWindowPositioningBounds (hGDevice, &rect); + + monitorCoords.add (Rectangle (rect.left, + rect.top, + rect.right - rect.left, + rect.bottom - rect.top)); + } + else + { + const CGRect r (CGDisplayBounds (disps[i])); + + monitorCoords.add (Rectangle ((int) r.origin.x, + (int) r.origin.y, + (int) r.size.width, + (int) r.size.height)); + } + } + } + + // make sure the first in the list is the main monitor + if (mainMonitorIndex > 0) + monitorCoords.swap (mainMonitorIndex, 0); + + jassert (monitorCoords.size() > 0); // xxx seems like this can happen when the screen's in power-saving mode.. + + if (monitorCoords.size() == 0) + monitorCoords.add (Rectangle (0, 0, 1024, 768)); + + //xxx need to register for display change callbacks +} + +//============================================================================== +struct CursorWrapper +{ + Cursor* cursor; + ThemeCursor themeCursor; +}; + +void* juce_createMouseCursorFromImage (const Image& image, int hotspotX, int hotspotY) throw() +{ + const int maxW = 16; + const int maxH = 16; + + const Image* im = ℑ + Image* newIm = 0; + + if (image.getWidth() > maxW || image.getHeight() > maxH) + { + im = newIm = image.createCopy (maxW, maxH); + + hotspotX = (hotspotX * maxW) / image.getWidth(); + hotspotY = (hotspotY * maxH) / image.getHeight(); + } + + Cursor* const c = new Cursor(); + c->hotSpot.h = hotspotX; + c->hotSpot.v = hotspotY; + + for (int y = 0; y < maxH; ++y) + { + c->data[y] = 0; + c->mask[y] = 0; + + for (int x = 0; x < maxW; ++x) + { + const Colour pixelColour (im->getPixelAt (15 - x, y)); + + if (pixelColour.getAlpha() > 0.5f) + { + c->mask[y] |= (1 << x); + + if (pixelColour.getBrightness() < 0.5f) + c->data[y] |= (1 << x); + } + } + + c->data[y] = CFSwapInt16BigToHost (c->data[y]); + c->mask[y] = CFSwapInt16BigToHost (c->mask[y]); + } + + if (newIm != 0) + delete newIm; + + CursorWrapper* const cw = new CursorWrapper(); + cw->cursor = c; + cw->themeCursor = kThemeArrowCursor; + return (void*) cw; +} + +static void* cursorFromData (const unsigned char* data, const int size, int hx, int hy) throw() +{ + Image* const im = ImageFileFormat::loadFrom ((const char*) data, size); + jassert (im != 0); + void* curs = juce_createMouseCursorFromImage (*im, hx, hy); + delete im; + return curs; +} + +const unsigned int kSpecialNoCursor = 'nocr'; + +void* juce_createStandardMouseCursor (MouseCursor::StandardCursorType type) throw() +{ + ThemeCursor id = kThemeArrowCursor; + + switch (type) + { + case MouseCursor::NormalCursor: + id = kThemeArrowCursor; + break; + + case MouseCursor::NoCursor: + id = kSpecialNoCursor; + break; + + case MouseCursor::DraggingHandCursor: + { + static const unsigned char cursData[] = {71,73,70,56,57,97,16,0,16,0,145,2,0,0,0,0,255,255,255,0, + 0,0,0,0,0,33,249,4,1,0,0,2,0,44,0,0,0,0,16,0, + 16,0,0,2,52,148,47,0,200,185,16,130,90,12,74,139,107,84,123,39, + 132,117,151,116,132,146,248,60,209,138,98,22,203,114,34,236,37,52,77,217, + 247,154,191,119,110,240,193,128,193,95,163,56,60,234,98,135,2,0,59 }; + const int cursDataSize = 99; + + return cursorFromData (cursData, cursDataSize, 8, 8); + } + break; + + case MouseCursor::CopyingCursor: + id = kThemeCopyArrowCursor; + break; + + case MouseCursor::WaitCursor: + id = kThemeWatchCursor; + break; + + case MouseCursor::IBeamCursor: + id = kThemeIBeamCursor; + break; + + case MouseCursor::PointingHandCursor: + id = kThemePointingHandCursor; + break; + + case MouseCursor::LeftRightResizeCursor: + case MouseCursor::LeftEdgeResizeCursor: + case MouseCursor::RightEdgeResizeCursor: + { + static const unsigned char cursData[] = {71,73,70,56,57,97,16,0,16,0,145,0,0,255,255,255,0,0,0,255, + 255,255,0,0,0,33,249,4,1,0,0,2,0,44,0,0,0,0,16,0, + 16,0,0,2,38,148,143,169,203,237,15,19,0,106,202,64,111,22,32,224, + 9,78,30,213,121,230,121,146,99,8,142,71,183,189,152,20,27,86,132,231, + 58,83,0,0,59 }; + const int cursDataSize = 85; + + return cursorFromData (cursData, cursDataSize, 8, 8); + } + + case MouseCursor::UpDownResizeCursor: + case MouseCursor::TopEdgeResizeCursor: + case MouseCursor::BottomEdgeResizeCursor: + { + static const unsigned char cursData[] = {71,73,70,56,57,97,16,0,16,0,145,0,0,255,255,255,0,0,0,255, + 255,255,0,0,0,33,249,4,1,0,0,2,0,44,0,0,0,0,16,0, + 16,0,0,2,38,148,111,128,187,16,202,90,152,48,10,55,169,189,192,245, + 106,121,27,34,142,201,99,158,224,86,154,109,216,61,29,155,105,180,61,190, + 121,84,0,0,59 }; + const int cursDataSize = 85; + + return cursorFromData (cursData, cursDataSize, 8, 8); + } + + case MouseCursor::TopLeftCornerResizeCursor: + case MouseCursor::BottomRightCornerResizeCursor: + { + static const unsigned char cursData[] = {71,73,70,56,57,97,16,0,16,0,145,0,0,255,255,255,0,0,0,255, + 255,255,0,0,0,33,249,4,1,0,0,2,0,44,0,0,0,0,16,0, + 16,0,0,2,43,132,15,162,187,16,255,18,99,14,202,217,44,158,213,221, + 237,9,225,38,94,35,73,5,31,42,170,108,106,174,112,43,195,209,91,185, + 104,174,131,208,77,66,28,10,0,59 }; + const int cursDataSize = 90; + + return cursorFromData (cursData, cursDataSize, 8, 8); + } + + case MouseCursor::TopRightCornerResizeCursor: + case MouseCursor::BottomLeftCornerResizeCursor: + { + static const unsigned char cursData[] = {71,73,70,56,57,97,16,0,16,0,145,0,0,255,255,255,0,0,0,255, + 255,255,0,0,0,33,249,4,1,0,0,2,0,44,0,0,0,0,16,0, + 16,0,0,2,45,148,127,160,11,232,16,98,108,14,65,73,107,194,122,223, + 92,65,141,216,145,134,162,153,221,25,128,73,166,62,173,16,203,237,188,94, + 120,46,237,105,239,123,48,80,157,2,0,59 }; + const int cursDataSize = 92; + + return cursorFromData (cursData, cursDataSize, 8, 8); + } + + case MouseCursor::UpDownLeftRightResizeCursor: + { + static const unsigned char cursData[] = {71,73,70,56,57,97,15,0,15,0,145,0,0,0,0,0,255,255,255,0, + 128,128,255,255,255,33,249,4,1,0,0,3,0,44,0,0,0,0,15,0, + 15,0,0,2,46,156,63,129,139,1,202,26,152,48,186,73,109,114,65,85, + 195,37,143,88,93,29,215,101,23,198,178,30,149,158,25,56,134,97,179,61, + 158,213,126,203,234,99,220,34,56,70,1,0,59,0,0 }; + const int cursDataSize = 93; + + return cursorFromData (cursData, cursDataSize, 7, 7); + } + + case MouseCursor::CrosshairCursor: + id = kThemeCrossCursor; + break; + } + + CursorWrapper* cw = new CursorWrapper(); + cw->cursor = 0; + cw->themeCursor = id; + + return (void*) cw; +} + +void juce_deleteMouseCursor (void* const cursorHandle, const bool isStandard) throw() +{ + CursorWrapper* const cw = (CursorWrapper*) cursorHandle; + + if (cw != 0) + { + delete cw->cursor; + delete cw; + } +} + +void MouseCursor::showInAllWindows() const throw() +{ + showInWindow (0); +} + +void MouseCursor::showInWindow (ComponentPeer*) const throw() +{ + const CursorWrapper* const cw = (CursorWrapper*) getHandle(); + + if (cw != 0) + { + static bool isCursorHidden = false; + static bool showingWaitCursor = false; + const bool shouldShowWaitCursor = (cw->themeCursor == kThemeWatchCursor); + const bool shouldHideCursor = (cw->themeCursor == kSpecialNoCursor); + + if (shouldShowWaitCursor != showingWaitCursor + && Process::isForegroundProcess()) + { + showingWaitCursor = shouldShowWaitCursor; + QDDisplayWaitCursor (shouldShowWaitCursor); + } + + if (shouldHideCursor != isCursorHidden) + { + isCursorHidden = shouldHideCursor; + + if (shouldHideCursor) + HideCursor(); + else + ShowCursor(); + } + + if (cw->cursor != 0) + SetCursor (cw->cursor); + else if (! (shouldShowWaitCursor || shouldHideCursor)) + SetThemeCursor (cw->themeCursor); + } +} + +//============================================================================== +Image* juce_createIconForFile (const File& file) +{ + return 0; +} + + +//============================================================================== +class MainMenuHandler; +static MainMenuHandler* mainMenu = 0; + +class MainMenuHandler : private MenuBarModelListener, + private DeletedAtShutdown +{ +public: + MainMenuHandler() throw() + : currentModel (0) + { + } + + ~MainMenuHandler() throw() + { + setMenu (0); + + jassert (mainMenu == this); + mainMenu = 0; + } + + void setMenu (MenuBarModel* const newMenuBarModel) throw() + { + if (currentModel != newMenuBarModel) + { + if (currentModel != 0) + currentModel->removeListener (this); + + currentModel = newMenuBarModel; + + if (currentModel != 0) + currentModel->addListener (this); + + menuBarItemsChanged (0); + } + } + + void menuBarItemsChanged (MenuBarModel*) + { + ClearMenuBar(); + + if (currentModel != 0) + { + int id = 1000; + const StringArray menuNames (currentModel->getMenuBarNames()); + + for (int i = 0; i < menuNames.size(); ++i) + { + const PopupMenu menu (currentModel->getMenuForIndex (i, menuNames [i])); + + MenuRef m = createMenu (menu, menuNames [i], id, i); + + InsertMenu (m, 0); + CFRelease (m); + } + } + } + + void menuCommandInvoked (MenuBarModel*, const ApplicationCommandTarget::InvocationInfo& info) + { + MenuRef menu = 0; + MenuItemIndex index = 0; + GetIndMenuItemWithCommandID (0, info.commandID, 1, &menu, &index); + + FlashMenuBar (GetMenuID (menu)); + FlashMenuBar (GetMenuID (menu)); + } + + void invoke (const int id, ApplicationCommandManager* const commandManager, const int topLevelIndex) const + { + if (currentModel != 0) + { + if (commandManager != 0) + { + ApplicationCommandTarget::InvocationInfo info (id); + info.invocationMethod = ApplicationCommandTarget::InvocationInfo::fromMenu; + + commandManager->invoke (info, true); + } + + currentModel->menuItemSelected (id, topLevelIndex); + } + } + + MenuBarModel* currentModel; + +private: + static MenuRef createMenu (const PopupMenu menu, + const String& menuName, + int& id, + const int topLevelIndex) + { + MenuRef m = 0; + + if (CreateNewMenu (id++, kMenuAttrAutoDisable, &m) == noErr) + { + CFStringRef name = PlatformUtilities::juceStringToCFString (menuName); + SetMenuTitleWithCFString (m, name); + CFRelease (name); + + PopupMenu::MenuItemIterator iter (menu); + + while (iter.next()) + { + MenuItemIndex index = 0; + + int flags = kMenuAttrAutoDisable | kMenuItemAttrIgnoreMeta | kMenuItemAttrNotPreviousAlternate; + if (! iter.isEnabled) + flags |= kMenuItemAttrDisabled; + + CFStringRef text = PlatformUtilities::juceStringToCFString (iter.itemName.upToFirstOccurrenceOf (T(""), false, true)); + + if (iter.isSeparator) + { + AppendMenuItemTextWithCFString (m, text, kMenuItemAttrSeparator, 0, &index); + } + else if (iter.isSectionHeader) + { + AppendMenuItemTextWithCFString (m, text, kMenuItemAttrSectionHeader, 0, &index); + } + else if (iter.subMenu != 0) + { + AppendMenuItemTextWithCFString (m, text, flags, id++, &index); + + MenuRef sub = createMenu (*iter.subMenu, iter.itemName, id, topLevelIndex); + SetMenuItemHierarchicalMenu (m, index, sub); + CFRelease (sub); + } + else + { + AppendMenuItemTextWithCFString (m, text, flags, iter.itemId, &index); + + if (iter.isTicked) + CheckMenuItem (m, index, true); + + SetMenuItemProperty (m, index, 'juce', 'apcm', sizeof (void*), &iter.commandManager); + SetMenuItemProperty (m, index, 'juce', 'topi', sizeof (int), &topLevelIndex); + + if (iter.commandManager != 0) + { + const Array keyPresses (iter.commandManager->getKeyMappings() + ->getKeyPressesAssignedToCommand (iter.itemId)); + + if (keyPresses.size() > 0) + { + const KeyPress& kp = keyPresses.getUnchecked(0); + int mods = 0; + + if (kp.getModifiers().isShiftDown()) + mods |= kMenuShiftModifier; + if (kp.getModifiers().isCtrlDown()) + mods |= kMenuControlModifier; + if (kp.getModifiers().isAltDown()) + mods |= kMenuOptionModifier; + if (! kp.getModifiers().isCommandDown()) + mods |= kMenuNoCommandModifier; + + tchar keyCode = (tchar) kp.getKeyCode(); + + if (kp.getKeyCode() >= KeyPress::numberPad0 + && kp.getKeyCode() <= KeyPress::numberPad9) + { + keyCode = (tchar) ((T('0') - KeyPress::numberPad0) + kp.getKeyCode()); + } + + SetMenuItemCommandKey (m, index, true, 255); + + if (CharacterFunctions::isLetterOrDigit (keyCode) + || CharacterFunctions::indexOfChar (T(",.;/\\'[]=-+_<>?{}\":"), keyCode, false) >= 0) + { + SetMenuItemModifiers (m, index, mods); + SetMenuItemCommandKey (m, index, false, CharacterFunctions::toUpperCase (keyCode)); + } + else + { + const SInt16 glyph = getGlyphForKeyCode (kp.getKeyCode()); + + if (glyph != 0) + { + SetMenuItemModifiers (m, index, mods); + SetMenuItemKeyGlyph (m, index, glyph); + } + } + + // if we set the key glyph to be a text char, and enable virtual + // key triggering, it stops the menu automatically triggering the callback + ChangeMenuItemAttributes (m, index, kMenuItemAttrUseVirtualKey, 0); + } + } + } + + CFRelease (text); + } + } + + return m; + } + + static SInt16 getGlyphForKeyCode (const int keyCode) throw() + { + if (keyCode == KeyPress::spaceKey) + return kMenuSpaceGlyph; + else if (keyCode == KeyPress::returnKey) + return kMenuReturnGlyph; + else if (keyCode == KeyPress::escapeKey) + return kMenuEscapeGlyph; + else if (keyCode == KeyPress::backspaceKey) + return kMenuDeleteLeftGlyph; + else if (keyCode == KeyPress::leftKey) + return kMenuLeftArrowGlyph; + else if (keyCode == KeyPress::rightKey) + return kMenuRightArrowGlyph; + else if (keyCode == KeyPress::upKey) + return kMenuUpArrowGlyph; + else if (keyCode == KeyPress::downKey) + return kMenuDownArrowGlyph; + else if (keyCode == KeyPress::pageUpKey) + return kMenuPageUpGlyph; + else if (keyCode == KeyPress::pageDownKey) + return kMenuPageDownGlyph; + else if (keyCode == KeyPress::endKey) + return kMenuSoutheastArrowGlyph; + else if (keyCode == KeyPress::homeKey) + return kMenuNorthwestArrowGlyph; + else if (keyCode == KeyPress::deleteKey) + return kMenuDeleteRightGlyph; + else if (keyCode == KeyPress::tabKey) + return kMenuTabRightGlyph; + else if (keyCode == KeyPress::F1Key) + return kMenuF1Glyph; + else if (keyCode == KeyPress::F2Key) + return kMenuF2Glyph; + else if (keyCode == KeyPress::F3Key) + return kMenuF3Glyph; + else if (keyCode == KeyPress::F4Key) + return kMenuF4Glyph; + else if (keyCode == KeyPress::F5Key) + return kMenuF5Glyph; + else if (keyCode == KeyPress::F6Key) + return kMenuF6Glyph; + else if (keyCode == KeyPress::F7Key) + return kMenuF7Glyph; + else if (keyCode == KeyPress::F8Key) + return kMenuF8Glyph; + else if (keyCode == KeyPress::F9Key) + return kMenuF9Glyph; + else if (keyCode == KeyPress::F10Key) + return kMenuF10Glyph; + else if (keyCode == KeyPress::F11Key) + return kMenuF11Glyph; + else if (keyCode == KeyPress::F12Key) + return kMenuF12Glyph; + else if (keyCode == KeyPress::F13Key) + return kMenuF13Glyph; + else if (keyCode == KeyPress::F14Key) + return kMenuF14Glyph; + else if (keyCode == KeyPress::F15Key) + return kMenuF15Glyph; + + return 0; + } +}; + +void MenuBarModel::setMacMainMenu (MenuBarModel* newMenuBarModel) throw() +{ + if (getMacMainMenu() != newMenuBarModel) + { + if (newMenuBarModel == 0) + { + delete mainMenu; + jassert (mainMenu == 0); // should be zeroed in the destructor + } + else + { + if (mainMenu == 0) + mainMenu = new MainMenuHandler(); + + mainMenu->setMenu (newMenuBarModel); + } + } +} + +MenuBarModel* MenuBarModel::getMacMainMenu() throw() +{ + return mainMenu != 0 ? mainMenu->currentModel : 0; +} + +// these functions are called externally from the message handling code +void juce_MainMenuAboutToBeUsed() +{ + // force an update of the items just before the menu appears.. + if (mainMenu != 0) + mainMenu->menuBarItemsChanged (0); +} + +void juce_InvokeMainMenuCommand (const HICommand& command) +{ + if (mainMenu != 0) + { + ApplicationCommandManager* commandManager = 0; + int topLevelIndex = 0; + + if (GetMenuItemProperty (command.menu.menuRef, command.menu.menuItemIndex, + 'juce', 'apcm', sizeof (commandManager), 0, &commandManager) == noErr + && GetMenuItemProperty (command.menu.menuRef, command.menu.menuItemIndex, + 'juce', 'topi', sizeof (topLevelIndex), 0, &topLevelIndex) == noErr) + { + mainMenu->invoke (command.commandID, commandManager, topLevelIndex); + } + } +} + +//============================================================================== +void PlatformUtilities::beep() +{ + SysBeep (30); +} + +//============================================================================== +void SystemClipboard::copyTextToClipboard (const String& text) throw() +{ + ClearCurrentScrap(); + ScrapRef ref; + GetCurrentScrap (&ref); + + const int len = text.length(); + const int numBytes = sizeof (UniChar) * len; + UniChar* const temp = (UniChar*) juce_calloc (numBytes); + + for (int i = 0; i < len; ++i) + temp[i] = (UniChar) text[i]; + + PutScrapFlavor (ref, + kScrapFlavorTypeUnicode, + kScrapFlavorMaskNone, + numBytes, + temp); + + juce_free (temp); +} + +const String SystemClipboard::getTextFromClipboard() throw() +{ + String result; + + ScrapRef ref; + GetCurrentScrap (&ref); + Size size = 0; + + if (GetScrapFlavorSize (ref, kScrapFlavorTypeUnicode, &size) == noErr + && size > 0) + { + void* const data = juce_calloc (size + 8); + + if (GetScrapFlavorData (ref, kScrapFlavorTypeUnicode, &size, data) == noErr) + { + result = PlatformUtilities::convertUTF16ToString ((UniChar*) data); + } + + juce_free (data); + } + + return result; +} + + +//============================================================================== +bool AlertWindow::showNativeDialogBox (const String& title, + const String& bodyText, + bool isOkCancel) +{ + Str255 tit, txt; + PlatformUtilities::copyToStr255 (tit, title); + PlatformUtilities::copyToStr255 (txt, bodyText); + + AlertStdAlertParamRec ar; + ar.movable = true; + ar.helpButton = false; + ar.filterProc = 0; + ar.defaultText = (const unsigned char*)-1; + ar.cancelText = (const unsigned char*)((isOkCancel) ? -1 : 0); + ar.otherText = 0; + ar.defaultButton = kAlertStdAlertOKButton; + ar.cancelButton = 0; + ar.position = kWindowDefaultPosition; + + SInt16 result; + StandardAlert (kAlertNoteAlert, tit, txt, &ar, &result); + return result == kAlertStdAlertOKButton; +} + +//============================================================================== +const int KeyPress::spaceKey = ' '; +const int KeyPress::returnKey = kReturnCharCode; +const int KeyPress::escapeKey = kEscapeCharCode; +const int KeyPress::backspaceKey = kBackspaceCharCode; +const int KeyPress::leftKey = kLeftArrowCharCode; +const int KeyPress::rightKey = kRightArrowCharCode; +const int KeyPress::upKey = kUpArrowCharCode; +const int KeyPress::downKey = kDownArrowCharCode; +const int KeyPress::pageUpKey = kPageUpCharCode; +const int KeyPress::pageDownKey = kPageDownCharCode; +const int KeyPress::endKey = kEndCharCode; +const int KeyPress::homeKey = kHomeCharCode; +const int KeyPress::deleteKey = kDeleteCharCode; +const int KeyPress::insertKey = -1; +const int KeyPress::tabKey = kTabCharCode; +const int KeyPress::F1Key = 0x10110; +const int KeyPress::F2Key = 0x10111; +const int KeyPress::F3Key = 0x10112; +const int KeyPress::F4Key = 0x10113; +const int KeyPress::F5Key = 0x10114; +const int KeyPress::F6Key = 0x10115; +const int KeyPress::F7Key = 0x10116; +const int KeyPress::F8Key = 0x10117; +const int KeyPress::F9Key = 0x10118; +const int KeyPress::F10Key = 0x10119; +const int KeyPress::F11Key = 0x1011a; +const int KeyPress::F12Key = 0x1011b; +const int KeyPress::F13Key = 0x1011c; +const int KeyPress::F14Key = 0x1011d; +const int KeyPress::F15Key = 0x1011e; +const int KeyPress::F16Key = 0x1011f; +const int KeyPress::numberPad0 = 0x30020; +const int KeyPress::numberPad1 = 0x30021; +const int KeyPress::numberPad2 = 0x30022; +const int KeyPress::numberPad3 = 0x30023; +const int KeyPress::numberPad4 = 0x30024; +const int KeyPress::numberPad5 = 0x30025; +const int KeyPress::numberPad6 = 0x30026; +const int KeyPress::numberPad7 = 0x30027; +const int KeyPress::numberPad8 = 0x30028; +const int KeyPress::numberPad9 = 0x30029; +const int KeyPress::numberPadAdd = 0x3002a; +const int KeyPress::numberPadSubtract = 0x3002b; +const int KeyPress::numberPadMultiply = 0x3002c; +const int KeyPress::numberPadDivide = 0x3002d; +const int KeyPress::numberPadSeparator = 0x3002e; +const int KeyPress::numberPadDecimalPoint = 0x3002f; +const int KeyPress::numberPadEquals = 0x30030; +const int KeyPress::numberPadDelete = 0x30031; +const int KeyPress::playKey = 0x30000; +const int KeyPress::stopKey = 0x30001; +const int KeyPress::fastForwardKey = 0x30002; +const int KeyPress::rewindKey = 0x30003; + + +//============================================================================== +AppleRemoteDevice::AppleRemoteDevice() + : device (0), + queue (0), + remoteId (0) +{ +} + +AppleRemoteDevice::~AppleRemoteDevice() +{ + stop(); +} + +static io_object_t getAppleRemoteDevice() throw() +{ + CFMutableDictionaryRef dict = IOServiceMatching ("AppleIRController"); + + io_iterator_t iter = 0; + io_object_t iod = 0; + + if (IOServiceGetMatchingServices (kIOMasterPortDefault, dict, &iter) == kIOReturnSuccess + && iter != 0) + { + iod = IOIteratorNext (iter); + } + + IOObjectRelease (iter); + return iod; +} + +static bool createAppleRemoteInterface (io_object_t iod, void** device) throw() +{ + jassert (*device == 0); + io_name_t classname; + + if (IOObjectGetClass (iod, classname) == kIOReturnSuccess) + { + IOCFPlugInInterface** cfPlugInInterface = 0; + SInt32 score = 0; + + if (IOCreatePlugInInterfaceForService (iod, + kIOHIDDeviceUserClientTypeID, + kIOCFPlugInInterfaceID, + &cfPlugInInterface, + &score) == kIOReturnSuccess) + { + HRESULT hr = (*cfPlugInInterface)->QueryInterface (cfPlugInInterface, + CFUUIDGetUUIDBytes (kIOHIDDeviceInterfaceID), + device); + + (void) hr; + + (*cfPlugInInterface)->Release (cfPlugInInterface); + } + } + + return *device != 0; +} + +bool AppleRemoteDevice::start (const bool inExclusiveMode) throw() +{ + if (queue != 0) + return true; + + stop(); + + bool result = false; + io_object_t iod = getAppleRemoteDevice(); + + if (iod != 0) + { + if (createAppleRemoteInterface (iod, &device) && open (inExclusiveMode)) + result = true; + else + stop(); + + IOObjectRelease (iod); + } + + return result; +} + +void AppleRemoteDevice::stop() throw() +{ + if (queue != 0) + { + (*(IOHIDQueueInterface**) queue)->stop ((IOHIDQueueInterface**) queue); + (*(IOHIDQueueInterface**) queue)->dispose ((IOHIDQueueInterface**) queue); + (*(IOHIDQueueInterface**) queue)->Release ((IOHIDQueueInterface**) queue); + queue = 0; + } + + if (device != 0) + { + (*(IOHIDDeviceInterface**) device)->close ((IOHIDDeviceInterface**) device); + (*(IOHIDDeviceInterface**) device)->Release ((IOHIDDeviceInterface**) device); + device = 0; + } +} + bool AppleRemoteDevice::isActive() const throw() { return queue != 0; } - -static void appleRemoteQueueCallback (void* const target, const IOReturn result, void*, void*) -{ - if (result == kIOReturnSuccess) - ((AppleRemoteDevice*) target)->handleCallbackInternal(); -} - -bool AppleRemoteDevice::open (const bool openInExclusiveMode) throw() -{ -#if ! MACOS_10_2_OR_EARLIER - Array cookies; - - CFArrayRef elements; - IOHIDDeviceInterface122** const device122 = (IOHIDDeviceInterface122**) device; - - if ((*device122)->copyMatchingElements (device122, 0, &elements) != kIOReturnSuccess) - return false; - - for (int i = 0; i < CFArrayGetCount (elements); ++i) - { - CFDictionaryRef element = (CFDictionaryRef) CFArrayGetValueAtIndex (elements, i); - - // get the cookie - CFTypeRef object = CFDictionaryGetValue (element, CFSTR (kIOHIDElementCookieKey)); - - if (object == 0 || CFGetTypeID (object) != CFNumberGetTypeID()) - continue; - - long number; - if (! CFNumberGetValue ((CFNumberRef) object, kCFNumberLongType, &number)) - continue; - - cookies.add ((int) number); - } - - CFRelease (elements); - - if ((*(IOHIDDeviceInterface**) device) - ->open ((IOHIDDeviceInterface**) device, - openInExclusiveMode ? kIOHIDOptionsTypeSeizeDevice - : kIOHIDOptionsTypeNone) == KERN_SUCCESS) - { - queue = (*(IOHIDDeviceInterface**) device)->allocQueue ((IOHIDDeviceInterface**) device); - - if (queue != 0) - { - (*(IOHIDQueueInterface**) queue)->create ((IOHIDQueueInterface**) queue, 0, 12); - - for (int i = 0; i < cookies.size(); ++i) - { - IOHIDElementCookie cookie = (IOHIDElementCookie) cookies.getUnchecked(i); - (*(IOHIDQueueInterface**) queue)->addElement ((IOHIDQueueInterface**) queue, cookie, 0); - } - - CFRunLoopSourceRef eventSource; - - if ((*(IOHIDQueueInterface**) queue) - ->createAsyncEventSource ((IOHIDQueueInterface**) queue, &eventSource) == KERN_SUCCESS) - { - if ((*(IOHIDQueueInterface**) queue)->setEventCallout ((IOHIDQueueInterface**) queue, - appleRemoteQueueCallback, this, 0) == KERN_SUCCESS) - { - CFRunLoopAddSource (CFRunLoopGetCurrent(), eventSource, kCFRunLoopDefaultMode); - - (*(IOHIDQueueInterface**) queue)->start ((IOHIDQueueInterface**) queue); - - return true; - } - } - } - } -#endif - - return false; -} - -void AppleRemoteDevice::handleCallbackInternal() -{ - int totalValues = 0; - AbsoluteTime nullTime = { 0, 0 }; - char cookies [12]; - int numCookies = 0; - - while (numCookies < numElementsInArray (cookies)) - { - IOHIDEventStruct e; - - if ((*(IOHIDQueueInterface**) queue)->getNextEvent ((IOHIDQueueInterface**) queue, &e, nullTime, 0) != kIOReturnSuccess) - break; - - if ((int) e.elementCookie == 19) - { - remoteId = e.value; - buttonPressed (switched, false); - } - else - { - totalValues += e.value; - cookies [numCookies++] = (char) (pointer_sized_int) e.elementCookie; - } - } - - cookies [numCookies++] = 0; - - static const char buttonPatterns[] = - { - 14, 7, 6, 5, 14, 7, 6, 5, 0, - 14, 8, 6, 5, 14, 8, 6, 5, 0, - 14, 12, 11, 6, 5, 0, - 14, 13, 11, 6, 5, 0, - 14, 9, 6, 5, 14, 9, 6, 5, 0, - 14, 10, 6, 5, 14, 10, 6, 5, 0, - 14, 6, 5, 4, 2, 0, - 14, 6, 5, 3, 2, 0, - 14, 6, 5, 14, 6, 5, 0, - 18, 14, 6, 5, 18, 14, 6, 5, 0, - 19, 0 - }; - - int buttonNum = (int) menuButton; - int i = 0; - - while (i < numElementsInArray (buttonPatterns)) - { - if (strcmp (cookies, buttonPatterns + i) == 0) - { - buttonPressed ((ButtonType) buttonNum, totalValues > 0); - break; - } - - i += strlen (buttonPatterns + i) + 1; - ++buttonNum; - } -} - - -//============================================================================== -#if JUCE_OPENGL - -struct OpenGLContextInfo -{ - AGLContext renderContext; -}; - -void* juce_createOpenGLContext (OpenGLComponent* component, void* sharedContext) -{ - jassert (component != 0); - - HIViewComponentPeer* const peer = dynamic_cast (component->getTopLevelComponent()->getPeer()); - - if (peer == 0) - return 0; - - OpenGLContextInfo* const oc = new OpenGLContextInfo(); - - GLint attrib[] = { AGL_RGBA, AGL_DOUBLEBUFFER, - AGL_RED_SIZE, 8, - AGL_ALPHA_SIZE, 8, - AGL_DEPTH_SIZE, 24, - AGL_CLOSEST_POLICY, AGL_NO_RECOVERY, - AGL_SAMPLE_BUFFERS_ARB, 1, - AGL_SAMPLES_ARB, 4, - AGL_NONE }; - - oc->renderContext = aglCreateContext (aglChoosePixelFormat (0, 0, attrib), - (sharedContext != 0) ? ((OpenGLContextInfo*) sharedContext)->renderContext - : 0); - - aglSetDrawable (oc->renderContext, - GetWindowPort (peer->windowRef)); - - return oc; -} - -void juce_updateOpenGLWindowPos (void* context, Component* owner, Component* topComp) -{ - jassert (context != 0); - OpenGLContextInfo* const oc = (OpenGLContextInfo*) context; - - GLint bufferRect[4]; - - bufferRect[0] = owner->getScreenX() - topComp->getScreenX(); - bufferRect[1] = topComp->getHeight() - (owner->getHeight() + owner->getScreenY() - topComp->getScreenY()); - bufferRect[2] = owner->getWidth(); - bufferRect[3] = owner->getHeight(); - - aglSetInteger (oc->renderContext, AGL_BUFFER_RECT, bufferRect); - aglEnable (oc->renderContext, AGL_BUFFER_RECT); -} - -void juce_deleteOpenGLContext (void* context) -{ - OpenGLContextInfo* const oc = (OpenGLContextInfo*) context; - - aglDestroyContext (oc->renderContext); - - delete oc; -} - -bool juce_makeOpenGLContextCurrent (void* context) -{ - OpenGLContextInfo* const oc = (OpenGLContextInfo*) context; - - return aglSetCurrentContext ((oc != 0) ? oc->renderContext : 0); -} - -void juce_swapOpenGLBuffers (void* context) -{ - OpenGLContextInfo* const oc = (OpenGLContextInfo*) context; - - if (oc != 0) - aglSwapBuffers (oc->renderContext); -} - -void juce_repaintOpenGLWindow (void* context) -{ -} - -#endif - -END_JUCE_NAMESPACE + +static void appleRemoteQueueCallback (void* const target, const IOReturn result, void*, void*) +{ + if (result == kIOReturnSuccess) + ((AppleRemoteDevice*) target)->handleCallbackInternal(); +} + +bool AppleRemoteDevice::open (const bool openInExclusiveMode) throw() +{ +#if ! MACOS_10_2_OR_EARLIER + Array cookies; + + CFArrayRef elements; + IOHIDDeviceInterface122** const device122 = (IOHIDDeviceInterface122**) device; + + if ((*device122)->copyMatchingElements (device122, 0, &elements) != kIOReturnSuccess) + return false; + + for (int i = 0; i < CFArrayGetCount (elements); ++i) + { + CFDictionaryRef element = (CFDictionaryRef) CFArrayGetValueAtIndex (elements, i); + + // get the cookie + CFTypeRef object = CFDictionaryGetValue (element, CFSTR (kIOHIDElementCookieKey)); + + if (object == 0 || CFGetTypeID (object) != CFNumberGetTypeID()) + continue; + + long number; + if (! CFNumberGetValue ((CFNumberRef) object, kCFNumberLongType, &number)) + continue; + + cookies.add ((int) number); + } + + CFRelease (elements); + + if ((*(IOHIDDeviceInterface**) device) + ->open ((IOHIDDeviceInterface**) device, + openInExclusiveMode ? kIOHIDOptionsTypeSeizeDevice + : kIOHIDOptionsTypeNone) == KERN_SUCCESS) + { + queue = (*(IOHIDDeviceInterface**) device)->allocQueue ((IOHIDDeviceInterface**) device); + + if (queue != 0) + { + (*(IOHIDQueueInterface**) queue)->create ((IOHIDQueueInterface**) queue, 0, 12); + + for (int i = 0; i < cookies.size(); ++i) + { + IOHIDElementCookie cookie = (IOHIDElementCookie) cookies.getUnchecked(i); + (*(IOHIDQueueInterface**) queue)->addElement ((IOHIDQueueInterface**) queue, cookie, 0); + } + + CFRunLoopSourceRef eventSource; + + if ((*(IOHIDQueueInterface**) queue) + ->createAsyncEventSource ((IOHIDQueueInterface**) queue, &eventSource) == KERN_SUCCESS) + { + if ((*(IOHIDQueueInterface**) queue)->setEventCallout ((IOHIDQueueInterface**) queue, + appleRemoteQueueCallback, this, 0) == KERN_SUCCESS) + { + CFRunLoopAddSource (CFRunLoopGetCurrent(), eventSource, kCFRunLoopDefaultMode); + + (*(IOHIDQueueInterface**) queue)->start ((IOHIDQueueInterface**) queue); + + return true; + } + } + } + } +#endif + + return false; +} + +void AppleRemoteDevice::handleCallbackInternal() +{ + int totalValues = 0; + AbsoluteTime nullTime = { 0, 0 }; + char cookies [12]; + int numCookies = 0; + + while (numCookies < numElementsInArray (cookies)) + { + IOHIDEventStruct e; + + if ((*(IOHIDQueueInterface**) queue)->getNextEvent ((IOHIDQueueInterface**) queue, &e, nullTime, 0) != kIOReturnSuccess) + break; + + if ((int) e.elementCookie == 19) + { + remoteId = e.value; + buttonPressed (switched, false); + } + else + { + totalValues += e.value; + cookies [numCookies++] = (char) (pointer_sized_int) e.elementCookie; + } + } + + cookies [numCookies++] = 0; + + static const char buttonPatterns[] = + { + 14, 7, 6, 5, 14, 7, 6, 5, 0, + 14, 8, 6, 5, 14, 8, 6, 5, 0, + 14, 12, 11, 6, 5, 0, + 14, 13, 11, 6, 5, 0, + 14, 9, 6, 5, 14, 9, 6, 5, 0, + 14, 10, 6, 5, 14, 10, 6, 5, 0, + 14, 6, 5, 4, 2, 0, + 14, 6, 5, 3, 2, 0, + 14, 6, 5, 14, 6, 5, 0, + 18, 14, 6, 5, 18, 14, 6, 5, 0, + 19, 0 + }; + + int buttonNum = (int) menuButton; + int i = 0; + + while (i < numElementsInArray (buttonPatterns)) + { + if (strcmp (cookies, buttonPatterns + i) == 0) + { + buttonPressed ((ButtonType) buttonNum, totalValues > 0); + break; + } + + i += strlen (buttonPatterns + i) + 1; + ++buttonNum; + } +} + + +//============================================================================== +#if JUCE_OPENGL + +struct OpenGLContextInfo +{ + AGLContext renderContext; +}; + +void* juce_createOpenGLContext (OpenGLComponent* component, void* sharedContext) +{ + jassert (component != 0); + + HIViewComponentPeer* const peer = dynamic_cast (component->getTopLevelComponent()->getPeer()); + + if (peer == 0) + return 0; + + OpenGLContextInfo* const oc = new OpenGLContextInfo(); + + GLint attrib[] = { AGL_RGBA, AGL_DOUBLEBUFFER, + AGL_RED_SIZE, 8, + AGL_ALPHA_SIZE, 8, + AGL_DEPTH_SIZE, 24, + AGL_CLOSEST_POLICY, AGL_NO_RECOVERY, + AGL_SAMPLE_BUFFERS_ARB, 1, + AGL_SAMPLES_ARB, 4, + AGL_NONE }; + + oc->renderContext = aglCreateContext (aglChoosePixelFormat (0, 0, attrib), + (sharedContext != 0) ? ((OpenGLContextInfo*) sharedContext)->renderContext + : 0); + + aglSetDrawable (oc->renderContext, + GetWindowPort (peer->windowRef)); + + return oc; +} + +void juce_updateOpenGLWindowPos (void* context, Component* owner, Component* topComp) +{ + jassert (context != 0); + OpenGLContextInfo* const oc = (OpenGLContextInfo*) context; + + GLint bufferRect[4]; + + bufferRect[0] = owner->getScreenX() - topComp->getScreenX(); + bufferRect[1] = topComp->getHeight() - (owner->getHeight() + owner->getScreenY() - topComp->getScreenY()); + bufferRect[2] = owner->getWidth(); + bufferRect[3] = owner->getHeight(); + + aglSetInteger (oc->renderContext, AGL_BUFFER_RECT, bufferRect); + aglEnable (oc->renderContext, AGL_BUFFER_RECT); +} + +void juce_deleteOpenGLContext (void* context) +{ + OpenGLContextInfo* const oc = (OpenGLContextInfo*) context; + + aglDestroyContext (oc->renderContext); + + delete oc; +} + +bool juce_makeOpenGLContextCurrent (void* context) +{ + OpenGLContextInfo* const oc = (OpenGLContextInfo*) context; + + return aglSetCurrentContext ((oc != 0) ? oc->renderContext : 0); +} + +void juce_swapOpenGLBuffers (void* context) +{ + OpenGLContextInfo* const oc = (OpenGLContextInfo*) context; + + if (oc != 0) + aglSwapBuffers (oc->renderContext); +} + +void juce_repaintOpenGLWindow (void* context) +{ +} + +#endif + +END_JUCE_NAMESPACE diff --git a/build/win32/platform_specific_code/juce_win32_ASIO.cpp b/build/win32/platform_specific_code/juce_win32_ASIO.cpp index 9e47d9b801..38a55f4848 100644 --- a/build/win32/platform_specific_code/juce_win32_ASIO.cpp +++ b/build/win32/platform_specific_code/juce_win32_ASIO.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/win32/platform_specific_code/juce_win32_AudioCDReader.cpp b/build/win32/platform_specific_code/juce_win32_AudioCDReader.cpp index 28e6c68516..ea121c2db3 100644 --- a/build/win32/platform_specific_code/juce_win32_AudioCDReader.cpp +++ b/build/win32/platform_specific_code/juce_win32_AudioCDReader.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/win32/platform_specific_code/juce_win32_DirectSound.cpp b/build/win32/platform_specific_code/juce_win32_DirectSound.cpp index 7928e21743..fe7d8f995b 100644 --- a/build/win32/platform_specific_code/juce_win32_DirectSound.cpp +++ b/build/win32/platform_specific_code/juce_win32_DirectSound.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/win32/platform_specific_code/juce_win32_DynamicLibraryLoader.cpp b/build/win32/platform_specific_code/juce_win32_DynamicLibraryLoader.cpp index dffcb7a132..f191fd5342 100644 --- a/build/win32/platform_specific_code/juce_win32_DynamicLibraryLoader.cpp +++ b/build/win32/platform_specific_code/juce_win32_DynamicLibraryLoader.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/win32/platform_specific_code/juce_win32_DynamicLibraryLoader.h b/build/win32/platform_specific_code/juce_win32_DynamicLibraryLoader.h index 5cddf1a78e..416a073fd3 100644 --- a/build/win32/platform_specific_code/juce_win32_DynamicLibraryLoader.h +++ b/build/win32/platform_specific_code/juce_win32_DynamicLibraryLoader.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/win32/platform_specific_code/juce_win32_FileChooser.cpp b/build/win32/platform_specific_code/juce_win32_FileChooser.cpp index d2779ddbc9..ff660a8fa7 100644 --- a/build/win32/platform_specific_code/juce_win32_FileChooser.cpp +++ b/build/win32/platform_specific_code/juce_win32_FileChooser.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/win32/platform_specific_code/juce_win32_Files.cpp b/build/win32/platform_specific_code/juce_win32_Files.cpp index 534d096722..b73e1f4663 100644 --- a/build/win32/platform_specific_code/juce_win32_Files.cpp +++ b/build/win32/platform_specific_code/juce_win32_Files.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/win32/platform_specific_code/juce_win32_Fonts.cpp b/build/win32/platform_specific_code/juce_win32_Fonts.cpp index d351402638..ca92574e7f 100644 --- a/build/win32/platform_specific_code/juce_win32_Fonts.cpp +++ b/build/win32/platform_specific_code/juce_win32_Fonts.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/win32/platform_specific_code/juce_win32_Messaging.cpp b/build/win32/platform_specific_code/juce_win32_Messaging.cpp index 2915536967..6738acb8c5 100644 --- a/build/win32/platform_specific_code/juce_win32_Messaging.cpp +++ b/build/win32/platform_specific_code/juce_win32_Messaging.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/win32/platform_specific_code/juce_win32_Midi.cpp b/build/win32/platform_specific_code/juce_win32_Midi.cpp index fcaab29d12..f3218afc76 100644 --- a/build/win32/platform_specific_code/juce_win32_Midi.cpp +++ b/build/win32/platform_specific_code/juce_win32_Midi.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/win32/platform_specific_code/juce_win32_Misc.cpp b/build/win32/platform_specific_code/juce_win32_Misc.cpp index 5740ba950c..4ce5de1037 100644 --- a/build/win32/platform_specific_code/juce_win32_Misc.cpp +++ b/build/win32/platform_specific_code/juce_win32_Misc.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/win32/platform_specific_code/juce_win32_PlatformUtils.cpp b/build/win32/platform_specific_code/juce_win32_PlatformUtils.cpp index 05c34c86f1..0552c272ef 100644 --- a/build/win32/platform_specific_code/juce_win32_PlatformUtils.cpp +++ b/build/win32/platform_specific_code/juce_win32_PlatformUtils.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/win32/platform_specific_code/juce_win32_Threads.cpp b/build/win32/platform_specific_code/juce_win32_Threads.cpp index c7c47315e9..348f4a88cc 100644 --- a/build/win32/platform_specific_code/juce_win32_Threads.cpp +++ b/build/win32/platform_specific_code/juce_win32_Threads.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/build/win32/platform_specific_code/win32_headers.h b/build/win32/platform_specific_code/win32_headers.h index af7c0d0077..f5ef3c668d 100644 --- a/build/win32/platform_specific_code/win32_headers.h +++ b/build/win32/platform_specific_code/win32_headers.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/demo/src/DemoEditorComponent.cpp b/extras/audio plugins/demo/src/DemoEditorComponent.cpp index 903847c451..10bbe7e5e3 100644 --- a/extras/audio plugins/demo/src/DemoEditorComponent.cpp +++ b/extras/audio plugins/demo/src/DemoEditorComponent.cpp @@ -1,194 +1,194 @@ -/* - ============================================================================== - - 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 "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) - : AudioFilterEditor (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 AudioFilterBase::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); -} +/* + ============================================================================== + + 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 "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) + : AudioFilterEditor (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 AudioFilterBase::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); +} diff --git a/extras/audio plugins/demo/src/DemoEditorComponent.h b/extras/audio plugins/demo/src/DemoEditorComponent.h index 50ad1bda24..107a9cb7ad 100644 --- a/extras/audio plugins/demo/src/DemoEditorComponent.h +++ b/extras/audio plugins/demo/src/DemoEditorComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/demo/src/DemoJuceFilter.cpp b/extras/audio plugins/demo/src/DemoJuceFilter.cpp index bcacca288d..5542564314 100644 --- a/extras/audio plugins/demo/src/DemoJuceFilter.cpp +++ b/extras/audio plugins/demo/src/DemoJuceFilter.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/demo/src/DemoJuceFilter.h b/extras/audio plugins/demo/src/DemoJuceFilter.h index 842f05ff41..9bcdbdae87 100644 --- a/extras/audio plugins/demo/src/DemoJuceFilter.h +++ b/extras/audio plugins/demo/src/DemoJuceFilter.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/demo/src/JucePluginCharacteristics.h b/extras/audio plugins/demo/src/JucePluginCharacteristics.h index b11fa299f4..206f088257 100644 --- a/extras/audio plugins/demo/src/JucePluginCharacteristics.h +++ b/extras/audio plugins/demo/src/JucePluginCharacteristics.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/AudioUnit/juce_AudioUnitWrapper.cpp b/extras/audio plugins/wrapper/formats/AudioUnit/juce_AudioUnitWrapper.cpp index cb7f9cc0e6..7ae92ca67e 100644 --- a/extras/audio plugins/wrapper/formats/AudioUnit/juce_AudioUnitWrapper.cpp +++ b/extras/audio plugins/wrapper/formats/AudioUnit/juce_AudioUnitWrapper.cpp @@ -1,827 +1,827 @@ -/* - ============================================================================== - - 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 -#include "AUMIDIEffectBase.h" -#include "AUCarbonViewBase.h" -#include "../../juce_AudioFilterBase.h" -#include "../../juce_IncludeCharacteristics.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 - - -//============================================================================== -class JuceAU : public AUMIDIEffectBase, - public AudioFilterBase::FilterNativeCallbacks -{ -public: - //============================================================================== - JuceAU (AudioUnit component) - : AUMIDIEffectBase (component), - juceFilter (0), - bufferSpace (2, 16), - prepared (false) - { - CreateElements(); - - if (activePlugins.size() == 0) - { - initialiseJuce_GUI(); - -#ifdef JucePlugin_CFBundleIdentifier - juce_setCurrentExecutableFileNameFromBundleId (JucePlugin_CFBundleIdentifier); -#endif - - MessageManager::getInstance()->setTimeBeforeShowingWaitCursor (0); - } - - juceFilter = createPluginFilter(); - juceFilter->initialiseInternal (this); - - jassert (juceFilter != 0); - Globals()->UseIndexedParameters (juceFilter->getNumParameters()); - - activePlugins.add (this); - } - - ~JuceAU() - { - delete juceFilter; - juceFilter = 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 AUMIDIEffectBase::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 AUMIDIEffectBase::GetProperty (inID, inScope, inElement, outData); - } - - ComponentResult SaveState (CFPropertyListRef* outData) - { - ComponentResult err = AUMIDIEffectBase::SaveState (outData); - - if (err != noErr) - return err; - - jassert (CFGetTypeID (*outData) == CFDictionaryGetTypeID()); - - CFMutableDictionaryRef dict = (CFMutableDictionaryRef) *outData; - - if (juceFilter != 0) - { - JUCE_NAMESPACE::MemoryBlock state; - juceFilter->getStateInformation (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 = AUMIDIEffectBase::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->setStateInformation (rawBytes, numBytes); - } - } - } - - return noErr; - } - - UInt32 SupportedNumChannels (const AUChannelInfo** outInfo) - { - if (juceFilter == 0) - return 0; - - // 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) - { - channelInfo[i].inChannels = channelConfigs[i][0]; - channelInfo[i].outChannels = channelConfigs[i][1]; - - outInfo[i] = channelInfo + i; - } - } - - return numChannelConfigs; - } - - //============================================================================== - ComponentResult GetParameterInfo (AudioUnitScope inScope, - AudioUnitParameterID inParameterID, - AudioUnitParameterInfo& outParameterInfo) - { - if (inScope == kAudioUnitScope_Global && juceFilter != 0) - { - outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable - | kAudioUnitParameterFlag_IsReadable - | kAudioUnitParameterFlag_HasCFNameString; - - outParameterInfo.name[0] = 0; - outParameterInfo.cfNameString = PlatformUtilities::juceStringToCFString (juceFilter->getParameterName ((int) inParameterID)); - 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 GetLatency() - { - jassert (GetSampleRate() > 0); - - if (GetSampleRate() <= 0) - return 0.0; - - return (JucePlugin_Latency) / 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 getCurrentPositionInfo (AudioFilterBase::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 = AudioFilterBase::CurrentPositionInfo::fps24; - break; - - case kSMPTETimeType25: - info.frameRate = AudioFilterBase::CurrentPositionInfo::fps25; - break; - - case kSMPTETimeType30Drop: - info.frameRate = AudioFilterBase::CurrentPositionInfo::fps30drop; - break; - - case kSMPTETimeType30: - info.frameRate = AudioFilterBase::CurrentPositionInfo::fps30; - break; - - case kSMPTETimeType2997: - info.frameRate = AudioFilterBase::CurrentPositionInfo::fps2997; - break; - - case kSMPTETimeType2997Drop: - info.frameRate = AudioFilterBase::CurrentPositionInfo::fps2997drop; - break; - - //case kSMPTETimeType60: - //case kSMPTETimeType5994: - default: - info.frameRate = AudioFilterBase::CurrentPositionInfo::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 informHostOfParameterChange (int index, float newValue) - { - if (juceFilter != 0) - { - juceFilter->setParameter (index, newValue); - - if (AUEventListenerNotify != 0) - { - AudioUnitEvent e; - e.mEventType = kAudioUnitEvent_ParameterValueChange; - e.mArgument.mParameter.mAudioUnit = GetComponentInstance(); - e.mArgument.mParameter.mParameterID = (AudioUnitParameterID) index; - e.mArgument.mParameter.mScope = kAudioUnitScope_Global; - e.mArgument.mParameter.mElement = 0; - AUEventListenerNotify (0, 0, &e); - } - } - } - - //============================================================================== - ComponentResult Initialize() - { - AUMIDIEffectBase::Initialize(); - prepareToPlay(); - return noErr; - } - - void Cleanup() - { - AUMIDIEffectBase::Cleanup(); - - if (juceFilter != 0) - juceFilter->releaseResources(); - - bufferSpace.setSize (2, 16); - midiEvents.clear(); - prepared = false; - } - - ComponentResult Reset (AudioUnitScope inScope, AudioUnitElement inElement) - { - if (! prepared) - prepareToPlay(); - - return AUMIDIEffectBase::Reset (inScope, inElement); - } - - void prepareToPlay() - { - if (juceFilter != 0) - { - juceFilter->numInputChannels = GetInput(0)->GetStreamFormat().mChannelsPerFrame; - juceFilter->numOutputChannels = GetOutput(0)->GetStreamFormat().mChannelsPerFrame; - - bufferSpace.setSize (juceFilter->numInputChannels + juceFilter->numOutputChannels, - GetMaxFramesPerSlice() + 32); - - juceFilter->prepareToPlay (GetSampleRate(), - GetMaxFramesPerSlice()); - - midiEvents.clear(); - - prepared = true; - } - } - - ComponentResult Render (AudioUnitRenderActionFlags &ioActionFlags, - const AudioTimeStamp& inTimeStamp, - UInt32 nFrames) - { - lastSMPTETime = inTimeStamp.mSMPTETime; - - return AUMIDIEffectBase::Render (ioActionFlags, inTimeStamp, nFrames); - } - - - OSStatus ProcessBufferLists (AudioUnitRenderActionFlags& ioActionFlags, - const AudioBufferList& inBuffer, - AudioBufferList& outBuffer, - UInt32 inFramesToProcess) - { - if (juceFilter != 0) - { - jassert (prepared); - - float* inChans [64]; - int numInChans = 0; - float* outChans [64]; - int numOutChans = 0; - int nextSpareBufferChan = 0; - bool needToReinterleave = false; - - unsigned int i; - for (i = 0; i < inBuffer.mNumberBuffers; ++i) - { - const AudioBuffer& buf = inBuffer.mBuffers[i]; - - if (buf.mNumberChannels == 1) - { - inChans [numInChans++] = (float*) buf.mData; - } - else - { - // need to de-interleave.. - for (unsigned int subChan = 0; subChan < buf.mNumberChannels; ++subChan) - { - float* dest = bufferSpace.getSampleData (nextSpareBufferChan++); - inChans [numInChans++] = dest; - - const float* src = ((const float*) buf.mData) + subChan; - - for (int j = inFramesToProcess; --j >= 0;) - { - *dest++ = *src; - src += buf.mNumberChannels; - } - } - } - - if (numInChans >= juceFilter->numInputChannels) - break; - } - - const int firstBufferedOutChan = nextSpareBufferChan; - - for (i = 0; i < outBuffer.mNumberBuffers; ++i) - { - AudioBuffer& buf = outBuffer.mBuffers[i]; - - if (buf.mNumberChannels == 1) - { - outChans [numOutChans++] = (float*) buf.mData; - } - else - { - needToReinterleave = true; - - for (unsigned int subChan = 0; subChan < buf.mNumberChannels; ++subChan) - { - float* dest = bufferSpace.getSampleData (nextSpareBufferChan++); - outChans [numOutChans++] = dest; - } - } - - if (numOutChans >= juceFilter->numOutputChannels) - break; - } - - const bool accumulate = false; - - { - const AudioSampleBuffer input (inChans, numInChans, inFramesToProcess); - AudioSampleBuffer output (outChans, numOutChans, inFramesToProcess); - - const ScopedLock sl (juceFilter->getCallbackLock()); - - if (juceFilter->suspended) - output.clear(); - else - juceFilter->processBlock (input, output, accumulate, midiEvents); - } - - if (! midiEvents.isEmpty()) - { -#if JucePlugin_ProducesMidiOutput - const uint8* midiEventData; - int midiEventSize, midiEventPosition; - MidiBuffer::Iterator i (midiEvents); - - while (i.getNextEvent (midiEventData, midiEventSize, midiEventPosition)) - { - jassert (midiEventPosition >= 0 && midiEventPosition < (int) inFramesToProcess); - - - - //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 = firstBufferedOutChan; - - 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 = inFramesToProcess; --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: - AudioFilterBase* juceFilter; - AudioSampleBuffer bufferSpace; - MidiBuffer midiEvents; - bool prepared; - SMPTETime lastSMPTETime; - AUChannelInfo channelInfo [numChannelConfigs]; -}; - - -//============================================================================== -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 -{ - AudioFilterBase* juceFilter; - AudioFilterEditor* 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); - - const int rx = x - peer->getComponent()->getX(); - const int ry = y - peer->getComponent()->getY(); - - 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::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) +/* + ============================================================================== + + 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 +#include "AUMIDIEffectBase.h" +#include "AUCarbonViewBase.h" +#include "../../juce_AudioFilterBase.h" +#include "../../juce_IncludeCharacteristics.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 + + +//============================================================================== +class JuceAU : public AUMIDIEffectBase, + public AudioFilterBase::FilterNativeCallbacks +{ +public: + //============================================================================== + JuceAU (AudioUnit component) + : AUMIDIEffectBase (component), + juceFilter (0), + bufferSpace (2, 16), + prepared (false) + { + CreateElements(); + + if (activePlugins.size() == 0) + { + initialiseJuce_GUI(); + +#ifdef JucePlugin_CFBundleIdentifier + juce_setCurrentExecutableFileNameFromBundleId (JucePlugin_CFBundleIdentifier); +#endif + + MessageManager::getInstance()->setTimeBeforeShowingWaitCursor (0); + } + + juceFilter = createPluginFilter(); + juceFilter->initialiseInternal (this); + + jassert (juceFilter != 0); + Globals()->UseIndexedParameters (juceFilter->getNumParameters()); + + activePlugins.add (this); + } + + ~JuceAU() + { + delete juceFilter; + juceFilter = 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 AUMIDIEffectBase::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 AUMIDIEffectBase::GetProperty (inID, inScope, inElement, outData); + } + + ComponentResult SaveState (CFPropertyListRef* outData) + { + ComponentResult err = AUMIDIEffectBase::SaveState (outData); + + if (err != noErr) + return err; + + jassert (CFGetTypeID (*outData) == CFDictionaryGetTypeID()); + + CFMutableDictionaryRef dict = (CFMutableDictionaryRef) *outData; + + if (juceFilter != 0) + { + JUCE_NAMESPACE::MemoryBlock state; + juceFilter->getStateInformation (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 = AUMIDIEffectBase::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->setStateInformation (rawBytes, numBytes); + } + } + } + + return noErr; + } + + UInt32 SupportedNumChannels (const AUChannelInfo** outInfo) + { + if (juceFilter == 0) + return 0; + + // 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) + { + channelInfo[i].inChannels = channelConfigs[i][0]; + channelInfo[i].outChannels = channelConfigs[i][1]; + + outInfo[i] = channelInfo + i; + } + } + + return numChannelConfigs; + } + + //============================================================================== + ComponentResult GetParameterInfo (AudioUnitScope inScope, + AudioUnitParameterID inParameterID, + AudioUnitParameterInfo& outParameterInfo) + { + if (inScope == kAudioUnitScope_Global && juceFilter != 0) + { + outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable + | kAudioUnitParameterFlag_IsReadable + | kAudioUnitParameterFlag_HasCFNameString; + + outParameterInfo.name[0] = 0; + outParameterInfo.cfNameString = PlatformUtilities::juceStringToCFString (juceFilter->getParameterName ((int) inParameterID)); + 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 GetLatency() + { + jassert (GetSampleRate() > 0); + + if (GetSampleRate() <= 0) + return 0.0; + + return (JucePlugin_Latency) / 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 getCurrentPositionInfo (AudioFilterBase::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 = AudioFilterBase::CurrentPositionInfo::fps24; + break; + + case kSMPTETimeType25: + info.frameRate = AudioFilterBase::CurrentPositionInfo::fps25; + break; + + case kSMPTETimeType30Drop: + info.frameRate = AudioFilterBase::CurrentPositionInfo::fps30drop; + break; + + case kSMPTETimeType30: + info.frameRate = AudioFilterBase::CurrentPositionInfo::fps30; + break; + + case kSMPTETimeType2997: + info.frameRate = AudioFilterBase::CurrentPositionInfo::fps2997; + break; + + case kSMPTETimeType2997Drop: + info.frameRate = AudioFilterBase::CurrentPositionInfo::fps2997drop; + break; + + //case kSMPTETimeType60: + //case kSMPTETimeType5994: + default: + info.frameRate = AudioFilterBase::CurrentPositionInfo::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 informHostOfParameterChange (int index, float newValue) + { + if (juceFilter != 0) + { + juceFilter->setParameter (index, newValue); + + if (AUEventListenerNotify != 0) + { + AudioUnitEvent e; + e.mEventType = kAudioUnitEvent_ParameterValueChange; + e.mArgument.mParameter.mAudioUnit = GetComponentInstance(); + e.mArgument.mParameter.mParameterID = (AudioUnitParameterID) index; + e.mArgument.mParameter.mScope = kAudioUnitScope_Global; + e.mArgument.mParameter.mElement = 0; + AUEventListenerNotify (0, 0, &e); + } + } + } + + //============================================================================== + ComponentResult Initialize() + { + AUMIDIEffectBase::Initialize(); + prepareToPlay(); + return noErr; + } + + void Cleanup() + { + AUMIDIEffectBase::Cleanup(); + + if (juceFilter != 0) + juceFilter->releaseResources(); + + bufferSpace.setSize (2, 16); + midiEvents.clear(); + prepared = false; + } + + ComponentResult Reset (AudioUnitScope inScope, AudioUnitElement inElement) + { + if (! prepared) + prepareToPlay(); + + return AUMIDIEffectBase::Reset (inScope, inElement); + } + + void prepareToPlay() + { + if (juceFilter != 0) + { + juceFilter->numInputChannels = GetInput(0)->GetStreamFormat().mChannelsPerFrame; + juceFilter->numOutputChannels = GetOutput(0)->GetStreamFormat().mChannelsPerFrame; + + bufferSpace.setSize (juceFilter->numInputChannels + juceFilter->numOutputChannels, + GetMaxFramesPerSlice() + 32); + + juceFilter->prepareToPlay (GetSampleRate(), + GetMaxFramesPerSlice()); + + midiEvents.clear(); + + prepared = true; + } + } + + ComponentResult Render (AudioUnitRenderActionFlags &ioActionFlags, + const AudioTimeStamp& inTimeStamp, + UInt32 nFrames) + { + lastSMPTETime = inTimeStamp.mSMPTETime; + + return AUMIDIEffectBase::Render (ioActionFlags, inTimeStamp, nFrames); + } + + + OSStatus ProcessBufferLists (AudioUnitRenderActionFlags& ioActionFlags, + const AudioBufferList& inBuffer, + AudioBufferList& outBuffer, + UInt32 inFramesToProcess) + { + if (juceFilter != 0) + { + jassert (prepared); + + float* inChans [64]; + int numInChans = 0; + float* outChans [64]; + int numOutChans = 0; + int nextSpareBufferChan = 0; + bool needToReinterleave = false; + + unsigned int i; + for (i = 0; i < inBuffer.mNumberBuffers; ++i) + { + const AudioBuffer& buf = inBuffer.mBuffers[i]; + + if (buf.mNumberChannels == 1) + { + inChans [numInChans++] = (float*) buf.mData; + } + else + { + // need to de-interleave.. + for (unsigned int subChan = 0; subChan < buf.mNumberChannels; ++subChan) + { + float* dest = bufferSpace.getSampleData (nextSpareBufferChan++); + inChans [numInChans++] = dest; + + const float* src = ((const float*) buf.mData) + subChan; + + for (int j = inFramesToProcess; --j >= 0;) + { + *dest++ = *src; + src += buf.mNumberChannels; + } + } + } + + if (numInChans >= juceFilter->numInputChannels) + break; + } + + const int firstBufferedOutChan = nextSpareBufferChan; + + for (i = 0; i < outBuffer.mNumberBuffers; ++i) + { + AudioBuffer& buf = outBuffer.mBuffers[i]; + + if (buf.mNumberChannels == 1) + { + outChans [numOutChans++] = (float*) buf.mData; + } + else + { + needToReinterleave = true; + + for (unsigned int subChan = 0; subChan < buf.mNumberChannels; ++subChan) + { + float* dest = bufferSpace.getSampleData (nextSpareBufferChan++); + outChans [numOutChans++] = dest; + } + } + + if (numOutChans >= juceFilter->numOutputChannels) + break; + } + + const bool accumulate = false; + + { + const AudioSampleBuffer input (inChans, numInChans, inFramesToProcess); + AudioSampleBuffer output (outChans, numOutChans, inFramesToProcess); + + const ScopedLock sl (juceFilter->getCallbackLock()); + + if (juceFilter->suspended) + output.clear(); + else + juceFilter->processBlock (input, output, accumulate, midiEvents); + } + + if (! midiEvents.isEmpty()) + { +#if JucePlugin_ProducesMidiOutput + const uint8* midiEventData; + int midiEventSize, midiEventPosition; + MidiBuffer::Iterator i (midiEvents); + + while (i.getNextEvent (midiEventData, midiEventSize, midiEventPosition)) + { + jassert (midiEventPosition >= 0 && midiEventPosition < (int) inFramesToProcess); + + + + //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 = firstBufferedOutChan; + + 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 = inFramesToProcess; --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: + AudioFilterBase* juceFilter; + AudioSampleBuffer bufferSpace; + MidiBuffer midiEvents; + bool prepared; + SMPTETime lastSMPTETime; + AUChannelInfo channelInfo [numChannelConfigs]; +}; + + +//============================================================================== +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 +{ + AudioFilterBase* juceFilter; + AudioFilterEditor* 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); + + const int rx = x - peer->getComponent()->getX(); + const int ry = y - peer->getComponent()->getY(); + + 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::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) diff --git a/extras/audio plugins/wrapper/formats/RTAS/juce_RTASCompileFlags.h b/extras/audio plugins/wrapper/formats/RTAS/juce_RTASCompileFlags.h index 7be23e105b..2427003106 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/juce_RTASCompileFlags.h +++ b/extras/audio plugins/wrapper/formats/RTAS/juce_RTASCompileFlags.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/juce_RTASUtilities.cpp b/extras/audio plugins/wrapper/formats/RTAS/juce_RTASUtilities.cpp index 105077a272..3f415b196f 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/juce_RTASUtilities.cpp +++ b/extras/audio plugins/wrapper/formats/RTAS/juce_RTASUtilities.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/juce_RTASWrapper.cpp b/extras/audio plugins/wrapper/formats/RTAS/juce_RTASWrapper.cpp index ec0c59b600..e0dac20a95 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/juce_RTASWrapper.cpp +++ b/extras/audio plugins/wrapper/formats/RTAS/juce_RTASWrapper.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectGroup.cpp b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectGroup.cpp index d5e50a2b1a..2a938ae853 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectGroup.cpp +++ b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectGroup.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectGroupMIDI.cpp b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectGroupMIDI.cpp index 556d894d7a..07aa7ee05c 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectGroupMIDI.cpp +++ b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectGroupMIDI.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectMIDIUtils.cpp b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectMIDIUtils.cpp index f96e37c28c..a9a948b281 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectMIDIUtils.cpp +++ b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectMIDIUtils.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcess.cpp b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcess.cpp index 9bb0967e92..2dfa8561b9 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcess.cpp +++ b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcess.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcessAS.cpp b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcessAS.cpp index e3189ee266..70083d8da6 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcessAS.cpp +++ b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcessAS.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcessMIDI.cpp b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcessMIDI.cpp index 06235d8f61..24313d8492 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcessMIDI.cpp +++ b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectProcessMIDI.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectType.cpp b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectType.cpp index b3d718d9ca..5c33164ea9 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectType.cpp +++ b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectType.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectTypeRTAS.cpp b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectTypeRTAS.cpp index 13c58db6fa..1464ee04d7 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectTypeRTAS.cpp +++ b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_CEffectTypeRTAS.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_ChunkDataParser.cpp b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_ChunkDataParser.cpp index 61ad544fe3..5f29659bd7 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_ChunkDataParser.cpp +++ b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_ChunkDataParser.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_DLLMain.cpp b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_DLLMain.cpp index f9b6ca7b44..fa1259df2d 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_DLLMain.cpp +++ b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_DLLMain.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_DefaultSwap.cpp b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_DefaultSwap.cpp index 807c3600f0..3cc54a6782 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_DefaultSwap.cpp +++ b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_DefaultSwap.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_Dispatcher.cpp b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_Dispatcher.cpp index 2df7f9e89b..d8b321ea65 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_Dispatcher.cpp +++ b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_Dispatcher.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_Header.h b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_Header.h index d779f72d0d..f746288711 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_Header.h +++ b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_Header.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_PlugInUtils.cpp b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_PlugInUtils.cpp index e8adbba2b4..19c8440f53 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_PlugInUtils.cpp +++ b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_PlugInUtils.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_PluginInitialize.cpp b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_PluginInitialize.cpp index 4659b6692d..80698eeff2 100644 --- a/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_PluginInitialize.cpp +++ b/extras/audio plugins/wrapper/formats/RTAS/wrappers/juce_Wrapper_PluginInitialize.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/Standalone/juce_AudioFilterStreamer.cpp b/extras/audio plugins/wrapper/formats/Standalone/juce_AudioFilterStreamer.cpp index 660b88514d..03f34ce5b5 100644 --- a/extras/audio plugins/wrapper/formats/Standalone/juce_AudioFilterStreamer.cpp +++ b/extras/audio plugins/wrapper/formats/Standalone/juce_AudioFilterStreamer.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/Standalone/juce_AudioFilterStreamer.h b/extras/audio plugins/wrapper/formats/Standalone/juce_AudioFilterStreamer.h index 82a32150ff..c4b61f3710 100644 --- a/extras/audio plugins/wrapper/formats/Standalone/juce_AudioFilterStreamer.h +++ b/extras/audio plugins/wrapper/formats/Standalone/juce_AudioFilterStreamer.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/Standalone/juce_StandaloneFilterWindow.cpp b/extras/audio plugins/wrapper/formats/Standalone/juce_StandaloneFilterWindow.cpp index 97b95de0d9..c778516b44 100644 --- a/extras/audio plugins/wrapper/formats/Standalone/juce_StandaloneFilterWindow.cpp +++ b/extras/audio plugins/wrapper/formats/Standalone/juce_StandaloneFilterWindow.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/Standalone/juce_StandaloneFilterWindow.h b/extras/audio plugins/wrapper/formats/Standalone/juce_StandaloneFilterWindow.h index 1a03d81617..fe39015ed1 100644 --- a/extras/audio plugins/wrapper/formats/Standalone/juce_StandaloneFilterWindow.h +++ b/extras/audio plugins/wrapper/formats/Standalone/juce_StandaloneFilterWindow.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/formats/VST/juce_VstWrapper.cpp b/extras/audio plugins/wrapper/formats/VST/juce_VstWrapper.cpp index 57bb4da62b..1b7123298a 100644 --- a/extras/audio plugins/wrapper/formats/VST/juce_VstWrapper.cpp +++ b/extras/audio plugins/wrapper/formats/VST/juce_VstWrapper.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/juce_AudioFilterBase.cpp b/extras/audio plugins/wrapper/juce_AudioFilterBase.cpp index 2b2d8f36f9..795dfb7c2a 100644 --- a/extras/audio plugins/wrapper/juce_AudioFilterBase.cpp +++ b/extras/audio plugins/wrapper/juce_AudioFilterBase.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/juce_AudioFilterBase.h b/extras/audio plugins/wrapper/juce_AudioFilterBase.h index 49989bba66..a9252408d4 100644 --- a/extras/audio plugins/wrapper/juce_AudioFilterBase.h +++ b/extras/audio plugins/wrapper/juce_AudioFilterBase.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/juce_AudioFilterEditor.cpp b/extras/audio plugins/wrapper/juce_AudioFilterEditor.cpp index 74d68c7063..23a3f52c5d 100644 --- a/extras/audio plugins/wrapper/juce_AudioFilterEditor.cpp +++ b/extras/audio plugins/wrapper/juce_AudioFilterEditor.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/juce_AudioFilterEditor.h b/extras/audio plugins/wrapper/juce_AudioFilterEditor.h index 6e2e3016e2..bbfca96095 100644 --- a/extras/audio plugins/wrapper/juce_AudioFilterEditor.h +++ b/extras/audio plugins/wrapper/juce_AudioFilterEditor.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/audio plugins/wrapper/juce_IncludeCharacteristics.h b/extras/audio plugins/wrapper/juce_IncludeCharacteristics.h index 4cbb0e18cc..34779ca0d9 100644 --- a/extras/audio plugins/wrapper/juce_IncludeCharacteristics.h +++ b/extras/audio plugins/wrapper/juce_IncludeCharacteristics.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/ApplicationStartup.cpp b/extras/juce demo/src/ApplicationStartup.cpp index 3a014f809e..729f5a859f 100644 --- a/extras/juce demo/src/ApplicationStartup.cpp +++ b/extras/juce demo/src/ApplicationStartup.cpp @@ -1,176 +1,176 @@ -/* - ============================================================================== - - 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 "jucedemo_headers.h" -#include "MainDemoWindow.h" - - -//============================================================================== -class JUCEDemoApplication : public JUCEApplication -{ - /* Important! NEVER embed objects directly inside your JUCEApplication class! Use - ONLY pointers to objects, which you should create during the initialise() method - (NOT in the constructor!) and delete in the shutdown() method (NOT in the - destructor!) - - This is because the application object gets created before Juce has been properly - initialised, so any embedded objects would also get constructed too soon. - */ - MainDemoWindow* theMainWindow; - -public: - //============================================================================== - JUCEDemoApplication() - : theMainWindow (0) - { - // NEVER do anything in here that could involve any Juce function being called - // - leave all your startup tasks until the initialise() method. - } - - ~JUCEDemoApplication() - { - // Your shutdown() method should already have done all the things necessary to - // clean up this app object, so you should never need to put anything in - // the destructor. - - // Making any Juce calls in here could be very dangerous... - } - - //============================================================================== - void initialise (const String& commandLine) - { - // just create the main window... - theMainWindow = new MainDemoWindow(); - theMainWindow->centreWithSize (700, 600); - theMainWindow->setVisible (true); - - // this little function just demonstrates a few system info calls - Logger::outputDebugString (collectSomeSystemInfo()); - - /* on return from this method, the app will go into its the main event - dispatch loop, and this will run until something calls - JUCEAppliction::quit(). - - In this case, JUCEAppliction::quit() will be called by the - demo window when the user clicks on its close button. - */ - } - - void shutdown() - { - delete theMainWindow; - theMainWindow = 0; - } - - //============================================================================== - const String getApplicationName() - { - return T("JUCE Demo"); - } - - const String getApplicationVersion() - { - return T("1.0"); - } - - bool moreThanOneInstanceAllowed() - { - return true; - } - - void anotherInstanceStarted (const String& commandLine) - { - // This will get called if the user launches another copy of the app, but - // there's nothing that the demo app needs to do here. - } - -private: - //============================================================================== - // this little function just demonstrates a few system info calls - static const String collectSomeSystemInfo() - { - String systemInfo; - - systemInfo - << T("Time and date: ") << Time::getCurrentTime().toString (true, true) - << T("\nOperating system: ") << SystemStats::getOperatingSystemName() - << T("\nCPU vendor: ") << SystemStats::getCpuVendor() - << T("\nCPU speed: ") << SystemStats::getCpuSpeedInMegaherz() << T("MHz\n") - << T("\nNumber of CPUs: ") << SystemStats::getNumCpus() - << T("\nCPU has MMX: ") << (SystemStats::hasMMX() ? T("yes") : T("no")) - << T("\nCPU has SSE: ") << (SystemStats::hasSSE() ? T("yes") : T("no")) - << T("\nCPU has SSE2: ") << (SystemStats::hasSSE2() ? T("yes") : T("no")) - << T("\nCPU has 3DNOW: ") << (SystemStats::has3DNow() ? T("yes") : T("no")) - << T("\nMemory size: ") << SystemStats::getMemorySizeInMegabytes() << T("MB\n"); - - int64 macAddresses[8]; - const int numAddresses = SystemStats::getMACAddresses (macAddresses, 8); - - for (int i = 0; i < numAddresses; ++i) - { - systemInfo - << T("Found network card MAC address: ") - << String::formatted (T("%02x-%02x-%02x-%02x-%02x-%02x\n"), - 0xff & (int) (macAddresses [i] >> 40), - 0xff & (int) (macAddresses [i] >> 32), - 0xff & (int) (macAddresses [i] >> 24), - 0xff & (int) (macAddresses [i] >> 16), - 0xff & (int) (macAddresses [i] >> 8), - 0xff & (int) macAddresses [i]); - } - - systemInfo - << T("Current executable file: ") - << File::getSpecialLocation (File::currentExecutableFile).getFullPathName() - << T("\nCurrent application file: ") - << File::getSpecialLocation (File::currentApplicationFile).getFullPathName() - << T("\nUser home directory: ") - << File::getSpecialLocation (File::userHomeDirectory).getFullPathName() - << T("\nUser documents directory: ") - << File::getSpecialLocation (File::userDocumentsDirectory).getFullPathName() - << T("\nUser application data directory: ") - << File::getSpecialLocation (File::userApplicationDataDirectory).getFullPathName() - << T("\nCommon application data directory: ") - << File::getSpecialLocation (File::commonApplicationDataDirectory).getFullPathName() - << T("\nTemp directory: ") - << File::getSpecialLocation (File::tempDirectory).getFullPathName() - << T("\n\n"); - - return systemInfo; - } -}; - - -//============================================================================== -/* - This macro creates the application's main() function.. -*/ -START_JUCE_APPLICATION (JUCEDemoApplication) +/* + ============================================================================== + + 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 "jucedemo_headers.h" +#include "MainDemoWindow.h" + + +//============================================================================== +class JUCEDemoApplication : public JUCEApplication +{ + /* Important! NEVER embed objects directly inside your JUCEApplication class! Use + ONLY pointers to objects, which you should create during the initialise() method + (NOT in the constructor!) and delete in the shutdown() method (NOT in the + destructor!) + + This is because the application object gets created before Juce has been properly + initialised, so any embedded objects would also get constructed too soon. + */ + MainDemoWindow* theMainWindow; + +public: + //============================================================================== + JUCEDemoApplication() + : theMainWindow (0) + { + // NEVER do anything in here that could involve any Juce function being called + // - leave all your startup tasks until the initialise() method. + } + + ~JUCEDemoApplication() + { + // Your shutdown() method should already have done all the things necessary to + // clean up this app object, so you should never need to put anything in + // the destructor. + + // Making any Juce calls in here could be very dangerous... + } + + //============================================================================== + void initialise (const String& commandLine) + { + // just create the main window... + theMainWindow = new MainDemoWindow(); + theMainWindow->centreWithSize (700, 600); + theMainWindow->setVisible (true); + + // this little function just demonstrates a few system info calls + Logger::outputDebugString (collectSomeSystemInfo()); + + /* on return from this method, the app will go into its the main event + dispatch loop, and this will run until something calls + JUCEAppliction::quit(). + + In this case, JUCEAppliction::quit() will be called by the + demo window when the user clicks on its close button. + */ + } + + void shutdown() + { + delete theMainWindow; + theMainWindow = 0; + } + + //============================================================================== + const String getApplicationName() + { + return T("JUCE Demo"); + } + + const String getApplicationVersion() + { + return T("1.0"); + } + + bool moreThanOneInstanceAllowed() + { + return true; + } + + void anotherInstanceStarted (const String& commandLine) + { + // This will get called if the user launches another copy of the app, but + // there's nothing that the demo app needs to do here. + } + +private: + //============================================================================== + // this little function just demonstrates a few system info calls + static const String collectSomeSystemInfo() + { + String systemInfo; + + systemInfo + << T("Time and date: ") << Time::getCurrentTime().toString (true, true) + << T("\nOperating system: ") << SystemStats::getOperatingSystemName() + << T("\nCPU vendor: ") << SystemStats::getCpuVendor() + << T("\nCPU speed: ") << SystemStats::getCpuSpeedInMegaherz() << T("MHz\n") + << T("\nNumber of CPUs: ") << SystemStats::getNumCpus() + << T("\nCPU has MMX: ") << (SystemStats::hasMMX() ? T("yes") : T("no")) + << T("\nCPU has SSE: ") << (SystemStats::hasSSE() ? T("yes") : T("no")) + << T("\nCPU has SSE2: ") << (SystemStats::hasSSE2() ? T("yes") : T("no")) + << T("\nCPU has 3DNOW: ") << (SystemStats::has3DNow() ? T("yes") : T("no")) + << T("\nMemory size: ") << SystemStats::getMemorySizeInMegabytes() << T("MB\n"); + + int64 macAddresses[8]; + const int numAddresses = SystemStats::getMACAddresses (macAddresses, 8); + + for (int i = 0; i < numAddresses; ++i) + { + systemInfo + << T("Found network card MAC address: ") + << String::formatted (T("%02x-%02x-%02x-%02x-%02x-%02x\n"), + 0xff & (int) (macAddresses [i] >> 40), + 0xff & (int) (macAddresses [i] >> 32), + 0xff & (int) (macAddresses [i] >> 24), + 0xff & (int) (macAddresses [i] >> 16), + 0xff & (int) (macAddresses [i] >> 8), + 0xff & (int) macAddresses [i]); + } + + systemInfo + << T("Current executable file: ") + << File::getSpecialLocation (File::currentExecutableFile).getFullPathName() + << T("\nCurrent application file: ") + << File::getSpecialLocation (File::currentApplicationFile).getFullPathName() + << T("\nUser home directory: ") + << File::getSpecialLocation (File::userHomeDirectory).getFullPathName() + << T("\nUser documents directory: ") + << File::getSpecialLocation (File::userDocumentsDirectory).getFullPathName() + << T("\nUser application data directory: ") + << File::getSpecialLocation (File::userApplicationDataDirectory).getFullPathName() + << T("\nCommon application data directory: ") + << File::getSpecialLocation (File::commonApplicationDataDirectory).getFullPathName() + << T("\nTemp directory: ") + << File::getSpecialLocation (File::tempDirectory).getFullPathName() + << T("\n\n"); + + return systemInfo; + } +}; + + +//============================================================================== +/* + This macro creates the application's main() function.. +*/ +START_JUCE_APPLICATION (JUCEDemoApplication) diff --git a/extras/juce demo/src/BinaryData.cpp b/extras/juce demo/src/BinaryData.cpp index 3864424e01..ea121ebce5 100644 --- a/extras/juce demo/src/BinaryData.cpp +++ b/extras/juce demo/src/BinaryData.cpp @@ -7927,4 +7927,3 @@ static const unsigned char temp17[] = {47,42,13,10,32,32,61,61,61,61,61,61,61,61 110,100,77,97,110,97,103,101,114,42,32,99,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; - diff --git a/extras/juce demo/src/MainDemoWindow.h b/extras/juce demo/src/MainDemoWindow.h index 86ca746ff4..5496fe64d3 100644 --- a/extras/juce demo/src/MainDemoWindow.h +++ b/extras/juce demo/src/MainDemoWindow.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/binarydata/AudioDemo.cpp b/extras/juce demo/src/binarydata/AudioDemo.cpp index 6642c94755..a808fd0a01 100644 --- a/extras/juce demo/src/binarydata/AudioDemo.cpp +++ b/extras/juce demo/src/binarydata/AudioDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/binarydata/DragAndDropDemo.cpp b/extras/juce demo/src/binarydata/DragAndDropDemo.cpp index 1496c339bf..fdca202a06 100644 --- a/extras/juce demo/src/binarydata/DragAndDropDemo.cpp +++ b/extras/juce demo/src/binarydata/DragAndDropDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/binarydata/FontsAndTextDemo.cpp b/extras/juce demo/src/binarydata/FontsAndTextDemo.cpp index f5281fd2b0..71438f82d4 100644 --- a/extras/juce demo/src/binarydata/FontsAndTextDemo.cpp +++ b/extras/juce demo/src/binarydata/FontsAndTextDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/binarydata/InterprocessCommsDemo.cpp b/extras/juce demo/src/binarydata/InterprocessCommsDemo.cpp index ae7fe623f2..b9241edc6c 100644 --- a/extras/juce demo/src/binarydata/InterprocessCommsDemo.cpp +++ b/extras/juce demo/src/binarydata/InterprocessCommsDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/binarydata/OpenGLDemo.cpp b/extras/juce demo/src/binarydata/OpenGLDemo.cpp index d98dd70f14..a20a09c96e 100644 --- a/extras/juce demo/src/binarydata/OpenGLDemo.cpp +++ b/extras/juce demo/src/binarydata/OpenGLDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/binarydata/PathsAndTransformsDemo.cpp b/extras/juce demo/src/binarydata/PathsAndTransformsDemo.cpp index d2cee55ccd..452c05c13b 100644 --- a/extras/juce demo/src/binarydata/PathsAndTransformsDemo.cpp +++ b/extras/juce demo/src/binarydata/PathsAndTransformsDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/binarydata/QuickTimeDemo.cpp b/extras/juce demo/src/binarydata/QuickTimeDemo.cpp index eb22f6c846..3ad78aefce 100644 --- a/extras/juce demo/src/binarydata/QuickTimeDemo.cpp +++ b/extras/juce demo/src/binarydata/QuickTimeDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/binarydata/TableDemo.cpp b/extras/juce demo/src/binarydata/TableDemo.cpp index 5207b26df0..7060bb920d 100644 --- a/extras/juce demo/src/binarydata/TableDemo.cpp +++ b/extras/juce demo/src/binarydata/TableDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/binarydata/ThreadingDemo.cpp b/extras/juce demo/src/binarydata/ThreadingDemo.cpp index 361203a1b3..d77d1edeee 100644 --- a/extras/juce demo/src/binarydata/ThreadingDemo.cpp +++ b/extras/juce demo/src/binarydata/ThreadingDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/binarydata/TreeViewDemo.cpp b/extras/juce demo/src/binarydata/TreeViewDemo.cpp index f285edd1f4..79bd229081 100644 --- a/extras/juce demo/src/binarydata/TreeViewDemo.cpp +++ b/extras/juce demo/src/binarydata/TreeViewDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/binarydata/WidgetsDemo.cpp b/extras/juce demo/src/binarydata/WidgetsDemo.cpp index f31484fb7b..5ac7da11eb 100644 --- a/extras/juce demo/src/binarydata/WidgetsDemo.cpp +++ b/extras/juce demo/src/binarydata/WidgetsDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -1035,8 +1035,8 @@ class AppleRemoteTestWindow : public AlertWindow, { public: AppleRemoteTestWindow() - : AlertWindow ("Apple Remote Control Test!", - "If you've got an Apple Remote, press some buttons now...", + : AlertWindow ("Apple Remote Control Test!", + "If you've got an Apple Remote, press some buttons now...", AlertWindow::NoIcon) { addButton (T("done"), 0); diff --git a/extras/juce demo/src/demos/AudioDemo.cpp b/extras/juce demo/src/demos/AudioDemo.cpp index 6642c94755..a808fd0a01 100644 --- a/extras/juce demo/src/demos/AudioDemo.cpp +++ b/extras/juce demo/src/demos/AudioDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/demos/DragAndDropDemo.cpp b/extras/juce demo/src/demos/DragAndDropDemo.cpp index 1496c339bf..fdca202a06 100644 --- a/extras/juce demo/src/demos/DragAndDropDemo.cpp +++ b/extras/juce demo/src/demos/DragAndDropDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/demos/FontsAndTextDemo.cpp b/extras/juce demo/src/demos/FontsAndTextDemo.cpp index f5281fd2b0..71438f82d4 100644 --- a/extras/juce demo/src/demos/FontsAndTextDemo.cpp +++ b/extras/juce demo/src/demos/FontsAndTextDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/demos/InterprocessCommsDemo.cpp b/extras/juce demo/src/demos/InterprocessCommsDemo.cpp index ae7fe623f2..b9241edc6c 100644 --- a/extras/juce demo/src/demos/InterprocessCommsDemo.cpp +++ b/extras/juce demo/src/demos/InterprocessCommsDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/demos/OpenGLDemo.cpp b/extras/juce demo/src/demos/OpenGLDemo.cpp index d98dd70f14..a20a09c96e 100644 --- a/extras/juce demo/src/demos/OpenGLDemo.cpp +++ b/extras/juce demo/src/demos/OpenGLDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/demos/PathsAndTransformsDemo.cpp b/extras/juce demo/src/demos/PathsAndTransformsDemo.cpp index d2cee55ccd..452c05c13b 100644 --- a/extras/juce demo/src/demos/PathsAndTransformsDemo.cpp +++ b/extras/juce demo/src/demos/PathsAndTransformsDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/demos/QuickTimeDemo.cpp b/extras/juce demo/src/demos/QuickTimeDemo.cpp index eb22f6c846..3ad78aefce 100644 --- a/extras/juce demo/src/demos/QuickTimeDemo.cpp +++ b/extras/juce demo/src/demos/QuickTimeDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/demos/TableDemo.cpp b/extras/juce demo/src/demos/TableDemo.cpp index 5207b26df0..7060bb920d 100644 --- a/extras/juce demo/src/demos/TableDemo.cpp +++ b/extras/juce demo/src/demos/TableDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/demos/ThreadingDemo.cpp b/extras/juce demo/src/demos/ThreadingDemo.cpp index 361203a1b3..d77d1edeee 100644 --- a/extras/juce demo/src/demos/ThreadingDemo.cpp +++ b/extras/juce demo/src/demos/ThreadingDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/demos/TreeViewDemo.cpp b/extras/juce demo/src/demos/TreeViewDemo.cpp index f285edd1f4..79bd229081 100644 --- a/extras/juce demo/src/demos/TreeViewDemo.cpp +++ b/extras/juce demo/src/demos/TreeViewDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/juce demo/src/demos/WidgetsDemo.cpp b/extras/juce demo/src/demos/WidgetsDemo.cpp index f31484fb7b..5ac7da11eb 100644 --- a/extras/juce demo/src/demos/WidgetsDemo.cpp +++ b/extras/juce demo/src/demos/WidgetsDemo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -1035,8 +1035,8 @@ class AppleRemoteTestWindow : public AlertWindow, { public: AppleRemoteTestWindow() - : AlertWindow ("Apple Remote Control Test!", - "If you've got an Apple Remote, press some buttons now...", + : AlertWindow ("Apple Remote Control Test!", + "If you've got an Apple Remote, press some buttons now...", AlertWindow::NoIcon) { addButton (T("done"), 0); diff --git a/extras/juce demo/src/jucedemo_headers.h b/extras/juce demo/src/jucedemo_headers.h index 46cb2e4e19..ed83229fa6 100644 --- a/extras/juce demo/src/jucedemo_headers.h +++ b/extras/juce demo/src/jucedemo_headers.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/BinaryData.cpp b/extras/the jucer/src/BinaryData.cpp index c08fddd03e..1279f531a8 100644 --- a/extras/the jucer/src/BinaryData.cpp +++ b/extras/the jucer/src/BinaryData.cpp @@ -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; - diff --git a/extras/the jucer/src/jucer_Headers.h b/extras/the jucer/src/jucer_Headers.h index 2a24903f09..9ff25cbbaa 100644 --- a/extras/the jucer/src/jucer_Headers.h +++ b/extras/the jucer/src/jucer_Headers.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/jucer_Main.cpp b/extras/the jucer/src/jucer_Main.cpp index 1f9b08120c..fa37717eb9 100644 --- a/extras/the jucer/src/jucer_Main.cpp +++ b/extras/the jucer/src/jucer_Main.cpp @@ -1,118 +1,118 @@ -/* - ============================================================================== - - 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 "jucer_Headers.h" -#include "ui/jucer_MainWindow.h" - -ApplicationCommandManager* commandManager = 0; - - -//============================================================================== -class JucerApplication : public JUCEApplication -{ - MainWindow* theMainWindow; - -public: - //============================================================================== - JucerApplication() - : theMainWindow (0) - { - } - - ~JucerApplication() - { - } - - //============================================================================== - void initialise (const String& commandLine) - { - commandManager = new ApplicationCommandManager(); - - theMainWindow = new MainWindow(); - theMainWindow->setVisible (true); - - ImageCache::setCacheTimeout (30 * 1000); - - if (commandLine.trim().isNotEmpty() - && ! commandLine.trim().startsWithChar (T('-'))) - anotherInstanceStarted (commandLine); - } - - void shutdown() - { - delete theMainWindow; - theMainWindow = 0; - - deleteAndZero (commandManager); - } - - //============================================================================== - void systemRequestedQuit() - { - if (theMainWindow == 0 || theMainWindow->closeAllDocuments()) - { - deleteAndZero (theMainWindow); - - StoredSettings::deleteInstance(); - - quit (false); - } - } - - //============================================================================== - const String getApplicationName() - { - return T("The Jucer"); - } - - const String getApplicationVersion() - { - return String (JUCER_MAJOR_VERSION) + T(".") + String (JUCER_MINOR_VERSION); - } - - bool moreThanOneInstanceAllowed() - { -#ifndef JUCE_LINUX - return false; -#else - return true; //xxx should be false but doesn't work on linux.. -#endif - } - - void anotherInstanceStarted (const String& commandLine) - { - if (theMainWindow != 0) - theMainWindow->openFile (commandLine.unquoted()); - } -}; - - -START_JUCE_APPLICATION(JucerApplication) +/* + ============================================================================== + + 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 "jucer_Headers.h" +#include "ui/jucer_MainWindow.h" + +ApplicationCommandManager* commandManager = 0; + + +//============================================================================== +class JucerApplication : public JUCEApplication +{ + MainWindow* theMainWindow; + +public: + //============================================================================== + JucerApplication() + : theMainWindow (0) + { + } + + ~JucerApplication() + { + } + + //============================================================================== + void initialise (const String& commandLine) + { + commandManager = new ApplicationCommandManager(); + + theMainWindow = new MainWindow(); + theMainWindow->setVisible (true); + + ImageCache::setCacheTimeout (30 * 1000); + + if (commandLine.trim().isNotEmpty() + && ! commandLine.trim().startsWithChar (T('-'))) + anotherInstanceStarted (commandLine); + } + + void shutdown() + { + delete theMainWindow; + theMainWindow = 0; + + deleteAndZero (commandManager); + } + + //============================================================================== + void systemRequestedQuit() + { + if (theMainWindow == 0 || theMainWindow->closeAllDocuments()) + { + deleteAndZero (theMainWindow); + + StoredSettings::deleteInstance(); + + quit (false); + } + } + + //============================================================================== + const String getApplicationName() + { + return T("The Jucer"); + } + + const String getApplicationVersion() + { + return String (JUCER_MAJOR_VERSION) + T(".") + String (JUCER_MINOR_VERSION); + } + + bool moreThanOneInstanceAllowed() + { +#ifndef JUCE_LINUX + return false; +#else + return true; //xxx should be false but doesn't work on linux.. +#endif + } + + void anotherInstanceStarted (const String& commandLine) + { + if (theMainWindow != 0) + theMainWindow->openFile (commandLine.unquoted()); + } +}; + + +START_JUCE_APPLICATION(JucerApplication) diff --git a/extras/the jucer/src/model/components/jucer_ButtonHandler.h b/extras/the jucer/src/model/components/jucer_ButtonHandler.h index 8d2eebfd74..cad55375ab 100644 --- a/extras/the jucer/src/model/components/jucer_ButtonHandler.h +++ b/extras/the jucer/src/model/components/jucer_ButtonHandler.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_ComboBoxHandler.h b/extras/the jucer/src/model/components/jucer_ComboBoxHandler.h index ef1482b3be..b65c6bb499 100644 --- a/extras/the jucer/src/model/components/jucer_ComboBoxHandler.h +++ b/extras/the jucer/src/model/components/jucer_ComboBoxHandler.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_ComponentNameProperty.h b/extras/the jucer/src/model/components/jucer_ComponentNameProperty.h index a5e04c6402..0558450a41 100644 --- a/extras/the jucer/src/model/components/jucer_ComponentNameProperty.h +++ b/extras/the jucer/src/model/components/jucer_ComponentNameProperty.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_ComponentTypeHandler.cpp b/extras/the jucer/src/model/components/jucer_ComponentTypeHandler.cpp index d28f3b0f81..0fc7c6037d 100644 --- a/extras/the jucer/src/model/components/jucer_ComponentTypeHandler.cpp +++ b/extras/the jucer/src/model/components/jucer_ComponentTypeHandler.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_ComponentTypeHandler.h b/extras/the jucer/src/model/components/jucer_ComponentTypeHandler.h index 4498ac2138..1ee4309fd9 100644 --- a/extras/the jucer/src/model/components/jucer_ComponentTypeHandler.h +++ b/extras/the jucer/src/model/components/jucer_ComponentTypeHandler.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_ComponentUndoableAction.h b/extras/the jucer/src/model/components/jucer_ComponentUndoableAction.h index 63701849f7..8a175fe173 100644 --- a/extras/the jucer/src/model/components/jucer_ComponentUndoableAction.h +++ b/extras/the jucer/src/model/components/jucer_ComponentUndoableAction.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_GenericComponentHandler.h b/extras/the jucer/src/model/components/jucer_GenericComponentHandler.h index d46287e3a8..9f92ecb6fa 100644 --- a/extras/the jucer/src/model/components/jucer_GenericComponentHandler.h +++ b/extras/the jucer/src/model/components/jucer_GenericComponentHandler.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_GroupComponentHandler.h b/extras/the jucer/src/model/components/jucer_GroupComponentHandler.h index 452517b9e8..d8d725b562 100644 --- a/extras/the jucer/src/model/components/jucer_GroupComponentHandler.h +++ b/extras/the jucer/src/model/components/jucer_GroupComponentHandler.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_HyperlinkButtonHandler.h b/extras/the jucer/src/model/components/jucer_HyperlinkButtonHandler.h index 7d473833c8..e2a61ad4bc 100644 --- a/extras/the jucer/src/model/components/jucer_HyperlinkButtonHandler.h +++ b/extras/the jucer/src/model/components/jucer_HyperlinkButtonHandler.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_JucerComponentHandler.h b/extras/the jucer/src/model/components/jucer_JucerComponentHandler.h index 700f5b60a6..b0811cd481 100644 --- a/extras/the jucer/src/model/components/jucer_JucerComponentHandler.h +++ b/extras/the jucer/src/model/components/jucer_JucerComponentHandler.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_LabelHandler.h b/extras/the jucer/src/model/components/jucer_LabelHandler.h index 0b7efd6be9..6aee5cbefb 100644 --- a/extras/the jucer/src/model/components/jucer_LabelHandler.h +++ b/extras/the jucer/src/model/components/jucer_LabelHandler.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_SliderHandler.h b/extras/the jucer/src/model/components/jucer_SliderHandler.h index 8adc25cfbb..1fd400d653 100644 --- a/extras/the jucer/src/model/components/jucer_SliderHandler.h +++ b/extras/the jucer/src/model/components/jucer_SliderHandler.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_TabbedComponentHandler.h b/extras/the jucer/src/model/components/jucer_TabbedComponentHandler.h index d33ed88b5f..e5be75fae8 100644 --- a/extras/the jucer/src/model/components/jucer_TabbedComponentHandler.h +++ b/extras/the jucer/src/model/components/jucer_TabbedComponentHandler.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_TextButtonHandler.h b/extras/the jucer/src/model/components/jucer_TextButtonHandler.h index 1dc4ec95d5..546c6ad10d 100644 --- a/extras/the jucer/src/model/components/jucer_TextButtonHandler.h +++ b/extras/the jucer/src/model/components/jucer_TextButtonHandler.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_TextEditorHandler.h b/extras/the jucer/src/model/components/jucer_TextEditorHandler.h index e6087381f5..2f3e85d10c 100644 --- a/extras/the jucer/src/model/components/jucer_TextEditorHandler.h +++ b/extras/the jucer/src/model/components/jucer_TextEditorHandler.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_ToggleButtonHandler.h b/extras/the jucer/src/model/components/jucer_ToggleButtonHandler.h index 8f00bf2dbc..8aa7de9c26 100644 --- a/extras/the jucer/src/model/components/jucer_ToggleButtonHandler.h +++ b/extras/the jucer/src/model/components/jucer_ToggleButtonHandler.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_TreeViewHandler.h b/extras/the jucer/src/model/components/jucer_TreeViewHandler.h index 76a64d2cb8..1f6b95e7b5 100644 --- a/extras/the jucer/src/model/components/jucer_TreeViewHandler.h +++ b/extras/the jucer/src/model/components/jucer_TreeViewHandler.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/components/jucer_ViewportHandler.h b/extras/the jucer/src/model/components/jucer_ViewportHandler.h index d9a8c13ef0..76b55f1aeb 100644 --- a/extras/the jucer/src/model/components/jucer_ViewportHandler.h +++ b/extras/the jucer/src/model/components/jucer_ViewportHandler.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/documents/jucer_ButtonDocument.cpp b/extras/the jucer/src/model/documents/jucer_ButtonDocument.cpp index f89cd0c79b..62fb344ce1 100644 --- a/extras/the jucer/src/model/documents/jucer_ButtonDocument.cpp +++ b/extras/the jucer/src/model/documents/jucer_ButtonDocument.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/documents/jucer_ButtonDocument.h b/extras/the jucer/src/model/documents/jucer_ButtonDocument.h index c85e96496f..d1cfada875 100644 --- a/extras/the jucer/src/model/documents/jucer_ButtonDocument.h +++ b/extras/the jucer/src/model/documents/jucer_ButtonDocument.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/documents/jucer_ComponentDocument.cpp b/extras/the jucer/src/model/documents/jucer_ComponentDocument.cpp index ad844bdcd4..5ae03de3d1 100644 --- a/extras/the jucer/src/model/documents/jucer_ComponentDocument.cpp +++ b/extras/the jucer/src/model/documents/jucer_ComponentDocument.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/documents/jucer_ComponentDocument.h b/extras/the jucer/src/model/documents/jucer_ComponentDocument.h index f1b6ebc8f2..61d7d4f361 100644 --- a/extras/the jucer/src/model/documents/jucer_ComponentDocument.h +++ b/extras/the jucer/src/model/documents/jucer_ComponentDocument.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/jucer_BinaryResources.cpp b/extras/the jucer/src/model/jucer_BinaryResources.cpp index 79983abd38..4e04a8a654 100644 --- a/extras/the jucer/src/model/jucer_BinaryResources.cpp +++ b/extras/the jucer/src/model/jucer_BinaryResources.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/jucer_BinaryResources.h b/extras/the jucer/src/model/jucer_BinaryResources.h index 4610fab8f3..6ecfeb45ca 100644 --- a/extras/the jucer/src/model/jucer_BinaryResources.h +++ b/extras/the jucer/src/model/jucer_BinaryResources.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/jucer_ComponentLayout.cpp b/extras/the jucer/src/model/jucer_ComponentLayout.cpp index d7141c93aa..cc3f1f5961 100644 --- a/extras/the jucer/src/model/jucer_ComponentLayout.cpp +++ b/extras/the jucer/src/model/jucer_ComponentLayout.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/jucer_ComponentLayout.h b/extras/the jucer/src/model/jucer_ComponentLayout.h index d135c40b49..1207919af8 100644 --- a/extras/the jucer/src/model/jucer_ComponentLayout.h +++ b/extras/the jucer/src/model/jucer_ComponentLayout.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/jucer_GeneratedCode.cpp b/extras/the jucer/src/model/jucer_GeneratedCode.cpp index 761cad5166..e2fd20cef5 100644 --- a/extras/the jucer/src/model/jucer_GeneratedCode.cpp +++ b/extras/the jucer/src/model/jucer_GeneratedCode.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/jucer_GeneratedCode.h b/extras/the jucer/src/model/jucer_GeneratedCode.h index 2fa47ebe0e..f739d8eb37 100644 --- a/extras/the jucer/src/model/jucer_GeneratedCode.h +++ b/extras/the jucer/src/model/jucer_GeneratedCode.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/jucer_JucerDocument.cpp b/extras/the jucer/src/model/jucer_JucerDocument.cpp index c04fbe377a..f829bf1415 100644 --- a/extras/the jucer/src/model/jucer_JucerDocument.cpp +++ b/extras/the jucer/src/model/jucer_JucerDocument.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/jucer_JucerDocument.h b/extras/the jucer/src/model/jucer_JucerDocument.h index 3ddcec7818..fb61d728b0 100644 --- a/extras/the jucer/src/model/jucer_JucerDocument.h +++ b/extras/the jucer/src/model/jucer_JucerDocument.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/jucer_ObjectTypes.cpp b/extras/the jucer/src/model/jucer_ObjectTypes.cpp index dbc203bf96..b229b4ced5 100644 --- a/extras/the jucer/src/model/jucer_ObjectTypes.cpp +++ b/extras/the jucer/src/model/jucer_ObjectTypes.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/jucer_ObjectTypes.h b/extras/the jucer/src/model/jucer_ObjectTypes.h index 936f68f60e..6b018ff21e 100644 --- a/extras/the jucer/src/model/jucer_ObjectTypes.h +++ b/extras/the jucer/src/model/jucer_ObjectTypes.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/jucer_PaintRoutine.cpp b/extras/the jucer/src/model/jucer_PaintRoutine.cpp index 4f16429d8f..501bfb7485 100644 --- a/extras/the jucer/src/model/jucer_PaintRoutine.cpp +++ b/extras/the jucer/src/model/jucer_PaintRoutine.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/jucer_PaintRoutine.h b/extras/the jucer/src/model/jucer_PaintRoutine.h index ff4af3b570..4722f39c0f 100644 --- a/extras/the jucer/src/model/jucer_PaintRoutine.h +++ b/extras/the jucer/src/model/jucer_PaintRoutine.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_ColouredElement.cpp b/extras/the jucer/src/model/paintelements/jucer_ColouredElement.cpp index 2de1c038b5..b73032cd63 100644 --- a/extras/the jucer/src/model/paintelements/jucer_ColouredElement.cpp +++ b/extras/the jucer/src/model/paintelements/jucer_ColouredElement.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_ColouredElement.h b/extras/the jucer/src/model/paintelements/jucer_ColouredElement.h index c7466de885..f84c8aab90 100644 --- a/extras/the jucer/src/model/paintelements/jucer_ColouredElement.h +++ b/extras/the jucer/src/model/paintelements/jucer_ColouredElement.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_ElementSiblingComponent.h b/extras/the jucer/src/model/paintelements/jucer_ElementSiblingComponent.h index 587b538dca..3972a1458f 100644 --- a/extras/the jucer/src/model/paintelements/jucer_ElementSiblingComponent.h +++ b/extras/the jucer/src/model/paintelements/jucer_ElementSiblingComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_FillType.cpp b/extras/the jucer/src/model/paintelements/jucer_FillType.cpp index 0d41eb8001..f2d77f7e8b 100644 --- a/extras/the jucer/src/model/paintelements/jucer_FillType.cpp +++ b/extras/the jucer/src/model/paintelements/jucer_FillType.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_FillType.h b/extras/the jucer/src/model/paintelements/jucer_FillType.h index b014cd5a13..08c5559729 100644 --- a/extras/the jucer/src/model/paintelements/jucer_FillType.h +++ b/extras/the jucer/src/model/paintelements/jucer_FillType.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_GradientPointComponent.h b/extras/the jucer/src/model/paintelements/jucer_GradientPointComponent.h index f17c901f47..a0d2c3fd55 100644 --- a/extras/the jucer/src/model/paintelements/jucer_GradientPointComponent.h +++ b/extras/the jucer/src/model/paintelements/jucer_GradientPointComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_ImageResourceProperty.h b/extras/the jucer/src/model/paintelements/jucer_ImageResourceProperty.h index 86000fea06..d8295badeb 100644 --- a/extras/the jucer/src/model/paintelements/jucer_ImageResourceProperty.h +++ b/extras/the jucer/src/model/paintelements/jucer_ImageResourceProperty.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_PaintElement.cpp b/extras/the jucer/src/model/paintelements/jucer_PaintElement.cpp index db2c693894..32131dcf5f 100644 --- a/extras/the jucer/src/model/paintelements/jucer_PaintElement.cpp +++ b/extras/the jucer/src/model/paintelements/jucer_PaintElement.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_PaintElement.h b/extras/the jucer/src/model/paintelements/jucer_PaintElement.h index e61a06934d..026eea6030 100644 --- a/extras/the jucer/src/model/paintelements/jucer_PaintElement.h +++ b/extras/the jucer/src/model/paintelements/jucer_PaintElement.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_PaintElementEllipse.h b/extras/the jucer/src/model/paintelements/jucer_PaintElementEllipse.h index 334d5ecb32..18e2eb1a71 100644 --- a/extras/the jucer/src/model/paintelements/jucer_PaintElementEllipse.h +++ b/extras/the jucer/src/model/paintelements/jucer_PaintElementEllipse.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_PaintElementGroup.h b/extras/the jucer/src/model/paintelements/jucer_PaintElementGroup.h index 7958686c67..262484c565 100644 --- a/extras/the jucer/src/model/paintelements/jucer_PaintElementGroup.h +++ b/extras/the jucer/src/model/paintelements/jucer_PaintElementGroup.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_PaintElementImage.h b/extras/the jucer/src/model/paintelements/jucer_PaintElementImage.h index 4a4cddb5f1..86fd22e777 100644 --- a/extras/the jucer/src/model/paintelements/jucer_PaintElementImage.h +++ b/extras/the jucer/src/model/paintelements/jucer_PaintElementImage.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_PaintElementPath.cpp b/extras/the jucer/src/model/paintelements/jucer_PaintElementPath.cpp index 88557a84d6..17d3d994cc 100644 --- a/extras/the jucer/src/model/paintelements/jucer_PaintElementPath.cpp +++ b/extras/the jucer/src/model/paintelements/jucer_PaintElementPath.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_PaintElementPath.h b/extras/the jucer/src/model/paintelements/jucer_PaintElementPath.h index 728fdf6974..45a926ff62 100644 --- a/extras/the jucer/src/model/paintelements/jucer_PaintElementPath.h +++ b/extras/the jucer/src/model/paintelements/jucer_PaintElementPath.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_PaintElementRectangle.h b/extras/the jucer/src/model/paintelements/jucer_PaintElementRectangle.h index a5a3680287..f64253d3a0 100644 --- a/extras/the jucer/src/model/paintelements/jucer_PaintElementRectangle.h +++ b/extras/the jucer/src/model/paintelements/jucer_PaintElementRectangle.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_PaintElementRoundedRectangle.h b/extras/the jucer/src/model/paintelements/jucer_PaintElementRoundedRectangle.h index 2f65f827c8..136565b0f7 100644 --- a/extras/the jucer/src/model/paintelements/jucer_PaintElementRoundedRectangle.h +++ b/extras/the jucer/src/model/paintelements/jucer_PaintElementRoundedRectangle.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_PaintElementText.h b/extras/the jucer/src/model/paintelements/jucer_PaintElementText.h index 19b5a8aa80..ac42149140 100644 --- a/extras/the jucer/src/model/paintelements/jucer_PaintElementText.h +++ b/extras/the jucer/src/model/paintelements/jucer_PaintElementText.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_PaintElementUndoableAction.h b/extras/the jucer/src/model/paintelements/jucer_PaintElementUndoableAction.h index 71b4662473..e6cd833c4d 100644 --- a/extras/the jucer/src/model/paintelements/jucer_PaintElementUndoableAction.h +++ b/extras/the jucer/src/model/paintelements/jucer_PaintElementUndoableAction.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_PointComponent.h b/extras/the jucer/src/model/paintelements/jucer_PointComponent.h index 51bff7f09b..6ca207603b 100644 --- a/extras/the jucer/src/model/paintelements/jucer_PointComponent.h +++ b/extras/the jucer/src/model/paintelements/jucer_PointComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_StrokeType.cpp b/extras/the jucer/src/model/paintelements/jucer_StrokeType.cpp index 87543b7d02..db223d2272 100644 --- a/extras/the jucer/src/model/paintelements/jucer_StrokeType.cpp +++ b/extras/the jucer/src/model/paintelements/jucer_StrokeType.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/model/paintelements/jucer_StrokeType.h b/extras/the jucer/src/model/paintelements/jucer_StrokeType.h index e5403a3e75..ba147ea67e 100644 --- a/extras/the jucer/src/model/paintelements/jucer_StrokeType.h +++ b/extras/the jucer/src/model/paintelements/jucer_StrokeType.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/properties/jucer_ColourPropertyComponent.h b/extras/the jucer/src/properties/jucer_ColourPropertyComponent.h index 82ec4acdec..cdd28c3c8e 100644 --- a/extras/the jucer/src/properties/jucer_ColourPropertyComponent.h +++ b/extras/the jucer/src/properties/jucer_ColourPropertyComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/properties/jucer_ComponentBooleanProperty.h b/extras/the jucer/src/properties/jucer_ComponentBooleanProperty.h index 4e3694059c..082f9a5468 100644 --- a/extras/the jucer/src/properties/jucer_ComponentBooleanProperty.h +++ b/extras/the jucer/src/properties/jucer_ComponentBooleanProperty.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/properties/jucer_ComponentChoiceProperty.h b/extras/the jucer/src/properties/jucer_ComponentChoiceProperty.h index 7fc24e8efd..9f5b66a0b3 100644 --- a/extras/the jucer/src/properties/jucer_ComponentChoiceProperty.h +++ b/extras/the jucer/src/properties/jucer_ComponentChoiceProperty.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/properties/jucer_ComponentColourProperty.h b/extras/the jucer/src/properties/jucer_ComponentColourProperty.h index e10c3a0626..9d8a997756 100644 --- a/extras/the jucer/src/properties/jucer_ComponentColourProperty.h +++ b/extras/the jucer/src/properties/jucer_ComponentColourProperty.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/properties/jucer_ComponentTextProperty.h b/extras/the jucer/src/properties/jucer_ComponentTextProperty.h index fdd466b6d3..98ec648620 100644 --- a/extras/the jucer/src/properties/jucer_ComponentTextProperty.h +++ b/extras/the jucer/src/properties/jucer_ComponentTextProperty.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/properties/jucer_FilePropertyComponent.cpp b/extras/the jucer/src/properties/jucer_FilePropertyComponent.cpp index 4f805ae8a8..d308951a22 100644 --- a/extras/the jucer/src/properties/jucer_FilePropertyComponent.cpp +++ b/extras/the jucer/src/properties/jucer_FilePropertyComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/properties/jucer_FilePropertyComponent.h b/extras/the jucer/src/properties/jucer_FilePropertyComponent.h index c01779f8be..916a1d9042 100644 --- a/extras/the jucer/src/properties/jucer_FilePropertyComponent.h +++ b/extras/the jucer/src/properties/jucer_FilePropertyComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/properties/jucer_FontPropertyComponent.cpp b/extras/the jucer/src/properties/jucer_FontPropertyComponent.cpp index e1b7395161..7620d75483 100644 --- a/extras/the jucer/src/properties/jucer_FontPropertyComponent.cpp +++ b/extras/the jucer/src/properties/jucer_FontPropertyComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/properties/jucer_FontPropertyComponent.h b/extras/the jucer/src/properties/jucer_FontPropertyComponent.h index 4e5f7ec1fd..fb2356a4d6 100644 --- a/extras/the jucer/src/properties/jucer_FontPropertyComponent.h +++ b/extras/the jucer/src/properties/jucer_FontPropertyComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/properties/jucer_JustificationProperty.h b/extras/the jucer/src/properties/jucer_JustificationProperty.h index 3e15aa0c7a..99072151aa 100644 --- a/extras/the jucer/src/properties/jucer_JustificationProperty.h +++ b/extras/the jucer/src/properties/jucer_JustificationProperty.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/properties/jucer_PositionPropertyBase.h b/extras/the jucer/src/properties/jucer_PositionPropertyBase.h index 993cc87356..df89c7c898 100644 --- a/extras/the jucer/src/properties/jucer_PositionPropertyBase.h +++ b/extras/the jucer/src/properties/jucer_PositionPropertyBase.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_CommandIDs.h b/extras/the jucer/src/ui/jucer_CommandIDs.h index f9afb6c6cb..703b298dcf 100644 --- a/extras/the jucer/src/ui/jucer_CommandIDs.h +++ b/extras/the jucer/src/ui/jucer_CommandIDs.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_ComponentLayoutEditor.cpp b/extras/the jucer/src/ui/jucer_ComponentLayoutEditor.cpp index 17ccae3b97..1ae6183754 100644 --- a/extras/the jucer/src/ui/jucer_ComponentLayoutEditor.cpp +++ b/extras/the jucer/src/ui/jucer_ComponentLayoutEditor.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_ComponentLayoutEditor.h b/extras/the jucer/src/ui/jucer_ComponentLayoutEditor.h index 362216fac9..5cc15c8529 100644 --- a/extras/the jucer/src/ui/jucer_ComponentLayoutEditor.h +++ b/extras/the jucer/src/ui/jucer_ComponentLayoutEditor.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_ComponentLayoutPanel.cpp b/extras/the jucer/src/ui/jucer_ComponentLayoutPanel.cpp index 39c39673dc..e248599825 100644 --- a/extras/the jucer/src/ui/jucer_ComponentLayoutPanel.cpp +++ b/extras/the jucer/src/ui/jucer_ComponentLayoutPanel.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_ComponentLayoutPanel.h b/extras/the jucer/src/ui/jucer_ComponentLayoutPanel.h index bbf5a5aab7..116ba0e676 100644 --- a/extras/the jucer/src/ui/jucer_ComponentLayoutPanel.h +++ b/extras/the jucer/src/ui/jucer_ComponentLayoutPanel.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_ComponentOverlayComponent.cpp b/extras/the jucer/src/ui/jucer_ComponentOverlayComponent.cpp index a6ae3d8a28..35bb070d36 100644 --- a/extras/the jucer/src/ui/jucer_ComponentOverlayComponent.cpp +++ b/extras/the jucer/src/ui/jucer_ComponentOverlayComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_ComponentOverlayComponent.h b/extras/the jucer/src/ui/jucer_ComponentOverlayComponent.h index 6dffcaa956..8bd208d458 100644 --- a/extras/the jucer/src/ui/jucer_ComponentOverlayComponent.h +++ b/extras/the jucer/src/ui/jucer_ComponentOverlayComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_EditingPanelBase.cpp b/extras/the jucer/src/ui/jucer_EditingPanelBase.cpp index 026350815e..3fc81b60b9 100644 --- a/extras/the jucer/src/ui/jucer_EditingPanelBase.cpp +++ b/extras/the jucer/src/ui/jucer_EditingPanelBase.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_EditingPanelBase.h b/extras/the jucer/src/ui/jucer_EditingPanelBase.h index 8de397077a..62bc27b3a2 100644 --- a/extras/the jucer/src/ui/jucer_EditingPanelBase.h +++ b/extras/the jucer/src/ui/jucer_EditingPanelBase.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_JucerDocumentHolder.cpp b/extras/the jucer/src/ui/jucer_JucerDocumentHolder.cpp index 318d3594a4..ff7a6bcd0f 100644 --- a/extras/the jucer/src/ui/jucer_JucerDocumentHolder.cpp +++ b/extras/the jucer/src/ui/jucer_JucerDocumentHolder.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_JucerDocumentHolder.h b/extras/the jucer/src/ui/jucer_JucerDocumentHolder.h index b01a07c543..0585d0f62c 100644 --- a/extras/the jucer/src/ui/jucer_JucerDocumentHolder.h +++ b/extras/the jucer/src/ui/jucer_JucerDocumentHolder.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_MainWindow.cpp b/extras/the jucer/src/ui/jucer_MainWindow.cpp index 4e83580fbb..dcd8724726 100644 --- a/extras/the jucer/src/ui/jucer_MainWindow.cpp +++ b/extras/the jucer/src/ui/jucer_MainWindow.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_MainWindow.h b/extras/the jucer/src/ui/jucer_MainWindow.h index 3ca6910844..639900e326 100644 --- a/extras/the jucer/src/ui/jucer_MainWindow.h +++ b/extras/the jucer/src/ui/jucer_MainWindow.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_PaintRoutineEditor.cpp b/extras/the jucer/src/ui/jucer_PaintRoutineEditor.cpp index 36aee5cbfb..730fe595f1 100644 --- a/extras/the jucer/src/ui/jucer_PaintRoutineEditor.cpp +++ b/extras/the jucer/src/ui/jucer_PaintRoutineEditor.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_PaintRoutineEditor.h b/extras/the jucer/src/ui/jucer_PaintRoutineEditor.h index e973a09587..07f9deeb98 100644 --- a/extras/the jucer/src/ui/jucer_PaintRoutineEditor.h +++ b/extras/the jucer/src/ui/jucer_PaintRoutineEditor.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_PaintRoutinePanel.cpp b/extras/the jucer/src/ui/jucer_PaintRoutinePanel.cpp index d9a924a7a8..74fc9ac90e 100644 --- a/extras/the jucer/src/ui/jucer_PaintRoutinePanel.cpp +++ b/extras/the jucer/src/ui/jucer_PaintRoutinePanel.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_PaintRoutinePanel.h b/extras/the jucer/src/ui/jucer_PaintRoutinePanel.h index 35cac235c4..34abf31340 100644 --- a/extras/the jucer/src/ui/jucer_PaintRoutinePanel.h +++ b/extras/the jucer/src/ui/jucer_PaintRoutinePanel.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_PrefsPanel.cpp b/extras/the jucer/src/ui/jucer_PrefsPanel.cpp index 5fbff56ea6..17132d19ce 100644 --- a/extras/the jucer/src/ui/jucer_PrefsPanel.cpp +++ b/extras/the jucer/src/ui/jucer_PrefsPanel.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_PrefsPanel.h b/extras/the jucer/src/ui/jucer_PrefsPanel.h index 918f44d04c..d0ae78874f 100644 --- a/extras/the jucer/src/ui/jucer_PrefsPanel.h +++ b/extras/the jucer/src/ui/jucer_PrefsPanel.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_ResourceEditorPanel.cpp b/extras/the jucer/src/ui/jucer_ResourceEditorPanel.cpp index b7ac2e42ed..c2e180bd08 100644 --- a/extras/the jucer/src/ui/jucer_ResourceEditorPanel.cpp +++ b/extras/the jucer/src/ui/jucer_ResourceEditorPanel.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_ResourceEditorPanel.h b/extras/the jucer/src/ui/jucer_ResourceEditorPanel.h index 189acb0145..86df10713e 100644 --- a/extras/the jucer/src/ui/jucer_ResourceEditorPanel.h +++ b/extras/the jucer/src/ui/jucer_ResourceEditorPanel.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_SnapGridPainter.cpp b/extras/the jucer/src/ui/jucer_SnapGridPainter.cpp index 26e9ab0b3e..beee261cd3 100644 --- a/extras/the jucer/src/ui/jucer_SnapGridPainter.cpp +++ b/extras/the jucer/src/ui/jucer_SnapGridPainter.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_SnapGridPainter.h b/extras/the jucer/src/ui/jucer_SnapGridPainter.h index 755a1970fa..e605a54bf8 100644 --- a/extras/the jucer/src/ui/jucer_SnapGridPainter.h +++ b/extras/the jucer/src/ui/jucer_SnapGridPainter.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_TestComponent.cpp b/extras/the jucer/src/ui/jucer_TestComponent.cpp index 03d8ee7881..3f2da1a44b 100644 --- a/extras/the jucer/src/ui/jucer_TestComponent.cpp +++ b/extras/the jucer/src/ui/jucer_TestComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/ui/jucer_TestComponent.h b/extras/the jucer/src/ui/jucer_TestComponent.h index 37dfcb2b5e..f23a5a656a 100644 --- a/extras/the jucer/src/ui/jucer_TestComponent.h +++ b/extras/the jucer/src/ui/jucer_TestComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/utility/jucer_ColourEditorComponent.h b/extras/the jucer/src/utility/jucer_ColourEditorComponent.h index f3fa89e4f5..9c3a6d0138 100644 --- a/extras/the jucer/src/utility/jucer_ColourEditorComponent.h +++ b/extras/the jucer/src/utility/jucer_ColourEditorComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/utility/jucer_Colours.h b/extras/the jucer/src/utility/jucer_Colours.h index 3d9b61f8c3..8395ba2ea2 100644 --- a/extras/the jucer/src/utility/jucer_Colours.h +++ b/extras/the jucer/src/utility/jucer_Colours.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/utility/jucer_StoredSettings.cpp b/extras/the jucer/src/utility/jucer_StoredSettings.cpp index ba91828c33..003c769b3f 100644 --- a/extras/the jucer/src/utility/jucer_StoredSettings.cpp +++ b/extras/the jucer/src/utility/jucer_StoredSettings.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/utility/jucer_StoredSettings.h b/extras/the jucer/src/utility/jucer_StoredSettings.h index ddc6f6a2f8..97a121b502 100644 --- a/extras/the jucer/src/utility/jucer_StoredSettings.h +++ b/extras/the jucer/src/utility/jucer_StoredSettings.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/extras/the jucer/src/utility/jucer_UtilityFunctions.cpp b/extras/the jucer/src/utility/jucer_UtilityFunctions.cpp index b12abcba64..843031b1a9 100644 --- a/extras/the jucer/src/utility/jucer_UtilityFunctions.cpp +++ b/extras/the jucer/src/utility/jucer_UtilityFunctions.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -221,20 +221,20 @@ const String makeValidCppIdentifier (String s, } // make sure it's not a reserved c++ keyword.. - static const tchar* const reservedWords[] = - { + static const tchar* const reservedWords[] = + { T("auto"), T("const"), T("double"), T("float"), T("int"), T("short"), T("struct"), T("return"), T("static"), T("union"), T("while"), T("asm"), T("dynamic_cast"), - T("unsigned"), T("break"), T("continue"), T("else"), T("for"), T("long"), T("signed"), - T("switch"), T("void"), T("case"), T("default"), T("enum"), T("goto"), T("register"), - T("sizeof"), T("typedef"), T("volatile"), T("char"), T("do"), T("extern"), T("if"), - T("namespace"), T("reinterpret_cast"), T("try"), T("bool"), T("explicit"), T("new"), - T("static_cast"), T("typeid"), T("catch"), T("false"), T("operator"), T("template"), - T("typename"), T("class"), T("friend"), T("private"), T("this"), T("using"), T("const_cast"), - T("inline"), T("public"), T("throw"), T("virtual"), T("delete"), T("mutable"), T("protected"), - T("true"), T("wchar_t"), T("and"), T("bitand"), T("compl"), T("not_eq"), T("or_eq"), - T("xor_eq"), T("and_eq"), T("bitor"), T("not"), T("or"), T("xor"), T("cin"), T("endl"), - T("INT_MIN"), T("iomanip"), T("main"), T("npos"), T("std"), T("cout"), T("include"), + T("unsigned"), T("break"), T("continue"), T("else"), T("for"), T("long"), T("signed"), + T("switch"), T("void"), T("case"), T("default"), T("enum"), T("goto"), T("register"), + T("sizeof"), T("typedef"), T("volatile"), T("char"), T("do"), T("extern"), T("if"), + T("namespace"), T("reinterpret_cast"), T("try"), T("bool"), T("explicit"), T("new"), + T("static_cast"), T("typeid"), T("catch"), T("false"), T("operator"), T("template"), + T("typename"), T("class"), T("friend"), T("private"), T("this"), T("using"), T("const_cast"), + T("inline"), T("public"), T("throw"), T("virtual"), T("delete"), T("mutable"), T("protected"), + T("true"), T("wchar_t"), T("and"), T("bitand"), T("compl"), T("not_eq"), T("or_eq"), + T("xor_eq"), T("and_eq"), T("bitor"), T("not"), T("or"), T("xor"), T("cin"), T("endl"), + T("INT_MIN"), T("iomanip"), T("main"), T("npos"), T("std"), T("cout"), T("include"), T("INT_MAX"), T("iostream"), T("MAX_RAND"), T("NULL"), T("string") }; diff --git a/extras/the jucer/src/utility/jucer_UtilityFunctions.h b/extras/the jucer/src/utility/jucer_UtilityFunctions.h index 578c544d5b..b12158018e 100644 --- a/extras/the jucer/src/utility/jucer_UtilityFunctions.h +++ b/extras/the jucer/src/utility/jucer_UtilityFunctions.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_DefineMacros.h b/src/juce_DefineMacros.h index d2f0b84bf9..95bea5f4e4 100644 --- a/src/juce_DefineMacros.h +++ b/src/juce_DefineMacros.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_WithoutMacros.h b/src/juce_WithoutMacros.h index 2524d58a92..bbf2d0898f 100644 --- a/src/juce_WithoutMacros.h +++ b/src/juce_WithoutMacros.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_app_includes.h b/src/juce_app_includes.h index 5a663010a4..c1f8a5ef84 100644 --- a/src/juce_app_includes.h +++ b/src/juce_app_includes.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/application/juce_Application.cpp b/src/juce_appframework/application/juce_Application.cpp index d065b224f2..9e9b5c9a4d 100644 --- a/src/juce_appframework/application/juce_Application.cpp +++ b/src/juce_appframework/application/juce_Application.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/application/juce_Application.h b/src/juce_appframework/application/juce_Application.h index 0a0adf2b2b..ca39334f05 100644 --- a/src/juce_appframework/application/juce_Application.h +++ b/src/juce_appframework/application/juce_Application.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/application/juce_ApplicationCommandID.h b/src/juce_appframework/application/juce_ApplicationCommandID.h index 3e549dbdff..190b9450f5 100644 --- a/src/juce_appframework/application/juce_ApplicationCommandID.h +++ b/src/juce_appframework/application/juce_ApplicationCommandID.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/application/juce_ApplicationCommandInfo.cpp b/src/juce_appframework/application/juce_ApplicationCommandInfo.cpp index 49d7be309d..72036858f3 100644 --- a/src/juce_appframework/application/juce_ApplicationCommandInfo.cpp +++ b/src/juce_appframework/application/juce_ApplicationCommandInfo.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/application/juce_ApplicationCommandInfo.h b/src/juce_appframework/application/juce_ApplicationCommandInfo.h index 3324848567..e21ad78d18 100644 --- a/src/juce_appframework/application/juce_ApplicationCommandInfo.h +++ b/src/juce_appframework/application/juce_ApplicationCommandInfo.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/application/juce_ApplicationCommandManager.cpp b/src/juce_appframework/application/juce_ApplicationCommandManager.cpp index f67ee75450..22580d0f5c 100644 --- a/src/juce_appframework/application/juce_ApplicationCommandManager.cpp +++ b/src/juce_appframework/application/juce_ApplicationCommandManager.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/application/juce_ApplicationCommandManager.h b/src/juce_appframework/application/juce_ApplicationCommandManager.h index 512d5b7f28..7ed845b62a 100644 --- a/src/juce_appframework/application/juce_ApplicationCommandManager.h +++ b/src/juce_appframework/application/juce_ApplicationCommandManager.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/application/juce_ApplicationCommandTarget.cpp b/src/juce_appframework/application/juce_ApplicationCommandTarget.cpp index 39c4178f7d..020b030262 100644 --- a/src/juce_appframework/application/juce_ApplicationCommandTarget.cpp +++ b/src/juce_appframework/application/juce_ApplicationCommandTarget.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/application/juce_ApplicationCommandTarget.h b/src/juce_appframework/application/juce_ApplicationCommandTarget.h index 2d7f55985f..9c9176b0c0 100644 --- a/src/juce_appframework/application/juce_ApplicationCommandTarget.h +++ b/src/juce_appframework/application/juce_ApplicationCommandTarget.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/application/juce_ApplicationProperties.cpp b/src/juce_appframework/application/juce_ApplicationProperties.cpp index ec77b30c5c..5eb7558346 100644 --- a/src/juce_appframework/application/juce_ApplicationProperties.cpp +++ b/src/juce_appframework/application/juce_ApplicationProperties.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -143,7 +143,7 @@ PropertiesFile* ApplicationProperties::getCommonSettings (const bool returnUserP { if (commonSettingsAreReadOnly == 0) commonSettingsAreReadOnly = commonProps->save() ? -1 : 1; - + if (commonSettingsAreReadOnly > 0) return userProps; } diff --git a/src/juce_appframework/application/juce_ApplicationProperties.h b/src/juce_appframework/application/juce_ApplicationProperties.h index 5e21ab33fa..2cddc05d29 100644 --- a/src/juce_appframework/application/juce_ApplicationProperties.h +++ b/src/juce_appframework/application/juce_ApplicationProperties.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -110,7 +110,7 @@ public: Note that when you search the user PropertiesFile for a value that it doesn't contain, the common settings are used as a second-chance place to look. This is done via the - PropertySet::setFallbackPropertySet() method - by default the common settings are set + PropertySet::setFallbackPropertySet() method - by default the common settings are set to the fallback for the user settings. @see getCommonSettings @@ -122,12 +122,12 @@ public: The first time this is called, it will create and load the properties file. @param returnUserPropsIfReadOnly if this is true, and the common properties file is - read-only (e.g. because the user doesn't have permission to write - to shared files), then this will return the user settings instead, - (like getUserSettings() would do). This is handy if you'd like to + read-only (e.g. because the user doesn't have permission to write + to shared files), then this will return the user settings instead, + (like getUserSettings() would do). This is handy if you'd like to write a value to the common settings, but if that's no possible, - then you'd rather write to the user settings than none at all. - If returnUserPropsIfReadOnly is false, this method will always return + then you'd rather write to the user settings than none at all. + If returnUserPropsIfReadOnly is false, this method will always return the common settings, even if any changes to them can't be saved. @see getUserSettings */ diff --git a/src/juce_appframework/application/juce_DeletedAtShutdown.cpp b/src/juce_appframework/application/juce_DeletedAtShutdown.cpp index db3309dc39..430a30e853 100644 --- a/src/juce_appframework/application/juce_DeletedAtShutdown.cpp +++ b/src/juce_appframework/application/juce_DeletedAtShutdown.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/application/juce_DeletedAtShutdown.h b/src/juce_appframework/application/juce_DeletedAtShutdown.h index c69b04f2bd..f27fa210b8 100644 --- a/src/juce_appframework/application/juce_DeletedAtShutdown.h +++ b/src/juce_appframework/application/juce_DeletedAtShutdown.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/application/juce_PropertiesFile.cpp b/src/juce_appframework/application/juce_PropertiesFile.cpp index c1db2d0d7b..36ee769f24 100644 --- a/src/juce_appframework/application/juce_PropertiesFile.cpp +++ b/src/juce_appframework/application/juce_PropertiesFile.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -158,8 +158,8 @@ bool PropertiesFile::save() stopTimer(); - if (file == File::nonexistent - || file.isDirectory() + if (file == File::nonexistent + || file.isDirectory() || ! file.getParentDirectory().createDirectory()) return false; diff --git a/src/juce_appframework/application/juce_PropertiesFile.h b/src/juce_appframework/application/juce_PropertiesFile.h index b12da6f1df..21f6ef536c 100644 --- a/src/juce_appframework/application/juce_PropertiesFile.h +++ b/src/juce_appframework/application/juce_PropertiesFile.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/application/juce_SystemClipboard.h b/src/juce_appframework/application/juce_SystemClipboard.h index 8995c08b14..d93335ea7e 100644 --- a/src/juce_appframework/application/juce_SystemClipboard.h +++ b/src/juce_appframework/application/juce_SystemClipboard.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/flac/libFLAC/juce_FlacHeader.h b/src/juce_appframework/audio/audio_file_formats/flac/libFLAC/juce_FlacHeader.h index c8d2eeecd2..99862a2e2c 100644 --- a/src/juce_appframework/audio/audio_file_formats/flac/libFLAC/juce_FlacHeader.h +++ b/src/juce_appframework/audio/audio_file_formats/flac/libFLAC/juce_FlacHeader.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_AiffAudioFormat.cpp b/src/juce_appframework/audio/audio_file_formats/juce_AiffAudioFormat.cpp index 739946edb5..630d19fcf5 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_AiffAudioFormat.cpp +++ b/src/juce_appframework/audio/audio_file_formats/juce_AiffAudioFormat.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_AiffAudioFormat.h b/src/juce_appframework/audio/audio_file_formats/juce_AiffAudioFormat.h index b3875e2628..0b62663683 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_AiffAudioFormat.h +++ b/src/juce_appframework/audio/audio_file_formats/juce_AiffAudioFormat.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_AudioCDReader.cpp b/src/juce_appframework/audio/audio_file_formats/juce_AudioCDReader.cpp index 8b8419f42a..d4bf2bd0f4 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_AudioCDReader.cpp +++ b/src/juce_appframework/audio/audio_file_formats/juce_AudioCDReader.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_AudioCDReader.h b/src/juce_appframework/audio/audio_file_formats/juce_AudioCDReader.h index 12bddbd021..229fdd7680 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_AudioCDReader.h +++ b/src/juce_appframework/audio/audio_file_formats/juce_AudioCDReader.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_AudioFormat.cpp b/src/juce_appframework/audio/audio_file_formats/juce_AudioFormat.cpp index d924450655..1e094f2168 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_AudioFormat.cpp +++ b/src/juce_appframework/audio/audio_file_formats/juce_AudioFormat.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_AudioFormat.h b/src/juce_appframework/audio/audio_file_formats/juce_AudioFormat.h index 0ca2b4e739..77fcc79967 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_AudioFormat.h +++ b/src/juce_appframework/audio/audio_file_formats/juce_AudioFormat.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_AudioFormatManager.cpp b/src/juce_appframework/audio/audio_file_formats/juce_AudioFormatManager.cpp index fc6a8cf93c..e69d1abb71 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_AudioFormatManager.cpp +++ b/src/juce_appframework/audio/audio_file_formats/juce_AudioFormatManager.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_AudioFormatManager.h b/src/juce_appframework/audio/audio_file_formats/juce_AudioFormatManager.h index 97a711ec25..ab27a2c2de 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_AudioFormatManager.h +++ b/src/juce_appframework/audio/audio_file_formats/juce_AudioFormatManager.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_AudioFormatReader.h b/src/juce_appframework/audio/audio_file_formats/juce_AudioFormatReader.h index 947a501f82..ba54597121 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_AudioFormatReader.h +++ b/src/juce_appframework/audio/audio_file_formats/juce_AudioFormatReader.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_AudioFormatWriter.h b/src/juce_appframework/audio/audio_file_formats/juce_AudioFormatWriter.h index efe920b6b9..925237a200 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_AudioFormatWriter.h +++ b/src/juce_appframework/audio/audio_file_formats/juce_AudioFormatWriter.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_AudioSubsectionReader.cpp b/src/juce_appframework/audio/audio_file_formats/juce_AudioSubsectionReader.cpp index 1b71b56b90..29aa4b3fc4 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_AudioSubsectionReader.cpp +++ b/src/juce_appframework/audio/audio_file_formats/juce_AudioSubsectionReader.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_AudioSubsectionReader.h b/src/juce_appframework/audio/audio_file_formats/juce_AudioSubsectionReader.h index 2c2c1d1b4b..d3cc155f73 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_AudioSubsectionReader.h +++ b/src/juce_appframework/audio/audio_file_formats/juce_AudioSubsectionReader.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_FlacAudioFormat.cpp b/src/juce_appframework/audio/audio_file_formats/juce_FlacAudioFormat.cpp index 3fa867c37e..b27e905961 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_FlacAudioFormat.cpp +++ b/src/juce_appframework/audio/audio_file_formats/juce_FlacAudioFormat.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_FlacAudioFormat.h b/src/juce_appframework/audio/audio_file_formats/juce_FlacAudioFormat.h index c84c5e323a..31a1745419 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_FlacAudioFormat.h +++ b/src/juce_appframework/audio/audio_file_formats/juce_FlacAudioFormat.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp b/src/juce_appframework/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp index 8d982b5f15..38cb115a73 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp +++ b/src/juce_appframework/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_OggVorbisAudioFormat.h b/src/juce_appframework/audio/audio_file_formats/juce_OggVorbisAudioFormat.h index bab1c8e18a..42faf98d6f 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_OggVorbisAudioFormat.h +++ b/src/juce_appframework/audio/audio_file_formats/juce_OggVorbisAudioFormat.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_WavAudioFormat.cpp b/src/juce_appframework/audio/audio_file_formats/juce_WavAudioFormat.cpp index d78cd0d5cd..3b7f17e70f 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_WavAudioFormat.cpp +++ b/src/juce_appframework/audio/audio_file_formats/juce_WavAudioFormat.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/juce_WavAudioFormat.h b/src/juce_appframework/audio/audio_file_formats/juce_WavAudioFormat.h index 1c44c3bb97..43322e8325 100644 --- a/src/juce_appframework/audio/audio_file_formats/juce_WavAudioFormat.h +++ b/src/juce_appframework/audio/audio_file_formats/juce_WavAudioFormat.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_file_formats/oggvorbis/juce_OggVorbisHeader.h b/src/juce_appframework/audio/audio_file_formats/oggvorbis/juce_OggVorbisHeader.h index a7dc276a2f..590e36b136 100644 --- a/src/juce_appframework/audio/audio_file_formats/oggvorbis/juce_OggVorbisHeader.h +++ b/src/juce_appframework/audio/audio_file_formats/oggvorbis/juce_OggVorbisHeader.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_AudioFormatReaderSource.cpp b/src/juce_appframework/audio/audio_sources/juce_AudioFormatReaderSource.cpp index dca06abbf1..b38adf8e16 100644 --- a/src/juce_appframework/audio/audio_sources/juce_AudioFormatReaderSource.cpp +++ b/src/juce_appframework/audio/audio_sources/juce_AudioFormatReaderSource.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_AudioFormatReaderSource.h b/src/juce_appframework/audio/audio_sources/juce_AudioFormatReaderSource.h index d2a10e1a73..65ee4ff111 100644 --- a/src/juce_appframework/audio/audio_sources/juce_AudioFormatReaderSource.h +++ b/src/juce_appframework/audio/audio_sources/juce_AudioFormatReaderSource.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_AudioSource.h b/src/juce_appframework/audio/audio_sources/juce_AudioSource.h index 9f372b3789..f74e61ed73 100644 --- a/src/juce_appframework/audio/audio_sources/juce_AudioSource.h +++ b/src/juce_appframework/audio/audio_sources/juce_AudioSource.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_AudioSourcePlayer.cpp b/src/juce_appframework/audio/audio_sources/juce_AudioSourcePlayer.cpp index bbcd6b75a8..ab7c8ed39f 100644 --- a/src/juce_appframework/audio/audio_sources/juce_AudioSourcePlayer.cpp +++ b/src/juce_appframework/audio/audio_sources/juce_AudioSourcePlayer.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_AudioSourcePlayer.h b/src/juce_appframework/audio/audio_sources/juce_AudioSourcePlayer.h index 3300fc6e27..85f872579d 100644 --- a/src/juce_appframework/audio/audio_sources/juce_AudioSourcePlayer.h +++ b/src/juce_appframework/audio/audio_sources/juce_AudioSourcePlayer.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_AudioTransportSource.cpp b/src/juce_appframework/audio/audio_sources/juce_AudioTransportSource.cpp index 97943cac09..f91b0f41dc 100644 --- a/src/juce_appframework/audio/audio_sources/juce_AudioTransportSource.cpp +++ b/src/juce_appframework/audio/audio_sources/juce_AudioTransportSource.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_AudioTransportSource.h b/src/juce_appframework/audio/audio_sources/juce_AudioTransportSource.h index cbe0172099..b1bfefa2db 100644 --- a/src/juce_appframework/audio/audio_sources/juce_AudioTransportSource.h +++ b/src/juce_appframework/audio/audio_sources/juce_AudioTransportSource.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_BufferingAudioSource.cpp b/src/juce_appframework/audio/audio_sources/juce_BufferingAudioSource.cpp index ecc5d0b82b..e4edd21d61 100644 --- a/src/juce_appframework/audio/audio_sources/juce_BufferingAudioSource.cpp +++ b/src/juce_appframework/audio/audio_sources/juce_BufferingAudioSource.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_BufferingAudioSource.h b/src/juce_appframework/audio/audio_sources/juce_BufferingAudioSource.h index 1f92bf819a..673fd06af3 100644 --- a/src/juce_appframework/audio/audio_sources/juce_BufferingAudioSource.h +++ b/src/juce_appframework/audio/audio_sources/juce_BufferingAudioSource.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_ChannelRemappingAudioSource.cpp b/src/juce_appframework/audio/audio_sources/juce_ChannelRemappingAudioSource.cpp index 904c1a2afc..78d5451a36 100644 --- a/src/juce_appframework/audio/audio_sources/juce_ChannelRemappingAudioSource.cpp +++ b/src/juce_appframework/audio/audio_sources/juce_ChannelRemappingAudioSource.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_ChannelRemappingAudioSource.h b/src/juce_appframework/audio/audio_sources/juce_ChannelRemappingAudioSource.h index 329cb26521..e267fc86a4 100644 --- a/src/juce_appframework/audio/audio_sources/juce_ChannelRemappingAudioSource.h +++ b/src/juce_appframework/audio/audio_sources/juce_ChannelRemappingAudioSource.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_IIRFilterAudioSource.cpp b/src/juce_appframework/audio/audio_sources/juce_IIRFilterAudioSource.cpp index aa4d9b2b05..dcdbcbd55c 100644 --- a/src/juce_appframework/audio/audio_sources/juce_IIRFilterAudioSource.cpp +++ b/src/juce_appframework/audio/audio_sources/juce_IIRFilterAudioSource.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_IIRFilterAudioSource.h b/src/juce_appframework/audio/audio_sources/juce_IIRFilterAudioSource.h index 0b6edd75f1..dd9941094e 100644 --- a/src/juce_appframework/audio/audio_sources/juce_IIRFilterAudioSource.h +++ b/src/juce_appframework/audio/audio_sources/juce_IIRFilterAudioSource.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_MixerAudioSource.cpp b/src/juce_appframework/audio/audio_sources/juce_MixerAudioSource.cpp index 1925bd6db1..574ca66add 100644 --- a/src/juce_appframework/audio/audio_sources/juce_MixerAudioSource.cpp +++ b/src/juce_appframework/audio/audio_sources/juce_MixerAudioSource.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_MixerAudioSource.h b/src/juce_appframework/audio/audio_sources/juce_MixerAudioSource.h index ddb8d2b613..a372210872 100644 --- a/src/juce_appframework/audio/audio_sources/juce_MixerAudioSource.h +++ b/src/juce_appframework/audio/audio_sources/juce_MixerAudioSource.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_PositionableAudioSource.h b/src/juce_appframework/audio/audio_sources/juce_PositionableAudioSource.h index be095855b4..f4cadc96d7 100644 --- a/src/juce_appframework/audio/audio_sources/juce_PositionableAudioSource.h +++ b/src/juce_appframework/audio/audio_sources/juce_PositionableAudioSource.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_ResamplingAudioSource.cpp b/src/juce_appframework/audio/audio_sources/juce_ResamplingAudioSource.cpp index fa2b7aa231..30424b8662 100644 --- a/src/juce_appframework/audio/audio_sources/juce_ResamplingAudioSource.cpp +++ b/src/juce_appframework/audio/audio_sources/juce_ResamplingAudioSource.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_ResamplingAudioSource.h b/src/juce_appframework/audio/audio_sources/juce_ResamplingAudioSource.h index 04c06d7ea2..d0ea015fb5 100644 --- a/src/juce_appframework/audio/audio_sources/juce_ResamplingAudioSource.h +++ b/src/juce_appframework/audio/audio_sources/juce_ResamplingAudioSource.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_ToneGeneratorAudioSource.cpp b/src/juce_appframework/audio/audio_sources/juce_ToneGeneratorAudioSource.cpp index ccafcfa53c..c7233f4caf 100644 --- a/src/juce_appframework/audio/audio_sources/juce_ToneGeneratorAudioSource.cpp +++ b/src/juce_appframework/audio/audio_sources/juce_ToneGeneratorAudioSource.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/audio_sources/juce_ToneGeneratorAudioSource.h b/src/juce_appframework/audio/audio_sources/juce_ToneGeneratorAudioSource.h index 79c9e1b0d8..e55aa56f84 100644 --- a/src/juce_appframework/audio/audio_sources/juce_ToneGeneratorAudioSource.h +++ b/src/juce_appframework/audio/audio_sources/juce_ToneGeneratorAudioSource.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/devices/juce_AudioDeviceManager.cpp b/src/juce_appframework/audio/devices/juce_AudioDeviceManager.cpp index fa72a50b09..a40d9e2a9e 100644 --- a/src/juce_appframework/audio/devices/juce_AudioDeviceManager.cpp +++ b/src/juce_appframework/audio/devices/juce_AudioDeviceManager.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/devices/juce_AudioDeviceManager.h b/src/juce_appframework/audio/devices/juce_AudioDeviceManager.h index 4eb3754838..7f5788a35a 100644 --- a/src/juce_appframework/audio/devices/juce_AudioDeviceManager.h +++ b/src/juce_appframework/audio/devices/juce_AudioDeviceManager.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/devices/juce_AudioIODevice.cpp b/src/juce_appframework/audio/devices/juce_AudioIODevice.cpp index cf97a36d22..98385c0a20 100644 --- a/src/juce_appframework/audio/devices/juce_AudioIODevice.cpp +++ b/src/juce_appframework/audio/devices/juce_AudioIODevice.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/devices/juce_AudioIODevice.h b/src/juce_appframework/audio/devices/juce_AudioIODevice.h index 2111bcc2c1..fd4164de8c 100644 --- a/src/juce_appframework/audio/devices/juce_AudioIODevice.h +++ b/src/juce_appframework/audio/devices/juce_AudioIODevice.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/devices/juce_AudioIODeviceType.cpp b/src/juce_appframework/audio/devices/juce_AudioIODeviceType.cpp index cece1dd7ca..4d8cf7c0c4 100644 --- a/src/juce_appframework/audio/devices/juce_AudioIODeviceType.cpp +++ b/src/juce_appframework/audio/devices/juce_AudioIODeviceType.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/devices/juce_AudioIODeviceType.h b/src/juce_appframework/audio/devices/juce_AudioIODeviceType.h index 6e1a3af2d0..d6cfcd831e 100644 --- a/src/juce_appframework/audio/devices/juce_AudioIODeviceType.h +++ b/src/juce_appframework/audio/devices/juce_AudioIODeviceType.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/devices/juce_MidiInput.h b/src/juce_appframework/audio/devices/juce_MidiInput.h index d5be9356fb..ada3e44ede 100644 --- a/src/juce_appframework/audio/devices/juce_MidiInput.h +++ b/src/juce_appframework/audio/devices/juce_MidiInput.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/devices/juce_MidiOutput.cpp b/src/juce_appframework/audio/devices/juce_MidiOutput.cpp index e2e3ea2edb..7b6ce37191 100644 --- a/src/juce_appframework/audio/devices/juce_MidiOutput.cpp +++ b/src/juce_appframework/audio/devices/juce_MidiOutput.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -46,14 +46,14 @@ MidiOutput::MidiOutput() throw() { } -MidiOutput::PendingMessage::PendingMessage (const uint8* const data, - const int len, +MidiOutput::PendingMessage::PendingMessage (const uint8* const data, + const int len, const double sampleNumber) throw() : message (data, len, sampleNumber) { } -void MidiOutput::sendBlockOfMessages (const MidiBuffer& buffer, +void MidiOutput::sendBlockOfMessages (const MidiBuffer& buffer, const double millisecondCounterToStartAt, double samplesPerSecondForBuffer) throw() { @@ -74,7 +74,7 @@ void MidiOutput::sendBlockOfMessages (const MidiBuffer& buffer, { const double eventTime = millisecondCounterToStartAt + samplesPerSecondForBuffer * time; - PendingMessage* const m + PendingMessage* const m = new PendingMessage (data, len, eventTime); const ScopedLock sl (lock); diff --git a/src/juce_appframework/audio/devices/juce_MidiOutput.h b/src/juce_appframework/audio/devices/juce_MidiOutput.h index 796f6cbdd2..acbb48de44 100644 --- a/src/juce_appframework/audio/devices/juce_MidiOutput.h +++ b/src/juce_appframework/audio/devices/juce_MidiOutput.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -116,24 +116,24 @@ public: float rightVol); //============================================================================== - /** This lets you supply a block of messages that will be sent out at some point + /** This lets you supply a block of messages that will be sent out at some point in the future. - The MidiOutput class has an internal thread that can send out timestamped + The MidiOutput class has an internal thread that can send out timestamped messages - this appends a set of messages to its internal buffer, ready for sending. This will only work if you've already started the thread with startBackgroundThread(). A time is supplied, at which the block of messages should be sent. This time uses - the same time base as Time::getMillisecondCounter(), and must be in the future. - + the same time base as Time::getMillisecondCounter(), and must be in the future. + The samplesPerSecondForBuffer parameter indicates the number of samples per second used by the MidiBuffer. Each event in a MidiBuffer has a sample position, and the samplesPerSecondForBuffer value is needed to convert this sample position to a - real time. + real time. */ - void sendBlockOfMessages (const MidiBuffer& buffer, + void sendBlockOfMessages (const MidiBuffer& buffer, const double millisecondCounterToStartAt, double samplesPerSecondForBuffer) throw(); diff --git a/src/juce_appframework/audio/dsp/juce_AudioDataConverters.cpp b/src/juce_appframework/audio/dsp/juce_AudioDataConverters.cpp index 550535afa6..b96b38f1f2 100644 --- a/src/juce_appframework/audio/dsp/juce_AudioDataConverters.cpp +++ b/src/juce_appframework/audio/dsp/juce_AudioDataConverters.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/dsp/juce_AudioDataConverters.h b/src/juce_appframework/audio/dsp/juce_AudioDataConverters.h index d182e6a9a6..6a8ecdaaf1 100644 --- a/src/juce_appframework/audio/dsp/juce_AudioDataConverters.h +++ b/src/juce_appframework/audio/dsp/juce_AudioDataConverters.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/dsp/juce_AudioSampleBuffer.cpp b/src/juce_appframework/audio/dsp/juce_AudioSampleBuffer.cpp index c3c5e2004b..257d3f5a74 100644 --- a/src/juce_appframework/audio/dsp/juce_AudioSampleBuffer.cpp +++ b/src/juce_appframework/audio/dsp/juce_AudioSampleBuffer.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/dsp/juce_AudioSampleBuffer.h b/src/juce_appframework/audio/dsp/juce_AudioSampleBuffer.h index eaae3a1f7b..f4db36002c 100644 --- a/src/juce_appframework/audio/dsp/juce_AudioSampleBuffer.h +++ b/src/juce_appframework/audio/dsp/juce_AudioSampleBuffer.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/dsp/juce_IIRFilter.cpp b/src/juce_appframework/audio/dsp/juce_IIRFilter.cpp index a3d50ab669..dc4440cc68 100644 --- a/src/juce_appframework/audio/dsp/juce_IIRFilter.cpp +++ b/src/juce_appframework/audio/dsp/juce_IIRFilter.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/dsp/juce_IIRFilter.h b/src/juce_appframework/audio/dsp/juce_IIRFilter.h index a6a2c15ef4..5b8024403d 100644 --- a/src/juce_appframework/audio/dsp/juce_IIRFilter.h +++ b/src/juce_appframework/audio/dsp/juce_IIRFilter.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/midi/juce_MidiBuffer.cpp b/src/juce_appframework/audio/midi/juce_MidiBuffer.cpp index 7de9bff904..f93fdfbf74 100644 --- a/src/juce_appframework/audio/midi/juce_MidiBuffer.cpp +++ b/src/juce_appframework/audio/midi/juce_MidiBuffer.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/midi/juce_MidiBuffer.h b/src/juce_appframework/audio/midi/juce_MidiBuffer.h index 5216008ae6..314fc39909 100644 --- a/src/juce_appframework/audio/midi/juce_MidiBuffer.h +++ b/src/juce_appframework/audio/midi/juce_MidiBuffer.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/midi/juce_MidiFile.cpp b/src/juce_appframework/audio/midi/juce_MidiFile.cpp index 94b2feb5df..378900f01f 100644 --- a/src/juce_appframework/audio/midi/juce_MidiFile.cpp +++ b/src/juce_appframework/audio/midi/juce_MidiFile.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/midi/juce_MidiFile.h b/src/juce_appframework/audio/midi/juce_MidiFile.h index a409fe8fc6..412a7db0b6 100644 --- a/src/juce_appframework/audio/midi/juce_MidiFile.h +++ b/src/juce_appframework/audio/midi/juce_MidiFile.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/midi/juce_MidiKeyboardState.cpp b/src/juce_appframework/audio/midi/juce_MidiKeyboardState.cpp index 1345a99089..4424c6628a 100644 --- a/src/juce_appframework/audio/midi/juce_MidiKeyboardState.cpp +++ b/src/juce_appframework/audio/midi/juce_MidiKeyboardState.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/midi/juce_MidiKeyboardState.h b/src/juce_appframework/audio/midi/juce_MidiKeyboardState.h index 0e646b9ea5..e5c81e5a27 100644 --- a/src/juce_appframework/audio/midi/juce_MidiKeyboardState.h +++ b/src/juce_appframework/audio/midi/juce_MidiKeyboardState.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/midi/juce_MidiMessage.cpp b/src/juce_appframework/audio/midi/juce_MidiMessage.cpp index 24f452d82d..b5b9abda8f 100644 --- a/src/juce_appframework/audio/midi/juce_MidiMessage.cpp +++ b/src/juce_appframework/audio/midi/juce_MidiMessage.cpp @@ -1,1131 +1,1131 @@ -/* - ============================================================================== - - 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_core/basics/juce_StandardHeader.h" - -BEGIN_JUCE_NAMESPACE - -#include "juce_MidiMessage.h" -#include "../../../juce_core/containers/juce_MemoryBlock.h" - - -//============================================================================== -int MidiMessage::readVariableLengthVal (const uint8* data, - int& numBytesUsed) throw() -{ - numBytesUsed = 0; - int v = 0; - int i; - - do - { - i = (int) *data++; - - if (++numBytesUsed > 6) - break; - - v = (v << 7) + (i & 0x7f); - - } while (i & 0x80); - - return v; -} - -int MidiMessage::getMessageLengthFromFirstByte (const uint8 firstByte) throw() -{ - // this method only works for valid starting bytes of a short midi message - jassert (firstByte >= 0x80 - && firstByte != 0xff - && firstByte != 0xf0 - && firstByte != 0xf7); - - static const char messageLengths[] = - { - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 1, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - }; - - return messageLengths [firstByte & 0x7f]; -} - -//============================================================================== -MidiMessage::MidiMessage (const uint8* const d, - const int dataSize, - const double t) throw() - : timeStamp (t), - message (0), - size (dataSize) -{ - jassert (dataSize > 0); - - if (dataSize <= 4) - data = (uint8*) &message; - else - data = (uint8*) juce_malloc (dataSize); - - memcpy (data, d, dataSize); - - // check that the length matches the data.. - jassert (size > 3 || *d >= 0xf0 || getMessageLengthFromFirstByte (*d) == size); -} - -MidiMessage::MidiMessage (const int byte1, - const double t) throw() - : timeStamp (t), - data ((uint8*) &message), - size (1) -{ - data[0] = (uint8) byte1; - - // check that the length matches the data.. - jassert (byte1 >= 0xf0 || getMessageLengthFromFirstByte ((uint8) byte1) == 1); -} - -MidiMessage::MidiMessage (const int byte1, - const int byte2, - const double t) throw() - : timeStamp (t), - data ((uint8*) &message), - size (2) -{ - data[0] = (uint8) byte1; - data[1] = (uint8) byte2; - - // check that the length matches the data.. - jassert (byte1 >= 0xf0 || getMessageLengthFromFirstByte ((uint8) byte1) == 2); -} - -MidiMessage::MidiMessage (const int byte1, - const int byte2, - const int byte3, - const double t) throw() - : timeStamp (t), - data ((uint8*) &message), - size (3) -{ - data[0] = (uint8) byte1; - data[1] = (uint8) byte2; - data[2] = (uint8) byte3; - - // check that the length matches the data.. - jassert (byte1 >= 0xf0 || getMessageLengthFromFirstByte ((uint8) byte1) == 3); -} - -MidiMessage::MidiMessage (const MidiMessage& other) throw() - : timeStamp (other.timeStamp), - message (other.message), - size (other.size) -{ - if (other.data != (uint8*) &other.message) - { - data = (uint8*) juce_malloc (size); - memcpy (data, other.data, size); - } - else - { - data = (uint8*) &message; - } -} - -MidiMessage::MidiMessage (const MidiMessage& other, - const double newTimeStamp) throw() - : timeStamp (newTimeStamp), - message (other.message), - size (other.size) -{ - if (other.data != (uint8*) &other.message) - { - data = (uint8*) juce_malloc (size); - memcpy (data, other.data, size); - } - else - { - data = (uint8*) &message; - } -} - -MidiMessage::MidiMessage (const uint8* src, - int sz, - int& numBytesUsed, - const uint8 lastStatusByte, - double t) throw() - : timeStamp (t), - data ((uint8*) &message), - message (0) -{ - unsigned int byte = (unsigned int) *src; - - if (byte < 0x80) - { - byte = (unsigned int) (uint8) lastStatusByte; - numBytesUsed = -1; - } - else - { - numBytesUsed = 0; - --sz; - ++src; - } - - if (byte >= 0x80) - { - if (byte == 0xf0) - { - const uint8* d = (const uint8*) src; - - while (d < src + sz) - { - if (*d >= 0x80) // stop if we hit a status byte, and don't include it in this message - { - if (*d == 0xf7) // include an 0xf7 if we hit one - ++d; - - break; - } - - ++d; - } - - size = 1 + (int) (d - src); - - data = (uint8*) juce_malloc (size); - *data = (uint8) byte; - memcpy (data + 1, src, size - 1); - } - else if (byte == 0xff) - { - int n; - const int bytesLeft = readVariableLengthVal (src + 1, n); - size = jmin (sz + 1, n + 2 + bytesLeft); - - data = (uint8*) juce_malloc (size); - *data = (uint8) byte; - memcpy (data + 1, src, size - 1); - } - else - { - size = getMessageLengthFromFirstByte ((uint8) byte); - *data = (uint8) byte; - - if (size > 1) - { - data[1] = src[0]; - - if (size > 2) - data[2] = src[1]; - } - } - - numBytesUsed += size; - } - else - { - message = 0; - size = 0; - } -} - -const MidiMessage& MidiMessage::operator= (const MidiMessage& other) throw() -{ - if (this == &other) - return *this; - - timeStamp = other.timeStamp; - size = other.size; - message = other.message; - - if (data != (uint8*) &message) - juce_free (data); - - if (other.data != (uint8*) &other.message) - { - data = (uint8*) juce_malloc (size); - memcpy (data, other.data, size); - } - else - { - data = (uint8*) &message; - } - - return *this; -} - -MidiMessage::~MidiMessage() throw() -{ - if (data != (uint8*) &message) - juce_free (data); -} - -int MidiMessage::getChannel() const throw() -{ - if ((data[0] & 0xf0) != 0xf0) - return (data[0] & 0xf) + 1; - else - return 0; -} - -bool MidiMessage::isForChannel (const int channel) const throw() -{ - return ((data[0] & 0xf) == channel - 1) - && ((data[0] & 0xf0) != 0xf0); -} - -void MidiMessage::setChannel (const int channel) throw() -{ - if ((data[0] & 0xf0) != (uint8) 0xf0) - data[0] = (uint8) ((data[0] & (uint8)0xf0) - | (uint8)(channel - 1)); -} - -bool MidiMessage::isNoteOn() const throw() -{ - return ((data[0] & 0xf0) == 0x90) - && (data[2] != 0); -} - -bool MidiMessage::isNoteOff() const throw() -{ - return ((data[0] & 0xf0) == 0x80) - || ((data[2] == 0) && ((data[0] & 0xf0) == 0x90)); -} - -bool MidiMessage::isNoteOnOrOff() const throw() -{ - const int d = data[0] & 0xf0; - return (d == 0x90) || (d == 0x80); -} - -int MidiMessage::getNoteNumber() const throw() -{ - return data[1]; -} - -void MidiMessage::setNoteNumber (const int newNoteNumber) throw() -{ - if (isNoteOnOrOff()) - data[1] = (uint8) jlimit (0, 127, newNoteNumber); -} - -uint8 MidiMessage::getVelocity() const throw() -{ - if (isNoteOnOrOff()) - return data[2]; - else - return 0; -} - -float MidiMessage::getFloatVelocity() const throw() -{ - return getVelocity() * (1.0f / 127.0f); -} - -void MidiMessage::setVelocity (const float newVelocity) throw() -{ - if (isNoteOnOrOff()) - data[2] = (uint8) jlimit (0, 0x7f, roundFloatToInt (newVelocity * 127.0f)); -} - -void MidiMessage::multiplyVelocity (const float scaleFactor) throw() -{ - if (isNoteOnOrOff()) - data[2] = (uint8) jlimit (0, 0x7f, roundFloatToInt (scaleFactor * data[2])); -} - -bool MidiMessage::isAftertouch() const throw() -{ - return (data[0] & 0xf0) == 0xa0; -} - -int MidiMessage::getAfterTouchValue() const throw() -{ - return data[2]; -} - -const MidiMessage MidiMessage::aftertouchChange (const int channel, - const int noteNum, - const int aftertouchValue) throw() -{ - jassert (channel > 0 && channel <= 16); - jassert (noteNum >= 0 && noteNum <= 127); - jassert (aftertouchValue >= 0 && aftertouchValue <= 127); - - return MidiMessage (0xa0 | jlimit (0, 15, channel - 1), - noteNum & 0x7f, - aftertouchValue & 0x7f); -} - -bool MidiMessage::isChannelPressure() const throw() -{ - return (data[0] & 0xf0) == 0xd0; -} - -int MidiMessage::getChannelPressureValue() const throw() -{ - jassert (isChannelPressure()); - - return data[1]; -} - -const MidiMessage MidiMessage::channelPressureChange (const int channel, - const int pressure) throw() -{ - jassert (channel > 0 && channel <= 16); - jassert (pressure >= 0 && pressure <= 127); - - return MidiMessage (0xd0 | jlimit (0, 15, channel - 1), - pressure & 0x7f); -} - -bool MidiMessage::isProgramChange() const throw() -{ - return (data[0] & 0xf0) == 0xc0; -} - -int MidiMessage::getProgramChangeNumber() const throw() -{ - return data[1]; -} - -const MidiMessage MidiMessage::programChange (const int channel, - const int programNumber) throw() -{ - jassert (channel > 0 && channel <= 16); - - return MidiMessage (0xc0 | jlimit (0, 15, channel - 1), - programNumber & 0x7f); -} - -bool MidiMessage::isPitchWheel() const throw() -{ - return (data[0] & 0xf0) == 0xe0; -} - -int MidiMessage::getPitchWheelValue() const throw() -{ - return data[1] | (data[2] << 7); -} - -const MidiMessage MidiMessage::pitchWheel (const int channel, - const int position) throw() -{ - jassert (channel > 0 && channel <= 16); - jassert (position >= 0 && position <= 0x3fff); - - return MidiMessage (0xe0 | jlimit (0, 15, channel - 1), - position & 127, - (position >> 7) & 127); -} - -bool MidiMessage::isController() const throw() -{ - return (data[0] & 0xf0) == 0xb0; -} - -int MidiMessage::getControllerNumber() const throw() -{ - jassert (isController()); - - return data[1]; -} - -int MidiMessage::getControllerValue() const throw() -{ - jassert (isController()); - - return data[2]; -} - -const MidiMessage MidiMessage::controllerEvent (const int channel, - const int controllerType, - const int value) throw() -{ - // the channel must be between 1 and 16 inclusive - jassert (channel > 0 && channel <= 16); - - return MidiMessage (0xb0 | jlimit (0, 15, channel - 1), - controllerType & 127, - value & 127); -} - -const MidiMessage MidiMessage::noteOn (const int channel, - const int noteNumber, - const float velocity) throw() -{ - return noteOn (channel, noteNumber, (uint8)(velocity * 127.0f)); -} - -const MidiMessage MidiMessage::noteOn (const int channel, - const int noteNumber, - const uint8 velocity) throw() -{ - jassert (channel > 0 && channel <= 16); - jassert (noteNumber >= 0 && noteNumber <= 127); - - return MidiMessage (0x90 | jlimit (0, 15, channel - 1), - noteNumber & 127, - jlimit (0, 127, roundFloatToInt (velocity))); -} - -const MidiMessage MidiMessage::noteOff (const int channel, - const int noteNumber) throw() -{ - jassert (channel > 0 && channel <= 16); - jassert (noteNumber >= 0 && noteNumber <= 127); - - return MidiMessage (0x80 | jlimit (0, 15, channel - 1), noteNumber & 127, 0); -} - -const MidiMessage MidiMessage::allNotesOff (const int channel) throw() -{ - jassert (channel > 0 && channel <= 16); - - return controllerEvent (channel, 123, 0); -} - -bool MidiMessage::isAllNotesOff() const throw() -{ - return (data[0] & 0xf0) == 0xb0 - && data[1] == 123; -} - -const MidiMessage MidiMessage::allSoundOff (const int channel) throw() -{ - return controllerEvent (channel, 120, 0); -} - -bool MidiMessage::isAllSoundOff() const throw() -{ - return (data[0] & 0xf0) == 0xb0 - && data[1] == 120; -} - -const MidiMessage MidiMessage::allControllersOff (const int channel) throw() -{ - return controllerEvent (channel, 121, 0); -} - -const MidiMessage MidiMessage::masterVolume (const float volume) throw() -{ - const int vol = jlimit (0, 0x3fff, roundFloatToInt (volume * 0x4000)); - - uint8 buf[8]; - buf[0] = 0xf0; - buf[1] = 0x7f; - buf[2] = 0x7f; - buf[3] = 0x04; - buf[4] = 0x01; - buf[5] = (uint8) (vol & 0x7f); - buf[6] = (uint8) (vol >> 7); - buf[7] = 0xf7; - - return MidiMessage (buf, 8); -} - -//============================================================================== -bool MidiMessage::isSysEx() const throw() -{ - return *data == 0xf0; -} - -const MidiMessage MidiMessage::createSysExMessage (const uint8* sysexData, - const int dataSize) throw() -{ - MemoryBlock mm (dataSize + 2); - uint8* const m = (uint8*) mm.getData(); - - m[0] = 0xf0; - memcpy (m + 1, sysexData, dataSize); - m[dataSize + 1] = 0xf7; - - return MidiMessage (m, dataSize + 2); -} - -const uint8* MidiMessage::getSysExData() const throw() -{ - return (isSysEx()) ? getRawData() + 1 - : 0; -} - -int MidiMessage::getSysExDataSize() const throw() -{ - return (isSysEx()) ? size - 2 - : 0; -} - -bool MidiMessage::isMetaEvent() const throw() -{ - return *data == 0xff; -} - -bool MidiMessage::isActiveSense() const throw() -{ - return *data == 0xfe; -} - -//============================================================================== -int MidiMessage::getMetaEventType() const throw() -{ - if (*data != 0xff) - return -1; - else - return data[1]; -} - -int MidiMessage::getMetaEventLength() const throw() -{ - if (*data == 0xff) - { - int n; - return jmin (size - 2, readVariableLengthVal (data + 2, n)); - } - - return 0; -} - -const uint8* MidiMessage::getMetaEventData() const throw() -{ - int n; - const uint8* d = data + 2; - readVariableLengthVal (d, n); - return d + n; -} - -bool MidiMessage::isTrackMetaEvent() const throw() -{ - return getMetaEventType() == 0; -} - -bool MidiMessage::isEndOfTrackMetaEvent() const throw() -{ - return getMetaEventType() == 47; -} - -bool MidiMessage::isTextMetaEvent() const throw() -{ - const int t = getMetaEventType(); - - return t > 0 && t < 16; -} - -const String MidiMessage::getTextFromTextMetaEvent() const throw() -{ - return String ((const char*) getMetaEventData(), - getMetaEventLength()); -} - -bool MidiMessage::isTrackNameEvent() const throw() -{ - return (data[1] == 3) - && (*data == 0xff); -} - -bool MidiMessage::isTempoMetaEvent() const throw() -{ - return (data[1] == 81) - && (*data == 0xff); -} - -bool MidiMessage::isMidiChannelMetaEvent() const throw() -{ - return (data[1] == 0x20) - && (*data == 0xff) - && (data[2] == 1); -} - -int MidiMessage::getMidiChannelMetaEventChannel() const throw() -{ - return data[3] + 1; -} - -double MidiMessage::getTempoSecondsPerQuarterNote() const throw() -{ - if (! isTempoMetaEvent()) - return 0.0; - - const uint8* const d = getMetaEventData(); - - return (((unsigned int) d[0] << 16) - | ((unsigned int) d[1] << 8) - | d[2]) - / 1000000.0; -} - -double MidiMessage::getTempoMetaEventTickLength (const short timeFormat) const throw() -{ - if (timeFormat > 0) - { - if (! isTempoMetaEvent()) - return 0.5 / timeFormat; - - return getTempoSecondsPerQuarterNote() / timeFormat; - } - else - { - const int frameCode = (-timeFormat) >> 8; - double framesPerSecond; - - switch (frameCode) - { - case 24: framesPerSecond = 24.0; break; - case 25: framesPerSecond = 25.0; break; - case 29: framesPerSecond = 29.97; break; - case 30: framesPerSecond = 30.0; break; - default: framesPerSecond = 30.0; break; - } - - return (1.0 / framesPerSecond) / (timeFormat & 0xff); - } -} - -const MidiMessage MidiMessage::tempoMetaEvent (int microsecondsPerQuarterNote) throw() -{ - uint8 d[8]; - d[0] = 0xff; - d[1] = 81; - d[2] = 3; - d[3] = (uint8) (microsecondsPerQuarterNote >> 16); - d[4] = (uint8) ((microsecondsPerQuarterNote >> 8) & 0xff); - d[5] = (uint8) (microsecondsPerQuarterNote & 0xff); - - return MidiMessage (d, 6, 0.0); -} - -bool MidiMessage::isTimeSignatureMetaEvent() const throw() -{ - return (data[1] == 0x58) - && (*data == (uint8) 0xff); -} - -void MidiMessage::getTimeSignatureInfo (int& numerator, - int& denominator) const throw() -{ - if (isTimeSignatureMetaEvent()) - { - const uint8* const d = getMetaEventData(); - numerator = d[0]; - denominator = 1 << d[1]; - } - else - { - numerator = 4; - denominator = 4; - } -} - -const MidiMessage MidiMessage::timeSignatureMetaEvent (const int numerator, - const int denominator) throw() -{ - uint8 d[8]; - d[0] = 0xff; - d[1] = 0x58; - d[2] = 0x04; - d[3] = (uint8) numerator; - - int n = 1; - int powerOfTwo = 0; - - while (n < denominator) - { - n <<= 1; - ++powerOfTwo; - } - - d[4] = (uint8) powerOfTwo; - d[5] = 0x01; - d[6] = 96; - - return MidiMessage (d, 7, 0.0); -} - -const MidiMessage MidiMessage::midiChannelMetaEvent (const int channel) throw() -{ - uint8 d[8]; - d[0] = 0xff; - d[1] = 0x20; - d[2] = 0x01; - d[3] = (uint8) jlimit (0, 0xff, channel - 1); - - return MidiMessage (d, 4, 0.0); -} - -bool MidiMessage::isKeySignatureMetaEvent() const throw() -{ - return getMetaEventType() == 89; -} - -int MidiMessage::getKeySignatureNumberOfSharpsOrFlats() const throw() -{ - return (int) *getMetaEventData(); -} - -const MidiMessage MidiMessage::endOfTrack() throw() -{ - return MidiMessage (0xff, 0x2f, 0, 0.0); -} - -//============================================================================== -bool MidiMessage::isSongPositionPointer() const throw() -{ - return *data == 0xf2; -} - -int MidiMessage::getSongPositionPointerMidiBeat() const throw() -{ - return data[1] | (data[2] << 7); -} - -const MidiMessage MidiMessage::songPositionPointer (const int positionInMidiBeats) throw() -{ - return MidiMessage (0xf2, - positionInMidiBeats & 127, - (positionInMidiBeats >> 7) & 127); -} - -bool MidiMessage::isMidiStart() const throw() -{ - return *data == 0xfa; -} - -const MidiMessage MidiMessage::midiStart() throw() -{ - return MidiMessage (0xfa); -} - -bool MidiMessage::isMidiContinue() const throw() -{ - return *data == 0xfb; -} - -const MidiMessage MidiMessage::midiContinue() throw() -{ - return MidiMessage (0xfb); -} - -bool MidiMessage::isMidiStop() const throw() -{ - return *data == 0xfc; -} - -const MidiMessage MidiMessage::midiStop() throw() -{ - return MidiMessage (0xfc); -} - -bool MidiMessage::isMidiClock() const throw() -{ - return *data == 0xf8; -} - -const MidiMessage MidiMessage::midiClock() throw() -{ - return MidiMessage (0xf8); -} - -bool MidiMessage::isQuarterFrame() const throw() -{ - return *data == 0xf1; -} - -int MidiMessage::getQuarterFrameSequenceNumber() const throw() -{ - return ((int) data[1]) >> 4; -} - -int MidiMessage::getQuarterFrameValue() const throw() -{ - return ((int) data[1]) & 0x0f; -} - -const MidiMessage MidiMessage::quarterFrame (const int sequenceNumber, - const int value) throw() -{ - return MidiMessage (0xf1, (sequenceNumber << 4) | value); -} - -bool MidiMessage::isFullFrame() const throw() -{ - return data[0] == 0xf0 - && data[1] == 0x7f - && size >= 10 - && data[3] == 0x01 - && data[4] == 0x01; -} - -void MidiMessage::getFullFrameParameters (int& hours, - int& minutes, - int& seconds, - int& frames, - MidiMessage::SmpteTimecodeType& timecodeType) const throw() -{ - jassert (isFullFrame()); - - timecodeType = (SmpteTimecodeType) (data[5] >> 5); - hours = data[5] & 0x1f; - minutes = data[6]; - seconds = data[7]; - frames = data[8]; -} - -const MidiMessage MidiMessage::fullFrame (const int hours, - const int minutes, - const int seconds, - const int frames, - MidiMessage::SmpteTimecodeType timecodeType) -{ - uint8 d[10]; - d[0] = 0xf0; - d[1] = 0x7f; - d[2] = 0x7f; - d[3] = 0x01; - d[4] = 0x01; - d[5] = (uint8) ((hours & 0x01f) | (timecodeType << 5)); - d[6] = (uint8) minutes; - d[7] = (uint8) seconds; - d[8] = (uint8) frames; - d[9] = 0xf7; - - return MidiMessage (d, 10, 0.0); -} - -bool MidiMessage::isMidiMachineControlMessage() const throw() -{ - return data[0] == 0xf0 - && data[1] == 0x7f - && data[3] == 0x06 - && size > 5; -} - -MidiMessage::MidiMachineControlCommand MidiMessage::getMidiMachineControlCommand() const throw() -{ - jassert (isMidiMachineControlMessage()); - - return (MidiMachineControlCommand) data[4]; -} - -const MidiMessage MidiMessage::midiMachineControlCommand (MidiMessage::MidiMachineControlCommand command) -{ - uint8 d[6]; - d[0] = 0xf0; - d[1] = 0x7f; - d[2] = 0x00; - d[3] = 0x06; - d[4] = (uint8) command; - d[5] = 0xf7; - - return MidiMessage (d, 6, 0.0); -} - -//============================================================================== -bool MidiMessage::isMidiMachineControlGoto (int& hours, - int& minutes, - int& seconds, - int& frames) const throw() -{ - if (size >= 12 - && data[0] == 0xf0 - && data[1] == 0x7f - && data[3] == 0x06 - && data[4] == 0x44 - && data[5] == 0x06 - && data[6] == 0x01) - { - hours = data[7] % 24; // (that some machines send out hours > 24) - minutes = data[8]; - seconds = data[9]; - frames = data[10]; - - return true; - } - - return false; -} - -const MidiMessage MidiMessage::midiMachineControlGoto (int hours, - int minutes, - int seconds, - int frames) -{ - uint8 d[12]; - d[0] = 0xf0; - d[1] = 0x7f; - d[2] = 0x00; - d[3] = 0x06; - d[4] = 0x44; - d[5] = 0x06; - d[6] = 0x01; - d[7] = (uint8) hours; - d[8] = (uint8) minutes; - d[9] = (uint8) seconds; - d[10] = (uint8) frames; - d[11] = 0xf7; - - return MidiMessage (d, 12, 0.0); -} - -//============================================================================== -const String MidiMessage::getMidiNoteName (int note, - bool useSharps, - bool includeOctaveNumber, - int octaveNumForMiddleC) throw() -{ - static const char* const sharpNoteNames[] = { "C", "C#", "D", "D#", "E", - "F", "F#", "G", "G#", "A", - "A#", "B" }; - - static const char* const flatNoteNames[] = { "C", "Db", "D", "Eb", "E", - "F", "Gb", "G", "Ab", "A", - "Bb", "B" }; - - if (note >= 0 && note < 128) - { - const String s ((useSharps) ? sharpNoteNames [note % 12] - : flatNoteNames [note % 12]); - - if (includeOctaveNumber) - return s + String (note / 12 + (octaveNumForMiddleC - 5)); - else - return s; - } - - return String::empty; -} - -const double MidiMessage::getMidiNoteInHertz (int noteNumber) throw() -{ - noteNumber -= 12 * 6 + 9; // now 0 = A440 - return 440.0 * pow (2.0, noteNumber / 12.0); -} - -const String MidiMessage::getGMInstrumentName (int n) throw() -{ - const char *names[] = - { - "Acoustic Grand Piano", "Bright Acoustic Piano", "Electric Grand Piano", "Honky-tonk Piano", - "Electric Piano 1", "Electric Piano 2", "Harpsichord", "Clavinet", "Celesta", "Glockenspiel", - "Music Box", "Vibraphone", "Marimba", "Xylophone", "Tubular Bells", "Dulcimer", "Drawbar Organ", - "Percussive Organ", "Rock Organ", "Church Organ", "Reed Organ", "Accordion", "Harmonica", - "Tango Accordion", "Acoustic Guitar (nylon)", "Acoustic Guitar (steel)", "Electric Guitar (jazz)", - "Electric Guitar (clean)", "Electric Guitar (mute)", "Overdriven Guitar", "Distortion Guitar", - "Guitar Harmonics", "Acoustic Bass", "Electric Bass (finger)", "Electric Bass (pick)", - "Fretless Bass", "Slap Bass 1", "Slap Bass 2", "Synth Bass 1", "Synth Bass 2", "Violin", - "Viola", "Cello", "Contrabass", "Tremolo Strings", "Pizzicato Strings", "Orchestral Harp", - "Timpani", "String Ensemble 1", "String Ensemble 2", "SynthStrings 1", "SynthStrings 2", - "Choir Aahs", "Voice Oohs", "Synth Voice", "Orchestra Hit", "Trumpet", "Trombone", "Tuba", - "Muted Trumpet", "French Horn", "Brass Section", "SynthBrass 1", "SynthBrass 2", "Soprano Sax", - "Alto Sax", "Tenor Sax", "Baritone Sax", "Oboe", "English Horn", "Bassoon", "Clarinet", - "Piccolo", "Flute", "Recorder", "Pan Flute", "Blown Bottle", "Shakuhachi", "Whistle", - "Ocarina", "Lead 1 (square)", "Lead 2 (sawtooth)", "Lead 3 (calliope)", "Lead 4 (chiff)", - "Lead 5 (charang)", "Lead 6 (voice)", "Lead 7 (fifths)", "Lead 8 (bass+lead)", "Pad 1 (new age)", - "Pad 2 (warm)", "Pad 3 (polysynth)", "Pad 4 (choir)", "Pad 5 (bowed)", "Pad 6 (metallic)", - "Pad 7 (halo)", "Pad 8 (sweep)", "FX 1 (rain)", "FX 2 (soundtrack)", "FX 3 (crystal)", - "FX 4 (atmosphere)", "FX 5 (brightness)", "FX 6 (goblins)", "FX 7 (echoes)", "FX 8 (sci-fi)", - "Sitar", "Banjo", "Shamisen", "Koto", "Kalimba", "Bag pipe", "Fiddle", "Shanai", "Tinkle Bell", - "Agogo", "Steel Drums", "Woodblock", "Taiko Drum", "Melodic Tom", "Synth Drum", "Reverse Cymbal", - "Guitar Fret Noise", "Breath Noise", "Seashore", "Bird Tweet", "Telephone Ring", "Helicopter", - "Applause", "Gunshot" - }; - - return (n >= 0 && n < 128) ? names[n] - : (const char*)0; -} - -const String MidiMessage::getGMInstrumentBankName (int n) throw() -{ - const char* names[] = - { - "Piano", "Chromatic Percussion", "Organ", "Guitar", - "Bass", "Strings", "Ensemble", "Brass", - "Reed", "Pipe", "Synth Lead", "Synth Pad", - "Synth Effects", "Ethnic", "Percussive", "Sound Effects" - }; - - return (n >= 0 && n <= 15) ? names[n] - : (const char*)0; -} - -const String MidiMessage::getRhythmInstrumentName (int n) throw() -{ - const char* names[] = - { - "Acoustic Bass Drum", "Bass Drum 1", "Side Stick", "Acoustic Snare", - "Hand Clap", "Electric Snare", "Low Floor Tom", "Closed Hi-Hat", "High Floor Tom", - "Pedal Hi-Hat", "Low Tom", "Open Hi-Hat", "Low-Mid Tom", "Hi-Mid Tom", "Crash Cymbal 1", - "High Tom", "Ride Cymbal 1", "Chinese Cymbal", "Ride Bell", "Tambourine", "Splash Cymbal", - "Cowbell", "Crash Cymbal 2", "Vibraslap", "Ride Cymbal 2", "Hi Bongo", "Low Bongo", - "Mute Hi Conga", "Open Hi Conga", "Low Conga", "High Timbale", "Low Timbale", "High Agogo", - "Low Agogo", "Cabasa", "Maracas", "Short Whistle", "Long Whistle", "Short Guiro", - "Long Guiro", "Claves", "Hi Wood Block", "Low Wood Block", "Mute Cuica", "Open Cuica", - "Mute Triangle", "Open Triangle" - }; - - return (n >= 35 && n <= 81) ? names [n - 35] - : (const char*)0; -} - -const String MidiMessage::getControllerName (int n) throw() -{ - const char* names[] = - { - "Bank Select", "Modulation Wheel (coarse)", "Breath controller (coarse)", - 0, "Foot Pedal (coarse)", "Portamento Time (coarse)", - "Data Entry (coarse)", "Volume (coarse)", "Balance (coarse)", - 0, "Pan position (coarse)", "Expression (coarse)", "Effect Control 1 (coarse)", - "Effect Control 2 (coarse)", 0, 0, "General Purpose Slider 1", "General Purpose Slider 2", - "General Purpose Slider 3", "General Purpose Slider 4", 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, "Bank Select (fine)", "Modulation Wheel (fine)", "Breath controller (fine)", - 0, "Foot Pedal (fine)", "Portamento Time (fine)", "Data Entry (fine)", "Volume (fine)", - "Balance (fine)", 0, "Pan position (fine)", "Expression (fine)", "Effect Control 1 (fine)", - "Effect Control 2 (fine)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - "Hold Pedal (on/off)", "Portamento (on/off)", "Sustenuto Pedal (on/off)", "Soft Pedal (on/off)", - "Legato Pedal (on/off)", "Hold 2 Pedal (on/off)", "Sound Variation", "Sound Timbre", - "Sound Release Time", "Sound Attack Time", "Sound Brightness", "Sound Control 6", - "Sound Control 7", "Sound Control 8", "Sound Control 9", "Sound Control 10", - "General Purpose Button 1 (on/off)", "General Purpose Button 2 (on/off)", - "General Purpose Button 3 (on/off)", "General Purpose Button 4 (on/off)", - 0, 0, 0, 0, 0, 0, 0, "Reverb Level", "Tremolo Level", "Chorus Level", "Celeste Level", - "Phaser Level", "Data Button increment", "Data Button decrement", "Non-registered Parameter (fine)", - "Non-registered Parameter (coarse)", "Registered Parameter (fine)", "Registered Parameter (coarse)", - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "All Sound Off", "All Controllers Off", - "Local Keyboard (on/off)", "All Notes Off", "Omni Mode Off", "Omni Mode On", "Mono Operation", - "Poly Operation" - }; - - return (n >= 0 && n < 128) ? names[n] - : (const char*)0; -} - -END_JUCE_NAMESPACE +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-7 by Raw Material Software ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the + GNU General Public License, as published by the Free Software Foundation; + either version 2 of the License, or (at your option) any later version. + + JUCE is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with JUCE; if not, visit www.gnu.org/licenses or write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + ------------------------------------------------------------------------------ + + If you'd like to release a closed-source product which uses JUCE, commercial + licenses are also available: visit www.rawmaterialsoftware.com/juce for + more information. + + ============================================================================== +*/ + +#include "../../../juce_core/basics/juce_StandardHeader.h" + +BEGIN_JUCE_NAMESPACE + +#include "juce_MidiMessage.h" +#include "../../../juce_core/containers/juce_MemoryBlock.h" + + +//============================================================================== +int MidiMessage::readVariableLengthVal (const uint8* data, + int& numBytesUsed) throw() +{ + numBytesUsed = 0; + int v = 0; + int i; + + do + { + i = (int) *data++; + + if (++numBytesUsed > 6) + break; + + v = (v << 7) + (i & 0x7f); + + } while (i & 0x80); + + return v; +} + +int MidiMessage::getMessageLengthFromFirstByte (const uint8 firstByte) throw() +{ + // this method only works for valid starting bytes of a short midi message + jassert (firstByte >= 0x80 + && firstByte != 0xff + && firstByte != 0xf0 + && firstByte != 0xf7); + + static const char messageLengths[] = + { + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 1, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + }; + + return messageLengths [firstByte & 0x7f]; +} + +//============================================================================== +MidiMessage::MidiMessage (const uint8* const d, + const int dataSize, + const double t) throw() + : timeStamp (t), + message (0), + size (dataSize) +{ + jassert (dataSize > 0); + + if (dataSize <= 4) + data = (uint8*) &message; + else + data = (uint8*) juce_malloc (dataSize); + + memcpy (data, d, dataSize); + + // check that the length matches the data.. + jassert (size > 3 || *d >= 0xf0 || getMessageLengthFromFirstByte (*d) == size); +} + +MidiMessage::MidiMessage (const int byte1, + const double t) throw() + : timeStamp (t), + data ((uint8*) &message), + size (1) +{ + data[0] = (uint8) byte1; + + // check that the length matches the data.. + jassert (byte1 >= 0xf0 || getMessageLengthFromFirstByte ((uint8) byte1) == 1); +} + +MidiMessage::MidiMessage (const int byte1, + const int byte2, + const double t) throw() + : timeStamp (t), + data ((uint8*) &message), + size (2) +{ + data[0] = (uint8) byte1; + data[1] = (uint8) byte2; + + // check that the length matches the data.. + jassert (byte1 >= 0xf0 || getMessageLengthFromFirstByte ((uint8) byte1) == 2); +} + +MidiMessage::MidiMessage (const int byte1, + const int byte2, + const int byte3, + const double t) throw() + : timeStamp (t), + data ((uint8*) &message), + size (3) +{ + data[0] = (uint8) byte1; + data[1] = (uint8) byte2; + data[2] = (uint8) byte3; + + // check that the length matches the data.. + jassert (byte1 >= 0xf0 || getMessageLengthFromFirstByte ((uint8) byte1) == 3); +} + +MidiMessage::MidiMessage (const MidiMessage& other) throw() + : timeStamp (other.timeStamp), + message (other.message), + size (other.size) +{ + if (other.data != (uint8*) &other.message) + { + data = (uint8*) juce_malloc (size); + memcpy (data, other.data, size); + } + else + { + data = (uint8*) &message; + } +} + +MidiMessage::MidiMessage (const MidiMessage& other, + const double newTimeStamp) throw() + : timeStamp (newTimeStamp), + message (other.message), + size (other.size) +{ + if (other.data != (uint8*) &other.message) + { + data = (uint8*) juce_malloc (size); + memcpy (data, other.data, size); + } + else + { + data = (uint8*) &message; + } +} + +MidiMessage::MidiMessage (const uint8* src, + int sz, + int& numBytesUsed, + const uint8 lastStatusByte, + double t) throw() + : timeStamp (t), + data ((uint8*) &message), + message (0) +{ + unsigned int byte = (unsigned int) *src; + + if (byte < 0x80) + { + byte = (unsigned int) (uint8) lastStatusByte; + numBytesUsed = -1; + } + else + { + numBytesUsed = 0; + --sz; + ++src; + } + + if (byte >= 0x80) + { + if (byte == 0xf0) + { + const uint8* d = (const uint8*) src; + + while (d < src + sz) + { + if (*d >= 0x80) // stop if we hit a status byte, and don't include it in this message + { + if (*d == 0xf7) // include an 0xf7 if we hit one + ++d; + + break; + } + + ++d; + } + + size = 1 + (int) (d - src); + + data = (uint8*) juce_malloc (size); + *data = (uint8) byte; + memcpy (data + 1, src, size - 1); + } + else if (byte == 0xff) + { + int n; + const int bytesLeft = readVariableLengthVal (src + 1, n); + size = jmin (sz + 1, n + 2 + bytesLeft); + + data = (uint8*) juce_malloc (size); + *data = (uint8) byte; + memcpy (data + 1, src, size - 1); + } + else + { + size = getMessageLengthFromFirstByte ((uint8) byte); + *data = (uint8) byte; + + if (size > 1) + { + data[1] = src[0]; + + if (size > 2) + data[2] = src[1]; + } + } + + numBytesUsed += size; + } + else + { + message = 0; + size = 0; + } +} + +const MidiMessage& MidiMessage::operator= (const MidiMessage& other) throw() +{ + if (this == &other) + return *this; + + timeStamp = other.timeStamp; + size = other.size; + message = other.message; + + if (data != (uint8*) &message) + juce_free (data); + + if (other.data != (uint8*) &other.message) + { + data = (uint8*) juce_malloc (size); + memcpy (data, other.data, size); + } + else + { + data = (uint8*) &message; + } + + return *this; +} + +MidiMessage::~MidiMessage() throw() +{ + if (data != (uint8*) &message) + juce_free (data); +} + +int MidiMessage::getChannel() const throw() +{ + if ((data[0] & 0xf0) != 0xf0) + return (data[0] & 0xf) + 1; + else + return 0; +} + +bool MidiMessage::isForChannel (const int channel) const throw() +{ + return ((data[0] & 0xf) == channel - 1) + && ((data[0] & 0xf0) != 0xf0); +} + +void MidiMessage::setChannel (const int channel) throw() +{ + if ((data[0] & 0xf0) != (uint8) 0xf0) + data[0] = (uint8) ((data[0] & (uint8)0xf0) + | (uint8)(channel - 1)); +} + +bool MidiMessage::isNoteOn() const throw() +{ + return ((data[0] & 0xf0) == 0x90) + && (data[2] != 0); +} + +bool MidiMessage::isNoteOff() const throw() +{ + return ((data[0] & 0xf0) == 0x80) + || ((data[2] == 0) && ((data[0] & 0xf0) == 0x90)); +} + +bool MidiMessage::isNoteOnOrOff() const throw() +{ + const int d = data[0] & 0xf0; + return (d == 0x90) || (d == 0x80); +} + +int MidiMessage::getNoteNumber() const throw() +{ + return data[1]; +} + +void MidiMessage::setNoteNumber (const int newNoteNumber) throw() +{ + if (isNoteOnOrOff()) + data[1] = (uint8) jlimit (0, 127, newNoteNumber); +} + +uint8 MidiMessage::getVelocity() const throw() +{ + if (isNoteOnOrOff()) + return data[2]; + else + return 0; +} + +float MidiMessage::getFloatVelocity() const throw() +{ + return getVelocity() * (1.0f / 127.0f); +} + +void MidiMessage::setVelocity (const float newVelocity) throw() +{ + if (isNoteOnOrOff()) + data[2] = (uint8) jlimit (0, 0x7f, roundFloatToInt (newVelocity * 127.0f)); +} + +void MidiMessage::multiplyVelocity (const float scaleFactor) throw() +{ + if (isNoteOnOrOff()) + data[2] = (uint8) jlimit (0, 0x7f, roundFloatToInt (scaleFactor * data[2])); +} + +bool MidiMessage::isAftertouch() const throw() +{ + return (data[0] & 0xf0) == 0xa0; +} + +int MidiMessage::getAfterTouchValue() const throw() +{ + return data[2]; +} + +const MidiMessage MidiMessage::aftertouchChange (const int channel, + const int noteNum, + const int aftertouchValue) throw() +{ + jassert (channel > 0 && channel <= 16); + jassert (noteNum >= 0 && noteNum <= 127); + jassert (aftertouchValue >= 0 && aftertouchValue <= 127); + + return MidiMessage (0xa0 | jlimit (0, 15, channel - 1), + noteNum & 0x7f, + aftertouchValue & 0x7f); +} + +bool MidiMessage::isChannelPressure() const throw() +{ + return (data[0] & 0xf0) == 0xd0; +} + +int MidiMessage::getChannelPressureValue() const throw() +{ + jassert (isChannelPressure()); + + return data[1]; +} + +const MidiMessage MidiMessage::channelPressureChange (const int channel, + const int pressure) throw() +{ + jassert (channel > 0 && channel <= 16); + jassert (pressure >= 0 && pressure <= 127); + + return MidiMessage (0xd0 | jlimit (0, 15, channel - 1), + pressure & 0x7f); +} + +bool MidiMessage::isProgramChange() const throw() +{ + return (data[0] & 0xf0) == 0xc0; +} + +int MidiMessage::getProgramChangeNumber() const throw() +{ + return data[1]; +} + +const MidiMessage MidiMessage::programChange (const int channel, + const int programNumber) throw() +{ + jassert (channel > 0 && channel <= 16); + + return MidiMessage (0xc0 | jlimit (0, 15, channel - 1), + programNumber & 0x7f); +} + +bool MidiMessage::isPitchWheel() const throw() +{ + return (data[0] & 0xf0) == 0xe0; +} + +int MidiMessage::getPitchWheelValue() const throw() +{ + return data[1] | (data[2] << 7); +} + +const MidiMessage MidiMessage::pitchWheel (const int channel, + const int position) throw() +{ + jassert (channel > 0 && channel <= 16); + jassert (position >= 0 && position <= 0x3fff); + + return MidiMessage (0xe0 | jlimit (0, 15, channel - 1), + position & 127, + (position >> 7) & 127); +} + +bool MidiMessage::isController() const throw() +{ + return (data[0] & 0xf0) == 0xb0; +} + +int MidiMessage::getControllerNumber() const throw() +{ + jassert (isController()); + + return data[1]; +} + +int MidiMessage::getControllerValue() const throw() +{ + jassert (isController()); + + return data[2]; +} + +const MidiMessage MidiMessage::controllerEvent (const int channel, + const int controllerType, + const int value) throw() +{ + // the channel must be between 1 and 16 inclusive + jassert (channel > 0 && channel <= 16); + + return MidiMessage (0xb0 | jlimit (0, 15, channel - 1), + controllerType & 127, + value & 127); +} + +const MidiMessage MidiMessage::noteOn (const int channel, + const int noteNumber, + const float velocity) throw() +{ + return noteOn (channel, noteNumber, (uint8)(velocity * 127.0f)); +} + +const MidiMessage MidiMessage::noteOn (const int channel, + const int noteNumber, + const uint8 velocity) throw() +{ + jassert (channel > 0 && channel <= 16); + jassert (noteNumber >= 0 && noteNumber <= 127); + + return MidiMessage (0x90 | jlimit (0, 15, channel - 1), + noteNumber & 127, + jlimit (0, 127, roundFloatToInt (velocity))); +} + +const MidiMessage MidiMessage::noteOff (const int channel, + const int noteNumber) throw() +{ + jassert (channel > 0 && channel <= 16); + jassert (noteNumber >= 0 && noteNumber <= 127); + + return MidiMessage (0x80 | jlimit (0, 15, channel - 1), noteNumber & 127, 0); +} + +const MidiMessage MidiMessage::allNotesOff (const int channel) throw() +{ + jassert (channel > 0 && channel <= 16); + + return controllerEvent (channel, 123, 0); +} + +bool MidiMessage::isAllNotesOff() const throw() +{ + return (data[0] & 0xf0) == 0xb0 + && data[1] == 123; +} + +const MidiMessage MidiMessage::allSoundOff (const int channel) throw() +{ + return controllerEvent (channel, 120, 0); +} + +bool MidiMessage::isAllSoundOff() const throw() +{ + return (data[0] & 0xf0) == 0xb0 + && data[1] == 120; +} + +const MidiMessage MidiMessage::allControllersOff (const int channel) throw() +{ + return controllerEvent (channel, 121, 0); +} + +const MidiMessage MidiMessage::masterVolume (const float volume) throw() +{ + const int vol = jlimit (0, 0x3fff, roundFloatToInt (volume * 0x4000)); + + uint8 buf[8]; + buf[0] = 0xf0; + buf[1] = 0x7f; + buf[2] = 0x7f; + buf[3] = 0x04; + buf[4] = 0x01; + buf[5] = (uint8) (vol & 0x7f); + buf[6] = (uint8) (vol >> 7); + buf[7] = 0xf7; + + return MidiMessage (buf, 8); +} + +//============================================================================== +bool MidiMessage::isSysEx() const throw() +{ + return *data == 0xf0; +} + +const MidiMessage MidiMessage::createSysExMessage (const uint8* sysexData, + const int dataSize) throw() +{ + MemoryBlock mm (dataSize + 2); + uint8* const m = (uint8*) mm.getData(); + + m[0] = 0xf0; + memcpy (m + 1, sysexData, dataSize); + m[dataSize + 1] = 0xf7; + + return MidiMessage (m, dataSize + 2); +} + +const uint8* MidiMessage::getSysExData() const throw() +{ + return (isSysEx()) ? getRawData() + 1 + : 0; +} + +int MidiMessage::getSysExDataSize() const throw() +{ + return (isSysEx()) ? size - 2 + : 0; +} + +bool MidiMessage::isMetaEvent() const throw() +{ + return *data == 0xff; +} + +bool MidiMessage::isActiveSense() const throw() +{ + return *data == 0xfe; +} + +//============================================================================== +int MidiMessage::getMetaEventType() const throw() +{ + if (*data != 0xff) + return -1; + else + return data[1]; +} + +int MidiMessage::getMetaEventLength() const throw() +{ + if (*data == 0xff) + { + int n; + return jmin (size - 2, readVariableLengthVal (data + 2, n)); + } + + return 0; +} + +const uint8* MidiMessage::getMetaEventData() const throw() +{ + int n; + const uint8* d = data + 2; + readVariableLengthVal (d, n); + return d + n; +} + +bool MidiMessage::isTrackMetaEvent() const throw() +{ + return getMetaEventType() == 0; +} + +bool MidiMessage::isEndOfTrackMetaEvent() const throw() +{ + return getMetaEventType() == 47; +} + +bool MidiMessage::isTextMetaEvent() const throw() +{ + const int t = getMetaEventType(); + + return t > 0 && t < 16; +} + +const String MidiMessage::getTextFromTextMetaEvent() const throw() +{ + return String ((const char*) getMetaEventData(), + getMetaEventLength()); +} + +bool MidiMessage::isTrackNameEvent() const throw() +{ + return (data[1] == 3) + && (*data == 0xff); +} + +bool MidiMessage::isTempoMetaEvent() const throw() +{ + return (data[1] == 81) + && (*data == 0xff); +} + +bool MidiMessage::isMidiChannelMetaEvent() const throw() +{ + return (data[1] == 0x20) + && (*data == 0xff) + && (data[2] == 1); +} + +int MidiMessage::getMidiChannelMetaEventChannel() const throw() +{ + return data[3] + 1; +} + +double MidiMessage::getTempoSecondsPerQuarterNote() const throw() +{ + if (! isTempoMetaEvent()) + return 0.0; + + const uint8* const d = getMetaEventData(); + + return (((unsigned int) d[0] << 16) + | ((unsigned int) d[1] << 8) + | d[2]) + / 1000000.0; +} + +double MidiMessage::getTempoMetaEventTickLength (const short timeFormat) const throw() +{ + if (timeFormat > 0) + { + if (! isTempoMetaEvent()) + return 0.5 / timeFormat; + + return getTempoSecondsPerQuarterNote() / timeFormat; + } + else + { + const int frameCode = (-timeFormat) >> 8; + double framesPerSecond; + + switch (frameCode) + { + case 24: framesPerSecond = 24.0; break; + case 25: framesPerSecond = 25.0; break; + case 29: framesPerSecond = 29.97; break; + case 30: framesPerSecond = 30.0; break; + default: framesPerSecond = 30.0; break; + } + + return (1.0 / framesPerSecond) / (timeFormat & 0xff); + } +} + +const MidiMessage MidiMessage::tempoMetaEvent (int microsecondsPerQuarterNote) throw() +{ + uint8 d[8]; + d[0] = 0xff; + d[1] = 81; + d[2] = 3; + d[3] = (uint8) (microsecondsPerQuarterNote >> 16); + d[4] = (uint8) ((microsecondsPerQuarterNote >> 8) & 0xff); + d[5] = (uint8) (microsecondsPerQuarterNote & 0xff); + + return MidiMessage (d, 6, 0.0); +} + +bool MidiMessage::isTimeSignatureMetaEvent() const throw() +{ + return (data[1] == 0x58) + && (*data == (uint8) 0xff); +} + +void MidiMessage::getTimeSignatureInfo (int& numerator, + int& denominator) const throw() +{ + if (isTimeSignatureMetaEvent()) + { + const uint8* const d = getMetaEventData(); + numerator = d[0]; + denominator = 1 << d[1]; + } + else + { + numerator = 4; + denominator = 4; + } +} + +const MidiMessage MidiMessage::timeSignatureMetaEvent (const int numerator, + const int denominator) throw() +{ + uint8 d[8]; + d[0] = 0xff; + d[1] = 0x58; + d[2] = 0x04; + d[3] = (uint8) numerator; + + int n = 1; + int powerOfTwo = 0; + + while (n < denominator) + { + n <<= 1; + ++powerOfTwo; + } + + d[4] = (uint8) powerOfTwo; + d[5] = 0x01; + d[6] = 96; + + return MidiMessage (d, 7, 0.0); +} + +const MidiMessage MidiMessage::midiChannelMetaEvent (const int channel) throw() +{ + uint8 d[8]; + d[0] = 0xff; + d[1] = 0x20; + d[2] = 0x01; + d[3] = (uint8) jlimit (0, 0xff, channel - 1); + + return MidiMessage (d, 4, 0.0); +} + +bool MidiMessage::isKeySignatureMetaEvent() const throw() +{ + return getMetaEventType() == 89; +} + +int MidiMessage::getKeySignatureNumberOfSharpsOrFlats() const throw() +{ + return (int) *getMetaEventData(); +} + +const MidiMessage MidiMessage::endOfTrack() throw() +{ + return MidiMessage (0xff, 0x2f, 0, 0.0); +} + +//============================================================================== +bool MidiMessage::isSongPositionPointer() const throw() +{ + return *data == 0xf2; +} + +int MidiMessage::getSongPositionPointerMidiBeat() const throw() +{ + return data[1] | (data[2] << 7); +} + +const MidiMessage MidiMessage::songPositionPointer (const int positionInMidiBeats) throw() +{ + return MidiMessage (0xf2, + positionInMidiBeats & 127, + (positionInMidiBeats >> 7) & 127); +} + +bool MidiMessage::isMidiStart() const throw() +{ + return *data == 0xfa; +} + +const MidiMessage MidiMessage::midiStart() throw() +{ + return MidiMessage (0xfa); +} + +bool MidiMessage::isMidiContinue() const throw() +{ + return *data == 0xfb; +} + +const MidiMessage MidiMessage::midiContinue() throw() +{ + return MidiMessage (0xfb); +} + +bool MidiMessage::isMidiStop() const throw() +{ + return *data == 0xfc; +} + +const MidiMessage MidiMessage::midiStop() throw() +{ + return MidiMessage (0xfc); +} + +bool MidiMessage::isMidiClock() const throw() +{ + return *data == 0xf8; +} + +const MidiMessage MidiMessage::midiClock() throw() +{ + return MidiMessage (0xf8); +} + +bool MidiMessage::isQuarterFrame() const throw() +{ + return *data == 0xf1; +} + +int MidiMessage::getQuarterFrameSequenceNumber() const throw() +{ + return ((int) data[1]) >> 4; +} + +int MidiMessage::getQuarterFrameValue() const throw() +{ + return ((int) data[1]) & 0x0f; +} + +const MidiMessage MidiMessage::quarterFrame (const int sequenceNumber, + const int value) throw() +{ + return MidiMessage (0xf1, (sequenceNumber << 4) | value); +} + +bool MidiMessage::isFullFrame() const throw() +{ + return data[0] == 0xf0 + && data[1] == 0x7f + && size >= 10 + && data[3] == 0x01 + && data[4] == 0x01; +} + +void MidiMessage::getFullFrameParameters (int& hours, + int& minutes, + int& seconds, + int& frames, + MidiMessage::SmpteTimecodeType& timecodeType) const throw() +{ + jassert (isFullFrame()); + + timecodeType = (SmpteTimecodeType) (data[5] >> 5); + hours = data[5] & 0x1f; + minutes = data[6]; + seconds = data[7]; + frames = data[8]; +} + +const MidiMessage MidiMessage::fullFrame (const int hours, + const int minutes, + const int seconds, + const int frames, + MidiMessage::SmpteTimecodeType timecodeType) +{ + uint8 d[10]; + d[0] = 0xf0; + d[1] = 0x7f; + d[2] = 0x7f; + d[3] = 0x01; + d[4] = 0x01; + d[5] = (uint8) ((hours & 0x01f) | (timecodeType << 5)); + d[6] = (uint8) minutes; + d[7] = (uint8) seconds; + d[8] = (uint8) frames; + d[9] = 0xf7; + + return MidiMessage (d, 10, 0.0); +} + +bool MidiMessage::isMidiMachineControlMessage() const throw() +{ + return data[0] == 0xf0 + && data[1] == 0x7f + && data[3] == 0x06 + && size > 5; +} + +MidiMessage::MidiMachineControlCommand MidiMessage::getMidiMachineControlCommand() const throw() +{ + jassert (isMidiMachineControlMessage()); + + return (MidiMachineControlCommand) data[4]; +} + +const MidiMessage MidiMessage::midiMachineControlCommand (MidiMessage::MidiMachineControlCommand command) +{ + uint8 d[6]; + d[0] = 0xf0; + d[1] = 0x7f; + d[2] = 0x00; + d[3] = 0x06; + d[4] = (uint8) command; + d[5] = 0xf7; + + return MidiMessage (d, 6, 0.0); +} + +//============================================================================== +bool MidiMessage::isMidiMachineControlGoto (int& hours, + int& minutes, + int& seconds, + int& frames) const throw() +{ + if (size >= 12 + && data[0] == 0xf0 + && data[1] == 0x7f + && data[3] == 0x06 + && data[4] == 0x44 + && data[5] == 0x06 + && data[6] == 0x01) + { + hours = data[7] % 24; // (that some machines send out hours > 24) + minutes = data[8]; + seconds = data[9]; + frames = data[10]; + + return true; + } + + return false; +} + +const MidiMessage MidiMessage::midiMachineControlGoto (int hours, + int minutes, + int seconds, + int frames) +{ + uint8 d[12]; + d[0] = 0xf0; + d[1] = 0x7f; + d[2] = 0x00; + d[3] = 0x06; + d[4] = 0x44; + d[5] = 0x06; + d[6] = 0x01; + d[7] = (uint8) hours; + d[8] = (uint8) minutes; + d[9] = (uint8) seconds; + d[10] = (uint8) frames; + d[11] = 0xf7; + + return MidiMessage (d, 12, 0.0); +} + +//============================================================================== +const String MidiMessage::getMidiNoteName (int note, + bool useSharps, + bool includeOctaveNumber, + int octaveNumForMiddleC) throw() +{ + static const char* const sharpNoteNames[] = { "C", "C#", "D", "D#", "E", + "F", "F#", "G", "G#", "A", + "A#", "B" }; + + static const char* const flatNoteNames[] = { "C", "Db", "D", "Eb", "E", + "F", "Gb", "G", "Ab", "A", + "Bb", "B" }; + + if (note >= 0 && note < 128) + { + const String s ((useSharps) ? sharpNoteNames [note % 12] + : flatNoteNames [note % 12]); + + if (includeOctaveNumber) + return s + String (note / 12 + (octaveNumForMiddleC - 5)); + else + return s; + } + + return String::empty; +} + +const double MidiMessage::getMidiNoteInHertz (int noteNumber) throw() +{ + noteNumber -= 12 * 6 + 9; // now 0 = A440 + return 440.0 * pow (2.0, noteNumber / 12.0); +} + +const String MidiMessage::getGMInstrumentName (int n) throw() +{ + const char *names[] = + { + "Acoustic Grand Piano", "Bright Acoustic Piano", "Electric Grand Piano", "Honky-tonk Piano", + "Electric Piano 1", "Electric Piano 2", "Harpsichord", "Clavinet", "Celesta", "Glockenspiel", + "Music Box", "Vibraphone", "Marimba", "Xylophone", "Tubular Bells", "Dulcimer", "Drawbar Organ", + "Percussive Organ", "Rock Organ", "Church Organ", "Reed Organ", "Accordion", "Harmonica", + "Tango Accordion", "Acoustic Guitar (nylon)", "Acoustic Guitar (steel)", "Electric Guitar (jazz)", + "Electric Guitar (clean)", "Electric Guitar (mute)", "Overdriven Guitar", "Distortion Guitar", + "Guitar Harmonics", "Acoustic Bass", "Electric Bass (finger)", "Electric Bass (pick)", + "Fretless Bass", "Slap Bass 1", "Slap Bass 2", "Synth Bass 1", "Synth Bass 2", "Violin", + "Viola", "Cello", "Contrabass", "Tremolo Strings", "Pizzicato Strings", "Orchestral Harp", + "Timpani", "String Ensemble 1", "String Ensemble 2", "SynthStrings 1", "SynthStrings 2", + "Choir Aahs", "Voice Oohs", "Synth Voice", "Orchestra Hit", "Trumpet", "Trombone", "Tuba", + "Muted Trumpet", "French Horn", "Brass Section", "SynthBrass 1", "SynthBrass 2", "Soprano Sax", + "Alto Sax", "Tenor Sax", "Baritone Sax", "Oboe", "English Horn", "Bassoon", "Clarinet", + "Piccolo", "Flute", "Recorder", "Pan Flute", "Blown Bottle", "Shakuhachi", "Whistle", + "Ocarina", "Lead 1 (square)", "Lead 2 (sawtooth)", "Lead 3 (calliope)", "Lead 4 (chiff)", + "Lead 5 (charang)", "Lead 6 (voice)", "Lead 7 (fifths)", "Lead 8 (bass+lead)", "Pad 1 (new age)", + "Pad 2 (warm)", "Pad 3 (polysynth)", "Pad 4 (choir)", "Pad 5 (bowed)", "Pad 6 (metallic)", + "Pad 7 (halo)", "Pad 8 (sweep)", "FX 1 (rain)", "FX 2 (soundtrack)", "FX 3 (crystal)", + "FX 4 (atmosphere)", "FX 5 (brightness)", "FX 6 (goblins)", "FX 7 (echoes)", "FX 8 (sci-fi)", + "Sitar", "Banjo", "Shamisen", "Koto", "Kalimba", "Bag pipe", "Fiddle", "Shanai", "Tinkle Bell", + "Agogo", "Steel Drums", "Woodblock", "Taiko Drum", "Melodic Tom", "Synth Drum", "Reverse Cymbal", + "Guitar Fret Noise", "Breath Noise", "Seashore", "Bird Tweet", "Telephone Ring", "Helicopter", + "Applause", "Gunshot" + }; + + return (n >= 0 && n < 128) ? names[n] + : (const char*)0; +} + +const String MidiMessage::getGMInstrumentBankName (int n) throw() +{ + const char* names[] = + { + "Piano", "Chromatic Percussion", "Organ", "Guitar", + "Bass", "Strings", "Ensemble", "Brass", + "Reed", "Pipe", "Synth Lead", "Synth Pad", + "Synth Effects", "Ethnic", "Percussive", "Sound Effects" + }; + + return (n >= 0 && n <= 15) ? names[n] + : (const char*)0; +} + +const String MidiMessage::getRhythmInstrumentName (int n) throw() +{ + const char* names[] = + { + "Acoustic Bass Drum", "Bass Drum 1", "Side Stick", "Acoustic Snare", + "Hand Clap", "Electric Snare", "Low Floor Tom", "Closed Hi-Hat", "High Floor Tom", + "Pedal Hi-Hat", "Low Tom", "Open Hi-Hat", "Low-Mid Tom", "Hi-Mid Tom", "Crash Cymbal 1", + "High Tom", "Ride Cymbal 1", "Chinese Cymbal", "Ride Bell", "Tambourine", "Splash Cymbal", + "Cowbell", "Crash Cymbal 2", "Vibraslap", "Ride Cymbal 2", "Hi Bongo", "Low Bongo", + "Mute Hi Conga", "Open Hi Conga", "Low Conga", "High Timbale", "Low Timbale", "High Agogo", + "Low Agogo", "Cabasa", "Maracas", "Short Whistle", "Long Whistle", "Short Guiro", + "Long Guiro", "Claves", "Hi Wood Block", "Low Wood Block", "Mute Cuica", "Open Cuica", + "Mute Triangle", "Open Triangle" + }; + + return (n >= 35 && n <= 81) ? names [n - 35] + : (const char*)0; +} + +const String MidiMessage::getControllerName (int n) throw() +{ + const char* names[] = + { + "Bank Select", "Modulation Wheel (coarse)", "Breath controller (coarse)", + 0, "Foot Pedal (coarse)", "Portamento Time (coarse)", + "Data Entry (coarse)", "Volume (coarse)", "Balance (coarse)", + 0, "Pan position (coarse)", "Expression (coarse)", "Effect Control 1 (coarse)", + "Effect Control 2 (coarse)", 0, 0, "General Purpose Slider 1", "General Purpose Slider 2", + "General Purpose Slider 3", "General Purpose Slider 4", 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, "Bank Select (fine)", "Modulation Wheel (fine)", "Breath controller (fine)", + 0, "Foot Pedal (fine)", "Portamento Time (fine)", "Data Entry (fine)", "Volume (fine)", + "Balance (fine)", 0, "Pan position (fine)", "Expression (fine)", "Effect Control 1 (fine)", + "Effect Control 2 (fine)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + "Hold Pedal (on/off)", "Portamento (on/off)", "Sustenuto Pedal (on/off)", "Soft Pedal (on/off)", + "Legato Pedal (on/off)", "Hold 2 Pedal (on/off)", "Sound Variation", "Sound Timbre", + "Sound Release Time", "Sound Attack Time", "Sound Brightness", "Sound Control 6", + "Sound Control 7", "Sound Control 8", "Sound Control 9", "Sound Control 10", + "General Purpose Button 1 (on/off)", "General Purpose Button 2 (on/off)", + "General Purpose Button 3 (on/off)", "General Purpose Button 4 (on/off)", + 0, 0, 0, 0, 0, 0, 0, "Reverb Level", "Tremolo Level", "Chorus Level", "Celeste Level", + "Phaser Level", "Data Button increment", "Data Button decrement", "Non-registered Parameter (fine)", + "Non-registered Parameter (coarse)", "Registered Parameter (fine)", "Registered Parameter (coarse)", + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "All Sound Off", "All Controllers Off", + "Local Keyboard (on/off)", "All Notes Off", "Omni Mode Off", "Omni Mode On", "Mono Operation", + "Poly Operation" + }; + + return (n >= 0 && n < 128) ? names[n] + : (const char*)0; +} + +END_JUCE_NAMESPACE diff --git a/src/juce_appframework/audio/midi/juce_MidiMessage.h b/src/juce_appframework/audio/midi/juce_MidiMessage.h index 3893541c90..c521b9ff4c 100644 --- a/src/juce_appframework/audio/midi/juce_MidiMessage.h +++ b/src/juce_appframework/audio/midi/juce_MidiMessage.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/midi/juce_MidiMessageCollector.cpp b/src/juce_appframework/audio/midi/juce_MidiMessageCollector.cpp index 5271fb9f98..ca24b86b78 100644 --- a/src/juce_appframework/audio/midi/juce_MidiMessageCollector.cpp +++ b/src/juce_appframework/audio/midi/juce_MidiMessageCollector.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/midi/juce_MidiMessageCollector.h b/src/juce_appframework/audio/midi/juce_MidiMessageCollector.h index 931c76c86e..b0953c0f5f 100644 --- a/src/juce_appframework/audio/midi/juce_MidiMessageCollector.h +++ b/src/juce_appframework/audio/midi/juce_MidiMessageCollector.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/midi/juce_MidiMessageSequence.cpp b/src/juce_appframework/audio/midi/juce_MidiMessageSequence.cpp index 88f382a52b..0e10068b37 100644 --- a/src/juce_appframework/audio/midi/juce_MidiMessageSequence.cpp +++ b/src/juce_appframework/audio/midi/juce_MidiMessageSequence.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/midi/juce_MidiMessageSequence.h b/src/juce_appframework/audio/midi/juce_MidiMessageSequence.h index de18804907..b5024b7c63 100644 --- a/src/juce_appframework/audio/midi/juce_MidiMessageSequence.h +++ b/src/juce_appframework/audio/midi/juce_MidiMessageSequence.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -188,11 +188,11 @@ public: @param other the sequence to add from @param timeAdjustmentDelta an amount to add to the timestamps of the midi events as they are read from the other sequence - @param firstAllowableDestTime events will not be added if their time is earlier + @param firstAllowableDestTime events will not be added if their time is earlier than this time. (This is after their time has been adjusted by the timeAdjustmentDelta) - @param endOfAllowableDestTimes events will not be added if their time is equal to - or greater than this time. (This is after their time has + @param endOfAllowableDestTimes events will not be added if their time is equal to + or greater than this time. (This is after their time has been adjusted by the timeAdjustmentDelta) */ void addSequence (const MidiMessageSequence& other, diff --git a/src/juce_appframework/audio/synthesisers/juce_Sampler.cpp b/src/juce_appframework/audio/synthesisers/juce_Sampler.cpp index 0d5d0b3876..9e53e21edd 100644 --- a/src/juce_appframework/audio/synthesisers/juce_Sampler.cpp +++ b/src/juce_appframework/audio/synthesisers/juce_Sampler.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/synthesisers/juce_Sampler.h b/src/juce_appframework/audio/synthesisers/juce_Sampler.h index f338d0e505..741666640c 100644 --- a/src/juce_appframework/audio/synthesisers/juce_Sampler.h +++ b/src/juce_appframework/audio/synthesisers/juce_Sampler.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/synthesisers/juce_Synthesiser.cpp b/src/juce_appframework/audio/synthesisers/juce_Synthesiser.cpp index e9c0e69934..ab32dfaabd 100644 --- a/src/juce_appframework/audio/synthesisers/juce_Synthesiser.cpp +++ b/src/juce_appframework/audio/synthesisers/juce_Synthesiser.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/audio/synthesisers/juce_Synthesiser.h b/src/juce_appframework/audio/synthesisers/juce_Synthesiser.h index 7260b2f2b1..e538ce4110 100644 --- a/src/juce_appframework/audio/synthesisers/juce_Synthesiser.h +++ b/src/juce_appframework/audio/synthesisers/juce_Synthesiser.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/documents/juce_FileBasedDocument.cpp b/src/juce_appframework/documents/juce_FileBasedDocument.cpp index c07d6562fe..b5d7281d99 100644 --- a/src/juce_appframework/documents/juce_FileBasedDocument.cpp +++ b/src/juce_appframework/documents/juce_FileBasedDocument.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/documents/juce_FileBasedDocument.h b/src/juce_appframework/documents/juce_FileBasedDocument.h index c6964e8a6c..5c09cc8921 100644 --- a/src/juce_appframework/documents/juce_FileBasedDocument.h +++ b/src/juce_appframework/documents/juce_FileBasedDocument.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/documents/juce_RecentlyOpenedFilesList.cpp b/src/juce_appframework/documents/juce_RecentlyOpenedFilesList.cpp index 74dafe5fa1..e6ceb2705b 100644 --- a/src/juce_appframework/documents/juce_RecentlyOpenedFilesList.cpp +++ b/src/juce_appframework/documents/juce_RecentlyOpenedFilesList.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/documents/juce_RecentlyOpenedFilesList.h b/src/juce_appframework/documents/juce_RecentlyOpenedFilesList.h index 43a2839dd0..d833cbdf2e 100644 --- a/src/juce_appframework/documents/juce_RecentlyOpenedFilesList.h +++ b/src/juce_appframework/documents/juce_RecentlyOpenedFilesList.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/documents/juce_SelectedItemSet.h b/src/juce_appframework/documents/juce_SelectedItemSet.h index a58c759074..aef4d57c87 100644 --- a/src/juce_appframework/documents/juce_SelectedItemSet.h +++ b/src/juce_appframework/documents/juce_SelectedItemSet.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/documents/juce_UndoManager.cpp b/src/juce_appframework/documents/juce_UndoManager.cpp index f20de0d9c2..a3328814c4 100644 --- a/src/juce_appframework/documents/juce_UndoManager.cpp +++ b/src/juce_appframework/documents/juce_UndoManager.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/documents/juce_UndoManager.h b/src/juce_appframework/documents/juce_UndoManager.h index 83e65dbf3b..831cf250f8 100644 --- a/src/juce_appframework/documents/juce_UndoManager.h +++ b/src/juce_appframework/documents/juce_UndoManager.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/documents/juce_UndoableAction.h b/src/juce_appframework/documents/juce_UndoableAction.h index f78e9ac47f..40003df904 100644 --- a/src/juce_appframework/documents/juce_UndoableAction.h +++ b/src/juce_appframework/documents/juce_UndoableAction.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_ActionBroadcaster.cpp b/src/juce_appframework/events/juce_ActionBroadcaster.cpp index 6e6770ca33..4d23e9597e 100644 --- a/src/juce_appframework/events/juce_ActionBroadcaster.cpp +++ b/src/juce_appframework/events/juce_ActionBroadcaster.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_ActionBroadcaster.h b/src/juce_appframework/events/juce_ActionBroadcaster.h index ce246c4f55..ec2f321621 100644 --- a/src/juce_appframework/events/juce_ActionBroadcaster.h +++ b/src/juce_appframework/events/juce_ActionBroadcaster.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_ActionListener.h b/src/juce_appframework/events/juce_ActionListener.h index 0fab807bbf..352c65e7ce 100644 --- a/src/juce_appframework/events/juce_ActionListener.h +++ b/src/juce_appframework/events/juce_ActionListener.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_ActionListenerList.cpp b/src/juce_appframework/events/juce_ActionListenerList.cpp index 4c60692309..088c757567 100644 --- a/src/juce_appframework/events/juce_ActionListenerList.cpp +++ b/src/juce_appframework/events/juce_ActionListenerList.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_ActionListenerList.h b/src/juce_appframework/events/juce_ActionListenerList.h index 6e9169f991..c8c5d0d709 100644 --- a/src/juce_appframework/events/juce_ActionListenerList.h +++ b/src/juce_appframework/events/juce_ActionListenerList.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_AsyncUpdater.cpp b/src/juce_appframework/events/juce_AsyncUpdater.cpp index 54e636b1d9..2ce68e50da 100644 --- a/src/juce_appframework/events/juce_AsyncUpdater.cpp +++ b/src/juce_appframework/events/juce_AsyncUpdater.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_AsyncUpdater.h b/src/juce_appframework/events/juce_AsyncUpdater.h index a1dcc871e7..2844c37ce1 100644 --- a/src/juce_appframework/events/juce_AsyncUpdater.h +++ b/src/juce_appframework/events/juce_AsyncUpdater.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_ChangeBroadcaster.cpp b/src/juce_appframework/events/juce_ChangeBroadcaster.cpp index 44bf0cc0a0..7c30758ae3 100644 --- a/src/juce_appframework/events/juce_ChangeBroadcaster.cpp +++ b/src/juce_appframework/events/juce_ChangeBroadcaster.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_ChangeBroadcaster.h b/src/juce_appframework/events/juce_ChangeBroadcaster.h index 44919d7484..bd009b4b5c 100644 --- a/src/juce_appframework/events/juce_ChangeBroadcaster.h +++ b/src/juce_appframework/events/juce_ChangeBroadcaster.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_ChangeListener.h b/src/juce_appframework/events/juce_ChangeListener.h index 759e8bfd1f..9ccac93ce0 100644 --- a/src/juce_appframework/events/juce_ChangeListener.h +++ b/src/juce_appframework/events/juce_ChangeListener.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_ChangeListenerList.cpp b/src/juce_appframework/events/juce_ChangeListenerList.cpp index 66f280958d..fee5ecf93c 100644 --- a/src/juce_appframework/events/juce_ChangeListenerList.cpp +++ b/src/juce_appframework/events/juce_ChangeListenerList.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_ChangeListenerList.h b/src/juce_appframework/events/juce_ChangeListenerList.h index bb64130fc6..7adf72fd4f 100644 --- a/src/juce_appframework/events/juce_ChangeListenerList.h +++ b/src/juce_appframework/events/juce_ChangeListenerList.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_InterprocessConnection.cpp b/src/juce_appframework/events/juce_InterprocessConnection.cpp index e8194831de..b66cf8303d 100644 --- a/src/juce_appframework/events/juce_InterprocessConnection.cpp +++ b/src/juce_appframework/events/juce_InterprocessConnection.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_InterprocessConnection.h b/src/juce_appframework/events/juce_InterprocessConnection.h index 657052d9ed..ad669f371b 100644 --- a/src/juce_appframework/events/juce_InterprocessConnection.h +++ b/src/juce_appframework/events/juce_InterprocessConnection.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_InterprocessConnectionServer.cpp b/src/juce_appframework/events/juce_InterprocessConnectionServer.cpp index 96ffc855a8..ec79f1dde2 100644 --- a/src/juce_appframework/events/juce_InterprocessConnectionServer.cpp +++ b/src/juce_appframework/events/juce_InterprocessConnectionServer.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_InterprocessConnectionServer.h b/src/juce_appframework/events/juce_InterprocessConnectionServer.h index e83fa01790..dfc64a8b5d 100644 --- a/src/juce_appframework/events/juce_InterprocessConnectionServer.h +++ b/src/juce_appframework/events/juce_InterprocessConnectionServer.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_Message.cpp b/src/juce_appframework/events/juce_Message.cpp index 4d8df5413a..4883ae76bf 100644 --- a/src/juce_appframework/events/juce_Message.cpp +++ b/src/juce_appframework/events/juce_Message.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_Message.h b/src/juce_appframework/events/juce_Message.h index 2fff5d53f8..89ab18cd35 100644 --- a/src/juce_appframework/events/juce_Message.h +++ b/src/juce_appframework/events/juce_Message.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_MessageListener.cpp b/src/juce_appframework/events/juce_MessageListener.cpp index df9aa19309..442928d7f1 100644 --- a/src/juce_appframework/events/juce_MessageListener.cpp +++ b/src/juce_appframework/events/juce_MessageListener.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_MessageListener.h b/src/juce_appframework/events/juce_MessageListener.h index 634075c24e..d9d2b737b3 100644 --- a/src/juce_appframework/events/juce_MessageListener.h +++ b/src/juce_appframework/events/juce_MessageListener.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_MessageManager.cpp b/src/juce_appframework/events/juce_MessageManager.cpp index 1040c4a0e1..310807e8f8 100644 --- a/src/juce_appframework/events/juce_MessageManager.cpp +++ b/src/juce_appframework/events/juce_MessageManager.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_MessageManager.h b/src/juce_appframework/events/juce_MessageManager.h index 8a8e47e47f..7757036b48 100644 --- a/src/juce_appframework/events/juce_MessageManager.h +++ b/src/juce_appframework/events/juce_MessageManager.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_MultiTimer.cpp b/src/juce_appframework/events/juce_MultiTimer.cpp index a5640d3f9c..f8a0f92ca7 100644 --- a/src/juce_appframework/events/juce_MultiTimer.cpp +++ b/src/juce_appframework/events/juce_MultiTimer.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_MultiTimer.h b/src/juce_appframework/events/juce_MultiTimer.h index 071426055f..1157e37546 100644 --- a/src/juce_appframework/events/juce_MultiTimer.h +++ b/src/juce_appframework/events/juce_MultiTimer.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_Timer.cpp b/src/juce_appframework/events/juce_Timer.cpp index 57c3f66db2..292b8ead7e 100644 --- a/src/juce_appframework/events/juce_Timer.cpp +++ b/src/juce_appframework/events/juce_Timer.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/events/juce_Timer.h b/src/juce_appframework/events/juce_Timer.h index 8daee0e4fc..65480de1af 100644 --- a/src/juce_appframework/events/juce_Timer.h +++ b/src/juce_appframework/events/juce_Timer.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_ArrowButton.cpp b/src/juce_appframework/gui/components/buttons/juce_ArrowButton.cpp index d2879fc9aa..9874cd791a 100644 --- a/src/juce_appframework/gui/components/buttons/juce_ArrowButton.cpp +++ b/src/juce_appframework/gui/components/buttons/juce_ArrowButton.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_ArrowButton.h b/src/juce_appframework/gui/components/buttons/juce_ArrowButton.h index 82b2845255..94e1425c0e 100644 --- a/src/juce_appframework/gui/components/buttons/juce_ArrowButton.h +++ b/src/juce_appframework/gui/components/buttons/juce_ArrowButton.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_Button.cpp b/src/juce_appframework/gui/components/buttons/juce_Button.cpp index 3e5a8fb0f6..b5f86e9211 100644 --- a/src/juce_appframework/gui/components/buttons/juce_Button.cpp +++ b/src/juce_appframework/gui/components/buttons/juce_Button.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_Button.h b/src/juce_appframework/gui/components/buttons/juce_Button.h index 265c39348f..3a3b9cb32e 100644 --- a/src/juce_appframework/gui/components/buttons/juce_Button.h +++ b/src/juce_appframework/gui/components/buttons/juce_Button.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_DrawableButton.cpp b/src/juce_appframework/gui/components/buttons/juce_DrawableButton.cpp index 87c2922daa..61a9038f75 100644 --- a/src/juce_appframework/gui/components/buttons/juce_DrawableButton.cpp +++ b/src/juce_appframework/gui/components/buttons/juce_DrawableButton.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_DrawableButton.h b/src/juce_appframework/gui/components/buttons/juce_DrawableButton.h index f5c7274e61..ab2c281fe7 100644 --- a/src/juce_appframework/gui/components/buttons/juce_DrawableButton.h +++ b/src/juce_appframework/gui/components/buttons/juce_DrawableButton.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_HyperlinkButton.cpp b/src/juce_appframework/gui/components/buttons/juce_HyperlinkButton.cpp index ec2a638743..ffa13642c9 100644 --- a/src/juce_appframework/gui/components/buttons/juce_HyperlinkButton.cpp +++ b/src/juce_appframework/gui/components/buttons/juce_HyperlinkButton.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_HyperlinkButton.h b/src/juce_appframework/gui/components/buttons/juce_HyperlinkButton.h index 93d6bddf28..77833aeefd 100644 --- a/src/juce_appframework/gui/components/buttons/juce_HyperlinkButton.h +++ b/src/juce_appframework/gui/components/buttons/juce_HyperlinkButton.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_ImageButton.cpp b/src/juce_appframework/gui/components/buttons/juce_ImageButton.cpp index ee643687cd..b8a13e981e 100644 --- a/src/juce_appframework/gui/components/buttons/juce_ImageButton.cpp +++ b/src/juce_appframework/gui/components/buttons/juce_ImageButton.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_ImageButton.h b/src/juce_appframework/gui/components/buttons/juce_ImageButton.h index 5ab3593b74..d9b489698d 100644 --- a/src/juce_appframework/gui/components/buttons/juce_ImageButton.h +++ b/src/juce_appframework/gui/components/buttons/juce_ImageButton.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_ShapeButton.cpp b/src/juce_appframework/gui/components/buttons/juce_ShapeButton.cpp index 7f35ea05ef..f9e45467c4 100644 --- a/src/juce_appframework/gui/components/buttons/juce_ShapeButton.cpp +++ b/src/juce_appframework/gui/components/buttons/juce_ShapeButton.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_ShapeButton.h b/src/juce_appframework/gui/components/buttons/juce_ShapeButton.h index bd9cbcb653..7dc2b10f38 100644 --- a/src/juce_appframework/gui/components/buttons/juce_ShapeButton.h +++ b/src/juce_appframework/gui/components/buttons/juce_ShapeButton.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_TextButton.cpp b/src/juce_appframework/gui/components/buttons/juce_TextButton.cpp index 7694a33609..33f36fc031 100644 --- a/src/juce_appframework/gui/components/buttons/juce_TextButton.cpp +++ b/src/juce_appframework/gui/components/buttons/juce_TextButton.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_TextButton.h b/src/juce_appframework/gui/components/buttons/juce_TextButton.h index 5d546965c6..198d270c88 100644 --- a/src/juce_appframework/gui/components/buttons/juce_TextButton.h +++ b/src/juce_appframework/gui/components/buttons/juce_TextButton.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_ToggleButton.cpp b/src/juce_appframework/gui/components/buttons/juce_ToggleButton.cpp index 1301b034ee..3788b122ea 100644 --- a/src/juce_appframework/gui/components/buttons/juce_ToggleButton.cpp +++ b/src/juce_appframework/gui/components/buttons/juce_ToggleButton.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_ToggleButton.h b/src/juce_appframework/gui/components/buttons/juce_ToggleButton.h index b86e146110..88ee190de5 100644 --- a/src/juce_appframework/gui/components/buttons/juce_ToggleButton.h +++ b/src/juce_appframework/gui/components/buttons/juce_ToggleButton.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_ToolbarButton.cpp b/src/juce_appframework/gui/components/buttons/juce_ToolbarButton.cpp index b957564d20..20b95fd250 100644 --- a/src/juce_appframework/gui/components/buttons/juce_ToolbarButton.cpp +++ b/src/juce_appframework/gui/components/buttons/juce_ToolbarButton.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/buttons/juce_ToolbarButton.h b/src/juce_appframework/gui/components/buttons/juce_ToolbarButton.h index 6e534a31e8..aaa5853119 100644 --- a/src/juce_appframework/gui/components/buttons/juce_ToolbarButton.h +++ b/src/juce_appframework/gui/components/buttons/juce_ToolbarButton.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_ComboBox.cpp b/src/juce_appframework/gui/components/controls/juce_ComboBox.cpp index 36a326239e..006060ecc5 100644 --- a/src/juce_appframework/gui/components/controls/juce_ComboBox.cpp +++ b/src/juce_appframework/gui/components/controls/juce_ComboBox.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_ComboBox.h b/src/juce_appframework/gui/components/controls/juce_ComboBox.h index 46bb236ee9..28e78c0cf6 100644 --- a/src/juce_appframework/gui/components/controls/juce_ComboBox.h +++ b/src/juce_appframework/gui/components/controls/juce_ComboBox.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_Label.cpp b/src/juce_appframework/gui/components/controls/juce_Label.cpp index 58daca5002..eabde790b1 100644 --- a/src/juce_appframework/gui/components/controls/juce_Label.cpp +++ b/src/juce_appframework/gui/components/controls/juce_Label.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_Label.h b/src/juce_appframework/gui/components/controls/juce_Label.h index 968fe43ccc..09db081cb2 100644 --- a/src/juce_appframework/gui/components/controls/juce_Label.h +++ b/src/juce_appframework/gui/components/controls/juce_Label.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_ListBox.cpp b/src/juce_appframework/gui/components/controls/juce_ListBox.cpp index 04f041a159..e23334007f 100644 --- a/src/juce_appframework/gui/components/controls/juce_ListBox.cpp +++ b/src/juce_appframework/gui/components/controls/juce_ListBox.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -45,7 +45,7 @@ class ListBoxRowComponent : public Component public: ListBoxRowComponent (ListBox& owner_) : owner (owner_), - row (-1), + row (-1), selected (false), isDragging (false) { diff --git a/src/juce_appframework/gui/components/controls/juce_ListBox.h b/src/juce_appframework/gui/components/controls/juce_ListBox.h index 07f19b2c61..54c142bcd4 100644 --- a/src/juce_appframework/gui/components/controls/juce_ListBox.h +++ b/src/juce_appframework/gui/components/controls/juce_ListBox.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_ProgressBar.cpp b/src/juce_appframework/gui/components/controls/juce_ProgressBar.cpp index 111007d179..e9977f8552 100644 --- a/src/juce_appframework/gui/components/controls/juce_ProgressBar.cpp +++ b/src/juce_appframework/gui/components/controls/juce_ProgressBar.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_ProgressBar.h b/src/juce_appframework/gui/components/controls/juce_ProgressBar.h index 9b7b21d32e..d6305093d7 100644 --- a/src/juce_appframework/gui/components/controls/juce_ProgressBar.h +++ b/src/juce_appframework/gui/components/controls/juce_ProgressBar.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_Slider.cpp b/src/juce_appframework/gui/components/controls/juce_Slider.cpp index a1692f147d..5ad08f6231 100644 --- a/src/juce_appframework/gui/components/controls/juce_Slider.cpp +++ b/src/juce_appframework/gui/components/controls/juce_Slider.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -1208,8 +1208,8 @@ void Slider::mouseDrag (const MouseEvent& e) if (speed != 0) { speed = 0.2 * velocityModeSensitivity - * (1.0 + sin (double_Pi * (1.5 + jmin (0.5, velocityModeOffset - + jmax (0.0, (double) (speed - velocityModeThreshold)) + * (1.0 + sin (double_Pi * (1.5 + jmin (0.5, velocityModeOffset + + jmax (0.0, (double) (speed - velocityModeThreshold)) / maxSpeed)))); if (mouseDiff < 0) diff --git a/src/juce_appframework/gui/components/controls/juce_Slider.h b/src/juce_appframework/gui/components/controls/juce_Slider.h index 78eeaea1e9..bf0d9d7840 100644 --- a/src/juce_appframework/gui/components/controls/juce_Slider.h +++ b/src/juce_appframework/gui/components/controls/juce_Slider.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -158,7 +158,7 @@ public: void setVelocityBasedMode (const bool isVelocityBased) throw(); /** Changes aspects of the scaling used when in velocity-sensitive mode. - + These apply when you've used setVelocityBasedMode() to turn on velocity mode, or if you're holding down ctrl. diff --git a/src/juce_appframework/gui/components/controls/juce_SliderListener.h b/src/juce_appframework/gui/components/controls/juce_SliderListener.h index 5581b3bcd9..395ef5016f 100644 --- a/src/juce_appframework/gui/components/controls/juce_SliderListener.h +++ b/src/juce_appframework/gui/components/controls/juce_SliderListener.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_TableHeaderComponent.cpp b/src/juce_appframework/gui/components/controls/juce_TableHeaderComponent.cpp index 5305f3e2b6..c4292c2119 100644 --- a/src/juce_appframework/gui/components/controls/juce_TableHeaderComponent.cpp +++ b/src/juce_appframework/gui/components/controls/juce_TableHeaderComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_TableHeaderComponent.h b/src/juce_appframework/gui/components/controls/juce_TableHeaderComponent.h index f3bb3167ff..74744b7ad4 100644 --- a/src/juce_appframework/gui/components/controls/juce_TableHeaderComponent.h +++ b/src/juce_appframework/gui/components/controls/juce_TableHeaderComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_TableListBox.cpp b/src/juce_appframework/gui/components/controls/juce_TableListBox.cpp index f28ae0b45b..556efb3ccf 100644 --- a/src/juce_appframework/gui/components/controls/juce_TableListBox.cpp +++ b/src/juce_appframework/gui/components/controls/juce_TableListBox.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_TableListBox.h b/src/juce_appframework/gui/components/controls/juce_TableListBox.h index 3c2e6d6017..4990303417 100644 --- a/src/juce_appframework/gui/components/controls/juce_TableListBox.h +++ b/src/juce_appframework/gui/components/controls/juce_TableListBox.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_TextEditor.cpp b/src/juce_appframework/gui/components/controls/juce_TextEditor.cpp index 4a7754326f..7529b72d00 100644 --- a/src/juce_appframework/gui/components/controls/juce_TextEditor.cpp +++ b/src/juce_appframework/gui/components/controls/juce_TextEditor.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -1915,7 +1915,7 @@ void TextEditor::performPopupMenuAction (const int menuItemID) doUndoRedo (true); break; - default: + default: break; } } @@ -2354,7 +2354,7 @@ int TextEditor::indexAtPosition (const float x, const float y) throw() //============================================================================== static int getCharacterCategory (const tchar character) throw() { - return CharacterFunctions::isLetterOrDigit (character) + return CharacterFunctions::isLetterOrDigit (character) ? 2 : (CharacterFunctions::isWhitespace (character) ? 0 : 1); } diff --git a/src/juce_appframework/gui/components/controls/juce_TextEditor.h b/src/juce_appframework/gui/components/controls/juce_TextEditor.h index d1d5bcca18..5e33e7b52b 100644 --- a/src/juce_appframework/gui/components/controls/juce_TextEditor.h +++ b/src/juce_appframework/gui/components/controls/juce_TextEditor.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -135,7 +135,7 @@ public: /** Indicates whether the tab key should be accepted and used to input a tab character, or whether it gets ignored. - By default the tab key is ignored, so that it can be used to switch keyboard focus + By default the tab key is ignored, so that it can be used to switch keyboard focus between components. */ void setTabKeyUsedAsCharacter (const bool shouldTabKeyBeUsed) throw(); @@ -527,7 +527,7 @@ protected: If you want to add your own items to the existing ones, you can override this, call the base class's addPopupMenuItems() method, then append your own items. - When the menu has been shown, performPopupMenuAction() will be called to + When the menu has been shown, performPopupMenuAction() will be called to perform the item that the user has chosen. The default menu items will be added using item IDs in the range @@ -571,7 +571,7 @@ protected: /** Counts the number of characters in the text. - This is quicker than getting the text as a string if you just need to know + This is quicker than getting the text as a string if you just need to know the length. */ int getTotalNumChars() throw(); diff --git a/src/juce_appframework/gui/components/controls/juce_Toolbar.cpp b/src/juce_appframework/gui/components/controls/juce_Toolbar.cpp index b2f0e6ad8c..eb60786c08 100644 --- a/src/juce_appframework/gui/components/controls/juce_Toolbar.cpp +++ b/src/juce_appframework/gui/components/controls/juce_Toolbar.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_Toolbar.h b/src/juce_appframework/gui/components/controls/juce_Toolbar.h index dd0f07f386..80fd0e12bb 100644 --- a/src/juce_appframework/gui/components/controls/juce_Toolbar.h +++ b/src/juce_appframework/gui/components/controls/juce_Toolbar.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_ToolbarItemComponent.cpp b/src/juce_appframework/gui/components/controls/juce_ToolbarItemComponent.cpp index 651c1ee5df..2745c5a107 100644 --- a/src/juce_appframework/gui/components/controls/juce_ToolbarItemComponent.cpp +++ b/src/juce_appframework/gui/components/controls/juce_ToolbarItemComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_ToolbarItemComponent.h b/src/juce_appframework/gui/components/controls/juce_ToolbarItemComponent.h index 229e7e7653..ce7c965376 100644 --- a/src/juce_appframework/gui/components/controls/juce_ToolbarItemComponent.h +++ b/src/juce_appframework/gui/components/controls/juce_ToolbarItemComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_ToolbarItemFactory.h b/src/juce_appframework/gui/components/controls/juce_ToolbarItemFactory.h index 872767b2e6..f4373fed97 100644 --- a/src/juce_appframework/gui/components/controls/juce_ToolbarItemFactory.h +++ b/src/juce_appframework/gui/components/controls/juce_ToolbarItemFactory.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_ToolbarItemPalette.cpp b/src/juce_appframework/gui/components/controls/juce_ToolbarItemPalette.cpp index 03b36f86d4..828bfc5405 100644 --- a/src/juce_appframework/gui/components/controls/juce_ToolbarItemPalette.cpp +++ b/src/juce_appframework/gui/components/controls/juce_ToolbarItemPalette.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_ToolbarItemPalette.h b/src/juce_appframework/gui/components/controls/juce_ToolbarItemPalette.h index f1c717b858..492e8909a0 100644 --- a/src/juce_appframework/gui/components/controls/juce_ToolbarItemPalette.h +++ b/src/juce_appframework/gui/components/controls/juce_ToolbarItemPalette.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/controls/juce_TreeView.cpp b/src/juce_appframework/gui/components/controls/juce_TreeView.cpp index 2c1793ea50..8f20b5d940 100644 --- a/src/juce_appframework/gui/components/controls/juce_TreeView.cpp +++ b/src/juce_appframework/gui/components/controls/juce_TreeView.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -268,7 +268,7 @@ private: const bool shft = modifiers.isShiftDown(); const bool cmd = modifiers.isCommandDown(); - item->setSelected (shft || (! cmd) || (cmd && ! item->isSelected()), + item->setSelected (shft || (! cmd) || (cmd && ! item->isSelected()), ! (shft || cmd)); } }; diff --git a/src/juce_appframework/gui/components/controls/juce_TreeView.h b/src/juce_appframework/gui/components/controls/juce_TreeView.h index a4b37e0920..4422508201 100644 --- a/src/juce_appframework/gui/components/controls/juce_TreeView.h +++ b/src/juce_appframework/gui/components/controls/juce_TreeView.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_DirectoryContentsDisplayComponent.cpp b/src/juce_appframework/gui/components/filebrowser/juce_DirectoryContentsDisplayComponent.cpp index ff030855c6..debdc9a3d0 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_DirectoryContentsDisplayComponent.cpp +++ b/src/juce_appframework/gui/components/filebrowser/juce_DirectoryContentsDisplayComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_DirectoryContentsDisplayComponent.h b/src/juce_appframework/gui/components/filebrowser/juce_DirectoryContentsDisplayComponent.h index 773f0e3538..067ca71179 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_DirectoryContentsDisplayComponent.h +++ b/src/juce_appframework/gui/components/filebrowser/juce_DirectoryContentsDisplayComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_DirectoryContentsList.cpp b/src/juce_appframework/gui/components/filebrowser/juce_DirectoryContentsList.cpp index 43536b2c22..7349019b81 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_DirectoryContentsList.cpp +++ b/src/juce_appframework/gui/components/filebrowser/juce_DirectoryContentsList.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_DirectoryContentsList.h b/src/juce_appframework/gui/components/filebrowser/juce_DirectoryContentsList.h index 35cff1fcad..530d4caa85 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_DirectoryContentsList.h +++ b/src/juce_appframework/gui/components/filebrowser/juce_DirectoryContentsList.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_FileBrowserComponent.cpp b/src/juce_appframework/gui/components/filebrowser/juce_FileBrowserComponent.cpp index c28efca910..954c5c7be3 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_FileBrowserComponent.cpp +++ b/src/juce_appframework/gui/components/filebrowser/juce_FileBrowserComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_FileBrowserComponent.h b/src/juce_appframework/gui/components/filebrowser/juce_FileBrowserComponent.h index 9a689a02c0..32ae59a22c 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_FileBrowserComponent.h +++ b/src/juce_appframework/gui/components/filebrowser/juce_FileBrowserComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_FileBrowserListener.h b/src/juce_appframework/gui/components/filebrowser/juce_FileBrowserListener.h index c2ea913e5f..3c07906a75 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_FileBrowserListener.h +++ b/src/juce_appframework/gui/components/filebrowser/juce_FileBrowserListener.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_FileChooser.cpp b/src/juce_appframework/gui/components/filebrowser/juce_FileChooser.cpp index 469eb008c4..4b236c0e21 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_FileChooser.cpp +++ b/src/juce_appframework/gui/components/filebrowser/juce_FileChooser.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_FileChooser.h b/src/juce_appframework/gui/components/filebrowser/juce_FileChooser.h index 777c6202e8..6cc2728f27 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_FileChooser.h +++ b/src/juce_appframework/gui/components/filebrowser/juce_FileChooser.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_FileChooserDialogBox.cpp b/src/juce_appframework/gui/components/filebrowser/juce_FileChooserDialogBox.cpp index d072f28533..345e59037f 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_FileChooserDialogBox.cpp +++ b/src/juce_appframework/gui/components/filebrowser/juce_FileChooserDialogBox.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_FileChooserDialogBox.h b/src/juce_appframework/gui/components/filebrowser/juce_FileChooserDialogBox.h index 13ca8c873e..2522ffc640 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_FileChooserDialogBox.h +++ b/src/juce_appframework/gui/components/filebrowser/juce_FileChooserDialogBox.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_FileFilter.cpp b/src/juce_appframework/gui/components/filebrowser/juce_FileFilter.cpp index e2fbc2649d..8ddea5c987 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_FileFilter.cpp +++ b/src/juce_appframework/gui/components/filebrowser/juce_FileFilter.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_FileFilter.h b/src/juce_appframework/gui/components/filebrowser/juce_FileFilter.h index f6067c2863..66cfc97d10 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_FileFilter.h +++ b/src/juce_appframework/gui/components/filebrowser/juce_FileFilter.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_FileListComponent.cpp b/src/juce_appframework/gui/components/filebrowser/juce_FileListComponent.cpp index 7fb079ab70..830014c070 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_FileListComponent.cpp +++ b/src/juce_appframework/gui/components/filebrowser/juce_FileListComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_FileListComponent.h b/src/juce_appframework/gui/components/filebrowser/juce_FileListComponent.h index 4ff90f5ab3..4216671083 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_FileListComponent.h +++ b/src/juce_appframework/gui/components/filebrowser/juce_FileListComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_FilePreviewComponent.h b/src/juce_appframework/gui/components/filebrowser/juce_FilePreviewComponent.h index 924c98a3df..73b956eaee 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_FilePreviewComponent.h +++ b/src/juce_appframework/gui/components/filebrowser/juce_FilePreviewComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_FileTreeComponent.cpp b/src/juce_appframework/gui/components/filebrowser/juce_FileTreeComponent.cpp index 06ff784456..22145a57be 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_FileTreeComponent.cpp +++ b/src/juce_appframework/gui/components/filebrowser/juce_FileTreeComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_FileTreeComponent.h b/src/juce_appframework/gui/components/filebrowser/juce_FileTreeComponent.h index f87049b2b2..39d6a74bd7 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_FileTreeComponent.h +++ b/src/juce_appframework/gui/components/filebrowser/juce_FileTreeComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_FilenameComponent.cpp b/src/juce_appframework/gui/components/filebrowser/juce_FilenameComponent.cpp index 6a49491709..71e98060d1 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_FilenameComponent.cpp +++ b/src/juce_appframework/gui/components/filebrowser/juce_FilenameComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_FilenameComponent.h b/src/juce_appframework/gui/components/filebrowser/juce_FilenameComponent.h index 5158fa86d6..d71eaa2abe 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_FilenameComponent.h +++ b/src/juce_appframework/gui/components/filebrowser/juce_FilenameComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_ImagePreviewComponent.cpp b/src/juce_appframework/gui/components/filebrowser/juce_ImagePreviewComponent.cpp index 21b8262841..e32c436cd2 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_ImagePreviewComponent.cpp +++ b/src/juce_appframework/gui/components/filebrowser/juce_ImagePreviewComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_ImagePreviewComponent.h b/src/juce_appframework/gui/components/filebrowser/juce_ImagePreviewComponent.h index 3b0b6954b9..75f4e94f05 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_ImagePreviewComponent.h +++ b/src/juce_appframework/gui/components/filebrowser/juce_ImagePreviewComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_WildcardFileFilter.cpp b/src/juce_appframework/gui/components/filebrowser/juce_WildcardFileFilter.cpp index 80067f40c4..a62e1322dc 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_WildcardFileFilter.cpp +++ b/src/juce_appframework/gui/components/filebrowser/juce_WildcardFileFilter.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/filebrowser/juce_WildcardFileFilter.h b/src/juce_appframework/gui/components/filebrowser/juce_WildcardFileFilter.h index 150dce0d2f..bd1f041faf 100644 --- a/src/juce_appframework/gui/components/filebrowser/juce_WildcardFileFilter.h +++ b/src/juce_appframework/gui/components/filebrowser/juce_WildcardFileFilter.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/juce_Component.cpp b/src/juce_appframework/gui/components/juce_Component.cpp index 6c92533406..9e9b313745 100644 --- a/src/juce_appframework/gui/components/juce_Component.cpp +++ b/src/juce_appframework/gui/components/juce_Component.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -1742,7 +1742,7 @@ void Component::paintEntireComponent (Graphics& originalContext) const Component* const sibling = childComponentList_.getUnchecked (j); if (sibling->flags.opaqueFlag && sibling->isVisible()) - g->excludeClipRegion (sibling->getX(), sibling->getY(), + g->excludeClipRegion (sibling->getX(), sibling->getY(), sibling->getWidth(), sibling->getHeight()); } diff --git a/src/juce_appframework/gui/components/juce_Component.h b/src/juce_appframework/gui/components/juce_Component.h index 1be6bccbb2..b01aa3d5e9 100644 --- a/src/juce_appframework/gui/components/juce_Component.h +++ b/src/juce_appframework/gui/components/juce_Component.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -1087,7 +1087,7 @@ public: /** Returns the focus order of this component, if one has been specified. By default components don't have a focus order - in that case, this - will return 0. Lower numbers indicate that the component will be + will return 0. Lower numbers indicate that the component will be earlier in the focus traversal order. To change the order, call setExplicitFocusOrder(). @@ -1096,7 +1096,7 @@ public: its algorithm for deciding the order in which components should be traversed. See the KeyboardFocusTraverser class for more details on this. - @see moveKeyboardFocusToSibling, createFocusTraverser, KeyboardFocusTraverser + @see moveKeyboardFocusToSibling, createFocusTraverser, KeyboardFocusTraverser */ int getExplicitFocusOrder() const throw(); @@ -1472,9 +1472,9 @@ public: its setWantsKeyboardFocus() method has been used to enable this. If your implementation returns true, the event will be consumed and not passed - on to any other listeners. If it returns false, then any KeyListeners that have - been registered with this component will have their keyStateChanged methods called. - As soon as one of these returns true, the process will stop, but if they all return + on to any other listeners. If it returns false, then any KeyListeners that have + been registered with this component will have their keyStateChanged methods called. + As soon as one of these returns true, the process will stop, but if they all return false, the event will be passed upwards to this component's parent, and so on. The default implementation of this method does nothing and returns false. diff --git a/src/juce_appframework/gui/components/juce_ComponentDeletionWatcher.h b/src/juce_appframework/gui/components/juce_ComponentDeletionWatcher.h index 36eaae37d8..bed84fb551 100644 --- a/src/juce_appframework/gui/components/juce_ComponentDeletionWatcher.h +++ b/src/juce_appframework/gui/components/juce_ComponentDeletionWatcher.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/juce_ComponentListener.cpp b/src/juce_appframework/gui/components/juce_ComponentListener.cpp index 8bcdc78392..df1fe203d3 100644 --- a/src/juce_appframework/gui/components/juce_ComponentListener.cpp +++ b/src/juce_appframework/gui/components/juce_ComponentListener.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/juce_ComponentListener.h b/src/juce_appframework/gui/components/juce_ComponentListener.h index ba1be99429..a310d82cb2 100644 --- a/src/juce_appframework/gui/components/juce_ComponentListener.h +++ b/src/juce_appframework/gui/components/juce_ComponentListener.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/juce_Desktop.cpp b/src/juce_appframework/gui/components/juce_Desktop.cpp index 3c32e9691f..99aba6211d 100644 --- a/src/juce_appframework/gui/components/juce_Desktop.cpp +++ b/src/juce_appframework/gui/components/juce_Desktop.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/juce_Desktop.h b/src/juce_appframework/gui/components/juce_Desktop.h index 1e86b2c35d..2cd45b0a2c 100644 --- a/src/juce_appframework/gui/components/juce_Desktop.h +++ b/src/juce_appframework/gui/components/juce_Desktop.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -127,14 +127,14 @@ public: //============================================================================== /** This lets you prevent the screensaver from becoming active. - Handy if you're running some sort of presentation app where having a screensaver + Handy if you're running some sort of presentation app where having a screensaver appear would be annoying. - Pass false to disable the screensaver, and true to re-enable it. (Note that this + Pass false to disable the screensaver, and true to re-enable it. (Note that this won't enable a screensaver unless the user has actually set one up). - The disablement will only happen while the Juce application is the foreground - process - if another task is running in front of it, then the screensaver will + The disablement will only happen while the Juce application is the foreground + process - if another task is running in front of it, then the screensaver will be unaffected. @see isScreenSaverEnabled diff --git a/src/juce_appframework/gui/components/keyboard/juce_KeyListener.cpp b/src/juce_appframework/gui/components/keyboard/juce_KeyListener.cpp index bbb4f05973..e2ef3f7e3f 100644 --- a/src/juce_appframework/gui/components/keyboard/juce_KeyListener.cpp +++ b/src/juce_appframework/gui/components/keyboard/juce_KeyListener.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/keyboard/juce_KeyListener.h b/src/juce_appframework/gui/components/keyboard/juce_KeyListener.h index 12aac7649e..4422c06ccd 100644 --- a/src/juce_appframework/gui/components/keyboard/juce_KeyListener.h +++ b/src/juce_appframework/gui/components/keyboard/juce_KeyListener.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/keyboard/juce_KeyMappingEditorComponent.h b/src/juce_appframework/gui/components/keyboard/juce_KeyMappingEditorComponent.h index 00778a4ba4..f13552f491 100644 --- a/src/juce_appframework/gui/components/keyboard/juce_KeyMappingEditorComponent.h +++ b/src/juce_appframework/gui/components/keyboard/juce_KeyMappingEditorComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/keyboard/juce_KeyPress.cpp b/src/juce_appframework/gui/components/keyboard/juce_KeyPress.cpp index dd57766eba..1008d4e1a9 100644 --- a/src/juce_appframework/gui/components/keyboard/juce_KeyPress.cpp +++ b/src/juce_appframework/gui/components/keyboard/juce_KeyPress.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -96,8 +96,8 @@ bool KeyPress::operator!= (const KeyPress& other) const throw() bool KeyPress::isCurrentlyDown() const throw() { - int modsMask = ModifierKeys::commandModifier - | ModifierKeys::ctrlModifier + int modsMask = ModifierKeys::commandModifier + | ModifierKeys::ctrlModifier | ModifierKeys::altModifier; if (keyCode == KeyPress::downKey diff --git a/src/juce_appframework/gui/components/keyboard/juce_KeyPress.h b/src/juce_appframework/gui/components/keyboard/juce_KeyPress.h index ebc630221f..b9bda68aed 100644 --- a/src/juce_appframework/gui/components/keyboard/juce_KeyPress.h +++ b/src/juce_appframework/gui/components/keyboard/juce_KeyPress.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/keyboard/juce_KeyPressMappingSet.cpp b/src/juce_appframework/gui/components/keyboard/juce_KeyPressMappingSet.cpp index bdfa394477..23350099f7 100644 --- a/src/juce_appframework/gui/components/keyboard/juce_KeyPressMappingSet.cpp +++ b/src/juce_appframework/gui/components/keyboard/juce_KeyPressMappingSet.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/keyboard/juce_KeyPressMappingSet.h b/src/juce_appframework/gui/components/keyboard/juce_KeyPressMappingSet.h index f80ea3e8df..00162c0017 100644 --- a/src/juce_appframework/gui/components/keyboard/juce_KeyPressMappingSet.h +++ b/src/juce_appframework/gui/components/keyboard/juce_KeyPressMappingSet.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/keyboard/juce_KeyboardFocusTraverser.cpp b/src/juce_appframework/gui/components/keyboard/juce_KeyboardFocusTraverser.cpp index 4872393190..bbf086692f 100644 --- a/src/juce_appframework/gui/components/keyboard/juce_KeyboardFocusTraverser.cpp +++ b/src/juce_appframework/gui/components/keyboard/juce_KeyboardFocusTraverser.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/keyboard/juce_KeyboardFocusTraverser.h b/src/juce_appframework/gui/components/keyboard/juce_KeyboardFocusTraverser.h index cbb28368e8..270018b128 100644 --- a/src/juce_appframework/gui/components/keyboard/juce_KeyboardFocusTraverser.h +++ b/src/juce_appframework/gui/components/keyboard/juce_KeyboardFocusTraverser.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -39,18 +39,18 @@ class Component; /** Controls the order in which focus moves between components. - The default algorithm used by this class to work out the order of traversal + The default algorithm used by this class to work out the order of traversal is as follows: - if two components both have an explicit focus order specified, then the one with the lowest number comes first (see the Component::setExplicitFocusOrder() method). - - any component with an explicit focus order greater than 0 comes before ones + - any component with an explicit focus order greater than 0 comes before ones that don't have an order specified. - - any unspecified components are traversed in a left-to-right, then top-to-bottom + - any unspecified components are traversed in a left-to-right, then top-to-bottom order. - - If you need traversal in a more customised way, you can create a subclass - of KeyboardFocusTraverser that uses your own algorithm, and use + + If you need traversal in a more customised way, you can create a subclass + of KeyboardFocusTraverser that uses your own algorithm, and use Component::createFocusTraverser() to create it. @see Component::setExplicitFocusOrder, Component::createFocusTraverser diff --git a/src/juce_appframework/gui/components/keyboard/juce_ModifierKeys.cpp b/src/juce_appframework/gui/components/keyboard/juce_ModifierKeys.cpp index d9378e0cbd..d8a90d3baf 100644 --- a/src/juce_appframework/gui/components/keyboard/juce_ModifierKeys.cpp +++ b/src/juce_appframework/gui/components/keyboard/juce_ModifierKeys.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/keyboard/juce_ModifierKeys.h b/src/juce_appframework/gui/components/keyboard/juce_ModifierKeys.h index 60d542e242..9f65863469 100644 --- a/src/juce_appframework/gui/components/keyboard/juce_ModifierKeys.h +++ b/src/juce_appframework/gui/components/keyboard/juce_ModifierKeys.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_ComponentAnimator.cpp b/src/juce_appframework/gui/components/layout/juce_ComponentAnimator.cpp index 73eb642acb..2268ae3467 100644 --- a/src/juce_appframework/gui/components/layout/juce_ComponentAnimator.cpp +++ b/src/juce_appframework/gui/components/layout/juce_ComponentAnimator.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_ComponentAnimator.h b/src/juce_appframework/gui/components/layout/juce_ComponentAnimator.h index 5435487e07..4bab3eddb2 100644 --- a/src/juce_appframework/gui/components/layout/juce_ComponentAnimator.h +++ b/src/juce_appframework/gui/components/layout/juce_ComponentAnimator.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_ComponentBoundsConstrainer.cpp b/src/juce_appframework/gui/components/layout/juce_ComponentBoundsConstrainer.cpp index 815edae655..4da4c93a7f 100644 --- a/src/juce_appframework/gui/components/layout/juce_ComponentBoundsConstrainer.cpp +++ b/src/juce_appframework/gui/components/layout/juce_ComponentBoundsConstrainer.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_ComponentBoundsConstrainer.h b/src/juce_appframework/gui/components/layout/juce_ComponentBoundsConstrainer.h index 6b8ac482a3..0f26f538be 100644 --- a/src/juce_appframework/gui/components/layout/juce_ComponentBoundsConstrainer.h +++ b/src/juce_appframework/gui/components/layout/juce_ComponentBoundsConstrainer.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_ComponentMovementWatcher.cpp b/src/juce_appframework/gui/components/layout/juce_ComponentMovementWatcher.cpp index 4a14cef107..bbe31bac3c 100644 --- a/src/juce_appframework/gui/components/layout/juce_ComponentMovementWatcher.cpp +++ b/src/juce_appframework/gui/components/layout/juce_ComponentMovementWatcher.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_ComponentMovementWatcher.h b/src/juce_appframework/gui/components/layout/juce_ComponentMovementWatcher.h index 1f856b591d..9021016c60 100644 --- a/src/juce_appframework/gui/components/layout/juce_ComponentMovementWatcher.h +++ b/src/juce_appframework/gui/components/layout/juce_ComponentMovementWatcher.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_GroupComponent.cpp b/src/juce_appframework/gui/components/layout/juce_GroupComponent.cpp index fee7362deb..b9d458fc01 100644 --- a/src/juce_appframework/gui/components/layout/juce_GroupComponent.cpp +++ b/src/juce_appframework/gui/components/layout/juce_GroupComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_GroupComponent.h b/src/juce_appframework/gui/components/layout/juce_GroupComponent.h index 20c6cbbd0d..d0208d97b6 100644 --- a/src/juce_appframework/gui/components/layout/juce_GroupComponent.h +++ b/src/juce_appframework/gui/components/layout/juce_GroupComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_MultiDocumentPanel.cpp b/src/juce_appframework/gui/components/layout/juce_MultiDocumentPanel.cpp index f125bc0c77..8a5b62b69d 100644 --- a/src/juce_appframework/gui/components/layout/juce_MultiDocumentPanel.cpp +++ b/src/juce_appframework/gui/components/layout/juce_MultiDocumentPanel.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_MultiDocumentPanel.h b/src/juce_appframework/gui/components/layout/juce_MultiDocumentPanel.h index 36380b4edb..c1a924ae7b 100644 --- a/src/juce_appframework/gui/components/layout/juce_MultiDocumentPanel.h +++ b/src/juce_appframework/gui/components/layout/juce_MultiDocumentPanel.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_ResizableBorderComponent.cpp b/src/juce_appframework/gui/components/layout/juce_ResizableBorderComponent.cpp index 141d244a13..e8e388d2dc 100644 --- a/src/juce_appframework/gui/components/layout/juce_ResizableBorderComponent.cpp +++ b/src/juce_appframework/gui/components/layout/juce_ResizableBorderComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_ResizableBorderComponent.h b/src/juce_appframework/gui/components/layout/juce_ResizableBorderComponent.h index adc2be40fe..5b636f9ad4 100644 --- a/src/juce_appframework/gui/components/layout/juce_ResizableBorderComponent.h +++ b/src/juce_appframework/gui/components/layout/juce_ResizableBorderComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_ResizableCornerComponent.cpp b/src/juce_appframework/gui/components/layout/juce_ResizableCornerComponent.cpp index 785d88a76d..b6e63311a3 100644 --- a/src/juce_appframework/gui/components/layout/juce_ResizableCornerComponent.cpp +++ b/src/juce_appframework/gui/components/layout/juce_ResizableCornerComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_ResizableCornerComponent.h b/src/juce_appframework/gui/components/layout/juce_ResizableCornerComponent.h index af43685db9..18f2c0dbe5 100644 --- a/src/juce_appframework/gui/components/layout/juce_ResizableCornerComponent.h +++ b/src/juce_appframework/gui/components/layout/juce_ResizableCornerComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_ScrollBar.cpp b/src/juce_appframework/gui/components/layout/juce_ScrollBar.cpp index 4b48029936..5cbeacd1c9 100644 --- a/src/juce_appframework/gui/components/layout/juce_ScrollBar.cpp +++ b/src/juce_appframework/gui/components/layout/juce_ScrollBar.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_ScrollBar.h b/src/juce_appframework/gui/components/layout/juce_ScrollBar.h index c184e4a6d5..6316d2f06f 100644 --- a/src/juce_appframework/gui/components/layout/juce_ScrollBar.h +++ b/src/juce_appframework/gui/components/layout/juce_ScrollBar.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_StretchableLayoutManager.cpp b/src/juce_appframework/gui/components/layout/juce_StretchableLayoutManager.cpp index 9986292ab0..4945486b51 100644 --- a/src/juce_appframework/gui/components/layout/juce_StretchableLayoutManager.cpp +++ b/src/juce_appframework/gui/components/layout/juce_StretchableLayoutManager.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_StretchableLayoutManager.h b/src/juce_appframework/gui/components/layout/juce_StretchableLayoutManager.h index 86f4ab3bd3..c219223eb2 100644 --- a/src/juce_appframework/gui/components/layout/juce_StretchableLayoutManager.h +++ b/src/juce_appframework/gui/components/layout/juce_StretchableLayoutManager.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_StretchableLayoutResizerBar.cpp b/src/juce_appframework/gui/components/layout/juce_StretchableLayoutResizerBar.cpp index 097d839a2d..2933e7db97 100644 --- a/src/juce_appframework/gui/components/layout/juce_StretchableLayoutResizerBar.cpp +++ b/src/juce_appframework/gui/components/layout/juce_StretchableLayoutResizerBar.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_StretchableLayoutResizerBar.h b/src/juce_appframework/gui/components/layout/juce_StretchableLayoutResizerBar.h index 26a332836e..410682c244 100644 --- a/src/juce_appframework/gui/components/layout/juce_StretchableLayoutResizerBar.h +++ b/src/juce_appframework/gui/components/layout/juce_StretchableLayoutResizerBar.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_StretchableObjectResizer.cpp b/src/juce_appframework/gui/components/layout/juce_StretchableObjectResizer.cpp index 0ec3e4fa4e..018b25f140 100644 --- a/src/juce_appframework/gui/components/layout/juce_StretchableObjectResizer.cpp +++ b/src/juce_appframework/gui/components/layout/juce_StretchableObjectResizer.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_StretchableObjectResizer.h b/src/juce_appframework/gui/components/layout/juce_StretchableObjectResizer.h index a0a6d7cf5c..b589eccbf2 100644 --- a/src/juce_appframework/gui/components/layout/juce_StretchableObjectResizer.h +++ b/src/juce_appframework/gui/components/layout/juce_StretchableObjectResizer.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_TabbedButtonBar.cpp b/src/juce_appframework/gui/components/layout/juce_TabbedButtonBar.cpp index ce5b62b9ff..b243c1bfe0 100644 --- a/src/juce_appframework/gui/components/layout/juce_TabbedButtonBar.cpp +++ b/src/juce_appframework/gui/components/layout/juce_TabbedButtonBar.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_TabbedButtonBar.h b/src/juce_appframework/gui/components/layout/juce_TabbedButtonBar.h index 2f54cc05f9..5d04ea5bed 100644 --- a/src/juce_appframework/gui/components/layout/juce_TabbedButtonBar.h +++ b/src/juce_appframework/gui/components/layout/juce_TabbedButtonBar.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_TabbedComponent.cpp b/src/juce_appframework/gui/components/layout/juce_TabbedComponent.cpp index 11f53f6fcf..2575805a63 100644 --- a/src/juce_appframework/gui/components/layout/juce_TabbedComponent.cpp +++ b/src/juce_appframework/gui/components/layout/juce_TabbedComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_TabbedComponent.h b/src/juce_appframework/gui/components/layout/juce_TabbedComponent.h index ef84199a4b..3962a842f5 100644 --- a/src/juce_appframework/gui/components/layout/juce_TabbedComponent.h +++ b/src/juce_appframework/gui/components/layout/juce_TabbedComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_Viewport.cpp b/src/juce_appframework/gui/components/layout/juce_Viewport.cpp index 84de2ac89a..32433141ec 100644 --- a/src/juce_appframework/gui/components/layout/juce_Viewport.cpp +++ b/src/juce_appframework/gui/components/layout/juce_Viewport.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/layout/juce_Viewport.h b/src/juce_appframework/gui/components/layout/juce_Viewport.h index 183dde7c71..6eeeec16b8 100644 --- a/src/juce_appframework/gui/components/layout/juce_Viewport.h +++ b/src/juce_appframework/gui/components/layout/juce_Viewport.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/lookandfeel/juce_LookAndFeel.cpp b/src/juce_appframework/gui/components/lookandfeel/juce_LookAndFeel.cpp index 02d8817028..8c3af896d5 100644 --- a/src/juce_appframework/gui/components/lookandfeel/juce_LookAndFeel.cpp +++ b/src/juce_appframework/gui/components/lookandfeel/juce_LookAndFeel.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -101,7 +101,7 @@ LookAndFeel::LookAndFeel() #define textHighlightColour 0x401111ee #define standardOutlineColour 0xb2808080 - static const int standardColours[] = + static const int standardColours[] = { TextButton::buttonColourId, textButtonColour, TextButton::buttonOnColourId, 0xff4444ff, @@ -2463,7 +2463,7 @@ void LookAndFeel::drawShinyButtonShape (Graphics& g, //============================================================================== void LookAndFeel::drawGlassSphere (Graphics& g, - const float x, const float y, + const float x, const float y, const float diameter, const Colour& colour, const float outlineThickness) throw() @@ -2512,8 +2512,8 @@ void LookAndFeel::drawGlassSphere (Graphics& g, } //============================================================================== -void LookAndFeel::drawGlassPointer (Graphics& g, - const float x, const float y, +void LookAndFeel::drawGlassPointer (Graphics& g, + const float x, const float y, const float diameter, const Colour& colour, const float outlineThickness, const int direction) throw() @@ -2562,7 +2562,7 @@ void LookAndFeel::drawGlassPointer (Graphics& g, //============================================================================== void LookAndFeel::drawGlassLozenge (Graphics& g, - const float x, const float y, + const float x, const float y, const float width, const float height, const Colour& colour, const float outlineThickness, diff --git a/src/juce_appframework/gui/components/lookandfeel/juce_LookAndFeel.h b/src/juce_appframework/gui/components/lookandfeel/juce_LookAndFeel.h index deae7532fd..5b38cd4588 100644 --- a/src/juce_appframework/gui/components/lookandfeel/juce_LookAndFeel.h +++ b/src/juce_appframework/gui/components/lookandfeel/juce_LookAndFeel.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -501,25 +501,25 @@ public: //============================================================================== /** Utility function to draw a shiny, glassy circle (for round LED-type buttons). */ static void drawGlassSphere (Graphics& g, - const float x, const float y, + const float x, const float y, const float diameter, - const Colour& colour, + const Colour& colour, const float outlineThickness) throw(); - static void drawGlassPointer (Graphics& g, - const float x, const float y, + static void drawGlassPointer (Graphics& g, + const float x, const float y, const float diameter, const Colour& colour, const float outlineThickness, const int direction) throw(); /** Utility function to draw a shiny, glassy oblong (for text buttons). */ - static void drawGlassLozenge (Graphics& g, - const float x, const float y, + static void drawGlassLozenge (Graphics& g, + const float x, const float y, const float width, const float height, - const Colour& colour, - const float outlineThickness, + const Colour& colour, + const float outlineThickness, const float cornerSize, - const bool flatOnLeft, const bool flatOnRight, + const bool flatOnLeft, const bool flatOnRight, const bool flatOnTop, const bool flatOnBottom) throw(); //============================================================================== diff --git a/src/juce_appframework/gui/components/lookandfeel/juce_OldSchoolLookAndFeel.cpp b/src/juce_appframework/gui/components/lookandfeel/juce_OldSchoolLookAndFeel.cpp index 234d7a3c99..4288c677d5 100644 --- a/src/juce_appframework/gui/components/lookandfeel/juce_OldSchoolLookAndFeel.cpp +++ b/src/juce_appframework/gui/components/lookandfeel/juce_OldSchoolLookAndFeel.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/lookandfeel/juce_OldSchoolLookAndFeel.h b/src/juce_appframework/gui/components/lookandfeel/juce_OldSchoolLookAndFeel.h index 469933ae7b..b7fb95d850 100644 --- a/src/juce_appframework/gui/components/lookandfeel/juce_OldSchoolLookAndFeel.h +++ b/src/juce_appframework/gui/components/lookandfeel/juce_OldSchoolLookAndFeel.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/menus/juce_MenuBarComponent.cpp b/src/juce_appframework/gui/components/menus/juce_MenuBarComponent.cpp index 1f7d3bf5dd..2b639db5b8 100644 --- a/src/juce_appframework/gui/components/menus/juce_MenuBarComponent.cpp +++ b/src/juce_appframework/gui/components/menus/juce_MenuBarComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/menus/juce_MenuBarComponent.h b/src/juce_appframework/gui/components/menus/juce_MenuBarComponent.h index 8892c295ac..a8e1483aaa 100644 --- a/src/juce_appframework/gui/components/menus/juce_MenuBarComponent.h +++ b/src/juce_appframework/gui/components/menus/juce_MenuBarComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/menus/juce_MenuBarModel.cpp b/src/juce_appframework/gui/components/menus/juce_MenuBarModel.cpp index 27c7756b98..1d8fdc2818 100644 --- a/src/juce_appframework/gui/components/menus/juce_MenuBarModel.cpp +++ b/src/juce_appframework/gui/components/menus/juce_MenuBarModel.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/menus/juce_MenuBarModel.h b/src/juce_appframework/gui/components/menus/juce_MenuBarModel.h index 83c78d2e58..0abd868e14 100644 --- a/src/juce_appframework/gui/components/menus/juce_MenuBarModel.h +++ b/src/juce_appframework/gui/components/menus/juce_MenuBarModel.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/menus/juce_PopupMenu.cpp b/src/juce_appframework/gui/components/menus/juce_PopupMenu.cpp index 34731ec4b8..8912f42fe8 100644 --- a/src/juce_appframework/gui/components/menus/juce_PopupMenu.cpp +++ b/src/juce_appframework/gui/components/menus/juce_PopupMenu.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/menus/juce_PopupMenu.h b/src/juce_appframework/gui/components/menus/juce_PopupMenu.h index 24a1add5b0..05964c38c2 100644 --- a/src/juce_appframework/gui/components/menus/juce_PopupMenu.h +++ b/src/juce_appframework/gui/components/menus/juce_PopupMenu.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/menus/juce_PopupMenuCustomComponent.h b/src/juce_appframework/gui/components/menus/juce_PopupMenuCustomComponent.h index f0d27d711c..9d134200a2 100644 --- a/src/juce_appframework/gui/components/menus/juce_PopupMenuCustomComponent.h +++ b/src/juce_appframework/gui/components/menus/juce_PopupMenuCustomComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/mouse/juce_ComponentDragger.cpp b/src/juce_appframework/gui/components/mouse/juce_ComponentDragger.cpp index e8142a7da8..12ec76009d 100644 --- a/src/juce_appframework/gui/components/mouse/juce_ComponentDragger.cpp +++ b/src/juce_appframework/gui/components/mouse/juce_ComponentDragger.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/mouse/juce_ComponentDragger.h b/src/juce_appframework/gui/components/mouse/juce_ComponentDragger.h index 347b08dd4d..1d9cb687ce 100644 --- a/src/juce_appframework/gui/components/mouse/juce_ComponentDragger.h +++ b/src/juce_appframework/gui/components/mouse/juce_ComponentDragger.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/mouse/juce_DragAndDropContainer.cpp b/src/juce_appframework/gui/components/mouse/juce_DragAndDropContainer.cpp index 7514ffece7..111cb48cc7 100644 --- a/src/juce_appframework/gui/components/mouse/juce_DragAndDropContainer.cpp +++ b/src/juce_appframework/gui/components/mouse/juce_DragAndDropContainer.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/mouse/juce_DragAndDropContainer.h b/src/juce_appframework/gui/components/mouse/juce_DragAndDropContainer.h index d73d2a0ef1..dcd1948480 100644 --- a/src/juce_appframework/gui/components/mouse/juce_DragAndDropContainer.h +++ b/src/juce_appframework/gui/components/mouse/juce_DragAndDropContainer.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/mouse/juce_DragAndDropTarget.h b/src/juce_appframework/gui/components/mouse/juce_DragAndDropTarget.h index 6b4f50c1e8..0415b1d71a 100644 --- a/src/juce_appframework/gui/components/mouse/juce_DragAndDropTarget.h +++ b/src/juce_appframework/gui/components/mouse/juce_DragAndDropTarget.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/mouse/juce_LassoComponent.h b/src/juce_appframework/gui/components/mouse/juce_LassoComponent.h index e462f919ad..cef4d31b8f 100644 --- a/src/juce_appframework/gui/components/mouse/juce_LassoComponent.h +++ b/src/juce_appframework/gui/components/mouse/juce_LassoComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/mouse/juce_MouseCursor.cpp b/src/juce_appframework/gui/components/mouse/juce_MouseCursor.cpp index 7440b969c8..87860b2b70 100644 --- a/src/juce_appframework/gui/components/mouse/juce_MouseCursor.cpp +++ b/src/juce_appframework/gui/components/mouse/juce_MouseCursor.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/mouse/juce_MouseCursor.h b/src/juce_appframework/gui/components/mouse/juce_MouseCursor.h index 21f5af29b2..e62482b41f 100644 --- a/src/juce_appframework/gui/components/mouse/juce_MouseCursor.h +++ b/src/juce_appframework/gui/components/mouse/juce_MouseCursor.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/mouse/juce_MouseEvent.cpp b/src/juce_appframework/gui/components/mouse/juce_MouseEvent.cpp index ad62c813f4..ad839bf469 100644 --- a/src/juce_appframework/gui/components/mouse/juce_MouseEvent.cpp +++ b/src/juce_appframework/gui/components/mouse/juce_MouseEvent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/mouse/juce_MouseEvent.h b/src/juce_appframework/gui/components/mouse/juce_MouseEvent.h index 4169ead4f1..09a70685b6 100644 --- a/src/juce_appframework/gui/components/mouse/juce_MouseEvent.h +++ b/src/juce_appframework/gui/components/mouse/juce_MouseEvent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/mouse/juce_MouseHoverDetector.cpp b/src/juce_appframework/gui/components/mouse/juce_MouseHoverDetector.cpp index 716bf3530f..453d77c903 100644 --- a/src/juce_appframework/gui/components/mouse/juce_MouseHoverDetector.cpp +++ b/src/juce_appframework/gui/components/mouse/juce_MouseHoverDetector.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/mouse/juce_MouseHoverDetector.h b/src/juce_appframework/gui/components/mouse/juce_MouseHoverDetector.h index 84f7ff262e..ab48f349d6 100644 --- a/src/juce_appframework/gui/components/mouse/juce_MouseHoverDetector.h +++ b/src/juce_appframework/gui/components/mouse/juce_MouseHoverDetector.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/mouse/juce_MouseListener.cpp b/src/juce_appframework/gui/components/mouse/juce_MouseListener.cpp index c16aa3185e..d58f38635e 100644 --- a/src/juce_appframework/gui/components/mouse/juce_MouseListener.cpp +++ b/src/juce_appframework/gui/components/mouse/juce_MouseListener.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/mouse/juce_MouseListener.h b/src/juce_appframework/gui/components/mouse/juce_MouseListener.h index eae7177572..c09dbda76f 100644 --- a/src/juce_appframework/gui/components/mouse/juce_MouseListener.h +++ b/src/juce_appframework/gui/components/mouse/juce_MouseListener.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/mouse/juce_TooltipClient.h b/src/juce_appframework/gui/components/mouse/juce_TooltipClient.h index 37ecec09fe..86ecff4ea6 100644 --- a/src/juce_appframework/gui/components/mouse/juce_TooltipClient.h +++ b/src/juce_appframework/gui/components/mouse/juce_TooltipClient.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/properties/juce_BooleanPropertyComponent.cpp b/src/juce_appframework/gui/components/properties/juce_BooleanPropertyComponent.cpp index 06dbb5e476..df09130f0c 100644 --- a/src/juce_appframework/gui/components/properties/juce_BooleanPropertyComponent.cpp +++ b/src/juce_appframework/gui/components/properties/juce_BooleanPropertyComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/properties/juce_BooleanPropertyComponent.h b/src/juce_appframework/gui/components/properties/juce_BooleanPropertyComponent.h index b2978cebed..415ed17097 100644 --- a/src/juce_appframework/gui/components/properties/juce_BooleanPropertyComponent.h +++ b/src/juce_appframework/gui/components/properties/juce_BooleanPropertyComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/properties/juce_ButtonPropertyComponent.cpp b/src/juce_appframework/gui/components/properties/juce_ButtonPropertyComponent.cpp index f26e53f6a3..0469df93b2 100644 --- a/src/juce_appframework/gui/components/properties/juce_ButtonPropertyComponent.cpp +++ b/src/juce_appframework/gui/components/properties/juce_ButtonPropertyComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/properties/juce_ButtonPropertyComponent.h b/src/juce_appframework/gui/components/properties/juce_ButtonPropertyComponent.h index b5a3cdc05d..b1724d21c7 100644 --- a/src/juce_appframework/gui/components/properties/juce_ButtonPropertyComponent.h +++ b/src/juce_appframework/gui/components/properties/juce_ButtonPropertyComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/properties/juce_ChoicePropertyComponent.cpp b/src/juce_appframework/gui/components/properties/juce_ChoicePropertyComponent.cpp index 2fa9a5c92e..8add40a711 100644 --- a/src/juce_appframework/gui/components/properties/juce_ChoicePropertyComponent.cpp +++ b/src/juce_appframework/gui/components/properties/juce_ChoicePropertyComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/properties/juce_ChoicePropertyComponent.h b/src/juce_appframework/gui/components/properties/juce_ChoicePropertyComponent.h index 105ec006a3..15183da0d9 100644 --- a/src/juce_appframework/gui/components/properties/juce_ChoicePropertyComponent.h +++ b/src/juce_appframework/gui/components/properties/juce_ChoicePropertyComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/properties/juce_PropertyComponent.cpp b/src/juce_appframework/gui/components/properties/juce_PropertyComponent.cpp index 004692c8a8..d074ea35d9 100644 --- a/src/juce_appframework/gui/components/properties/juce_PropertyComponent.cpp +++ b/src/juce_appframework/gui/components/properties/juce_PropertyComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/properties/juce_PropertyComponent.h b/src/juce_appframework/gui/components/properties/juce_PropertyComponent.h index 14796a3988..5099f2faa8 100644 --- a/src/juce_appframework/gui/components/properties/juce_PropertyComponent.h +++ b/src/juce_appframework/gui/components/properties/juce_PropertyComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/properties/juce_PropertyPanel.cpp b/src/juce_appframework/gui/components/properties/juce_PropertyPanel.cpp index eb43beeaa5..97a8f79aa2 100644 --- a/src/juce_appframework/gui/components/properties/juce_PropertyPanel.cpp +++ b/src/juce_appframework/gui/components/properties/juce_PropertyPanel.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/properties/juce_PropertyPanel.h b/src/juce_appframework/gui/components/properties/juce_PropertyPanel.h index a8173da704..d8f694dcef 100644 --- a/src/juce_appframework/gui/components/properties/juce_PropertyPanel.h +++ b/src/juce_appframework/gui/components/properties/juce_PropertyPanel.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/properties/juce_SliderPropertyComponent.cpp b/src/juce_appframework/gui/components/properties/juce_SliderPropertyComponent.cpp index 4518f62509..4d1ecd4638 100644 --- a/src/juce_appframework/gui/components/properties/juce_SliderPropertyComponent.cpp +++ b/src/juce_appframework/gui/components/properties/juce_SliderPropertyComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/properties/juce_SliderPropertyComponent.h b/src/juce_appframework/gui/components/properties/juce_SliderPropertyComponent.h index e362a8f2fc..d4b5f464ca 100644 --- a/src/juce_appframework/gui/components/properties/juce_SliderPropertyComponent.h +++ b/src/juce_appframework/gui/components/properties/juce_SliderPropertyComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/properties/juce_TextPropertyComponent.cpp b/src/juce_appframework/gui/components/properties/juce_TextPropertyComponent.cpp index 903ddd6a42..b2b2aef680 100644 --- a/src/juce_appframework/gui/components/properties/juce_TextPropertyComponent.cpp +++ b/src/juce_appframework/gui/components/properties/juce_TextPropertyComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/properties/juce_TextPropertyComponent.h b/src/juce_appframework/gui/components/properties/juce_TextPropertyComponent.h index 057faf131c..df75918075 100644 --- a/src/juce_appframework/gui/components/properties/juce_TextPropertyComponent.h +++ b/src/juce_appframework/gui/components/properties/juce_TextPropertyComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_ActiveXControlComponent.h b/src/juce_appframework/gui/components/special/juce_ActiveXControlComponent.h index 652cf29151..6cd82ce3fe 100644 --- a/src/juce_appframework/gui/components/special/juce_ActiveXControlComponent.h +++ b/src/juce_appframework/gui/components/special/juce_ActiveXControlComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_AudioDeviceSelectorComponent.cpp b/src/juce_appframework/gui/components/special/juce_AudioDeviceSelectorComponent.cpp index 83c2165353..a1aa07c5d2 100644 --- a/src/juce_appframework/gui/components/special/juce_AudioDeviceSelectorComponent.cpp +++ b/src/juce_appframework/gui/components/special/juce_AudioDeviceSelectorComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_AudioDeviceSelectorComponent.h b/src/juce_appframework/gui/components/special/juce_AudioDeviceSelectorComponent.h index 9da191e982..55de4539cc 100644 --- a/src/juce_appframework/gui/components/special/juce_AudioDeviceSelectorComponent.h +++ b/src/juce_appframework/gui/components/special/juce_AudioDeviceSelectorComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_BubbleComponent.cpp b/src/juce_appframework/gui/components/special/juce_BubbleComponent.cpp index a05ccf364d..19caa295a3 100644 --- a/src/juce_appframework/gui/components/special/juce_BubbleComponent.cpp +++ b/src/juce_appframework/gui/components/special/juce_BubbleComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_BubbleComponent.h b/src/juce_appframework/gui/components/special/juce_BubbleComponent.h index da1b93340c..b30073f4a3 100644 --- a/src/juce_appframework/gui/components/special/juce_BubbleComponent.h +++ b/src/juce_appframework/gui/components/special/juce_BubbleComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_BubbleMessageComponent.cpp b/src/juce_appframework/gui/components/special/juce_BubbleMessageComponent.cpp index 7157793ebb..56dbf2ea8b 100644 --- a/src/juce_appframework/gui/components/special/juce_BubbleMessageComponent.cpp +++ b/src/juce_appframework/gui/components/special/juce_BubbleMessageComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_BubbleMessageComponent.h b/src/juce_appframework/gui/components/special/juce_BubbleMessageComponent.h index 83901a4c96..f3b7af6871 100644 --- a/src/juce_appframework/gui/components/special/juce_BubbleMessageComponent.h +++ b/src/juce_appframework/gui/components/special/juce_BubbleMessageComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_ColourSelector.cpp b/src/juce_appframework/gui/components/special/juce_ColourSelector.cpp index 338d9c3c70..d5e7e5f28f 100644 --- a/src/juce_appframework/gui/components/special/juce_ColourSelector.cpp +++ b/src/juce_appframework/gui/components/special/juce_ColourSelector.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -474,7 +474,7 @@ void ColourSelector::update() void ColourSelector::paint (Graphics& g) { g.fillAll (findColour (backgroundColourId)); - + if ((flags & showColourAtTop) != 0) { const Colour colour (getCurrentColour()); diff --git a/src/juce_appframework/gui/components/special/juce_ColourSelector.h b/src/juce_appframework/gui/components/special/juce_ColourSelector.h index 3d2964dec1..9797e842d3 100644 --- a/src/juce_appframework/gui/components/special/juce_ColourSelector.h +++ b/src/juce_appframework/gui/components/special/juce_ColourSelector.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_DropShadower.cpp b/src/juce_appframework/gui/components/special/juce_DropShadower.cpp index d52751730a..c6ab12ed77 100644 --- a/src/juce_appframework/gui/components/special/juce_DropShadower.cpp +++ b/src/juce_appframework/gui/components/special/juce_DropShadower.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_DropShadower.h b/src/juce_appframework/gui/components/special/juce_DropShadower.h index a4d351edd7..0d797a578e 100644 --- a/src/juce_appframework/gui/components/special/juce_DropShadower.h +++ b/src/juce_appframework/gui/components/special/juce_DropShadower.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_MagnifierComponent.cpp b/src/juce_appframework/gui/components/special/juce_MagnifierComponent.cpp index 0e4aa8e32e..6605af06a6 100644 --- a/src/juce_appframework/gui/components/special/juce_MagnifierComponent.cpp +++ b/src/juce_appframework/gui/components/special/juce_MagnifierComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_MagnifierComponent.h b/src/juce_appframework/gui/components/special/juce_MagnifierComponent.h index 49e075994f..a5014bace5 100644 --- a/src/juce_appframework/gui/components/special/juce_MagnifierComponent.h +++ b/src/juce_appframework/gui/components/special/juce_MagnifierComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_MidiKeyboardComponent.cpp b/src/juce_appframework/gui/components/special/juce_MidiKeyboardComponent.cpp index b19ce2888b..9361c7424a 100644 --- a/src/juce_appframework/gui/components/special/juce_MidiKeyboardComponent.cpp +++ b/src/juce_appframework/gui/components/special/juce_MidiKeyboardComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_MidiKeyboardComponent.h b/src/juce_appframework/gui/components/special/juce_MidiKeyboardComponent.h index 2c96e1be8c..4f129f0c82 100644 --- a/src/juce_appframework/gui/components/special/juce_MidiKeyboardComponent.h +++ b/src/juce_appframework/gui/components/special/juce_MidiKeyboardComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_OpenGLComponent.cpp b/src/juce_appframework/gui/components/special/juce_OpenGLComponent.cpp index ac067562ab..b7d2a1f547 100644 --- a/src/juce_appframework/gui/components/special/juce_OpenGLComponent.cpp +++ b/src/juce_appframework/gui/components/special/juce_OpenGLComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_OpenGLComponent.h b/src/juce_appframework/gui/components/special/juce_OpenGLComponent.h index c85d029efc..f42b50292a 100644 --- a/src/juce_appframework/gui/components/special/juce_OpenGLComponent.h +++ b/src/juce_appframework/gui/components/special/juce_OpenGLComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_PreferencesPanel.cpp b/src/juce_appframework/gui/components/special/juce_PreferencesPanel.cpp index 992f24b32f..a39b5f6835 100644 --- a/src/juce_appframework/gui/components/special/juce_PreferencesPanel.cpp +++ b/src/juce_appframework/gui/components/special/juce_PreferencesPanel.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_PreferencesPanel.h b/src/juce_appframework/gui/components/special/juce_PreferencesPanel.h index 0cc5dd0a1e..040792ee57 100644 --- a/src/juce_appframework/gui/components/special/juce_PreferencesPanel.h +++ b/src/juce_appframework/gui/components/special/juce_PreferencesPanel.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_QuickTimeMovieComponent.cpp b/src/juce_appframework/gui/components/special/juce_QuickTimeMovieComponent.cpp index 6319888b1e..2479c7a8f6 100644 --- a/src/juce_appframework/gui/components/special/juce_QuickTimeMovieComponent.cpp +++ b/src/juce_appframework/gui/components/special/juce_QuickTimeMovieComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_QuickTimeMovieComponent.h b/src/juce_appframework/gui/components/special/juce_QuickTimeMovieComponent.h index 3479707ba3..ee96ffe35b 100644 --- a/src/juce_appframework/gui/components/special/juce_QuickTimeMovieComponent.h +++ b/src/juce_appframework/gui/components/special/juce_QuickTimeMovieComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_SystemTrayIconComponent.cpp b/src/juce_appframework/gui/components/special/juce_SystemTrayIconComponent.cpp index f2e18b9f68..aebb3cc212 100644 --- a/src/juce_appframework/gui/components/special/juce_SystemTrayIconComponent.cpp +++ b/src/juce_appframework/gui/components/special/juce_SystemTrayIconComponent.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/special/juce_SystemTrayIconComponent.h b/src/juce_appframework/gui/components/special/juce_SystemTrayIconComponent.h index 1dcd5bbda6..5a93346de7 100644 --- a/src/juce_appframework/gui/components/special/juce_SystemTrayIconComponent.h +++ b/src/juce_appframework/gui/components/special/juce_SystemTrayIconComponent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/windows/juce_AlertWindow.cpp b/src/juce_appframework/gui/components/windows/juce_AlertWindow.cpp index 297765343e..51e41ed88d 100644 --- a/src/juce_appframework/gui/components/windows/juce_AlertWindow.cpp +++ b/src/juce_appframework/gui/components/windows/juce_AlertWindow.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/windows/juce_AlertWindow.h b/src/juce_appframework/gui/components/windows/juce_AlertWindow.h index f008014be9..96a004ab05 100644 --- a/src/juce_appframework/gui/components/windows/juce_AlertWindow.h +++ b/src/juce_appframework/gui/components/windows/juce_AlertWindow.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/windows/juce_ComponentPeer.cpp b/src/juce_appframework/gui/components/windows/juce_ComponentPeer.cpp index b76349c7a0..80e88323ad 100644 --- a/src/juce_appframework/gui/components/windows/juce_ComponentPeer.cpp +++ b/src/juce_appframework/gui/components/windows/juce_ComponentPeer.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -412,7 +412,7 @@ bool ComponentPeer::handleKeyPress (const int keyCode, updateCurrentModifiers(); Component* target = Component::currentlyFocusedComponent->isValidComponent() - ? Component::currentlyFocusedComponent + ? Component::currentlyFocusedComponent : component; if (target->isCurrentlyBlockedByAnotherModalComponent()) @@ -471,8 +471,8 @@ bool ComponentPeer::handleKeyUpOrDown() { updateCurrentModifiers(); - Component* target = Component::currentlyFocusedComponent->isValidComponent() - ? Component::currentlyFocusedComponent + Component* target = Component::currentlyFocusedComponent->isValidComponent() + ? Component::currentlyFocusedComponent : component; if (target->isCurrentlyBlockedByAnotherModalComponent()) diff --git a/src/juce_appframework/gui/components/windows/juce_ComponentPeer.h b/src/juce_appframework/gui/components/windows/juce_ComponentPeer.h index 9247a1ac2d..e2fd7e5ff9 100644 --- a/src/juce_appframework/gui/components/windows/juce_ComponentPeer.h +++ b/src/juce_appframework/gui/components/windows/juce_ComponentPeer.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -261,12 +261,12 @@ public: /** Called when a key is pressed. For keycode info, see the KeyPress class. - Returns true if the keystroke was used. + Returns true if the keystroke was used. */ bool handleKeyPress (const int keyCode, const juce_wchar textCharacter); - /** Called whenever a key is pressed or released. + /** Called whenever a key is pressed or released. Returns true if the keystroke was used. */ bool handleKeyUpOrDown(); diff --git a/src/juce_appframework/gui/components/windows/juce_DialogWindow.cpp b/src/juce_appframework/gui/components/windows/juce_DialogWindow.cpp index 68991e87bb..8f50527f39 100644 --- a/src/juce_appframework/gui/components/windows/juce_DialogWindow.cpp +++ b/src/juce_appframework/gui/components/windows/juce_DialogWindow.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/windows/juce_DialogWindow.h b/src/juce_appframework/gui/components/windows/juce_DialogWindow.h index 997753db8c..b45b8e1e8a 100644 --- a/src/juce_appframework/gui/components/windows/juce_DialogWindow.h +++ b/src/juce_appframework/gui/components/windows/juce_DialogWindow.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/windows/juce_DocumentWindow.cpp b/src/juce_appframework/gui/components/windows/juce_DocumentWindow.cpp index 8676684bdd..58a6c65d71 100644 --- a/src/juce_appframework/gui/components/windows/juce_DocumentWindow.cpp +++ b/src/juce_appframework/gui/components/windows/juce_DocumentWindow.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/windows/juce_DocumentWindow.h b/src/juce_appframework/gui/components/windows/juce_DocumentWindow.h index 9a0a6a58e0..84ad42b891 100644 --- a/src/juce_appframework/gui/components/windows/juce_DocumentWindow.h +++ b/src/juce_appframework/gui/components/windows/juce_DocumentWindow.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/windows/juce_ResizableWindow.cpp b/src/juce_appframework/gui/components/windows/juce_ResizableWindow.cpp index b7a8bd1bf8..9fe86a947b 100644 --- a/src/juce_appframework/gui/components/windows/juce_ResizableWindow.cpp +++ b/src/juce_appframework/gui/components/windows/juce_ResizableWindow.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/windows/juce_ResizableWindow.h b/src/juce_appframework/gui/components/windows/juce_ResizableWindow.h index 9c1b3ae5b1..7b96db50ef 100644 --- a/src/juce_appframework/gui/components/windows/juce_ResizableWindow.h +++ b/src/juce_appframework/gui/components/windows/juce_ResizableWindow.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/windows/juce_SplashScreen.cpp b/src/juce_appframework/gui/components/windows/juce_SplashScreen.cpp index e8364b6bc3..e71e45d0e1 100644 --- a/src/juce_appframework/gui/components/windows/juce_SplashScreen.cpp +++ b/src/juce_appframework/gui/components/windows/juce_SplashScreen.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/windows/juce_SplashScreen.h b/src/juce_appframework/gui/components/windows/juce_SplashScreen.h index d595d8be5b..dadbfd3b68 100644 --- a/src/juce_appframework/gui/components/windows/juce_SplashScreen.h +++ b/src/juce_appframework/gui/components/windows/juce_SplashScreen.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/windows/juce_ThreadWithProgressWindow.cpp b/src/juce_appframework/gui/components/windows/juce_ThreadWithProgressWindow.cpp index e16323e7d8..68fd104688 100644 --- a/src/juce_appframework/gui/components/windows/juce_ThreadWithProgressWindow.cpp +++ b/src/juce_appframework/gui/components/windows/juce_ThreadWithProgressWindow.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/windows/juce_ThreadWithProgressWindow.h b/src/juce_appframework/gui/components/windows/juce_ThreadWithProgressWindow.h index 75b6f5231d..80df1bb78b 100644 --- a/src/juce_appframework/gui/components/windows/juce_ThreadWithProgressWindow.h +++ b/src/juce_appframework/gui/components/windows/juce_ThreadWithProgressWindow.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/windows/juce_TooltipWindow.cpp b/src/juce_appframework/gui/components/windows/juce_TooltipWindow.cpp index 825d71c8e5..a8446f14ad 100644 --- a/src/juce_appframework/gui/components/windows/juce_TooltipWindow.cpp +++ b/src/juce_appframework/gui/components/windows/juce_TooltipWindow.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/windows/juce_TooltipWindow.h b/src/juce_appframework/gui/components/windows/juce_TooltipWindow.h index 829dcf670e..a8b9c2f03b 100644 --- a/src/juce_appframework/gui/components/windows/juce_TooltipWindow.h +++ b/src/juce_appframework/gui/components/windows/juce_TooltipWindow.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/windows/juce_TopLevelWindow.cpp b/src/juce_appframework/gui/components/windows/juce_TopLevelWindow.cpp index 64173dc67e..d06a23633e 100644 --- a/src/juce_appframework/gui/components/windows/juce_TopLevelWindow.cpp +++ b/src/juce_appframework/gui/components/windows/juce_TopLevelWindow.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/components/windows/juce_TopLevelWindow.h b/src/juce_appframework/gui/components/windows/juce_TopLevelWindow.h index 34965ee6bf..1eeb9c7dda 100644 --- a/src/juce_appframework/gui/components/windows/juce_TopLevelWindow.h +++ b/src/juce_appframework/gui/components/windows/juce_TopLevelWindow.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/brushes/juce_Brush.cpp b/src/juce_appframework/gui/graphics/brushes/juce_Brush.cpp index cf801f677b..42fe647c4f 100644 --- a/src/juce_appframework/gui/graphics/brushes/juce_Brush.cpp +++ b/src/juce_appframework/gui/graphics/brushes/juce_Brush.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/brushes/juce_Brush.h b/src/juce_appframework/gui/graphics/brushes/juce_Brush.h index f1c6640984..e6ed5a8f2f 100644 --- a/src/juce_appframework/gui/graphics/brushes/juce_Brush.h +++ b/src/juce_appframework/gui/graphics/brushes/juce_Brush.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/brushes/juce_GradientBrush.cpp b/src/juce_appframework/gui/graphics/brushes/juce_GradientBrush.cpp index 455716cc9b..6b37f4f3a4 100644 --- a/src/juce_appframework/gui/graphics/brushes/juce_GradientBrush.cpp +++ b/src/juce_appframework/gui/graphics/brushes/juce_GradientBrush.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/brushes/juce_GradientBrush.h b/src/juce_appframework/gui/graphics/brushes/juce_GradientBrush.h index 8efc9be2bf..c97e9e2151 100644 --- a/src/juce_appframework/gui/graphics/brushes/juce_GradientBrush.h +++ b/src/juce_appframework/gui/graphics/brushes/juce_GradientBrush.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/brushes/juce_ImageBrush.cpp b/src/juce_appframework/gui/graphics/brushes/juce_ImageBrush.cpp index e2069a697c..b2db697bfd 100644 --- a/src/juce_appframework/gui/graphics/brushes/juce_ImageBrush.cpp +++ b/src/juce_appframework/gui/graphics/brushes/juce_ImageBrush.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/brushes/juce_ImageBrush.h b/src/juce_appframework/gui/graphics/brushes/juce_ImageBrush.h index 5fe9bf7933..36da3ed314 100644 --- a/src/juce_appframework/gui/graphics/brushes/juce_ImageBrush.h +++ b/src/juce_appframework/gui/graphics/brushes/juce_ImageBrush.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/brushes/juce_SolidColourBrush.cpp b/src/juce_appframework/gui/graphics/brushes/juce_SolidColourBrush.cpp index 3d88a55be4..2b68d5f1c1 100644 --- a/src/juce_appframework/gui/graphics/brushes/juce_SolidColourBrush.cpp +++ b/src/juce_appframework/gui/graphics/brushes/juce_SolidColourBrush.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/brushes/juce_SolidColourBrush.h b/src/juce_appframework/gui/graphics/brushes/juce_SolidColourBrush.h index 095daa1d57..c111929023 100644 --- a/src/juce_appframework/gui/graphics/brushes/juce_SolidColourBrush.h +++ b/src/juce_appframework/gui/graphics/brushes/juce_SolidColourBrush.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/colour/juce_Colour.cpp b/src/juce_appframework/gui/graphics/colour/juce_Colour.cpp index 0b1bfd33cf..4826ced95d 100644 --- a/src/juce_appframework/gui/graphics/colour/juce_Colour.cpp +++ b/src/juce_appframework/gui/graphics/colour/juce_Colour.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/colour/juce_Colour.h b/src/juce_appframework/gui/graphics/colour/juce_Colour.h index 99f3cf9b29..5a213e8c78 100644 --- a/src/juce_appframework/gui/graphics/colour/juce_Colour.h +++ b/src/juce_appframework/gui/graphics/colour/juce_Colour.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/colour/juce_ColourGradient.cpp b/src/juce_appframework/gui/graphics/colour/juce_ColourGradient.cpp index 92df81232b..bada7812e9 100644 --- a/src/juce_appframework/gui/graphics/colour/juce_ColourGradient.cpp +++ b/src/juce_appframework/gui/graphics/colour/juce_ColourGradient.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/colour/juce_ColourGradient.h b/src/juce_appframework/gui/graphics/colour/juce_ColourGradient.h index 1e9b4fdf39..4ae8ae369a 100644 --- a/src/juce_appframework/gui/graphics/colour/juce_ColourGradient.h +++ b/src/juce_appframework/gui/graphics/colour/juce_ColourGradient.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/colour/juce_Colours.cpp b/src/juce_appframework/gui/graphics/colour/juce_Colours.cpp index eae6b4d435..9747d920bc 100644 --- a/src/juce_appframework/gui/graphics/colour/juce_Colours.cpp +++ b/src/juce_appframework/gui/graphics/colour/juce_Colours.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/colour/juce_Colours.h b/src/juce_appframework/gui/graphics/colour/juce_Colours.h index 1b2c2c38b0..9306ac3df1 100644 --- a/src/juce_appframework/gui/graphics/colour/juce_Colours.h +++ b/src/juce_appframework/gui/graphics/colour/juce_Colours.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/contexts/juce_EdgeTable.cpp b/src/juce_appframework/gui/graphics/contexts/juce_EdgeTable.cpp index 02fbb5c1f3..1bdf5d4d35 100644 --- a/src/juce_appframework/gui/graphics/contexts/juce_EdgeTable.cpp +++ b/src/juce_appframework/gui/graphics/contexts/juce_EdgeTable.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/contexts/juce_EdgeTable.h b/src/juce_appframework/gui/graphics/contexts/juce_EdgeTable.h index 0d9634f940..75e4943a00 100644 --- a/src/juce_appframework/gui/graphics/contexts/juce_EdgeTable.h +++ b/src/juce_appframework/gui/graphics/contexts/juce_EdgeTable.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/contexts/juce_Graphics.cpp b/src/juce_appframework/gui/graphics/contexts/juce_Graphics.cpp index ebe83fa812..cf3110af87 100644 --- a/src/juce_appframework/gui/graphics/contexts/juce_Graphics.cpp +++ b/src/juce_appframework/gui/graphics/contexts/juce_Graphics.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/contexts/juce_Graphics.h b/src/juce_appframework/gui/graphics/contexts/juce_Graphics.h index c475c866de..b3139c13ad 100644 --- a/src/juce_appframework/gui/graphics/contexts/juce_Graphics.h +++ b/src/juce_appframework/gui/graphics/contexts/juce_Graphics.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/contexts/juce_Justification.cpp b/src/juce_appframework/gui/graphics/contexts/juce_Justification.cpp index e933d8945b..662e9b36ad 100644 --- a/src/juce_appframework/gui/graphics/contexts/juce_Justification.cpp +++ b/src/juce_appframework/gui/graphics/contexts/juce_Justification.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/contexts/juce_Justification.h b/src/juce_appframework/gui/graphics/contexts/juce_Justification.h index d78a21167e..98f9a86fae 100644 --- a/src/juce_appframework/gui/graphics/contexts/juce_Justification.h +++ b/src/juce_appframework/gui/graphics/contexts/juce_Justification.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsContext.h b/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsContext.h index 01862fddc1..a65c787628 100644 --- a/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsContext.h +++ b/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsContext.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp b/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp index c5185556a4..59df0f1ea3 100644 --- a/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp +++ b/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h b/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h index f45ba4a01b..3b67cd6cfc 100644 --- a/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h +++ b/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp b/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp index dd179da8d7..baf0311401 100644 --- a/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp +++ b/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h b/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h index 2ae4b955d6..034f50b01c 100644 --- a/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h +++ b/src/juce_appframework/gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/contexts/juce_RectanglePlacement.cpp b/src/juce_appframework/gui/graphics/contexts/juce_RectanglePlacement.cpp index aced4094ab..4c77bf6b1a 100644 --- a/src/juce_appframework/gui/graphics/contexts/juce_RectanglePlacement.cpp +++ b/src/juce_appframework/gui/graphics/contexts/juce_RectanglePlacement.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/contexts/juce_RectanglePlacement.h b/src/juce_appframework/gui/graphics/contexts/juce_RectanglePlacement.h index c22fcf6bd9..1e99476d24 100644 --- a/src/juce_appframework/gui/graphics/contexts/juce_RectanglePlacement.h +++ b/src/juce_appframework/gui/graphics/contexts/juce_RectanglePlacement.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/drawables/juce_Drawable.cpp b/src/juce_appframework/gui/graphics/drawables/juce_Drawable.cpp index 930ee912f5..674cdf13d0 100644 --- a/src/juce_appframework/gui/graphics/drawables/juce_Drawable.cpp +++ b/src/juce_appframework/gui/graphics/drawables/juce_Drawable.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/drawables/juce_Drawable.h b/src/juce_appframework/gui/graphics/drawables/juce_Drawable.h index 7982f627c5..44d4158779 100644 --- a/src/juce_appframework/gui/graphics/drawables/juce_Drawable.h +++ b/src/juce_appframework/gui/graphics/drawables/juce_Drawable.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/drawables/juce_DrawableComposite.cpp b/src/juce_appframework/gui/graphics/drawables/juce_DrawableComposite.cpp index 231c07219c..6ce78dd781 100644 --- a/src/juce_appframework/gui/graphics/drawables/juce_DrawableComposite.cpp +++ b/src/juce_appframework/gui/graphics/drawables/juce_DrawableComposite.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/drawables/juce_DrawableComposite.h b/src/juce_appframework/gui/graphics/drawables/juce_DrawableComposite.h index 3bca9102df..61500215f2 100644 --- a/src/juce_appframework/gui/graphics/drawables/juce_DrawableComposite.h +++ b/src/juce_appframework/gui/graphics/drawables/juce_DrawableComposite.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/drawables/juce_DrawableImage.cpp b/src/juce_appframework/gui/graphics/drawables/juce_DrawableImage.cpp index 3c2abf45e7..6b30d6c31f 100644 --- a/src/juce_appframework/gui/graphics/drawables/juce_DrawableImage.cpp +++ b/src/juce_appframework/gui/graphics/drawables/juce_DrawableImage.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/drawables/juce_DrawableImage.h b/src/juce_appframework/gui/graphics/drawables/juce_DrawableImage.h index 07b51e92cf..f96cd1a4fb 100644 --- a/src/juce_appframework/gui/graphics/drawables/juce_DrawableImage.h +++ b/src/juce_appframework/gui/graphics/drawables/juce_DrawableImage.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/drawables/juce_DrawablePath.cpp b/src/juce_appframework/gui/graphics/drawables/juce_DrawablePath.cpp index 868a4c4589..f4135c4da0 100644 --- a/src/juce_appframework/gui/graphics/drawables/juce_DrawablePath.cpp +++ b/src/juce_appframework/gui/graphics/drawables/juce_DrawablePath.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/drawables/juce_DrawablePath.h b/src/juce_appframework/gui/graphics/drawables/juce_DrawablePath.h index 3b8cd3b90f..31d8399f82 100644 --- a/src/juce_appframework/gui/graphics/drawables/juce_DrawablePath.h +++ b/src/juce_appframework/gui/graphics/drawables/juce_DrawablePath.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/drawables/juce_DrawableText.cpp b/src/juce_appframework/gui/graphics/drawables/juce_DrawableText.cpp index 116114dd90..493c266ee3 100644 --- a/src/juce_appframework/gui/graphics/drawables/juce_DrawableText.cpp +++ b/src/juce_appframework/gui/graphics/drawables/juce_DrawableText.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/drawables/juce_DrawableText.h b/src/juce_appframework/gui/graphics/drawables/juce_DrawableText.h index 11cf41ff42..d27edbde55 100644 --- a/src/juce_appframework/gui/graphics/drawables/juce_DrawableText.h +++ b/src/juce_appframework/gui/graphics/drawables/juce_DrawableText.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/drawables/juce_SVGParser.cpp b/src/juce_appframework/gui/graphics/drawables/juce_SVGParser.cpp index 1fef37fd2e..d669d84cb1 100644 --- a/src/juce_appframework/gui/graphics/drawables/juce_SVGParser.cpp +++ b/src/juce_appframework/gui/graphics/drawables/juce_SVGParser.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/effects/juce_DropShadowEffect.cpp b/src/juce_appframework/gui/graphics/effects/juce_DropShadowEffect.cpp index c1b142b4e1..04dc6ca339 100644 --- a/src/juce_appframework/gui/graphics/effects/juce_DropShadowEffect.cpp +++ b/src/juce_appframework/gui/graphics/effects/juce_DropShadowEffect.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/effects/juce_DropShadowEffect.h b/src/juce_appframework/gui/graphics/effects/juce_DropShadowEffect.h index dc1c22a46c..d4eeddaaac 100644 --- a/src/juce_appframework/gui/graphics/effects/juce_DropShadowEffect.h +++ b/src/juce_appframework/gui/graphics/effects/juce_DropShadowEffect.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/effects/juce_GlowEffect.cpp b/src/juce_appframework/gui/graphics/effects/juce_GlowEffect.cpp index 303211de70..040ff656fb 100644 --- a/src/juce_appframework/gui/graphics/effects/juce_GlowEffect.cpp +++ b/src/juce_appframework/gui/graphics/effects/juce_GlowEffect.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/effects/juce_GlowEffect.h b/src/juce_appframework/gui/graphics/effects/juce_GlowEffect.h index 7872bd260b..05a4469566 100644 --- a/src/juce_appframework/gui/graphics/effects/juce_GlowEffect.h +++ b/src/juce_appframework/gui/graphics/effects/juce_GlowEffect.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/effects/juce_ImageEffectFilter.h b/src/juce_appframework/gui/graphics/effects/juce_ImageEffectFilter.h index 846d0d78e1..185ac93ddb 100644 --- a/src/juce_appframework/gui/graphics/effects/juce_ImageEffectFilter.h +++ b/src/juce_appframework/gui/graphics/effects/juce_ImageEffectFilter.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/effects/juce_ReduceOpacityEffect.cpp b/src/juce_appframework/gui/graphics/effects/juce_ReduceOpacityEffect.cpp index 4c7649c50f..2e5289784a 100644 --- a/src/juce_appframework/gui/graphics/effects/juce_ReduceOpacityEffect.cpp +++ b/src/juce_appframework/gui/graphics/effects/juce_ReduceOpacityEffect.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/effects/juce_ReduceOpacityEffect.h b/src/juce_appframework/gui/graphics/effects/juce_ReduceOpacityEffect.h index 2daeb38978..f79663cf30 100644 --- a/src/juce_appframework/gui/graphics/effects/juce_ReduceOpacityEffect.h +++ b/src/juce_appframework/gui/graphics/effects/juce_ReduceOpacityEffect.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/fonts/juce_Font.cpp b/src/juce_appframework/gui/graphics/fonts/juce_Font.cpp index f3b243b34b..aa65acdd72 100644 --- a/src/juce_appframework/gui/graphics/fonts/juce_Font.cpp +++ b/src/juce_appframework/gui/graphics/fonts/juce_Font.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/fonts/juce_Font.h b/src/juce_appframework/gui/graphics/fonts/juce_Font.h index b56893d150..b9db6e8c8a 100644 --- a/src/juce_appframework/gui/graphics/fonts/juce_Font.h +++ b/src/juce_appframework/gui/graphics/fonts/juce_Font.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/fonts/juce_GlyphArrangement.cpp b/src/juce_appframework/gui/graphics/fonts/juce_GlyphArrangement.cpp index 389a48592f..df2572cfd6 100644 --- a/src/juce_appframework/gui/graphics/fonts/juce_GlyphArrangement.cpp +++ b/src/juce_appframework/gui/graphics/fonts/juce_GlyphArrangement.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/fonts/juce_GlyphArrangement.h b/src/juce_appframework/gui/graphics/fonts/juce_GlyphArrangement.h index 4cdba041dc..58de9bb74b 100644 --- a/src/juce_appframework/gui/graphics/fonts/juce_GlyphArrangement.h +++ b/src/juce_appframework/gui/graphics/fonts/juce_GlyphArrangement.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/fonts/juce_TextLayout.cpp b/src/juce_appframework/gui/graphics/fonts/juce_TextLayout.cpp index 6b44d92d14..f31f5494c5 100644 --- a/src/juce_appframework/gui/graphics/fonts/juce_TextLayout.cpp +++ b/src/juce_appframework/gui/graphics/fonts/juce_TextLayout.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/fonts/juce_TextLayout.h b/src/juce_appframework/gui/graphics/fonts/juce_TextLayout.h index b73545a850..4665746ae2 100644 --- a/src/juce_appframework/gui/graphics/fonts/juce_TextLayout.h +++ b/src/juce_appframework/gui/graphics/fonts/juce_TextLayout.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/fonts/juce_Typeface.cpp b/src/juce_appframework/gui/graphics/fonts/juce_Typeface.cpp index 3bdcb5ec33..0ae2aa2f47 100644 --- a/src/juce_appframework/gui/graphics/fonts/juce_Typeface.cpp +++ b/src/juce_appframework/gui/graphics/fonts/juce_Typeface.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/fonts/juce_Typeface.h b/src/juce_appframework/gui/graphics/fonts/juce_Typeface.h index 374d7e23a6..15328617d3 100644 --- a/src/juce_appframework/gui/graphics/fonts/juce_Typeface.h +++ b/src/juce_appframework/gui/graphics/fonts/juce_Typeface.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_AffineTransform.cpp b/src/juce_appframework/gui/graphics/geometry/juce_AffineTransform.cpp index 3f2e8e9a76..e76a0ba16f 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_AffineTransform.cpp +++ b/src/juce_appframework/gui/graphics/geometry/juce_AffineTransform.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_AffineTransform.h b/src/juce_appframework/gui/graphics/geometry/juce_AffineTransform.h index 286cbc0c90..b73a46bf18 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_AffineTransform.h +++ b/src/juce_appframework/gui/graphics/geometry/juce_AffineTransform.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_BorderSize.cpp b/src/juce_appframework/gui/graphics/geometry/juce_BorderSize.cpp index fb32da101c..d9c8f9cca4 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_BorderSize.cpp +++ b/src/juce_appframework/gui/graphics/geometry/juce_BorderSize.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_BorderSize.h b/src/juce_appframework/gui/graphics/geometry/juce_BorderSize.h index 91fc68f636..bd0afab3b1 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_BorderSize.h +++ b/src/juce_appframework/gui/graphics/geometry/juce_BorderSize.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_Line.cpp b/src/juce_appframework/gui/graphics/geometry/juce_Line.cpp index 01a02c12a0..387b87fb46 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_Line.cpp +++ b/src/juce_appframework/gui/graphics/geometry/juce_Line.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_Line.h b/src/juce_appframework/gui/graphics/geometry/juce_Line.h index af84427a11..ab2ea47c5c 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_Line.h +++ b/src/juce_appframework/gui/graphics/geometry/juce_Line.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_Path.cpp b/src/juce_appframework/gui/graphics/geometry/juce_Path.cpp index 2490af1785..e4272d79ff 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_Path.cpp +++ b/src/juce_appframework/gui/graphics/geometry/juce_Path.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_Path.h b/src/juce_appframework/gui/graphics/geometry/juce_Path.h index a235986f18..e3b7d9798f 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_Path.h +++ b/src/juce_appframework/gui/graphics/geometry/juce_Path.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_PathIterator.cpp b/src/juce_appframework/gui/graphics/geometry/juce_PathIterator.cpp index 42d0461e40..4400466997 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_PathIterator.cpp +++ b/src/juce_appframework/gui/graphics/geometry/juce_PathIterator.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_PathIterator.h b/src/juce_appframework/gui/graphics/geometry/juce_PathIterator.h index 15449575d5..4fce5bd54d 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_PathIterator.h +++ b/src/juce_appframework/gui/graphics/geometry/juce_PathIterator.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_PathStrokeType.cpp b/src/juce_appframework/gui/graphics/geometry/juce_PathStrokeType.cpp index 99bd3006b3..13c4445bd1 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_PathStrokeType.cpp +++ b/src/juce_appframework/gui/graphics/geometry/juce_PathStrokeType.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_PathStrokeType.h b/src/juce_appframework/gui/graphics/geometry/juce_PathStrokeType.h index 52c823f99a..f8b061d803 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_PathStrokeType.h +++ b/src/juce_appframework/gui/graphics/geometry/juce_PathStrokeType.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_Point.cpp b/src/juce_appframework/gui/graphics/geometry/juce_Point.cpp index f586ed17c5..d31f924011 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_Point.cpp +++ b/src/juce_appframework/gui/graphics/geometry/juce_Point.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_Point.h b/src/juce_appframework/gui/graphics/geometry/juce_Point.h index 808d44f230..26f804d14e 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_Point.h +++ b/src/juce_appframework/gui/graphics/geometry/juce_Point.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_PositionedRectangle.cpp b/src/juce_appframework/gui/graphics/geometry/juce_PositionedRectangle.cpp index ead431aaa5..1c9bb1740a 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_PositionedRectangle.cpp +++ b/src/juce_appframework/gui/graphics/geometry/juce_PositionedRectangle.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_PositionedRectangle.h b/src/juce_appframework/gui/graphics/geometry/juce_PositionedRectangle.h index e9e726a1ba..1004f29954 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_PositionedRectangle.h +++ b/src/juce_appframework/gui/graphics/geometry/juce_PositionedRectangle.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_Rectangle.cpp b/src/juce_appframework/gui/graphics/geometry/juce_Rectangle.cpp index b53a982c77..41f06b147d 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_Rectangle.cpp +++ b/src/juce_appframework/gui/graphics/geometry/juce_Rectangle.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_Rectangle.h b/src/juce_appframework/gui/graphics/geometry/juce_Rectangle.h index eb87754f9c..4386d83bfd 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_Rectangle.h +++ b/src/juce_appframework/gui/graphics/geometry/juce_Rectangle.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_RectangleList.cpp b/src/juce_appframework/gui/graphics/geometry/juce_RectangleList.cpp index 61e2ea674b..d8841f3281 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_RectangleList.cpp +++ b/src/juce_appframework/gui/graphics/geometry/juce_RectangleList.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/geometry/juce_RectangleList.h b/src/juce_appframework/gui/graphics/geometry/juce_RectangleList.h index cd0db22053..5eeb648f39 100644 --- a/src/juce_appframework/gui/graphics/geometry/juce_RectangleList.h +++ b/src/juce_appframework/gui/graphics/geometry/juce_RectangleList.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/imaging/image_file_formats/juce_GIFLoader.cpp b/src/juce_appframework/gui/graphics/imaging/image_file_formats/juce_GIFLoader.cpp index 85df34a037..07199b2611 100644 --- a/src/juce_appframework/gui/graphics/imaging/image_file_formats/juce_GIFLoader.cpp +++ b/src/juce_appframework/gui/graphics/imaging/image_file_formats/juce_GIFLoader.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/imaging/image_file_formats/juce_GIFLoader.h b/src/juce_appframework/gui/graphics/imaging/image_file_formats/juce_GIFLoader.h index 25d525818c..08f87c25c4 100644 --- a/src/juce_appframework/gui/graphics/imaging/image_file_formats/juce_GIFLoader.h +++ b/src/juce_appframework/gui/graphics/imaging/image_file_formats/juce_GIFLoader.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/imaging/image_file_formats/juce_JPEGLoader.cpp b/src/juce_appframework/gui/graphics/imaging/image_file_formats/juce_JPEGLoader.cpp index 267ecd70de..66bfb74cf1 100644 --- a/src/juce_appframework/gui/graphics/imaging/image_file_formats/juce_JPEGLoader.cpp +++ b/src/juce_appframework/gui/graphics/imaging/image_file_formats/juce_JPEGLoader.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/imaging/image_file_formats/juce_PNGLoader.cpp b/src/juce_appframework/gui/graphics/imaging/image_file_formats/juce_PNGLoader.cpp index 7e6e2ed6c8..1ca7639fd9 100644 --- a/src/juce_appframework/gui/graphics/imaging/image_file_formats/juce_PNGLoader.cpp +++ b/src/juce_appframework/gui/graphics/imaging/image_file_formats/juce_PNGLoader.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/imaging/juce_Image.cpp b/src/juce_appframework/gui/graphics/imaging/juce_Image.cpp index 3deff35122..859d406cbc 100644 --- a/src/juce_appframework/gui/graphics/imaging/juce_Image.cpp +++ b/src/juce_appframework/gui/graphics/imaging/juce_Image.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/imaging/juce_Image.h b/src/juce_appframework/gui/graphics/imaging/juce_Image.h index ca14149b8f..aa5237944d 100644 --- a/src/juce_appframework/gui/graphics/imaging/juce_Image.h +++ b/src/juce_appframework/gui/graphics/imaging/juce_Image.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/imaging/juce_ImageCache.cpp b/src/juce_appframework/gui/graphics/imaging/juce_ImageCache.cpp index 8e07301fd9..c8dc558e51 100644 --- a/src/juce_appframework/gui/graphics/imaging/juce_ImageCache.cpp +++ b/src/juce_appframework/gui/graphics/imaging/juce_ImageCache.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/imaging/juce_ImageCache.h b/src/juce_appframework/gui/graphics/imaging/juce_ImageCache.h index e84cd8fcce..3716a3f354 100644 --- a/src/juce_appframework/gui/graphics/imaging/juce_ImageCache.h +++ b/src/juce_appframework/gui/graphics/imaging/juce_ImageCache.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/imaging/juce_ImageConvolutionKernel.cpp b/src/juce_appframework/gui/graphics/imaging/juce_ImageConvolutionKernel.cpp index acd98b1c94..20c7afaab5 100644 --- a/src/juce_appframework/gui/graphics/imaging/juce_ImageConvolutionKernel.cpp +++ b/src/juce_appframework/gui/graphics/imaging/juce_ImageConvolutionKernel.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/imaging/juce_ImageConvolutionKernel.h b/src/juce_appframework/gui/graphics/imaging/juce_ImageConvolutionKernel.h index 3ff5725979..bd6cb56d88 100644 --- a/src/juce_appframework/gui/graphics/imaging/juce_ImageConvolutionKernel.h +++ b/src/juce_appframework/gui/graphics/imaging/juce_ImageConvolutionKernel.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/imaging/juce_ImageFileFormat.cpp b/src/juce_appframework/gui/graphics/imaging/juce_ImageFileFormat.cpp index 0269a8e235..9dcc82534f 100644 --- a/src/juce_appframework/gui/graphics/imaging/juce_ImageFileFormat.cpp +++ b/src/juce_appframework/gui/graphics/imaging/juce_ImageFileFormat.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_appframework/gui/graphics/imaging/juce_ImageFileFormat.h b/src/juce_appframework/gui/graphics/imaging/juce_ImageFileFormat.h index 6e131cd425..0e9686bfa7 100644 --- a/src/juce_appframework/gui/graphics/imaging/juce_ImageFileFormat.h +++ b/src/juce_appframework/gui/graphics/imaging/juce_ImageFileFormat.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_Atomic.h b/src/juce_core/basics/juce_Atomic.h index d1a9e133c8..d1c175378a 100644 --- a/src/juce_core/basics/juce_Atomic.h +++ b/src/juce_core/basics/juce_Atomic.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_DataConversions.h b/src/juce_core/basics/juce_DataConversions.h index 894027e6e6..47ebfee777 100644 --- a/src/juce_core/basics/juce_DataConversions.h +++ b/src/juce_core/basics/juce_DataConversions.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_FileLogger.cpp b/src/juce_core/basics/juce_FileLogger.cpp index a6f0a4daba..bf16ea4a1b 100644 --- a/src/juce_core/basics/juce_FileLogger.cpp +++ b/src/juce_core/basics/juce_FileLogger.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_FileLogger.h b/src/juce_core/basics/juce_FileLogger.h index ec4c9c7b2d..000fbe76e3 100644 --- a/src/juce_core/basics/juce_FileLogger.h +++ b/src/juce_core/basics/juce_FileLogger.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_Initialisation.h b/src/juce_core/basics/juce_Initialisation.h index f20e2a3031..9999a548e4 100644 --- a/src/juce_core/basics/juce_Initialisation.h +++ b/src/juce_core/basics/juce_Initialisation.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_Logger.cpp b/src/juce_core/basics/juce_Logger.cpp index 5d5ef4f8cc..9bd1b4f8d0 100644 --- a/src/juce_core/basics/juce_Logger.cpp +++ b/src/juce_core/basics/juce_Logger.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_Logger.h b/src/juce_core/basics/juce_Logger.h index 28da82394a..4631e31872 100644 --- a/src/juce_core/basics/juce_Logger.h +++ b/src/juce_core/basics/juce_Logger.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_MathsFunctions.h b/src/juce_core/basics/juce_MathsFunctions.h index 1714843e99..4f58f1a63a 100644 --- a/src/juce_core/basics/juce_MathsFunctions.h +++ b/src/juce_core/basics/juce_MathsFunctions.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_Memory.h b/src/juce_core/basics/juce_Memory.h index a9a541c13d..39ca26c49c 100644 --- a/src/juce_core/basics/juce_Memory.h +++ b/src/juce_core/basics/juce_Memory.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_PlatformDefs.h b/src/juce_core/basics/juce_PlatformDefs.h index 09db40fd77..5d9b8ea33c 100644 --- a/src/juce_core/basics/juce_PlatformDefs.h +++ b/src/juce_core/basics/juce_PlatformDefs.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_Random.cpp b/src/juce_core/basics/juce_Random.cpp index e9d1ab3fb2..044cf451a5 100644 --- a/src/juce_core/basics/juce_Random.cpp +++ b/src/juce_core/basics/juce_Random.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_Random.h b/src/juce_core/basics/juce_Random.h index 4377f6bb08..7df02836f3 100644 --- a/src/juce_core/basics/juce_Random.h +++ b/src/juce_core/basics/juce_Random.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_RelativeTime.cpp b/src/juce_core/basics/juce_RelativeTime.cpp index 561a89badf..0a74232fc9 100644 --- a/src/juce_core/basics/juce_RelativeTime.cpp +++ b/src/juce_core/basics/juce_RelativeTime.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_RelativeTime.h b/src/juce_core/basics/juce_RelativeTime.h index 062a9849a2..6aec6b37e3 100644 --- a/src/juce_core/basics/juce_RelativeTime.h +++ b/src/juce_core/basics/juce_RelativeTime.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_Singleton.h b/src/juce_core/basics/juce_Singleton.h index dea9032840..bac50c2c9c 100644 --- a/src/juce_core/basics/juce_Singleton.h +++ b/src/juce_core/basics/juce_Singleton.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -229,7 +229,7 @@ This is like juce_DeclareSingleton_SingleThreaded, but doesn't do any checking for recursion or repeated instantiation. It's intended for use as a lightweight - version of a singleton, where you're using it in very straightforward + version of a singleton, where you're using it in very straightforward circumstances and don't need the extra checking. Juce use the normal juce_ImplementSingleton_SingleThreaded as the counterpart diff --git a/src/juce_core/basics/juce_StandardHeader.h b/src/juce_core/basics/juce_StandardHeader.h index d168fb783e..2c24284c01 100644 --- a/src/juce_core/basics/juce_StandardHeader.h +++ b/src/juce_core/basics/juce_StandardHeader.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_SystemStats.cpp b/src/juce_core/basics/juce_SystemStats.cpp index fdee3799c4..0167bab144 100644 --- a/src/juce_core/basics/juce_SystemStats.cpp +++ b/src/juce_core/basics/juce_SystemStats.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_SystemStats.h b/src/juce_core/basics/juce_SystemStats.h index 6291c11f75..5ee193fe8a 100644 --- a/src/juce_core/basics/juce_SystemStats.h +++ b/src/juce_core/basics/juce_SystemStats.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_Time.cpp b/src/juce_core/basics/juce_Time.cpp index 2977b3feb2..86d890f00a 100644 --- a/src/juce_core/basics/juce_Time.cpp +++ b/src/juce_core/basics/juce_Time.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/basics/juce_Time.h b/src/juce_core/basics/juce_Time.h index def44a21b1..e6d8fa2c3b 100644 --- a/src/juce_core/basics/juce_Time.h +++ b/src/juce_core/basics/juce_Time.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/containers/juce_ArrayAllocationBase.h b/src/juce_core/containers/juce_ArrayAllocationBase.h index e1c7af6d0a..baafd8ce1e 100644 --- a/src/juce_core/containers/juce_ArrayAllocationBase.h +++ b/src/juce_core/containers/juce_ArrayAllocationBase.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/containers/juce_BitArray.cpp b/src/juce_core/containers/juce_BitArray.cpp index 7a35f3af90..8104ea1fd1 100644 --- a/src/juce_core/containers/juce_BitArray.cpp +++ b/src/juce_core/containers/juce_BitArray.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/containers/juce_BitArray.h b/src/juce_core/containers/juce_BitArray.h index 6267859391..3b63967954 100644 --- a/src/juce_core/containers/juce_BitArray.h +++ b/src/juce_core/containers/juce_BitArray.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/containers/juce_ElementComparator.h b/src/juce_core/containers/juce_ElementComparator.h index ec35a0363d..0605e04f3d 100644 --- a/src/juce_core/containers/juce_ElementComparator.h +++ b/src/juce_core/containers/juce_ElementComparator.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/containers/juce_MemoryBlock.cpp b/src/juce_core/containers/juce_MemoryBlock.cpp index eb1e4e62b2..0ac0c3b89d 100644 --- a/src/juce_core/containers/juce_MemoryBlock.cpp +++ b/src/juce_core/containers/juce_MemoryBlock.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/containers/juce_MemoryBlock.h b/src/juce_core/containers/juce_MemoryBlock.h index f8b3449ceb..bf7a55c2f6 100644 --- a/src/juce_core/containers/juce_MemoryBlock.h +++ b/src/juce_core/containers/juce_MemoryBlock.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/containers/juce_OwnedArray.h b/src/juce_core/containers/juce_OwnedArray.h index f48bc85d86..a5fb022011 100644 --- a/src/juce_core/containers/juce_OwnedArray.h +++ b/src/juce_core/containers/juce_OwnedArray.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/containers/juce_PropertySet.cpp b/src/juce_core/containers/juce_PropertySet.cpp index f3914f0d9c..766683d90a 100644 --- a/src/juce_core/containers/juce_PropertySet.cpp +++ b/src/juce_core/containers/juce_PropertySet.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/containers/juce_PropertySet.h b/src/juce_core/containers/juce_PropertySet.h index d83c75d556..952e42acf5 100644 --- a/src/juce_core/containers/juce_PropertySet.h +++ b/src/juce_core/containers/juce_PropertySet.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -191,7 +191,7 @@ public: /** Sets up a second PopertySet that will be used to look up any values that aren't set in this one. - If you set this up to be a pointer to a second property set, then whenever one + If you set this up to be a pointer to a second property set, then whenever one of the getValue() methods fails to find an entry in this set, it will look up that value in the fallback set, and if it finds it, it will return that. diff --git a/src/juce_core/containers/juce_ReferenceCountedArray.h b/src/juce_core/containers/juce_ReferenceCountedArray.h index 6ba75824c3..7b7a956a86 100644 --- a/src/juce_core/containers/juce_ReferenceCountedArray.h +++ b/src/juce_core/containers/juce_ReferenceCountedArray.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/containers/juce_ReferenceCountedObject.h b/src/juce_core/containers/juce_ReferenceCountedObject.h index 1c96521896..4dbdcae525 100644 --- a/src/juce_core/containers/juce_ReferenceCountedObject.h +++ b/src/juce_core/containers/juce_ReferenceCountedObject.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/containers/juce_SortedSet.h b/src/juce_core/containers/juce_SortedSet.h index ccc6c2211a..864586d47d 100644 --- a/src/juce_core/containers/juce_SortedSet.h +++ b/src/juce_core/containers/juce_SortedSet.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -55,7 +55,7 @@ because it uses a binary-chop method. Note that if you're using a class or struct as the element type, it must be - capable of being copied or moved with a straightforward memcpy, rather than + capable of being copied or moved with a straightforward memcpy, rather than needing construction and destruction code. To make all the set's methods thread-safe, pass in "CriticalSection" as the templated diff --git a/src/juce_core/containers/juce_SparseSet.h b/src/juce_core/containers/juce_SparseSet.h index ac804d4bb4..d1b7ef656f 100644 --- a/src/juce_core/containers/juce_SparseSet.h +++ b/src/juce_core/containers/juce_SparseSet.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/containers/juce_VoidArray.h b/src/juce_core/containers/juce_VoidArray.h index 717828a879..a7e313520f 100644 --- a/src/juce_core/containers/juce_VoidArray.h +++ b/src/juce_core/containers/juce_VoidArray.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/cryptography/juce_BlowFish.cpp b/src/juce_core/cryptography/juce_BlowFish.cpp index 5b0be72e7b..b0a56eb9eb 100644 --- a/src/juce_core/cryptography/juce_BlowFish.cpp +++ b/src/juce_core/cryptography/juce_BlowFish.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/cryptography/juce_BlowFish.h b/src/juce_core/cryptography/juce_BlowFish.h index cd3f9b965a..2f23c95035 100644 --- a/src/juce_core/cryptography/juce_BlowFish.h +++ b/src/juce_core/cryptography/juce_BlowFish.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/cryptography/juce_MD5.cpp b/src/juce_core/cryptography/juce_MD5.cpp index 08cd2b652d..a6dbc2a047 100644 --- a/src/juce_core/cryptography/juce_MD5.cpp +++ b/src/juce_core/cryptography/juce_MD5.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/cryptography/juce_MD5.h b/src/juce_core/cryptography/juce_MD5.h index 861ead3d97..5d86a2eeb3 100644 --- a/src/juce_core/cryptography/juce_MD5.h +++ b/src/juce_core/cryptography/juce_MD5.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/cryptography/juce_Primes.cpp b/src/juce_core/cryptography/juce_Primes.cpp index 82d5827bde..f9a18dfde1 100644 --- a/src/juce_core/cryptography/juce_Primes.cpp +++ b/src/juce_core/cryptography/juce_Primes.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -120,7 +120,7 @@ static bool findCandidate (const BitArray& base, } //============================================================================== -const BitArray Primes::createProbablePrime (const int bitLength, +const BitArray Primes::createProbablePrime (const int bitLength, const int certainty) throw() { BitArray smallSieve; @@ -206,7 +206,7 @@ static bool passesMillerRabin (const BitArray& n, int iterations) throw() return true; } -bool Primes::isProbablyPrime (const BitArray& number, +bool Primes::isProbablyPrime (const BitArray& number, const int certainty) throw() { if (! number[0]) diff --git a/src/juce_core/cryptography/juce_Primes.h b/src/juce_core/cryptography/juce_Primes.h index b5b5708ec2..68a1415693 100644 --- a/src/juce_core/cryptography/juce_Primes.h +++ b/src/juce_core/cryptography/juce_Primes.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/cryptography/juce_RSAKey.cpp b/src/juce_core/cryptography/juce_RSAKey.cpp index e1f12a3734..07045dc8df 100644 --- a/src/juce_core/cryptography/juce_RSAKey.cpp +++ b/src/juce_core/cryptography/juce_RSAKey.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/cryptography/juce_RSAKey.h b/src/juce_core/cryptography/juce_RSAKey.h index 0816ea0176..d0b6bfc1c4 100644 --- a/src/juce_core/cryptography/juce_RSAKey.h +++ b/src/juce_core/cryptography/juce_RSAKey.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/files/juce_DirectoryIterator.cpp b/src/juce_core/io/files/juce_DirectoryIterator.cpp index 1875e29be9..e291728b86 100644 --- a/src/juce_core/io/files/juce_DirectoryIterator.cpp +++ b/src/juce_core/io/files/juce_DirectoryIterator.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/files/juce_DirectoryIterator.h b/src/juce_core/io/files/juce_DirectoryIterator.h index c3947dfe1a..70aa957a6b 100644 --- a/src/juce_core/io/files/juce_DirectoryIterator.h +++ b/src/juce_core/io/files/juce_DirectoryIterator.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/files/juce_File.cpp b/src/juce_core/io/files/juce_File.cpp index 531e1bc96d..3a3a67b574 100644 --- a/src/juce_core/io/files/juce_File.cpp +++ b/src/juce_core/io/files/juce_File.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/files/juce_File.h b/src/juce_core/io/files/juce_File.h index 8168e44f18..f58c42752b 100644 --- a/src/juce_core/io/files/juce_File.h +++ b/src/juce_core/io/files/juce_File.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/files/juce_FileInputStream.cpp b/src/juce_core/io/files/juce_FileInputStream.cpp index 1f59860f34..d499a695cc 100644 --- a/src/juce_core/io/files/juce_FileInputStream.cpp +++ b/src/juce_core/io/files/juce_FileInputStream.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/files/juce_FileInputStream.h b/src/juce_core/io/files/juce_FileInputStream.h index b9cc3b8285..23480325bb 100644 --- a/src/juce_core/io/files/juce_FileInputStream.h +++ b/src/juce_core/io/files/juce_FileInputStream.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/files/juce_FileOutputStream.cpp b/src/juce_core/io/files/juce_FileOutputStream.cpp index 7719e1cabd..453a386aa1 100644 --- a/src/juce_core/io/files/juce_FileOutputStream.cpp +++ b/src/juce_core/io/files/juce_FileOutputStream.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/files/juce_FileOutputStream.h b/src/juce_core/io/files/juce_FileOutputStream.h index b6b55ec649..6439440f18 100644 --- a/src/juce_core/io/files/juce_FileOutputStream.h +++ b/src/juce_core/io/files/juce_FileOutputStream.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/files/juce_FileSearchPath.cpp b/src/juce_core/io/files/juce_FileSearchPath.cpp index 9ef5496b72..164f267de3 100644 --- a/src/juce_core/io/files/juce_FileSearchPath.cpp +++ b/src/juce_core/io/files/juce_FileSearchPath.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/files/juce_FileSearchPath.h b/src/juce_core/io/files/juce_FileSearchPath.h index 334f0eb56a..b45508c793 100644 --- a/src/juce_core/io/files/juce_FileSearchPath.h +++ b/src/juce_core/io/files/juce_FileSearchPath.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/files/juce_NamedPipe.cpp b/src/juce_core/io/files/juce_NamedPipe.cpp index 43c5d30f2b..b3024c6b1b 100644 --- a/src/juce_core/io/files/juce_NamedPipe.cpp +++ b/src/juce_core/io/files/juce_NamedPipe.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/files/juce_NamedPipe.h b/src/juce_core/io/files/juce_NamedPipe.h index dfe1e9f1f3..f7b19cf7d9 100644 --- a/src/juce_core/io/files/juce_NamedPipe.h +++ b/src/juce_core/io/files/juce_NamedPipe.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/juce_InputStream.cpp b/src/juce_core/io/juce_InputStream.cpp index 95642fa62d..b74fe47d11 100644 --- a/src/juce_core/io/juce_InputStream.cpp +++ b/src/juce_core/io/juce_InputStream.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/juce_InputStream.h b/src/juce_core/io/juce_InputStream.h index 9c9e575a8b..76fdff4c72 100644 --- a/src/juce_core/io/juce_InputStream.h +++ b/src/juce_core/io/juce_InputStream.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/juce_OutputStream.cpp b/src/juce_core/io/juce_OutputStream.cpp index 734db4cb1a..181af20fd4 100644 --- a/src/juce_core/io/juce_OutputStream.cpp +++ b/src/juce_core/io/juce_OutputStream.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/juce_OutputStream.h b/src/juce_core/io/juce_OutputStream.h index a752bc5d74..30d13ba7dd 100644 --- a/src/juce_core/io/juce_OutputStream.h +++ b/src/juce_core/io/juce_OutputStream.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/network/juce_Socket.cpp b/src/juce_core/io/network/juce_Socket.cpp index 5fc991d2aa..f55d10c13d 100644 --- a/src/juce_core/io/network/juce_Socket.cpp +++ b/src/juce_core/io/network/juce_Socket.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/network/juce_Socket.h b/src/juce_core/io/network/juce_Socket.h index 0616c33dc0..06d474abe6 100644 --- a/src/juce_core/io/network/juce_Socket.h +++ b/src/juce_core/io/network/juce_Socket.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/network/juce_URL.cpp b/src/juce_core/io/network/juce_URL.cpp index 7b11a61ad9..78da92337b 100644 --- a/src/juce_core/io/network/juce_URL.cpp +++ b/src/juce_core/io/network/juce_URL.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/network/juce_URL.h b/src/juce_core/io/network/juce_URL.h index 224ef72a46..55294d3f35 100644 --- a/src/juce_core/io/network/juce_URL.h +++ b/src/juce_core/io/network/juce_URL.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/streams/juce_BufferedInputStream.cpp b/src/juce_core/io/streams/juce_BufferedInputStream.cpp index f9d4033bf7..7d66144795 100644 --- a/src/juce_core/io/streams/juce_BufferedInputStream.cpp +++ b/src/juce_core/io/streams/juce_BufferedInputStream.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/streams/juce_BufferedInputStream.h b/src/juce_core/io/streams/juce_BufferedInputStream.h index 1bdf4eb947..832fa093c3 100644 --- a/src/juce_core/io/streams/juce_BufferedInputStream.h +++ b/src/juce_core/io/streams/juce_BufferedInputStream.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/streams/juce_GZIPCompressorOutputStream.cpp b/src/juce_core/io/streams/juce_GZIPCompressorOutputStream.cpp index 38927c38df..ba0337788d 100644 --- a/src/juce_core/io/streams/juce_GZIPCompressorOutputStream.cpp +++ b/src/juce_core/io/streams/juce_GZIPCompressorOutputStream.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/streams/juce_GZIPCompressorOutputStream.h b/src/juce_core/io/streams/juce_GZIPCompressorOutputStream.h index d9fa35fec9..d8951c7b7e 100644 --- a/src/juce_core/io/streams/juce_GZIPCompressorOutputStream.h +++ b/src/juce_core/io/streams/juce_GZIPCompressorOutputStream.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/streams/juce_GZIPDecompressorInputStream.cpp b/src/juce_core/io/streams/juce_GZIPDecompressorInputStream.cpp index 39325b6f9e..4b69272ef5 100644 --- a/src/juce_core/io/streams/juce_GZIPDecompressorInputStream.cpp +++ b/src/juce_core/io/streams/juce_GZIPDecompressorInputStream.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/streams/juce_GZIPDecompressorInputStream.h b/src/juce_core/io/streams/juce_GZIPDecompressorInputStream.h index efee10abe0..acfc907538 100644 --- a/src/juce_core/io/streams/juce_GZIPDecompressorInputStream.h +++ b/src/juce_core/io/streams/juce_GZIPDecompressorInputStream.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/streams/juce_MemoryInputStream.cpp b/src/juce_core/io/streams/juce_MemoryInputStream.cpp index 07f5925244..9d41c44937 100644 --- a/src/juce_core/io/streams/juce_MemoryInputStream.cpp +++ b/src/juce_core/io/streams/juce_MemoryInputStream.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/streams/juce_MemoryInputStream.h b/src/juce_core/io/streams/juce_MemoryInputStream.h index b68a0633cb..309ac822af 100644 --- a/src/juce_core/io/streams/juce_MemoryInputStream.h +++ b/src/juce_core/io/streams/juce_MemoryInputStream.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/streams/juce_MemoryOutputStream.cpp b/src/juce_core/io/streams/juce_MemoryOutputStream.cpp index e13967de16..a039e89244 100644 --- a/src/juce_core/io/streams/juce_MemoryOutputStream.cpp +++ b/src/juce_core/io/streams/juce_MemoryOutputStream.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/streams/juce_MemoryOutputStream.h b/src/juce_core/io/streams/juce_MemoryOutputStream.h index c9fa143cbd..d63d4c72d8 100644 --- a/src/juce_core/io/streams/juce_MemoryOutputStream.h +++ b/src/juce_core/io/streams/juce_MemoryOutputStream.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/streams/juce_SubregionStream.cpp b/src/juce_core/io/streams/juce_SubregionStream.cpp index c6146e2cde..8bfeffbe28 100644 --- a/src/juce_core/io/streams/juce_SubregionStream.cpp +++ b/src/juce_core/io/streams/juce_SubregionStream.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/io/streams/juce_SubregionStream.h b/src/juce_core/io/streams/juce_SubregionStream.h index d427de5ee2..5a9992c842 100644 --- a/src/juce_core/io/streams/juce_SubregionStream.h +++ b/src/juce_core/io/streams/juce_SubregionStream.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/misc/juce_PerformanceCounter.cpp b/src/juce_core/misc/juce_PerformanceCounter.cpp index 07ccc0c462..4176cffedb 100644 --- a/src/juce_core/misc/juce_PerformanceCounter.cpp +++ b/src/juce_core/misc/juce_PerformanceCounter.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/misc/juce_PerformanceCounter.h b/src/juce_core/misc/juce_PerformanceCounter.h index e230925a5e..6221e9b0b9 100644 --- a/src/juce_core/misc/juce_PerformanceCounter.h +++ b/src/juce_core/misc/juce_PerformanceCounter.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/misc/juce_PlatformUtilities.h b/src/juce_core/misc/juce_PlatformUtilities.h index 942fa4c862..b15a544214 100644 --- a/src/juce_core/misc/juce_PlatformUtilities.h +++ b/src/juce_core/misc/juce_PlatformUtilities.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -202,7 +202,7 @@ public: Returns true if it managed to open the device. @param inExclusiveMode if true, the remote will be grabbed exclusively for this app, - and will not be available to any other part of the system. If + and will not be available to any other part of the system. If false, it will be shared with other apps. @see stop */ diff --git a/src/juce_core/misc/juce_Uuid.cpp b/src/juce_core/misc/juce_Uuid.cpp index 3b64cb6752..898dc2bcc8 100644 --- a/src/juce_core/misc/juce_Uuid.cpp +++ b/src/juce_core/misc/juce_Uuid.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/misc/juce_Uuid.h b/src/juce_core/misc/juce_Uuid.h index 77b9944747..db10b34ffe 100644 --- a/src/juce_core/misc/juce_Uuid.h +++ b/src/juce_core/misc/juce_Uuid.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/misc/juce_ZipFile.cpp b/src/juce_core/misc/juce_ZipFile.cpp index c267022be6..8c9a459481 100644 --- a/src/juce_core/misc/juce_ZipFile.cpp +++ b/src/juce_core/misc/juce_ZipFile.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/misc/juce_ZipFile.h b/src/juce_core/misc/juce_ZipFile.h index 5895752ac4..1c46623a1d 100644 --- a/src/juce_core/misc/juce_ZipFile.h +++ b/src/juce_core/misc/juce_ZipFile.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/text/juce_CharacterFunctions.cpp b/src/juce_core/text/juce_CharacterFunctions.cpp index 7dbc9a91fe..a52eb0947a 100644 --- a/src/juce_core/text/juce_CharacterFunctions.cpp +++ b/src/juce_core/text/juce_CharacterFunctions.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/text/juce_CharacterFunctions.h b/src/juce_core/text/juce_CharacterFunctions.h index f58b3f662f..13cbd9077e 100644 --- a/src/juce_core/text/juce_CharacterFunctions.h +++ b/src/juce_core/text/juce_CharacterFunctions.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/text/juce_LocalisedStrings.cpp b/src/juce_core/text/juce_LocalisedStrings.cpp index fd77b83c3c..e7f7830808 100644 --- a/src/juce_core/text/juce_LocalisedStrings.cpp +++ b/src/juce_core/text/juce_LocalisedStrings.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/text/juce_LocalisedStrings.h b/src/juce_core/text/juce_LocalisedStrings.h index 309ccda81a..523c84ee44 100644 --- a/src/juce_core/text/juce_LocalisedStrings.h +++ b/src/juce_core/text/juce_LocalisedStrings.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/text/juce_String.cpp b/src/juce_core/text/juce_String.cpp index ab60e0683a..dd719f7e98 100644 --- a/src/juce_core/text/juce_String.cpp +++ b/src/juce_core/text/juce_String.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/text/juce_String.h b/src/juce_core/text/juce_String.h index fcfd830914..dacdf2a4a7 100644 --- a/src/juce_core/text/juce_String.h +++ b/src/juce_core/text/juce_String.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ @@ -996,7 +996,7 @@ public: If the size is < 0, it'll keep reading until it hits a zero. */ - static const String fromUTF8 (const uint8* const utf8buffer, + static const String fromUTF8 (const uint8* const utf8buffer, int bufferSizeBytes = -1) throw(); //============================================================================== diff --git a/src/juce_core/text/juce_StringArray.cpp b/src/juce_core/text/juce_StringArray.cpp index d6cfcccbd3..b6b88ef727 100644 --- a/src/juce_core/text/juce_StringArray.cpp +++ b/src/juce_core/text/juce_StringArray.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/text/juce_StringArray.h b/src/juce_core/text/juce_StringArray.h index d06e3a63c0..e82c92a0c3 100644 --- a/src/juce_core/text/juce_StringArray.h +++ b/src/juce_core/text/juce_StringArray.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/text/juce_StringPairArray.cpp b/src/juce_core/text/juce_StringPairArray.cpp index 2bf2c03f7d..29da9fd04a 100644 --- a/src/juce_core/text/juce_StringPairArray.cpp +++ b/src/juce_core/text/juce_StringPairArray.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/text/juce_StringPairArray.h b/src/juce_core/text/juce_StringPairArray.h index a59e7ecbbf..0293b5e9ac 100644 --- a/src/juce_core/text/juce_StringPairArray.h +++ b/src/juce_core/text/juce_StringPairArray.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/text/juce_XmlDocument.cpp b/src/juce_core/text/juce_XmlDocument.cpp index 4368f31df8..716ded1a7c 100644 --- a/src/juce_core/text/juce_XmlDocument.cpp +++ b/src/juce_core/text/juce_XmlDocument.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/text/juce_XmlDocument.h b/src/juce_core/text/juce_XmlDocument.h index af48ff46b3..967cbbe790 100644 --- a/src/juce_core/text/juce_XmlDocument.h +++ b/src/juce_core/text/juce_XmlDocument.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/text/juce_XmlElement.cpp b/src/juce_core/text/juce_XmlElement.cpp index a615dd94ba..9fc400aba8 100644 --- a/src/juce_core/text/juce_XmlElement.cpp +++ b/src/juce_core/text/juce_XmlElement.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/text/juce_XmlElement.h b/src/juce_core/text/juce_XmlElement.h index 328412186a..713f90ed60 100644 --- a/src/juce_core/text/juce_XmlElement.h +++ b/src/juce_core/text/juce_XmlElement.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/threads/juce_CriticalSection.h b/src/juce_core/threads/juce_CriticalSection.h index 2a5ec57ad9..3a2923777f 100644 --- a/src/juce_core/threads/juce_CriticalSection.h +++ b/src/juce_core/threads/juce_CriticalSection.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/threads/juce_InterProcessLock.cpp b/src/juce_core/threads/juce_InterProcessLock.cpp index 9cf77682d6..08c12505b9 100644 --- a/src/juce_core/threads/juce_InterProcessLock.cpp +++ b/src/juce_core/threads/juce_InterProcessLock.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/threads/juce_InterProcessLock.h b/src/juce_core/threads/juce_InterProcessLock.h index 24fa3ca891..40ff4ae4d3 100644 --- a/src/juce_core/threads/juce_InterProcessLock.h +++ b/src/juce_core/threads/juce_InterProcessLock.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/threads/juce_Process.h b/src/juce_core/threads/juce_Process.h index 1c3a7a07eb..bc0cf2a96e 100644 --- a/src/juce_core/threads/juce_Process.h +++ b/src/juce_core/threads/juce_Process.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/threads/juce_ReadWriteLock.cpp b/src/juce_core/threads/juce_ReadWriteLock.cpp index 914469a62a..2731f8dd88 100644 --- a/src/juce_core/threads/juce_ReadWriteLock.cpp +++ b/src/juce_core/threads/juce_ReadWriteLock.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/threads/juce_ReadWriteLock.h b/src/juce_core/threads/juce_ReadWriteLock.h index 93206eebcf..1ffcafe397 100644 --- a/src/juce_core/threads/juce_ReadWriteLock.h +++ b/src/juce_core/threads/juce_ReadWriteLock.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/threads/juce_ScopedLock.h b/src/juce_core/threads/juce_ScopedLock.h index d79a05d20e..67aace80f1 100644 --- a/src/juce_core/threads/juce_ScopedLock.h +++ b/src/juce_core/threads/juce_ScopedLock.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/threads/juce_ScopedReadLock.h b/src/juce_core/threads/juce_ScopedReadLock.h index 008ba8a93f..2fc8f8a92a 100644 --- a/src/juce_core/threads/juce_ScopedReadLock.h +++ b/src/juce_core/threads/juce_ScopedReadLock.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/threads/juce_ScopedWriteLock.h b/src/juce_core/threads/juce_ScopedWriteLock.h index 0b906730e8..f365d0c4de 100644 --- a/src/juce_core/threads/juce_ScopedWriteLock.h +++ b/src/juce_core/threads/juce_ScopedWriteLock.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/threads/juce_Thread.cpp b/src/juce_core/threads/juce_Thread.cpp index b746f114ab..13823317b6 100644 --- a/src/juce_core/threads/juce_Thread.cpp +++ b/src/juce_core/threads/juce_Thread.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/threads/juce_Thread.h b/src/juce_core/threads/juce_Thread.h index 0b4e5d2139..0c8806661b 100644 --- a/src/juce_core/threads/juce_Thread.h +++ b/src/juce_core/threads/juce_Thread.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/threads/juce_ThreadPool.cpp b/src/juce_core/threads/juce_ThreadPool.cpp index a08b3af4b2..bfbb145729 100644 --- a/src/juce_core/threads/juce_ThreadPool.cpp +++ b/src/juce_core/threads/juce_ThreadPool.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/threads/juce_ThreadPool.h b/src/juce_core/threads/juce_ThreadPool.h index d4110fcf2d..222954c244 100644 --- a/src/juce_core/threads/juce_ThreadPool.h +++ b/src/juce_core/threads/juce_ThreadPool.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/threads/juce_TimeSliceThread.cpp b/src/juce_core/threads/juce_TimeSliceThread.cpp index 4c9408eadf..18a6120d03 100644 --- a/src/juce_core/threads/juce_TimeSliceThread.cpp +++ b/src/juce_core/threads/juce_TimeSliceThread.cpp @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/threads/juce_TimeSliceThread.h b/src/juce_core/threads/juce_TimeSliceThread.h index fe34f5a84f..4d8815bd3b 100644 --- a/src/juce_core/threads/juce_TimeSliceThread.h +++ b/src/juce_core/threads/juce_TimeSliceThread.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core/threads/juce_WaitableEvent.h b/src/juce_core/threads/juce_WaitableEvent.h index b49b1992e4..9e49ec8d2c 100644 --- a/src/juce_core/threads/juce_WaitableEvent.h +++ b/src/juce_core/threads/juce_WaitableEvent.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/src/juce_core_includes.h b/src/juce_core_includes.h index 17f38d8195..b8b53ee4cf 100644 --- a/src/juce_core_includes.h +++ b/src/juce_core_includes.h @@ -17,7 +17,7 @@ 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, + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------