@@ -309,7 +309,7 @@ void AudioDataConverters::convertInt24BEToFloat (const void* const source, float | |||||
void AudioDataConverters::convertInt32LEToFloat (const void* const source, float* const dest, int numSamples, const int srcBytesPerSample) | void AudioDataConverters::convertInt32LEToFloat (const void* const source, float* const dest, int numSamples, const int srcBytesPerSample) | ||||
{ | { | ||||
const float scale = 1.0f / 0x7fffffff; | |||||
const auto scale = 1.0f / (float) 0x7fffffff; | |||||
const char* intData = static_cast<const char*> (source); | const char* intData = static_cast<const char*> (source); | ||||
if (source != (void*) dest || srcBytesPerSample >= 4) | if (source != (void*) dest || srcBytesPerSample >= 4) | ||||
@@ -334,7 +334,7 @@ void AudioDataConverters::convertInt32LEToFloat (const void* const source, float | |||||
void AudioDataConverters::convertInt32BEToFloat (const void* const source, float* const dest, int numSamples, const int srcBytesPerSample) | void AudioDataConverters::convertInt32BEToFloat (const void* const source, float* const dest, int numSamples, const int srcBytesPerSample) | ||||
{ | { | ||||
const float scale = 1.0f / 0x7fffffff; | |||||
const auto scale = 1.0f / (float) 0x7fffffff; | |||||
const char* intData = static_cast<const char*> (source); | const char* intData = static_cast<const char*> (source); | ||||
if (source != (void*) dest || srcBytesPerSample >= 4) | if (source != (void*) dest || srcBytesPerSample >= 4) | ||||
@@ -629,7 +629,7 @@ public: | |||||
jassert (isPositiveAndBelow (channel, numChannels)); | jassert (isPositiveAndBelow (channel, numChannels)); | ||||
jassert (startSample >= 0 && numSamples >= 0 && startSample + numSamples <= size); | jassert (startSample >= 0 && numSamples >= 0 && startSample + numSamples <= size); | ||||
const auto increment = (endGain - startGain) / numSamples; | |||||
const auto increment = (endGain - startGain) / (float) numSamples; | |||||
auto* d = channels[channel] + startSample; | auto* d = channels[channel] + startSample; | ||||
while (--numSamples >= 0) | while (--numSamples >= 0) | ||||
@@ -874,7 +874,7 @@ void JUCE_CALLTYPE FloatVectorOperations::convertFixedToFloat (float* dest, cons | |||||
vmulq_n_f32 (vcvtq_f32_s32 (vld1q_s32 (src)), multiplier), | vmulq_n_f32 (vcvtq_f32_s32 (vld1q_s32 (src)), multiplier), | ||||
JUCE_LOAD_NONE, JUCE_INCREMENT_SRC_DEST, ) | JUCE_LOAD_NONE, JUCE_INCREMENT_SRC_DEST, ) | ||||
#else | #else | ||||
JUCE_PERFORM_VEC_OP_SRC_DEST (dest[i] = src[i] * multiplier, | |||||
JUCE_PERFORM_VEC_OP_SRC_DEST (dest[i] = (float) src[i] * multiplier, | |||||
Mode::mul (mult, _mm_cvtepi32_ps (_mm_loadu_si128 ((const __m128i*) src))), | Mode::mul (mult, _mm_cvtepi32_ps (_mm_loadu_si128 ((const __m128i*) src))), | ||||
JUCE_LOAD_NONE, JUCE_INCREMENT_SRC_DEST, | JUCE_LOAD_NONE, JUCE_INCREMENT_SRC_DEST, | ||||
const Mode::ParallelType mult = Mode::load1 (multiplier);) | const Mode::ParallelType mult = Mode::load1 (multiplier);) | ||||
@@ -1158,7 +1158,7 @@ public: | |||||
static void convertFixed (float* d, const int* s, ValueType multiplier, int num) | static void convertFixed (float* d, const int* s, ValueType multiplier, int num) | ||||
{ | { | ||||
while (--num >= 0) | while (--num >= 0) | ||||
*d++ = *s++ * multiplier; | |||||
*d++ = (float) *s++ * multiplier; | |||||
} | } | ||||
static bool areAllValuesEqual (const ValueType* d, int num, ValueType target) | static bool areAllValuesEqual (const ValueType* d, int num, ValueType target) | ||||
@@ -34,7 +34,7 @@ namespace MidiBufferHelpers | |||||
inline uint16 getEventTotalSize (const void* const d) noexcept | inline uint16 getEventTotalSize (const void* const d) noexcept | ||||
{ | { | ||||
return getEventDataSize (d) + sizeof (int32) + sizeof (uint16); | |||||
return (uint16) (getEventDataSize (d) + sizeof (int32) + sizeof (uint16)); | |||||
} | } | ||||
static int findActualEventLength (const uint8* const data, const int maxBytes) noexcept | static int findActualEventLength (const uint8* const data, const int maxBytes) noexcept | ||||
@@ -929,7 +929,7 @@ void AudioDeviceManager::LevelMeter::updateLevel (const float* const* channelDat | |||||
for (int i = 0; i < numChannels; ++i) | for (int i = 0; i < numChannels; ++i) | ||||
s += std::abs (channelData[i][j]); | s += std::abs (channelData[i][j]); | ||||
s /= numChannels; | |||||
s /= (float) numChannels; | |||||
const double decayFactor = 0.99992; | const double decayFactor = 0.99992; | ||||
@@ -137,7 +137,7 @@ public: | |||||
numBytes -= numSent; | numBytes -= numSent; | ||||
data += numSent; | data += numSent; | ||||
snd_seq_ev_set_source (&event, portId); | |||||
snd_seq_ev_set_source (&event, (unsigned char) portId); | |||||
snd_seq_ev_set_subs (&event); | snd_seq_ev_set_subs (&event); | ||||
snd_seq_ev_set_direct (&event); | snd_seq_ev_set_direct (&event); | ||||
@@ -159,7 +159,7 @@ void AudioTransportSource::setPosition (double newPosition) | |||||
double AudioTransportSource::getCurrentPosition() const | double AudioTransportSource::getCurrentPosition() const | ||||
{ | { | ||||
if (sampleRate > 0.0) | if (sampleRate > 0.0) | ||||
return getNextReadPosition() / sampleRate; | |||||
return (double) getNextReadPosition() / sampleRate; | |||||
return 0.0; | return 0.0; | ||||
} | } | ||||
@@ -167,7 +167,7 @@ double AudioTransportSource::getCurrentPosition() const | |||||
double AudioTransportSource::getLengthInSeconds() const | double AudioTransportSource::getLengthInSeconds() const | ||||
{ | { | ||||
if (sampleRate > 0.0) | if (sampleRate > 0.0) | ||||
return getTotalLength() / sampleRate; | |||||
return (double) getTotalLength() / sampleRate; | |||||
return 0.0; | return 0.0; | ||||
} | } | ||||
@@ -177,7 +177,7 @@ void AudioTransportSource::setNextReadPosition (int64 newPosition) | |||||
if (positionableSource != nullptr) | if (positionableSource != nullptr) | ||||
{ | { | ||||
if (sampleRate > 0 && sourceSampleRate > 0) | if (sampleRate > 0 && sourceSampleRate > 0) | ||||
newPosition = (int64) (newPosition * sourceSampleRate / sampleRate); | |||||
newPosition = (int64) ((double) newPosition * sourceSampleRate / sampleRate); | |||||
positionableSource->setNextReadPosition (newPosition); | positionableSource->setNextReadPosition (newPosition); | ||||
@@ -193,7 +193,7 @@ int64 AudioTransportSource::getNextReadPosition() const | |||||
if (positionableSource != nullptr) | if (positionableSource != nullptr) | ||||
{ | { | ||||
const double ratio = (sampleRate > 0 && sourceSampleRate > 0) ? sampleRate / sourceSampleRate : 1.0; | const double ratio = (sampleRate > 0 && sourceSampleRate > 0) ? sampleRate / sourceSampleRate : 1.0; | ||||
return (int64) (positionableSource->getNextReadPosition() * ratio); | |||||
return (int64) ((double) positionableSource->getNextReadPosition() * ratio); | |||||
} | } | ||||
return 0; | return 0; | ||||
@@ -206,7 +206,7 @@ int64 AudioTransportSource::getTotalLength() const | |||||
if (positionableSource != nullptr) | if (positionableSource != nullptr) | ||||
{ | { | ||||
const double ratio = (sampleRate > 0 && sourceSampleRate > 0) ? sampleRate / sourceSampleRate : 1.0; | const double ratio = (sampleRate > 0 && sourceSampleRate > 0) ? sampleRate / sourceSampleRate : 1.0; | ||||
return (int64) (positionableSource->getTotalLength() * ratio); | |||||
return (int64) ((double) positionableSource->getTotalLength() * ratio); | |||||
} | } | ||||
return 0; | return 0; | ||||
@@ -1,167 +1,167 @@ | |||||
/* libFLAC - Free Lossless Audio Codec library | |||||
* Copyright (C) 2012-2014 Xiph.org Foundation | |||||
* | |||||
* Redistribution and use in source and binary forms, with or without | |||||
* modification, are permitted provided that the following conditions | |||||
* are met: | |||||
* | |||||
* - Redistributions of source code must retain the above copyright | |||||
* notice, this list of conditions and the following disclaimer. | |||||
* | |||||
* - Redistributions in binary form must reproduce the above copyright | |||||
* notice, this list of conditions and the following disclaimer in the | |||||
* documentation and/or other materials provided with the distribution. | |||||
* | |||||
* - Neither the name of the Xiph.org Foundation nor the names of its | |||||
* contributors may be used to endorse or promote products derived from | |||||
* this software without specific prior written permission. | |||||
* | |||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |||||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR | |||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | |||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
*/ | |||||
/* This is the prefered location of all CPP hackery to make $random_compiler | |||||
* work like something approaching a C99 (or maybe more accurately GNU99) | |||||
* compiler. | |||||
* | |||||
* It is assumed that this header will be included after "config.h". | |||||
*/ | |||||
#ifndef FLAC__SHARE__COMPAT_H | |||||
#define FLAC__SHARE__COMPAT_H | |||||
#if defined _MSC_VER || defined __BORLANDC__ || defined __MINGW32__ | |||||
#define FLAC__off_t __int64 /* use this instead of off_t to fix the 2 GB limit */ | |||||
#if !defined __MINGW32__ | |||||
#define fseeko _fseeki64 | |||||
#define ftello _ftelli64 | |||||
#else /* MinGW */ | |||||
#if !defined(HAVE_FSEEKO) | |||||
#define fseeko fseeko64 | |||||
#define ftello ftello64 | |||||
#endif | |||||
#endif | |||||
#else | |||||
#define FLAC__off_t off_t | |||||
#endif | |||||
#if defined(_MSC_VER) | |||||
#define strtoll _strtoi64 | |||||
#define strtoull _strtoui64 | |||||
#endif | |||||
#if defined(_MSC_VER) | |||||
#define inline __inline | |||||
#endif | |||||
#if defined __INTEL_COMPILER || (defined _MSC_VER && defined _WIN64) | |||||
/* MSVS generates VERY slow 32-bit code with __restrict */ | |||||
#define flac_restrict __restrict | |||||
#elif defined __GNUC__ | |||||
#define flac_restrict __restrict__ | |||||
#else | |||||
#define flac_restrict | |||||
#endif | |||||
#define FLAC__U64L(x) x##ULL | |||||
#if defined _MSC_VER || defined __BORLANDC__ || defined __MINGW32__ | |||||
#define FLAC__STRCASECMP stricmp | |||||
#define FLAC__STRNCASECMP strnicmp | |||||
#else | |||||
#define FLAC__STRCASECMP strcasecmp | |||||
#define FLAC__STRNCASECMP strncasecmp | |||||
#endif | |||||
#if defined _MSC_VER | |||||
# if _MSC_VER >= 1600 | |||||
/* Visual Studio 2010 has decent C99 support */ | |||||
# define PRIu64 "llu" | |||||
# define PRId64 "lld" | |||||
# define PRIx64 "llx" | |||||
# else | |||||
# ifndef UINT32_MAX | |||||
# define UINT32_MAX _UI32_MAX | |||||
# endif | |||||
typedef unsigned __int64 uint64_t; | |||||
typedef unsigned __int32 uint32_t; | |||||
typedef unsigned __int16 uint16_t; | |||||
typedef unsigned __int8 uint8_t; | |||||
typedef __int64 int64_t; | |||||
typedef __int32 int32_t; | |||||
typedef __int16 int16_t; | |||||
typedef __int8 int8_t; | |||||
# define PRIu64 "I64u" | |||||
# define PRId64 "I64d" | |||||
# define PRIx64 "I64x" | |||||
# endif | |||||
#endif /* defined _MSC_VER */ | |||||
#ifdef _WIN32 | |||||
/* All char* strings are in UTF-8 format. Added to support Unicode files on Windows */ | |||||
#include "win_utf8_io.h" | |||||
#define flac_printf printf_utf8 | |||||
#define flac_fprintf fprintf_utf8 | |||||
#define flac_vfprintf vfprintf_utf8 | |||||
#define flac_fopen fopen_utf8 | |||||
#define flac_chmod chmod_utf8 | |||||
#define flac_utime utime_utf8 | |||||
#define flac_unlink unlink_utf8 | |||||
#define flac_rename rename_utf8 | |||||
#define flac_stat _stat64_utf8 | |||||
#else | |||||
#define flac_printf printf | |||||
#define flac_fprintf fprintf | |||||
#define flac_vfprintf vfprintf | |||||
#define flac_fopen fopen | |||||
#define flac_chmod chmod | |||||
#define flac_utime utime | |||||
#define flac_unlink unlink | |||||
#define flac_rename rename | |||||
#define flac_stat stat | |||||
#endif | |||||
#ifdef _WIN32 | |||||
#define flac_stat_s __stat64 /* stat struct */ | |||||
#define flac_fstat _fstat64 | |||||
#else | |||||
#define flac_stat_s stat /* stat struct */ | |||||
#define flac_fstat fstat | |||||
#endif | |||||
#ifndef M_LN2 | |||||
#define M_LN2 0.69314718055994530942 | |||||
#endif | |||||
#ifndef M_PI | |||||
#define M_PI 3.14159265358979323846 | |||||
#endif | |||||
/* FLAC needs to compile and work correctly on systems with a normal ISO C99 | |||||
* snprintf as well as Microsoft Visual Studio which has an non-standards | |||||
* conformant snprint_s function. | |||||
* | |||||
* This function wraps the MS version to behave more like the the ISO version. | |||||
*/ | |||||
#ifdef __cplusplus | |||||
extern "C" { | |||||
#endif | |||||
int flac_snprintf(char *str, size_t size, const char *fmt, ...); | |||||
int flac_vsnprintf(char *str, size_t size, const char *fmt, va_list va); | |||||
#ifdef __cplusplus | |||||
}; | |||||
#endif | |||||
#endif /* FLAC__SHARE__COMPAT_H */ | |||||
/* libFLAC - Free Lossless Audio Codec library | |||||
* Copyright (C) 2012-2014 Xiph.org Foundation | |||||
* | |||||
* Redistribution and use in source and binary forms, with or without | |||||
* modification, are permitted provided that the following conditions | |||||
* are met: | |||||
* | |||||
* - Redistributions of source code must retain the above copyright | |||||
* notice, this list of conditions and the following disclaimer. | |||||
* | |||||
* - Redistributions in binary form must reproduce the above copyright | |||||
* notice, this list of conditions and the following disclaimer in the | |||||
* documentation and/or other materials provided with the distribution. | |||||
* | |||||
* - Neither the name of the Xiph.org Foundation nor the names of its | |||||
* contributors may be used to endorse or promote products derived from | |||||
* this software without specific prior written permission. | |||||
* | |||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |||||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR | |||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | |||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
*/ | |||||
/* This is the prefered location of all CPP hackery to make $random_compiler | |||||
* work like something approaching a C99 (or maybe more accurately GNU99) | |||||
* compiler. | |||||
* | |||||
* It is assumed that this header will be included after "config.h". | |||||
*/ | |||||
#ifndef FLAC__SHARE__COMPAT_H | |||||
#define FLAC__SHARE__COMPAT_H | |||||
#if defined _MSC_VER || defined __BORLANDC__ || defined __MINGW32__ | |||||
#define FLAC__off_t __int64 /* use this instead of off_t to fix the 2 GB limit */ | |||||
#if !defined __MINGW32__ | |||||
#define fseeko _fseeki64 | |||||
#define ftello _ftelli64 | |||||
#else /* MinGW */ | |||||
#if !defined(HAVE_FSEEKO) | |||||
#define fseeko fseeko64 | |||||
#define ftello ftello64 | |||||
#endif | |||||
#endif | |||||
#else | |||||
#define FLAC__off_t off_t | |||||
#endif | |||||
#if defined(_MSC_VER) | |||||
#define strtoll _strtoi64 | |||||
#define strtoull _strtoui64 | |||||
#endif | |||||
#if defined(_MSC_VER) | |||||
#define inline __inline | |||||
#endif | |||||
#if defined __INTEL_COMPILER || (defined _MSC_VER && defined _WIN64) | |||||
/* MSVS generates VERY slow 32-bit code with __restrict */ | |||||
#define flac_restrict __restrict | |||||
#elif defined __GNUC__ | |||||
#define flac_restrict __restrict__ | |||||
#else | |||||
#define flac_restrict | |||||
#endif | |||||
#define FLAC__U64L(x) x##ULL | |||||
#if defined _MSC_VER || defined __BORLANDC__ || defined __MINGW32__ | |||||
#define FLAC__STRCASECMP stricmp | |||||
#define FLAC__STRNCASECMP strnicmp | |||||
#else | |||||
#define FLAC__STRCASECMP strcasecmp | |||||
#define FLAC__STRNCASECMP strncasecmp | |||||
#endif | |||||
#if defined _MSC_VER | |||||
# if _MSC_VER >= 1600 | |||||
/* Visual Studio 2010 has decent C99 support */ | |||||
# define PRIu64 "llu" | |||||
# define PRId64 "lld" | |||||
# define PRIx64 "llx" | |||||
# else | |||||
# ifndef UINT32_MAX | |||||
# define UINT32_MAX _UI32_MAX | |||||
# endif | |||||
typedef unsigned __int64 uint64_t; | |||||
typedef unsigned __int32 uint32_t; | |||||
typedef unsigned __int16 uint16_t; | |||||
typedef unsigned __int8 uint8_t; | |||||
typedef __int64 int64_t; | |||||
typedef __int32 int32_t; | |||||
typedef __int16 int16_t; | |||||
typedef __int8 int8_t; | |||||
# define PRIu64 "I64u" | |||||
# define PRId64 "I64d" | |||||
# define PRIx64 "I64x" | |||||
# endif | |||||
#endif /* defined _MSC_VER */ | |||||
#ifdef _WIN32 | |||||
/* All char* strings are in UTF-8 format. Added to support Unicode files on Windows */ | |||||
#include "win_utf8_io.h" | |||||
#define flac_printf printf_utf8 | |||||
#define flac_fprintf fprintf_utf8 | |||||
#define flac_vfprintf vfprintf_utf8 | |||||
#define flac_fopen fopen_utf8 | |||||
#define flac_chmod chmod_utf8 | |||||
#define flac_utime utime_utf8 | |||||
#define flac_unlink unlink_utf8 | |||||
#define flac_rename rename_utf8 | |||||
#define flac_stat _stat64_utf8 | |||||
#else | |||||
#define flac_printf printf | |||||
#define flac_fprintf fprintf | |||||
#define flac_vfprintf vfprintf | |||||
#define flac_fopen fopen | |||||
#define flac_chmod chmod | |||||
#define flac_utime utime | |||||
#define flac_unlink unlink | |||||
#define flac_rename rename | |||||
#define flac_stat stat | |||||
#endif | |||||
#ifdef _WIN32 | |||||
#define flac_stat_s __stat64 /* stat struct */ | |||||
#define flac_fstat _fstat64 | |||||
#else | |||||
#define flac_stat_s stat /* stat struct */ | |||||
#define flac_fstat fstat | |||||
#endif | |||||
#ifndef M_LN2 | |||||
#define M_LN2 0.69314718055994530942 | |||||
#endif | |||||
#ifndef M_PI | |||||
#define M_PI 3.14159265358979323846 | |||||
#endif | |||||
/* FLAC needs to compile and work correctly on systems with a normal ISO C99 | |||||
* snprintf as well as Microsoft Visual Studio which has an non-standards | |||||
* conformant snprint_s function. | |||||
* | |||||
* This function wraps the MS version to behave more like the the ISO version. | |||||
*/ | |||||
#ifdef __cplusplus | |||||
extern "C" { | |||||
#endif | |||||
int flac_snprintf(char *str, size_t size, const char *fmt, ...); | |||||
int flac_vsnprintf(char *str, size_t size, const char *fmt, va_list va); | |||||
#ifdef __cplusplus | |||||
} | |||||
#endif | |||||
#endif /* FLAC__SHARE__COMPAT_H */ |
@@ -892,7 +892,7 @@ namespace WavFileHelpers | |||||
return xml.getMemoryBlock(); | return xml.getMemoryBlock(); | ||||
} | } | ||||
}; | |||||
} | |||||
//============================================================================== | //============================================================================== | ||||
struct ExtensibleWavSubFormat | struct ExtensibleWavSubFormat | ||||
@@ -38,7 +38,7 @@ | |||||
#endif | #endif | ||||
#else | #else | ||||
JUCE_CREATE_APPLICATION_DEFINE(StandaloneFilterApp); | |||||
JUCE_CREATE_APPLICATION_DEFINE(StandaloneFilterApp) | |||||
#endif | #endif | ||||
JUCE_MAIN_FUNCTION_DEFINITION | JUCE_MAIN_FUNCTION_DEFINITION |
@@ -228,38 +228,8 @@ static pointer_sized_int VSTINTERFACECALL audioMaster (VstEffectInterface*, int3 | |||||
namespace | namespace | ||||
{ | { | ||||
static bool xErrorTriggered = false; | |||||
static int temporaryErrorHandler (::Display*, XErrorEvent*) | |||||
{ | |||||
xErrorTriggered = true; | |||||
return 0; | |||||
} | |||||
typedef void (*EventProcPtr) (XEvent* ev); | typedef void (*EventProcPtr) (XEvent* ev); | ||||
static EventProcPtr getPropertyFromXWindow (Window handle, Atom atom) | |||||
{ | |||||
XErrorHandler oldErrorHandler = XSetErrorHandler (temporaryErrorHandler); | |||||
xErrorTriggered = false; | |||||
int userSize; | |||||
unsigned long bytes, userCount; | |||||
unsigned char* data; | |||||
Atom userType; | |||||
{ | |||||
ScopedXDisplay xDisplay; | |||||
XGetWindowProperty (xDisplay.display, handle, atom, 0, 1, false, AnyPropertyType, | |||||
&userType, &userSize, &userCount, &bytes, &data); | |||||
} | |||||
XSetErrorHandler (oldErrorHandler); | |||||
return (userCount == 1 && ! xErrorTriggered) ? *reinterpret_cast<EventProcPtr*> (data) : nullptr; | |||||
} | |||||
Window getChildWindow (Window windowToCheck) | Window getChildWindow (Window windowToCheck) | ||||
{ | { | ||||
Window rootWindow, parentWindow; | Window rootWindow, parentWindow; | ||||
@@ -276,55 +246,6 @@ namespace | |||||
return 0; | return 0; | ||||
} | } | ||||
static void translateJuceToXButtonModifiers (const MouseEvent& e, XEvent& ev) noexcept | |||||
{ | |||||
if (e.mods.isLeftButtonDown()) | |||||
{ | |||||
ev.xbutton.button = Button1; | |||||
ev.xbutton.state |= Button1Mask; | |||||
} | |||||
else if (e.mods.isRightButtonDown()) | |||||
{ | |||||
ev.xbutton.button = Button3; | |||||
ev.xbutton.state |= Button3Mask; | |||||
} | |||||
else if (e.mods.isMiddleButtonDown()) | |||||
{ | |||||
ev.xbutton.button = Button2; | |||||
ev.xbutton.state |= Button2Mask; | |||||
} | |||||
} | |||||
static void translateJuceToXMotionModifiers (const MouseEvent& e, XEvent& ev) noexcept | |||||
{ | |||||
if (e.mods.isLeftButtonDown()) ev.xmotion.state |= Button1Mask; | |||||
else if (e.mods.isRightButtonDown()) ev.xmotion.state |= Button3Mask; | |||||
else if (e.mods.isMiddleButtonDown()) ev.xmotion.state |= Button2Mask; | |||||
} | |||||
static void translateJuceToXCrossingModifiers (const MouseEvent& e, XEvent& ev) noexcept | |||||
{ | |||||
if (e.mods.isLeftButtonDown()) ev.xcrossing.state |= Button1Mask; | |||||
else if (e.mods.isRightButtonDown()) ev.xcrossing.state |= Button3Mask; | |||||
else if (e.mods.isMiddleButtonDown()) ev.xcrossing.state |= Button2Mask; | |||||
} | |||||
static void translateJuceToXMouseWheelModifiers (const MouseEvent& e, const float increment, XEvent& ev) noexcept | |||||
{ | |||||
ignoreUnused (e); | |||||
if (increment < 0) | |||||
{ | |||||
ev.xbutton.button = Button5; | |||||
ev.xbutton.state |= Button5Mask; | |||||
} | |||||
else if (increment > 0) | |||||
{ | |||||
ev.xbutton.button = Button4; | |||||
ev.xbutton.state |= Button4Mask; | |||||
} | |||||
} | |||||
} | } | ||||
#endif | #endif | ||||
@@ -32,8 +32,8 @@ | |||||
namespace FunctionTestsHelpers | namespace FunctionTestsHelpers | ||||
{ | { | ||||
void incrementArgument (int& x) { x++; }; | |||||
double multiply (double x, double a) noexcept { return a * x; }; | |||||
void incrementArgument (int& x) { x++; } | |||||
double multiply (double x, double a) noexcept { return a * x; } | |||||
struct BigData | struct BigData | ||||
{ | { | ||||
@@ -71,7 +71,7 @@ namespace internal | |||||
template <> struct make_unsigned<int> { typedef unsigned int type; }; | template <> struct make_unsigned<int> { typedef unsigned int type; }; | ||||
template <> struct make_unsigned<long> { typedef unsigned long type; }; | template <> struct make_unsigned<long> { typedef unsigned long type; }; | ||||
template <> struct make_unsigned<long long> { typedef unsigned long long type; }; | template <> struct make_unsigned<long long> { typedef unsigned long long type; }; | ||||
}; | |||||
} | |||||
//============================================================================== | //============================================================================== | ||||
/** | /** | ||||
@@ -181,7 +181,7 @@ public: | |||||
|| ((numSigFigs == 0 && (! decimalPointFound)) && digit == 0)) | || ((numSigFigs == 0 && (! decimalPointFound)) && digit == 0)) | ||||
continue; | continue; | ||||
*currentCharacter++ = '0' + (char) digit; | |||||
*currentCharacter++ = (char) ('0' + (char) digit); | |||||
numSigFigs++; | numSigFigs++; | ||||
} | } | ||||
else if ((! decimalPointFound) && *text == '.') | else if ((! decimalPointFound) && *text == '.') | ||||
@@ -219,7 +219,7 @@ public: | |||||
if (digit != 0 || exponentMagnitude != 0) | if (digit != 0 || exponentMagnitude != 0) | ||||
{ | { | ||||
*currentCharacter++ = '0' + (char) digit; | |||||
*currentCharacter++ = (char) ('0' + (char) digit); | |||||
exponentMagnitude = (exponentMagnitude * 10) + digit; | exponentMagnitude = (exponentMagnitude * 10) + digit; | ||||
} | } | ||||
} | } | ||||
@@ -198,7 +198,7 @@ struct SIMDNativeOps<int8_t> | |||||
const int8_t* lo_ptr = reinterpret_cast<const int8_t*> (&lo); | const int8_t* lo_ptr = reinterpret_cast<const int8_t*> (&lo); | ||||
const int8_t* hi_ptr = reinterpret_cast<const int8_t*> (&hi); | const int8_t* hi_ptr = reinterpret_cast<const int8_t*> (&hi); | ||||
return lo_ptr[0] + hi_ptr[0] + lo_ptr[16] + hi_ptr[16]; | |||||
return (int8_t) (lo_ptr[0] + hi_ptr[0] + lo_ptr[16] + hi_ptr[16]); | |||||
} | } | ||||
static forcedinline __m256i JUCE_VECTOR_CALLTYPE mul (__m256i a, __m256i b) | static forcedinline __m256i JUCE_VECTOR_CALLTYPE mul (__m256i a, __m256i b) | ||||
@@ -257,7 +257,7 @@ struct SIMDNativeOps<uint8_t> | |||||
const uint8_t* lo_ptr = reinterpret_cast<const uint8_t*> (&lo); | const uint8_t* lo_ptr = reinterpret_cast<const uint8_t*> (&lo); | ||||
const uint8_t* hi_ptr = reinterpret_cast<const uint8_t*> (&hi); | const uint8_t* hi_ptr = reinterpret_cast<const uint8_t*> (&hi); | ||||
return lo_ptr[0] + hi_ptr[0] + lo_ptr[16] + hi_ptr[16]; | |||||
return (uint8_t) (lo_ptr[0] + hi_ptr[0] + lo_ptr[16] + hi_ptr[16]); | |||||
} | } | ||||
static forcedinline __m256i JUCE_VECTOR_CALLTYPE mul (__m256i a, __m256i b) | static forcedinline __m256i JUCE_VECTOR_CALLTYPE mul (__m256i a, __m256i b) | ||||
@@ -308,7 +308,7 @@ struct SIMDNativeOps<int16_t> | |||||
tmp = _mm256_hadd_epi16 (tmp, tmp); | tmp = _mm256_hadd_epi16 (tmp, tmp); | ||||
tmp = _mm256_hadd_epi16 (tmp, tmp); | tmp = _mm256_hadd_epi16 (tmp, tmp); | ||||
int16_t* ptr = reinterpret_cast<int16_t*> (&tmp); | int16_t* ptr = reinterpret_cast<int16_t*> (&tmp); | ||||
return ptr[0] + ptr[8]; | |||||
return (int16_t) (ptr[0] + ptr[8]); | |||||
} | } | ||||
}; | }; | ||||
@@ -351,7 +351,7 @@ struct SIMDNativeOps<uint16_t> | |||||
tmp = _mm256_hadd_epi16 (tmp, tmp); | tmp = _mm256_hadd_epi16 (tmp, tmp); | ||||
tmp = _mm256_hadd_epi16 (tmp, tmp); | tmp = _mm256_hadd_epi16 (tmp, tmp); | ||||
uint16_t* ptr = reinterpret_cast<uint16_t*> (&tmp); | uint16_t* ptr = reinterpret_cast<uint16_t*> (&tmp); | ||||
return ptr[0] + ptr[8]; | |||||
return (uint16_t) (ptr[0] + ptr[8]); | |||||
} | } | ||||
}; | }; | ||||
@@ -844,8 +844,8 @@ FlexItem FlexItem::withWidth (float newWidth) const noexcept { auto fi = | |||||
FlexItem FlexItem::withMinWidth (float newMinWidth) const noexcept { auto fi = *this; fi.minWidth = newMinWidth; return fi; } | FlexItem FlexItem::withMinWidth (float newMinWidth) const noexcept { auto fi = *this; fi.minWidth = newMinWidth; return fi; } | ||||
FlexItem FlexItem::withMaxWidth (float newMaxWidth) const noexcept { auto fi = *this; fi.maxWidth = newMaxWidth; return fi; } | FlexItem FlexItem::withMaxWidth (float newMaxWidth) const noexcept { auto fi = *this; fi.maxWidth = newMaxWidth; return fi; } | ||||
FlexItem FlexItem::withMinHeight (float newMinHeight) const noexcept { auto fi = *this; fi.minHeight = newMinHeight; return fi; }; | |||||
FlexItem FlexItem::withMaxHeight (float newMaxHeight) const noexcept { auto fi = *this; fi.maxHeight = newMaxHeight; return fi; }; | |||||
FlexItem FlexItem::withMinHeight (float newMinHeight) const noexcept { auto fi = *this; fi.minHeight = newMinHeight; return fi; } | |||||
FlexItem FlexItem::withMaxHeight (float newMaxHeight) const noexcept { auto fi = *this; fi.maxHeight = newMaxHeight; return fi; } | |||||
FlexItem FlexItem::withHeight (float newHeight) const noexcept { auto fi = *this; fi.height = newHeight; return fi; } | FlexItem FlexItem::withHeight (float newHeight) const noexcept { auto fi = *this; fi.height = newHeight; return fi; } | ||||
FlexItem FlexItem::withMargin (Margin m) const noexcept { auto fi = *this; fi.margin = m; return fi; } | FlexItem FlexItem::withMargin (Margin m) const noexcept { auto fi = *this; fi.margin = m; return fi; } | ||||
@@ -77,7 +77,7 @@ struct ReportingThreadContainer : public ChangeListener, | |||||
juce_DeclareSingleton_SingleThreaded_Minimal (ReportingThreadContainer) | juce_DeclareSingleton_SingleThreaded_Minimal (ReportingThreadContainer) | ||||
}; | }; | ||||
juce_ImplementSingleton_SingleThreaded (ReportingThreadContainer); | |||||
juce_ImplementSingleton_SingleThreaded (ReportingThreadContainer) | |||||
//============================================================================== | //============================================================================== | ||||
struct ReportingThread : public Thread, | struct ReportingThread : public Thread, | ||||
@@ -128,8 +128,8 @@ private: | |||||
// calling any of the mouse input methods! | // calling any of the mouse input methods! | ||||
jassert (scale > 0); | jassert (scale > 0); | ||||
return Point<float> ((mousePos.x - area.getCentreX()) / scale, | |||||
(area.getCentreY() - mousePos.y) / scale); | |||||
return Point<float> ((mousePos.x - (float) area.getCentreX()) / (float) scale, | |||||
((float) area.getCentreY() - mousePos.y) / (float) scale); | |||||
} | } | ||||
VectorType projectOnSphere (const Point<float> pos) const noexcept | VectorType projectOnSphere (const Point<float> pos) const noexcept | ||||
@@ -42,9 +42,6 @@ OSCTimeTag::OSCTimeTag (Time time) noexcept | |||||
{ | { | ||||
const uint64 milliseconds = (uint64) time.toMilliseconds() + millisecondsBetweenOscAndJuceEpochs; | const uint64 milliseconds = (uint64) time.toMilliseconds() + millisecondsBetweenOscAndJuceEpochs; | ||||
// something went seriously wrong if the line above didn't render the time nonnegative! | |||||
jassert (milliseconds >= 0); | |||||
uint64 seconds = milliseconds / 1000; | uint64 seconds = milliseconds / 1000; | ||||
uint32 fractionalPart = uint32 (4294967.296 * (milliseconds % 1000)); | uint32 fractionalPart = uint32 (4294967.296 * (milliseconds % 1000)); | ||||
@@ -48,7 +48,7 @@ void InAppPurchases::getProductsInformation (const StringArray& productIdentifie | |||||
#else | #else | ||||
Array<Product> products; | Array<Product> products; | ||||
for (auto productId : productIdentifiers) | for (auto productId : productIdentifiers) | ||||
products.add (Product {productId}); | |||||
products.add (Product { productId, {}, {}, {}, {} }); | |||||
listeners.call (&Listener::productsInfoReturned, products); | listeners.call (&Listener::productsInfoReturned, products); | ||||
#endif | #endif | ||||
@@ -63,7 +63,7 @@ void InAppPurchases::purchaseProduct (const String& productIdentifier, | |||||
pimpl->purchaseProduct (productIdentifier, isSubscription, | pimpl->purchaseProduct (productIdentifier, isSubscription, | ||||
upgradeProductIdentifiers, creditForUnusedSubscription); | upgradeProductIdentifiers, creditForUnusedSubscription); | ||||
#else | #else | ||||
Listener::PurchaseInfo purchaseInfo { Purchase {"", productIdentifier}, {} }; | |||||
Listener::PurchaseInfo purchaseInfo { Purchase { "", productIdentifier, {}, {}, {} }, {} }; | |||||
listeners.call (&Listener::productPurchaseFinished, purchaseInfo, false, "In-app purchases unavailable"); | listeners.call (&Listener::productPurchaseFinished, purchaseInfo, false, "In-app purchases unavailable"); | ||||
ignoreUnused (isSubscription, upgradeProductIdentifiers, creditForUnusedSubscription); | ignoreUnused (isSubscription, upgradeProductIdentifiers, creditForUnusedSubscription); | ||||