diff --git a/extras/browser plugins/wrapper/juce_NPAPI_GlueCode.cpp b/extras/browser plugins/wrapper/juce_NPAPI_GlueCode.cpp index 12021ddd18..286d88e28e 100644 --- a/extras/browser plugins/wrapper/juce_NPAPI_GlueCode.cpp +++ b/extras/browser plugins/wrapper/juce_NPAPI_GlueCode.cpp @@ -691,7 +691,7 @@ private: ParamHolder (uint32_t num) { params = new var [num]; } ~ParamHolder() { delete[] params; } - var* params; + var* params; }; ParamHolder params (argCount); diff --git a/juce_amalgamated.cpp b/juce_amalgamated.cpp index 595f0e68ee..0f814ea39b 100644 --- a/juce_amalgamated.cpp +++ b/juce_amalgamated.cpp @@ -3948,7 +3948,6 @@ public: virtual int toInt (const ValueUnion&) const { return 0; } virtual double toDouble (const ValueUnion&) const { return 0; } - virtual float toFloat (const ValueUnion&) const { return 0; } virtual const String toString (const ValueUnion&) const { return String::empty; } virtual bool toBool (const ValueUnion&) const { return false; } virtual DynamicObject* toObject (const ValueUnion&) const { return 0; } @@ -3984,7 +3983,6 @@ public: int toInt (const ValueUnion& data) const { return data.intValue; }; double toDouble (const ValueUnion& data) const { return (double) data.intValue; } - float toFloat (const ValueUnion& data) const { return (float) data.intValue; } const String toString (const ValueUnion& data) const { return String (data.intValue); } bool toBool (const ValueUnion& data) const { return data.intValue != 0; } @@ -4010,7 +4008,6 @@ public: int toInt (const ValueUnion& data) const { return (int) data.doubleValue; }; double toDouble (const ValueUnion& data) const { return data.doubleValue; } - float toFloat (const ValueUnion& data) const { return (float) data.doubleValue; } const String toString (const ValueUnion& data) const { return String (data.doubleValue); } bool toBool (const ValueUnion& data) const { return data.doubleValue != 0; } @@ -4036,7 +4033,6 @@ public: int toInt (const ValueUnion& data) const { return data.boolValue ? 1 : 0; }; double toDouble (const ValueUnion& data) const { return data.boolValue ? 1.0 : 0.0; } - float toFloat (const ValueUnion& data) const { return data.boolValue ? 1.0f : 0.0f; } const String toString (const ValueUnion& data) const { return String::charToString (data.boolValue ? '1' : '0'); } bool toBool (const ValueUnion& data) const { return data.boolValue; } @@ -4064,7 +4060,6 @@ public: int toInt (const ValueUnion& data) const { return data.stringValue->getIntValue(); }; double toDouble (const ValueUnion& data) const { return data.stringValue->getDoubleValue(); } - float toFloat (const ValueUnion& data) const { return data.stringValue->getFloatValue(); } const String toString (const ValueUnion& data) const { return *data.stringValue; } bool toBool (const ValueUnion& data) const { return data.stringValue->getIntValue() != 0 || data.stringValue->trim().equalsIgnoreCase ("true") @@ -4148,7 +4143,7 @@ var::~var() throw() const var var::null; -var::var (const var& valueToCopy) : type (valueToCopy.type) +var::var (const var& valueToCopy) : type (valueToCopy.type) { type->createCopy (value, valueToCopy.value); } @@ -4178,7 +4173,7 @@ var::var (const char* const value_) : type (VariantType_String::getInstance()) value.stringValue = new String (value_); } -var::var (const juce_wchar* const value_) : type (VariantType_String::getInstance()) +var::var (const juce_wchar* const value_) : type (VariantType_String::getInstance()) { value.stringValue = new String (value_); } @@ -4206,7 +4201,7 @@ bool var::isMethod() const throw() { return type->isMethod(); } var::operator int() const { return type->toInt (value); } var::operator bool() const { return type->toBool (value); } -var::operator float() const { return type->toFloat (value); } +var::operator float() const { return (float) type->toDouble (value); } var::operator double() const { return type->toDouble (value); } const String var::toString() const { return type->toString (value); } var::operator const String() const { return type->toString (value); } @@ -72391,7 +72386,6 @@ public: if (sampleRateDropDown == 0) { addAndMakeVisible (sampleRateDropDown = new ComboBox (String::empty)); - sampleRateDropDown->addListener (this); sampleRateLabel = new Label (String::empty, TRANS ("sample rate:")); sampleRateLabel->attachToComponent (sampleRateDropDown, true); @@ -72419,7 +72413,6 @@ public: if (bufferSizeDropDown == 0) { addAndMakeVisible (bufferSizeDropDown = new ComboBox (String::empty)); - bufferSizeDropDown->addListener (this); bufferSizeLabel = new Label (String::empty, TRANS ("audio buffer size:")); bufferSizeLabel->attachToComponent (bufferSizeDropDown, true); @@ -72427,6 +72420,7 @@ public: else { bufferSizeDropDown->clear(); + bufferSizeDropDown->removeListener (this); } const int numBufferSizes = currentDevice->getNumBufferSizesAvailable(); @@ -72445,6 +72439,7 @@ public: } bufferSizeDropDown->setSelectedId (currentDevice->getCurrentBufferSizeSamples(), true); + bufferSizeDropDown->addListener (this); } } else @@ -81096,14 +81091,17 @@ void Graphics::fillCheckerBoard (const Rectangle& area, if (! clipped.isEmpty()) { context->clipToRectangle (clipped); - const int startX = area.getX() + ((clipped.getX() - area.getX()) / checkWidth) * checkWidth; - const int startY = area.getY() + ((clipped.getY() - area.getY()) / checkHeight) * checkHeight; + + const int checkNumX = (clipped.getX() - area.getX()) / checkWidth; + const int checkNumY = (clipped.getY() - area.getY()) / checkHeight; + const int startX = area.getX() + checkNumX * checkWidth; + const int startY = area.getY() + checkNumY * checkHeight; const int right = clipped.getRight(); const int bottom = clipped.getBottom(); for (int i = 0; i < 2; ++i) { - context->setFill (i == 0 ? colour1 : colour2); + context->setFill (i == ((checkNumX ^ checkNumY) & 1) ? colour1 : colour2); int cy = i; for (int y = startY; y < bottom; y += checkHeight) diff --git a/juce_amalgamated.h b/juce_amalgamated.h index 6d7d60f5a6..66bf3d2a84 100644 --- a/juce_amalgamated.h +++ b/juce_amalgamated.h @@ -64,7 +64,7 @@ */ #define JUCE_MAJOR_VERSION 1 #define JUCE_MINOR_VERSION 52 -#define JUCE_BUILDNUMBER 32 +#define JUCE_BUILDNUMBER 33 /** Current Juce version number. diff --git a/src/containers/juce_Variant.cpp b/src/containers/juce_Variant.cpp index cd9348ded1..f809228a70 100644 --- a/src/containers/juce_Variant.cpp +++ b/src/containers/juce_Variant.cpp @@ -40,7 +40,6 @@ public: virtual int toInt (const ValueUnion&) const { return 0; } virtual double toDouble (const ValueUnion&) const { return 0; } - virtual float toFloat (const ValueUnion&) const { return 0; } virtual const String toString (const ValueUnion&) const { return String::empty; } virtual bool toBool (const ValueUnion&) const { return false; } virtual DynamicObject* toObject (const ValueUnion&) const { return 0; } @@ -78,7 +77,6 @@ public: int toInt (const ValueUnion& data) const { return data.intValue; }; double toDouble (const ValueUnion& data) const { return (double) data.intValue; } - float toFloat (const ValueUnion& data) const { return (float) data.intValue; } const String toString (const ValueUnion& data) const { return String (data.intValue); } bool toBool (const ValueUnion& data) const { return data.intValue != 0; } @@ -105,7 +103,6 @@ public: int toInt (const ValueUnion& data) const { return (int) data.doubleValue; }; double toDouble (const ValueUnion& data) const { return data.doubleValue; } - float toFloat (const ValueUnion& data) const { return (float) data.doubleValue; } const String toString (const ValueUnion& data) const { return String (data.doubleValue); } bool toBool (const ValueUnion& data) const { return data.doubleValue != 0; } @@ -132,7 +129,6 @@ public: int toInt (const ValueUnion& data) const { return data.boolValue ? 1 : 0; }; double toDouble (const ValueUnion& data) const { return data.boolValue ? 1.0 : 0.0; } - float toFloat (const ValueUnion& data) const { return data.boolValue ? 1.0f : 0.0f; } const String toString (const ValueUnion& data) const { return String::charToString (data.boolValue ? '1' : '0'); } bool toBool (const ValueUnion& data) const { return data.boolValue; } @@ -161,7 +157,6 @@ public: int toInt (const ValueUnion& data) const { return data.stringValue->getIntValue(); }; double toDouble (const ValueUnion& data) const { return data.stringValue->getDoubleValue(); } - float toFloat (const ValueUnion& data) const { return data.stringValue->getFloatValue(); } const String toString (const ValueUnion& data) const { return *data.stringValue; } bool toBool (const ValueUnion& data) const { return data.stringValue->getIntValue() != 0 || data.stringValue->trim().equalsIgnoreCase ("true") @@ -250,7 +245,7 @@ var::~var() throw() const var var::null; //============================================================================== -var::var (const var& valueToCopy) : type (valueToCopy.type) +var::var (const var& valueToCopy) : type (valueToCopy.type) { type->createCopy (value, valueToCopy.value); } @@ -280,7 +275,7 @@ var::var (const char* const value_) : type (VariantType_String::getInstance()) value.stringValue = new String (value_); } -var::var (const juce_wchar* const value_) : type (VariantType_String::getInstance()) +var::var (const juce_wchar* const value_) : type (VariantType_String::getInstance()) { value.stringValue = new String (value_); } @@ -309,7 +304,7 @@ bool var::isMethod() const throw() { return type->isMethod(); } var::operator int() const { return type->toInt (value); } var::operator bool() const { return type->toBool (value); } -var::operator float() const { return type->toFloat (value); } +var::operator float() const { return (float) type->toDouble (value); } var::operator double() const { return type->toDouble (value); } const String var::toString() const { return type->toString (value); } var::operator const String() const { return type->toString (value); } diff --git a/src/core/juce_StandardHeader.h b/src/core/juce_StandardHeader.h index c6a8b2d9e3..ec8a1c2c15 100644 --- a/src/core/juce_StandardHeader.h +++ b/src/core/juce_StandardHeader.h @@ -33,7 +33,7 @@ */ #define JUCE_MAJOR_VERSION 1 #define JUCE_MINOR_VERSION 52 -#define JUCE_BUILDNUMBER 32 +#define JUCE_BUILDNUMBER 33 /** Current Juce version number. diff --git a/src/gui/components/special/juce_AudioDeviceSelectorComponent.cpp b/src/gui/components/special/juce_AudioDeviceSelectorComponent.cpp index 81ae17ae35..45dd5387c1 100644 --- a/src/gui/components/special/juce_AudioDeviceSelectorComponent.cpp +++ b/src/gui/components/special/juce_AudioDeviceSelectorComponent.cpp @@ -514,7 +514,6 @@ public: if (sampleRateDropDown == 0) { addAndMakeVisible (sampleRateDropDown = new ComboBox (String::empty)); - sampleRateDropDown->addListener (this); sampleRateLabel = new Label (String::empty, TRANS ("sample rate:")); sampleRateLabel->attachToComponent (sampleRateDropDown, true); @@ -542,7 +541,6 @@ public: if (bufferSizeDropDown == 0) { addAndMakeVisible (bufferSizeDropDown = new ComboBox (String::empty)); - bufferSizeDropDown->addListener (this); bufferSizeLabel = new Label (String::empty, TRANS ("audio buffer size:")); bufferSizeLabel->attachToComponent (bufferSizeDropDown, true); @@ -550,6 +548,7 @@ public: else { bufferSizeDropDown->clear(); + bufferSizeDropDown->removeListener (this); } const int numBufferSizes = currentDevice->getNumBufferSizesAvailable(); @@ -568,6 +567,7 @@ public: } bufferSizeDropDown->setSelectedId (currentDevice->getCurrentBufferSizeSamples(), true); + bufferSizeDropDown->addListener (this); } } else diff --git a/src/gui/graphics/contexts/juce_Graphics.cpp b/src/gui/graphics/contexts/juce_Graphics.cpp index cb6306c608..56618a91a9 100644 --- a/src/gui/graphics/contexts/juce_Graphics.cpp +++ b/src/gui/graphics/contexts/juce_Graphics.cpp @@ -500,14 +500,17 @@ void Graphics::fillCheckerBoard (const Rectangle& area, if (! clipped.isEmpty()) { context->clipToRectangle (clipped); - const int startX = area.getX() + ((clipped.getX() - area.getX()) / checkWidth) * checkWidth; - const int startY = area.getY() + ((clipped.getY() - area.getY()) / checkHeight) * checkHeight; + + const int checkNumX = (clipped.getX() - area.getX()) / checkWidth; + const int checkNumY = (clipped.getY() - area.getY()) / checkHeight; + const int startX = area.getX() + checkNumX * checkWidth; + const int startY = area.getY() + checkNumY * checkHeight; const int right = clipped.getRight(); const int bottom = clipped.getBottom(); for (int i = 0; i < 2; ++i) { - context->setFill (i == 0 ? colour1 : colour2); + context->setFill (i == ((checkNumX ^ checkNumY) & 1) ? colour1 : colour2); int cy = i; for (int y = startY; y < bottom; y += checkHeight)