@@ -4236,10 +4236,13 @@ | |||
GCC_SYMBOLS_PRIVATE_EXTERN = YES; | |||
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; | |||
GCC_WARN_ABOUT_RETURN_TYPE = YES; | |||
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; | |||
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; | |||
GCC_WARN_MISSING_PARENTHESES = YES; | |||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; | |||
GCC_WARN_SIGN_COMPARE = YES; | |||
GCC_WARN_UNKNOWN_PRAGMAS = YES; | |||
GCC_WARN_UNUSED_VALUE = YES; | |||
GCC_WARN_UNUSED_VARIABLE = YES; | |||
PRODUCT_NAME = jucedebug; | |||
RUN_CLANG_STATIC_ANALYZER = YES; | |||
@@ -4260,10 +4263,13 @@ | |||
"NDEBUG=1", | |||
); | |||
GCC_SYMBOLS_PRIVATE_EXTERN = YES; | |||
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; | |||
GCC_WARN_ABOUT_RETURN_TYPE = YES; | |||
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; | |||
GCC_WARN_MISSING_PARENTHESES = YES; | |||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; | |||
GCC_WARN_SIGN_COMPARE = YES; | |||
GCC_WARN_UNKNOWN_PRAGMAS = YES; | |||
GCC_WARN_UNUSED_VALUE = YES; | |||
GCC_WARN_UNUSED_VARIABLE = YES; | |||
PRODUCT_NAME = juce; | |||
@@ -5364,27 +5364,24 @@ int InputStream::readIntBigEndian() | |||
int InputStream::readCompressedInt() | |||
{ | |||
int num = 0; | |||
const unsigned char sizeByte = readByte(); | |||
if (sizeByte == 0) | |||
return 0; | |||
if (! isExhausted()) | |||
const int numBytes = (sizeByte & 0x7f); | |||
if (numBytes > 4) | |||
{ | |||
unsigned char numBytes = readByte(); | |||
const bool negative = (numBytes & 0x80) != 0; | |||
numBytes &= 0x7f; | |||
if (numBytes <= 4) | |||
{ | |||
if (read (&num, numBytes) != numBytes) | |||
return 0; | |||
num = (int) swapIfBigEndian ((uint32) num); | |||
if (negative) | |||
num = -num; | |||
} | |||
jassertfalse // trying to read corrupt data - this method must only be used | |||
// to read data that was written by OutputStream::writeCompressedInt() | |||
return 0; | |||
} | |||
return num; | |||
char bytes[4] = { 0, 0, 0, 0 }; | |||
if (read (bytes, numBytes) != numBytes) | |||
return 0; | |||
const int num = (int) littleEndianInt (bytes); | |||
return (sizeByte >> 7) ? -num : num; | |||
} | |||
int64 InputStream::readInt64() | |||
@@ -5639,23 +5636,22 @@ void OutputStream::writeCompressedInt (int value) | |||
{ | |||
unsigned int un = (value < 0) ? (unsigned int) -value | |||
: (unsigned int) value; | |||
unsigned int tn = un; | |||
int numSigBytes = 0; | |||
uint8 data[5]; | |||
int num = 0; | |||
do | |||
while (un > 0) | |||
{ | |||
tn >>= 8; | |||
numSigBytes++; | |||
data[++num] = (uint8) un; | |||
un >>= 8; | |||
} | |||
} while (tn & 0xff); | |||
data[0] = num; | |||
if (value < 0) | |||
numSigBytes |= 0x80; | |||
data[0] |= 0x80; | |||
writeByte ((char) numSigBytes); | |||
un = swapIfBigEndian (un); | |||
write (&un, numSigBytes); | |||
write (data, num + 1); | |||
} | |||
void OutputStream::writeInt64 (int64 value) | |||
@@ -21761,7 +21757,7 @@ const StringPairArray WavAudioFormat::createBWAVMetadata (const String& descript | |||
#if JUCE_MSVC | |||
#pragma pack (push, 1) | |||
#define PACKED | |||
#elif defined (JUCE_GCC) | |||
#elif JUCE_GCC | |||
#define PACKED __attribute__((packed)) | |||
#else | |||
#define PACKED | |||
@@ -44691,7 +44687,7 @@ void CodeDocument::setSavePoint() throw() | |||
bool CodeDocument::hasChangedSinceSavePoint() const throw() | |||
{ | |||
return currentActionIndex == indexOfSavedState; | |||
return currentActionIndex != indexOfSavedState; | |||
} | |||
static int getCodeCharacterCategory (const tchar character) throw() | |||
@@ -261354,7 +261350,7 @@ bool juce_launchFile (const String& fileName, | |||
ok = [[NSWorkspace sharedWorkspace] openURLs: urls | |||
withAppBundleIdentifier: [[NSBundle bundleWithPath: juceStringToNS (fileName)] bundleIdentifier] | |||
options: nil | |||
options: 0 | |||
additionalEventParamDescriptor: nil | |||
launchIdentifiers: nil]; | |||
} | |||
@@ -262059,7 +262055,7 @@ public: | |||
const int length = text.length(); | |||
CGGlyph* const glyphs = createGlyphsForString (text, length); | |||
int x = 0; | |||
float x = 0; | |||
#if SUPPORT_ONLY_10_4_FONTS | |||
NSSize* const advances = (NSSize*) juce_malloc (length * sizeof (NSSize)); | |||
@@ -262129,7 +262125,7 @@ public: | |||
NSSize* const advances = (NSSize*) juce_malloc (length * sizeof (NSSize)); | |||
[nsFont getAdvancements: advances forGlyphs: (NSGlyph*) glyphs count: length]; | |||
int x = 0; | |||
float x = 0; | |||
for (int i = 0; i < length; ++i) | |||
{ | |||
x += advances[i].width; | |||
@@ -262785,8 +262781,8 @@ public: | |||
while (x > clip.origin.x) x -= iw; | |||
while (y > clip.origin.y) y -= ih; | |||
const int right = clip.origin.x + clip.size.width; | |||
const int bottom = clip.origin.y + clip.size.height; | |||
const int right = (int) (clip.origin.x + clip.size.width); | |||
const int bottom = (int) (clip.origin.y + clip.size.height); | |||
while (y < bottom) | |||
{ | |||
@@ -266525,7 +266521,7 @@ public: | |||
const int length = text.length(); | |||
CGGlyph* const glyphs = createGlyphsForString (text, length); | |||
int x = 0; | |||
float x = 0; | |||
#if SUPPORT_ONLY_10_4_FONTS | |||
NSSize* const advances = (NSSize*) juce_malloc (length * sizeof (NSSize)); | |||
@@ -266595,7 +266591,7 @@ public: | |||
NSSize* const advances = (NSSize*) juce_malloc (length * sizeof (NSSize)); | |||
[nsFont getAdvancements: advances forGlyphs: (NSGlyph*) glyphs count: length]; | |||
int x = 0; | |||
float x = 0; | |||
for (int i = 0; i < length; ++i) | |||
{ | |||
x += advances[i].width; | |||
@@ -267253,8 +267249,8 @@ public: | |||
while (x > clip.origin.x) x -= iw; | |||
while (y > clip.origin.y) y -= ih; | |||
const int right = clip.origin.x + clip.size.width; | |||
const int bottom = clip.origin.y + clip.size.height; | |||
const int right = (int) (clip.origin.x + clip.size.width); | |||
const int bottom = (int) (clip.origin.y + clip.size.height); | |||
while (y < bottom) | |||
{ | |||
@@ -270806,8 +270802,8 @@ void QuickTimeMovieComponent::getMovieNormalSize (int& width, int& height) const | |||
if (movie != 0) | |||
{ | |||
NSSize s = [[theMovie attributeForKey: QTMovieNaturalSizeAttribute] sizeValue]; | |||
width = s.width; | |||
height = s.height; | |||
width = (int) s.width; | |||
height = (int) s.height; | |||
} | |||
} | |||
@@ -46986,6 +46986,11 @@ public: | |||
*/ | |||
void setVelocityBasedMode (const bool isVelocityBased) throw(); | |||
/** Returns true if velocity-based mode is active. | |||
@see setVelocityBasedMode | |||
*/ | |||
bool getVelocityBasedMode() const throw() { return isVelocityBased; } | |||
/** Changes aspects of the scaling used when in velocity-sensitive mode. | |||
These apply when you've used setVelocityBasedMode() to turn on velocity mode, | |||
@@ -47004,6 +47009,26 @@ public: | |||
const double offset = 0.0, | |||
const bool userCanPressKeyToSwapMode = true) throw(); | |||
/** Returns the velocity sensitivity setting. | |||
@see setVelocityModeParameters | |||
*/ | |||
double getVelocitySensitivity() const throw() { return velocityModeSensitivity; } | |||
/** Returns the velocity threshold setting. | |||
@see setVelocityModeParameters | |||
*/ | |||
int getVelocityThreshold() const throw() { return velocityModeThreshold; } | |||
/** Returns the velocity offset setting. | |||
@see setVelocityModeParameters | |||
*/ | |||
double getVelocityOffset() const throw() { return velocityModeOffset; } | |||
/** Returns the velocity user key setting. | |||
@see setVelocityModeParameters | |||
*/ | |||
bool getVelocityModeIsSwappable() const throw() { return userKeyOverridesVelocity; } | |||
/** Sets up a skew factor to alter the way values are distributed. | |||
You may want to use a range of values on the slider where more accuracy | |||
@@ -73,7 +73,7 @@ const StringPairArray WavAudioFormat::createBWAVMetadata (const String& descript | |||
#if JUCE_MSVC | |||
#pragma pack (push, 1) | |||
#define PACKED | |||
#elif defined (JUCE_GCC) | |||
#elif JUCE_GCC | |||
#define PACKED __attribute__((packed)) | |||
#else | |||
#define PACKED | |||
@@ -580,7 +580,7 @@ void CodeDocument::setSavePoint() throw() | |||
bool CodeDocument::hasChangedSinceSavePoint() const throw() | |||
{ | |||
return currentActionIndex == indexOfSavedState; | |||
return currentActionIndex != indexOfSavedState; | |||
} | |||
//============================================================================== | |||
@@ -151,6 +151,11 @@ public: | |||
*/ | |||
void setVelocityBasedMode (const bool isVelocityBased) throw(); | |||
/** Returns true if velocity-based mode is active. | |||
@see setVelocityBasedMode | |||
*/ | |||
bool getVelocityBasedMode() const throw() { return isVelocityBased; } | |||
/** Changes aspects of the scaling used when in velocity-sensitive mode. | |||
These apply when you've used setVelocityBasedMode() to turn on velocity mode, | |||
@@ -169,6 +174,26 @@ public: | |||
const double offset = 0.0, | |||
const bool userCanPressKeyToSwapMode = true) throw(); | |||
/** Returns the velocity sensitivity setting. | |||
@see setVelocityModeParameters | |||
*/ | |||
double getVelocitySensitivity() const throw() { return velocityModeSensitivity; } | |||
/** Returns the velocity threshold setting. | |||
@see setVelocityModeParameters | |||
*/ | |||
int getVelocityThreshold() const throw() { return velocityModeThreshold; } | |||
/** Returns the velocity offset setting. | |||
@see setVelocityModeParameters | |||
*/ | |||
double getVelocityOffset() const throw() { return velocityModeOffset; } | |||
/** Returns the velocity user key setting. | |||
@see setVelocityModeParameters | |||
*/ | |||
bool getVelocityModeIsSwappable() const throw() { return userKeyOverridesVelocity; } | |||
//============================================================================== | |||
/** Sets up a skew factor to alter the way values are distributed. | |||
@@ -86,27 +86,24 @@ int InputStream::readIntBigEndian() | |||
int InputStream::readCompressedInt() | |||
{ | |||
int num = 0; | |||
const unsigned char sizeByte = readByte(); | |||
if (sizeByte == 0) | |||
return 0; | |||
if (! isExhausted()) | |||
const int numBytes = (sizeByte & 0x7f); | |||
if (numBytes > 4) | |||
{ | |||
unsigned char numBytes = readByte(); | |||
const bool negative = (numBytes & 0x80) != 0; | |||
numBytes &= 0x7f; | |||
if (numBytes <= 4) | |||
{ | |||
if (read (&num, numBytes) != numBytes) | |||
return 0; | |||
num = (int) swapIfBigEndian ((uint32) num); | |||
if (negative) | |||
num = -num; | |||
} | |||
jassertfalse // trying to read corrupt data - this method must only be used | |||
// to read data that was written by OutputStream::writeCompressedInt() | |||
return 0; | |||
} | |||
return num; | |||
char bytes[4] = { 0, 0, 0, 0 }; | |||
if (read (bytes, numBytes) != numBytes) | |||
return 0; | |||
const int num = (int) littleEndianInt (bytes); | |||
return (sizeByte >> 7) ? -num : num; | |||
} | |||
int64 InputStream::readInt64() | |||
@@ -109,23 +109,22 @@ void OutputStream::writeCompressedInt (int value) | |||
{ | |||
unsigned int un = (value < 0) ? (unsigned int) -value | |||
: (unsigned int) value; | |||
unsigned int tn = un; | |||
int numSigBytes = 0; | |||
uint8 data[5]; | |||
int num = 0; | |||
do | |||
while (un > 0) | |||
{ | |||
tn >>= 8; | |||
numSigBytes++; | |||
data[++num] = (uint8) un; | |||
un >>= 8; | |||
} | |||
} while (tn & 0xff); | |||
data[0] = num; | |||
if (value < 0) | |||
numSigBytes |= 0x80; | |||
data[0] |= 0x80; | |||
writeByte ((char) numSigBytes); | |||
un = swapIfBigEndian (un); | |||
write (&un, numSigBytes); | |||
write (data, num + 1); | |||
} | |||
void OutputStream::writeInt64 (int64 value) | |||
@@ -420,8 +420,8 @@ public: | |||
while (x > clip.origin.x) x -= iw; | |||
while (y > clip.origin.y) y -= ih; | |||
const int right = clip.origin.x + clip.size.width; | |||
const int bottom = clip.origin.y + clip.size.height; | |||
const int right = (int) (clip.origin.x + clip.size.width); | |||
const int bottom = (int) (clip.origin.y + clip.size.height); | |||
while (y < bottom) | |||
{ | |||
@@ -483,7 +483,7 @@ bool juce_launchFile (const String& fileName, | |||
ok = [[NSWorkspace sharedWorkspace] openURLs: urls | |||
withAppBundleIdentifier: [[NSBundle bundleWithPath: juceStringToNS (fileName)] bundleIdentifier] | |||
options: nil | |||
options: 0 | |||
additionalEventParamDescriptor: nil | |||
launchIdentifiers: nil]; | |||
} | |||
@@ -203,7 +203,7 @@ public: | |||
const int length = text.length(); | |||
CGGlyph* const glyphs = createGlyphsForString (text, length); | |||
int x = 0; | |||
float x = 0; | |||
#if SUPPORT_ONLY_10_4_FONTS | |||
NSSize* const advances = (NSSize*) juce_malloc (length * sizeof (NSSize)); | |||
@@ -273,7 +273,7 @@ public: | |||
NSSize* const advances = (NSSize*) juce_malloc (length * sizeof (NSSize)); | |||
[nsFont getAdvancements: advances forGlyphs: (NSGlyph*) glyphs count: length]; | |||
int x = 0; | |||
float x = 0; | |||
for (int i = 0; i < length; ++i) | |||
{ | |||
x += advances[i].width; | |||
@@ -251,8 +251,8 @@ void QuickTimeMovieComponent::getMovieNormalSize (int& width, int& height) const | |||
if (movie != 0) | |||
{ | |||
NSSize s = [[theMovie attributeForKey: QTMovieNaturalSizeAttribute] sizeValue]; | |||
width = s.width; | |||
height = s.height; | |||
width = (int) s.width; | |||
height = (int) s.height; | |||
} | |||
} | |||