| @@ -691,7 +691,7 @@ private: | |||||
| ParamHolder (uint32_t num) { params = new var [num]; } | ParamHolder (uint32_t num) { params = new var [num]; } | ||||
| ~ParamHolder() { delete[] params; } | ~ParamHolder() { delete[] params; } | ||||
| var* params; | |||||
| var* params; | |||||
| }; | }; | ||||
| ParamHolder params (argCount); | ParamHolder params (argCount); | ||||
| @@ -3948,7 +3948,6 @@ public: | |||||
| virtual int toInt (const ValueUnion&) const { return 0; } | virtual int toInt (const ValueUnion&) const { return 0; } | ||||
| virtual double toDouble (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 const String toString (const ValueUnion&) const { return String::empty; } | ||||
| virtual bool toBool (const ValueUnion&) const { return false; } | virtual bool toBool (const ValueUnion&) const { return false; } | ||||
| virtual DynamicObject* toObject (const ValueUnion&) const { return 0; } | virtual DynamicObject* toObject (const ValueUnion&) const { return 0; } | ||||
| @@ -3984,7 +3983,6 @@ public: | |||||
| int toInt (const ValueUnion& data) const { return data.intValue; }; | int toInt (const ValueUnion& data) const { return data.intValue; }; | ||||
| double toDouble (const ValueUnion& data) const { return (double) 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); } | const String toString (const ValueUnion& data) const { return String (data.intValue); } | ||||
| bool toBool (const ValueUnion& data) const { return data.intValue != 0; } | 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; }; | int toInt (const ValueUnion& data) const { return (int) data.doubleValue; }; | ||||
| double toDouble (const ValueUnion& data) const { return 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); } | const String toString (const ValueUnion& data) const { return String (data.doubleValue); } | ||||
| bool toBool (const ValueUnion& data) const { return data.doubleValue != 0; } | 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; }; | int toInt (const ValueUnion& data) const { return data.boolValue ? 1 : 0; }; | ||||
| double toDouble (const ValueUnion& data) const { return data.boolValue ? 1.0 : 0.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'); } | const String toString (const ValueUnion& data) const { return String::charToString (data.boolValue ? '1' : '0'); } | ||||
| bool toBool (const ValueUnion& data) const { return data.boolValue; } | bool toBool (const ValueUnion& data) const { return data.boolValue; } | ||||
| @@ -4064,7 +4060,6 @@ public: | |||||
| int toInt (const ValueUnion& data) const { return data.stringValue->getIntValue(); }; | int toInt (const ValueUnion& data) const { return data.stringValue->getIntValue(); }; | ||||
| double toDouble (const ValueUnion& data) const { return data.stringValue->getDoubleValue(); } | 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; } | const String toString (const ValueUnion& data) const { return *data.stringValue; } | ||||
| bool toBool (const ValueUnion& data) const { return data.stringValue->getIntValue() != 0 | bool toBool (const ValueUnion& data) const { return data.stringValue->getIntValue() != 0 | ||||
| || data.stringValue->trim().equalsIgnoreCase ("true") | || data.stringValue->trim().equalsIgnoreCase ("true") | ||||
| @@ -4148,7 +4143,7 @@ var::~var() throw() | |||||
| const var var::null; | 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); | type->createCopy (value, valueToCopy.value); | ||||
| } | } | ||||
| @@ -4178,7 +4173,7 @@ var::var (const char* const value_) : type (VariantType_String::getInstance()) | |||||
| value.stringValue = new String (value_); | 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_); | 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 int() const { return type->toInt (value); } | ||||
| var::operator bool() const { return type->toBool (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); } | var::operator double() const { return type->toDouble (value); } | ||||
| const String var::toString() const { return type->toString (value); } | const String var::toString() const { return type->toString (value); } | ||||
| var::operator const String() const { return type->toString (value); } | var::operator const String() const { return type->toString (value); } | ||||
| @@ -72391,7 +72386,6 @@ public: | |||||
| if (sampleRateDropDown == 0) | if (sampleRateDropDown == 0) | ||||
| { | { | ||||
| addAndMakeVisible (sampleRateDropDown = new ComboBox (String::empty)); | addAndMakeVisible (sampleRateDropDown = new ComboBox (String::empty)); | ||||
| sampleRateDropDown->addListener (this); | |||||
| sampleRateLabel = new Label (String::empty, TRANS ("sample rate:")); | sampleRateLabel = new Label (String::empty, TRANS ("sample rate:")); | ||||
| sampleRateLabel->attachToComponent (sampleRateDropDown, true); | sampleRateLabel->attachToComponent (sampleRateDropDown, true); | ||||
| @@ -72419,7 +72413,6 @@ public: | |||||
| if (bufferSizeDropDown == 0) | if (bufferSizeDropDown == 0) | ||||
| { | { | ||||
| addAndMakeVisible (bufferSizeDropDown = new ComboBox (String::empty)); | addAndMakeVisible (bufferSizeDropDown = new ComboBox (String::empty)); | ||||
| bufferSizeDropDown->addListener (this); | |||||
| bufferSizeLabel = new Label (String::empty, TRANS ("audio buffer size:")); | bufferSizeLabel = new Label (String::empty, TRANS ("audio buffer size:")); | ||||
| bufferSizeLabel->attachToComponent (bufferSizeDropDown, true); | bufferSizeLabel->attachToComponent (bufferSizeDropDown, true); | ||||
| @@ -72427,6 +72420,7 @@ public: | |||||
| else | else | ||||
| { | { | ||||
| bufferSizeDropDown->clear(); | bufferSizeDropDown->clear(); | ||||
| bufferSizeDropDown->removeListener (this); | |||||
| } | } | ||||
| const int numBufferSizes = currentDevice->getNumBufferSizesAvailable(); | const int numBufferSizes = currentDevice->getNumBufferSizesAvailable(); | ||||
| @@ -72445,6 +72439,7 @@ public: | |||||
| } | } | ||||
| bufferSizeDropDown->setSelectedId (currentDevice->getCurrentBufferSizeSamples(), true); | bufferSizeDropDown->setSelectedId (currentDevice->getCurrentBufferSizeSamples(), true); | ||||
| bufferSizeDropDown->addListener (this); | |||||
| } | } | ||||
| } | } | ||||
| else | else | ||||
| @@ -81096,14 +81091,17 @@ void Graphics::fillCheckerBoard (const Rectangle<int>& area, | |||||
| if (! clipped.isEmpty()) | if (! clipped.isEmpty()) | ||||
| { | { | ||||
| context->clipToRectangle (clipped); | 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 right = clipped.getRight(); | ||||
| const int bottom = clipped.getBottom(); | const int bottom = clipped.getBottom(); | ||||
| for (int i = 0; i < 2; ++i) | for (int i = 0; i < 2; ++i) | ||||
| { | { | ||||
| context->setFill (i == 0 ? colour1 : colour2); | |||||
| context->setFill (i == ((checkNumX ^ checkNumY) & 1) ? colour1 : colour2); | |||||
| int cy = i; | int cy = i; | ||||
| for (int y = startY; y < bottom; y += checkHeight) | for (int y = startY; y < bottom; y += checkHeight) | ||||
| @@ -64,7 +64,7 @@ | |||||
| */ | */ | ||||
| #define JUCE_MAJOR_VERSION 1 | #define JUCE_MAJOR_VERSION 1 | ||||
| #define JUCE_MINOR_VERSION 52 | #define JUCE_MINOR_VERSION 52 | ||||
| #define JUCE_BUILDNUMBER 32 | |||||
| #define JUCE_BUILDNUMBER 33 | |||||
| /** Current Juce version number. | /** Current Juce version number. | ||||
| @@ -40,7 +40,6 @@ public: | |||||
| virtual int toInt (const ValueUnion&) const { return 0; } | virtual int toInt (const ValueUnion&) const { return 0; } | ||||
| virtual double toDouble (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 const String toString (const ValueUnion&) const { return String::empty; } | ||||
| virtual bool toBool (const ValueUnion&) const { return false; } | virtual bool toBool (const ValueUnion&) const { return false; } | ||||
| virtual DynamicObject* toObject (const ValueUnion&) const { return 0; } | virtual DynamicObject* toObject (const ValueUnion&) const { return 0; } | ||||
| @@ -78,7 +77,6 @@ public: | |||||
| int toInt (const ValueUnion& data) const { return data.intValue; }; | int toInt (const ValueUnion& data) const { return data.intValue; }; | ||||
| double toDouble (const ValueUnion& data) const { return (double) 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); } | const String toString (const ValueUnion& data) const { return String (data.intValue); } | ||||
| bool toBool (const ValueUnion& data) const { return data.intValue != 0; } | 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; }; | int toInt (const ValueUnion& data) const { return (int) data.doubleValue; }; | ||||
| double toDouble (const ValueUnion& data) const { return 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); } | const String toString (const ValueUnion& data) const { return String (data.doubleValue); } | ||||
| bool toBool (const ValueUnion& data) const { return data.doubleValue != 0; } | 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; }; | int toInt (const ValueUnion& data) const { return data.boolValue ? 1 : 0; }; | ||||
| double toDouble (const ValueUnion& data) const { return data.boolValue ? 1.0 : 0.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'); } | const String toString (const ValueUnion& data) const { return String::charToString (data.boolValue ? '1' : '0'); } | ||||
| bool toBool (const ValueUnion& data) const { return data.boolValue; } | bool toBool (const ValueUnion& data) const { return data.boolValue; } | ||||
| @@ -161,7 +157,6 @@ public: | |||||
| int toInt (const ValueUnion& data) const { return data.stringValue->getIntValue(); }; | int toInt (const ValueUnion& data) const { return data.stringValue->getIntValue(); }; | ||||
| double toDouble (const ValueUnion& data) const { return data.stringValue->getDoubleValue(); } | 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; } | const String toString (const ValueUnion& data) const { return *data.stringValue; } | ||||
| bool toBool (const ValueUnion& data) const { return data.stringValue->getIntValue() != 0 | bool toBool (const ValueUnion& data) const { return data.stringValue->getIntValue() != 0 | ||||
| || data.stringValue->trim().equalsIgnoreCase ("true") | || data.stringValue->trim().equalsIgnoreCase ("true") | ||||
| @@ -250,7 +245,7 @@ var::~var() throw() | |||||
| const var var::null; | 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); | type->createCopy (value, valueToCopy.value); | ||||
| } | } | ||||
| @@ -280,7 +275,7 @@ var::var (const char* const value_) : type (VariantType_String::getInstance()) | |||||
| value.stringValue = new String (value_); | 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_); | 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 int() const { return type->toInt (value); } | ||||
| var::operator bool() const { return type->toBool (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); } | var::operator double() const { return type->toDouble (value); } | ||||
| const String var::toString() const { return type->toString (value); } | const String var::toString() const { return type->toString (value); } | ||||
| var::operator const String() const { return type->toString (value); } | var::operator const String() const { return type->toString (value); } | ||||
| @@ -33,7 +33,7 @@ | |||||
| */ | */ | ||||
| #define JUCE_MAJOR_VERSION 1 | #define JUCE_MAJOR_VERSION 1 | ||||
| #define JUCE_MINOR_VERSION 52 | #define JUCE_MINOR_VERSION 52 | ||||
| #define JUCE_BUILDNUMBER 32 | |||||
| #define JUCE_BUILDNUMBER 33 | |||||
| /** Current Juce version number. | /** Current Juce version number. | ||||
| @@ -514,7 +514,6 @@ public: | |||||
| if (sampleRateDropDown == 0) | if (sampleRateDropDown == 0) | ||||
| { | { | ||||
| addAndMakeVisible (sampleRateDropDown = new ComboBox (String::empty)); | addAndMakeVisible (sampleRateDropDown = new ComboBox (String::empty)); | ||||
| sampleRateDropDown->addListener (this); | |||||
| sampleRateLabel = new Label (String::empty, TRANS ("sample rate:")); | sampleRateLabel = new Label (String::empty, TRANS ("sample rate:")); | ||||
| sampleRateLabel->attachToComponent (sampleRateDropDown, true); | sampleRateLabel->attachToComponent (sampleRateDropDown, true); | ||||
| @@ -542,7 +541,6 @@ public: | |||||
| if (bufferSizeDropDown == 0) | if (bufferSizeDropDown == 0) | ||||
| { | { | ||||
| addAndMakeVisible (bufferSizeDropDown = new ComboBox (String::empty)); | addAndMakeVisible (bufferSizeDropDown = new ComboBox (String::empty)); | ||||
| bufferSizeDropDown->addListener (this); | |||||
| bufferSizeLabel = new Label (String::empty, TRANS ("audio buffer size:")); | bufferSizeLabel = new Label (String::empty, TRANS ("audio buffer size:")); | ||||
| bufferSizeLabel->attachToComponent (bufferSizeDropDown, true); | bufferSizeLabel->attachToComponent (bufferSizeDropDown, true); | ||||
| @@ -550,6 +548,7 @@ public: | |||||
| else | else | ||||
| { | { | ||||
| bufferSizeDropDown->clear(); | bufferSizeDropDown->clear(); | ||||
| bufferSizeDropDown->removeListener (this); | |||||
| } | } | ||||
| const int numBufferSizes = currentDevice->getNumBufferSizesAvailable(); | const int numBufferSizes = currentDevice->getNumBufferSizesAvailable(); | ||||
| @@ -568,6 +567,7 @@ public: | |||||
| } | } | ||||
| bufferSizeDropDown->setSelectedId (currentDevice->getCurrentBufferSizeSamples(), true); | bufferSizeDropDown->setSelectedId (currentDevice->getCurrentBufferSizeSamples(), true); | ||||
| bufferSizeDropDown->addListener (this); | |||||
| } | } | ||||
| } | } | ||||
| else | else | ||||
| @@ -500,14 +500,17 @@ void Graphics::fillCheckerBoard (const Rectangle<int>& area, | |||||
| if (! clipped.isEmpty()) | if (! clipped.isEmpty()) | ||||
| { | { | ||||
| context->clipToRectangle (clipped); | 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 right = clipped.getRight(); | ||||
| const int bottom = clipped.getBottom(); | const int bottom = clipped.getBottom(); | ||||
| for (int i = 0; i < 2; ++i) | for (int i = 0; i < 2; ++i) | ||||
| { | { | ||||
| context->setFill (i == 0 ? colour1 : colour2); | |||||
| context->setFill (i == ((checkNumX ^ checkNumY) & 1) ? colour1 : colour2); | |||||
| int cy = i; | int cy = i; | ||||
| for (int y = startY; y < bottom; y += checkHeight) | for (int y = startY; y < bottom; y += checkHeight) | ||||