@@ -1,5 +1,6 @@ | |||
*~ | |||
*.a | |||
*.cdbs-orig | |||
*.dll | |||
*.dylib | |||
*.exe | |||
@@ -8,18 +9,9 @@ | |||
*.so | |||
*.so.* | |||
*.cdbs-orig | |||
*.moc | |||
moc_*.cpp | |||
qrc_*.cpp | |||
ui_*.h | |||
*.lv2 | |||
*.make | |||
*.pro.user | |||
Makefile | |||
Makefile.Debug | |||
Makefile.Release | |||
object_script.*.Debug | |||
object_script.*.Release | |||
@@ -31,29 +23,13 @@ object_script.*.Release | |||
.kdev_include_paths | |||
.kdev4 | |||
bin/ladspa | |||
bin/dssi | |||
bin/lv2 | |||
bin/vst | |||
bin/standalone | |||
debian | |||
intermediate | |||
lv2_ttl_generator | |||
libs/distrho/dgl/Makefile.copy | |||
libs/juce-2.0/source/amalgamation/ | |||
libs/juce-2.0/source/docs/ | |||
libs/juce-2.0/source/extras/ | |||
libs/juce-2.0/source/modules/juce_box2d/ | |||
libs/juce-2.0/source/modules/juce_browser_plugin_client/ | |||
libs/juce-2.0/source/modules/juce_cryptography/ | |||
libs/juce-2.0/source/modules/juce_opengl/ | |||
libs/juce-2.0/source/modules/juce_video/ | |||
libs/juce-2.0/source/juce.h | |||
libs/juce-2.0/source/juce_amalgamated.* | |||
scripts/*.h | |||
scripts/*.pro | |||
sdks/ASIOSDK2/* | |||
sdks/vstsdk2.4/* | |||
@@ -73,4 +49,5 @@ libs/juce/source/modules/juce_box2d/ | |||
libs/juce/source/modules/juce_browser_plugin_client/ | |||
libs/juce/source/modules/juce_cryptography/ | |||
libs/juce/source/modules/juce_opengl/ | |||
libs/juce/source/modules/juce_tracktion_marketplace/ | |||
libs/juce/source/modules/juce_video/ |
@@ -412,7 +412,7 @@ void JUCE_CALLTYPE FloatVectorOperations::copy (double* dest, const double* src, | |||
void JUCE_CALLTYPE FloatVectorOperations::copyWithMultiply (float* dest, const float* src, float multiplier, int num) noexcept | |||
{ | |||
#if JUCE_USE_VDSP_FRAMEWORK | |||
vDSP_vsmul (src, 1, &multiplier, dest, 1, num); | |||
vDSP_vsmul (src, 1, &multiplier, dest, 1, (vDSP_Length) num); | |||
#else | |||
JUCE_PERFORM_VEC_OP_SRC_DEST (dest[i] = src[i] * multiplier, Mode::mul (mult, s), | |||
JUCE_LOAD_SRC, JUCE_INCREMENT_SRC_DEST, | |||
@@ -423,7 +423,7 @@ void JUCE_CALLTYPE FloatVectorOperations::copyWithMultiply (float* dest, const f | |||
void JUCE_CALLTYPE FloatVectorOperations::copyWithMultiply (double* dest, const double* src, double multiplier, int num) noexcept | |||
{ | |||
#if JUCE_USE_VDSP_FRAMEWORK | |||
vDSP_vsmulD (src, 1, &multiplier, dest, 1, num); | |||
vDSP_vsmulD (src, 1, &multiplier, dest, 1, (vDSP_Length) num); | |||
#else | |||
JUCE_PERFORM_VEC_OP_SRC_DEST (dest[i] = src[i] * multiplier, Mode::mul (mult, s), | |||
JUCE_LOAD_SRC, JUCE_INCREMENT_SRC_DEST, | |||
@@ -446,7 +446,7 @@ void JUCE_CALLTYPE FloatVectorOperations::add (double* dest, double amount, int | |||
void JUCE_CALLTYPE FloatVectorOperations::add (float* dest, const float* src, int num) noexcept | |||
{ | |||
#if JUCE_USE_VDSP_FRAMEWORK | |||
vDSP_vadd (src, 1, dest, 1, dest, 1, num); | |||
vDSP_vadd (src, 1, dest, 1, dest, 1, (vDSP_Length) num); | |||
#else | |||
JUCE_PERFORM_VEC_OP_SRC_DEST (dest[i] += src[i], Mode::add (d, s), JUCE_LOAD_SRC_DEST, JUCE_INCREMENT_SRC_DEST, ) | |||
#endif | |||
@@ -455,7 +455,7 @@ void JUCE_CALLTYPE FloatVectorOperations::add (float* dest, const float* src, in | |||
void JUCE_CALLTYPE FloatVectorOperations::add (double* dest, const double* src, int num) noexcept | |||
{ | |||
#if JUCE_USE_VDSP_FRAMEWORK | |||
vDSP_vaddD (src, 1, dest, 1, dest, 1, num); | |||
vDSP_vaddD (src, 1, dest, 1, dest, 1, (vDSP_Length) num); | |||
#else | |||
JUCE_PERFORM_VEC_OP_SRC_DEST (dest[i] += src[i], Mode::add (d, s), JUCE_LOAD_SRC_DEST, JUCE_INCREMENT_SRC_DEST, ) | |||
#endif | |||
@@ -464,7 +464,7 @@ void JUCE_CALLTYPE FloatVectorOperations::add (double* dest, const double* src, | |||
void JUCE_CALLTYPE FloatVectorOperations::subtract (float* dest, const float* src, int num) noexcept | |||
{ | |||
#if JUCE_USE_VDSP_FRAMEWORK | |||
vDSP_vsub (src, 1, dest, 1, dest, 1, num); | |||
vDSP_vsub (src, 1, dest, 1, dest, 1, (vDSP_Length) num); | |||
#else | |||
JUCE_PERFORM_VEC_OP_SRC_DEST (dest[i] -= src[i], Mode::sub (d, s), JUCE_LOAD_SRC_DEST, JUCE_INCREMENT_SRC_DEST, ) | |||
#endif | |||
@@ -473,7 +473,7 @@ void JUCE_CALLTYPE FloatVectorOperations::subtract (float* dest, const float* sr | |||
void JUCE_CALLTYPE FloatVectorOperations::subtract (double* dest, const double* src, int num) noexcept | |||
{ | |||
#if JUCE_USE_VDSP_FRAMEWORK | |||
vDSP_vsubD (src, 1, dest, 1, dest, 1, num); | |||
vDSP_vsubD (src, 1, dest, 1, dest, 1, (vDSP_Length) num); | |||
#else | |||
JUCE_PERFORM_VEC_OP_SRC_DEST (dest[i] -= src[i], Mode::sub (d, s), JUCE_LOAD_SRC_DEST, JUCE_INCREMENT_SRC_DEST, ) | |||
#endif | |||
@@ -496,7 +496,7 @@ void JUCE_CALLTYPE FloatVectorOperations::addWithMultiply (double* dest, const d | |||
void JUCE_CALLTYPE FloatVectorOperations::multiply (float* dest, const float* src, int num) noexcept | |||
{ | |||
#if JUCE_USE_VDSP_FRAMEWORK | |||
vDSP_vmul (src, 1, dest, 1, dest, 1, num); | |||
vDSP_vmul (src, 1, dest, 1, dest, 1, (vDSP_Length) num); | |||
#else | |||
JUCE_PERFORM_VEC_OP_SRC_DEST (dest[i] *= src[i], Mode::mul (d, s), JUCE_LOAD_SRC_DEST, JUCE_INCREMENT_SRC_DEST, ) | |||
#endif | |||
@@ -505,7 +505,7 @@ void JUCE_CALLTYPE FloatVectorOperations::multiply (float* dest, const float* sr | |||
void JUCE_CALLTYPE FloatVectorOperations::multiply (double* dest, const double* src, int num) noexcept | |||
{ | |||
#if JUCE_USE_VDSP_FRAMEWORK | |||
vDSP_vmulD (src, 1, dest, 1, dest, 1, num); | |||
vDSP_vmulD (src, 1, dest, 1, dest, 1, (vDSP_Length) num); | |||
#else | |||
JUCE_PERFORM_VEC_OP_SRC_DEST (dest[i] *= src[i], Mode::mul (d, s), JUCE_LOAD_SRC_DEST, JUCE_INCREMENT_SRC_DEST, ) | |||
#endif | |||
@@ -514,7 +514,7 @@ void JUCE_CALLTYPE FloatVectorOperations::multiply (double* dest, const double* | |||
void JUCE_CALLTYPE FloatVectorOperations::multiply (float* dest, float multiplier, int num) noexcept | |||
{ | |||
#if JUCE_USE_VDSP_FRAMEWORK | |||
vDSP_vsmul (dest, 1, &multiplier, dest, 1, num); | |||
vDSP_vsmul (dest, 1, &multiplier, dest, 1, (vDSP_Length) num); | |||
#else | |||
JUCE_PERFORM_VEC_OP_DEST (dest[i] *= multiplier, Mode::mul (d, mult), JUCE_LOAD_DEST, | |||
const Mode::ParallelType mult = Mode::load1 (multiplier);) | |||
@@ -524,7 +524,7 @@ void JUCE_CALLTYPE FloatVectorOperations::multiply (float* dest, float multiplie | |||
void JUCE_CALLTYPE FloatVectorOperations::multiply (double* dest, double multiplier, int num) noexcept | |||
{ | |||
#if JUCE_USE_VDSP_FRAMEWORK | |||
vDSP_vsmulD (dest, 1, &multiplier, dest, 1, num); | |||
vDSP_vsmulD (dest, 1, &multiplier, dest, 1, (vDSP_Length) num); | |||
#else | |||
JUCE_PERFORM_VEC_OP_DEST (dest[i] *= multiplier, Mode::mul (d, mult), JUCE_LOAD_DEST, | |||
const Mode::ParallelType mult = Mode::load1 (multiplier);) | |||
@@ -643,8 +643,8 @@ public: | |||
const int range = random.nextBool() ? 500 : 10; | |||
const int num = random.nextInt (range) + 1; | |||
HeapBlock<ValueType> buffer1 (num + 16), buffer2 (num + 16); | |||
HeapBlock<int> buffer3 (num + 16); | |||
HeapBlock<ValueType> buffer1 ((size_t) num + 16), buffer2 ((size_t) num + 16); | |||
HeapBlock<int> buffer3 ((size_t) num + 16); | |||
#if JUCE_ARM | |||
ValueType* const data1 = buffer1; | |||
@@ -1,7 +1,7 @@ | |||
{ | |||
"id": "juce_audio_basics", | |||
"name": "JUCE audio and midi data classes", | |||
"version": "3.0.6", | |||
"version": "3.0.7", | |||
"description": "Classes for audio buffer manipulation, midi message handling, synthesis, etc", | |||
"website": "http://www.juce.com/juce", | |||
"license": "GPL/Commercial", | |||
@@ -210,7 +210,7 @@ bool MidiBuffer::Iterator::getNextEvent (const uint8* &midiData, int& numBytes, | |||
const int itemSize = MidiBufferHelpers::getEventDataSize (data); | |||
numBytes = itemSize; | |||
midiData = data + sizeof (int32) + sizeof (uint16); | |||
data += sizeof (int32) + sizeof (uint16) + itemSize; | |||
data += sizeof (int32) + sizeof (uint16) + (size_t) itemSize; | |||
return true; | |||
} | |||
@@ -223,7 +223,7 @@ bool MidiBuffer::Iterator::getNextEvent (MidiMessage& result, int& samplePositio | |||
samplePosition = MidiBufferHelpers::getEventTime (data); | |||
const int itemSize = MidiBufferHelpers::getEventDataSize (data); | |||
result = MidiMessage (data + sizeof (int32) + sizeof (uint16), itemSize, samplePosition); | |||
data += sizeof (int32) + sizeof (uint16) + itemSize; | |||
data += sizeof (int32) + sizeof (uint16) + (size_t) itemSize; | |||
return true; | |||
} |
@@ -129,7 +129,7 @@ MidiMessage::MidiMessage (const MidiMessage& other) | |||
{ | |||
if (other.allocatedData != nullptr) | |||
{ | |||
allocatedData.malloc (size); | |||
allocatedData.malloc ((size_t) size); | |||
memcpy (allocatedData, other.allocatedData, (size_t) size); | |||
} | |||
else | |||
@@ -143,7 +143,7 @@ MidiMessage::MidiMessage (const MidiMessage& other, const double newTimeStamp) | |||
{ | |||
if (other.allocatedData != nullptr) | |||
{ | |||
allocatedData.malloc (size); | |||
allocatedData.malloc ((size_t) size); | |||
memcpy (allocatedData, other.allocatedData, (size_t) size); | |||
} | |||
else | |||
@@ -255,7 +255,7 @@ MidiMessage& MidiMessage::operator= (const MidiMessage& other) | |||
if (other.allocatedData != nullptr) | |||
{ | |||
allocatedData.malloc (size); | |||
allocatedData.malloc ((size_t) size); | |||
memcpy (allocatedData, other.allocatedData, (size_t) size); | |||
} | |||
else | |||
@@ -297,7 +297,7 @@ uint8* MidiMessage::allocateSpace (int bytes) | |||
{ | |||
if (bytes > 4) | |||
{ | |||
allocatedData.malloc (bytes); | |||
allocatedData.malloc ((size_t) bytes); | |||
return allocatedData; | |||
} | |||
@@ -1,7 +1,7 @@ | |||
{ | |||
"id": "juce_audio_devices", | |||
"name": "JUCE audio and midi I/O device classes", | |||
"version": "3.0.6", | |||
"version": "3.0.7", | |||
"description": "Classes to play and record from audio and midi i/o devices.", | |||
"website": "http://www.juce.com/juce", | |||
"license": "GPL/Commercial", | |||
@@ -233,7 +233,7 @@ public: | |||
size = sizeof (nameNSString); | |||
pa.mSelector = kAudioObjectPropertyElementName; | |||
pa.mElement = chanNum + 1; | |||
pa.mElement = (AudioObjectPropertyElement) chanNum + 1; | |||
if (AudioObjectGetPropertyData (deviceID, &pa, 0, nullptr, &size, &nameNSString) == noErr) | |||
{ | |||
@@ -394,7 +394,7 @@ public: | |||
if (OK (AudioObjectGetPropertyData (deviceID, &pa, 0, nullptr, &size, &sr))) | |||
sampleRate = sr; | |||
UInt32 framesPerBuf = bufferSize; | |||
UInt32 framesPerBuf = (UInt32) bufferSize; | |||
size = sizeof (framesPerBuf); | |||
pa.mSelector = kAudioDevicePropertyBufferFrameSize; | |||
AudioObjectGetPropertyData (deviceID, &pa, 0, nullptr, &size, &framesPerBuf); | |||
@@ -162,7 +162,7 @@ void AudioFormatReader::read (AudioSampleBuffer* buffer, | |||
} | |||
else | |||
{ | |||
HeapBlock<int*> chans (numTargetChannels); | |||
HeapBlock<int*> chans ((size_t) numTargetChannels); | |||
readChannels (*this, chans, buffer, startSample, numSamples, readerStartSample, numTargetChannels); | |||
} | |||
@@ -1,7 +1,7 @@ | |||
{ | |||
"id": "juce_audio_formats", | |||
"name": "JUCE audio file format codecs", | |||
"version": "3.0.6", | |||
"version": "3.0.7", | |||
"description": "Classes for reading and writing various audio file formats.", | |||
"website": "http://www.juce.com/juce", | |||
"license": "GPL/Commercial", | |||
@@ -235,9 +235,10 @@ static Array<void*> activePlugins; | |||
This is an AudioEffectX object that holds and wraps our AudioProcessor... | |||
*/ | |||
class JuceVSTWrapper : public AudioEffectX, | |||
private Timer, | |||
public AudioProcessorListener, | |||
public AudioPlayHead | |||
public AudioPlayHead, | |||
private Timer, | |||
private AsyncUpdater | |||
{ | |||
public: | |||
//============================================================================== | |||
@@ -323,7 +324,7 @@ public: | |||
} | |||
} | |||
void open() | |||
void open() override | |||
{ | |||
// Note: most hosts call this on the UI thread, but wavelab doesn't, so be careful in here. | |||
if (filter->hasEditor()) | |||
@@ -332,7 +333,7 @@ public: | |||
cEffect.flags &= ~effFlagsHasEditor; | |||
} | |||
void close() | |||
void close() override | |||
{ | |||
// Note: most hosts call this on the UI thread, but wavelab doesn't, so be careful in here. | |||
stopTimer(); | |||
@@ -423,7 +424,7 @@ public: | |||
return 0; | |||
} | |||
bool getInputProperties (VstInt32 index, VstPinProperties* properties) | |||
bool getInputProperties (VstInt32 index, VstPinProperties* properties) override | |||
{ | |||
if (filter == nullptr || index >= JucePlugin_MaxNumInputChannels) | |||
return false; | |||
@@ -433,7 +434,7 @@ public: | |||
return true; | |||
} | |||
bool getOutputProperties (VstInt32 index, VstPinProperties* properties) | |||
bool getOutputProperties (VstInt32 index, VstPinProperties* properties) override | |||
{ | |||
if (filter == nullptr || index >= JucePlugin_MaxNumOutputChannels) | |||
return false; | |||
@@ -464,13 +465,13 @@ public: | |||
} | |||
} | |||
bool setBypass (bool b) | |||
bool setBypass (bool b) override | |||
{ | |||
isBypassed = b; | |||
return true; | |||
} | |||
VstInt32 getGetTailSize() | |||
VstInt32 getGetTailSize() override | |||
{ | |||
if (filter != nullptr) | |||
return (VstInt32) (filter->getTailLengthSeconds() * getSampleRate()); | |||
@@ -479,7 +480,7 @@ public: | |||
} | |||
//============================================================================== | |||
VstInt32 processEvents (VstEvents* events) | |||
VstInt32 processEvents (VstEvents* events) override | |||
{ | |||
#if JucePlugin_WantsMidiInput | |||
VSTMidiEventList::addEventsToMidiBuffer (events, midiEvents); | |||
@@ -508,7 +509,7 @@ public: | |||
dest.addFrom (i, 0, processTempBuffer, i, 0, numSamples); | |||
} | |||
void processReplacing (float** inputs, float** outputs, VstInt32 numSamples) | |||
void processReplacing (float** inputs, float** outputs, VstInt32 numSamples) override | |||
{ | |||
if (firstProcessCallback) | |||
{ | |||
@@ -641,10 +642,10 @@ public: | |||
} | |||
//============================================================================== | |||
VstInt32 startProcess() { return 0; } | |||
VstInt32 stopProcess() { return 0; } | |||
VstInt32 startProcess() override { return 0; } | |||
VstInt32 stopProcess() override { return 0; } | |||
void resume() | |||
void resume() override | |||
{ | |||
if (filter != nullptr) | |||
{ | |||
@@ -681,7 +682,7 @@ public: | |||
} | |||
} | |||
void suspend() | |||
void suspend() override | |||
{ | |||
if (filter != nullptr) | |||
{ | |||
@@ -697,7 +698,7 @@ public: | |||
} | |||
} | |||
bool getCurrentPosition (AudioPlayHead::CurrentPositionInfo& info) | |||
bool getCurrentPosition (AudioPlayHead::CurrentPositionInfo& info) override | |||
{ | |||
const VstTimeInfo* const ti = getTimeInfo (kVstPpqPosValid | kVstTempoValid | kVstBarsValid | kVstCyclePosValid | |||
| kVstTimeSigValid | kVstSmpteValid | kVstClockValid); | |||
@@ -776,30 +777,30 @@ public: | |||
} | |||
//============================================================================== | |||
VstInt32 getProgram() | |||
VstInt32 getProgram() override | |||
{ | |||
return filter != nullptr ? filter->getCurrentProgram() : 0; | |||
} | |||
void setProgram (VstInt32 program) | |||
void setProgram (VstInt32 program) override | |||
{ | |||
if (filter != nullptr) | |||
filter->setCurrentProgram (program); | |||
} | |||
void setProgramName (char* name) | |||
void setProgramName (char* name) override | |||
{ | |||
if (filter != nullptr) | |||
filter->changeProgramName (filter->getCurrentProgram(), name); | |||
} | |||
void getProgramName (char* name) | |||
void getProgramName (char* name) override | |||
{ | |||
if (filter != nullptr) | |||
filter->getProgramName (filter->getCurrentProgram()).copyToUTF8 (name, 24); | |||
} | |||
bool getProgramNameIndexed (VstInt32 /*category*/, VstInt32 index, char* text) | |||
bool getProgramNameIndexed (VstInt32 /*category*/, VstInt32 index, char* text) override | |||
{ | |||
if (filter != nullptr && isPositiveAndBelow (index, filter->getNumPrograms())) | |||
{ | |||
@@ -811,7 +812,7 @@ public: | |||
} | |||
//============================================================================== | |||
float getParameter (VstInt32 index) | |||
float getParameter (VstInt32 index) override | |||
{ | |||
if (filter == nullptr) | |||
return 0.0f; | |||
@@ -820,7 +821,7 @@ public: | |||
return filter->getParameter (index); | |||
} | |||
void setParameter (VstInt32 index, float value) | |||
void setParameter (VstInt32 index, float value) override | |||
{ | |||
if (filter != nullptr) | |||
{ | |||
@@ -829,7 +830,7 @@ public: | |||
} | |||
} | |||
void getParameterDisplay (VstInt32 index, char* text) | |||
void getParameterDisplay (VstInt32 index, char* text) override | |||
{ | |||
if (filter != nullptr) | |||
{ | |||
@@ -838,7 +839,7 @@ public: | |||
} | |||
} | |||
void getParameterName (VstInt32 index, char* text) | |||
void getParameterName (VstInt32 index, char* text) override | |||
{ | |||
if (filter != nullptr) | |||
{ | |||
@@ -847,23 +848,28 @@ public: | |||
} | |||
} | |||
void audioProcessorParameterChanged (AudioProcessor*, int index, float newValue) | |||
void audioProcessorParameterChanged (AudioProcessor*, int index, float newValue) override | |||
{ | |||
if (audioMaster != nullptr) | |||
audioMaster (&cEffect, audioMasterAutomate, index, 0, 0, newValue); | |||
} | |||
void audioProcessorParameterChangeGestureBegin (AudioProcessor*, int index) { beginEdit (index); } | |||
void audioProcessorParameterChangeGestureEnd (AudioProcessor*, int index) { endEdit (index); } | |||
void audioProcessorParameterChangeGestureBegin (AudioProcessor*, int index) override { beginEdit (index); } | |||
void audioProcessorParameterChangeGestureEnd (AudioProcessor*, int index) override { endEdit (index); } | |||
void audioProcessorChanged (AudioProcessor*) | |||
void audioProcessorChanged (AudioProcessor*) override | |||
{ | |||
setInitialDelay (filter->getLatencySamples()); | |||
ioChanged(); | |||
updateDisplay(); | |||
triggerAsyncUpdate(); | |||
} | |||
void handleAsyncUpdate() override | |||
{ | |||
ioChanged(); | |||
} | |||
bool canParameterBeAutomated (VstInt32 index) | |||
bool canParameterBeAutomated (VstInt32 index) override | |||
{ | |||
return filter != nullptr && filter->isParameterAutomatable ((int) index); | |||
} | |||
@@ -881,7 +887,7 @@ public: | |||
}; | |||
bool setSpeakerArrangement (VstSpeakerArrangement* pluginInput, | |||
VstSpeakerArrangement* pluginOutput) | |||
VstSpeakerArrangement* pluginOutput) override | |||
{ | |||
short channelConfigs[][2] = { JucePlugin_PreferredChannelConfigurations }; | |||
@@ -958,7 +964,7 @@ public: | |||
} | |||
//============================================================================== | |||
VstInt32 getChunk (void** data, bool onlyStoreCurrentProgramData) | |||
VstInt32 getChunk (void** data, bool onlyStoreCurrentProgramData) override | |||
{ | |||
if (filter == nullptr) | |||
return 0; | |||
@@ -978,7 +984,7 @@ public: | |||
return (VstInt32) chunkMemory.getSize(); | |||
} | |||
VstInt32 setChunk (void* data, VstInt32 byteSize, bool onlyRestoreCurrentProgramData) | |||
VstInt32 setChunk (void* data, VstInt32 byteSize, bool onlyRestoreCurrentProgramData) override | |||
{ | |||
if (filter != nullptr) | |||
{ | |||
@@ -1131,7 +1137,7 @@ public: | |||
} | |||
} | |||
VstIntPtr dispatcher (VstInt32 opCode, VstInt32 index, VstIntPtr value, void* ptr, float opt) | |||
VstIntPtr dispatcher (VstInt32 opCode, VstInt32 index, VstIntPtr value, void* ptr, float opt) override | |||
{ | |||
if (hasShutdown) | |||
return 0; | |||
@@ -1,7 +1,7 @@ | |||
{ | |||
"id": "juce_audio_plugin_client", | |||
"name": "JUCE audio plugin wrapper classes", | |||
"version": "3.0.6", | |||
"version": "3.0.7", | |||
"description": "Classes for building VST, VST3, RTAS, AAX and AU plugins.", | |||
"website": "http://www.juce.com/juce", | |||
"license": "GPL/Commercial", | |||
@@ -972,16 +972,11 @@ private: | |||
for (int i = 0; i < parameters.size(); ++i) | |||
{ | |||
const ParamInfo& p = *parameters.getUnchecked(i); | |||
AudioUnitParameter paramToAdd; | |||
paramToAdd.mAudioUnit = audioUnit; | |||
paramToAdd.mParameterID = p.paramID; | |||
paramToAdd.mScope = kAudioUnitScope_Global; | |||
paramToAdd.mElement = 0; | |||
AudioUnitEvent event; | |||
event.mArgument.mParameter = paramToAdd; | |||
event.mArgument.mParameter.mAudioUnit = audioUnit; | |||
event.mArgument.mParameter.mParameterID = parameters.getUnchecked(i)->paramID; | |||
event.mArgument.mParameter.mScope = kAudioUnitScope_Global; | |||
event.mArgument.mParameter.mElement = 0; | |||
event.mEventType = kAudioUnitEvent_ParameterValueChange; | |||
AUEventListenerAddEventType (eventListenerRef, nullptr, &event); | |||
@@ -992,6 +987,16 @@ private: | |||
event.mEventType = kAudioUnitEvent_EndParameterChangeGesture; | |||
AUEventListenerAddEventType (eventListenerRef, nullptr, &event); | |||
} | |||
// Add a listener for program changes | |||
AudioUnitEvent event; | |||
event.mArgument.mProperty.mAudioUnit = audioUnit; | |||
event.mArgument.mProperty.mPropertyID = kAudioUnitProperty_PresentPreset; | |||
event.mArgument.mProperty.mScope = kAudioUnitScope_Global; | |||
event.mArgument.mProperty.mElement = 0; | |||
event.mEventType = kAudioUnitEvent_PropertyChange; | |||
AUEventListenerAddEventType (eventListenerRef, nullptr, &event); | |||
} | |||
} | |||
@@ -1022,6 +1027,7 @@ private: | |||
break; | |||
default: | |||
sendAllParametersChangedEvents(); | |||
break; | |||
} | |||
} | |||
@@ -1,7 +1,7 @@ | |||
{ | |||
"id": "juce_audio_processors", | |||
"name": "JUCE audio plugin hosting classes", | |||
"version": "3.0.6", | |||
"version": "3.0.7", | |||
"description": "Classes for loading and playing VST, AU, or internally-generated audio processors.", | |||
"website": "http://www.juce.com/juce", | |||
"license": "GPL/Commercial", | |||
@@ -291,25 +291,31 @@ public: | |||
r.removeFromTop (space); | |||
} | |||
r.removeFromTop (space * 2); | |||
Rectangle<int> buttons (r.removeFromTop (h)); | |||
r.removeFromTop (space); | |||
if (showUIButton != nullptr) | |||
if (showUIButton != nullptr || resetDeviceButton != nullptr) | |||
{ | |||
showUIButton->setVisible (advancedSettingsVisible); | |||
showUIButton->changeWidthToFitText (h); | |||
showUIButton->setBounds (buttons.removeFromLeft (showUIButton->getWidth())); | |||
buttons.removeFromLeft (space); | |||
} | |||
Rectangle<int> buttons (r.removeFromTop (h)); | |||
if (resetDeviceButton != nullptr) | |||
{ | |||
resetDeviceButton->setVisible (advancedSettingsVisible); | |||
resetDeviceButton->changeWidthToFitText (h); | |||
resetDeviceButton->setBounds (buttons.removeFromLeft (showUIButton->getWidth())); | |||
if (showUIButton != nullptr) | |||
{ | |||
showUIButton->setVisible (advancedSettingsVisible); | |||
showUIButton->changeWidthToFitText (h); | |||
showUIButton->setBounds (buttons.removeFromLeft (showUIButton->getWidth())); | |||
buttons.removeFromLeft (space); | |||
} | |||
if (resetDeviceButton != nullptr) | |||
{ | |||
resetDeviceButton->setVisible (advancedSettingsVisible); | |||
resetDeviceButton->changeWidthToFitText (h); | |||
resetDeviceButton->setBounds (buttons.removeFromLeft (resetDeviceButton->getWidth())); | |||
} | |||
r.removeFromTop (space); | |||
} | |||
setSize (getWidth(), r.getHeight()); | |||
setSize (getWidth(), r.getY()); | |||
} | |||
else | |||
{ | |||
@@ -488,6 +494,7 @@ public: | |||
inputDeviceDropDown->setSelectedId (-1, dontSendNotification); | |||
} | |||
sendLookAndFeelChange(); | |||
resized(); | |||
setSize (getWidth(), getLowestY() + 4); | |||
} | |||
@@ -1,7 +1,7 @@ | |||
{ | |||
"id": "juce_audio_utils", | |||
"name": "JUCE extra audio utility classes", | |||
"version": "3.0.6", | |||
"version": "3.0.7", | |||
"description": "Classes for audio-related GUI and miscellaneous tasks.", | |||
"website": "http://www.juce.com/juce", | |||
"license": "GPL/Commercial", | |||
@@ -72,7 +72,7 @@ public: | |||
const ScopedLockType lock (other.getLock()); | |||
numUsed = other.size(); | |||
data.setAllocatedSize (numUsed); | |||
memcpy (data.elements, other.getRawDataPointer(), numUsed * sizeof (ObjectClass*)); | |||
memcpy (data.elements, other.getRawDataPointer(), (size_t) numUsed * sizeof (ObjectClass*)); | |||
for (int i = numUsed; --i >= 0;) | |||
if (ObjectClass* o = data.elements[i]) | |||
@@ -843,7 +843,7 @@ struct JavascriptEngine::RootObject : public DynamicObject | |||
String::CharPointerType end (p); | |||
while (isIdentifierBody (*++end)) {} | |||
const size_t len = end - p; | |||
const size_t len = (size_t) (end - p); | |||
#define JUCE_JS_COMPARE_KEYWORD(name, str) if (len == sizeof (str) - 1 && matchToken (TokenTypes::name, len)) return TokenTypes::name; | |||
JUCE_JS_KEYWORDS (JUCE_JS_COMPARE_KEYWORD) | |||
@@ -1,7 +1,7 @@ | |||
{ | |||
"id": "juce_core", | |||
"name": "JUCE core classes", | |||
"version": "3.0.6", | |||
"version": "3.0.7", | |||
"description": "The essential set of basic JUCE classes, as required by all the other JUCE modules. Includes text, container, memory, threading and i/o functionality.", | |||
"website": "http://www.juce.com/juce", | |||
"license": "ISC Permissive", | |||
@@ -259,7 +259,8 @@ private: | |||
{ | |||
const TCHAR* mimeTypes[] = { _T("*/*"), nullptr }; | |||
DWORD flags = INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_NO_COOKIES; | |||
DWORD flags = INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_NO_COOKIES | |||
| INTERNET_FLAG_NO_AUTO_REDIRECT | SECURITY_SET_MASK; | |||
if (address.startsWithIgnoreCase ("https:")) | |||
flags |= INTERNET_FLAG_SECURE; // (this flag only seems necessary if the OS is running IE6 - | |||
@@ -270,6 +271,8 @@ private: | |||
if (request != 0) | |||
{ | |||
setSecurityFlags(); | |||
INTERNET_BUFFERS buffers = { 0 }; | |||
buffers.dwStructSize = sizeof (INTERNET_BUFFERS); | |||
buffers.lpcszHeader = headers.toWideCharPointer(); | |||
@@ -313,6 +316,14 @@ private: | |||
close(); | |||
} | |||
void setSecurityFlags() | |||
{ | |||
DWORD dwFlags = 0, dwBuffLen = sizeof (DWORD); | |||
InternetQueryOption (request, INTERNET_OPTION_SECURITY_FLAGS, &dwFlags, &dwBuffLen); | |||
dwFlags |= SECURITY_FLAG_IGNORE_UNKNOWN_CA | SECURITY_SET_MASK; | |||
InternetSetOption (request, INTERNET_OPTION_SECURITY_FLAGS, &dwFlags, sizeof (dwFlags)); | |||
} | |||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WebInputStream) | |||
}; | |||
@@ -60,7 +60,7 @@ MemoryInputStream::~MemoryInputStream() | |||
int64 MemoryInputStream::getTotalLength() | |||
{ | |||
return dataSize; | |||
return (int64) dataSize; | |||
} | |||
int MemoryInputStream::read (void* const buffer, const int howMany) | |||
@@ -89,7 +89,7 @@ bool MemoryInputStream::setPosition (const int64 pos) | |||
int64 MemoryInputStream::getPosition() | |||
{ | |||
return position; | |||
return (int64) position; | |||
} | |||
@@ -114,7 +114,7 @@ public: | |||
void flush(); | |||
bool write (const void*, size_t) override; | |||
int64 getPosition() override { return position; } | |||
int64 getPosition() override { return (int64) position; } | |||
bool setPosition (int64) override; | |||
int writeFromInputStream (InputStream&, int64 maxNumBytesToWrite) override; | |||
bool writeRepeatedByte (uint8 byte, size_t numTimesToRepeat) override; | |||
@@ -36,7 +36,7 @@ | |||
*/ | |||
#define JUCE_MAJOR_VERSION 3 | |||
#define JUCE_MINOR_VERSION 0 | |||
#define JUCE_BUILDNUMBER 6 | |||
#define JUCE_BUILDNUMBER 7 | |||
/** Current Juce version number. | |||
@@ -558,7 +558,7 @@ struct HashGenerator | |||
Type result = Type(); | |||
while (! t.isEmpty()) | |||
result = multiplier * result + t.getAndAdvance(); | |||
result = ((Type) multiplier) * result + (Type) t.getAndAdvance(); | |||
return result; | |||
} | |||
@@ -135,7 +135,7 @@ public: | |||
char buffer [30]; | |||
if (inputStream != nullptr | |||
&& inputStream->setPosition (zei.streamOffset) | |||
&& inputStream->setPosition ((int64) zei.streamOffset) | |||
&& inputStream->read (buffer, 30) == 30 | |||
&& ByteOrder::littleEndianInt (buffer) == 0x04034b50) | |||
{ | |||
@@ -154,7 +154,7 @@ public: | |||
int64 getTotalLength() | |||
{ | |||
return zipEntryHolder.compressedSize; | |||
return (int64) zipEntryHolder.compressedSize; | |||
} | |||
int read (void* buffer, int howMany) | |||
@@ -162,7 +162,7 @@ public: | |||
if (headerSize <= 0) | |||
return 0; | |||
howMany = (int) jmin ((int64) howMany, (int64) (zipEntryHolder.compressedSize - pos)); | |||
howMany = (int) jmin ((int64) howMany, ((int64) zipEntryHolder.compressedSize) - pos); | |||
if (inputStream == nullptr) | |||
return 0; | |||
@@ -172,12 +172,12 @@ public: | |||
if (inputStream == file.inputStream) | |||
{ | |||
const ScopedLock sl (file.lock); | |||
inputStream->setPosition (pos + zipEntryHolder.streamOffset + headerSize); | |||
inputStream->setPosition (pos + (int64) zipEntryHolder.streamOffset + headerSize); | |||
num = inputStream->read (buffer, howMany); | |||
} | |||
else | |||
{ | |||
inputStream->setPosition (pos + zipEntryHolder.streamOffset + headerSize); | |||
inputStream->setPosition (pos + (int64) zipEntryHolder.streamOffset + headerSize); | |||
num = inputStream->read (buffer, howMany); | |||
} | |||
@@ -1,7 +1,7 @@ | |||
{ | |||
"id": "juce_data_structures", | |||
"name": "JUCE data model helper classes", | |||
"version": "3.0.6", | |||
"version": "3.0.7", | |||
"description": "Classes for undo/redo management, and smart data structures.", | |||
"website": "http://www.juce.com/juce", | |||
"license": "GPL/Commercial", | |||
@@ -1,7 +1,7 @@ | |||
{ | |||
"id": "juce_events", | |||
"name": "JUCE message and event handling classes", | |||
"version": "3.0.6", | |||
"version": "3.0.7", | |||
"description": "Classes for running an application's main event loop and sending/receiving messages, timers, etc.", | |||
"website": "http://www.juce.com/juce", | |||
"license": "GPL/Commercial", | |||
@@ -1,7 +1,7 @@ | |||
{ | |||
"id": "juce_graphics", | |||
"name": "JUCE graphics classes", | |||
"version": "3.0.6", | |||
"version": "3.0.7", | |||
"description": "Classes for 2D vector graphics, image loading/saving, font handling, etc.", | |||
"website": "http://www.juce.com/juce", | |||
"license": "GPL/Commercial", | |||
@@ -1,7 +1,7 @@ | |||
{ | |||
"id": "juce_gui_basics", | |||
"name": "JUCE GUI core classes", | |||
"version": "3.0.6", | |||
"version": "3.0.7", | |||
"description": "Basic user-interface components and related classes.", | |||
"website": "http://www.juce.com/juce", | |||
"license": "GPL/Commercial", | |||
@@ -487,8 +487,8 @@ private: | |||
bool canBePartOfMultipleClickWith (const RecentMouseDown& other, const int maxTimeBetweenMs) const | |||
{ | |||
return time - other.time < RelativeTime::milliseconds (maxTimeBetweenMs) | |||
&& abs (position.x - other.position.x) < 8 | |||
&& abs (position.y - other.position.y) < 8 | |||
&& std::abs (position.x - other.position.x) < 8 | |||
&& std::abs (position.y - other.position.y) < 8 | |||
&& buttons == other.buttons | |||
&& peerID == other.peerID; | |||
} | |||
@@ -1013,7 +1013,7 @@ public: | |||
static Point<float> getMousePos (NSEvent* e, NSView* view) | |||
{ | |||
NSPoint p = [view convertPoint: [e locationInWindow] fromView: nil]; | |||
return Point<float> (p.x, [view frame].size.height - p.y); | |||
return Point<float> ((float) p.x, (float) ([view frame].size.height - p.y)); | |||
} | |||
static int getModifierForButtonNumber (const NSInteger num) | |||
@@ -214,7 +214,7 @@ Point<float> MouseInputSource::getCurrentRawMousePosition() | |||
JUCE_AUTORELEASEPOOL | |||
{ | |||
const NSPoint p ([NSEvent mouseLocation]); | |||
return Point<float> (p.x, getMainScreenHeight() - p.y); | |||
return Point<float> ((float) p.x, (float) (getMainScreenHeight() - p.y)); | |||
} | |||
} | |||
@@ -667,7 +667,7 @@ public: | |||
if (isTwoValue || isThreeValue) | |||
{ | |||
const float mousePos = (float) (isVertical() ? e.y : e.x); | |||
const float mousePos = isVertical() ? e.position.y : e.position.x; | |||
const float normalPosDistance = std::abs (getLinearSliderPos (currentValue.getValue()) - mousePos); | |||
const float minPosDistance = std::abs (getLinearSliderPos (valueMin.getValue()) - 0.1f - mousePos); | |||
@@ -689,10 +689,10 @@ public: | |||
//============================================================================== | |||
void handleRotaryDrag (const MouseEvent& e) | |||
{ | |||
const int dx = e.x - sliderRect.getCentreX(); | |||
const int dy = e.y - sliderRect.getCentreY(); | |||
const float dx = e.position.x - sliderRect.getCentreX(); | |||
const float dy = e.position.y - sliderRect.getCentreY(); | |||
if (dx * dx + dy * dy > 25) | |||
if (dx * dx + dy * dy > 25.0f) | |||
{ | |||
double angle = std::atan2 ((double) dx, (double) -dy); | |||
while (angle < 0.0) | |||
@@ -736,7 +736,7 @@ public: | |||
void handleAbsoluteDrag (const MouseEvent& e) | |||
{ | |||
const int mousePos = (isHorizontal() || style == RotaryHorizontalDrag) ? e.x : e.y; | |||
const float mousePos = (isHorizontal() || style == RotaryHorizontalDrag) ? e.position.x : e.position.y; | |||
double newPos = (mousePos - sliderRegionStart) / (double) sliderRegionSize; | |||
if (style == RotaryHorizontalDrag | |||
@@ -781,7 +781,7 @@ public: | |||
void handleVelocityDrag (const MouseEvent& e) | |||
{ | |||
const float mouseDiff = style == RotaryHorizontalVerticalDrag | |||
? (e.x - mousePosWhenLastDragged.x) + (mousePosWhenLastDragged.y - e.y) | |||
? (e.position.x - mousePosWhenLastDragged.x) + (mousePosWhenLastDragged.y - e.position.y) | |||
: (isHorizontal() | |||
|| style == RotaryHorizontalDrag | |||
|| (style == IncDecButtons && incDecDragDirectionIsHorizontal())) | |||
@@ -789,7 +789,7 @@ public: | |||
: e.position.y - mousePosWhenLastDragged.y; | |||
const double maxSpeed = jmax (200, sliderRegionSize); | |||
double speed = jlimit (0.0, maxSpeed, (double) abs (mouseDiff)); | |||
double speed = jlimit (0.0, maxSpeed, (double) std::abs (mouseDiff)); | |||
if (speed != 0) | |||
{ | |||
@@ -1,7 +1,7 @@ | |||
{ | |||
"id": "juce_gui_extra", | |||
"name": "JUCE extended GUI classes", | |||
"version": "3.0.6", | |||
"version": "3.0.7", | |||
"description": "Miscellaneous GUI classes for specialised tasks.", | |||
"website": "http://www.juce.com/juce", | |||
"license": "GPL/Commercial", | |||
@@ -381,7 +381,7 @@ struct ColourEditorComp : public Component, | |||
Colour getColour() const | |||
{ | |||
return Colour ((int) parseInt (editor.value.getStringValue (false))); | |||
return Colour ((uint32) parseInt (editor.value.getStringValue (false))); | |||
} | |||
void paint (Graphics& g) override | |||
@@ -53,7 +53,7 @@ namespace LiveConstantEditor | |||
inline void setFromString (double& v, const String& s) { v = parseDouble (s); } | |||
inline void setFromString (float& v, const String& s) { v = (float) parseDouble (s); } | |||
inline void setFromString (String& v, const String& s) { v = s; } | |||
inline void setFromString (Colour& v, const String& s) { v = Colour ((int) parseInt (s)); } | |||
inline void setFromString (Colour& v, const String& s) { v = Colour ((uint32) parseInt (s)); } | |||
template <typename Type> | |||
inline String getAsString (const Type& v, bool) { return String (v); } | |||