Browse Source

Update juce

tags/1.9.7
falkTX 9 years ago
parent
commit
7c0c3c02ae
100 changed files with 282 additions and 185 deletions
  1. +2
    -2
      source/modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp
  2. +1
    -1
      source/modules/juce_audio_basics/buffers/juce_AudioDataConverters.h
  3. +1
    -1
      source/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.cpp
  4. +1
    -1
      source/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h
  5. +2
    -2
      source/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp
  6. +1
    -1
      source/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h
  7. +1
    -1
      source/modules/juce_audio_basics/effects/juce_Decibels.h
  8. +34
    -6
      source/modules/juce_audio_basics/effects/juce_FFT.cpp
  9. +5
    -2
      source/modules/juce_audio_basics/effects/juce_FFT.h
  10. +1
    -1
      source/modules/juce_audio_basics/effects/juce_IIRFilter.cpp
  11. +1
    -1
      source/modules/juce_audio_basics/effects/juce_IIRFilter.h
  12. +1
    -1
      source/modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp
  13. +1
    -1
      source/modules/juce_audio_basics/effects/juce_LagrangeInterpolator.h
  14. +1
    -1
      source/modules/juce_audio_basics/effects/juce_Reverb.h
  15. +5
    -1
      source/modules/juce_audio_basics/juce_audio_basics.cpp
  16. +1
    -1
      source/modules/juce_audio_basics/juce_audio_basics.h
  17. +1
    -1
      source/modules/juce_audio_basics/midi/juce_MidiBuffer.cpp
  18. +1
    -1
      source/modules/juce_audio_basics/midi/juce_MidiBuffer.h
  19. +1
    -1
      source/modules/juce_audio_basics/midi/juce_MidiFile.cpp
  20. +1
    -1
      source/modules/juce_audio_basics/midi/juce_MidiFile.h
  21. +8
    -8
      source/modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp
  22. +4
    -4
      source/modules/juce_audio_basics/midi/juce_MidiKeyboardState.h
  23. +25
    -7
      source/modules/juce_audio_basics/midi/juce_MidiMessage.cpp
  24. +19
    -2
      source/modules/juce_audio_basics/midi/juce_MidiMessage.h
  25. +1
    -1
      source/modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp
  26. +1
    -1
      source/modules/juce_audio_basics/midi/juce_MidiMessageSequence.h
  27. +1
    -1
      source/modules/juce_audio_basics/sources/juce_AudioSource.h
  28. +1
    -1
      source/modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp
  29. +1
    -1
      source/modules/juce_audio_basics/sources/juce_BufferingAudioSource.h
  30. +1
    -1
      source/modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp
  31. +1
    -1
      source/modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h
  32. +1
    -1
      source/modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp
  33. +1
    -1
      source/modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h
  34. +1
    -1
      source/modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp
  35. +1
    -1
      source/modules/juce_audio_basics/sources/juce_MixerAudioSource.h
  36. +1
    -1
      source/modules/juce_audio_basics/sources/juce_PositionableAudioSource.h
  37. +1
    -1
      source/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp
  38. +1
    -1
      source/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h
  39. +1
    -1
      source/modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp
  40. +1
    -1
      source/modules/juce_audio_basics/sources/juce_ReverbAudioSource.h
  41. +1
    -1
      source/modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp
  42. +1
    -1
      source/modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h
  43. +1
    -1
      source/modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp
  44. +8
    -4
      source/modules/juce_audio_basics/synthesisers/juce_Synthesiser.h
  45. +1
    -1
      source/modules/juce_audio_devices/audio_cd/juce_AudioCDBurner.h
  46. +1
    -1
      source/modules/juce_audio_devices/audio_cd/juce_AudioCDReader.cpp
  47. +1
    -1
      source/modules/juce_audio_devices/audio_cd/juce_AudioCDReader.h
  48. +1
    -1
      source/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp
  49. +1
    -1
      source/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h
  50. +1
    -1
      source/modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp
  51. +1
    -1
      source/modules/juce_audio_devices/audio_io/juce_AudioIODevice.h
  52. +1
    -1
      source/modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp
  53. +1
    -1
      source/modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h
  54. +1
    -1
      source/modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h
  55. +1
    -1
      source/modules/juce_audio_devices/juce_audio_devices.cpp
  56. +1
    -1
      source/modules/juce_audio_devices/juce_audio_devices.h
  57. +1
    -1
      source/modules/juce_audio_devices/midi_io/juce_MidiInput.h
  58. +6
    -6
      source/modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp
  59. +2
    -2
      source/modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h
  60. +4
    -3
      source/modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp
  61. +6
    -2
      source/modules/juce_audio_devices/midi_io/juce_MidiOutput.h
  62. +1
    -1
      source/modules/juce_audio_devices/native/juce_MidiDataConcatenator.h
  63. +1
    -1
      source/modules/juce_audio_devices/native/juce_android_Audio.cpp
  64. +1
    -1
      source/modules/juce_audio_devices/native/juce_android_Midi.cpp
  65. +1
    -1
      source/modules/juce_audio_devices/native/juce_android_OpenSL.cpp
  66. +1
    -1
      source/modules/juce_audio_devices/native/juce_ios_Audio.cpp
  67. +1
    -1
      source/modules/juce_audio_devices/native/juce_linux_ALSA.cpp
  68. +1
    -1
      source/modules/juce_audio_devices/native/juce_linux_AudioCDReader.cpp
  69. +1
    -1
      source/modules/juce_audio_devices/native/juce_linux_JackAudio.cpp
  70. +3
    -3
      source/modules/juce_audio_devices/native/juce_linux_Midi.cpp
  71. +1
    -1
      source/modules/juce_audio_devices/native/juce_mac_AudioCDBurner.mm
  72. +1
    -1
      source/modules/juce_audio_devices/native/juce_mac_AudioCDReader.mm
  73. +16
    -7
      source/modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp
  74. +4
    -3
      source/modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp
  75. +1
    -1
      source/modules/juce_audio_devices/native/juce_win32_ASIO.cpp
  76. +1
    -1
      source/modules/juce_audio_devices/native/juce_win32_AudioCDBurner.cpp
  77. +1
    -1
      source/modules/juce_audio_devices/native/juce_win32_AudioCDReader.cpp
  78. +4
    -4
      source/modules/juce_audio_devices/native/juce_win32_DirectSound.cpp
  79. +16
    -12
      source/modules/juce_audio_devices/native/juce_win32_Midi.cpp
  80. +21
    -21
      source/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp
  81. +1
    -1
      source/modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp
  82. +1
    -1
      source/modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h
  83. +1
    -1
      source/modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp
  84. +1
    -1
      source/modules/juce_audio_devices/sources/juce_AudioTransportSource.h
  85. +4
    -0
      source/modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c
  86. +1
    -1
      source/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp
  87. +1
    -1
      source/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h
  88. +1
    -1
      source/modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp
  89. +1
    -1
      source/modules/juce_audio_formats/codecs/juce_CoreAudioFormat.h
  90. +1
    -1
      source/modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp
  91. +1
    -1
      source/modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h
  92. +1
    -1
      source/modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp
  93. +1
    -1
      source/modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h
  94. +3
    -3
      source/modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp
  95. +3
    -3
      source/modules/juce_audio_formats/codecs/juce_MP3AudioFormat.h
  96. +2
    -2
      source/modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp
  97. +1
    -1
      source/modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h
  98. +1
    -1
      source/modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.cpp
  99. +1
    -1
      source/modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.h
  100. +1
    -1
      source/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp

+ 2
- 2
source/modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -579,7 +579,7 @@ public:
} }
}; };
void runTest()
void runTest() override
{ {
Random r = getRandom(); Random r = getRandom();
beginTest ("Round-trip conversion: Int8"); beginTest ("Round-trip conversion: Int8");


+ 1
- 1
source/modules/juce_audio_basics/buffers/juce_AudioDataConverters.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 2
- 2
source/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -1146,7 +1146,7 @@ public:
} }
}; };
void runTest()
void runTest() override
{ {
beginTest ("FloatVectorOperations"); beginTest ("FloatVectorOperations");


+ 1
- 1
source/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/effects/juce_Decibels.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 34
- 6
source/modules/juce_audio_basics/effects/juce_FFT.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -225,13 +225,43 @@ void FFT::perform (const Complex* const input, Complex* const output) const noex
config->perform (input, output); config->perform (input, output);
} }
const size_t maxFFTScratchSpaceToAlloca = 256 * 1024;
void FFT::performRealOnlyForwardTransform (float* d) const noexcept void FFT::performRealOnlyForwardTransform (float* d) const noexcept
{
const size_t scratchSize = 16 + sizeof (FFT::Complex) * (size_t) size;
if (scratchSize < maxFFTScratchSpaceToAlloca)
{
performRealOnlyForwardTransform (static_cast<Complex*> (alloca (scratchSize)), d);
}
else
{
HeapBlock<char> heapSpace (scratchSize);
performRealOnlyForwardTransform (reinterpret_cast<Complex*> (heapSpace.getData()), d);
}
}
void FFT::performRealOnlyInverseTransform (float* d) const noexcept
{
const size_t scratchSize = 16 + sizeof (FFT::Complex) * (size_t) size;
if (scratchSize < maxFFTScratchSpaceToAlloca)
{
performRealOnlyForwardTransform (static_cast<Complex*> (alloca (scratchSize)), d);
}
else
{
HeapBlock<char> heapSpace (scratchSize);
performRealOnlyInverseTransform (reinterpret_cast<Complex*> (heapSpace.getData()), d);
}
}
void FFT::performRealOnlyForwardTransform (Complex* scratch, float* d) const noexcept
{ {
// This can only be called on an FFT object that was created to do forward transforms. // This can only be called on an FFT object that was created to do forward transforms.
jassert (! config->inverse); jassert (! config->inverse);
Complex* const scratch = static_cast<Complex*> (alloca (16 + sizeof (Complex) * (size_t) size));
for (int i = 0; i < size; ++i) for (int i = 0; i < size; ++i)
{ {
scratch[i].r = d[i]; scratch[i].r = d[i];
@@ -241,13 +271,11 @@ void FFT::performRealOnlyForwardTransform (float* d) const noexcept
perform (scratch, reinterpret_cast<Complex*> (d)); perform (scratch, reinterpret_cast<Complex*> (d));
} }
void FFT::performRealOnlyInverseTransform (float* d) const noexcept
void FFT::performRealOnlyInverseTransform (Complex* scratch, float* d) const noexcept
{ {
// This can only be called on an FFT object that was created to do inverse transforms. // This can only be called on an FFT object that was created to do inverse transforms.
jassert (config->inverse); jassert (config->inverse);
Complex* const scratch = static_cast<Complex*> (alloca (16 + sizeof (Complex) * (size_t) size));
perform (reinterpret_cast<const Complex*> (d), scratch); perform (reinterpret_cast<const Complex*> (d), scratch);
const float scaleFactor = 1.0f / size; const float scaleFactor = 1.0f / size;


+ 5
- 2
source/modules/juce_audio_basics/effects/juce_FFT.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -84,9 +84,12 @@ public:
int getSize() const noexcept { return size; } int getSize() const noexcept { return size; }
private: private:
struct FFTConfig;
JUCE_PUBLIC_IN_DLL_BUILD (struct FFTConfig)
ScopedPointer<FFTConfig> config; ScopedPointer<FFTConfig> config;
const int size; const int size;
void performRealOnlyForwardTransform (Complex*, float*) const noexcept;
void performRealOnlyInverseTransform (Complex*, float*) const noexcept;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FFT) JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FFT)
}; };

+ 1
- 1
source/modules/juce_audio_basics/effects/juce_IIRFilter.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/effects/juce_IIRFilter.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/effects/juce_LagrangeInterpolator.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/effects/juce_Reverb.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 5
- 1
source/modules/juce_audio_basics/juce_audio_basics.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -40,6 +40,10 @@
#define JUCE_USE_SSE_INTRINSICS 0 #define JUCE_USE_SSE_INTRINSICS 0
#endif #endif
#if JUCE_MINGW
#define alloca __builtin_alloca
#endif
#ifndef JUCE_USE_SSE_INTRINSICS #ifndef JUCE_USE_SSE_INTRINSICS
#define JUCE_USE_SSE_INTRINSICS 1 #define JUCE_USE_SSE_INTRINSICS 1
#endif #endif


+ 1
- 1
source/modules/juce_audio_basics/juce_audio_basics.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/midi/juce_MidiBuffer.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/midi/juce_MidiBuffer.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/midi/juce_MidiFile.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/midi/juce_MidiFile.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 8
- 8
source/modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -81,7 +81,7 @@ void MidiKeyboardState::noteOnInternal (const int midiChannel, const int midiNo
} }
} }
void MidiKeyboardState::noteOff (const int midiChannel, const int midiNoteNumber)
void MidiKeyboardState::noteOff (const int midiChannel, const int midiNoteNumber, const float velocity)
{ {
const ScopedLock sl (lock); const ScopedLock sl (lock);
@@ -91,18 +91,18 @@ void MidiKeyboardState::noteOff (const int midiChannel, const int midiNoteNumber
eventsToAdd.addEvent (MidiMessage::noteOff (midiChannel, midiNoteNumber), timeNow); eventsToAdd.addEvent (MidiMessage::noteOff (midiChannel, midiNoteNumber), timeNow);
eventsToAdd.clear (0, timeNow - 500); eventsToAdd.clear (0, timeNow - 500);
noteOffInternal (midiChannel, midiNoteNumber);
noteOffInternal (midiChannel, midiNoteNumber, velocity);
} }
} }
void MidiKeyboardState::noteOffInternal (const int midiChannel, const int midiNoteNumber)
void MidiKeyboardState::noteOffInternal (const int midiChannel, const int midiNoteNumber, const float velocity)
{ {
if (isNoteOn (midiChannel, midiNoteNumber)) if (isNoteOn (midiChannel, midiNoteNumber))
{ {
noteStates [midiNoteNumber] &= ~(1 << (midiChannel - 1)); noteStates [midiNoteNumber] &= ~(1 << (midiChannel - 1));
for (int i = listeners.size(); --i >= 0;) for (int i = listeners.size(); --i >= 0;)
listeners.getUnchecked(i)->handleNoteOff (this, midiChannel, midiNoteNumber);
listeners.getUnchecked(i)->handleNoteOff (this, midiChannel, midiNoteNumber, velocity);
} }
} }
@@ -118,7 +118,7 @@ void MidiKeyboardState::allNotesOff (const int midiChannel)
else else
{ {
for (int i = 0; i < 128; ++i) for (int i = 0; i < 128; ++i)
noteOff (midiChannel, i);
noteOff (midiChannel, i, 0.0f);
} }
} }
@@ -130,12 +130,12 @@ void MidiKeyboardState::processNextMidiEvent (const MidiMessage& message)
} }
else if (message.isNoteOff()) else if (message.isNoteOff())
{ {
noteOffInternal (message.getChannel(), message.getNoteNumber());
noteOffInternal (message.getChannel(), message.getNoteNumber(), message.getFloatVelocity());
} }
else if (message.isAllNotesOff()) else if (message.isAllNotesOff())
{ {
for (int i = 0; i < 128; ++i) for (int i = 0; i < 128; ++i)
noteOffInternal (message.getChannel(), i);
noteOffInternal (message.getChannel(), i, 0.0f);
} }
} }


+ 4
- 4
source/modules/juce_audio_basics/midi/juce_MidiKeyboardState.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -64,7 +64,7 @@ public:
careful not to block, and avoid any UI activity in the callback. careful not to block, and avoid any UI activity in the callback.
*/ */
virtual void handleNoteOff (MidiKeyboardState* source, virtual void handleNoteOff (MidiKeyboardState* source,
int midiChannel, int midiNoteNumber) = 0;
int midiChannel, int midiNoteNumber, float velocity) = 0;
}; };
@@ -135,7 +135,7 @@ public:
But if the note isn't acutally down for the given channel, this method will in fact do nothing. But if the note isn't acutally down for the given channel, this method will in fact do nothing.
*/ */
void noteOff (int midiChannel, int midiNoteNumber);
void noteOff (int midiChannel, int midiNoteNumber, float velocity);
/** This will turn off any currently-down notes for the given midi channel. /** This will turn off any currently-down notes for the given midi channel.
@@ -196,7 +196,7 @@ private:
Array <MidiKeyboardStateListener*> listeners; Array <MidiKeyboardStateListener*> listeners;
void noteOnInternal (int midiChannel, int midiNoteNumber, float velocity); void noteOnInternal (int midiChannel, int midiNoteNumber, float velocity);
void noteOffInternal (int midiChannel, int midiNoteNumber);
void noteOffInternal (int midiChannel, int midiNoteNumber, float velocity);
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MidiKeyboardState) JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MidiKeyboardState)
}; };


+ 25
- 7
source/modules/juce_audio_basics/midi/juce_MidiMessage.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -33,6 +33,11 @@ namespace MidiHelpers
{ {
return (uint8) jlimit (0, 127, v); return (uint8) jlimit (0, 127, v);
} }
inline uint8 floatVelocityToByte (const float v) noexcept
{
return validVelocity (roundToInt (v * 127.0f));
}
} }
//============================================================================== //==============================================================================
@@ -386,7 +391,7 @@ float MidiMessage::getFloatVelocity() const noexcept
void MidiMessage::setVelocity (const float newVelocity) noexcept void MidiMessage::setVelocity (const float newVelocity) noexcept
{ {
if (isNoteOnOrOff()) if (isNoteOnOrOff())
getData()[2] = MidiHelpers::validVelocity (roundToInt (newVelocity * 127.0f));
getData()[2] = MidiHelpers::floatVelocityToByte (newVelocity);
} }
void MidiMessage::multiplyVelocity (const float scaleFactor) noexcept void MidiMessage::multiplyVelocity (const float scaleFactor) noexcept
@@ -522,11 +527,6 @@ MidiMessage MidiMessage::controllerEvent (const int channel, const int controlle
controllerType & 127, value & 127); controllerType & 127, value & 127);
} }
MidiMessage MidiMessage::noteOn (const int channel, const int noteNumber, const float velocity) noexcept
{
return noteOn (channel, noteNumber, (uint8) (velocity * 127.0f + 0.5f));
}
MidiMessage MidiMessage::noteOn (const int channel, const int noteNumber, const uint8 velocity) noexcept MidiMessage MidiMessage::noteOn (const int channel, const int noteNumber, const uint8 velocity) noexcept
{ {
jassert (channel > 0 && channel <= 16); jassert (channel > 0 && channel <= 16);
@@ -536,6 +536,11 @@ MidiMessage MidiMessage::noteOn (const int channel, const int noteNumber, const
noteNumber & 127, MidiHelpers::validVelocity (velocity)); noteNumber & 127, MidiHelpers::validVelocity (velocity));
} }
MidiMessage MidiMessage::noteOn (const int channel, const int noteNumber, const float velocity) noexcept
{
return noteOn (channel, noteNumber, MidiHelpers::floatVelocityToByte (velocity));
}
MidiMessage MidiMessage::noteOff (const int channel, const int noteNumber, uint8 velocity) noexcept MidiMessage MidiMessage::noteOff (const int channel, const int noteNumber, uint8 velocity) noexcept
{ {
jassert (channel > 0 && channel <= 16); jassert (channel > 0 && channel <= 16);
@@ -545,6 +550,19 @@ MidiMessage MidiMessage::noteOff (const int channel, const int noteNumber, uint8
noteNumber & 127, MidiHelpers::validVelocity (velocity)); noteNumber & 127, MidiHelpers::validVelocity (velocity));
} }
MidiMessage MidiMessage::noteOff (const int channel, const int noteNumber, float velocity) noexcept
{
return noteOff (channel, noteNumber, MidiHelpers::floatVelocityToByte (velocity));
}
MidiMessage MidiMessage::noteOff (const int channel, const int noteNumber) noexcept
{
jassert (channel > 0 && channel <= 16);
jassert (isPositiveAndBelow (noteNumber, (int) 128));
return MidiMessage (MidiHelpers::initialByte (0x80, channel), noteNumber & 127, 0);
}
MidiMessage MidiMessage::allNotesOff (const int channel) noexcept MidiMessage MidiMessage::allNotesOff (const int channel) noexcept
{ {
return controllerEvent (channel, 123, 0); return controllerEvent (channel, 123, 0);


+ 19
- 2
source/modules/juce_audio_basics/midi/juce_MidiMessage.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -234,6 +234,15 @@ public:
*/ */
bool isNoteOff (bool returnTrueForNoteOnVelocity0 = true) const noexcept; bool isNoteOff (bool returnTrueForNoteOnVelocity0 = true) const noexcept;
/** Creates a key-up message.
@param channel the midi channel, in the range 1 to 16
@param noteNumber the key number, 0 to 127
@param velocity in the range 0 to 1.0
@see isNoteOff
*/
static MidiMessage noteOff (int channel, int noteNumber, float velocity) noexcept;
/** Creates a key-up message. /** Creates a key-up message.
@param channel the midi channel, in the range 1 to 16 @param channel the midi channel, in the range 1 to 16
@@ -241,7 +250,15 @@ public:
@param velocity in the range 0 to 127 @param velocity in the range 0 to 127
@see isNoteOff @see isNoteOff
*/ */
static MidiMessage noteOff (int channel, int noteNumber, uint8 velocity = 0) noexcept;
static MidiMessage noteOff (int channel, int noteNumber, uint8 velocity) noexcept;
/** Creates a key-up message.
@param channel the midi channel, in the range 1 to 16
@param noteNumber the key number, 0 to 127
@see isNoteOff
*/
static MidiMessage noteOff (int channel, int noteNumber) noexcept;
/** Returns true if this message is a 'key-down' or 'key-up' event. /** Returns true if this message is a 'key-down' or 'key-up' event.


+ 1
- 1
source/modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/midi/juce_MidiMessageSequence.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/sources/juce_AudioSource.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/sources/juce_BufferingAudioSource.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/sources/juce_MixerAudioSource.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/sources/juce_PositionableAudioSource.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/sources/juce_ReverbAudioSource.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 8
- 4
source/modules/juce_audio_basics/synthesisers/juce_Synthesiser.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -571,7 +571,6 @@ protected:
int midiNoteNumber) const; int midiNoteNumber) const;
/** Starts a specified voice playing a particular sound. /** Starts a specified voice playing a particular sound.
You'll probably never need to call this, it's used internally by noteOn(), but You'll probably never need to call this, it's used internally by noteOn(), but
may be needed by subclasses for custom behaviours. may be needed by subclasses for custom behaviours.
*/ */
@@ -581,6 +580,13 @@ protected:
int midiNoteNumber, int midiNoteNumber,
float velocity); float velocity);
/** Stops a given voice.
You should never need to call this, it's used internally by noteOff, but is protected
in case it's useful for some custom subclasses. It basically just calls through to
SynthesiserVoice::stopNote(), and has some assertions to sanity-check a few things.
*/
void stopVoice (SynthesiserVoice*, float velocity, bool allowTailOff);
/** Can be overridden to do custom handling of incoming midi events. */ /** Can be overridden to do custom handling of incoming midi events. */
virtual void handleMidiEvent (const MidiMessage&); virtual void handleMidiEvent (const MidiMessage&);
@@ -592,8 +598,6 @@ private:
bool shouldStealNotes; bool shouldStealNotes;
BigInteger sustainPedalsDown; BigInteger sustainPedalsDown;
void stopVoice (SynthesiserVoice*, float velocity, bool allowTailOff);
#if JUCE_CATCH_DEPRECATED_CODE_MISUSE #if JUCE_CATCH_DEPRECATED_CODE_MISUSE
// Note the new parameters for these methods. // Note the new parameters for these methods.
virtual int findFreeVoice (const bool) const { return 0; } virtual int findFreeVoice (const bool) const { return 0; }


+ 1
- 1
source/modules/juce_audio_devices/audio_cd/juce_AudioCDBurner.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/audio_cd/juce_AudioCDReader.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/audio_cd/juce_AudioCDReader.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/audio_io/juce_AudioIODevice.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/juce_audio_devices.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/juce_audio_devices.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/midi_io/juce_MidiInput.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 6
- 6
source/modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -33,12 +33,12 @@ MidiMessageCollector::~MidiMessageCollector()
} }
//============================================================================== //==============================================================================
void MidiMessageCollector::reset (const double sampleRate_)
void MidiMessageCollector::reset (const double newSampleRate)
{ {
jassert (sampleRate_ > 0);
jassert (newSampleRate > 0);
const ScopedLock sl (midiCallbackLock); const ScopedLock sl (midiCallbackLock);
sampleRate = sampleRate_;
sampleRate = newSampleRate;
incomingMessages.clear(); incomingMessages.clear();
lastCallbackTime = Time::getMillisecondCounterHiRes(); lastCallbackTime = Time::getMillisecondCounterHiRes();
} }
@@ -139,9 +139,9 @@ void MidiMessageCollector::handleNoteOn (MidiKeyboardState*, int midiChannel, in
addMessageToQueue (m); addMessageToQueue (m);
} }
void MidiMessageCollector::handleNoteOff (MidiKeyboardState*, int midiChannel, int midiNoteNumber)
void MidiMessageCollector::handleNoteOff (MidiKeyboardState*, int midiChannel, int midiNoteNumber, float velocity)
{ {
MidiMessage m (MidiMessage::noteOff (midiChannel, midiNoteNumber));
MidiMessage m (MidiMessage::noteOff (midiChannel, midiNoteNumber, velocity));
m.setTimeStamp (Time::getMillisecondCounterHiRes() * 0.001); m.setTimeStamp (Time::getMillisecondCounterHiRes() * 0.001);
addMessageToQueue (m); addMessageToQueue (m);


+ 2
- 2
source/modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -86,7 +86,7 @@ public:
/** @internal */ /** @internal */
void handleNoteOn (MidiKeyboardState*, int midiChannel, int midiNoteNumber, float velocity) override; void handleNoteOn (MidiKeyboardState*, int midiChannel, int midiNoteNumber, float velocity) override;
/** @internal */ /** @internal */
void handleNoteOff (MidiKeyboardState*, int midiChannel, int midiNoteNumber) override;
void handleNoteOff (MidiKeyboardState*, int midiChannel, int midiNoteNumber, float velocity) override;
/** @internal */ /** @internal */
void handleIncomingMidiMessage (MidiInput*, const MidiMessage&) override; void handleIncomingMidiMessage (MidiInput*, const MidiMessage&) override;


+ 4
- 3
source/modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -32,10 +32,11 @@ struct MidiOutput::PendingMessage
PendingMessage* next; PendingMessage* next;
}; };
MidiOutput::MidiOutput()
MidiOutput::MidiOutput(const String& midiName)
: Thread ("midi out"), : Thread ("midi out"),
internal (nullptr), internal (nullptr),
firstMessage (nullptr)
firstMessage (nullptr),
name (midiName)
{ {
} }


+ 6
- 2
source/modules/juce_audio_devices/midi_io/juce_MidiOutput.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -84,6 +84,9 @@ public:
/** Destructor. */ /** Destructor. */
~MidiOutput(); ~MidiOutput();
/** Returns the name of this device. */
const String& getName() const noexcept { return name; }
/** Makes this device output a midi message. /** Makes this device output a midi message.
@see MidiMessage @see MidiMessage
*/ */
@@ -131,8 +134,9 @@ private:
CriticalSection lock; CriticalSection lock;
struct PendingMessage; struct PendingMessage;
PendingMessage* firstMessage; PendingMessage* firstMessage;
String name;
MidiOutput(); // These objects are created with the openDevice() method.
MidiOutput(const String& midiName); // These objects are created with the openDevice() method.
void run() override; void run() override;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MidiOutput) JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MidiOutput)


+ 1
- 1
source/modules/juce_audio_devices/native/juce_MidiDataConcatenator.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/native/juce_android_Audio.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/native/juce_android_Midi.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/native/juce_android_OpenSL.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/native/juce_ios_Audio.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/native/juce_linux_ALSA.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/native/juce_linux_AudioCDReader.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/native/juce_linux_JackAudio.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 3
- 3
source/modules/juce_audio_devices/native/juce_linux_Midi.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -497,7 +497,7 @@ MidiOutput* MidiOutput::openDevice (int deviceIndex)
if (port.isValid()) if (port.isValid())
{ {
newDevice = new MidiOutput();
newDevice = new MidiOutput (devices [deviceIndex]);
newDevice->internal = new MidiOutputDevice (newDevice, port); newDevice->internal = new MidiOutputDevice (newDevice, port);
} }
@@ -512,7 +512,7 @@ MidiOutput* MidiOutput::createNewDevice (const String& deviceName)
if (port.isValid()) if (port.isValid())
{ {
newDevice = new MidiOutput();
newDevice = new MidiOutput (deviceName);
newDevice->internal = new MidiOutputDevice (newDevice, port); newDevice->internal = new MidiOutputDevice (newDevice, port);
} }


+ 1
- 1
source/modules/juce_audio_devices/native/juce_mac_AudioCDBurner.mm View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/native/juce_mac_AudioCDReader.mm View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 16
- 7
source/modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -28,10 +28,15 @@
#define JUCE_COREAUDIOLOG(a) #define JUCE_COREAUDIOLOG(a)
#endif #endif
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnonnull" // aovid some spurious 10.11 SDK warnings
#endif
//============================================================================== //==============================================================================
struct SystemVol struct SystemVol
{ {
SystemVol (AudioObjectPropertySelector selector)
SystemVol (AudioObjectPropertySelector selector) noexcept
: outputDeviceID (kAudioObjectUnknown) : outputDeviceID (kAudioObjectUnknown)
{ {
addr.mScope = kAudioObjectPropertyScopeGlobal; addr.mScope = kAudioObjectPropertyScopeGlobal;
@@ -56,7 +61,7 @@ struct SystemVol
} }
} }
float getGain()
float getGain() const noexcept
{ {
Float32 gain = 0; Float32 gain = 0;
@@ -70,7 +75,7 @@ struct SystemVol
return (float) gain; return (float) gain;
} }
bool setGain (float gain)
bool setGain (float gain) const noexcept
{ {
if (outputDeviceID != kAudioObjectUnknown && canSetVolume()) if (outputDeviceID != kAudioObjectUnknown && canSetVolume())
{ {
@@ -84,7 +89,7 @@ struct SystemVol
return false; return false;
} }
bool isMuted()
bool isMuted() const noexcept
{ {
UInt32 muted = 0; UInt32 muted = 0;
@@ -98,7 +103,7 @@ struct SystemVol
return muted != 0; return muted != 0;
} }
bool setMuted (bool mute)
bool setMuted (bool mute) const noexcept
{ {
if (outputDeviceID != kAudioObjectUnknown && canSetVolume()) if (outputDeviceID != kAudioObjectUnknown && canSetVolume())
{ {
@@ -116,7 +121,7 @@ private:
AudioDeviceID outputDeviceID; AudioDeviceID outputDeviceID;
AudioObjectPropertyAddress addr; AudioObjectPropertyAddress addr;
bool canSetVolume()
bool canSetVolume() const noexcept
{ {
Boolean isSettable = NO; Boolean isSettable = NO;
return AudioHardwareServiceIsPropertySettable (outputDeviceID, &addr, &isSettable) == noErr return AudioHardwareServiceIsPropertySettable (outputDeviceID, &addr, &isSettable) == noErr
@@ -124,6 +129,10 @@ private:
} }
}; };
#ifdef __clang__
#pragma clang diagnostic pop
#endif
#define JUCE_SYSTEMAUDIOVOL_IMPLEMENTED 1 #define JUCE_SYSTEMAUDIOVOL_IMPLEMENTED 1
float JUCE_CALLTYPE SystemAudioVolume::getGain() { return SystemVol (kAudioHardwareServiceDeviceProperty_VirtualMasterVolume).getGain(); } float JUCE_CALLTYPE SystemAudioVolume::getGain() { return SystemVol (kAudioHardwareServiceDeviceProperty_VirtualMasterVolume).getGain(); }
bool JUCE_CALLTYPE SystemAudioVolume::setGain (float gain) { return SystemVol (kAudioHardwareServiceDeviceProperty_VirtualMasterVolume).setGain (gain); } bool JUCE_CALLTYPE SystemAudioVolume::setGain (float gain) { return SystemVol (kAudioHardwareServiceDeviceProperty_VirtualMasterVolume).setGain (gain); }


+ 4
- 3
source/modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -332,10 +332,11 @@ MidiOutput* MidiOutput::openDevice (int index)
{ {
MIDIClientRef client = CoreMidiHelpers::getGlobalMidiClient(); MIDIClientRef client = CoreMidiHelpers::getGlobalMidiClient();
MIDIPortRef port; MIDIPortRef port;
String deviceName = CoreMidiHelpers::getConnectedEndpointName (endPoint);
if (client != 0 && CHECK_ERROR (MIDIOutputPortCreate (client, pname.cfString, &port))) if (client != 0 && CHECK_ERROR (MIDIOutputPortCreate (client, pname.cfString, &port)))
{ {
mo = new MidiOutput();
mo = new MidiOutput (deviceName);
mo->internal = new CoreMidiHelpers::MidiPortAndEndpoint (port, endPoint); mo->internal = new CoreMidiHelpers::MidiPortAndEndpoint (port, endPoint);
} }
} }
@@ -354,7 +355,7 @@ MidiOutput* MidiOutput::createNewDevice (const String& deviceName)
if (client != 0 && CHECK_ERROR (MIDISourceCreate (client, name.cfString, &endPoint))) if (client != 0 && CHECK_ERROR (MIDISourceCreate (client, name.cfString, &endPoint)))
{ {
MidiOutput* mo = new MidiOutput();
MidiOutput* mo = new MidiOutput (deviceName);
mo->internal = new CoreMidiHelpers::MidiPortAndEndpoint (0, endPoint); mo->internal = new CoreMidiHelpers::MidiPortAndEndpoint (0, endPoint);
return mo; return mo;
} }


+ 1
- 1
source/modules/juce_audio_devices/native/juce_win32_ASIO.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/native/juce_win32_AudioCDBurner.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/native/juce_win32_AudioCDReader.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 4
- 4
source/modules/juce_audio_devices/native/juce_win32_DirectSound.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -640,7 +640,7 @@ public:
DWORD dwsize1 = 0; DWORD dwsize1 = 0;
DWORD dwsize2 = 0; DWORD dwsize2 = 0;
HRESULT hr = pInputBuffer->Lock ((DWORD) readOffset, (DWORD) bytesPerBuffer,
hr = pInputBuffer->Lock ((DWORD) readOffset, (DWORD) bytesPerBuffer,
(void**) &buf1, &dwsize1, (void**) &buf1, &dwsize1,
(void**) &buf2, &dwsize2, 0); (void**) &buf2, &dwsize2, 0);
@@ -753,9 +753,9 @@ public:
String open (const BigInteger& inputChannels, String open (const BigInteger& inputChannels,
const BigInteger& outputChannels, const BigInteger& outputChannels,
double sampleRate, int bufferSizeSamples) override
double newSampleRate, int newBufferSize) override
{ {
lastError = openDevice (inputChannels, outputChannels, sampleRate, bufferSizeSamples);
lastError = openDevice (inputChannels, outputChannels, newSampleRate, newBufferSize);
isOpen_ = lastError.isEmpty(); isOpen_ = lastError.isEmpty();
return lastError; return lastError;


+ 16
- 12
source/modules/juce_audio_devices/native/juce_win32_Midi.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -143,37 +143,37 @@ private:
public: public:
MidiHeader() {} MidiHeader() {}
void prepare (HMIDIIN deviceHandle)
void prepare (HMIDIIN device)
{ {
zerostruct (hdr); zerostruct (hdr);
hdr.lpData = data; hdr.lpData = data;
hdr.dwBufferLength = (DWORD) numElementsInArray (data); hdr.dwBufferLength = (DWORD) numElementsInArray (data);
midiInPrepareHeader (deviceHandle, &hdr, sizeof (hdr));
midiInPrepareHeader (device, &hdr, sizeof (hdr));
} }
void unprepare (HMIDIIN deviceHandle)
void unprepare (HMIDIIN device)
{ {
if ((hdr.dwFlags & WHDR_DONE) != 0) if ((hdr.dwFlags & WHDR_DONE) != 0)
{ {
int c = 10; int c = 10;
while (--c >= 0 && midiInUnprepareHeader (deviceHandle, &hdr, sizeof (hdr)) == MIDIERR_STILLPLAYING)
while (--c >= 0 && midiInUnprepareHeader (device, &hdr, sizeof (hdr)) == MIDIERR_STILLPLAYING)
Thread::sleep (20); Thread::sleep (20);
jassert (c >= 0); jassert (c >= 0);
} }
} }
void write (HMIDIIN deviceHandle)
void write (HMIDIIN device)
{ {
hdr.dwBytesRecorded = 0; hdr.dwBytesRecorded = 0;
midiInAddBuffer (deviceHandle, &hdr, sizeof (hdr));
midiInAddBuffer (device, &hdr, sizeof (hdr));
} }
void writeIfFinished (HMIDIIN deviceHandle)
void writeIfFinished (HMIDIIN device)
{ {
if ((hdr.dwFlags & WHDR_DONE) != 0) if ((hdr.dwFlags & WHDR_DONE) != 0)
write (deviceHandle);
write (device);
} }
private: private:
@@ -362,6 +362,7 @@ MidiOutput* MidiOutput::openDevice (int index)
UINT deviceId = MIDI_MAPPER; UINT deviceId = MIDI_MAPPER;
const UINT num = midiOutGetNumDevs(); const UINT num = midiOutGetNumDevs();
int n = 0; int n = 0;
String deviceName;
for (UINT i = 0; i < num; ++i) for (UINT i = 0; i < num; ++i)
{ {
@@ -369,13 +370,16 @@ MidiOutput* MidiOutput::openDevice (int index)
if (midiOutGetDevCaps (i, &mc, sizeof (mc)) == MMSYSERR_NOERROR) if (midiOutGetDevCaps (i, &mc, sizeof (mc)) == MMSYSERR_NOERROR)
{ {
String name = String (mc.szPname, sizeof (mc.szPname));
// use the microsoft sw synth as a default - best not to allow deviceId // use the microsoft sw synth as a default - best not to allow deviceId
// to be MIDI_MAPPER, or else device sharing breaks // to be MIDI_MAPPER, or else device sharing breaks
if (String (mc.szPname, sizeof (mc.szPname)).containsIgnoreCase ("microsoft"))
if (name.containsIgnoreCase ("microsoft"))
deviceId = i; deviceId = i;
if (index == n) if (index == n)
{ {
deviceName = name;
deviceId = i; deviceId = i;
break; break;
} }
@@ -392,7 +396,7 @@ MidiOutput* MidiOutput::openDevice (int index)
{ {
han->refCount++; han->refCount++;
MidiOutput* const out = new MidiOutput();
MidiOutput* const out = new MidiOutput (deviceName);
out->internal = han; out->internal = han;
return out; return out;
} }
@@ -411,7 +415,7 @@ MidiOutput* MidiOutput::openDevice (int index)
han->handle = h; han->handle = h;
MidiOutHandle::activeHandles.add (han); MidiOutHandle::activeHandles.add (han);
MidiOutput* const out = new MidiOutput();
MidiOutput* const out = new MidiOutput (deviceName);
out->internal = han; out->internal = han;
return out; return out;
} }


+ 21
- 21
source/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -547,13 +547,13 @@ private:
//============================================================================== //==============================================================================
ComSmartPtr<IAudioClient> createClient() ComSmartPtr<IAudioClient> createClient()
{ {
ComSmartPtr<IAudioClient> client;
ComSmartPtr<IAudioClient> newClient;
if (device != nullptr) if (device != nullptr)
logFailure (device->Activate (__uuidof (IAudioClient), CLSCTX_INPROC_SERVER, logFailure (device->Activate (__uuidof (IAudioClient), CLSCTX_INPROC_SERVER,
nullptr, (void**) client.resetAndGetPointerAddress()));
nullptr, (void**) newClient.resetAndGetPointerAddress()));
return client;
return newClient;
} }
struct AudioSampleFormat struct AudioSampleFormat
@@ -563,8 +563,8 @@ private:
int bytesPerSampleContainer; int bytesPerSampleContainer;
}; };
bool tryFormat (const AudioSampleFormat sampleFormat, IAudioClient* clientToUse, double sampleRate,
DWORD mixFormatChannelMask, WAVEFORMATEXTENSIBLE& format) const
bool tryFormat (const AudioSampleFormat sampleFormat, IAudioClient* clientToUse, double newSampleRate,
DWORD newMixFormatChannelMask, WAVEFORMATEXTENSIBLE& format) const
{ {
zerostruct (format); zerostruct (format);
@@ -578,14 +578,14 @@ private:
format.Format.cbSize = sizeof (WAVEFORMATEXTENSIBLE) - sizeof (WAVEFORMATEX); format.Format.cbSize = sizeof (WAVEFORMATEXTENSIBLE) - sizeof (WAVEFORMATEX);
} }
format.Format.nSamplesPerSec = (DWORD) sampleRate;
format.Format.nSamplesPerSec = (DWORD) newSampleRate;
format.Format.nChannels = (WORD) numChannels; format.Format.nChannels = (WORD) numChannels;
format.Format.wBitsPerSample = (WORD) (8 * sampleFormat.bytesPerSampleContainer); format.Format.wBitsPerSample = (WORD) (8 * sampleFormat.bytesPerSampleContainer);
format.Samples.wValidBitsPerSample = (WORD) (sampleFormat.bitsPerSampleToTry); format.Samples.wValidBitsPerSample = (WORD) (sampleFormat.bitsPerSampleToTry);
format.Format.nBlockAlign = (WORD) (format.Format.nChannels * format.Format.wBitsPerSample / 8); format.Format.nBlockAlign = (WORD) (format.Format.nChannels * format.Format.wBitsPerSample / 8);
format.Format.nAvgBytesPerSec = (DWORD) (format.Format.nSamplesPerSec * format.Format.nBlockAlign); format.Format.nAvgBytesPerSec = (DWORD) (format.Format.nSamplesPerSec * format.Format.nBlockAlign);
format.SubFormat = sampleFormat.useFloat ? KSDATAFORMAT_SUBTYPE_IEEE_FLOAT : KSDATAFORMAT_SUBTYPE_PCM; format.SubFormat = sampleFormat.useFloat ? KSDATAFORMAT_SUBTYPE_IEEE_FLOAT : KSDATAFORMAT_SUBTYPE_PCM;
format.dwChannelMask = mixFormatChannelMask;
format.dwChannelMask = newMixFormatChannelMask;
WAVEFORMATEXTENSIBLE* nearestFormat = nullptr; WAVEFORMATEXTENSIBLE* nearestFormat = nullptr;
@@ -605,8 +605,8 @@ private:
return check (hr); return check (hr);
} }
bool findSupportedFormat (IAudioClient* clientToUse, double sampleRate,
DWORD mixFormatChannelMask, WAVEFORMATEXTENSIBLE& format) const
bool findSupportedFormat (IAudioClient* clientToUse, double newSampleRate,
DWORD newMixFormatChannelMask, WAVEFORMATEXTENSIBLE& format) const
{ {
static const AudioSampleFormat formats[] = static const AudioSampleFormat formats[] =
{ {
@@ -620,7 +620,7 @@ private:
}; };
for (int i = 0; i < numElementsInArray (formats); ++i) for (int i = 0; i < numElementsInArray (formats); ++i)
if (tryFormat (formats[i], clientToUse, sampleRate, mixFormatChannelMask, format))
if (tryFormat (formats[i], clientToUse, newSampleRate, newMixFormatChannelMask, format))
return true; return true;
return false; return false;
@@ -1523,10 +1523,10 @@ private:
} }
//============================================================================== //==============================================================================
void scan (StringArray& outputDeviceNames,
StringArray& inputDeviceNames,
StringArray& outputDeviceIds,
StringArray& inputDeviceIds)
void scan (StringArray& outDeviceNames,
StringArray& inDeviceNames,
StringArray& outDeviceIds,
StringArray& inDeviceIds)
{ {
if (enumerator == nullptr) if (enumerator == nullptr)
{ {
@@ -1582,19 +1582,19 @@ private:
if (flow == eRender) if (flow == eRender)
{ {
const int index = (deviceId == defaultRenderer) ? 0 : -1; const int index = (deviceId == defaultRenderer) ? 0 : -1;
outputDeviceIds.insert (index, deviceId);
outputDeviceNames.insert (index, name);
outDeviceIds.insert (index, deviceId);
outDeviceNames.insert (index, name);
} }
else if (flow == eCapture) else if (flow == eCapture)
{ {
const int index = (deviceId == defaultCapture) ? 0 : -1; const int index = (deviceId == defaultCapture) ? 0 : -1;
inputDeviceIds.insert (index, deviceId);
inputDeviceNames.insert (index, name);
inDeviceIds.insert (index, deviceId);
inDeviceNames.insert (index, name);
} }
} }
inputDeviceNames.appendNumbersToDuplicates (false, false);
outputDeviceNames.appendNumbersToDuplicates (false, false);
inDeviceNames.appendNumbersToDuplicates (false, false);
outDeviceNames.appendNumbersToDuplicates (false, false);
} }
//============================================================================== //==============================================================================


+ 1
- 1
source/modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_devices/sources/juce_AudioTransportSource.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 4
- 0
source/modules/juce_audio_formats/codecs/flac/libFLAC/cpu.c View File

@@ -244,7 +244,11 @@ void FLAC__cpu_info(FLAC__CPUInfo *info)
struct sigaction sigill_save; struct sigaction sigill_save;
struct sigaction sigill_sse; struct sigaction sigill_sse;
sigill_sse.sa_sigaction = sigill_handler_sse_os; sigill_sse.sa_sigaction = sigill_handler_sse_os;
#ifdef __ANDROID__
sigemptyset (&sigill_sse.sa_mask);
#else
__sigemptyset(&sigill_sse.sa_mask); __sigemptyset(&sigill_sse.sa_mask);
#endif
sigill_sse.sa_flags = SA_SIGINFO | SA_RESETHAND; /* SA_RESETHAND just in case our SIGILL return jump breaks, so we don't get stuck in a loop */ sigill_sse.sa_flags = SA_SIGINFO | SA_RESETHAND; /* SA_RESETHAND just in case our SIGILL return jump breaks, so we don't get stuck in a loop */
if(0 == sigaction(SIGILL, &sigill_sse, &sigill_save)) if(0 == sigaction(SIGILL, &sigill_sse, &sigill_save))
{ {


+ 1
- 1
source/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_formats/codecs/juce_CoreAudioFormat.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 3
- 3
source/modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -25,8 +25,8 @@
/* /*
IMPORTANT DISCLAIMER: By choosing to enable the JUCE_USE_MP3AUDIOFORMAT flag and IMPORTANT DISCLAIMER: By choosing to enable the JUCE_USE_MP3AUDIOFORMAT flag and
to compile this MP3 code into your software, you do so AT YOUR OWN RISK! By doing so, to compile this MP3 code into your software, you do so AT YOUR OWN RISK! By doing so,
you are agreeing that Raw Material Software is in no way responsible for any patent,
copyright, or other legal issues that you may suffer as a result.
you are agreeing that ROLI Ltd. is in no way responsible for any patent, copyright,
or other legal issues that you may suffer as a result.
The code in juce_MP3AudioFormat.cpp is NOT guaranteed to be free from infringements of 3rd-party The code in juce_MP3AudioFormat.cpp is NOT guaranteed to be free from infringements of 3rd-party
intellectual property. If you wish to use it, please seek your own independent advice about the intellectual property. If you wish to use it, please seek your own independent advice about the


+ 3
- 3
source/modules/juce_audio_formats/codecs/juce_MP3AudioFormat.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -30,8 +30,8 @@
IMPORTANT DISCLAIMER: By choosing to enable the JUCE_USE_MP3AUDIOFORMAT flag and IMPORTANT DISCLAIMER: By choosing to enable the JUCE_USE_MP3AUDIOFORMAT flag and
to compile the MP3 code into your software, you do so AT YOUR OWN RISK! By doing so, to compile the MP3 code into your software, you do so AT YOUR OWN RISK! By doing so,
you are agreeing that Raw Material Software is in no way responsible for any patent,
copyright, or other legal issues that you may suffer as a result.
you are agreeing that ROLI Ltd. is in no way responsible for any patent, copyright,
or other legal issues that you may suffer as a result.
The code in juce_MP3AudioFormat.cpp is NOT guaranteed to be free from infringements of 3rd-party The code in juce_MP3AudioFormat.cpp is NOT guaranteed to be free from infringements of 3rd-party
intellectual property. If you wish to use it, please seek your own independent advice about the intellectual property. If you wish to use it, please seek your own independent advice about the


+ 2
- 2
source/modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)
@@ -33,7 +33,7 @@ namespace OggVorbisNamespace
#if JUCE_INCLUDE_OGGVORBIS_CODE || ! defined (JUCE_INCLUDE_OGGVORBIS_CODE) #if JUCE_INCLUDE_OGGVORBIS_CODE || ! defined (JUCE_INCLUDE_OGGVORBIS_CODE)
#if JUCE_MSVC #if JUCE_MSVC
#pragma warning (push) #pragma warning (push)
#pragma warning (disable: 4267 4127 4244 4996 4100 4701 4702 4013 4133 4206 4305 4189 4706 4995 4365)
#pragma warning (disable: 4267 4127 4244 4996 4100 4701 4702 4013 4133 4206 4305 4189 4706 4995 4365 4456 4457 4459)
#endif #endif
#if JUCE_CLANG #if JUCE_CLANG


+ 1
- 1
source/modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.h View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


+ 1
- 1
source/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp View File

@@ -2,7 +2,7 @@
============================================================================== ==============================================================================
This file is part of the JUCE library. This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Copyright (c) 2015 - ROLI Ltd.
Permission is granted to use this software under the terms of either: Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version) a) the GPL v2 (or any later version)


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save