| @@ -6,66 +6,69 @@ Develop | |||||
| Change | Change | ||||
| ------ | ------ | ||||
| SystemStats::getDeviceDescription() will now return the device code on iOS e.g. | |||||
| SystemStats::getDeviceDescription() will now return the device code on iOS e.g. | |||||
| "iPhone7, 2" for an iPhone 6 instead of just "iPhone". | "iPhone7, 2" for an iPhone 6 instead of just "iPhone". | ||||
| Possible Issues | Possible Issues | ||||
| --------------- | --------------- | ||||
| Code that previously relied on this method returning either explicitly "iPhone" | |||||
| Code that previously relied on this method returning either explicitly "iPhone" | |||||
| or "iPad" may no longer work. | or "iPad" may no longer work. | ||||
| Workaround | Workaround | ||||
| ---------- | ---------- | ||||
| Modify this code to handle the new device code string e.g. by changing: | Modify this code to handle the new device code string e.g. by changing: | ||||
| SystemStats::getDeviceDescription() == "iPhone"; | |||||
| to | |||||
| SystemStats::getDeviceDescription() == "iPhone"; | |||||
| to | |||||
| SystemStats::getDeviceDescription().contains ("iPhone");. | SystemStats::getDeviceDescription().contains ("iPhone");. | ||||
| Rationale | Rationale | ||||
| --------- | --------- | ||||
| The exact device model can now be deduced from this information instead of just | |||||
| The exact device model can now be deduced from this information instead of just | |||||
| the device family. | the device family. | ||||
| Change | Change | ||||
| ------ | ------ | ||||
| DragAndDropContainer::performExternalDragDropOfFiles() and ::performExternalDragDropOfText() | |||||
| are now asynchronous on Windows. | |||||
| DragAndDropContainer::performExternalDragDropOfFiles() and | |||||
| ::performExternalDragDropOfText() are now asynchronous on Windows. | |||||
| Possible Issues | Possible Issues | ||||
| --------------- | --------------- | ||||
| Code that previously relied on these operations being synchronous and blocking until | |||||
| completion will no longer work as the methods will return immediately and run | |||||
| asynchronously. | |||||
| Code that previously relied on these operations being synchronous and blocking | |||||
| until completion will no longer work as the methods will return immediately and | |||||
| run asynchronously. | |||||
| Workaround | Workaround | ||||
| ---------- | ---------- | ||||
| Use the callback argument that has been added to these methods to register a lambda | |||||
| that will be called when the operation has been completed. | |||||
| Use the callback argument that has been added to these methods to register a | |||||
| lambda that will be called when the operation has been completed. | |||||
| Rationale | Rationale | ||||
| --------- | --------- | ||||
| The behaviour of these methods is now consistent across all platforms and the method | |||||
| no longer blocks the message thread on Windows. | |||||
| The behaviour of these methods is now consistent across all platforms and the | |||||
| method no longer blocks the message thread on Windows. | |||||
| Change | Change | ||||
| ------ | ------ | ||||
| AudioProcessor::getTailLengthSeconds can now return infinity for VST/VST3/AU/AUv3. | |||||
| AudioProcessor::getTailLengthSeconds can now return infinity for | |||||
| VST/VST3/AU/AUv3. | |||||
| Possible Issues | Possible Issues | ||||
| --------------- | --------------- | ||||
| If you are using the result of getTailLengthSeconds to allocate a buffer in your host, | |||||
| then your host will now likely crash when loading a plug-in with an infinite tail time. | |||||
| If you are using the result of getTailLengthSeconds to allocate a buffer in | |||||
| your host, then your host will now likely crash when loading a plug-in with an | |||||
| infinite tail time. | |||||
| Workaround | Workaround | ||||
| ---------- | ---------- | ||||
| Re-write your code to not use the result of getTailLengthSeconds directly to allocate | |||||
| a buffer. | |||||
| Re-write your code to not use the result of getTailLengthSeconds directly to | |||||
| allocate a buffer. | |||||
| Rationale | Rationale | ||||
| --------- | --------- | ||||
| Before this change there was no way for a JUCE plug-in to report an infinite tail time. | |||||
| Before this change there was no way for a JUCE plug-in to report an infinite | |||||
| tail time. | |||||
| Version 5.3.2 | Version 5.3.2 | ||||
| @@ -125,7 +128,7 @@ the Network Graphics Demo have been moved into the extras directory. | |||||
| Possible Issues | Possible Issues | ||||
| --------------- | --------------- | ||||
| 1. Due to the large number of changes that have occured in the JUCE Git | |||||
| 1. Due to the large number of changes that have occurred in the JUCE Git | |||||
| repository, pulling this version may result in a messy folder structure with | repository, pulling this version may result in a messy folder structure with | ||||
| empty directories that have been removed. | empty directories that have been removed. | ||||
| 2. The JUCE Demo project is no longer in the JUCE repository. | 2. The JUCE Demo project is no longer in the JUCE repository. | ||||
| @@ -521,7 +524,7 @@ settings instead of the build configuration settings. | |||||
| Possible Issues | Possible Issues | ||||
| --------------- | --------------- | ||||
| Projects that had a specific verison of the C++ language standard set for | |||||
| Projects that had a specific version of the C++ language standard set for | |||||
| exporter build configurations will instead use the default (C++11) when | exporter build configurations will instead use the default (C++11) when | ||||
| re-saving with the new Projucer. | re-saving with the new Projucer. | ||||
| @@ -92,7 +92,7 @@ public: | |||||
| // Adds the child light components and makes them visible | // Adds the child light components and makes them visible | ||||
| // within this component. | // within this component. | ||||
| // (they currently rely on having a default constructor | // (they currently rely on having a default constructor | ||||
| // so they dont have to be individually initialised) | |||||
| // so they don't have to be individually initialised) | |||||
| for (auto i = 0; i < numX * numY; ++i) | for (auto i = 0; i < numX * numY; ++i) | ||||
| addAndMakeVisible (toggleLights[i]); | addAndMakeVisible (toggleLights[i]); | ||||
| } | } | ||||
| @@ -108,7 +108,7 @@ public: | |||||
| verticalDividerBar.reset (new StretchableLayoutResizerBar (&verticalLayout, 1, true)); | verticalDividerBar.reset (new StretchableLayoutResizerBar (&verticalLayout, 1, true)); | ||||
| addAndMakeVisible (verticalDividerBar.get()); | addAndMakeVisible (verticalDividerBar.get()); | ||||
| // ..and pick a random font to select intially | |||||
| // ..and pick a random font to select initially | |||||
| listBox.selectRow (Random::getSystemRandom().nextInt (fonts.size())); | listBox.selectRow (Random::getSystemRandom().nextInt (fonts.size())); | ||||
| demoTextBox.setMultiLine (true); | demoTextBox.setMultiLine (true); | ||||
| @@ -414,7 +414,7 @@ private: | |||||
| { | { | ||||
| AlertWindow::showMessageBoxAsync (AlertWindow::WarningIcon, | AlertWindow::showMessageBoxAsync (AlertWindow::WarningIcon, | ||||
| "Unknown error", | "Unknown error", | ||||
| "An unknown error occured while trying to disconnect from UDP port.", | |||||
| "An unknown error occurred while trying to disconnect from UDP port.", | |||||
| "OK"); | "OK"); | ||||
| } | } | ||||
| @@ -5,7 +5,7 @@ | |||||
| This example is an app that we threw together to run as a demo of JUCE on our | This example is an app that we threw together to run as a demo of JUCE on our | ||||
| booth at CES 2016. | booth at CES 2016. | ||||
| It allows a collection of heterogenous devices on a local network to collectively | |||||
| It allows a collection of heterogeneous devices on a local network to collectively | |||||
| draw parts of a large animated vector graphic image that is being generated and | draw parts of a large animated vector graphic image that is being generated and | ||||
| broadcast by one of the machines (the 'master'). | broadcast by one of the machines (the 'master'). | ||||
| @@ -910,7 +910,7 @@ void Project::createPropertyEditors (PropertyListBuilder& props) | |||||
| props.add (new TextPropertyComponent (versionValue, "Project Version", 16, false), | props.add (new TextPropertyComponent (versionValue, "Project Version", 16, false), | ||||
| "The project's version number. This should be in the format major.minor.point[.point] where you should omit the final " | "The project's version number. This should be in the format major.minor.point[.point] where you should omit the final " | ||||
| "(optional) [.point] if you are targetting AU and AUv3 plug-ins as they only support three number versions."); | |||||
| "(optional) [.point] if you are targeting AU and AUv3 plug-ins as they only support three number versions."); | |||||
| props.add (new TextPropertyComponent (companyNameValue, "Company Name", 256, false), | props.add (new TextPropertyComponent (companyNameValue, "Company Name", 256, false), | ||||
| "Your company name, which will be added to the properties of the binary where possible"); | "Your company name, which will be added to the properties of the binary where possible"); | ||||
| @@ -132,7 +132,7 @@ struct JUCE_API MPENote | |||||
| */ | */ | ||||
| MPEValue pressure { MPEValue::centreValue() }; | MPEValue pressure { MPEValue::centreValue() }; | ||||
| /** Inital value of timbre when the note was triggered. | |||||
| /** Initial value of timbre when the note was triggered. | |||||
| This should never change during the lifetime of an MPENote object. | This should never change during the lifetime of an MPENote object. | ||||
| */ | */ | ||||
| MPEValue initialTimbre { MPEValue::centreValue() }; | MPEValue initialTimbre { MPEValue::centreValue() }; | ||||
| @@ -665,7 +665,7 @@ public: | |||||
| for (auto tagEntry : knownTags) | for (auto tagEntry : knownTags) | ||||
| expect (AudioChannelSet::channelSetWithChannels (CoreAudioLayouts::getSpeakerLayoutForCoreAudioTag (tagEntry.tag)) | expect (AudioChannelSet::channelSetWithChannels (CoreAudioLayouts::getSpeakerLayoutForCoreAudioTag (tagEntry.tag)) | ||||
| == CoreAudioLayouts::fromCoreAudio (tagEntry.tag), | == CoreAudioLayouts::fromCoreAudio (tagEntry.tag), | ||||
| "Tag \"" + String (tagEntry.name) + "\" is not converted consistantly by JUCE"); | |||||
| "Tag \"" + String (tagEntry.name) + "\" is not converted consistently by JUCE"); | |||||
| } | } | ||||
| { | { | ||||
| @@ -1892,7 +1892,7 @@ namespace AAXClasses | |||||
| // and the size of the data returned. To avoid generating | // and the size of the data returned. To avoid generating | ||||
| // it again in GetChunk, we need to store it somewhere. | // it again in GetChunk, we need to store it somewhere. | ||||
| // However, as GetChunkSize and GetChunk can be called | // However, as GetChunkSize and GetChunk can be called | ||||
| // on different threads, we store it in thread dependant storage | |||||
| // on different threads, we store it in thread dependent storage | |||||
| // in a hash map with the thread id as a key. | // in a hash map with the thread id as a key. | ||||
| mutable ThreadLocalValue<ChunkMemoryBlock> perThreadFilterData; | mutable ThreadLocalValue<ChunkMemoryBlock> perThreadFilterData; | ||||
| CriticalSection perThreadDataLock; | CriticalSection perThreadDataLock; | ||||
| @@ -41,7 +41,7 @@ String AudioPluginInstance::getParameterID (int parameterIndex) | |||||
| // Currently there is no corresponding method available in the | // Currently there is no corresponding method available in the | ||||
| // AudioProcessorParameter class, and the previous behaviour of JUCE's | // AudioProcessorParameter class, and the previous behaviour of JUCE's | ||||
| // plug-in hosting code simply returns a string version of the index; to | // plug-in hosting code simply returns a string version of the index; to | ||||
| // maintain backwards compatibilty you should perform the operation below | |||||
| // maintain backwards compatibility you should perform the operation below | |||||
| // this comment. However the caveat is that for plug-ins which change their | // this comment. However the caveat is that for plug-ins which change their | ||||
| // number of parameters dynamically at runtime you cannot rely upon the | // number of parameters dynamically at runtime you cannot rely upon the | ||||
| // returned parameter ID mapping to the correct parameter. A comprehensive | // returned parameter ID mapping to the correct parameter. A comprehensive | ||||
| @@ -412,8 +412,8 @@ public: | |||||
| @param currentLayout If non-null, pretend that the current layout of the AudioProcessor is | @param currentLayout If non-null, pretend that the current layout of the AudioProcessor is | ||||
| currentLayout. On exit, currentLayout will be modified to | currentLayout. On exit, currentLayout will be modified to | ||||
| to represent the buses layouts of the AudioProcessor as if the layout | to represent the buses layouts of the AudioProcessor as if the layout | ||||
| of the reciever had been succesfully changed. This is useful as changing | |||||
| the layout of the reciever may change the bus layout of other buses. | |||||
| of the receiver had been successfully changed. This is useful as changing | |||||
| the layout of the receiver may change the bus layout of other buses. | |||||
| @see AudioChannelSet | @see AudioChannelSet | ||||
| */ | */ | ||||
| @@ -1559,7 +1559,7 @@ protected: | |||||
| When adding a bus, isAddingBuses will be true and the plug-in is | When adding a bus, isAddingBuses will be true and the plug-in is | ||||
| expected to fill out outNewBusProperties with the properties of the | expected to fill out outNewBusProperties with the properties of the | ||||
| bus which will be created just after the succesful return of this callback. | |||||
| bus which will be created just after the successful return of this callback. | |||||
| Implementations of AudioProcessor will rarely need to override this | Implementations of AudioProcessor will rarely need to override this | ||||
| method. Only override this method if your processor supports adding | method. Only override this method if your processor supports adding | ||||
| @@ -216,7 +216,7 @@ public: | |||||
| /** Returns the set of strings which represent the possible states a parameter | /** Returns the set of strings which represent the possible states a parameter | ||||
| can be in. | can be in. | ||||
| If you are hosting a plug-in you can use the result of this funtion to | |||||
| If you are hosting a plug-in you can use the result of this function to | |||||
| populate a ComboBox listing the allowed values. | populate a ComboBox listing the allowed values. | ||||
| If you are implementing a plug-in then you do not need to override this. | If you are implementing a plug-in then you do not need to override this. | ||||
| @@ -110,7 +110,7 @@ float abs (float arg); | |||||
| @param value the value within the source range to map | @param value the value within the source range to map | ||||
| @param sourceMin the minimum value of the source range | @param sourceMin the minimum value of the source range | ||||
| @param sourceMax the maximum value of the source range | @param sourceMax the maximum value of the source range | ||||
| @param destMin the minumum value of the destination range | |||||
| @param destMin the minimum value of the destination range | |||||
| @param destMax the maximum value of the destination range | @param destMax the maximum value of the destination range | ||||
| @returns the original value mapped to the destination range | @returns the original value mapped to the destination range | ||||
| */ | */ | ||||
| @@ -5,7 +5,7 @@ The first 7 bits of a message is the index of the device within the topology to | |||||
| message should be delivered, or from which it originated. The 0x40 bit of this will be set | message should be delivered, or from which it originated. The 0x40 bit of this will be set | ||||
| to indicate that it's a device->host message, or clear for host->device | to indicate that it's a device->host message, or clear for host->device | ||||
| The next 32 bits are a timestamp, in milliseconds since the source device was booted. | |||||
| The next 32 bits are a timestamp, in milliseconds since the source device was booted. | |||||
| If sending from the host to the device, or for types of packet | If sending from the host to the device, or for types of packet | ||||
| where the timestamp is irrelevant, this can be 0. | where the timestamp is irrelevant, this can be 0. | ||||
| @@ -27,7 +27,7 @@ This is followed by a series of device-info blocks of the form: | |||||
| 10 bits - device firmware version | 10 bits - device firmware version | ||||
| 6 bits - battery status | 6 bits - battery status | ||||
| Next follows by a series of connection-info blocks of ths form: | |||||
| Next follows by a series of connection-info blocks of the form: | |||||
| 7 bits - device 1 index (i.e. index in the list of devices sent above) | 7 bits - device 1 index (i.e. index in the list of devices sent above) | ||||
| 5 bits - device 1 port type | 5 bits - device 1 port type | ||||
| @@ -388,7 +388,7 @@ public: | |||||
| } | } | ||||
| @endcode | @endcode | ||||
| The order in which items are iterated bears no resemblence to the order in which | |||||
| The order in which items are iterated bears no resemblance to the order in which | |||||
| they were originally added! | they were originally added! | ||||
| Obviously as soon as you call any non-const methods on the original hash-map, any | Obviously as soon as you call any non-const methods on the original hash-map, any | ||||
| @@ -114,7 +114,7 @@ public: | |||||
| bool isDirectory() const; | bool isDirectory() const; | ||||
| /** Checks whether the path of this file represents the root of a file system, | /** Checks whether the path of this file represents the root of a file system, | ||||
| irrespective of its existance. | |||||
| irrespective of its existence. | |||||
| This will return true for "C:", "D:", etc on Windows and "/" on other | This will return true for "C:", "D:", etc on Windows and "/" on other | ||||
| platforms. | platforms. | ||||
| @@ -51,7 +51,7 @@ namespace std | |||||
| /** Creates an empty function. */ | /** Creates an empty function. */ | ||||
| function (decltype (nullptr)) noexcept {} | function (decltype (nullptr)) noexcept {} | ||||
| /** Creates a function targetting the provided Functor. */ | |||||
| /** Creates a function targeting the provided Functor. */ | |||||
| template <typename Functor> | template <typename Functor> | ||||
| function (Functor f) | function (Functor f) | ||||
| { | { | ||||
| @@ -347,7 +347,7 @@ public: | |||||
| //============================================================================== | //============================================================================== | ||||
| /** Represents a download task. | /** Represents a download task. | ||||
| Returned by downloadToFile to allow querying and controling the download task. | |||||
| Returned by downloadToFile to allow querying and controlling the download task. | |||||
| */ | */ | ||||
| class DownloadTask | class DownloadTask | ||||
| { | { | ||||
| @@ -464,7 +464,7 @@ public: | |||||
| If it fails, or if the text that it reads can't be parsed as XML, this will | If it fails, or if the text that it reads can't be parsed as XML, this will | ||||
| return nullptr. | return nullptr. | ||||
| When it returns a valid XmlElement object, the caller is responsibile for deleting | |||||
| When it returns a valid XmlElement object, the caller is responsible for deleting | |||||
| this object when no longer needed. | this object when no longer needed. | ||||
| Note that on some platforms (Android, for example) it's not permitted to do any network | Note that on some platforms (Android, for example) it's not permitted to do any network | ||||
| @@ -101,7 +101,7 @@ class JUCE_API WebInputStream : public InputStream | |||||
| If getResponseHeaders is called without an established connection, then | If getResponseHeaders is called without an established connection, then | ||||
| getResponseHeaders will call connect internally and block until connect | getResponseHeaders will call connect internally and block until connect | ||||
| returns - either due to a succesful connection or a connection | |||||
| returns - either due to a successful connection or a connection | |||||
| error. | error. | ||||
| @see connect | @see connect | ||||
| @@ -112,7 +112,7 @@ class JUCE_API WebInputStream : public InputStream | |||||
| If getStatusCode is called without an established connection, then | If getStatusCode is called without an established connection, then | ||||
| getStatusCode will call connect internally and block until connect | getStatusCode will call connect internally and block until connect | ||||
| returns - either due to a succesful connection or a connection | |||||
| returns - either due to a successful connection or a connection | |||||
| error. | error. | ||||
| @see connect | @see connect | ||||
| @@ -153,7 +153,7 @@ class JUCE_API WebInputStream : public InputStream | |||||
| If getTotalLength is called without an established connection, then | If getTotalLength is called without an established connection, then | ||||
| getTotalLength will call connect internally and block until connect | getTotalLength will call connect internally and block until connect | ||||
| returns - either due to a succesful connection or a connection | |||||
| returns - either due to a successful connection or a connection | |||||
| error. | error. | ||||
| If the size of the stream isn't actually known, this will return -1. | If the size of the stream isn't actually known, this will return -1. | ||||
| @@ -37,7 +37,7 @@ class JUCE_API MemoryOutputStream : public OutputStream | |||||
| public: | public: | ||||
| //============================================================================== | //============================================================================== | ||||
| /** Creates an empty memory stream, ready to be written into. | /** Creates an empty memory stream, ready to be written into. | ||||
| @param initialSize the intial amount of capacity to allocate for writing into | |||||
| @param initialSize the initial amount of capacity to allocate for writing into | |||||
| */ | */ | ||||
| MemoryOutputStream (size_t initialSize = 256); | MemoryOutputStream (size_t initialSize = 256); | ||||
| @@ -73,7 +73,7 @@ public: | |||||
| @param buffer The message that should be encrypted. See bufferSize on size | @param buffer The message that should be encrypted. See bufferSize on size | ||||
| requirements! | requirements! | ||||
| @param sizeOfMsg The size of the message that should be encrypted in bytes | @param sizeOfMsg The size of the message that should be encrypted in bytes | ||||
| @param bufferSize The size of the buffer in bytes. To accomadate the encypted | |||||
| @param bufferSize The size of the buffer in bytes. To accommodate the encypted | |||||
| data, the buffer must be larger than the message: the size of | data, the buffer must be larger than the message: the size of | ||||
| the buffer needs to be equal or greater than the size of the | the buffer needs to be equal or greater than the size of the | ||||
| message in bytes rounded to the next integer which is divisable | message in bytes rounded to the next integer which is divisable | ||||
| @@ -327,7 +327,7 @@ public: | |||||
| pointed to by the receiver remains valid through-out the life-time of the | pointed to by the receiver remains valid through-out the life-time of the | ||||
| returned sub-block. | returned sub-block. | ||||
| @param newOffset The index of an element inside the reciever which will | |||||
| @param newOffset The index of an element inside the receiver which will | |||||
| will become the first element of the return value. | will become the first element of the return value. | ||||
| @param newLength The number of elements of the newly created sub-block. | @param newLength The number of elements of the newly created sub-block. | ||||
| */ | */ | ||||
| @@ -344,7 +344,7 @@ public: | |||||
| pointed to by the receiver remains valid through-out the life-time of the | pointed to by the receiver remains valid through-out the life-time of the | ||||
| returned sub-block. | returned sub-block. | ||||
| @param newOffset The index of an element inside the reciever which will | |||||
| @param newOffset The index of an element inside the receiver which will | |||||
| will become the first element of the return value. | will become the first element of the return value. | ||||
| The return value will include all subsequent elements | The return value will include all subsequent elements | ||||
| of the receiver. | of the receiver. | ||||
| @@ -39,7 +39,7 @@ namespace dsp | |||||
| /** | /** | ||||
| A wrapper around the platform's native SIMD register type. | A wrapper around the platform's native SIMD register type. | ||||
| This class is only availabe on SIMD machines. Use JUCE_USE_SIMD to query | |||||
| This class is only available on SIMD machines. Use JUCE_USE_SIMD to query | |||||
| if SIMD is avaialble for your system. | if SIMD is avaialble for your system. | ||||
| SIMDRegister<Type> is a templated class representing the native | SIMDRegister<Type> is a templated class representing the native | ||||
| @@ -131,7 +131,7 @@ namespace SIMDRegister_test_internal | |||||
| } | } | ||||
| // These tests need to be strictly run on all platforms supported by JUCE as the | // These tests need to be strictly run on all platforms supported by JUCE as the | ||||
| // SIMD code is highly platform dependant. | |||||
| // SIMD code is highly platform dependent. | |||||
| class SIMDRegisterUnitTests : public UnitTest | class SIMDRegisterUnitTests : public UnitTest | ||||
| { | { | ||||
| @@ -178,7 +178,7 @@ public: | |||||
| the intersection (if the lines intersect). If the lines | the intersection (if the lines intersect). If the lines | ||||
| are parallel, this will just be set to the position | are parallel, this will just be set to the position | ||||
| of one of the line's endpoints. | of one of the line's endpoints. | ||||
| @returns true if the line segments intersect; false if they dont. Even if they | |||||
| @returns true if the line segments intersect; false if they don't. Even if they | |||||
| don't intersect, the intersection coordinates returned will still | don't intersect, the intersection coordinates returned will still | ||||
| be valid | be valid | ||||
| */ | */ | ||||
| @@ -2400,12 +2400,12 @@ public: | |||||
| renderImage (sourceImage, trans, {}); | renderImage (sourceImage, trans, {}); | ||||
| } | } | ||||
| static bool isOnlyTranslationAllowingError (const AffineTransform& t, float tolerence) noexcept | |||||
| static bool isOnlyTranslationAllowingError (const AffineTransform& t, float tolerance) noexcept | |||||
| { | { | ||||
| return std::abs (t.mat01) < tolerence | |||||
| && std::abs (t.mat10) < tolerence | |||||
| && std::abs (t.mat00 - 1.0f) < tolerence | |||||
| && std::abs (t.mat11 - 1.0f) < tolerence; | |||||
| return std::abs (t.mat01) < tolerance | |||||
| && std::abs (t.mat10) < tolerance | |||||
| && std::abs (t.mat00 - 1.0f) < tolerance | |||||
| && std::abs (t.mat11 - 1.0f) < tolerance; | |||||
| } | } | ||||
| void renderImage (const Image& sourceImage, const AffineTransform& trans, const BaseRegionType* tiledFillClipRegion) | void renderImage (const Image& sourceImage, const AffineTransform& trans, const BaseRegionType* tiledFillClipRegion) | ||||
| @@ -294,7 +294,7 @@ private: | |||||
| javaString ("raw").get(), javaString (packageName).get()); | javaString ("raw").get(), javaString (packageName).get()); | ||||
| // Raw resource not found. Please make sure that you include your file as a raw resource | // Raw resource not found. Please make sure that you include your file as a raw resource | ||||
| // and that you specify just the file name, without an extention. | |||||
| // and that you specify just the file name, without an extension. | |||||
| jassert (fileId != 0); | jassert (fileId != 0); | ||||
| if (fileId == 0) | if (fileId == 0) | ||||
| @@ -477,7 +477,7 @@ MimeTypeTableEntry MimeTypeTableEntry::table[640] = | |||||
| {"pvu", "paleovu/x-pv"}, | {"pvu", "paleovu/x-pv"}, | ||||
| {"pwz", "application/vnd.ms-powerpoint"}, | {"pwz", "application/vnd.ms-powerpoint"}, | ||||
| {"py", "text/x-script.phyton"}, | {"py", "text/x-script.phyton"}, | ||||
| {"pyc", "applicaiton/x-bytecode.python"}, | |||||
| {"pyc", "application/x-bytecode.python"}, | |||||
| {"qcp", "audio/vnd.qcelp"}, | {"qcp", "audio/vnd.qcelp"}, | ||||
| {"qd3", "x-world/x-3dmf"}, | {"qd3", "x-world/x-3dmf"}, | ||||
| {"qd3d", "x-world/x-3dmf"}, | {"qd3d", "x-world/x-3dmf"}, | ||||
| @@ -142,7 +142,7 @@ public: | |||||
| file, then the URL should be "sounds/my_sound.caf". | file, then the URL should be "sounds/my_sound.caf". | ||||
| For a custom sound on Android, set URL to the name of a raw resource file | For a custom sound on Android, set URL to the name of a raw resource file | ||||
| (without an extention) that was included when exporting an Android project in | |||||
| (without an extension) that was included when exporting an Android project in | |||||
| Projucer (see "Extra Android Raw Resources" setting). */ | Projucer (see "Extra Android Raw Resources" setting). */ | ||||
| var properties; /**< Optional: collection of additional properties that may be passed as a dictionary. */ | var properties; /**< Optional: collection of additional properties that may be passed as a dictionary. */ | ||||
| @@ -396,7 +396,7 @@ public: | |||||
| */ | */ | ||||
| struct Category | struct Category | ||||
| { | { | ||||
| juce::String identifier; /**< unique indentifier */ | |||||
| juce::String identifier; /**< unique identifier */ | |||||
| juce::Array<Action> actions; /**< optional list of actions within this category */ | juce::Array<Action> actions; /**< optional list of actions within this category */ | ||||
| bool sendDismissAction = false; /**< whether dismiss action will be sent to the app (from iOS 10 only) */ | bool sendDismissAction = false; /**< whether dismiss action will be sent to the app (from iOS 10 only) */ | ||||
| }; | }; | ||||
| @@ -122,7 +122,7 @@ private: | |||||
| if (embedAsSiblingRatherThanChild) | if (embedAsSiblingRatherThanChild) | ||||
| { | { | ||||
| // This is a workaround for a bug in a web browser component where | // This is a workaround for a bug in a web browser component where | ||||
| // scrolling would be very slow and occassionally would scroll in | |||||
| // scrolling would be very slow and occasionally would scroll in | |||||
| // opposite direction to dragging direction. In normal circumstances, | // opposite direction to dragging direction. In normal circumstances, | ||||
| // the native view should be a child of peerView instead. | // the native view should be a child of peerView instead. | ||||
| auto parentView = LocalRef<jobject> (env->CallObjectMethod (peerView, AndroidView.getParent)); | auto parentView = LocalRef<jobject> (env->CallObjectMethod (peerView, AndroidView.getParent)); | ||||
| @@ -218,7 +218,7 @@ public: | |||||
| /** Asynchronously asks about a list of products that a user has already bought. Upon completion, Listener::purchasesListReceived() | /** Asynchronously asks about a list of products that a user has already bought. Upon completion, Listener::purchasesListReceived() | ||||
| callback will be invoked. The user may be prompted to login first. | callback will be invoked. The user may be prompted to login first. | ||||
| @param includeDownloadInfo (iOS only) if true, then after restoration is successfull, the downloads array passed to | |||||
| @param includeDownloadInfo (iOS only) if true, then after restoration is successful, the downloads array passed to | |||||
| Listener::purchasesListReceived() callback will contain all the download objects corresponding with | Listener::purchasesListReceived() callback will contain all the download objects corresponding with | ||||
| the purchase. In the opposite case, the downloads array will be empty. | the purchase. In the opposite case, the downloads array will be empty. | ||||