From 52a90374df078be5e4b3345894f58119f83dd184 Mon Sep 17 00:00:00 2001 From: Julian Storer Date: Fri, 23 Sep 2011 15:36:04 +0100 Subject: [PATCH] AU path fix. Minor tweaks. Version number bump. --- .../Project Saving/jucer_ProjectExport_MSVC.h | 8 +++++++- .../Project Saving/jucer_ProjectExporter.h | 1 + modules/juce_audio_basics/juce_module_info | 2 +- modules/juce_audio_devices/juce_module_info | 2 +- modules/juce_audio_formats/juce_module_info | 2 +- .../juce_audio_plugin_client/juce_module_info | 2 +- .../juce_AudioUnitPluginFormat.mm | 6 ++++-- .../juce_audio_processors/juce_module_info | 2 +- modules/juce_audio_utils/juce_module_info | 2 +- modules/juce_browser_plugin/juce_module_info | 2 +- modules/juce_core/juce_module_info | 2 +- .../juce_core/system/juce_StandardHeader.h | 2 +- modules/juce_cryptography/juce_module_info | 2 +- modules/juce_data_structures/juce_module_info | 2 +- .../juce_InterprocessConnection.cpp | 4 +--- modules/juce_events/juce_module_info | 2 +- .../native/juce_android_Messaging.cpp | 2 +- modules/juce_graphics/fonts/juce_Font.cpp | 4 ++-- modules/juce_graphics/juce_module_info | 2 +- modules/juce_gui_basics/juce_module_info | 2 +- modules/juce_gui_extra/juce_module_info | 2 +- modules/juce_opengl/juce_module_info | 2 +- .../opengl/juce_OpenGLFrameBuffer.cpp | 19 ++++++++----------- .../juce_opengl/opengl/juce_OpenGLHelpers.cpp | 5 +++++ .../juce_opengl/opengl/juce_OpenGLHelpers.h | 3 +++ modules/juce_video/juce_module_info | 2 +- 26 files changed, 49 insertions(+), 37 deletions(-) diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_MSVC.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_MSVC.h index c8f2ac216d..d4f9a33b0a 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_MSVC.h +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_MSVC.h @@ -517,7 +517,13 @@ protected: if (! isDebug) xml.setAttribute ("WholeProgramOptimization", "1"); - createToolElement (xml, "VCPreBuildEventTool"); + XmlElement* preBuildEvent = createToolElement (xml, "VCPreBuildEventTool"); + + if (msvcPreBuildDescription.isNotEmpty() || msvcPreBuildCommand.isNotEmpty()) + { + preBuildEvent->setAttribute ("Description", msvcPreBuildDescription); + preBuildEvent->setAttribute ("CommandLine", msvcPreBuildCommand); + } XmlElement* customBuild = createToolElement (xml, "VCCustomBuildTool"); diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.h index c6dd4b6870..77fe469d5d 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.h +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExporter.h @@ -142,6 +142,7 @@ public: bool msvcIsDLL, msvcIsWindowsSubsystem, msvcNeedsDLLRuntimeLib; String msvcExtraLinkerOptions, msvcDelayLoadedDLLs, msvcModuleDefinitionFile; String msvcPostBuildCommand, msvcPostBuildOutputs; + String msvcPreBuildDescription, msvcPreBuildCommand; //============================================================================== StringArray extraSearchPaths; diff --git a/modules/juce_audio_basics/juce_module_info b/modules/juce_audio_basics/juce_module_info index 4472397aed..7a65ad464d 100644 --- a/modules/juce_audio_basics/juce_module_info +++ b/modules/juce_audio_basics/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_audio_basics", "name": "JUCE audio and midi data classes", - "version": "2.0.5", + "version": "2.0.6", "description": "Classes for audio buffer manipulation, midi message handling, synthesis, etc", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_audio_devices/juce_module_info b/modules/juce_audio_devices/juce_module_info index 0b9e84868b..ac87ba3719 100644 --- a/modules/juce_audio_devices/juce_module_info +++ b/modules/juce_audio_devices/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_audio_devices", "name": "JUCE audio and midi I/O device classes", - "version": "2.0.5", + "version": "2.0.6", "description": "Classes to play and record from audio and midi i/o devices.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_audio_formats/juce_module_info b/modules/juce_audio_formats/juce_module_info index a74923b122..c6166396dc 100644 --- a/modules/juce_audio_formats/juce_module_info +++ b/modules/juce_audio_formats/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_audio_formats", "name": "JUCE audio file format codecs", - "version": "2.0.5", + "version": "2.0.6", "description": "Classes for reading and writing various audio file formats.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_audio_plugin_client/juce_module_info b/modules/juce_audio_plugin_client/juce_module_info index d5e555fbef..9543dc01d3 100644 --- a/modules/juce_audio_plugin_client/juce_module_info +++ b/modules/juce_audio_plugin_client/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_audio_plugin_client", "name": "JUCE audio plugin wrapper classes", - "version": "2.0.5", + "version": "2.0.6", "description": "Classes for building VST, RTAS and AU plugins.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm index c9e6ce4bcf..37e217f628 100644 --- a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm +++ b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm @@ -1086,8 +1086,10 @@ private: 0, info, &dataSize) == noErr) { NSString* viewClassName = (NSString*) (info->mCocoaAUViewClass[0]); - NSString* path = (NSString*) CFURLCopyPath (info->mCocoaAUViewBundleLocation); - NSBundle* viewBundle = [NSBundle bundleWithPath: [path autorelease]]; + CFStringRef path = CFURLCopyPath (info->mCocoaAUViewBundleLocation); + NSString* unescapedPath = (NSString*) CFURLCreateStringByReplacingPercentEscapes (0, path, CFSTR ("")); + CFRelease (path); + NSBundle* viewBundle = [NSBundle bundleWithPath: [unescapedPath autorelease]]; Class viewClass = [viewBundle classNamed: viewClassName]; if ([viewClass conformsToProtocol: @protocol (AUCocoaUIBase)] diff --git a/modules/juce_audio_processors/juce_module_info b/modules/juce_audio_processors/juce_module_info index 8c54c30870..239b7fd0c2 100644 --- a/modules/juce_audio_processors/juce_module_info +++ b/modules/juce_audio_processors/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_audio_processors", "name": "JUCE audio plugin hosting classes", - "version": "2.0.5", + "version": "2.0.6", "description": "Classes for loading and playing VST, AU, or internally-generated audio processors.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_audio_utils/juce_module_info b/modules/juce_audio_utils/juce_module_info index bc9da2934a..71f71deb32 100644 --- a/modules/juce_audio_utils/juce_module_info +++ b/modules/juce_audio_utils/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_audio_utils", "name": "JUCE extra audio utility classes", - "version": "2.0.5", + "version": "2.0.6", "description": "Classes for audio-related GUI and miscellaneous tasks.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_browser_plugin/juce_module_info b/modules/juce_browser_plugin/juce_module_info index aae720a1c4..bf9c939813 100644 --- a/modules/juce_browser_plugin/juce_module_info +++ b/modules/juce_browser_plugin/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_browser_plugin_client", "name": "JUCE browser plugin wrapper classes", - "version": "2.0.5", + "version": "2.0.6", "description": "Classes for building NPAPI and ActiveX browser plugins.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_core/juce_module_info b/modules/juce_core/juce_module_info index 24e69c9947..0fb5b26a8a 100644 --- a/modules/juce_core/juce_module_info +++ b/modules/juce_core/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_core", "name": "JUCE core classes", - "version": "2.0.5", + "version": "2.0.6", "description": "The essential set of basic JUCE classes, as required by all the other JUCE modules. Includes text, container, memory, threading and i/o functionality.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_core/system/juce_StandardHeader.h b/modules/juce_core/system/juce_StandardHeader.h index fa8f627973..94256608e7 100644 --- a/modules/juce_core/system/juce_StandardHeader.h +++ b/modules/juce_core/system/juce_StandardHeader.h @@ -33,7 +33,7 @@ */ #define JUCE_MAJOR_VERSION 2 #define JUCE_MINOR_VERSION 0 -#define JUCE_BUILDNUMBER 5 +#define JUCE_BUILDNUMBER 6 /** Current Juce version number. diff --git a/modules/juce_cryptography/juce_module_info b/modules/juce_cryptography/juce_module_info index eb6ad54a35..99c6768c8f 100644 --- a/modules/juce_cryptography/juce_module_info +++ b/modules/juce_cryptography/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_cryptography", "name": "JUCE cryptography classes", - "version": "2.0.5", + "version": "2.0.6", "description": "Classes for various basic cryptography functions, including RSA, Blowfish, MD5, SHA, etc.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_data_structures/juce_module_info b/modules/juce_data_structures/juce_module_info index 4299afa72e..dbb2c92ba6 100644 --- a/modules/juce_data_structures/juce_module_info +++ b/modules/juce_data_structures/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_data_structures", "name": "JUCE data model helper classes", - "version": "2.0.5", + "version": "2.0.6", "description": "Classes for undo/redo management, and smart data structures.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_events/interprocess/juce_InterprocessConnection.cpp b/modules/juce_events/interprocess/juce_InterprocessConnection.cpp index 23fcb485b8..3359bd914b 100644 --- a/modules/juce_events/interprocess/juce_InterprocessConnection.cpp +++ b/modules/juce_events/interprocess/juce_InterprocessConnection.cpp @@ -193,8 +193,7 @@ void InterprocessConnection::initialiseWithPipe (NamedPipe* const pipe_) //============================================================================== struct ConnectionStateMessage : public Message { -public: - ConnectionStateMessage (bool connectionMade_) + ConnectionStateMessage (bool connectionMade_) noexcept : connectionMade (connectionMade_) {} @@ -203,7 +202,6 @@ public: struct DataDeliveryMessage : public Message { -public: DataDeliveryMessage (const MemoryBlock& data_) : data (data_) {} diff --git a/modules/juce_events/juce_module_info b/modules/juce_events/juce_module_info index 70b1de4403..b1c8ae12a8 100644 --- a/modules/juce_events/juce_module_info +++ b/modules/juce_events/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_events", "name": "JUCE message and event handling classes", - "version": "2.0.5", + "version": "2.0.6", "description": "Classes for running an application's main event loop and sending/receiving messages, timers, etc.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_events/native/juce_android_Messaging.cpp b/modules/juce_events/native/juce_android_Messaging.cpp index 76fdc71748..95fa894975 100644 --- a/modules/juce_events/native/juce_android_Messaging.cpp +++ b/modules/juce_events/native/juce_android_Messaging.cpp @@ -78,7 +78,7 @@ private: void* volatile result; AsyncFunctionCaller (MessageCallbackFunction* func_, void* parameter_) - : result (0), func (func_), parameter (parameter_) + : result (nullptr), func (func_), parameter (parameter_) {} JUCE_DECLARE_NON_COPYABLE (AsyncFunctionCaller); diff --git a/modules/juce_graphics/fonts/juce_Font.cpp b/modules/juce_graphics/fonts/juce_Font.cpp index 7670bf102d..189a53f440 100644 --- a/modules/juce_graphics/fonts/juce_Font.cpp +++ b/modules/juce_graphics/fonts/juce_Font.cpp @@ -38,7 +38,7 @@ namespace FontValues } typedef Typeface::Ptr (*GetTypefaceForFont) (const Font&); -GetTypefaceForFont juce_getTypefaceForFont = 0; +GetTypefaceForFont juce_getTypefaceForFont = nullptr; //============================================================================== class TypefaceCache : public DeletedAtShutdown @@ -101,7 +101,7 @@ public: face.flags = flags; face.lastUsageCount = ++counter; - if (juce_getTypefaceForFont == 0) + if (juce_getTypefaceForFont == nullptr) face.typeface = Font::getDefaultTypefaceForFont (font); else face.typeface = juce_getTypefaceForFont (font); diff --git a/modules/juce_graphics/juce_module_info b/modules/juce_graphics/juce_module_info index 39a1e36d93..34b2ed32dc 100644 --- a/modules/juce_graphics/juce_module_info +++ b/modules/juce_graphics/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_graphics", "name": "JUCE graphics classes", - "version": "2.0.5", + "version": "2.0.6", "description": "Classes for 2D vector graphics, image loading/saving, font handling, etc.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_gui_basics/juce_module_info b/modules/juce_gui_basics/juce_module_info index 4880d7f734..19617588a8 100644 --- a/modules/juce_gui_basics/juce_module_info +++ b/modules/juce_gui_basics/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_gui_basics", "name": "JUCE GUI core classes", - "version": "2.0.5", + "version": "2.0.6", "description": "Basic user-interface components and related classes.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_gui_extra/juce_module_info b/modules/juce_gui_extra/juce_module_info index 9ef35a63fe..89b51a549a 100644 --- a/modules/juce_gui_extra/juce_module_info +++ b/modules/juce_gui_extra/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_gui_extra", "name": "JUCE extended GUI classes", - "version": "2.0.5", + "version": "2.0.6", "description": "Miscellaneous GUI classes for specialised tasks.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_opengl/juce_module_info b/modules/juce_opengl/juce_module_info index c9c5a574b2..092ded5573 100644 --- a/modules/juce_opengl/juce_module_info +++ b/modules/juce_opengl/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_opengl", "name": "JUCE OpenGL classes", - "version": "2.0.5", + "version": "2.0.6", "description": "Classes for rendering OpenGL in a JUCE window.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial", diff --git a/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp b/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp index be560caf67..f7941b86bc 100644 --- a/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp +++ b/modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp @@ -80,14 +80,15 @@ static void initialiseFrameBufferFunctions() framebufferFunctionsInitialised = true; #if JUCE_LINUX - #define lookUpFunction(name) glXGetProcAddress ((const GLubyte*) name) + #define JUCE_LOOKUP_FUNCTION(name) glXGetProcAddress ((const GLubyte*) name) #else - #define lookUpFunction(name) wglGetProcAddress (name) + #define JUCE_LOOKUP_FUNCTION(name) wglGetProcAddress (name) #endif - #define FIND_FUNCTION(name, returnType, params) name = (type_ ## name) lookUpFunction (#name); + #define FIND_FUNCTION(name, returnType, params) name = (type_ ## name) JUCE_LOOKUP_FUNCTION (#name); FRAMEBUFFER_FUNCTION_LIST (FIND_FUNCTION) #undef FIND_FUNCTION + #undef JUCE_LOOKUP_FUNCTION } } @@ -125,6 +126,7 @@ static void initialiseFrameBufferFunctions() #define GL_FRAMEBUFFER_COMPLETE_EXT GL_FRAMEBUFFER_COMPLETE_OES #define GL_FRAMEBUFFER_UNSUPPORTED_EXT GL_FRAMEBUFFER_UNSUPPORTED_OES #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES + #endif //============================================================================== @@ -150,7 +152,7 @@ public: return; #endif - resetGLErrorState(); + OpenGLHelpers::resetErrorState(); glGenFramebuffersEXT (1, &frameBufferHandle); glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, frameBufferHandle); @@ -159,8 +161,8 @@ public: glBindTexture (textureType, textureID); glTexImage2D (textureType, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0); - glTexParameterf (textureType, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameterf (textureType, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameterf (textureType, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameterf (textureType, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameterf (textureType, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameterf (textureType, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); @@ -245,11 +247,6 @@ private: || status == GL_FRAMEBUFFER_COMPLETE_EXT; } - static void resetGLErrorState() - { - while (glGetError() != GL_NO_ERROR) {} - } - JUCE_DECLARE_NON_COPYABLE (Pimpl); }; diff --git a/modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp b/modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp index f332e6439f..9fef6e6092 100644 --- a/modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp +++ b/modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp @@ -25,6 +25,11 @@ BEGIN_JUCE_NAMESPACE +void OpenGLHelpers::resetErrorState() +{ + while (glGetError() != GL_NO_ERROR) {} +} + void OpenGLHelpers::clear (const Colour& colour) { glClearColor (colour.getFloatRed(), colour.getFloatGreen(), diff --git a/modules/juce_opengl/opengl/juce_OpenGLHelpers.h b/modules/juce_opengl/opengl/juce_OpenGLHelpers.h index dcd926d32a..4b5ba70d50 100644 --- a/modules/juce_opengl/opengl/juce_OpenGLHelpers.h +++ b/modules/juce_opengl/opengl/juce_OpenGLHelpers.h @@ -32,6 +32,9 @@ class JUCE_API OpenGLHelpers { public: + /** Clears the GL error state. */ + static void resetErrorState(); + /** Clears the current context using the given colour. */ static void clear (const Colour& colour); diff --git a/modules/juce_video/juce_module_info b/modules/juce_video/juce_module_info index e477fe5ece..569991ef70 100644 --- a/modules/juce_video/juce_module_info +++ b/modules/juce_video/juce_module_info @@ -1,7 +1,7 @@ { "id": "juce_video", "name": "JUCE video playback and capture classes", - "version": "2.0.5", + "version": "2.0.6", "description": "Classes for playing video and capturing camera input.", "website": "http://www.juce.com/juce", "license": "GPL/Commercial",