@@ -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. | ||||