diff --git a/juce_amalgamated.cpp b/juce_amalgamated.cpp index 6a160f9905..ff8c519adc 100644 --- a/juce_amalgamated.cpp +++ b/juce_amalgamated.cpp @@ -31670,7 +31670,7 @@ static void* NewCFMFromMachO (void* const machofp) throw() #if JUCE_LINUX extern Display* display; -extern XContext improbableNumber; +extern XContext windowHandleXContext; typedef void (*EventProcPtr) (XEvent* ev); @@ -249222,14 +249222,6 @@ END_JUCE_NAMESPACE BEGIN_JUCE_NAMESPACE -/* Remove this macro if you're having problems compiling the cpu affinity - calls (the API for these has changed about quite a bit in various Linux - versions, and a lot of distros seem to ship with obsolete versions) -*/ -#if defined (CPU_ISSET) && ! defined (SUPPORT_AFFINITIES) - #define SUPPORT_AFFINITIES 1 -#endif - #define JUCE_INCLUDED_FILE 1 // Now include the actual code files.. @@ -251069,6 +251061,14 @@ bool juce_setThreadPriority (void* handle, int priority) return false; } +/* Remove this macro if you're having problems compiling the cpu affinity + calls (the API for these has changed about quite a bit in various Linux + versions, and a lot of distros seem to ship with obsolete versions) +*/ +#if defined (CPU_ISSET) && ! defined (SUPPORT_AFFINITIES) + #define SUPPORT_AFFINITIES 1 +#endif + void Thread::setCurrentThreadAffinityMask (const uint32 affinityMask) { #if SUPPORT_AFFINITIES @@ -251084,15 +251084,14 @@ void Thread::setCurrentThreadAffinityMask (const uint32 affinityMask) version of glibc installed. If you don't want to update your copy of glibc and don't care about cpu affinities, - then you can just disable all this stuff by removing the SUPPORT_AFFINITIES macro - from the linuxincludes.h file. + then you can just disable all this stuff by setting the SUPPORT_AFFINITIES macro to 0. */ sched_setaffinity (getpid(), sizeof (cpu_set_t), &affinity); sched_yield(); #else /* affinities aren't supported because either the appropriate header files weren't found, - or the SUPPORT_AFFINITIES macro was turned off in linuxheaders.h + or the SUPPORT_AFFINITIES macro was turned off */ jassertfalse #endif diff --git a/juce_amalgamated.h b/juce_amalgamated.h index b9e6429832..cc6613224e 100644 --- a/juce_amalgamated.h +++ b/juce_amalgamated.h @@ -660,6 +660,8 @@ #define forcedinline inline #endif + #define JUCE_ALIGN(bytes) __declspec (align (bytes)) + #else /** A platform-independent way of forcing an inline function. @@ -673,6 +675,8 @@ #define forcedinline inline #endif + #define JUCE_ALIGN(bytes) __attribute__ ((aligned (bytes))) + #endif #endif // __JUCE_PLATFORMDEFS_JUCEHEADER__ @@ -5643,7 +5647,7 @@ public: This operation is the atomic equivalent of doing this: @code - bool compareAndSetBool (Type newValue, Type valueToCompare) throw(); + bool compareAndSetBool (Type newValue, Type valueToCompare) { if (get() == valueToCompare) { @@ -5666,7 +5670,7 @@ public: This operation is the atomic equivalent of doing this: @code - Type compareAndSetValue (Type newValue, Type valueToCompare) throw(); + Type compareAndSetValue (Type newValue, Type valueToCompare) { Type oldValue = get(); if (oldValue == valueToCompare) @@ -5681,14 +5685,10 @@ public: */ Type compareAndSetValue (Type newValue, Type valueToCompare) throw(); - /** Performs a memory write barrier. */ + /** Implements a memory read/write barrier. */ static void memoryBarrier() throw(); - #if JUCE_MSVC - __declspec (align (8)) - #else - __attribute__ ((aligned (8))) - #endif + JUCE_ALIGN(8) /** The raw value that this class operates on. This is exposed publically in case you need to manipulate it directly @@ -5759,7 +5759,7 @@ inline void Atomic::set (const Type newValue) throw() } template -Type Atomic::exchange (const Type newValue) throw() +inline Type Atomic::exchange (const Type newValue) throw() { #if JUCE_ATOMICS_MAC || JUCE_ATOMICS_GCC Type currentVal = value; @@ -19819,8 +19819,6 @@ public: /** Finds the point on this line which is nearest to a given point, and returns its position as a proportional position along the line. - @param x x position of the point to test - @param y y position of the point to test @returns a value 0 to 1.0 which is the distance along this line from the line's start to the point which is nearest to the point passed-in. To turn this number into a position, use getPointAlongLineProportionally(). @@ -20933,6 +20931,7 @@ public: line would need to be cut into multiple pieces to correctly clip against a re-entrant shape. + @param line the line to clip @param keepSectionOutsidePath if true, it's the section outside the path that will be kept; if false its the section inside the path diff --git a/src/audio/plugins/formats/juce_VSTPluginFormat.cpp b/src/audio/plugins/formats/juce_VSTPluginFormat.cpp index f674775faa..806f0d477d 100644 --- a/src/audio/plugins/formats/juce_VSTPluginFormat.cpp +++ b/src/audio/plugins/formats/juce_VSTPluginFormat.cpp @@ -238,7 +238,7 @@ static void* NewCFMFromMachO (void* const machofp) throw() #if JUCE_LINUX extern Display* display; -extern XContext improbableNumber; +extern XContext windowHandleXContext; typedef void (*EventProcPtr) (XEvent* ev); diff --git a/src/core/juce_Atomic.h b/src/core/juce_Atomic.h index 9ef71b0466..730c4000cb 100644 --- a/src/core/juce_Atomic.h +++ b/src/core/juce_Atomic.h @@ -95,7 +95,7 @@ public: This operation is the atomic equivalent of doing this: @code - bool compareAndSetBool (Type newValue, Type valueToCompare) throw(); + bool compareAndSetBool (Type newValue, Type valueToCompare) { if (get() == valueToCompare) { @@ -118,7 +118,7 @@ public: This operation is the atomic equivalent of doing this: @code - Type compareAndSetValue (Type newValue, Type valueToCompare) throw(); + Type compareAndSetValue (Type newValue, Type valueToCompare) { Type oldValue = get(); if (oldValue == valueToCompare) @@ -133,15 +133,11 @@ public: */ Type compareAndSetValue (Type newValue, Type valueToCompare) throw(); - /** Performs a memory write barrier. */ + /** Implements a memory read/write barrier. */ static void memoryBarrier() throw(); //============================================================================== - #if JUCE_MSVC - __declspec (align (8)) - #else - __attribute__ ((aligned (8))) - #endif + JUCE_ALIGN(8) /** The raw value that this class operates on. This is exposed publically in case you need to manipulate it directly @@ -215,7 +211,7 @@ inline void Atomic::set (const Type newValue) throw() } template -Type Atomic::exchange (const Type newValue) throw() +inline Type Atomic::exchange (const Type newValue) throw() { #if JUCE_ATOMICS_MAC || JUCE_ATOMICS_GCC Type currentVal = value; diff --git a/src/core/juce_PlatformDefs.h b/src/core/juce_PlatformDefs.h index 4458137141..c9774e8bcd 100644 --- a/src/core/juce_PlatformDefs.h +++ b/src/core/juce_PlatformDefs.h @@ -200,6 +200,8 @@ #define forcedinline inline #endif + #define JUCE_ALIGN(bytes) __declspec (align (bytes)) + #else /** A platform-independent way of forcing an inline function. @@ -213,6 +215,8 @@ #define forcedinline inline #endif + #define JUCE_ALIGN(bytes) __attribute__ ((aligned (bytes))) + #endif #endif // __JUCE_PLATFORMDEFS_JUCEHEADER__ diff --git a/src/gui/graphics/geometry/juce_Line.h b/src/gui/graphics/geometry/juce_Line.h index c559644113..40be117e6c 100644 --- a/src/gui/graphics/geometry/juce_Line.h +++ b/src/gui/graphics/geometry/juce_Line.h @@ -247,8 +247,6 @@ public: /** Finds the point on this line which is nearest to a given point, and returns its position as a proportional position along the line. - @param x x position of the point to test - @param y y position of the point to test @returns a value 0 to 1.0 which is the distance along this line from the line's start to the point which is nearest to the point passed-in. To turn this number into a position, use getPointAlongLineProportionally(). diff --git a/src/gui/graphics/geometry/juce_Path.h b/src/gui/graphics/geometry/juce_Path.h index 22ea0bb9b5..13cd443b5b 100644 --- a/src/gui/graphics/geometry/juce_Path.h +++ b/src/gui/graphics/geometry/juce_Path.h @@ -150,6 +150,7 @@ public: line would need to be cut into multiple pieces to correctly clip against a re-entrant shape. + @param line the line to clip @param keepSectionOutsidePath if true, it's the section outside the path that will be kept; if false its the section inside the path diff --git a/src/native/juce_linux_NativeCode.cpp b/src/native/juce_linux_NativeCode.cpp index 6a8fcdc7d6..abb57f1f31 100644 --- a/src/native/juce_linux_NativeCode.cpp +++ b/src/native/juce_linux_NativeCode.cpp @@ -39,60 +39,53 @@ BEGIN_JUCE_NAMESPACE //============================================================================== -#include "../io/files/juce_FileInputStream.h" -#include "../io/files/juce_FileOutputStream.h" #include "../core/juce_SystemStats.h" #include "../core/juce_Time.h" #include "../core/juce_Random.h" -#include "../io/network/juce_URL.h" -#include "../io/files/juce_NamedPipe.h" -#include "../io/streams/juce_MemoryOutputStream.h" -#include "../threads/juce_InterProcessLock.h" -#include "../audio/devices/juce_AudioIODeviceType.h" +#include "../core/juce_Singleton.h" +#include "../core/juce_PlatformUtilities.h" +#include "../containers/juce_MemoryBlock.h" +#include "../utilities/juce_DeletedAtShutdown.h" +#include "../utilities/juce_SystemClipboard.h" +#include "../text/juce_StringArray.h" +#include "../text/juce_XmlDocument.h" +#include "../threads/juce_CriticalSection.h" #include "../threads/juce_Thread.h" #include "../threads/juce_ScopedLock.h" +#include "../threads/juce_InterProcessLock.h" +#include "../threads/juce_WaitableEvent.h" +#include "../threads/juce_Process.h" #include "../io/files/juce_File.h" -#include "../core/juce_Singleton.h" -#include "../audio/dsp/juce_AudioDataConverters.h" -#include "../audio/audio_file_formats/juce_AudioCDReader.h" -#include "../gui/graphics/fonts/juce_Font.h" -#include "../io/streams/juce_MemoryInputStream.h" +#include "../io/files/juce_NamedPipe.h" +#include "../io/files/juce_FileInputStream.h" +#include "../io/files/juce_FileOutputStream.h" #include "../io/files/juce_DirectoryIterator.h" -#include "../text/juce_XmlDocument.h" -#include "../utilities/juce_DeletedAtShutdown.h" +#include "../io/network/juce_URL.h" +#include "../io/streams/juce_MemoryInputStream.h" +#include "../io/streams/juce_MemoryOutputStream.h" #include "../events/juce_MessageManager.h" -#include "../threads/juce_WaitableEvent.h" -#include "../threads/juce_Process.h" -#include "../gui/components/filebrowser/juce_FileChooser.h" +#include "../events/juce_Timer.h" +#include "../application/juce_Application.h" +#include "../audio/dsp/juce_AudioSampleBuffer.h" +#include "../audio/dsp/juce_AudioDataConverters.h" +#include "../audio/audio_file_formats/juce_AudioCDReader.h" +#include "../audio/devices/juce_AudioIODeviceType.h" #include "../audio/devices/juce_MidiOutput.h" #include "../audio/devices/juce_MidiInput.h" -#include "../text/juce_StringArray.h" -#include "../containers/juce_MemoryBlock.h" -#include "../core/juce_PlatformUtilities.h" -#include "../threads/juce_CriticalSection.h" -#include "../events/juce_Timer.h" -#include "../gui/components/special/juce_WebBrowserComponent.h" -#include "../gui/components/keyboard/juce_KeyPress.h" -#include "../utilities/juce_SystemClipboard.h" -#include "../gui/components/windows/juce_ComponentPeer.h" -#include "../gui/components/windows/juce_AlertWindow.h" -#include "../gui/components/special/juce_OpenGLComponent.h" -#include "../gui/components/juce_Desktop.h" -#include "../gui/components/mouse/juce_MouseInputSource.h" +#include "../gui/graphics/fonts/juce_Font.h" #include "../gui/graphics/geometry/juce_RectangleList.h" #include "../gui/graphics/imaging/juce_ImageFileFormat.h" #include "../gui/graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h" +#include "../gui/components/juce_Desktop.h" +#include "../gui/components/mouse/juce_MouseInputSource.h" #include "../gui/components/mouse/juce_DragAndDropContainer.h" +#include "../gui/components/keyboard/juce_KeyPress.h" +#include "../gui/components/windows/juce_ComponentPeer.h" +#include "../gui/components/windows/juce_AlertWindow.h" +#include "../gui/components/filebrowser/juce_FileChooser.h" +#include "../gui/components/special/juce_WebBrowserComponent.h" +#include "../gui/components/special/juce_OpenGLComponent.h" #include "../gui/components/special/juce_SystemTrayIconComponent.h" -#include "../application/juce_Application.h" - -/* Remove this macro if you're having problems compiling the cpu affinity - calls (the API for these has changed about quite a bit in various Linux - versions, and a lot of distros seem to ship with obsolete versions) -*/ -#if defined (CPU_ISSET) && ! defined (SUPPORT_AFFINITIES) - #define SUPPORT_AFFINITIES 1 -#endif //============================================================================== #define JUCE_INCLUDED_FILE 1 diff --git a/src/native/linux/juce_linux_Threads.cpp b/src/native/linux/juce_linux_Threads.cpp index ed07523a89..a32760b1b0 100644 --- a/src/native/linux/juce_linux_Threads.cpp +++ b/src/native/linux/juce_linux_Threads.cpp @@ -119,6 +119,14 @@ bool juce_setThreadPriority (void* handle, int priority) return false; } +/* Remove this macro if you're having problems compiling the cpu affinity + calls (the API for these has changed about quite a bit in various Linux + versions, and a lot of distros seem to ship with obsolete versions) +*/ +#if defined (CPU_ISSET) && ! defined (SUPPORT_AFFINITIES) + #define SUPPORT_AFFINITIES 1 +#endif + void Thread::setCurrentThreadAffinityMask (const uint32 affinityMask) { #if SUPPORT_AFFINITIES @@ -134,15 +142,14 @@ void Thread::setCurrentThreadAffinityMask (const uint32 affinityMask) version of glibc installed. If you don't want to update your copy of glibc and don't care about cpu affinities, - then you can just disable all this stuff by removing the SUPPORT_AFFINITIES macro - from the linuxincludes.h file. + then you can just disable all this stuff by setting the SUPPORT_AFFINITIES macro to 0. */ sched_setaffinity (getpid(), sizeof (cpu_set_t), &affinity); sched_yield(); #else /* affinities aren't supported because either the appropriate header files weren't found, - or the SUPPORT_AFFINITIES macro was turned off in linuxheaders.h + or the SUPPORT_AFFINITIES macro was turned off */ jassertfalse #endif