| @@ -506,8 +506,16 @@ | |||
| #define WIN32_LEAN_AND_MEAN 1 | |||
| #if JUCE_MSVC | |||
| #pragma warning (push) | |||
| #pragma warning (disable : 4100 4201 4514 4312 4995) | |||
| #ifndef _CPPRTTI | |||
| #error "You're compiling without RTTI enabled! This is needed for a lot of JUCE classes, please update your compiler settings!" | |||
| #endif | |||
| #ifndef _CPPUNWIND | |||
| #error "You're compiling without exceptions enabled! This is needed for a lot of JUCE classes, please update your compiler settings!" | |||
| #endif | |||
| #pragma warning (push) | |||
| #pragma warning (disable : 4100 4201 4514 4312 4995) | |||
| #endif | |||
| #define _WIN32_WINNT 0x0500 | |||
| @@ -33480,14 +33488,7 @@ public: | |||
| events.realloc (size, 1); | |||
| for (int i = numEventsAllocated; i < numEventsNeeded; ++i) | |||
| { | |||
| VstMidiEvent* const e = (VstMidiEvent*) juce_calloc (jmax ((int) sizeof (VstMidiEvent), | |||
| (int) sizeof (VstMidiSysexEvent))); | |||
| e->type = kVstMidiType; | |||
| e->byteSize = sizeof (VstMidiEvent); | |||
| events->events[i] = (VstEvent*) e; | |||
| } | |||
| events->events[i] = allocateVSTEvent(); | |||
| numEventsAllocated = numEventsNeeded; | |||
| } | |||
| @@ -33498,14 +33499,7 @@ public: | |||
| if (events != nullptr) | |||
| { | |||
| for (int i = numEventsAllocated; --i >= 0;) | |||
| { | |||
| VstMidiEvent* const e = (VstMidiEvent*) (events->events[i]); | |||
| if (e->type == kVstSysExType) | |||
| delete[] (((VstMidiSysexEvent*) e)->sysexDump); | |||
| juce_free (e); | |||
| } | |||
| freeVSTEvent (events->events[i]); | |||
| events.free(); | |||
| numEventsUsed = 0; | |||
| @@ -33517,6 +33511,23 @@ public: | |||
| private: | |||
| int numEventsUsed, numEventsAllocated; | |||
| static VstEvent* allocateVSTEvent() | |||
| { | |||
| VstEvent* const e = (VstEvent*) ::calloc (1, sizeof (VstMidiEvent) > sizeof (VstMidiSysexEvent) ? sizeof (VstMidiEvent) | |||
| : sizeof (VstMidiSysexEvent)); | |||
| e->type = kVstMidiType; | |||
| e->byteSize = sizeof (VstMidiEvent); | |||
| return e; | |||
| } | |||
| static void freeVSTEvent (VstEvent* e) | |||
| { | |||
| if (e->type == kVstSysExType) | |||
| delete[] (((VstMidiSysexEvent*) e)->sysexDump); | |||
| ::free (e); | |||
| } | |||
| }; | |||
| #endif // __JUCE_VSTMIDIEVENTLIST_JUCEHEADER__ | |||
| @@ -246256,23 +246267,6 @@ void MessageManager::broadcastMessage (const String& value) | |||
| void MessageManager::doPlatformSpecificInitialisation() | |||
| { | |||
| #if JUCE_DEBUG | |||
| try // This section is just a safety-net for catching builds without RTTI enabled.. | |||
| { | |||
| MemoryOutputStream mo; | |||
| OutputStream* o = &mo; | |||
| // Got an exception here? Then TURN ON RTTI in your compiler settings!! | |||
| o = dynamic_cast <MemoryOutputStream*> (o); | |||
| jassert (o != nullptr); | |||
| } | |||
| catch (...) | |||
| { | |||
| // Ended up here? If so, TURN ON RTTI in your compiler settings!! | |||
| jassertfalse; | |||
| } | |||
| #endif | |||
| OleInitialize (0); | |||
| // this name has to be different for each app/dll instance because otherwise | |||
| @@ -263674,10 +263668,10 @@ namespace Visuals | |||
| if (desiredDepth == 32) | |||
| { | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| if (XSHMHelpers::isShmAvailable()) | |||
| { | |||
| #if JUCE_USE_XRENDER | |||
| #if JUCE_USE_XRENDER | |||
| if (XRender::isAvailable()) | |||
| { | |||
| XRenderPictFormat* pictFormat = XRender::findPictureFormat(); | |||
| @@ -263713,7 +263707,7 @@ namespace Visuals | |||
| } | |||
| } | |||
| } | |||
| #endif | |||
| #endif | |||
| if (visual == 0) | |||
| { | |||
| visual = findVisualWithDepth (32); | |||
| @@ -263721,7 +263715,7 @@ namespace Visuals | |||
| matchedDepth = 32; | |||
| } | |||
| } | |||
| #endif | |||
| #endif | |||
| } | |||
| if (visual == 0 && desiredDepth >= 24) | |||
| @@ -263759,7 +263753,7 @@ public: | |||
| ScopedXLock xlock; | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| usingXShm = false; | |||
| if ((imageDepth > 16) && XSHMHelpers::isShmAvailable()) | |||
| @@ -263804,12 +263798,12 @@ public: | |||
| } | |||
| if (! usingXShm) | |||
| #endif | |||
| #endif | |||
| { | |||
| imageDataAllocated.allocate (lineStride * h, format_ == Image::ARGB && clearImage); | |||
| imageData = imageDataAllocated; | |||
| xImage = (XImage*) juce_calloc (sizeof (XImage)); | |||
| xImage = (XImage*) ::calloc (1, sizeof (XImage)); | |||
| xImage->width = w; | |||
| xImage->height = h; | |||
| @@ -263855,7 +263849,7 @@ public: | |||
| if (gc != None) | |||
| XFreeGC (display, gc); | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| if (usingXShm) | |||
| { | |||
| XShmDetach (display, &segmentInfo); | |||
| @@ -263867,7 +263861,7 @@ public: | |||
| shmctl (segmentInfo.shmid, IPC_RMID, 0); | |||
| } | |||
| else | |||
| #endif | |||
| #endif | |||
| { | |||
| xImage->data = nullptr; | |||
| XDestroyImage (xImage); | |||
| @@ -264387,9 +264381,9 @@ public: | |||
| void toBehind (ComponentPeer* other) | |||
| { | |||
| LinuxComponentPeer* const otherPeer = dynamic_cast <LinuxComponentPeer*> (other); | |||
| jassert (otherPeer != 0); // wrong type of window? | |||
| jassert (otherPeer != nullptr); // wrong type of window? | |||
| if (otherPeer != 0) | |||
| if (otherPeer != nullptr) | |||
| { | |||
| setMinimised (false); | |||
| @@ -265025,7 +265019,7 @@ private: | |||
| : peer (peer_), | |||
| lastTimeImageUsed (0) | |||
| { | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| shmCompletedDrawing = true; | |||
| useARGBImagesForRendering = XSHMHelpers::isShmAvailable(); | |||
| @@ -265042,15 +265036,15 @@ private: | |||
| useARGBImagesForRendering = (testImage->bits_per_pixel == 32); | |||
| XDestroyImage (testImage); | |||
| } | |||
| #endif | |||
| #endif | |||
| } | |||
| void timerCallback() | |||
| { | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| if (! shmCompletedDrawing) | |||
| return; | |||
| #endif | |||
| #endif | |||
| if (! regionsNeedingRepaint.isEmpty()) | |||
| { | |||
| stopTimer(); | |||
| @@ -265073,13 +265067,13 @@ private: | |||
| void performAnyPendingRepaintsNow() | |||
| { | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| if (! shmCompletedDrawing) | |||
| { | |||
| startTimer (repaintTimerPeriod); | |||
| return; | |||
| } | |||
| #endif | |||
| #endif | |||
| peer->clearMaskedRegion(); | |||
| @@ -265092,12 +265086,12 @@ private: | |||
| if (image.isNull() || image.getWidth() < totalArea.getWidth() | |||
| || image.getHeight() < totalArea.getHeight()) | |||
| { | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| image = Image (new XBitmapImage (useARGBImagesForRendering ? Image::ARGB | |||
| : Image::RGB, | |||
| #else | |||
| #else | |||
| image = Image (new XBitmapImage (Image::RGB, | |||
| #endif | |||
| #endif | |||
| (totalArea.getWidth() + 31) & ~31, | |||
| (totalArea.getHeight() + 31) & ~31, | |||
| false, peer->depth, peer->visual)); | |||
| @@ -265124,9 +265118,9 @@ private: | |||
| for (RectangleList::Iterator i (originalRepaintRegion); i.next();) | |||
| { | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| shmCompletedDrawing = false; | |||
| #endif | |||
| #endif | |||
| const Rectangle<int>& r = *i.getRectangle(); | |||
| static_cast<XBitmapImage*> (image.getSharedImage()) | |||
| @@ -265140,9 +265134,9 @@ private: | |||
| startTimer (repaintTimerPeriod); | |||
| } | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| void notifyPaintCompleted() { shmCompletedDrawing = true; } | |||
| #endif | |||
| #endif | |||
| private: | |||
| enum { repaintTimerPeriod = 1000 / 100 }; | |||
| @@ -265152,9 +265146,9 @@ private: | |||
| uint32 lastTimeImageUsed; | |||
| RectangleList regionsNeedingRepaint; | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| bool useARGBImagesForRendering, shmCompletedDrawing; | |||
| #endif | |||
| #endif | |||
| JUCE_DECLARE_NON_COPYABLE (LinuxRepaintManager); | |||
| }; | |||
| @@ -265193,9 +265187,9 @@ private: | |||
| { | |||
| int keyMods = 0; | |||
| if (status & ShiftMask) keyMods |= ModifierKeys::shiftModifier; | |||
| if (status & ControlMask) keyMods |= ModifierKeys::ctrlModifier; | |||
| if (status & Keys::AltMask) keyMods |= ModifierKeys::altModifier; | |||
| if ((status & ShiftMask) != 0) keyMods |= ModifierKeys::shiftModifier; | |||
| if ((status & ControlMask) != 0) keyMods |= ModifierKeys::ctrlModifier; | |||
| if ((status & Keys::AltMask) != 0) keyMods |= ModifierKeys::altModifier; | |||
| currentModifiers = currentModifiers.withOnlyMouseButtons().withFlags (keyMods); | |||
| @@ -73,7 +73,7 @@ namespace JuceDummyNamespace {} | |||
| */ | |||
| #define JUCE_MAJOR_VERSION 1 | |||
| #define JUCE_MINOR_VERSION 53 | |||
| #define JUCE_BUILDNUMBER 86 | |||
| #define JUCE_BUILDNUMBER 87 | |||
| /** Current Juce version number. | |||
| @@ -46201,14 +46201,7 @@ public: | |||
| events.realloc (size, 1); | |||
| for (int i = numEventsAllocated; i < numEventsNeeded; ++i) | |||
| { | |||
| VstMidiEvent* const e = (VstMidiEvent*) juce_calloc (jmax ((int) sizeof (VstMidiEvent), | |||
| (int) sizeof (VstMidiSysexEvent))); | |||
| e->type = kVstMidiType; | |||
| e->byteSize = sizeof (VstMidiEvent); | |||
| events->events[i] = (VstEvent*) e; | |||
| } | |||
| events->events[i] = allocateVSTEvent(); | |||
| numEventsAllocated = numEventsNeeded; | |||
| } | |||
| @@ -46219,14 +46212,7 @@ public: | |||
| if (events != nullptr) | |||
| { | |||
| for (int i = numEventsAllocated; --i >= 0;) | |||
| { | |||
| VstMidiEvent* const e = (VstMidiEvent*) (events->events[i]); | |||
| if (e->type == kVstSysExType) | |||
| delete[] (((VstMidiSysexEvent*) e)->sysexDump); | |||
| juce_free (e); | |||
| } | |||
| freeVSTEvent (events->events[i]); | |||
| events.free(); | |||
| numEventsUsed = 0; | |||
| @@ -46238,6 +46224,23 @@ public: | |||
| private: | |||
| int numEventsUsed, numEventsAllocated; | |||
| static VstEvent* allocateVSTEvent() | |||
| { | |||
| VstEvent* const e = (VstEvent*) ::calloc (1, sizeof (VstMidiEvent) > sizeof (VstMidiSysexEvent) ? sizeof (VstMidiEvent) | |||
| : sizeof (VstMidiSysexEvent)); | |||
| e->type = kVstMidiType; | |||
| e->byteSize = sizeof (VstMidiEvent); | |||
| return e; | |||
| } | |||
| static void freeVSTEvent (VstEvent* e) | |||
| { | |||
| if (e->type == kVstSysExType) | |||
| delete[] (((VstMidiSysexEvent*) e)->sysexDump); | |||
| ::free (e); | |||
| } | |||
| }; | |||
| #endif // __JUCE_VSTMIDIEVENTLIST_JUCEHEADER__ | |||
| @@ -142,14 +142,7 @@ public: | |||
| events.realloc (size, 1); | |||
| for (int i = numEventsAllocated; i < numEventsNeeded; ++i) | |||
| { | |||
| VstMidiEvent* const e = (VstMidiEvent*) juce_calloc (jmax ((int) sizeof (VstMidiEvent), | |||
| (int) sizeof (VstMidiSysexEvent))); | |||
| e->type = kVstMidiType; | |||
| e->byteSize = sizeof (VstMidiEvent); | |||
| events->events[i] = (VstEvent*) e; | |||
| } | |||
| events->events[i] = allocateVSTEvent(); | |||
| numEventsAllocated = numEventsNeeded; | |||
| } | |||
| @@ -160,14 +153,7 @@ public: | |||
| if (events != nullptr) | |||
| { | |||
| for (int i = numEventsAllocated; --i >= 0;) | |||
| { | |||
| VstMidiEvent* const e = (VstMidiEvent*) (events->events[i]); | |||
| if (e->type == kVstSysExType) | |||
| delete[] (((VstMidiSysexEvent*) e)->sysexDump); | |||
| juce_free (e); | |||
| } | |||
| freeVSTEvent (events->events[i]); | |||
| events.free(); | |||
| numEventsUsed = 0; | |||
| @@ -180,6 +166,23 @@ public: | |||
| private: | |||
| int numEventsUsed, numEventsAllocated; | |||
| static VstEvent* allocateVSTEvent() | |||
| { | |||
| VstEvent* const e = (VstEvent*) ::calloc (1, sizeof (VstMidiEvent) > sizeof (VstMidiSysexEvent) ? sizeof (VstMidiEvent) | |||
| : sizeof (VstMidiSysexEvent)); | |||
| e->type = kVstMidiType; | |||
| e->byteSize = sizeof (VstMidiEvent); | |||
| return e; | |||
| } | |||
| static void freeVSTEvent (VstEvent* e) | |||
| { | |||
| if (e->type == kVstSysExType) | |||
| delete[] (((VstMidiSysexEvent*) e)->sysexDump); | |||
| ::free (e); | |||
| } | |||
| }; | |||
| @@ -33,7 +33,7 @@ | |||
| */ | |||
| #define JUCE_MAJOR_VERSION 1 | |||
| #define JUCE_MINOR_VERSION 53 | |||
| #define JUCE_BUILDNUMBER 86 | |||
| #define JUCE_BUILDNUMBER 87 | |||
| /** Current Juce version number. | |||
| @@ -373,10 +373,10 @@ namespace Visuals | |||
| if (desiredDepth == 32) | |||
| { | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| if (XSHMHelpers::isShmAvailable()) | |||
| { | |||
| #if JUCE_USE_XRENDER | |||
| #if JUCE_USE_XRENDER | |||
| if (XRender::isAvailable()) | |||
| { | |||
| XRenderPictFormat* pictFormat = XRender::findPictureFormat(); | |||
| @@ -412,7 +412,7 @@ namespace Visuals | |||
| } | |||
| } | |||
| } | |||
| #endif | |||
| #endif | |||
| if (visual == 0) | |||
| { | |||
| visual = findVisualWithDepth (32); | |||
| @@ -420,7 +420,7 @@ namespace Visuals | |||
| matchedDepth = 32; | |||
| } | |||
| } | |||
| #endif | |||
| #endif | |||
| } | |||
| if (visual == 0 && desiredDepth >= 24) | |||
| @@ -459,7 +459,7 @@ public: | |||
| ScopedXLock xlock; | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| usingXShm = false; | |||
| if ((imageDepth > 16) && XSHMHelpers::isShmAvailable()) | |||
| @@ -504,12 +504,12 @@ public: | |||
| } | |||
| if (! usingXShm) | |||
| #endif | |||
| #endif | |||
| { | |||
| imageDataAllocated.allocate (lineStride * h, format_ == Image::ARGB && clearImage); | |||
| imageData = imageDataAllocated; | |||
| xImage = (XImage*) juce_calloc (sizeof (XImage)); | |||
| xImage = (XImage*) ::calloc (1, sizeof (XImage)); | |||
| xImage->width = w; | |||
| xImage->height = h; | |||
| @@ -555,7 +555,7 @@ public: | |||
| if (gc != None) | |||
| XFreeGC (display, gc); | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| if (usingXShm) | |||
| { | |||
| XShmDetach (display, &segmentInfo); | |||
| @@ -567,7 +567,7 @@ public: | |||
| shmctl (segmentInfo.shmid, IPC_RMID, 0); | |||
| } | |||
| else | |||
| #endif | |||
| #endif | |||
| { | |||
| xImage->data = nullptr; | |||
| XDestroyImage (xImage); | |||
| @@ -1091,9 +1091,9 @@ public: | |||
| void toBehind (ComponentPeer* other) | |||
| { | |||
| LinuxComponentPeer* const otherPeer = dynamic_cast <LinuxComponentPeer*> (other); | |||
| jassert (otherPeer != 0); // wrong type of window? | |||
| jassert (otherPeer != nullptr); // wrong type of window? | |||
| if (otherPeer != 0) | |||
| if (otherPeer != nullptr) | |||
| { | |||
| setMinimised (false); | |||
| @@ -1733,7 +1733,7 @@ private: | |||
| : peer (peer_), | |||
| lastTimeImageUsed (0) | |||
| { | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| shmCompletedDrawing = true; | |||
| useARGBImagesForRendering = XSHMHelpers::isShmAvailable(); | |||
| @@ -1750,15 +1750,15 @@ private: | |||
| useARGBImagesForRendering = (testImage->bits_per_pixel == 32); | |||
| XDestroyImage (testImage); | |||
| } | |||
| #endif | |||
| #endif | |||
| } | |||
| void timerCallback() | |||
| { | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| if (! shmCompletedDrawing) | |||
| return; | |||
| #endif | |||
| #endif | |||
| if (! regionsNeedingRepaint.isEmpty()) | |||
| { | |||
| stopTimer(); | |||
| @@ -1781,13 +1781,13 @@ private: | |||
| void performAnyPendingRepaintsNow() | |||
| { | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| if (! shmCompletedDrawing) | |||
| { | |||
| startTimer (repaintTimerPeriod); | |||
| return; | |||
| } | |||
| #endif | |||
| #endif | |||
| peer->clearMaskedRegion(); | |||
| @@ -1800,12 +1800,12 @@ private: | |||
| if (image.isNull() || image.getWidth() < totalArea.getWidth() | |||
| || image.getHeight() < totalArea.getHeight()) | |||
| { | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| image = Image (new XBitmapImage (useARGBImagesForRendering ? Image::ARGB | |||
| : Image::RGB, | |||
| #else | |||
| #else | |||
| image = Image (new XBitmapImage (Image::RGB, | |||
| #endif | |||
| #endif | |||
| (totalArea.getWidth() + 31) & ~31, | |||
| (totalArea.getHeight() + 31) & ~31, | |||
| false, peer->depth, peer->visual)); | |||
| @@ -1832,9 +1832,9 @@ private: | |||
| for (RectangleList::Iterator i (originalRepaintRegion); i.next();) | |||
| { | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| shmCompletedDrawing = false; | |||
| #endif | |||
| #endif | |||
| const Rectangle<int>& r = *i.getRectangle(); | |||
| static_cast<XBitmapImage*> (image.getSharedImage()) | |||
| @@ -1848,9 +1848,9 @@ private: | |||
| startTimer (repaintTimerPeriod); | |||
| } | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| void notifyPaintCompleted() { shmCompletedDrawing = true; } | |||
| #endif | |||
| #endif | |||
| private: | |||
| enum { repaintTimerPeriod = 1000 / 100 }; | |||
| @@ -1860,9 +1860,9 @@ private: | |||
| uint32 lastTimeImageUsed; | |||
| RectangleList regionsNeedingRepaint; | |||
| #if JUCE_USE_XSHM | |||
| #if JUCE_USE_XSHM | |||
| bool useARGBImagesForRendering, shmCompletedDrawing; | |||
| #endif | |||
| #endif | |||
| JUCE_DECLARE_NON_COPYABLE (LinuxRepaintManager); | |||
| }; | |||
| @@ -1901,9 +1901,9 @@ private: | |||
| { | |||
| int keyMods = 0; | |||
| if (status & ShiftMask) keyMods |= ModifierKeys::shiftModifier; | |||
| if (status & ControlMask) keyMods |= ModifierKeys::ctrlModifier; | |||
| if (status & Keys::AltMask) keyMods |= ModifierKeys::altModifier; | |||
| if ((status & ShiftMask) != 0) keyMods |= ModifierKeys::shiftModifier; | |||
| if ((status & ControlMask) != 0) keyMods |= ModifierKeys::ctrlModifier; | |||
| if ((status & Keys::AltMask) != 0) keyMods |= ModifierKeys::altModifier; | |||
| currentModifiers = currentModifiers.withOnlyMouseButtons().withFlags (keyMods); | |||
| @@ -257,23 +257,6 @@ void MessageManager::broadcastMessage (const String& value) | |||
| //============================================================================== | |||
| void MessageManager::doPlatformSpecificInitialisation() | |||
| { | |||
| #if JUCE_DEBUG | |||
| try // This section is just a safety-net for catching builds without RTTI enabled.. | |||
| { | |||
| MemoryOutputStream mo; | |||
| OutputStream* o = &mo; | |||
| // Got an exception here? Then TURN ON RTTI in your compiler settings!! | |||
| o = dynamic_cast <MemoryOutputStream*> (o); | |||
| jassert (o != nullptr); | |||
| } | |||
| catch (...) | |||
| { | |||
| // Ended up here? If so, TURN ON RTTI in your compiler settings!! | |||
| jassertfalse; | |||
| } | |||
| #endif | |||
| OleInitialize (0); | |||
| // this name has to be different for each app/dll instance because otherwise | |||
| @@ -39,8 +39,16 @@ | |||
| #define WIN32_LEAN_AND_MEAN 1 | |||
| #if JUCE_MSVC | |||
| #pragma warning (push) | |||
| #pragma warning (disable : 4100 4201 4514 4312 4995) | |||
| #ifndef _CPPRTTI | |||
| #error "You're compiling without RTTI enabled! This is needed for a lot of JUCE classes, please update your compiler settings!" | |||
| #endif | |||
| #ifndef _CPPUNWIND | |||
| #error "You're compiling without exceptions enabled! This is needed for a lot of JUCE classes, please update your compiler settings!" | |||
| #endif | |||
| #pragma warning (push) | |||
| #pragma warning (disable : 4100 4201 4514 4312 4995) | |||
| #endif | |||
| #define _WIN32_WINNT 0x0500 | |||