├── JUCE ├── .gitignore ├── JuceLibraryCode │ ├── AppConfig.h │ ├── JuceHeader.h │ ├── ReadMe.txt │ ├── juce_audio_basics.cpp │ ├── juce_audio_basics.mm │ ├── juce_audio_devices.cpp │ ├── juce_audio_devices.mm │ ├── juce_audio_formats.cpp │ ├── juce_audio_formats.mm │ ├── juce_audio_plugin_client_AAX.cpp │ ├── juce_audio_plugin_client_AAX.mm │ ├── juce_audio_plugin_client_AU_1.mm │ ├── juce_audio_plugin_client_AU_2.mm │ ├── juce_audio_plugin_client_AUv3.mm │ ├── juce_audio_plugin_client_RTAS_1.cpp │ ├── juce_audio_plugin_client_RTAS_2.cpp │ ├── juce_audio_plugin_client_RTAS_3.cpp │ ├── juce_audio_plugin_client_RTAS_4.cpp │ ├── juce_audio_plugin_client_RTAS_utils.cpp │ ├── juce_audio_plugin_client_RTAS_utils.mm │ ├── juce_audio_plugin_client_Standalone.cpp │ ├── juce_audio_plugin_client_VST2.cpp │ ├── juce_audio_plugin_client_VST3.cpp │ ├── juce_audio_plugin_client_VST_utils.mm │ ├── juce_audio_plugin_client_utils.cpp │ ├── juce_audio_processors.cpp │ ├── juce_audio_processors.mm │ ├── juce_core.cpp │ ├── juce_core.mm │ ├── juce_data_structures.cpp │ ├── juce_data_structures.mm │ ├── juce_events.cpp │ ├── juce_events.mm │ ├── juce_graphics.cpp │ ├── juce_graphics.mm │ ├── juce_gui_basics.cpp │ ├── juce_gui_basics.mm │ ├── juce_gui_extra.cpp │ ├── juce_gui_extra.mm │ └── modules │ │ ├── juce_audio_basics │ │ ├── buffers │ │ │ ├── juce_AudioDataConverters.cpp │ │ │ ├── juce_AudioDataConverters.h │ │ │ ├── juce_AudioSampleBuffer.h │ │ │ ├── juce_FloatVectorOperations.cpp │ │ │ └── juce_FloatVectorOperations.h │ │ ├── effects │ │ │ ├── juce_CatmullRomInterpolator.cpp │ │ │ ├── juce_CatmullRomInterpolator.h │ │ │ ├── juce_Decibels.h │ │ │ ├── juce_FFT.cpp │ │ │ ├── juce_FFT.h │ │ │ ├── juce_IIRFilter.cpp │ │ │ ├── juce_IIRFilter.h │ │ │ ├── juce_LagrangeInterpolator.cpp │ │ │ ├── juce_LagrangeInterpolator.h │ │ │ ├── juce_LinearSmoothedValue.h │ │ │ └── juce_Reverb.h │ │ ├── juce_audio_basics.cpp │ │ ├── juce_audio_basics.h │ │ ├── juce_audio_basics.mm │ │ ├── midi │ │ │ ├── juce_MidiBuffer.cpp │ │ │ ├── juce_MidiBuffer.h │ │ │ ├── juce_MidiFile.cpp │ │ │ ├── juce_MidiFile.h │ │ │ ├── juce_MidiKeyboardState.cpp │ │ │ ├── juce_MidiKeyboardState.h │ │ │ ├── juce_MidiMessage.cpp │ │ │ ├── juce_MidiMessage.h │ │ │ ├── juce_MidiMessageSequence.cpp │ │ │ ├── juce_MidiMessageSequence.h │ │ │ ├── juce_MidiRPN.cpp │ │ │ └── juce_MidiRPN.h │ │ ├── mpe │ │ │ ├── juce_MPEInstrument.cpp │ │ │ ├── juce_MPEInstrument.h │ │ │ ├── juce_MPEMessages.cpp │ │ │ ├── juce_MPEMessages.h │ │ │ ├── juce_MPENote.cpp │ │ │ ├── juce_MPENote.h │ │ │ ├── juce_MPESynthesiser.cpp │ │ │ ├── juce_MPESynthesiser.h │ │ │ ├── juce_MPESynthesiserBase.cpp │ │ │ ├── juce_MPESynthesiserBase.h │ │ │ ├── juce_MPESynthesiserVoice.cpp │ │ │ ├── juce_MPESynthesiserVoice.h │ │ │ ├── juce_MPEValue.cpp │ │ │ ├── juce_MPEValue.h │ │ │ ├── juce_MPEZone.cpp │ │ │ ├── juce_MPEZone.h │ │ │ ├── juce_MPEZoneLayout.cpp │ │ │ └── juce_MPEZoneLayout.h │ │ ├── sources │ │ │ ├── juce_AudioSource.h │ │ │ ├── juce_BufferingAudioSource.cpp │ │ │ ├── juce_BufferingAudioSource.h │ │ │ ├── juce_ChannelRemappingAudioSource.cpp │ │ │ ├── juce_ChannelRemappingAudioSource.h │ │ │ ├── juce_IIRFilterAudioSource.cpp │ │ │ ├── juce_IIRFilterAudioSource.h │ │ │ ├── juce_MixerAudioSource.cpp │ │ │ ├── juce_MixerAudioSource.h │ │ │ ├── juce_PositionableAudioSource.h │ │ │ ├── juce_ResamplingAudioSource.cpp │ │ │ ├── juce_ResamplingAudioSource.h │ │ │ ├── juce_ReverbAudioSource.cpp │ │ │ ├── juce_ReverbAudioSource.h │ │ │ ├── juce_ToneGeneratorAudioSource.cpp │ │ │ └── juce_ToneGeneratorAudioSource.h │ │ └── synthesisers │ │ │ ├── juce_Synthesiser.cpp │ │ │ └── juce_Synthesiser.h │ │ ├── juce_audio_devices │ │ ├── audio_cd │ │ │ ├── juce_AudioCDBurner.h │ │ │ ├── juce_AudioCDReader.cpp │ │ │ └── juce_AudioCDReader.h │ │ ├── audio_io │ │ │ ├── juce_AudioDeviceManager.cpp │ │ │ ├── juce_AudioDeviceManager.h │ │ │ ├── juce_AudioIODevice.cpp │ │ │ ├── juce_AudioIODevice.h │ │ │ ├── juce_AudioIODeviceType.cpp │ │ │ ├── juce_AudioIODeviceType.h │ │ │ └── juce_SystemAudioVolume.h │ │ ├── juce_audio_devices.cpp │ │ ├── juce_audio_devices.h │ │ ├── juce_audio_devices.mm │ │ ├── midi_io │ │ │ ├── juce_MidiInput.h │ │ │ ├── juce_MidiMessageCollector.cpp │ │ │ ├── juce_MidiMessageCollector.h │ │ │ ├── juce_MidiOutput.cpp │ │ │ └── juce_MidiOutput.h │ │ ├── native │ │ │ ├── juce_MidiDataConcatenator.h │ │ │ ├── juce_android_Audio.cpp │ │ │ ├── juce_android_Midi.cpp │ │ │ ├── juce_android_OpenSL.cpp │ │ │ ├── juce_ios_Audio.cpp │ │ │ ├── juce_linux_ALSA.cpp │ │ │ ├── juce_linux_AudioCDReader.cpp │ │ │ ├── juce_linux_JackAudio.cpp │ │ │ ├── juce_linux_Midi.cpp │ │ │ ├── juce_mac_AudioCDBurner.mm │ │ │ ├── juce_mac_AudioCDReader.mm │ │ │ ├── juce_mac_CoreAudio.cpp │ │ │ ├── juce_mac_CoreMidi.cpp │ │ │ ├── juce_win32_ASIO.cpp │ │ │ ├── juce_win32_AudioCDBurner.cpp │ │ │ ├── juce_win32_AudioCDReader.cpp │ │ │ ├── juce_win32_DirectSound.cpp │ │ │ ├── juce_win32_Midi.cpp │ │ │ └── juce_win32_WASAPI.cpp │ │ └── sources │ │ │ ├── juce_AudioSourcePlayer.cpp │ │ │ ├── juce_AudioSourcePlayer.h │ │ │ ├── juce_AudioTransportSource.cpp │ │ │ └── juce_AudioTransportSource.h │ │ ├── juce_audio_formats │ │ ├── codecs │ │ │ ├── flac │ │ │ │ ├── Flac Licence.txt │ │ │ │ ├── all.h │ │ │ │ ├── alloc.h │ │ │ │ ├── assert.h │ │ │ │ ├── callback.h │ │ │ │ ├── compat.h │ │ │ │ ├── endswap.h │ │ │ │ ├── export.h │ │ │ │ ├── format.h │ │ │ │ ├── libFLAC │ │ │ │ │ ├── bitmath.c │ │ │ │ │ ├── bitreader.c │ │ │ │ │ ├── bitwriter.c │ │ │ │ │ ├── cpu.c │ │ │ │ │ ├── crc.c │ │ │ │ │ ├── fixed.c │ │ │ │ │ ├── float.c │ │ │ │ │ ├── format.c │ │ │ │ │ ├── include │ │ │ │ │ │ ├── private │ │ │ │ │ │ │ ├── all.h │ │ │ │ │ │ │ ├── bitmath.h │ │ │ │ │ │ │ ├── bitreader.h │ │ │ │ │ │ │ ├── bitwriter.h │ │ │ │ │ │ │ ├── cpu.h │ │ │ │ │ │ │ ├── crc.h │ │ │ │ │ │ │ ├── fixed.h │ │ │ │ │ │ │ ├── float.h │ │ │ │ │ │ │ ├── format.h │ │ │ │ │ │ │ ├── lpc.h │ │ │ │ │ │ │ ├── md5.h │ │ │ │ │ │ │ ├── memory.h │ │ │ │ │ │ │ ├── metadata.h │ │ │ │ │ │ │ ├── stream_encoder.h │ │ │ │ │ │ │ ├── stream_encoder_framing.h │ │ │ │ │ │ │ └── window.h │ │ │ │ │ │ └── protected │ │ │ │ │ │ │ ├── all.h │ │ │ │ │ │ │ ├── stream_decoder.h │ │ │ │ │ │ │ └── stream_encoder.h │ │ │ │ │ ├── lpc_flac.c │ │ │ │ │ ├── md5.c │ │ │ │ │ ├── memory.c │ │ │ │ │ ├── stream_decoder.c │ │ │ │ │ ├── stream_encoder.c │ │ │ │ │ ├── stream_encoder_framing.c │ │ │ │ │ └── window_flac.c │ │ │ │ ├── metadata.h │ │ │ │ ├── ordinals.h │ │ │ │ ├── stream_decoder.h │ │ │ │ ├── stream_encoder.h │ │ │ │ └── win_utf8_io.h │ │ │ ├── juce_AiffAudioFormat.cpp │ │ │ ├── juce_AiffAudioFormat.h │ │ │ ├── juce_CoreAudioFormat.cpp │ │ │ ├── juce_CoreAudioFormat.h │ │ │ ├── juce_FlacAudioFormat.cpp │ │ │ ├── juce_FlacAudioFormat.h │ │ │ ├── juce_LAMEEncoderAudioFormat.cpp │ │ │ ├── juce_LAMEEncoderAudioFormat.h │ │ │ ├── juce_MP3AudioFormat.cpp │ │ │ ├── juce_MP3AudioFormat.h │ │ │ ├── juce_OggVorbisAudioFormat.cpp │ │ │ ├── juce_OggVorbisAudioFormat.h │ │ │ ├── juce_QuickTimeAudioFormat.cpp │ │ │ ├── juce_QuickTimeAudioFormat.h │ │ │ ├── juce_WavAudioFormat.cpp │ │ │ ├── juce_WavAudioFormat.h │ │ │ ├── juce_WindowsMediaAudioFormat.cpp │ │ │ ├── juce_WindowsMediaAudioFormat.h │ │ │ └── oggvorbis │ │ │ │ ├── Ogg Vorbis Licence.txt │ │ │ │ ├── bitwise.c │ │ │ │ ├── codec.h │ │ │ │ ├── config_types.h │ │ │ │ ├── framing.c │ │ │ │ ├── libvorbis-1.3.2 │ │ │ │ ├── AUTHORS │ │ │ │ ├── CHANGES │ │ │ │ ├── COPYING │ │ │ │ ├── README │ │ │ │ └── lib │ │ │ │ │ ├── analysis.c │ │ │ │ │ ├── backends.h │ │ │ │ │ ├── bitrate.c │ │ │ │ │ ├── bitrate.h │ │ │ │ │ ├── block.c │ │ │ │ │ ├── books │ │ │ │ │ ├── coupled │ │ │ │ │ │ ├── res_books_51.h │ │ │ │ │ │ └── res_books_stereo.h │ │ │ │ │ ├── floor │ │ │ │ │ │ └── floor_books.h │ │ │ │ │ └── uncoupled │ │ │ │ │ │ └── res_books_uncoupled.h │ │ │ │ │ ├── codebook.c │ │ │ │ │ ├── codebook.h │ │ │ │ │ ├── codec_internal.h │ │ │ │ │ ├── envelope.c │ │ │ │ │ ├── envelope.h │ │ │ │ │ ├── floor0.c │ │ │ │ │ ├── floor1.c │ │ │ │ │ ├── highlevel.h │ │ │ │ │ ├── info.c │ │ │ │ │ ├── lookup.c │ │ │ │ │ ├── lookup.h │ │ │ │ │ ├── lookup_data.h │ │ │ │ │ ├── lpc.c │ │ │ │ │ ├── lpc.h │ │ │ │ │ ├── lsp.c │ │ │ │ │ ├── lsp.h │ │ │ │ │ ├── mapping0.c │ │ │ │ │ ├── masking.h │ │ │ │ │ ├── mdct.c │ │ │ │ │ ├── mdct.h │ │ │ │ │ ├── misc.h │ │ │ │ │ ├── modes │ │ │ │ │ ├── floor_all.h │ │ │ │ │ ├── psych_11.h │ │ │ │ │ ├── psych_16.h │ │ │ │ │ ├── psych_44.h │ │ │ │ │ ├── psych_8.h │ │ │ │ │ ├── residue_16.h │ │ │ │ │ ├── residue_44.h │ │ │ │ │ ├── residue_44p51.h │ │ │ │ │ ├── residue_44u.h │ │ │ │ │ ├── residue_8.h │ │ │ │ │ ├── setup_11.h │ │ │ │ │ ├── setup_16.h │ │ │ │ │ ├── setup_22.h │ │ │ │ │ ├── setup_32.h │ │ │ │ │ ├── setup_44.h │ │ │ │ │ ├── setup_44p51.h │ │ │ │ │ ├── setup_44u.h │ │ │ │ │ ├── setup_8.h │ │ │ │ │ └── setup_X.h │ │ │ │ │ ├── os.h │ │ │ │ │ ├── psy.c │ │ │ │ │ ├── psy.h │ │ │ │ │ ├── registry.c │ │ │ │ │ ├── registry.h │ │ │ │ │ ├── res0.c │ │ │ │ │ ├── scales.h │ │ │ │ │ ├── sharedbook.c │ │ │ │ │ ├── smallft.c │ │ │ │ │ ├── smallft.h │ │ │ │ │ ├── synthesis.c │ │ │ │ │ ├── vorbisenc.c │ │ │ │ │ ├── vorbisfile.c │ │ │ │ │ ├── window.c │ │ │ │ │ └── window.h │ │ │ │ ├── ogg.h │ │ │ │ ├── os_types.h │ │ │ │ ├── vorbisenc.h │ │ │ │ └── vorbisfile.h │ │ ├── format │ │ │ ├── juce_AudioFormat.cpp │ │ │ ├── juce_AudioFormat.h │ │ │ ├── juce_AudioFormatManager.cpp │ │ │ ├── juce_AudioFormatManager.h │ │ │ ├── juce_AudioFormatReader.cpp │ │ │ ├── juce_AudioFormatReader.h │ │ │ ├── juce_AudioFormatReaderSource.cpp │ │ │ ├── juce_AudioFormatReaderSource.h │ │ │ ├── juce_AudioFormatWriter.cpp │ │ │ ├── juce_AudioFormatWriter.h │ │ │ ├── juce_AudioSubsectionReader.cpp │ │ │ ├── juce_AudioSubsectionReader.h │ │ │ ├── juce_BufferingAudioFormatReader.cpp │ │ │ ├── juce_BufferingAudioFormatReader.h │ │ │ └── juce_MemoryMappedAudioFormatReader.h │ │ ├── juce_audio_formats.cpp │ │ ├── juce_audio_formats.h │ │ ├── juce_audio_formats.mm │ │ └── sampler │ │ │ ├── juce_Sampler.cpp │ │ │ └── juce_Sampler.h │ │ ├── juce_audio_plugin_client │ │ ├── AAX │ │ │ ├── juce_AAX_Modifier_Injector.h │ │ │ └── juce_AAX_Wrapper.cpp │ │ ├── AU │ │ │ ├── AUResources.r │ │ │ ├── CoreAudioUtilityClasses │ │ │ │ ├── AUBase.cpp │ │ │ │ ├── AUBase.h │ │ │ │ ├── AUBaseHelper.h │ │ │ │ ├── AUBuffer.cpp │ │ │ │ ├── AUBuffer.h │ │ │ │ ├── AUCarbonViewBase.cpp │ │ │ │ ├── AUCarbonViewBase.h │ │ │ │ ├── AUCarbonViewControl.cpp │ │ │ │ ├── AUCarbonViewControl.h │ │ │ │ ├── AUCarbonViewDispatch.cpp │ │ │ │ ├── AUDispatch.cpp │ │ │ │ ├── AUDispatch.h │ │ │ │ ├── AUInputElement.cpp │ │ │ │ ├── AUInputElement.h │ │ │ │ ├── AUInputFormatConverter.h │ │ │ │ ├── AUMIDIBase.cpp │ │ │ │ ├── AUMIDIBase.h │ │ │ │ ├── AUOutputBase.cpp │ │ │ │ ├── AUOutputBase.h │ │ │ │ ├── AUOutputElement.cpp │ │ │ │ ├── AUOutputElement.h │ │ │ │ ├── AUPlugInDispatch.cpp │ │ │ │ ├── AUPlugInDispatch.h │ │ │ │ ├── AUScopeElement.cpp │ │ │ │ ├── AUScopeElement.h │ │ │ │ ├── AUSilentTimeout.h │ │ │ │ ├── AUTimestampGenerator.h │ │ │ │ ├── AUViewLocalizedStringKeys.h │ │ │ │ ├── CAAUParameter.cpp │ │ │ │ ├── CAAUParameter.h │ │ │ │ ├── CAAtomic.h │ │ │ │ ├── CAAtomicStack.h │ │ │ │ ├── CAAudioChannelLayout.cpp │ │ │ │ ├── CAAudioChannelLayout.h │ │ │ │ ├── CAAutoDisposer.h │ │ │ │ ├── CADebugMacros.h │ │ │ │ ├── CADebugPrintf.h │ │ │ │ ├── CAException.h │ │ │ │ ├── CAHostTimeBase.h │ │ │ │ ├── CAMath.h │ │ │ │ ├── CAMutex.cpp │ │ │ │ ├── CAMutex.h │ │ │ │ ├── CAReferenceCounted.h │ │ │ │ ├── CAStreamBasicDescription.cpp │ │ │ │ ├── CAStreamBasicDescription.h │ │ │ │ ├── CAThreadSafeList.h │ │ │ │ ├── CAVectorUnit.cpp │ │ │ │ ├── CAVectorUnit.h │ │ │ │ ├── CAVectorUnitTypes.h │ │ │ │ ├── CAXException.h │ │ │ │ ├── CarbonEventHandler.cpp │ │ │ │ ├── CarbonEventHandler.h │ │ │ │ ├── ComponentBase.cpp │ │ │ │ ├── ComponentBase.h │ │ │ │ ├── MusicDeviceBase.cpp │ │ │ │ └── MusicDeviceBase.h │ │ │ ├── juce_AU_Shared.h │ │ │ ├── juce_AU_Wrapper.mm │ │ │ └── juce_AUv3_Wrapper.mm │ │ ├── RTAS │ │ │ ├── juce_RTAS_DigiCode1.cpp │ │ │ ├── juce_RTAS_DigiCode2.cpp │ │ │ ├── juce_RTAS_DigiCode3.cpp │ │ │ ├── juce_RTAS_DigiCode_Header.h │ │ │ ├── juce_RTAS_MacUtilities.mm │ │ │ ├── juce_RTAS_WinExports.def │ │ │ ├── juce_RTAS_WinResources.rsr │ │ │ ├── juce_RTAS_WinUtilities.cpp │ │ │ └── juce_RTAS_Wrapper.cpp │ │ ├── Standalone │ │ │ ├── juce_StandaloneFilterApp.cpp │ │ │ └── juce_StandaloneFilterWindow.h │ │ ├── VST │ │ │ ├── juce_VST_Wrapper.cpp │ │ │ └── juce_VST_Wrapper.mm │ │ ├── VST3 │ │ │ └── juce_VST3_Wrapper.cpp │ │ ├── juce_audio_plugin_client.h │ │ ├── juce_audio_plugin_client_AAX.cpp │ │ ├── juce_audio_plugin_client_AAX.mm │ │ ├── juce_audio_plugin_client_AU.r │ │ ├── juce_audio_plugin_client_AU_1.mm │ │ ├── juce_audio_plugin_client_AU_2.mm │ │ ├── juce_audio_plugin_client_AUv3.mm │ │ ├── juce_audio_plugin_client_RTAS.r │ │ ├── juce_audio_plugin_client_RTAS_1.cpp │ │ ├── juce_audio_plugin_client_RTAS_2.cpp │ │ ├── juce_audio_plugin_client_RTAS_3.cpp │ │ ├── juce_audio_plugin_client_RTAS_4.cpp │ │ ├── juce_audio_plugin_client_RTAS_utils.cpp │ │ ├── juce_audio_plugin_client_RTAS_utils.mm │ │ ├── juce_audio_plugin_client_Standalone.cpp │ │ ├── juce_audio_plugin_client_VST2.cpp │ │ ├── juce_audio_plugin_client_VST3.cpp │ │ ├── juce_audio_plugin_client_VST_utils.mm │ │ ├── juce_audio_plugin_client_utils.cpp │ │ └── utility │ │ │ ├── juce_CarbonVisibility.h │ │ │ ├── juce_CheckSettingMacros.h │ │ │ ├── juce_FakeMouseMoveGenerator.h │ │ │ ├── juce_IncludeModuleHeaders.h │ │ │ ├── juce_IncludeSystemHeaders.h │ │ │ ├── juce_PluginBusUtilities.h │ │ │ ├── juce_PluginHostType.h │ │ │ ├── juce_PluginUtilities.cpp │ │ │ └── juce_WindowsHooks.h │ │ ├── juce_audio_processors │ │ ├── format │ │ │ ├── juce_AudioPluginFormat.cpp │ │ │ ├── juce_AudioPluginFormat.h │ │ │ ├── juce_AudioPluginFormatManager.cpp │ │ │ └── juce_AudioPluginFormatManager.h │ │ ├── format_types │ │ │ ├── juce_AudioUnitPluginFormat.h │ │ │ ├── juce_AudioUnitPluginFormat.mm │ │ │ ├── juce_LADSPAPluginFormat.cpp │ │ │ ├── juce_LADSPAPluginFormat.h │ │ │ ├── juce_VST3Common.h │ │ │ ├── juce_VST3Headers.h │ │ │ ├── juce_VST3PluginFormat.cpp │ │ │ ├── juce_VST3PluginFormat.h │ │ │ ├── juce_VSTMidiEventList.h │ │ │ ├── juce_VSTPluginFormat.cpp │ │ │ └── juce_VSTPluginFormat.h │ │ ├── juce_audio_processors.cpp │ │ ├── juce_audio_processors.h │ │ ├── juce_audio_processors.mm │ │ ├── processors │ │ │ ├── juce_AudioChannelSet.cpp │ │ │ ├── juce_AudioChannelSet.h │ │ │ ├── juce_AudioPlayHead.h │ │ │ ├── juce_AudioPluginInstance.h │ │ │ ├── juce_AudioProcessor.cpp │ │ │ ├── juce_AudioProcessor.h │ │ │ ├── juce_AudioProcessorEditor.cpp │ │ │ ├── juce_AudioProcessorEditor.h │ │ │ ├── juce_AudioProcessorGraph.cpp │ │ │ ├── juce_AudioProcessorGraph.h │ │ │ ├── juce_AudioProcessorListener.h │ │ │ ├── juce_AudioProcessorParameter.h │ │ │ ├── juce_GenericAudioProcessorEditor.cpp │ │ │ ├── juce_GenericAudioProcessorEditor.h │ │ │ ├── juce_PluginDescription.cpp │ │ │ └── juce_PluginDescription.h │ │ ├── scanning │ │ │ ├── juce_KnownPluginList.cpp │ │ │ ├── juce_KnownPluginList.h │ │ │ ├── juce_PluginDirectoryScanner.cpp │ │ │ ├── juce_PluginDirectoryScanner.h │ │ │ ├── juce_PluginListComponent.cpp │ │ │ └── juce_PluginListComponent.h │ │ └── utilities │ │ │ ├── juce_AudioParameterBool.h │ │ │ ├── juce_AudioParameterChoice.h │ │ │ ├── juce_AudioParameterFloat.h │ │ │ ├── juce_AudioParameterInt.h │ │ │ ├── juce_AudioProcessorParameterWithID.h │ │ │ ├── juce_AudioProcessorParameters.cpp │ │ │ ├── juce_AudioProcessorValueTreeState.cpp │ │ │ └── juce_AudioProcessorValueTreeState.h │ │ ├── juce_core │ │ ├── containers │ │ │ ├── juce_AbstractFifo.cpp │ │ │ ├── juce_AbstractFifo.h │ │ │ ├── juce_Array.h │ │ │ ├── juce_ArrayAllocationBase.h │ │ │ ├── juce_DynamicObject.cpp │ │ │ ├── juce_DynamicObject.h │ │ │ ├── juce_ElementComparator.h │ │ │ ├── juce_HashMap.h │ │ │ ├── juce_LinkedListPointer.h │ │ │ ├── juce_ListenerList.h │ │ │ ├── juce_NamedValueSet.cpp │ │ │ ├── juce_NamedValueSet.h │ │ │ ├── juce_OwnedArray.h │ │ │ ├── juce_PropertySet.cpp │ │ │ ├── juce_PropertySet.h │ │ │ ├── juce_ReferenceCountedArray.h │ │ │ ├── juce_ScopedValueSetter.h │ │ │ ├── juce_SortedSet.h │ │ │ ├── juce_SparseSet.h │ │ │ ├── juce_Variant.cpp │ │ │ └── juce_Variant.h │ │ ├── files │ │ │ ├── juce_DirectoryIterator.cpp │ │ │ ├── juce_DirectoryIterator.h │ │ │ ├── juce_File.cpp │ │ │ ├── juce_File.h │ │ │ ├── juce_FileFilter.cpp │ │ │ ├── juce_FileFilter.h │ │ │ ├── juce_FileInputStream.cpp │ │ │ ├── juce_FileInputStream.h │ │ │ ├── juce_FileOutputStream.cpp │ │ │ ├── juce_FileOutputStream.h │ │ │ ├── juce_FileSearchPath.cpp │ │ │ ├── juce_FileSearchPath.h │ │ │ ├── juce_MemoryMappedFile.h │ │ │ ├── juce_TemporaryFile.cpp │ │ │ ├── juce_TemporaryFile.h │ │ │ ├── juce_WildcardFileFilter.cpp │ │ │ └── juce_WildcardFileFilter.h │ │ ├── javascript │ │ │ ├── juce_JSON.cpp │ │ │ ├── juce_JSON.h │ │ │ ├── juce_Javascript.cpp │ │ │ └── juce_Javascript.h │ │ ├── juce_core.cpp │ │ ├── juce_core.h │ │ ├── juce_core.mm │ │ ├── logging │ │ │ ├── juce_FileLogger.cpp │ │ │ ├── juce_FileLogger.h │ │ │ ├── juce_Logger.cpp │ │ │ └── juce_Logger.h │ │ ├── maths │ │ │ ├── juce_BigInteger.cpp │ │ │ ├── juce_BigInteger.h │ │ │ ├── juce_Expression.cpp │ │ │ ├── juce_Expression.h │ │ │ ├── juce_MathsFunctions.h │ │ │ ├── juce_NormalisableRange.h │ │ │ ├── juce_Random.cpp │ │ │ ├── juce_Random.h │ │ │ ├── juce_Range.h │ │ │ └── juce_StatisticsAccumulator.h │ │ ├── memory │ │ │ ├── juce_Atomic.h │ │ │ ├── juce_ByteOrder.h │ │ │ ├── juce_ContainerDeletePolicy.h │ │ │ ├── juce_HeapBlock.h │ │ │ ├── juce_LeakedObjectDetector.h │ │ │ ├── juce_Memory.h │ │ │ ├── juce_MemoryBlock.cpp │ │ │ ├── juce_MemoryBlock.h │ │ │ ├── juce_OptionalScopedPointer.h │ │ │ ├── juce_ReferenceCountedObject.h │ │ │ ├── juce_ScopedPointer.h │ │ │ ├── juce_SharedResourcePointer.h │ │ │ ├── juce_Singleton.h │ │ │ └── juce_WeakReference.h │ │ ├── misc │ │ │ ├── juce_Result.cpp │ │ │ ├── juce_Result.h │ │ │ ├── juce_RuntimePermissions.cpp │ │ │ ├── juce_RuntimePermissions.h │ │ │ ├── juce_Uuid.cpp │ │ │ ├── juce_Uuid.h │ │ │ └── juce_WindowsRegistry.h │ │ ├── native │ │ │ ├── java │ │ │ │ ├── AndroidMidi.java │ │ │ │ ├── AndroidMidiFallback.java │ │ │ │ ├── AndroidRuntimePermissions.java │ │ │ │ └── JuceAppActivity.java │ │ │ ├── juce_BasicNativeHeaders.h │ │ │ ├── juce_android_Files.cpp │ │ │ ├── juce_android_JNIHelpers.h │ │ │ ├── juce_android_Misc.cpp │ │ │ ├── juce_android_Network.cpp │ │ │ ├── juce_android_RuntimePermissions.cpp │ │ │ ├── juce_android_SystemStats.cpp │ │ │ ├── juce_android_Threads.cpp │ │ │ ├── juce_curl_Network.cpp │ │ │ ├── juce_linux_CommonFile.cpp │ │ │ ├── juce_linux_Files.cpp │ │ │ ├── juce_linux_Network.cpp │ │ │ ├── juce_linux_SystemStats.cpp │ │ │ ├── juce_linux_Threads.cpp │ │ │ ├── juce_mac_ClangBugWorkaround.h │ │ │ ├── juce_mac_Files.mm │ │ │ ├── juce_mac_Network.mm │ │ │ ├── juce_mac_Strings.mm │ │ │ ├── juce_mac_SystemStats.mm │ │ │ ├── juce_mac_Threads.mm │ │ │ ├── juce_osx_ObjCHelpers.h │ │ │ ├── juce_posix_NamedPipe.cpp │ │ │ ├── juce_posix_SharedCode.h │ │ │ ├── juce_win32_ComSmartPtr.h │ │ │ ├── juce_win32_Files.cpp │ │ │ ├── juce_win32_Network.cpp │ │ │ ├── juce_win32_Registry.cpp │ │ │ ├── juce_win32_SystemStats.cpp │ │ │ └── juce_win32_Threads.cpp │ │ ├── network │ │ │ ├── juce_IPAddress.cpp │ │ │ ├── juce_IPAddress.h │ │ │ ├── juce_MACAddress.cpp │ │ │ ├── juce_MACAddress.h │ │ │ ├── juce_NamedPipe.cpp │ │ │ ├── juce_NamedPipe.h │ │ │ ├── juce_Socket.cpp │ │ │ ├── juce_Socket.h │ │ │ ├── juce_URL.cpp │ │ │ └── juce_URL.h │ │ ├── streams │ │ │ ├── juce_BufferedInputStream.cpp │ │ │ ├── juce_BufferedInputStream.h │ │ │ ├── juce_FileInputSource.cpp │ │ │ ├── juce_FileInputSource.h │ │ │ ├── juce_InputSource.h │ │ │ ├── juce_InputStream.cpp │ │ │ ├── juce_InputStream.h │ │ │ ├── juce_MemoryInputStream.cpp │ │ │ ├── juce_MemoryInputStream.h │ │ │ ├── juce_MemoryOutputStream.cpp │ │ │ ├── juce_MemoryOutputStream.h │ │ │ ├── juce_OutputStream.cpp │ │ │ ├── juce_OutputStream.h │ │ │ ├── juce_SubregionStream.cpp │ │ │ └── juce_SubregionStream.h │ │ ├── system │ │ │ ├── juce_CompilerSupport.h │ │ │ ├── juce_PlatformDefs.h │ │ │ ├── juce_StandardHeader.h │ │ │ ├── juce_SystemStats.cpp │ │ │ ├── juce_SystemStats.h │ │ │ └── juce_TargetPlatform.h │ │ ├── text │ │ │ ├── juce_Base64.cpp │ │ │ ├── juce_Base64.h │ │ │ ├── juce_CharPointer_ASCII.h │ │ │ ├── juce_CharPointer_UTF16.h │ │ │ ├── juce_CharPointer_UTF32.h │ │ │ ├── juce_CharPointer_UTF8.h │ │ │ ├── juce_CharacterFunctions.cpp │ │ │ ├── juce_CharacterFunctions.h │ │ │ ├── juce_Identifier.cpp │ │ │ ├── juce_Identifier.h │ │ │ ├── juce_LocalisedStrings.cpp │ │ │ ├── juce_LocalisedStrings.h │ │ │ ├── juce_NewLine.h │ │ │ ├── juce_String.cpp │ │ │ ├── juce_String.h │ │ │ ├── juce_StringArray.cpp │ │ │ ├── juce_StringArray.h │ │ │ ├── juce_StringPairArray.cpp │ │ │ ├── juce_StringPairArray.h │ │ │ ├── juce_StringPool.cpp │ │ │ ├── juce_StringPool.h │ │ │ ├── juce_StringRef.h │ │ │ ├── juce_TextDiff.cpp │ │ │ └── juce_TextDiff.h │ │ ├── threads │ │ │ ├── juce_ChildProcess.cpp │ │ │ ├── juce_ChildProcess.h │ │ │ ├── juce_CriticalSection.h │ │ │ ├── juce_DynamicLibrary.h │ │ │ ├── juce_HighResolutionTimer.cpp │ │ │ ├── juce_HighResolutionTimer.h │ │ │ ├── juce_InterProcessLock.h │ │ │ ├── juce_Process.h │ │ │ ├── juce_ReadWriteLock.cpp │ │ │ ├── juce_ReadWriteLock.h │ │ │ ├── juce_ScopedLock.h │ │ │ ├── juce_ScopedReadLock.h │ │ │ ├── juce_ScopedWriteLock.h │ │ │ ├── juce_SpinLock.h │ │ │ ├── juce_Thread.cpp │ │ │ ├── juce_Thread.h │ │ │ ├── juce_ThreadLocalValue.h │ │ │ ├── juce_ThreadPool.cpp │ │ │ ├── juce_ThreadPool.h │ │ │ ├── juce_TimeSliceThread.cpp │ │ │ ├── juce_TimeSliceThread.h │ │ │ └── juce_WaitableEvent.h │ │ ├── time │ │ │ ├── juce_PerformanceCounter.cpp │ │ │ ├── juce_PerformanceCounter.h │ │ │ ├── juce_RelativeTime.cpp │ │ │ ├── juce_RelativeTime.h │ │ │ ├── juce_Time.cpp │ │ │ └── juce_Time.h │ │ ├── unit_tests │ │ │ ├── juce_UnitTest.cpp │ │ │ └── juce_UnitTest.h │ │ ├── xml │ │ │ ├── juce_XmlDocument.cpp │ │ │ ├── juce_XmlDocument.h │ │ │ ├── juce_XmlElement.cpp │ │ │ └── juce_XmlElement.h │ │ └── zip │ │ │ ├── juce_GZIPCompressorOutputStream.cpp │ │ │ ├── juce_GZIPCompressorOutputStream.h │ │ │ ├── juce_GZIPDecompressorInputStream.cpp │ │ │ ├── juce_GZIPDecompressorInputStream.h │ │ │ ├── juce_ZipFile.cpp │ │ │ ├── juce_ZipFile.h │ │ │ └── zlib │ │ │ ├── README │ │ │ ├── adler32.c │ │ │ ├── compress.c │ │ │ ├── crc32.c │ │ │ ├── crc32.h │ │ │ ├── deflate.c │ │ │ ├── deflate.h │ │ │ ├── infback.c │ │ │ ├── inffast.c │ │ │ ├── inffast.h │ │ │ ├── inffixed.h │ │ │ ├── inflate.c │ │ │ ├── inflate.h │ │ │ ├── inftrees.c │ │ │ ├── inftrees.h │ │ │ ├── trees.c │ │ │ ├── trees.h │ │ │ ├── uncompr.c │ │ │ ├── zconf.h │ │ │ ├── zconf.in.h │ │ │ ├── zlib.h │ │ │ ├── zutil.c │ │ │ └── zutil.h │ │ ├── juce_data_structures │ │ ├── app_properties │ │ │ ├── juce_ApplicationProperties.cpp │ │ │ ├── juce_ApplicationProperties.h │ │ │ ├── juce_PropertiesFile.cpp │ │ │ └── juce_PropertiesFile.h │ │ ├── juce_data_structures.cpp │ │ ├── juce_data_structures.h │ │ ├── juce_data_structures.mm │ │ ├── undomanager │ │ │ ├── juce_UndoManager.cpp │ │ │ ├── juce_UndoManager.h │ │ │ └── juce_UndoableAction.h │ │ └── values │ │ │ ├── juce_CachedValue.cpp │ │ │ ├── juce_CachedValue.h │ │ │ ├── juce_Value.cpp │ │ │ ├── juce_Value.h │ │ │ ├── juce_ValueTree.cpp │ │ │ ├── juce_ValueTree.h │ │ │ ├── juce_ValueTreeSynchroniser.cpp │ │ │ └── juce_ValueTreeSynchroniser.h │ │ ├── juce_events │ │ ├── broadcasters │ │ │ ├── juce_ActionBroadcaster.cpp │ │ │ ├── juce_ActionBroadcaster.h │ │ │ ├── juce_ActionListener.h │ │ │ ├── juce_AsyncUpdater.cpp │ │ │ ├── juce_AsyncUpdater.h │ │ │ ├── juce_ChangeBroadcaster.cpp │ │ │ ├── juce_ChangeBroadcaster.h │ │ │ └── juce_ChangeListener.h │ │ ├── interprocess │ │ │ ├── juce_ConnectedChildProcess.cpp │ │ │ ├── juce_ConnectedChildProcess.h │ │ │ ├── juce_InterprocessConnection.cpp │ │ │ ├── juce_InterprocessConnection.h │ │ │ ├── juce_InterprocessConnectionServer.cpp │ │ │ └── juce_InterprocessConnectionServer.h │ │ ├── juce_events.cpp │ │ ├── juce_events.h │ │ ├── juce_events.mm │ │ ├── messages │ │ │ ├── juce_ApplicationBase.cpp │ │ │ ├── juce_ApplicationBase.h │ │ │ ├── juce_CallbackMessage.h │ │ │ ├── juce_DeletedAtShutdown.cpp │ │ │ ├── juce_DeletedAtShutdown.h │ │ │ ├── juce_Initialisation.h │ │ │ ├── juce_Message.h │ │ │ ├── juce_MessageListener.cpp │ │ │ ├── juce_MessageListener.h │ │ │ ├── juce_MessageManager.cpp │ │ │ ├── juce_MessageManager.h │ │ │ ├── juce_MountedVolumeListChangeDetector.h │ │ │ └── juce_NotificationType.h │ │ ├── native │ │ │ ├── juce_ScopedXLock.h │ │ │ ├── juce_android_Messaging.cpp │ │ │ ├── juce_ios_MessageManager.mm │ │ │ ├── juce_linux_Messaging.cpp │ │ │ ├── juce_mac_MessageManager.mm │ │ │ ├── juce_osx_MessageQueue.h │ │ │ ├── juce_win32_HiddenMessageWindow.h │ │ │ └── juce_win32_Messaging.cpp │ │ └── timers │ │ │ ├── juce_MultiTimer.cpp │ │ │ ├── juce_MultiTimer.h │ │ │ ├── juce_Timer.cpp │ │ │ └── juce_Timer.h │ │ ├── juce_graphics │ │ ├── colour │ │ │ ├── juce_Colour.cpp │ │ │ ├── juce_Colour.h │ │ │ ├── juce_ColourGradient.cpp │ │ │ ├── juce_ColourGradient.h │ │ │ ├── juce_Colours.cpp │ │ │ ├── juce_Colours.h │ │ │ ├── juce_FillType.cpp │ │ │ ├── juce_FillType.h │ │ │ └── juce_PixelFormats.h │ │ ├── contexts │ │ │ ├── juce_GraphicsContext.cpp │ │ │ ├── juce_GraphicsContext.h │ │ │ ├── juce_LowLevelGraphicsContext.h │ │ │ ├── juce_LowLevelGraphicsPostScriptRenderer.cpp │ │ │ ├── juce_LowLevelGraphicsPostScriptRenderer.h │ │ │ ├── juce_LowLevelGraphicsSoftwareRenderer.cpp │ │ │ └── juce_LowLevelGraphicsSoftwareRenderer.h │ │ ├── effects │ │ │ ├── juce_DropShadowEffect.cpp │ │ │ ├── juce_DropShadowEffect.h │ │ │ ├── juce_GlowEffect.cpp │ │ │ ├── juce_GlowEffect.h │ │ │ └── juce_ImageEffectFilter.h │ │ ├── fonts │ │ │ ├── juce_AttributedString.cpp │ │ │ ├── juce_AttributedString.h │ │ │ ├── juce_CustomTypeface.cpp │ │ │ ├── juce_CustomTypeface.h │ │ │ ├── juce_Font.cpp │ │ │ ├── juce_Font.h │ │ │ ├── juce_GlyphArrangement.cpp │ │ │ ├── juce_GlyphArrangement.h │ │ │ ├── juce_TextLayout.cpp │ │ │ ├── juce_TextLayout.h │ │ │ ├── juce_Typeface.cpp │ │ │ └── juce_Typeface.h │ │ ├── geometry │ │ │ ├── juce_AffineTransform.cpp │ │ │ ├── juce_AffineTransform.h │ │ │ ├── juce_BorderSize.h │ │ │ ├── juce_EdgeTable.cpp │ │ │ ├── juce_EdgeTable.h │ │ │ ├── juce_Line.h │ │ │ ├── juce_Path.cpp │ │ │ ├── juce_Path.h │ │ │ ├── juce_PathIterator.cpp │ │ │ ├── juce_PathIterator.h │ │ │ ├── juce_PathStrokeType.cpp │ │ │ ├── juce_PathStrokeType.h │ │ │ ├── juce_Point.h │ │ │ ├── juce_Rectangle.h │ │ │ └── juce_RectangleList.h │ │ ├── image_formats │ │ │ ├── jpglib │ │ │ │ ├── README │ │ │ │ ├── cderror.h │ │ │ │ ├── changes to libjpeg for JUCE.txt │ │ │ │ ├── jcapimin.c │ │ │ │ ├── jcapistd.c │ │ │ │ ├── jccoefct.c │ │ │ │ ├── jccolor.c │ │ │ │ ├── jcdctmgr.c │ │ │ │ ├── jchuff.c │ │ │ │ ├── jchuff.h │ │ │ │ ├── jcinit.c │ │ │ │ ├── jcmainct.c │ │ │ │ ├── jcmarker.c │ │ │ │ ├── jcmaster.c │ │ │ │ ├── jcomapi.c │ │ │ │ ├── jconfig.h │ │ │ │ ├── jcparam.c │ │ │ │ ├── jcphuff.c │ │ │ │ ├── jcprepct.c │ │ │ │ ├── jcsample.c │ │ │ │ ├── jctrans.c │ │ │ │ ├── jdapimin.c │ │ │ │ ├── jdapistd.c │ │ │ │ ├── jdatasrc.c │ │ │ │ ├── jdcoefct.c │ │ │ │ ├── jdcolor.c │ │ │ │ ├── jdct.h │ │ │ │ ├── jddctmgr.c │ │ │ │ ├── jdhuff.c │ │ │ │ ├── jdhuff.h │ │ │ │ ├── jdinput.c │ │ │ │ ├── jdmainct.c │ │ │ │ ├── jdmarker.c │ │ │ │ ├── jdmaster.c │ │ │ │ ├── jdmerge.c │ │ │ │ ├── jdphuff.c │ │ │ │ ├── jdpostct.c │ │ │ │ ├── jdsample.c │ │ │ │ ├── jdtrans.c │ │ │ │ ├── jerror.c │ │ │ │ ├── jerror.h │ │ │ │ ├── jfdctflt.c │ │ │ │ ├── jfdctfst.c │ │ │ │ ├── jfdctint.c │ │ │ │ ├── jidctflt.c │ │ │ │ ├── jidctfst.c │ │ │ │ ├── jidctint.c │ │ │ │ ├── jidctred.c │ │ │ │ ├── jinclude.h │ │ │ │ ├── jmemmgr.c │ │ │ │ ├── jmemnobs.c │ │ │ │ ├── jmemsys.h │ │ │ │ ├── jmorecfg.h │ │ │ │ ├── jpegint.h │ │ │ │ ├── jpeglib.h │ │ │ │ ├── jquant1.c │ │ │ │ ├── jquant2.c │ │ │ │ ├── jutils.c │ │ │ │ ├── jversion.h │ │ │ │ ├── transupp.c │ │ │ │ └── transupp.h │ │ │ ├── juce_GIFLoader.cpp │ │ │ ├── juce_JPEGLoader.cpp │ │ │ ├── juce_PNGLoader.cpp │ │ │ └── pnglib │ │ │ │ ├── LICENSE │ │ │ │ ├── libpng_readme.txt │ │ │ │ ├── png.c │ │ │ │ ├── png.h │ │ │ │ ├── pngconf.h │ │ │ │ ├── pngerror.c │ │ │ │ ├── pngget.c │ │ │ │ ├── pnginfo.h │ │ │ │ ├── pngmem.c │ │ │ │ ├── pngpread.c │ │ │ │ ├── pngpriv.h │ │ │ │ ├── pngread.c │ │ │ │ ├── pngrio.c │ │ │ │ ├── pngrtran.c │ │ │ │ ├── pngrutil.c │ │ │ │ ├── pngset.c │ │ │ │ ├── pngstruct.h │ │ │ │ ├── pngtrans.c │ │ │ │ ├── pngwio.c │ │ │ │ ├── pngwrite.c │ │ │ │ ├── pngwtran.c │ │ │ │ └── pngwutil.c │ │ ├── images │ │ │ ├── juce_Image.cpp │ │ │ ├── juce_Image.h │ │ │ ├── juce_ImageCache.cpp │ │ │ ├── juce_ImageCache.h │ │ │ ├── juce_ImageConvolutionKernel.cpp │ │ │ ├── juce_ImageConvolutionKernel.h │ │ │ ├── juce_ImageFileFormat.cpp │ │ │ └── juce_ImageFileFormat.h │ │ ├── juce_graphics.cpp │ │ ├── juce_graphics.h │ │ ├── juce_graphics.mm │ │ ├── native │ │ │ ├── juce_RenderingHelpers.h │ │ │ ├── juce_android_Fonts.cpp │ │ │ ├── juce_android_GraphicsContext.cpp │ │ │ ├── juce_freetype_Fonts.cpp │ │ │ ├── juce_linux_Fonts.cpp │ │ │ ├── juce_mac_CoreGraphicsContext.h │ │ │ ├── juce_mac_CoreGraphicsContext.mm │ │ │ ├── juce_mac_CoreGraphicsHelpers.h │ │ │ ├── juce_mac_Fonts.mm │ │ │ ├── juce_win32_Direct2DGraphicsContext.cpp │ │ │ ├── juce_win32_DirectWriteTypeLayout.cpp │ │ │ ├── juce_win32_DirectWriteTypeface.cpp │ │ │ └── juce_win32_Fonts.cpp │ │ └── placement │ │ │ ├── juce_Justification.h │ │ │ ├── juce_RectanglePlacement.cpp │ │ │ └── juce_RectanglePlacement.h │ │ ├── juce_gui_basics │ │ ├── application │ │ │ ├── juce_Application.cpp │ │ │ └── juce_Application.h │ │ ├── buttons │ │ │ ├── juce_ArrowButton.cpp │ │ │ ├── juce_ArrowButton.h │ │ │ ├── juce_Button.cpp │ │ │ ├── juce_Button.h │ │ │ ├── juce_DrawableButton.cpp │ │ │ ├── juce_DrawableButton.h │ │ │ ├── juce_HyperlinkButton.cpp │ │ │ ├── juce_HyperlinkButton.h │ │ │ ├── juce_ImageButton.cpp │ │ │ ├── juce_ImageButton.h │ │ │ ├── juce_ShapeButton.cpp │ │ │ ├── juce_ShapeButton.h │ │ │ ├── juce_TextButton.cpp │ │ │ ├── juce_TextButton.h │ │ │ ├── juce_ToggleButton.cpp │ │ │ ├── juce_ToggleButton.h │ │ │ ├── juce_ToolbarButton.cpp │ │ │ └── juce_ToolbarButton.h │ │ ├── commands │ │ │ ├── juce_ApplicationCommandID.h │ │ │ ├── juce_ApplicationCommandInfo.cpp │ │ │ ├── juce_ApplicationCommandInfo.h │ │ │ ├── juce_ApplicationCommandManager.cpp │ │ │ ├── juce_ApplicationCommandManager.h │ │ │ ├── juce_ApplicationCommandTarget.cpp │ │ │ ├── juce_ApplicationCommandTarget.h │ │ │ ├── juce_KeyPressMappingSet.cpp │ │ │ └── juce_KeyPressMappingSet.h │ │ ├── components │ │ │ ├── juce_CachedComponentImage.h │ │ │ ├── juce_Component.cpp │ │ │ ├── juce_Component.h │ │ │ ├── juce_ComponentListener.cpp │ │ │ ├── juce_ComponentListener.h │ │ │ ├── juce_Desktop.cpp │ │ │ ├── juce_Desktop.h │ │ │ ├── juce_ModalComponentManager.cpp │ │ │ └── juce_ModalComponentManager.h │ │ ├── drawables │ │ │ ├── juce_Drawable.cpp │ │ │ ├── juce_Drawable.h │ │ │ ├── juce_DrawableComposite.cpp │ │ │ ├── juce_DrawableComposite.h │ │ │ ├── juce_DrawableImage.cpp │ │ │ ├── juce_DrawableImage.h │ │ │ ├── juce_DrawablePath.cpp │ │ │ ├── juce_DrawablePath.h │ │ │ ├── juce_DrawableRectangle.cpp │ │ │ ├── juce_DrawableRectangle.h │ │ │ ├── juce_DrawableShape.cpp │ │ │ ├── juce_DrawableShape.h │ │ │ ├── juce_DrawableText.cpp │ │ │ ├── juce_DrawableText.h │ │ │ └── juce_SVGParser.cpp │ │ ├── filebrowser │ │ │ ├── juce_DirectoryContentsDisplayComponent.cpp │ │ │ ├── juce_DirectoryContentsDisplayComponent.h │ │ │ ├── juce_DirectoryContentsList.cpp │ │ │ ├── juce_DirectoryContentsList.h │ │ │ ├── juce_FileBrowserComponent.cpp │ │ │ ├── juce_FileBrowserComponent.h │ │ │ ├── juce_FileBrowserListener.h │ │ │ ├── juce_FileChooser.cpp │ │ │ ├── juce_FileChooser.h │ │ │ ├── juce_FileChooserDialogBox.cpp │ │ │ ├── juce_FileChooserDialogBox.h │ │ │ ├── juce_FileListComponent.cpp │ │ │ ├── juce_FileListComponent.h │ │ │ ├── juce_FilePreviewComponent.h │ │ │ ├── juce_FileSearchPathListComponent.cpp │ │ │ ├── juce_FileSearchPathListComponent.h │ │ │ ├── juce_FileTreeComponent.cpp │ │ │ ├── juce_FileTreeComponent.h │ │ │ ├── juce_FilenameComponent.cpp │ │ │ ├── juce_FilenameComponent.h │ │ │ ├── juce_ImagePreviewComponent.cpp │ │ │ └── juce_ImagePreviewComponent.h │ │ ├── juce_gui_basics.cpp │ │ ├── juce_gui_basics.h │ │ ├── juce_gui_basics.mm │ │ ├── keyboard │ │ │ ├── juce_CaretComponent.cpp │ │ │ ├── juce_CaretComponent.h │ │ │ ├── juce_KeyListener.cpp │ │ │ ├── juce_KeyListener.h │ │ │ ├── juce_KeyPress.cpp │ │ │ ├── juce_KeyPress.h │ │ │ ├── juce_KeyboardFocusTraverser.cpp │ │ │ ├── juce_KeyboardFocusTraverser.h │ │ │ ├── juce_ModifierKeys.cpp │ │ │ ├── juce_ModifierKeys.h │ │ │ ├── juce_SystemClipboard.h │ │ │ ├── juce_TextEditorKeyMapper.h │ │ │ └── juce_TextInputTarget.h │ │ ├── layout │ │ │ ├── juce_AnimatedPosition.h │ │ │ ├── juce_AnimatedPositionBehaviours.h │ │ │ ├── juce_ComponentAnimator.cpp │ │ │ ├── juce_ComponentAnimator.h │ │ │ ├── juce_ComponentBoundsConstrainer.cpp │ │ │ ├── juce_ComponentBoundsConstrainer.h │ │ │ ├── juce_ComponentBuilder.cpp │ │ │ ├── juce_ComponentBuilder.h │ │ │ ├── juce_ComponentMovementWatcher.cpp │ │ │ ├── juce_ComponentMovementWatcher.h │ │ │ ├── juce_ConcertinaPanel.cpp │ │ │ ├── juce_ConcertinaPanel.h │ │ │ ├── juce_GroupComponent.cpp │ │ │ ├── juce_GroupComponent.h │ │ │ ├── juce_MultiDocumentPanel.cpp │ │ │ ├── juce_MultiDocumentPanel.h │ │ │ ├── juce_ResizableBorderComponent.cpp │ │ │ ├── juce_ResizableBorderComponent.h │ │ │ ├── juce_ResizableCornerComponent.cpp │ │ │ ├── juce_ResizableCornerComponent.h │ │ │ ├── juce_ResizableEdgeComponent.cpp │ │ │ ├── juce_ResizableEdgeComponent.h │ │ │ ├── juce_ScrollBar.cpp │ │ │ ├── juce_ScrollBar.h │ │ │ ├── juce_StretchableLayoutManager.cpp │ │ │ ├── juce_StretchableLayoutManager.h │ │ │ ├── juce_StretchableLayoutResizerBar.cpp │ │ │ ├── juce_StretchableLayoutResizerBar.h │ │ │ ├── juce_StretchableObjectResizer.cpp │ │ │ ├── juce_StretchableObjectResizer.h │ │ │ ├── juce_TabbedButtonBar.cpp │ │ │ ├── juce_TabbedButtonBar.h │ │ │ ├── juce_TabbedComponent.cpp │ │ │ ├── juce_TabbedComponent.h │ │ │ ├── juce_Viewport.cpp │ │ │ └── juce_Viewport.h │ │ ├── lookandfeel │ │ │ ├── juce_LookAndFeel.cpp │ │ │ ├── juce_LookAndFeel.h │ │ │ ├── juce_LookAndFeel_V1.cpp │ │ │ ├── juce_LookAndFeel_V1.h │ │ │ ├── juce_LookAndFeel_V2.cpp │ │ │ ├── juce_LookAndFeel_V2.h │ │ │ ├── juce_LookAndFeel_V3.cpp │ │ │ └── juce_LookAndFeel_V3.h │ │ ├── menus │ │ │ ├── juce_MenuBarComponent.cpp │ │ │ ├── juce_MenuBarComponent.h │ │ │ ├── juce_MenuBarModel.cpp │ │ │ ├── juce_MenuBarModel.h │ │ │ ├── juce_PopupMenu.cpp │ │ │ └── juce_PopupMenu.h │ │ ├── misc │ │ │ ├── juce_BubbleComponent.cpp │ │ │ ├── juce_BubbleComponent.h │ │ │ ├── juce_DropShadower.cpp │ │ │ └── juce_DropShadower.h │ │ ├── mouse │ │ │ ├── juce_ComponentDragger.cpp │ │ │ ├── juce_ComponentDragger.h │ │ │ ├── juce_DragAndDropContainer.cpp │ │ │ ├── juce_DragAndDropContainer.h │ │ │ ├── juce_DragAndDropTarget.h │ │ │ ├── juce_FileDragAndDropTarget.h │ │ │ ├── juce_LassoComponent.h │ │ │ ├── juce_MouseCursor.cpp │ │ │ ├── juce_MouseCursor.h │ │ │ ├── juce_MouseEvent.cpp │ │ │ ├── juce_MouseEvent.h │ │ │ ├── juce_MouseInactivityDetector.cpp │ │ │ ├── juce_MouseInactivityDetector.h │ │ │ ├── juce_MouseInputSource.cpp │ │ │ ├── juce_MouseInputSource.h │ │ │ ├── juce_MouseListener.cpp │ │ │ ├── juce_MouseListener.h │ │ │ ├── juce_SelectedItemSet.h │ │ │ ├── juce_TextDragAndDropTarget.h │ │ │ └── juce_TooltipClient.h │ │ ├── native │ │ │ ├── juce_MultiTouchMapper.h │ │ │ ├── juce_android_FileChooser.cpp │ │ │ ├── juce_android_Windowing.cpp │ │ │ ├── juce_ios_UIViewComponentPeer.mm │ │ │ ├── juce_ios_Windowing.mm │ │ │ ├── juce_linux_Clipboard.cpp │ │ │ ├── juce_linux_FileChooser.cpp │ │ │ ├── juce_linux_Windowing.cpp │ │ │ ├── juce_mac_FileChooser.mm │ │ │ ├── juce_mac_MainMenu.mm │ │ │ ├── juce_mac_MouseCursor.mm │ │ │ ├── juce_mac_NSViewComponentPeer.mm │ │ │ ├── juce_mac_Windowing.mm │ │ │ ├── juce_win32_DragAndDrop.cpp │ │ │ ├── juce_win32_FileChooser.cpp │ │ │ └── juce_win32_Windowing.cpp │ │ ├── positioning │ │ │ ├── juce_MarkerList.cpp │ │ │ ├── juce_MarkerList.h │ │ │ ├── juce_RelativeCoordinate.cpp │ │ │ ├── juce_RelativeCoordinate.h │ │ │ ├── juce_RelativeCoordinatePositioner.cpp │ │ │ ├── juce_RelativeCoordinatePositioner.h │ │ │ ├── juce_RelativeParallelogram.cpp │ │ │ ├── juce_RelativeParallelogram.h │ │ │ ├── juce_RelativePoint.cpp │ │ │ ├── juce_RelativePoint.h │ │ │ ├── juce_RelativePointPath.cpp │ │ │ ├── juce_RelativePointPath.h │ │ │ ├── juce_RelativeRectangle.cpp │ │ │ └── juce_RelativeRectangle.h │ │ ├── properties │ │ │ ├── juce_BooleanPropertyComponent.cpp │ │ │ ├── juce_BooleanPropertyComponent.h │ │ │ ├── juce_ButtonPropertyComponent.cpp │ │ │ ├── juce_ButtonPropertyComponent.h │ │ │ ├── juce_ChoicePropertyComponent.cpp │ │ │ ├── juce_ChoicePropertyComponent.h │ │ │ ├── juce_PropertyComponent.cpp │ │ │ ├── juce_PropertyComponent.h │ │ │ ├── juce_PropertyPanel.cpp │ │ │ ├── juce_PropertyPanel.h │ │ │ ├── juce_SliderPropertyComponent.cpp │ │ │ ├── juce_SliderPropertyComponent.h │ │ │ ├── juce_TextPropertyComponent.cpp │ │ │ └── juce_TextPropertyComponent.h │ │ ├── widgets │ │ │ ├── juce_ComboBox.cpp │ │ │ ├── juce_ComboBox.h │ │ │ ├── juce_ImageComponent.cpp │ │ │ ├── juce_ImageComponent.h │ │ │ ├── juce_Label.cpp │ │ │ ├── juce_Label.h │ │ │ ├── juce_ListBox.cpp │ │ │ ├── juce_ListBox.h │ │ │ ├── juce_ProgressBar.cpp │ │ │ ├── juce_ProgressBar.h │ │ │ ├── juce_Slider.cpp │ │ │ ├── juce_Slider.h │ │ │ ├── juce_TableHeaderComponent.cpp │ │ │ ├── juce_TableHeaderComponent.h │ │ │ ├── juce_TableListBox.cpp │ │ │ ├── juce_TableListBox.h │ │ │ ├── juce_TextEditor.cpp │ │ │ ├── juce_TextEditor.h │ │ │ ├── juce_Toolbar.cpp │ │ │ ├── juce_Toolbar.h │ │ │ ├── juce_ToolbarItemComponent.cpp │ │ │ ├── juce_ToolbarItemComponent.h │ │ │ ├── juce_ToolbarItemFactory.h │ │ │ ├── juce_ToolbarItemPalette.cpp │ │ │ ├── juce_ToolbarItemPalette.h │ │ │ ├── juce_TreeView.cpp │ │ │ └── juce_TreeView.h │ │ └── windows │ │ │ ├── juce_AlertWindow.cpp │ │ │ ├── juce_AlertWindow.h │ │ │ ├── juce_CallOutBox.cpp │ │ │ ├── juce_CallOutBox.h │ │ │ ├── juce_ComponentPeer.cpp │ │ │ ├── juce_ComponentPeer.h │ │ │ ├── juce_DialogWindow.cpp │ │ │ ├── juce_DialogWindow.h │ │ │ ├── juce_DocumentWindow.cpp │ │ │ ├── juce_DocumentWindow.h │ │ │ ├── juce_NativeMessageBox.h │ │ │ ├── juce_ResizableWindow.cpp │ │ │ ├── juce_ResizableWindow.h │ │ │ ├── juce_ThreadWithProgressWindow.cpp │ │ │ ├── juce_ThreadWithProgressWindow.h │ │ │ ├── juce_TooltipWindow.cpp │ │ │ ├── juce_TooltipWindow.h │ │ │ ├── juce_TopLevelWindow.cpp │ │ │ └── juce_TopLevelWindow.h │ │ └── juce_gui_extra │ │ ├── code_editor │ │ ├── juce_CPlusPlusCodeTokeniser.cpp │ │ ├── juce_CPlusPlusCodeTokeniser.h │ │ ├── juce_CPlusPlusCodeTokeniserFunctions.h │ │ ├── juce_CodeDocument.cpp │ │ ├── juce_CodeDocument.h │ │ ├── juce_CodeEditorComponent.cpp │ │ ├── juce_CodeEditorComponent.h │ │ ├── juce_CodeTokeniser.h │ │ ├── juce_LuaCodeTokeniser.cpp │ │ ├── juce_LuaCodeTokeniser.h │ │ ├── juce_XMLCodeTokeniser.cpp │ │ └── juce_XMLCodeTokeniser.h │ │ ├── documents │ │ ├── juce_FileBasedDocument.cpp │ │ └── juce_FileBasedDocument.h │ │ ├── embedding │ │ ├── juce_ActiveXControlComponent.h │ │ ├── juce_NSViewComponent.h │ │ └── juce_UIViewComponent.h │ │ ├── juce_gui_extra.cpp │ │ ├── juce_gui_extra.h │ │ ├── juce_gui_extra.mm │ │ ├── misc │ │ ├── juce_AnimatedAppComponent.cpp │ │ ├── juce_AnimatedAppComponent.h │ │ ├── juce_AppleRemote.h │ │ ├── juce_BubbleMessageComponent.cpp │ │ ├── juce_BubbleMessageComponent.h │ │ ├── juce_ColourSelector.cpp │ │ ├── juce_ColourSelector.h │ │ ├── juce_KeyMappingEditorComponent.cpp │ │ ├── juce_KeyMappingEditorComponent.h │ │ ├── juce_LiveConstantEditor.cpp │ │ ├── juce_LiveConstantEditor.h │ │ ├── juce_PreferencesPanel.cpp │ │ ├── juce_PreferencesPanel.h │ │ ├── juce_RecentlyOpenedFilesList.cpp │ │ ├── juce_RecentlyOpenedFilesList.h │ │ ├── juce_SplashScreen.cpp │ │ ├── juce_SplashScreen.h │ │ ├── juce_SystemTrayIconComponent.cpp │ │ ├── juce_SystemTrayIconComponent.h │ │ └── juce_WebBrowserComponent.h │ │ └── native │ │ ├── juce_android_WebBrowserComponent.cpp │ │ ├── juce_ios_UIViewComponent.mm │ │ ├── juce_linux_SystemTrayIcon.cpp │ │ ├── juce_linux_WebBrowserComponent.cpp │ │ ├── juce_mac_AppleRemote.mm │ │ ├── juce_mac_CarbonViewWrapperComponent.h │ │ ├── juce_mac_NSViewComponent.mm │ │ ├── juce_mac_SystemTrayIcon.cpp │ │ ├── juce_mac_WebBrowserComponent.mm │ │ ├── juce_win32_ActiveXComponent.cpp │ │ ├── juce_win32_SystemTrayIcon.cpp │ │ └── juce_win32_WebBrowserComponent.cpp └── binaural-vst.jucer ├── README.md ├── build ├── BinAural_32.dll ├── BinAural_64.dll └── hrir │ └── kemar.bin ├── screenshot.png └── source ├── AtomicAudioParameter.cpp ├── AtomicAudioParameter.h ├── Crossover.cpp ├── Crossover.h ├── HRIRFilter.cpp ├── HRIRFilter.h ├── HRTFContainer.cpp ├── HRTFContainer.h ├── MainDisplay.cpp ├── MainDisplay.h ├── OouraFFT.cpp ├── OouraFFT.h ├── PluginEditor.cpp ├── PluginEditor.h ├── PluginProcessor.cpp ├── PluginProcessor.h ├── Util.h ├── delaunay ├── LICENSE ├── delaunay.cpp ├── delaunay.h ├── edge.h ├── triangle.cpp ├── triangle.h └── vector2.h └── images ├── head_side.h ├── head_top.h └── source_icon.h /JUCE/.gitignore: -------------------------------------------------------------------------------- 1 | Builds 2 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/JuceHeader.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | This is the header file that your files should include in order to get all the 7 | JUCE library headers. You should avoid including the JUCE headers directly in 8 | your own source files, because that wouldn't pick up the correct configuration 9 | options for your app. 10 | 11 | */ 12 | 13 | #ifndef __APPHEADERFILE_PRKSBB__ 14 | #define __APPHEADERFILE_PRKSBB__ 15 | 16 | #include "AppConfig.h" 17 | 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | 30 | 31 | #if ! DONT_SET_USING_JUCE_NAMESPACE 32 | // If your code uses a lot of JUCE classes, then this will obviously save you 33 | // a lot of typing, but can be disabled by setting DONT_SET_USING_JUCE_NAMESPACE. 34 | using namespace juce; 35 | #endif 36 | 37 | #if ! JUCE_DONT_DECLARE_PROJECTINFO 38 | namespace ProjectInfo 39 | { 40 | const char* const projectName = "binaural-vst"; 41 | const char* const versionString = "1.0.0"; 42 | const int versionNumber = 0x10000; 43 | } 44 | #endif 45 | 46 | #endif // __APPHEADERFILE_PRKSBB__ 47 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/ReadMe.txt: -------------------------------------------------------------------------------- 1 | 2 | Important Note!! 3 | ================ 4 | 5 | The purpose of this folder is to contain files that are auto-generated by the Projucer, 6 | and ALL files in this folder will be mercilessly DELETED and completely re-written whenever 7 | the Projucer saves your project. 8 | 9 | Therefore, it's a bad idea to make any manual changes to the files in here, or to 10 | put any of your own files in here if you don't want to lose them. (Of course you may choose 11 | to add the folder's contents to your version-control system so that you can re-merge your own 12 | modifications after the Projucer has saved its changes). 13 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_basics.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_basics.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_devices.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_devices.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_formats.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_formats.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_plugin_client_AAX.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_plugin_client_AAX.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_plugin_client_AU_1.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_plugin_client_AU_2.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_plugin_client_AUv3.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_plugin_client_RTAS_1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_plugin_client_RTAS_2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_plugin_client_RTAS_3.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_plugin_client_RTAS_4.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_plugin_client_RTAS_utils.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_plugin_client_RTAS_utils.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_plugin_client_Standalone.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_plugin_client_VST2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_plugin_client_VST3.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_plugin_client_VST_utils.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_plugin_client_utils.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_processors.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_audio_processors.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_core.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_core.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_data_structures.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_data_structures.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_events.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_events.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_graphics.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_graphics.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_gui_basics.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_gui_basics.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_gui_extra.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/juce_gui_extra.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.mm: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "juce_audio_basics.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_basics/mpe/juce_MPESynthesiserVoice.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | MPESynthesiserVoice::MPESynthesiserVoice() 26 | : currentSampleRate (0), noteStartTime (0) 27 | { 28 | } 29 | 30 | MPESynthesiserVoice::~MPESynthesiserVoice() 31 | { 32 | } 33 | 34 | //============================================================================== 35 | bool MPESynthesiserVoice::isCurrentlyPlayingNote (MPENote note) const noexcept 36 | { 37 | return isActive() && currentlyPlayingNote.noteID == note.noteID; 38 | } 39 | 40 | bool MPESynthesiserVoice::isPlayingButReleased() const noexcept 41 | { 42 | return isActive() && currentlyPlayingNote.keyState == MPENote::off; 43 | } 44 | 45 | bool MPESynthesiserVoice::wasStartedBefore (const MPESynthesiserVoice& other) const noexcept 46 | { 47 | return noteStartTime < other.noteStartTime; 48 | } 49 | 50 | void MPESynthesiserVoice::clearCurrentNote() noexcept 51 | { 52 | currentlyPlayingNote = MPENote(); 53 | } 54 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_devices/audio_cd/juce_AudioCDReader.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #if JUCE_USE_CDREADER 26 | 27 | int AudioCDReader::getNumTracks() const 28 | { 29 | return trackStartSamples.size() - 1; 30 | } 31 | 32 | int AudioCDReader::getPositionOfTrackStart (int trackNum) const 33 | { 34 | return trackStartSamples [trackNum]; 35 | } 36 | 37 | const Array& AudioCDReader::getTrackOffsets() const 38 | { 39 | return trackStartSamples; 40 | } 41 | 42 | int AudioCDReader::getCDDBId() 43 | { 44 | int checksum = 0; 45 | const int numTracks = getNumTracks(); 46 | 47 | for (int i = 0; i < numTracks; ++i) 48 | for (int offset = (trackStartSamples.getUnchecked(i) + 88200) / 44100; offset > 0; offset /= 10) 49 | checksum += offset % 10; 50 | 51 | const int length = (trackStartSamples.getLast() - trackStartSamples.getFirst()) / 44100; 52 | 53 | // CCLLLLTT: checksum, length, tracks 54 | return ((checksum & 0xff) << 24) | (length << 8) | numTracks; 55 | } 56 | 57 | #endif 58 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | AudioIODevice::AudioIODevice (const String& deviceName, const String& deviceTypeName) 26 | : name (deviceName), typeName (deviceTypeName) 27 | { 28 | } 29 | 30 | AudioIODevice::~AudioIODevice() {} 31 | 32 | void AudioIODeviceCallback::audioDeviceError (const String&) {} 33 | bool AudioIODevice::setAudioPreprocessingEnabled (bool) { return false; } 34 | bool AudioIODevice::hasControlPanel() const { return false; } 35 | 36 | bool AudioIODevice::showControlPanel() 37 | { 38 | jassertfalse; // this should only be called for devices which return true from 39 | // their hasControlPanel() method. 40 | return false; 41 | } 42 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.mm: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "juce_audio_devices.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_devices/native/juce_linux_AudioCDReader.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | AudioCDReader::AudioCDReader() 26 | : AudioFormatReader (0, "CD Audio") 27 | { 28 | } 29 | 30 | StringArray AudioCDReader::getAvailableCDNames() 31 | { 32 | StringArray names; 33 | return names; 34 | } 35 | 36 | AudioCDReader* AudioCDReader::createReaderForCD (const int index) 37 | { 38 | return nullptr; 39 | } 40 | 41 | AudioCDReader::~AudioCDReader() 42 | { 43 | } 44 | 45 | void AudioCDReader::refreshTrackLengths() 46 | { 47 | } 48 | 49 | bool AudioCDReader::readSamples (int** destSamples, int numDestChannels, int startOffsetInDestBuffer, 50 | int64 startSampleInFile, int numSamples) 51 | { 52 | return false; 53 | } 54 | 55 | bool AudioCDReader::isCDStillPresent() const 56 | { 57 | return false; 58 | } 59 | 60 | bool AudioCDReader::isTrackAudio (int trackNum) const 61 | { 62 | return false; 63 | } 64 | 65 | void AudioCDReader::enableIndexScanning (bool b) 66 | { 67 | } 68 | 69 | int AudioCDReader::getLastIndex() const 70 | { 71 | return 0; 72 | } 73 | 74 | Array AudioCDReader::findIndexesInTrack (const int trackNumber) 75 | { 76 | return Array(); 77 | } 78 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/flac/assert.h: -------------------------------------------------------------------------------- 1 | /* libFLAC - Free Lossless Audio Codec library 2 | * Copyright (C) 2001-2009 Josh Coalson 3 | * Copyright (C) 2011-2014 Xiph.Org Foundation 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 9 | * - Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 12 | * - Redistributions in binary form must reproduce the above copyright 13 | * notice, this list of conditions and the following disclaimer in the 14 | * documentation and/or other materials provided with the distribution. 15 | * 16 | * - Neither the name of the Xiph.org Foundation nor the names of its 17 | * contributors may be used to endorse or promote products derived from 18 | * this software without specific prior written permission. 19 | * 20 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR 24 | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 27 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 28 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | */ 32 | 33 | #ifndef FLAC__ASSERT_H 34 | #define FLAC__ASSERT_H 35 | 36 | /* we need this since some compilers (like MSVC) leave assert()s on release code (and we don't want to use their ASSERT) */ 37 | #ifdef DEBUG 38 | // JUCE: removed as JUCE already includes standard headers and including 39 | // these in FlacNamespace will cause problems 40 | 41 | //#include 42 | #define FLAC__ASSERT(x) assert(x) 43 | #define FLAC__ASSERT_DECLARATION(x) x 44 | #else 45 | #define FLAC__ASSERT(x) 46 | #define FLAC__ASSERT_DECLARATION(x) 47 | #endif 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/flac/libFLAC/include/private/all.h: -------------------------------------------------------------------------------- 1 | /* libFLAC - Free Lossless Audio Codec library 2 | * Copyright (C) 2000-2009 Josh Coalson 3 | * Copyright (C) 2011-2014 Xiph.Org Foundation 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 9 | * - Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 12 | * - Redistributions in binary form must reproduce the above copyright 13 | * notice, this list of conditions and the following disclaimer in the 14 | * documentation and/or other materials provided with the distribution. 15 | * 16 | * - Neither the name of the Xiph.org Foundation nor the names of its 17 | * contributors may be used to endorse or promote products derived from 18 | * this software without specific prior written permission. 19 | * 20 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR 24 | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 27 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 28 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | */ 32 | 33 | #ifndef FLAC__PRIVATE__ALL_H 34 | #define FLAC__PRIVATE__ALL_H 35 | 36 | #include "bitmath.h" 37 | #include "bitreader.h" 38 | #include "bitwriter.h" 39 | #include "cpu.h" 40 | #include "crc.h" 41 | #include "fixed.h" 42 | #include "float.h" 43 | #include "format.h" 44 | #include "lpc.h" 45 | #include "md5.h" 46 | #include "memory.h" 47 | #include "metadata.h" 48 | #include "stream_encoder_framing.h" 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/flac/libFLAC/include/private/md5.h: -------------------------------------------------------------------------------- 1 | #ifndef FLAC__PRIVATE__MD5_H 2 | #define FLAC__PRIVATE__MD5_H 3 | 4 | /* 5 | * This is the header file for the MD5 message-digest algorithm. 6 | * The algorithm is due to Ron Rivest. This code was 7 | * written by Colin Plumb in 1993, no copyright is claimed. 8 | * This code is in the public domain; do with it what you wish. 9 | * 10 | * Equivalent code is available from RSA Data Security, Inc. 11 | * This code has been tested against that, and is equivalent, 12 | * except that you don't need to include two pages of legalese 13 | * with every copy. 14 | * 15 | * To compute the message digest of a chunk of bytes, declare an 16 | * MD5Context structure, pass it to MD5Init, call MD5Update as 17 | * needed on buffers full of bytes, and then call MD5Final, which 18 | * will fill a supplied 16-byte array with the digest. 19 | * 20 | * Changed so as no longer to depend on Colin Plumb's `usual.h' 21 | * header definitions; now uses stuff from dpkg's config.h 22 | * - Ian Jackson . 23 | * Still in the public domain. 24 | * 25 | * Josh Coalson: made some changes to integrate with libFLAC. 26 | * Still in the public domain, with no warranty. 27 | */ 28 | 29 | #include "../../../ordinals.h" 30 | 31 | typedef union { 32 | FLAC__byte *p8; 33 | FLAC__int16 *p16; 34 | FLAC__int32 *p32; 35 | } FLAC__multibyte; 36 | 37 | typedef struct { 38 | FLAC__uint32 in[16]; 39 | FLAC__uint32 buf[4]; 40 | FLAC__uint32 bytes[2]; 41 | FLAC__multibyte internal_buf; 42 | size_t capacity; 43 | } FLAC__MD5Context; 44 | 45 | void FLAC__MD5Init(FLAC__MD5Context *context); 46 | void FLAC__MD5Final(FLAC__byte digest[16], FLAC__MD5Context *context); 47 | 48 | FLAC__bool FLAC__MD5Accumulate(FLAC__MD5Context *ctx, const FLAC__int32 * const signal[], unsigned channels, unsigned samples, unsigned bytes_per_sample); 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/flac/libFLAC/include/private/metadata.h: -------------------------------------------------------------------------------- 1 | /* libFLAC - Free Lossless Audio Codec library 2 | * Copyright (C) 2002-2009 Josh Coalson 3 | * Copyright (C) 2011-2014 Xiph.Org Foundation 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 9 | * - Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 12 | * - Redistributions in binary form must reproduce the above copyright 13 | * notice, this list of conditions and the following disclaimer in the 14 | * documentation and/or other materials provided with the distribution. 15 | * 16 | * - Neither the name of the Xiph.org Foundation nor the names of its 17 | * contributors may be used to endorse or promote products derived from 18 | * this software without specific prior written permission. 19 | * 20 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR 24 | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 27 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 28 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | */ 32 | 33 | #ifndef FLAC__PRIVATE__METADATA_H 34 | #define FLAC__PRIVATE__METADATA_H 35 | 36 | #include "../../../metadata.h" 37 | 38 | /* WATCHOUT: all malloc()ed data in the block is free()ed; this may not 39 | * be a consistent state (e.g. PICTURE) or equivalent to the initial 40 | * state after FLAC__metadata_object_new() 41 | */ 42 | void FLAC__metadata_object_delete_data(FLAC__StreamMetadata *object); 43 | 44 | void FLAC__metadata_object_cuesheet_track_delete_data(FLAC__StreamMetadata_CueSheet_Track *object); 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/flac/libFLAC/include/protected/all.h: -------------------------------------------------------------------------------- 1 | /* libFLAC - Free Lossless Audio Codec library 2 | * Copyright (C) 2001-2009 Josh Coalson 3 | * Copyright (C) 2011-2014 Xiph.Org Foundation 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 9 | * - Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 12 | * - Redistributions in binary form must reproduce the above copyright 13 | * notice, this list of conditions and the following disclaimer in the 14 | * documentation and/or other materials provided with the distribution. 15 | * 16 | * - Neither the name of the Xiph.org Foundation nor the names of its 17 | * contributors may be used to endorse or promote products derived from 18 | * this software without specific prior written permission. 19 | * 20 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR 24 | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 27 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 28 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | */ 32 | 33 | #ifndef FLAC__PROTECTED__ALL_H 34 | #define FLAC__PROTECTED__ALL_H 35 | 36 | #include "stream_decoder.h" 37 | #include "stream_encoder.h" 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #if JUCE_WINDOWS || DOXYGEN 26 | 27 | //============================================================================== 28 | /** 29 | Audio format which uses the Windows Media codecs (Windows only). 30 | */ 31 | class WindowsMediaAudioFormat : public AudioFormat 32 | { 33 | public: 34 | //============================================================================== 35 | WindowsMediaAudioFormat(); 36 | ~WindowsMediaAudioFormat(); 37 | 38 | //============================================================================== 39 | Array getPossibleSampleRates() override; 40 | Array getPossibleBitDepths() override; 41 | bool canDoStereo() override; 42 | bool canDoMono() override; 43 | bool isCompressed() override; 44 | 45 | //============================================================================== 46 | AudioFormatReader* createReaderFor (InputStream*, bool deleteStreamIfOpeningFails) override; 47 | 48 | AudioFormatWriter* createWriterFor (OutputStream*, double sampleRateToUse, 49 | unsigned int numberOfChannels, int bitsPerSample, 50 | const StringPairArray& metadataValues, int qualityOptionIndex) override; 51 | }; 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/oggvorbis/config_types.h: -------------------------------------------------------------------------------- 1 | #ifndef __CONFIG_TYPES_H__ 2 | #define __CONFIG_TYPES_H__ 3 | 4 | typedef int16_t ogg_int16_t; 5 | typedef unsigned short ogg_uint16_t; 6 | typedef int32_t ogg_int32_t; 7 | typedef unsigned int ogg_uint32_t; 8 | typedef int64_t ogg_int64_t; 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/AUTHORS: -------------------------------------------------------------------------------- 1 | Monty 2 | 3 | and the rest of the Xiph.org Foundation. 4 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/COPYING: -------------------------------------------------------------------------------- 1 | Copyright (c) 2002-2008 Xiph.org Foundation 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions 5 | are met: 6 | 7 | - Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | - Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 14 | - Neither the name of the Xiph.org Foundation nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION 22 | OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/bitrate.h: -------------------------------------------------------------------------------- 1 | /******************************************************************** 2 | * * 3 | * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * 4 | * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * 5 | * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * 6 | * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 7 | * * 8 | * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * 9 | * by the Xiph.Org Foundation http://www.xiph.org/ * 10 | * * 11 | ******************************************************************** 12 | 13 | function: bitrate tracking and management 14 | last mod: $Id: bitrate.h 13293 2007-07-24 00:09:47Z xiphmont $ 15 | 16 | ********************************************************************/ 17 | 18 | #ifndef _V_BITRATE_H_ 19 | #define _V_BITRATE_H_ 20 | 21 | #include "../../codec.h" 22 | #include "codec_internal.h" 23 | #include "os.h" 24 | 25 | /* encode side bitrate tracking */ 26 | typedef struct bitrate_manager_state { 27 | int managed; 28 | 29 | long avg_reservoir; 30 | long minmax_reservoir; 31 | long avg_bitsper; 32 | long min_bitsper; 33 | long max_bitsper; 34 | 35 | long short_per_long; 36 | double avgfloat; 37 | 38 | vorbis_block *vb; 39 | int choice; 40 | } bitrate_manager_state; 41 | 42 | typedef struct bitrate_manager_info{ 43 | long avg_rate; 44 | long min_rate; 45 | long max_rate; 46 | long reservoir_bits; 47 | double reservoir_bias; 48 | 49 | double slew_damp; 50 | 51 | } bitrate_manager_info; 52 | 53 | extern void vorbis_bitrate_init(vorbis_info *vi,bitrate_manager_state *bs); 54 | extern void vorbis_bitrate_clear(bitrate_manager_state *bs); 55 | extern int vorbis_bitrate_managed(vorbis_block *vb); 56 | extern int vorbis_bitrate_addblock(vorbis_block *vb); 57 | extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd, ogg_packet *op); 58 | 59 | #endif 60 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/highlevel.h: -------------------------------------------------------------------------------- 1 | /******************************************************************** 2 | * * 3 | * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * 4 | * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * 5 | * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * 6 | * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 7 | * * 8 | * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * 9 | * by the Xiph.Org Foundation http://www.xiph.org/ * 10 | * * 11 | ******************************************************************** 12 | 13 | function: highlevel encoder setup struct separated out for vorbisenc clarity 14 | last mod: $Id: highlevel.h 17195 2010-05-05 21:49:51Z giles $ 15 | 16 | ********************************************************************/ 17 | 18 | typedef struct highlevel_byblocktype { 19 | double tone_mask_setting; 20 | double tone_peaklimit_setting; 21 | double noise_bias_setting; 22 | double noise_compand_setting; 23 | } highlevel_byblocktype; 24 | 25 | typedef struct highlevel_encode_setup { 26 | int set_in_stone; 27 | const void *setup; 28 | double base_setting; 29 | 30 | double impulse_noisetune; 31 | 32 | /* bitrate management below all settable */ 33 | float req; 34 | int managed; 35 | long bitrate_min; 36 | long bitrate_av; 37 | double bitrate_av_damp; 38 | long bitrate_max; 39 | long bitrate_reservoir; 40 | double bitrate_reservoir_bias; 41 | 42 | int impulse_block_p; 43 | int noise_normalize_p; 44 | int coupling_p; 45 | 46 | double stereo_point_setting; 47 | double lowpass_kHz; 48 | int lowpass_altered; 49 | 50 | double ath_floating_dB; 51 | double ath_absolute_dB; 52 | 53 | double amplitude_track_dBpersec; 54 | double trigger_setting; 55 | 56 | highlevel_byblocktype block[4]; /* padding, impulse, transition, long */ 57 | 58 | } highlevel_encode_setup; 59 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lookup.h: -------------------------------------------------------------------------------- 1 | /******************************************************************** 2 | * * 3 | * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * 4 | * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * 5 | * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * 6 | * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 7 | * * 8 | * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * 9 | * by the Xiph.Org Foundation http://www.xiph.org/ * 10 | * * 11 | ******************************************************************** 12 | 13 | function: lookup based functions 14 | last mod: $Id: lookup.h 16227 2009-07-08 06:58:46Z xiphmont $ 15 | 16 | ********************************************************************/ 17 | 18 | #ifndef _V_LOOKUP_H_ 19 | 20 | #ifdef FLOAT_LOOKUP 21 | extern float vorbis_coslook(float a); 22 | extern float vorbis_invsqlook(float a); 23 | extern float vorbis_invsq2explook(int a); 24 | extern float vorbis_fromdBlook(float a); 25 | #endif 26 | #ifdef INT_LOOKUP 27 | extern long vorbis_invsqlook_i(long a,long e); 28 | extern long vorbis_coslook_i(long a); 29 | extern float vorbis_fromdBlook_i(long a); 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lpc.h: -------------------------------------------------------------------------------- 1 | /******************************************************************** 2 | * * 3 | * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * 4 | * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * 5 | * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * 6 | * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 7 | * * 8 | * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * 9 | * by the Xiph.Org Foundation http://www.xiph.org/ * 10 | * * 11 | ******************************************************************** 12 | 13 | function: LPC low level routines 14 | last mod: $Id: lpc.h 16037 2009-05-26 21:10:58Z xiphmont $ 15 | 16 | ********************************************************************/ 17 | 18 | #ifndef _V_LPC_H_ 19 | #define _V_LPC_H_ 20 | 21 | #include "../../codec.h" 22 | 23 | /* simple linear scale LPC code */ 24 | extern float vorbis_lpc_from_data(float *data,float *lpc,int n,int m); 25 | 26 | extern void vorbis_lpc_predict(float *coeff,float *prime,int m, 27 | float *data,long n); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/lsp.h: -------------------------------------------------------------------------------- 1 | /******************************************************************** 2 | * * 3 | * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * 4 | * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * 5 | * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * 6 | * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 7 | * * 8 | * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * 9 | * by the Xiph.Org Foundation http://www.xiph.org/ * 10 | * * 11 | ******************************************************************** 12 | 13 | function: LSP (also called LSF) conversion routines 14 | last mod: $Id: lsp.h 16227 2009-07-08 06:58:46Z xiphmont $ 15 | 16 | ********************************************************************/ 17 | 18 | 19 | #ifndef _V_LSP_H_ 20 | #define _V_LSP_H_ 21 | 22 | extern int vorbis_lpc_to_lsp(float *lpc,float *lsp,int m); 23 | 24 | extern void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln, 25 | float *lsp,int m, 26 | float amp,float ampoffset); 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/mdct.h: -------------------------------------------------------------------------------- 1 | /******************************************************************** 2 | * * 3 | * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * 4 | * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * 5 | * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * 6 | * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 7 | * * 8 | * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * 9 | * by the Xiph.Org Foundation http://www.xiph.org/ * 10 | * * 11 | ******************************************************************** 12 | 13 | function: modified discrete cosine transform prototypes 14 | last mod: $Id: mdct.h 16227 2009-07-08 06:58:46Z xiphmont $ 15 | 16 | ********************************************************************/ 17 | 18 | #ifndef _OGG_mdct_H_ 19 | #define _OGG_mdct_H_ 20 | 21 | #include "../../codec.h" 22 | 23 | 24 | 25 | 26 | 27 | /*#define MDCT_INTEGERIZED <- be warned there could be some hurt left here*/ 28 | #ifdef MDCT_INTEGERIZED 29 | 30 | #define DATA_TYPE int 31 | #define REG_TYPE register int 32 | #define TRIGBITS 14 33 | #define cPI3_8 6270 34 | #define cPI2_8 11585 35 | #define cPI1_8 15137 36 | 37 | #define FLOAT_CONV(x) ((int)((x)*(1<>TRIGBITS) 39 | #define HALVE(x) ((x)>>1) 40 | 41 | #else 42 | 43 | #define DATA_TYPE float 44 | #define REG_TYPE float 45 | #define cPI3_8 .38268343236508977175F 46 | #define cPI2_8 .70710678118654752441F 47 | #define cPI1_8 .92387953251128675613F 48 | 49 | #define FLOAT_CONV(x) (x) 50 | #define MULT_NORM(x) (x) 51 | #define HALVE(x) ((x)*.5f) 52 | 53 | #endif 54 | 55 | 56 | typedef struct { 57 | int n; 58 | int log2n; 59 | 60 | DATA_TYPE *trig; 61 | int *bitrev; 62 | 63 | DATA_TYPE scale; 64 | } mdct_lookup; 65 | 66 | extern void mdct_init(mdct_lookup *lookup,int n); 67 | extern void mdct_clear(mdct_lookup *l); 68 | extern void mdct_forward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out); 69 | extern void mdct_backward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out); 70 | 71 | #endif 72 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/misc.h: -------------------------------------------------------------------------------- 1 | /******************************************************************** 2 | * * 3 | * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * 4 | * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * 5 | * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * 6 | * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 7 | * * 8 | * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * 9 | * by the Xiph.Org Foundation http://www.xiph.org/ * 10 | * * 11 | ******************************************************************** 12 | 13 | function: miscellaneous prototypes 14 | last mod: $Id: misc.h 16227 2009-07-08 06:58:46Z xiphmont $ 15 | 16 | ********************************************************************/ 17 | 18 | #ifndef _V_RANDOM_H_ 19 | #define _V_RANDOM_H_ 20 | #include "../../codec.h" 21 | 22 | extern void *_vorbis_block_alloc(vorbis_block *vb,long bytes); 23 | extern void _vorbis_block_ripcord(vorbis_block *vb); 24 | 25 | #ifdef ANALYSIS 26 | extern int analysis_noisy; 27 | extern void _analysis_output(char *base,int i,float *v,int n,int bark,int dB, 28 | ogg_int64_t off); 29 | extern void _analysis_output_always(char *base,int i,float *v,int n,int bark,int dB, 30 | ogg_int64_t off); 31 | #endif 32 | 33 | #ifdef DEBUG_MALLOC 34 | 35 | #define _VDBG_GRAPHFILE "malloc.m" 36 | #undef _VDBG_GRAPHFILE 37 | extern void *_VDBG_malloc(void *ptr,long bytes,char *file,long line); 38 | extern void _VDBG_free(void *ptr,char *file,long line); 39 | 40 | #ifndef MISC_C 41 | #undef _ogg_malloc 42 | #undef _ogg_calloc 43 | #undef _ogg_realloc 44 | #undef _ogg_free 45 | 46 | #define _ogg_malloc(x) _VDBG_malloc(NULL,(x),__FILE__,__LINE__) 47 | #define _ogg_calloc(x,y) _VDBG_malloc(NULL,(x)*(y),__FILE__,__LINE__) 48 | #define _ogg_realloc(x,y) _VDBG_malloc((x),(y),__FILE__,__LINE__) 49 | #define _ogg_free(x) _VDBG_free((x),__FILE__,__LINE__) 50 | #endif 51 | #endif 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44p51.h: -------------------------------------------------------------------------------- 1 | /******************************************************************** 2 | * * 3 | * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * 4 | * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * 5 | * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * 6 | * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 7 | * * 8 | * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * 9 | * by the Xiph.Org Foundation http://www.xiph.org/ * 10 | * * 11 | ******************************************************************** 12 | 13 | function: toplevel settings for 44.1/48kHz 5.1 surround modes 14 | last mod: $Id$ 15 | 16 | ********************************************************************/ 17 | 18 | #include "residue_44p51.h" 19 | 20 | static const double rate_mapping_44p51[12]={ 21 | 14000.,20000.,28000.,38000.,46000.,54000., 22 | 75000.,96000.,120000.,140000.,180000.,240001. 23 | }; 24 | 25 | static const ve_setup_data_template ve_setup_44_51={ 26 | 11, 27 | rate_mapping_44p51, 28 | quality_mapping_44, 29 | 6, 30 | 40000, 31 | 70000, 32 | 33 | blocksize_short_44, 34 | blocksize_long_44, 35 | 36 | _psy_tone_masteratt_44, 37 | _psy_tone_0dB, 38 | _psy_tone_suppress, 39 | 40 | _vp_tonemask_adj_otherblock, 41 | _vp_tonemask_adj_longblock, 42 | _vp_tonemask_adj_otherblock, 43 | 44 | _psy_noiseguards_44, 45 | _psy_noisebias_impulse, 46 | _psy_noisebias_padding, 47 | _psy_noisebias_trans, 48 | _psy_noisebias_long, 49 | _psy_noise_suppress, 50 | 51 | _psy_compand_44, 52 | _psy_compand_short_mapping, 53 | _psy_compand_long_mapping, 54 | 55 | {_noise_start_short_44,_noise_start_long_44}, 56 | {_noise_part_short_44,_noise_part_long_44}, 57 | _noise_thresh_44, 58 | 59 | _psy_ath_floater, 60 | _psy_ath_abs, 61 | 62 | _psy_lowpass_44, 63 | 64 | _psy_global_44, 65 | _global_mapping_44, 66 | _psy_stereo_modes_44, 67 | 68 | _floor_books, 69 | _floor, 70 | 3, 71 | _floor_mapping_44, 72 | 73 | _mapres_template_44_51 74 | }; 75 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/modes/setup_44u.h: -------------------------------------------------------------------------------- 1 | /******************************************************************** 2 | * * 3 | * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * 4 | * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * 5 | * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * 6 | * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 7 | * * 8 | * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * 9 | * by the Xiph.Org Foundation http://www.xiph.org/ * 10 | * * 11 | ******************************************************************** 12 | 13 | function: toplevel settings for 44.1/48kHz uncoupled modes 14 | last mod: $Id: setup_44u.h 16962 2010-03-11 07:30:34Z xiphmont $ 15 | 16 | ********************************************************************/ 17 | 18 | #include "residue_44u.h" 19 | 20 | static const double rate_mapping_44_un[12]={ 21 | 32000.,48000.,60000.,70000.,80000.,86000., 22 | 96000.,110000.,120000.,140000.,160000.,240001. 23 | }; 24 | 25 | static const ve_setup_data_template ve_setup_44_uncoupled={ 26 | 11, 27 | rate_mapping_44_un, 28 | quality_mapping_44, 29 | -1, 30 | 40000, 31 | 50000, 32 | 33 | blocksize_short_44, 34 | blocksize_long_44, 35 | 36 | _psy_tone_masteratt_44, 37 | _psy_tone_0dB, 38 | _psy_tone_suppress, 39 | 40 | _vp_tonemask_adj_otherblock, 41 | _vp_tonemask_adj_longblock, 42 | _vp_tonemask_adj_otherblock, 43 | 44 | _psy_noiseguards_44, 45 | _psy_noisebias_impulse, 46 | _psy_noisebias_padding, 47 | _psy_noisebias_trans, 48 | _psy_noisebias_long, 49 | _psy_noise_suppress, 50 | 51 | _psy_compand_44, 52 | _psy_compand_short_mapping, 53 | _psy_compand_long_mapping, 54 | 55 | {_noise_start_short_44,_noise_start_long_44}, 56 | {_noise_part_short_44,_noise_part_long_44}, 57 | _noise_thresh_44, 58 | 59 | _psy_ath_floater, 60 | _psy_ath_abs, 61 | 62 | _psy_lowpass_44, 63 | 64 | _psy_global_44, 65 | _global_mapping_44, 66 | _psy_stereo_modes_44, 67 | 68 | _floor_books, 69 | _floor, 70 | 2, 71 | _floor_mapping_44, 72 | 73 | _mapres_template_44_uncoupled 74 | }; 75 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.c: -------------------------------------------------------------------------------- 1 | /******************************************************************** 2 | * * 3 | * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * 4 | * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * 5 | * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * 6 | * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 7 | * * 8 | * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * 9 | * by the Xiph.Org Foundation http://www.xiph.org/ * 10 | * * 11 | ******************************************************************** 12 | 13 | function: registry for time, floor, res backends and channel mappings 14 | last mod: $Id: registry.c 16227 2009-07-08 06:58:46Z xiphmont $ 15 | 16 | ********************************************************************/ 17 | 18 | #include "../../codec.h" 19 | #include "codec_internal.h" 20 | #include "registry.h" 21 | #include "misc.h" 22 | /* seems like major overkill now; the backend numbers will grow into 23 | the infrastructure soon enough */ 24 | 25 | extern const vorbis_func_floor floor0_exportbundle; 26 | extern const vorbis_func_floor floor1_exportbundle; 27 | extern const vorbis_func_residue residue0_exportbundle; 28 | extern const vorbis_func_residue residue1_exportbundle; 29 | extern const vorbis_func_residue residue2_exportbundle; 30 | extern const vorbis_func_mapping mapping0_exportbundle; 31 | 32 | const vorbis_func_floor *const _floor_P[]={ 33 | &floor0_exportbundle, 34 | &floor1_exportbundle, 35 | }; 36 | 37 | const vorbis_func_residue *const _residue_P[]={ 38 | &residue0_exportbundle, 39 | &residue1_exportbundle, 40 | &residue2_exportbundle, 41 | }; 42 | 43 | const vorbis_func_mapping *const _mapping_P[]={ 44 | &mapping0_exportbundle, 45 | }; 46 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/registry.h: -------------------------------------------------------------------------------- 1 | /******************************************************************** 2 | * * 3 | * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * 4 | * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * 5 | * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * 6 | * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 7 | * * 8 | * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * 9 | * by the Xiph.Org Foundation http://www.xiph.org/ * 10 | * * 11 | ******************************************************************** 12 | 13 | function: registry for time, floor, res backends and channel mappings 14 | last mod: $Id: registry.h 15531 2008-11-24 23:50:06Z xiphmont $ 15 | 16 | ********************************************************************/ 17 | 18 | #ifndef _V_REG_H_ 19 | #define _V_REG_H_ 20 | 21 | #define VI_TRANSFORMB 1 22 | #define VI_WINDOWB 1 23 | #define VI_TIMEB 1 24 | #define VI_FLOORB 2 25 | #define VI_RESB 3 26 | #define VI_MAPB 1 27 | 28 | extern const vorbis_func_floor *const _floor_P[]; 29 | extern const vorbis_func_residue *const _residue_P[]; 30 | extern const vorbis_func_mapping *const _mapping_P[]; 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/smallft.h: -------------------------------------------------------------------------------- 1 | /******************************************************************** 2 | * * 3 | * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * 4 | * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * 5 | * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * 6 | * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 7 | * * 8 | * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * 9 | * by the Xiph.Org Foundation http://www.xiph.org/ * 10 | * * 11 | ******************************************************************** 12 | 13 | function: fft transform 14 | last mod: $Id: smallft.h 13293 2007-07-24 00:09:47Z xiphmont $ 15 | 16 | ********************************************************************/ 17 | 18 | #ifndef _V_SMFT_H_ 19 | #define _V_SMFT_H_ 20 | 21 | #include "../../codec.h" 22 | 23 | typedef struct { 24 | int n; 25 | float *trigcache; 26 | int *splitcache; 27 | } drft_lookup; 28 | 29 | extern void drft_forward(drft_lookup *l,float *data); 30 | extern void drft_backward(drft_lookup *l,float *data); 31 | extern void drft_init(drft_lookup *l,int n); 32 | extern void drft_clear(drft_lookup *l); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/codecs/oggvorbis/libvorbis-1.3.2/lib/window.h: -------------------------------------------------------------------------------- 1 | /******************************************************************** 2 | * * 3 | * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * 4 | * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * 5 | * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * 6 | * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 7 | * * 8 | * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * 9 | * by the Xiph.Org Foundation http://www.xiph.org/ * 10 | * * 11 | ******************************************************************** 12 | 13 | function: window functions 14 | last mod: $Id: window.h 13293 2007-07-24 00:09:47Z xiphmont $ 15 | 16 | ********************************************************************/ 17 | 18 | #ifndef _V_WINDOW_ 19 | #define _V_WINDOW_ 20 | 21 | extern float *_vorbis_window_get(int n); 22 | extern void _vorbis_apply_window(float *d,int *winno,long *blocksizes, 23 | int lW,int W,int nW); 24 | 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/format/juce_AudioFormat.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | AudioFormat::AudioFormat (String name, StringArray extensions) 26 | : formatName (name), fileExtensions (extensions) 27 | { 28 | } 29 | 30 | AudioFormat::AudioFormat (StringRef name, StringRef extensions) 31 | : formatName (name.text), fileExtensions (StringArray::fromTokens (extensions, false)) 32 | { 33 | } 34 | 35 | AudioFormat::~AudioFormat() 36 | { 37 | } 38 | 39 | bool AudioFormat::canHandleFile (const File& f) 40 | { 41 | for (int i = 0; i < fileExtensions.size(); ++i) 42 | if (f.hasFileExtension (fileExtensions[i])) 43 | return true; 44 | 45 | return false; 46 | } 47 | 48 | const String& AudioFormat::getFormatName() const { return formatName; } 49 | const StringArray& AudioFormat::getFileExtensions() const { return fileExtensions; } 50 | bool AudioFormat::isCompressed() { return false; } 51 | StringArray AudioFormat::getQualityOptions() { return StringArray(); } 52 | 53 | MemoryMappedAudioFormatReader* AudioFormat::createMemoryMappedReader (const File&) 54 | { 55 | return nullptr; 56 | } 57 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_formats/juce_audio_formats.mm: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "juce_audio_formats.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/AAX/juce_AAX_Modifier_Injector.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2016 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #ifndef JUCE_AAX_MODIFIER_INJECTOR_H_INCLUDED 26 | #define JUCE_AAX_MODIFIER_INJECTOR_H_INCLUDED 27 | 28 | struct ModifierKeyProvider 29 | { 30 | virtual ~ModifierKeyProvider() {} 31 | virtual int getWin32Modifiers() const = 0; 32 | }; 33 | 34 | struct ModifierKeyReceiver 35 | { 36 | virtual ~ModifierKeyReceiver() {} 37 | virtual void setModifierKeyProvider (ModifierKeyProvider* provider) = 0; 38 | virtual void removeModifierKeyProvider () = 0; 39 | }; 40 | 41 | #endif -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewBase.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twoz/binaural-vst/15bb77be7499036d76a461dd17be6440fd241ed8/JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/AU/CoreAudioUtilityClasses/AUCarbonViewBase.cpp -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/RTAS/juce_RTAS_WinExports.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | NewPlugIn @1 3 | _PI_GetRoutineDescriptor @2 4 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/RTAS/juce_RTAS_WinResources.rsr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twoz/binaural-vst/15bb77be7499036d76a461dd17be6440fd241ed8/JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/RTAS/juce_RTAS_WinResources.rsr -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_AAX.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "AAX/juce_AAX_Wrapper.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_AAX.mm: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #define JUCE_INCLUDED_AAX_IN_MM 1 26 | #include "AAX/juce_AAX_Wrapper.cpp" 27 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_AU_1.mm: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "AU/juce_AU_Wrapper.mm" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_AUv3.mm: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "AU/juce_AUv3_Wrapper.mm" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_RTAS.r: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | This dummy file is added to the resources section of the project to 4 | force XCode to create some resources for the dpm. If there aren't any 5 | resources, PT will refuse to load the plugin.. 6 | */ 7 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_RTAS_1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "RTAS/juce_RTAS_Wrapper.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_RTAS_2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "RTAS/juce_RTAS_DigiCode1.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_RTAS_3.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "RTAS/juce_RTAS_DigiCode2.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_RTAS_4.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "RTAS/juce_RTAS_DigiCode3.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_RTAS_utils.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "RTAS/juce_RTAS_WinUtilities.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_RTAS_utils.mm: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "RTAS/juce_RTAS_MacUtilities.mm" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_Standalone.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #if ! JUCE_MODULE_AVAILABLE_juce_audio_utils 26 | #error To compile AudioUnitv3 and/or Standalone plug-ins, you need to add the juce_audio_utils module! 27 | #endif 28 | 29 | #include "Standalone/juce_StandaloneFilterApp.cpp" 30 | 31 | #if ! JUCE_USE_CUSTOM_AU3_STANDALONE_APP 32 | START_JUCE_APPLICATION (StandaloneFilterApp); 33 | #endif 34 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "VST/juce_VST_Wrapper.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST3.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "VST3/juce_VST3_Wrapper.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST_utils.mm: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "VST/juce_VST_Wrapper.mm" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_utils.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "utility/juce_PluginUtilities.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/utility/juce_IncludeModuleHeaders.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #ifndef JUCE_INCLUDEMODULEHEADERS_H_INCLUDED 26 | #define JUCE_INCLUDEMODULEHEADERS_H_INCLUDED 27 | 28 | #include "../juce_audio_plugin_client.h" 29 | 30 | using namespace juce; 31 | 32 | namespace juce 33 | { 34 | #define Component juce::Component 35 | 36 | #if JUCE_MAC 37 | #define Point juce::Point 38 | void repostCurrentNSEvent(); 39 | #endif 40 | 41 | //============================================================================== 42 | inline const PluginHostType& getHostType() 43 | { 44 | static PluginHostType hostType; 45 | return hostType; 46 | } 47 | } 48 | 49 | extern AudioProcessor* JUCE_API JUCE_CALLTYPE createPluginFilterOfType (AudioProcessor::WrapperType); 50 | 51 | #endif // JUCE_INCLUDEMODULEHEADERS_H_INCLUDED 52 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/utility/juce_IncludeSystemHeaders.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #if JUCE_WINDOWS 26 | #undef _WIN32_WINNT 27 | #define _WIN32_WINNT 0x500 28 | #undef STRICT 29 | #define STRICT 1 30 | #include 31 | #include 32 | #pragma warning (disable : 4312 4355) 33 | #ifdef __INTEL_COMPILER 34 | #pragma warning (disable : 1899) 35 | #endif 36 | 37 | #elif JUCE_LINUX 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #undef Font 44 | #undef KeyPress 45 | #undef Drawable 46 | #undef Time 47 | 48 | #else 49 | #if ! (defined (JUCE_SUPPORT_CARBON) || defined (__LP64__)) 50 | #define JUCE_SUPPORT_CARBON 1 51 | #endif 52 | 53 | #ifdef __OBJC__ 54 | #if JUCE_MAC 55 | #include 56 | #elif JUCE_IOS 57 | #include 58 | #else 59 | #error 60 | #endif 61 | #endif 62 | 63 | #if JUCE_SUPPORT_CARBON && (! JUCE_IOS) 64 | #include 65 | #endif 66 | 67 | #include 68 | #include 69 | #include 70 | #endif 71 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.mm: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "juce_audio_processors.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #ifndef JUCE_GENERICAUDIOPROCESSOREDITOR_H_INCLUDED 26 | #define JUCE_GENERICAUDIOPROCESSOREDITOR_H_INCLUDED 27 | 28 | 29 | //============================================================================== 30 | /** 31 | A type of UI component that displays the parameters of an AudioProcessor as 32 | a simple list of sliders. 33 | 34 | This can be used for showing an editor for a processor that doesn't supply 35 | its own custom editor. 36 | 37 | @see AudioProcessor 38 | */ 39 | class JUCE_API GenericAudioProcessorEditor : public AudioProcessorEditor 40 | { 41 | public: 42 | //============================================================================== 43 | GenericAudioProcessorEditor (AudioProcessor* owner); 44 | ~GenericAudioProcessorEditor(); 45 | 46 | //============================================================================== 47 | void paint (Graphics&) override; 48 | void resized() override; 49 | 50 | private: 51 | //============================================================================== 52 | PropertyPanel panel; 53 | 54 | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (GenericAudioProcessorEditor) 55 | }; 56 | 57 | 58 | #endif // JUCE_GENERICAUDIOPROCESSOREDITOR_H_INCLUDED 59 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | /** 26 | This abstract base class is used by some AudioProcessorParameter helper classes. 27 | 28 | @see AudioParameterFloat, AudioParameterInt, AudioParameterBool, AudioParameterChoice 29 | */ 30 | class JUCE_API AudioProcessorParameterWithID : public AudioProcessorParameter 31 | { 32 | public: 33 | /** Creation of this object requires providing a name and ID which will be 34 | constant for its lifetime. 35 | */ 36 | AudioProcessorParameterWithID (String parameterID, String name); 37 | 38 | /** Destructor. */ 39 | ~AudioProcessorParameterWithID(); 40 | 41 | /** Provides access to the parameter's ID string. */ 42 | const String paramID; 43 | 44 | /** Provides access to the parameter's name. */ 45 | const String name; 46 | 47 | private: 48 | String label; 49 | 50 | String getName (int) const override; 51 | String getLabel() const override; 52 | 53 | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AudioProcessorParameterWithID) 54 | }; 55 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_core/files/juce_FileFilter.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the juce_core module of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission to use, copy, modify, and/or distribute this software for any purpose with 8 | or without fee is hereby granted, provided that the above copyright notice and this 9 | permission notice appear in all copies. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD 12 | TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN 13 | NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 | DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 15 | IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 16 | CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 | 18 | ------------------------------------------------------------------------------ 19 | 20 | NOTE! This permissive ISC license applies ONLY to files within the juce_core module! 21 | All other JUCE modules are covered by a dual GPL/commercial license, so if you are 22 | using any other modules, be sure to check that you also comply with their license. 23 | 24 | For more details, visit www.juce.com 25 | 26 | ============================================================================== 27 | */ 28 | 29 | FileFilter::FileFilter (const String& filterDescription) 30 | : description (filterDescription) 31 | { 32 | } 33 | 34 | FileFilter::~FileFilter() 35 | { 36 | } 37 | 38 | const String& FileFilter::getDescription() const noexcept 39 | { 40 | return description; 41 | } 42 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_core/juce_core.mm: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the juce_core module of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission to use, copy, modify, and/or distribute this software for any purpose with 8 | or without fee is hereby granted, provided that the above copyright notice and this 9 | permission notice appear in all copies. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD 12 | TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN 13 | NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 | DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 15 | IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 16 | CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 | 18 | ------------------------------------------------------------------------------ 19 | 20 | NOTE! This permissive ISC license applies ONLY to files within the juce_core module! 21 | All other JUCE modules are covered by a dual GPL/commercial license, so if you are 22 | using any other modules, be sure to check that you also comply with their license. 23 | 24 | For more details, visit www.juce.com 25 | 26 | ============================================================================== 27 | */ 28 | 29 | #include "juce_core.cpp" 30 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_core/misc/juce_RuntimePermissions.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the juce_core module of the JUCE library. 5 | Copyright (c) 2016 - ROLI Ltd. 6 | 7 | Permission to use, copy, modify, and/or distribute this software for any purpose with 8 | or without fee is hereby granted, provided that the above copyright notice and this 9 | permission notice appear in all copies. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD 12 | TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN 13 | NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 | DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 15 | IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 16 | CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 | 18 | ------------------------------------------------------------------------------ 19 | 20 | NOTE! This permissive ISC license applies ONLY to files within the juce_core module! 21 | All other JUCE modules are covered by a dual GPL/commercial license, so if you are 22 | using any other modules, be sure to check that you also comply with their license. 23 | 24 | For more details, visit www.juce.com 25 | 26 | ============================================================================== 27 | */ 28 | 29 | #if ! JUCE_ANDROID // We currently don't request runtime permissions on any other platform 30 | // than Android, so this file contains a dummy implementation for those. 31 | // This may change in the future. 32 | 33 | void RuntimePermissions::request (PermissionID /*permission*/, Callback callback) 34 | { 35 | callback (true); 36 | } 37 | 38 | bool RuntimePermissions::isRequired (PermissionID /*permission*/) 39 | { 40 | return false; 41 | } 42 | 43 | bool RuntimePermissions::isGranted (PermissionID /*permission*/) 44 | { 45 | return true; 46 | } 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_core/native/java/AndroidMidiFallback.java: -------------------------------------------------------------------------------- 1 | //============================================================================== 2 | public class BluetoothManager 3 | { 4 | BluetoothManager() 5 | { 6 | } 7 | 8 | public String[] getMidiBluetoothAddresses() 9 | { 10 | String[] bluetoothAddresses = new String[0]; 11 | return bluetoothAddresses; 12 | } 13 | 14 | public String getHumanReadableStringForBluetoothAddress (String address) 15 | { 16 | return address; 17 | } 18 | 19 | public boolean isBluetoothDevicePaired (String address) 20 | { 21 | return false; 22 | } 23 | 24 | public boolean pairBluetoothMidiDevice(String address) 25 | { 26 | return false; 27 | } 28 | 29 | public void unpairBluetoothMidiDevice (String address) 30 | { 31 | } 32 | } 33 | 34 | //============================================================================== 35 | public class MidiDeviceManager 36 | { 37 | public MidiDeviceManager() 38 | { 39 | } 40 | 41 | public String[] getJuceAndroidMidiInputDevices() 42 | { 43 | return new String[0]; 44 | } 45 | 46 | public String[] getJuceAndroidMidiOutputDevices() 47 | { 48 | return new String[0]; 49 | } 50 | 51 | public JuceMidiPort openMidiInputPortWithJuceIndex (int index, long host) 52 | { 53 | return null; 54 | } 55 | 56 | public JuceMidiPort openMidiOutputPortWithJuceIndex (int index) 57 | { 58 | return null; 59 | } 60 | 61 | public String getInputPortNameForJuceIndex (int index) 62 | { 63 | return ""; 64 | } 65 | 66 | public String getOutputPortNameForJuceIndex (int index) 67 | { 68 | return ""; 69 | } 70 | } 71 | 72 | 73 | public MidiDeviceManager getAndroidMidiDeviceManager() 74 | { 75 | return null; 76 | } 77 | 78 | public BluetoothManager getAndroidBluetoothManager() 79 | { 80 | return null; 81 | } 82 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_core/native/java/AndroidRuntimePermissions.java: -------------------------------------------------------------------------------- 1 | @Override 2 | public void onRequestPermissionsResult (int permissionID, String permissions[], int[] grantResults) 3 | { 4 | boolean permissionsGranted = (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED); 5 | 6 | if (! permissionsGranted) 7 | Log.d ("JUCE", "onRequestPermissionsResult: runtime permission was DENIED: " + getAndroidPermissionName (permissionID)); 8 | 9 | Long ptrToCallback = permissionCallbackPtrMap.get (permissionID); 10 | permissionCallbackPtrMap.remove (permissionID); 11 | androidRuntimePermissionsCallback (permissionsGranted, ptrToCallback); 12 | } 13 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_core/native/juce_android_Misc.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the juce_core module of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission to use, copy, modify, and/or distribute this software for any purpose with 8 | or without fee is hereby granted, provided that the above copyright notice and this 9 | permission notice appear in all copies. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD 12 | TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN 13 | NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 | DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 15 | IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 16 | CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 | 18 | ------------------------------------------------------------------------------ 19 | 20 | NOTE! This permissive ISC license applies ONLY to files within the juce_core module! 21 | All other JUCE modules are covered by a dual GPL/commercial license, so if you are 22 | using any other modules, be sure to check that you also comply with their license. 23 | 24 | For more details, visit www.juce.com 25 | 26 | ============================================================================== 27 | */ 28 | 29 | void Logger::outputDebugString (const String& text) 30 | { 31 | __android_log_print (ANDROID_LOG_INFO, "JUCE", "%s", text.toUTF8().getAddress()); 32 | } 33 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_core/native/juce_mac_ClangBugWorkaround.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the juce_core module of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission to use, copy, modify, and/or distribute this software for any purpose with 8 | or without fee is hereby granted, provided that the above copyright notice and this 9 | permission notice appear in all copies. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD 12 | TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN 13 | NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 | DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 15 | IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 16 | CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 | 18 | ------------------------------------------------------------------------------ 19 | 20 | NOTE! This permissive ISC license applies ONLY to files within the juce_core module! 21 | All other JUCE modules are covered by a dual GPL/commercial license, so if you are 22 | using any other modules, be sure to check that you also comply with their license. 23 | 24 | For more details, visit www.juce.com 25 | 26 | ============================================================================== 27 | */ 28 | 29 | 30 | // This hack is a workaround for a bug (?) in Apple's 10.11 SDK headers 31 | // which cause some configurations of Clang to throw out a spurious error.. 32 | #if JUCE_PROJUCER_LIVE_BUILD && (defined (__APPLE_CPP__) || defined(__APPLE_CC__)) 33 | #include 34 | #undef CF_OPTIONS 35 | #define CF_OPTIONS(_type, _name) _type _name; enum 36 | #endif 37 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_core/network/juce_NamedPipe.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the juce_core module of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission to use, copy, modify, and/or distribute this software for any purpose with 8 | or without fee is hereby granted, provided that the above copyright notice and this 9 | permission notice appear in all copies. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD 12 | TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN 13 | NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 | DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 15 | IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 16 | CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 | 18 | ------------------------------------------------------------------------------ 19 | 20 | NOTE! This permissive ISC license applies ONLY to files within the juce_core module! 21 | All other JUCE modules are covered by a dual GPL/commercial license, so if you are 22 | using any other modules, be sure to check that you also comply with their license. 23 | 24 | For more details, visit www.juce.com 25 | 26 | ============================================================================== 27 | */ 28 | 29 | NamedPipe::NamedPipe() 30 | { 31 | } 32 | 33 | NamedPipe::~NamedPipe() 34 | { 35 | close(); 36 | } 37 | 38 | bool NamedPipe::openExisting (const String& pipeName) 39 | { 40 | close(); 41 | 42 | ScopedWriteLock sl (lock); 43 | currentPipeName = pipeName; 44 | return openInternal (pipeName, false, false); 45 | } 46 | 47 | bool NamedPipe::isOpen() const 48 | { 49 | return pimpl != nullptr; 50 | } 51 | 52 | bool NamedPipe::createNewPipe (const String& pipeName, bool mustNotExist) 53 | { 54 | close(); 55 | 56 | ScopedWriteLock sl (lock); 57 | currentPipeName = pipeName; 58 | return openInternal (pipeName, true, mustNotExist); 59 | } 60 | 61 | String NamedPipe::getName() const 62 | { 63 | return currentPipeName; 64 | } 65 | 66 | // other methods for this class are implemented in the platform-specific files 67 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_core/streams/juce_FileInputSource.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the juce_core module of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission to use, copy, modify, and/or distribute this software for any purpose with 8 | or without fee is hereby granted, provided that the above copyright notice and this 9 | permission notice appear in all copies. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD 12 | TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN 13 | NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 | DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 15 | IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 16 | CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 | 18 | ------------------------------------------------------------------------------ 19 | 20 | NOTE! This permissive ISC license applies ONLY to files within the juce_core module! 21 | All other JUCE modules are covered by a dual GPL/commercial license, so if you are 22 | using any other modules, be sure to check that you also comply with their license. 23 | 24 | For more details, visit www.juce.com 25 | 26 | ============================================================================== 27 | */ 28 | 29 | FileInputSource::FileInputSource (const File& f, bool useFileTimeInHash) 30 | : file (f), useFileTimeInHashGeneration (useFileTimeInHash) 31 | { 32 | } 33 | 34 | FileInputSource::~FileInputSource() 35 | { 36 | } 37 | 38 | InputStream* FileInputSource::createInputStream() 39 | { 40 | return file.createInputStream(); 41 | } 42 | 43 | InputStream* FileInputSource::createInputStreamFor (const String& relatedItemPath) 44 | { 45 | return file.getSiblingFile (relatedItemPath).createInputStream(); 46 | } 47 | 48 | int64 FileInputSource::hashCode() const 49 | { 50 | int64 h = file.hashCode(); 51 | 52 | if (useFileTimeInHashGeneration) 53 | h ^= file.getLastModificationTime().toMilliseconds(); 54 | 55 | return h; 56 | } 57 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_core/threads/juce_HighResolutionTimer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the juce_core module of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission to use, copy, modify, and/or distribute this software for any purpose with 8 | or without fee is hereby granted, provided that the above copyright notice and this 9 | permission notice appear in all copies. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD 12 | TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN 13 | NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 | DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 15 | IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 16 | CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 | 18 | ------------------------------------------------------------------------------ 19 | 20 | NOTE! This permissive ISC license applies ONLY to files within the juce_core module! 21 | All other JUCE modules are covered by a dual GPL/commercial license, so if you are 22 | using any other modules, be sure to check that you also comply with their license. 23 | 24 | For more details, visit www.juce.com 25 | 26 | ============================================================================== 27 | */ 28 | 29 | HighResolutionTimer::HighResolutionTimer() { pimpl = new Pimpl (*this); } 30 | HighResolutionTimer::~HighResolutionTimer() { stopTimer(); } 31 | 32 | void HighResolutionTimer::startTimer (int periodMs) { pimpl->start (jmax (1, periodMs)); } 33 | void HighResolutionTimer::stopTimer() { pimpl->stop(); } 34 | 35 | bool HighResolutionTimer::isTimerRunning() const noexcept { return pimpl->periodMs != 0; } 36 | int HighResolutionTimer::getTimerInterval() const noexcept { return pimpl->periodMs; } 37 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_core/zip/zlib/inffast.h: -------------------------------------------------------------------------------- 1 | /* inffast.h -- header to use inffast.c 2 | * Copyright (C) 1995-2003 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* WARNING: this file should *not* be used by applications. It is 7 | part of the implementation of the compression library and is 8 | subject to change. Applications should only use zlib.h. 9 | */ 10 | 11 | void inflate_fast OF((z_streamp strm, unsigned start)); 12 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_data_structures/juce_data_structures.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #ifdef JUCE_DATA_STRUCTURES_H_INCLUDED 26 | /* When you add this cpp file to your project, you mustn't include it in a file where you've 27 | already included any other headers - just put it inside a file on its own, possibly with your config 28 | flags preceding it, but don't include anything else. That also includes avoiding any automatic prefix 29 | header files that the compiler may be using. 30 | */ 31 | #error "Incorrect use of JUCE cpp file" 32 | #endif 33 | 34 | #include "juce_data_structures.h" 35 | 36 | namespace juce 37 | { 38 | 39 | #include "values/juce_Value.cpp" 40 | #include "values/juce_ValueTree.cpp" 41 | #include "values/juce_ValueTreeSynchroniser.cpp" 42 | #include "values/juce_CachedValue.cpp" 43 | #include "undomanager/juce_UndoManager.cpp" 44 | #include "app_properties/juce_ApplicationProperties.cpp" 45 | #include "app_properties/juce_PropertiesFile.cpp" 46 | 47 | } 48 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_data_structures/juce_data_structures.mm: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "juce_data_structures.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_events/broadcasters/juce_ActionListener.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #ifndef JUCE_ACTIONLISTENER_H_INCLUDED 26 | #define JUCE_ACTIONLISTENER_H_INCLUDED 27 | 28 | 29 | //============================================================================== 30 | /** 31 | Interface class for delivery of events that are sent by an ActionBroadcaster. 32 | 33 | @see ActionBroadcaster, ChangeListener 34 | */ 35 | class JUCE_API ActionListener 36 | { 37 | public: 38 | /** Destructor. */ 39 | virtual ~ActionListener() {} 40 | 41 | /** Overridden by your subclass to receive the callback. 42 | 43 | @param message the string that was specified when the event was triggered 44 | by a call to ActionBroadcaster::sendActionMessage() 45 | */ 46 | virtual void actionListenerCallback (const String& message) = 0; 47 | }; 48 | 49 | 50 | #endif // JUCE_ACTIONLISTENER_H_INCLUDED 51 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_events/juce_events.mm: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "juce_events.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_events/messages/juce_MessageListener.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | Message::Message() noexcept {} 26 | Message::~Message() {} 27 | 28 | void Message::messageCallback() 29 | { 30 | if (MessageListener* const r = recipient) 31 | r->handleMessage (*this); 32 | } 33 | 34 | MessageListener::MessageListener() noexcept 35 | { 36 | // Are you trying to create a messagelistener before or after juce has been intialised?? 37 | jassert (MessageManager::getInstanceWithoutCreating() != nullptr); 38 | } 39 | 40 | MessageListener::~MessageListener() 41 | { 42 | masterReference.clear(); 43 | } 44 | 45 | void MessageListener::postMessage (Message* const message) const 46 | { 47 | message->recipient = const_cast (this); 48 | message->post(); 49 | } 50 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #ifndef JUCE_MOUNTEDVOLUMELISTCHANGEDETECTOR_H_INCLUDED 26 | #define JUCE_MOUNTEDVOLUMELISTCHANGEDETECTOR_H_INCLUDED 27 | 28 | #if JUCE_MAC || JUCE_WINDOWS || defined (DOXYGEN) 29 | 30 | //============================================================================== 31 | /** 32 | An instance of this class will provide callbacks when drives are 33 | mounted or unmounted on the system. 34 | 35 | Just inherit from this class and implement the pure virtual method 36 | to get the callbacks, there's no need to do anything else. 37 | 38 | @see File::findFileSystemRoots() 39 | */ 40 | class JUCE_API MountedVolumeListChangeDetector 41 | { 42 | public: 43 | MountedVolumeListChangeDetector(); 44 | virtual ~MountedVolumeListChangeDetector(); 45 | 46 | /** This method is called when a volume is mounted or unmounted. */ 47 | virtual void mountedVolumeListChanged() = 0; 48 | 49 | private: 50 | JUCE_PUBLIC_IN_DLL_BUILD (struct Pimpl) 51 | friend struct ContainerDeletePolicy; 52 | ScopedPointer pimpl; 53 | 54 | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MountedVolumeListChangeDetector) 55 | }; 56 | 57 | #endif 58 | 59 | #endif // JUCE_MOUNTEDVOLUMELISTCHANGEDETECTOR_H_INCLUDED 60 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_events/messages/juce_NotificationType.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #ifndef JUCE_NOTIFICATIONTYPE_H_INCLUDED 26 | #define JUCE_NOTIFICATIONTYPE_H_INCLUDED 27 | 28 | //============================================================================== 29 | /** 30 | These enums are used in various classes to indicate whether a notification 31 | event should be sent out. 32 | */ 33 | enum NotificationType 34 | { 35 | dontSendNotification = 0, /**< No notification message should be sent. */ 36 | sendNotification = 1, /**< Requests a notification message, either synchronous or not. */ 37 | sendNotificationSync, /**< Requests a synchronous notification. */ 38 | sendNotificationAsync, /**< Requests an asynchronous notification. */ 39 | }; 40 | 41 | 42 | #endif // JUCE_NOTIFICATIONTYPE_H_INCLUDED 43 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_events/native/juce_ScopedXLock.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #ifndef JUCE_SCOPEDXLOCK_H_INCLUDED 26 | #define JUCE_SCOPEDXLOCK_H_INCLUDED 27 | 28 | 29 | //============================================================================== 30 | #if JUCE_LINUX || DOXYGEN 31 | 32 | /** A handy class that uses XLockDisplay and XUnlockDisplay to lock the X server 33 | using RAII (Only available in Linux!). 34 | */ 35 | class ScopedXLock 36 | { 37 | public: 38 | /** Creating a ScopedXLock object locks the X display. 39 | This uses XLockDisplay() to grab the display that Juce is using. 40 | */ 41 | ScopedXLock(); 42 | 43 | /** Deleting a ScopedXLock object unlocks the X display. 44 | This calls XUnlockDisplay() to release the lock. 45 | */ 46 | ~ScopedXLock(); 47 | }; 48 | 49 | #endif 50 | #endif // JUCE_SCOPEDXLOCK_H_INCLUDED 51 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | LowLevelGraphicsSoftwareRenderer::LowLevelGraphicsSoftwareRenderer (const Image& image) 26 | : RenderingHelpers::StackBasedLowLevelGraphicsContext 27 | (new RenderingHelpers::SoftwareRendererSavedState (image, image.getBounds())) 28 | { 29 | } 30 | 31 | LowLevelGraphicsSoftwareRenderer::LowLevelGraphicsSoftwareRenderer (const Image& image, Point origin, 32 | const RectangleList& initialClip) 33 | : RenderingHelpers::StackBasedLowLevelGraphicsContext 34 | (new RenderingHelpers::SoftwareRendererSavedState (image, initialClip, origin)) 35 | { 36 | } 37 | 38 | LowLevelGraphicsSoftwareRenderer::~LowLevelGraphicsSoftwareRenderer() {} 39 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_graphics/effects/juce_GlowEffect.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | GlowEffect::GlowEffect() 26 | : radius (2.0f), 27 | colour (Colours::white) 28 | { 29 | } 30 | 31 | GlowEffect::~GlowEffect() 32 | { 33 | } 34 | 35 | void GlowEffect::setGlowProperties (const float newRadius, 36 | Colour newColour) 37 | { 38 | radius = newRadius; 39 | colour = newColour; 40 | } 41 | 42 | void GlowEffect::applyEffect (Image& image, Graphics& g, float scaleFactor, float alpha) 43 | { 44 | Image temp (image.getFormat(), image.getWidth(), image.getHeight(), true); 45 | 46 | ImageConvolutionKernel blurKernel (roundToInt (radius * scaleFactor * 2.0f)); 47 | 48 | blurKernel.createGaussianBlur (radius); 49 | blurKernel.rescaleAllValues (radius); 50 | 51 | blurKernel.applyToImage (temp, image, image.getBounds()); 52 | 53 | g.setColour (colour.withMultipliedAlpha (alpha)); 54 | g.drawImageAt (temp, 0, 0, true); 55 | 56 | g.setOpacity (alpha); 57 | g.drawImageAt (image, 0, 0, false); 58 | } 59 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_graphics/image_formats/jpglib/changes to libjpeg for JUCE.txt: -------------------------------------------------------------------------------- 1 | 2 | I've included libjpeg in the JUCE tree because loading jpegs is a pretty useful thing to 3 | be able to do, but I've left out as many files as possible to keep it lean-and-mean. 4 | 5 | If you want to get hold of the full version of libjpeg, it's freely available at: 6 | 7 | http://www.ijg.org/ 8 | 9 | 10 | Please note that part of the IJG's license for libjpeg states that: 11 | 12 | "If you use it in a program, you must acknowledge somewhere in 13 | your documentation that you've used the IJG code". 14 | 15 | ..so if you release a JUCE program that reads JPEGs, you should probably give them a mention. 16 | 17 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_graphics/image_formats/jpglib/jchuff.h: -------------------------------------------------------------------------------- 1 | /* 2 | * jchuff.h 3 | * 4 | * Copyright (C) 1991-1997, Thomas G. Lane. 5 | * This file is part of the Independent JPEG Group's software. 6 | * For conditions of distribution and use, see the accompanying README file. 7 | * 8 | * This file contains declarations for Huffman entropy encoding routines 9 | * that are shared between the sequential encoder (jchuff.c) and the 10 | * progressive encoder (jcphuff.c). No other modules need to see these. 11 | */ 12 | 13 | /* The legal range of a DCT coefficient is 14 | * -1024 .. +1023 for 8-bit data; 15 | * -16384 .. +16383 for 12-bit data. 16 | * Hence the magnitude should always fit in 10 or 14 bits respectively. 17 | */ 18 | 19 | #ifndef _jchuff_h_ 20 | #define _jchuff_h_ 21 | 22 | #if BITS_IN_JSAMPLE == 8 23 | #define MAX_COEF_BITS 10 24 | #else 25 | #define MAX_COEF_BITS 14 26 | #endif 27 | 28 | /* Derived data constructed for each Huffman table */ 29 | 30 | typedef struct { 31 | unsigned int ehufco[256]; /* code for each symbol */ 32 | char ehufsi[256]; /* length of code for each symbol */ 33 | /* If no code has been allocated for a symbol S, ehufsi[S] contains 0 */ 34 | } c_derived_tbl; 35 | 36 | /* Short forms of external names for systems with brain-damaged linkers. */ 37 | 38 | #ifdef NEED_SHORT_EXTERNAL_NAMES 39 | #define jpeg_make_c_derived_tbl jMkCDerived 40 | #define jpeg_gen_optimal_table jGenOptTbl 41 | #endif /* NEED_SHORT_EXTERNAL_NAMES */ 42 | 43 | /* Expand a Huffman table definition into the derived format */ 44 | EXTERN(void) jpeg_make_c_derived_tbl 45 | JPP((j_compress_ptr cinfo, boolean isDC, int tblno, 46 | c_derived_tbl ** pdtbl)); 47 | 48 | /* Generate an optimal table definition given the specified counts */ 49 | EXTERN(void) jpeg_gen_optimal_table 50 | JPP((j_compress_ptr cinfo, JHUFF_TBL * htbl, long freq[])); 51 | 52 | #endif 53 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_graphics/image_formats/jpglib/jconfig.h: -------------------------------------------------------------------------------- 1 | /* jconfig.vc --- jconfig.h for Microsoft Visual C++ on Windows 95 or NT. */ 2 | /* see jconfig.doc for explanations */ 3 | 4 | // disable all the warnings under MSVC 5 | #ifdef _MSC_VER 6 | #pragma warning (disable: 4996 4267 4100 4127 4702 4244) 7 | #endif 8 | 9 | #ifdef __BORLANDC__ 10 | #pragma warn -8057 11 | #pragma warn -8019 12 | #pragma warn -8004 13 | #pragma warn -8008 14 | #endif 15 | 16 | #define HAVE_PROTOTYPES 17 | #define HAVE_UNSIGNED_CHAR 18 | #define HAVE_UNSIGNED_SHORT 19 | /* #define void char */ 20 | /* #define const */ 21 | #undef CHAR_IS_UNSIGNED 22 | #define HAVE_STDDEF_H 23 | #ifndef HAVE_STDLIB_H 24 | #define HAVE_STDLIB_H 25 | #endif 26 | #undef NEED_BSD_STRINGS 27 | #undef NEED_SYS_TYPES_H 28 | #undef NEED_FAR_POINTERS /* we presume a 32-bit flat memory model */ 29 | #undef NEED_SHORT_EXTERNAL_NAMES 30 | #undef INCOMPLETE_TYPES_BROKEN 31 | 32 | /* Define "boolean" as unsigned char, not int, per Windows custom */ 33 | #ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ 34 | typedef unsigned char boolean; 35 | #endif 36 | #define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ 37 | 38 | 39 | #ifdef JPEG_INTERNALS 40 | 41 | #undef RIGHT_SHIFT_IS_UNSIGNED 42 | 43 | #endif /* JPEG_INTERNALS */ 44 | 45 | #ifdef JPEG_CJPEG_DJPEG 46 | 47 | #define BMP_SUPPORTED /* BMP image file format */ 48 | #define GIF_SUPPORTED /* GIF image file format */ 49 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 50 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 51 | #define TARGA_SUPPORTED /* Targa image file format */ 52 | 53 | #define TWO_FILE_COMMANDLINE /* optional */ 54 | #define USE_SETMODE /* Microsoft has setmode() */ 55 | #undef NEED_SIGNAL_CATCHER 56 | #undef DONT_USE_B_MODE 57 | #undef PROGRESS_REPORT /* optional */ 58 | 59 | #endif /* JPEG_CJPEG_DJPEG */ 60 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_graphics/image_formats/jpglib/jversion.h: -------------------------------------------------------------------------------- 1 | /* 2 | * jversion.h 3 | * 4 | * Copyright (C) 1991-1998, Thomas G. Lane. 5 | * This file is part of the Independent JPEG Group's software. 6 | * For conditions of distribution and use, see the accompanying README file. 7 | * 8 | * This file contains software version identification. 9 | */ 10 | 11 | 12 | #define JVERSION "6b 27-Mar-1998" 13 | 14 | #define JCOPYRIGHT "Copyright (C) 1998, Thomas G. Lane" 15 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_graphics/image_formats/pnglib/libpng_readme.txt: -------------------------------------------------------------------------------- 1 | 2 | These files are from the libpng library - http://www.libpng.org/ 3 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_graphics/juce_graphics.mm: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "juce_graphics.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_graphics/native/juce_android_GraphicsContext.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | namespace GraphicsHelpers 26 | { 27 | jobject createPaint (Graphics::ResamplingQuality quality) 28 | { 29 | jint constructorFlags = 1 /*ANTI_ALIAS_FLAG*/ 30 | | 4 /*DITHER_FLAG*/ 31 | | 128 /*SUBPIXEL_TEXT_FLAG*/; 32 | 33 | if (quality > Graphics::lowResamplingQuality) 34 | constructorFlags |= 2; /*FILTER_BITMAP_FLAG*/ 35 | 36 | return getEnv()->NewObject (Paint, Paint.constructor, constructorFlags); 37 | } 38 | 39 | const jobject createMatrix (JNIEnv* env, const AffineTransform& t) 40 | { 41 | jobject m = env->NewObject (Matrix, Matrix.constructor); 42 | 43 | jfloat values[9] = { t.mat00, t.mat01, t.mat02, 44 | t.mat10, t.mat11, t.mat12, 45 | 0.0f, 0.0f, 1.0f }; 46 | 47 | jfloatArray javaArray = env->NewFloatArray (9); 48 | env->SetFloatArrayRegion (javaArray, 0, 9, values); 49 | 50 | env->CallVoidMethod (m, Matrix.setValues, javaArray); 51 | env->DeleteLocalRef (javaArray); 52 | 53 | return m; 54 | } 55 | } 56 | 57 | ImagePixelData::Ptr NativeImageType::create (Image::PixelFormat format, int width, int height, bool clearImage) const 58 | { 59 | return SoftwareImageType().create (format, width, height, clearImage); 60 | } 61 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #ifndef JUCE_MAC_COREGRAPHICSHELPERS_H_INCLUDED 26 | #define JUCE_MAC_COREGRAPHICSHELPERS_H_INCLUDED 27 | 28 | 29 | //============================================================================== 30 | namespace 31 | { 32 | template 33 | Rectangle convertToRectInt (RectType r) noexcept 34 | { 35 | return Rectangle ((int) r.origin.x, (int) r.origin.y, (int) r.size.width, (int) r.size.height); 36 | } 37 | 38 | template 39 | Rectangle convertToRectFloat (RectType r) noexcept 40 | { 41 | return Rectangle (r.origin.x, r.origin.y, r.size.width, r.size.height); 42 | } 43 | 44 | template 45 | CGRect convertToCGRect (RectType r) noexcept 46 | { 47 | return CGRectMake ((CGFloat) r.getX(), (CGFloat) r.getY(), (CGFloat) r.getWidth(), (CGFloat) r.getHeight()); 48 | } 49 | 50 | template 51 | CGPoint convertToCGPoint (PointType p) noexcept 52 | { 53 | return CGPointMake ((CGFloat) p.x, (CGFloat) p.y); 54 | } 55 | } 56 | 57 | extern CGImageRef juce_createCoreGraphicsImage (const Image&, CGColorSpaceRef, bool mustOutliveSource); 58 | extern CGContextRef juce_getImageContext (const Image&); 59 | 60 | #endif // JUCE_MAC_COREGRAPHICSHELPERS_H_INCLUDED 61 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/buttons/juce_ArrowButton.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | ArrowButton::ArrowButton (const String& name, float arrowDirectionInRadians, Colour arrowColour) 26 | : Button (name), colour (arrowColour) 27 | { 28 | path.addTriangle (0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.5f); 29 | path.applyTransform (AffineTransform::rotation (float_Pi * 2.0f * arrowDirectionInRadians, 0.5f, 0.5f)); 30 | } 31 | 32 | ArrowButton::~ArrowButton() {} 33 | 34 | void ArrowButton::paintButton (Graphics& g, bool /*isMouseOverButton*/, bool isButtonDown) 35 | { 36 | Path p (path); 37 | 38 | const float offset = isButtonDown ? 1.0f : 0.0f; 39 | p.applyTransform (path.getTransformToScaleToFit (offset, offset, getWidth() - 3.0f, getHeight() - 3.0f, false)); 40 | 41 | DropShadow (Colours::black.withAlpha (0.3f), isButtonDown ? 2 : 4, Point()).drawForPath (g, p); 42 | 43 | g.setColour (colour); 44 | g.fillPath (p); 45 | } 46 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/buttons/juce_ArrowButton.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #ifndef JUCE_ARROWBUTTON_H_INCLUDED 26 | #define JUCE_ARROWBUTTON_H_INCLUDED 27 | 28 | 29 | //============================================================================== 30 | /** 31 | A button with an arrow in it. 32 | 33 | @see Button 34 | */ 35 | class JUCE_API ArrowButton : public Button 36 | { 37 | public: 38 | //============================================================================== 39 | /** Creates an ArrowButton. 40 | 41 | @param buttonName the name to give the button 42 | @param arrowDirection the direction the arrow should point in, where 0.0 is 43 | pointing right, 0.25 is down, 0.5 is left, 0.75 is up 44 | @param arrowColour the colour to use for the arrow 45 | */ 46 | ArrowButton (const String& buttonName, 47 | float arrowDirection, 48 | Colour arrowColour); 49 | 50 | /** Destructor. */ 51 | ~ArrowButton(); 52 | 53 | /** @internal */ 54 | void paintButton (Graphics&, bool isMouseOverButton, bool isButtonDown) override; 55 | 56 | private: 57 | Colour colour; 58 | Path path; 59 | 60 | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ArrowButton) 61 | }; 62 | 63 | 64 | #endif // JUCE_ARROWBUTTON_H_INCLUDED 65 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/buttons/juce_TextButton.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | TextButton::TextButton() : Button (String()) 26 | { 27 | } 28 | 29 | TextButton::TextButton (const String& name) : Button (name) 30 | { 31 | } 32 | 33 | TextButton::TextButton (const String& name, const String& toolTip) : Button (name) 34 | { 35 | setTooltip (toolTip); 36 | } 37 | 38 | TextButton::~TextButton() 39 | { 40 | } 41 | 42 | void TextButton::paintButton (Graphics& g, bool isMouseOverButton, bool isButtonDown) 43 | { 44 | LookAndFeel& lf = getLookAndFeel(); 45 | 46 | lf.drawButtonBackground (g, *this, 47 | findColour (getToggleState() ? buttonOnColourId : buttonColourId), 48 | isMouseOverButton, isButtonDown); 49 | 50 | lf.drawButtonText (g, *this, isMouseOverButton, isButtonDown); 51 | } 52 | 53 | void TextButton::colourChanged() 54 | { 55 | repaint(); 56 | } 57 | 58 | void TextButton::changeWidthToFitText() 59 | { 60 | changeWidthToFitText (getHeight()); 61 | } 62 | 63 | void TextButton::changeWidthToFitText (const int newHeight) 64 | { 65 | setSize (getBestWidthForHeight (newHeight), newHeight); 66 | } 67 | 68 | int TextButton::getBestWidthForHeight (int buttonHeight) 69 | { 70 | return getLookAndFeel().getTextButtonWidthToFitText (*this, buttonHeight); 71 | } 72 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/buttons/juce_ToggleButton.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | ToggleButton::ToggleButton() 26 | : Button (String::empty) 27 | { 28 | setClickingTogglesState (true); 29 | } 30 | 31 | ToggleButton::ToggleButton (const String& buttonText) 32 | : Button (buttonText) 33 | { 34 | setClickingTogglesState (true); 35 | } 36 | 37 | ToggleButton::~ToggleButton() 38 | { 39 | } 40 | 41 | void ToggleButton::paintButton (Graphics& g, bool isMouseOverButton, bool isButtonDown) 42 | { 43 | getLookAndFeel().drawToggleButton (g, *this, isMouseOverButton, isButtonDown); 44 | } 45 | 46 | void ToggleButton::changeWidthToFitText() 47 | { 48 | getLookAndFeel().changeToggleButtonWidthToFitText (*this); 49 | } 50 | 51 | void ToggleButton::colourChanged() 52 | { 53 | repaint(); 54 | } 55 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | ApplicationCommandInfo::ApplicationCommandInfo (const CommandID cid) noexcept 26 | : commandID (cid), flags (0) 27 | { 28 | } 29 | 30 | void ApplicationCommandInfo::setInfo (const String& shortName_, 31 | const String& description_, 32 | const String& categoryName_, 33 | const int flags_) noexcept 34 | { 35 | shortName = shortName_; 36 | description = description_; 37 | categoryName = categoryName_; 38 | flags = flags_; 39 | } 40 | 41 | void ApplicationCommandInfo::setActive (const bool b) noexcept 42 | { 43 | if (b) 44 | flags &= ~isDisabled; 45 | else 46 | flags |= isDisabled; 47 | } 48 | 49 | void ApplicationCommandInfo::setTicked (const bool b) noexcept 50 | { 51 | if (b) 52 | flags |= isTicked; 53 | else 54 | flags &= ~isTicked; 55 | } 56 | 57 | void ApplicationCommandInfo::addDefaultKeypress (const int keyCode, ModifierKeys modifiers) noexcept 58 | { 59 | defaultKeypresses.add (KeyPress (keyCode, modifiers, 0)); 60 | } 61 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/components/juce_ComponentListener.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | void ComponentListener::componentMovedOrResized (Component&, bool, bool) {} 26 | void ComponentListener::componentBroughtToFront (Component&) {} 27 | void ComponentListener::componentVisibilityChanged (Component&) {} 28 | void ComponentListener::componentChildrenChanged (Component&) {} 29 | void ComponentListener::componentParentHierarchyChanged (Component&) {} 30 | void ComponentListener::componentNameChanged (Component&) {} 31 | void ComponentListener::componentBeingDeleted (Component&) {} 32 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #ifndef JUCE_FILEBROWSERLISTENER_H_INCLUDED 26 | #define JUCE_FILEBROWSERLISTENER_H_INCLUDED 27 | 28 | 29 | //============================================================================== 30 | /** 31 | A listener for user selection events in a file browser. 32 | 33 | This is used by a FileBrowserComponent or FileListComponent. 34 | */ 35 | class JUCE_API FileBrowserListener 36 | { 37 | public: 38 | //============================================================================== 39 | /** Destructor. */ 40 | virtual ~FileBrowserListener(); 41 | 42 | //============================================================================== 43 | /** Callback when the user selects a different file in the browser. */ 44 | virtual void selectionChanged() = 0; 45 | 46 | /** Callback when the user clicks on a file in the browser. */ 47 | virtual void fileClicked (const File& file, const MouseEvent& e) = 0; 48 | 49 | /** Callback when the user double-clicks on a file in the browser. */ 50 | virtual void fileDoubleClicked (const File& file) = 0; 51 | 52 | /** Callback when the browser's root folder changes. */ 53 | virtual void browserRootChanged (const File& newRoot) = 0; 54 | }; 55 | 56 | 57 | #endif // JUCE_FILEBROWSERLISTENER_H_INCLUDED 58 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.mm: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "juce_gui_basics.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | CaretComponent::CaretComponent (Component* const keyFocusOwner) 26 | : owner (keyFocusOwner) 27 | { 28 | setPaintingIsUnclipped (true); 29 | setInterceptsMouseClicks (false, false); 30 | } 31 | 32 | CaretComponent::~CaretComponent() 33 | { 34 | } 35 | 36 | void CaretComponent::paint (Graphics& g) 37 | { 38 | g.setColour (findColour (caretColourId, true)); 39 | g.fillRect (getLocalBounds()); 40 | } 41 | 42 | void CaretComponent::timerCallback() 43 | { 44 | setVisible (shouldBeShown() && ! isVisible()); 45 | } 46 | 47 | void CaretComponent::setCaretPosition (const Rectangle& characterArea) 48 | { 49 | startTimer (380); 50 | setVisible (shouldBeShown()); 51 | setBounds (characterArea.withWidth (2)); 52 | } 53 | 54 | bool CaretComponent::shouldBeShown() const 55 | { 56 | return owner == nullptr || (owner->hasKeyboardFocus (false) 57 | && ! owner->isCurrentlyBlockedByAnotherModalComponent()); 58 | } 59 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/keyboard/juce_KeyListener.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | bool KeyListener::keyStateChanged (const bool, Component*) 26 | { 27 | return false; 28 | } 29 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | ModifierKeys::ModifierKeys() noexcept : flags (0) {} 26 | ModifierKeys::ModifierKeys (int rawFlags) noexcept : flags (rawFlags) {} 27 | ModifierKeys::ModifierKeys (const ModifierKeys& other) noexcept : flags (other.flags) {} 28 | 29 | ModifierKeys& ModifierKeys::operator= (const ModifierKeys other) noexcept 30 | { 31 | flags = other.flags; 32 | return *this; 33 | } 34 | 35 | ModifierKeys ModifierKeys::currentModifiers; 36 | 37 | ModifierKeys ModifierKeys::getCurrentModifiers() noexcept 38 | { 39 | return currentModifiers; 40 | } 41 | 42 | int ModifierKeys::getNumMouseButtonsDown() const noexcept 43 | { 44 | int num = 0; 45 | 46 | if (isLeftButtonDown()) ++num; 47 | if (isRightButtonDown()) ++num; 48 | if (isMiddleButtonDown()) ++num; 49 | 50 | return num; 51 | } 52 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/keyboard/juce_SystemClipboard.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #ifndef JUCE_SYSTEMCLIPBOARD_H_INCLUDED 26 | #define JUCE_SYSTEMCLIPBOARD_H_INCLUDED 27 | 28 | 29 | //============================================================================== 30 | /** 31 | Handles reading/writing to the system's clipboard. 32 | */ 33 | class JUCE_API SystemClipboard 34 | { 35 | public: 36 | /** Copies a string of text onto the clipboard */ 37 | static void copyTextToClipboard (const String& text); 38 | 39 | /** Gets the current clipboard's contents. 40 | 41 | Obviously this might have come from another app, so could contain 42 | anything.. 43 | */ 44 | static String getTextFromClipboard(); 45 | }; 46 | 47 | #endif // JUCE_SYSTEMCLIPBOARD_H_INCLUDED 48 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/layout/juce_GroupComponent.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | GroupComponent::GroupComponent (const String& name, 26 | const String& labelText) 27 | : Component (name), 28 | text (labelText), 29 | justification (Justification::left) 30 | { 31 | setInterceptsMouseClicks (false, true); 32 | } 33 | 34 | GroupComponent::~GroupComponent() {} 35 | 36 | void GroupComponent::setText (const String& newText) 37 | { 38 | if (text != newText) 39 | { 40 | text = newText; 41 | repaint(); 42 | } 43 | } 44 | 45 | String GroupComponent::getText() const 46 | { 47 | return text; 48 | } 49 | 50 | void GroupComponent::setTextLabelPosition (Justification newJustification) 51 | { 52 | if (justification != newJustification) 53 | { 54 | justification = newJustification; 55 | repaint(); 56 | } 57 | } 58 | 59 | void GroupComponent::paint (Graphics& g) 60 | { 61 | getLookAndFeel().drawGroupComponentOutline (g, getWidth(), getHeight(), 62 | text, justification, *this); 63 | } 64 | 65 | void GroupComponent::enablementChanged() { repaint(); } 66 | void GroupComponent::colourChanged() { repaint(); } 67 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/mouse/juce_MouseListener.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | void MouseListener::mouseEnter (const MouseEvent&) {} 26 | void MouseListener::mouseExit (const MouseEvent&) {} 27 | void MouseListener::mouseDown (const MouseEvent&) {} 28 | void MouseListener::mouseUp (const MouseEvent&) {} 29 | void MouseListener::mouseDrag (const MouseEvent&) {} 30 | void MouseListener::mouseMove (const MouseEvent&) {} 31 | void MouseListener::mouseDoubleClick (const MouseEvent&) {} 32 | void MouseListener::mouseWheelMove (const MouseEvent&, const MouseWheelDetails&) {} 33 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/native/juce_android_FileChooser.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | void FileChooser::showPlatformDialog (Array& results, 26 | const String& title, 27 | const File& currentFileOrDirectory, 28 | const String& filter, 29 | bool selectsDirectory, 30 | bool selectsFiles, 31 | bool isSaveDialogue, 32 | bool warnAboutOverwritingExistingFiles, 33 | bool selectMultipleFiles, 34 | bool /*treatFilePackagesAsDirs*/, 35 | FilePreviewComponent* extraInfoComponent) 36 | { 37 | // TODO 38 | 39 | 40 | } 41 | 42 | bool FileChooser::isPlatformDialogAvailable() 43 | { 44 | return false; 45 | } 46 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | ButtonPropertyComponent::ButtonPropertyComponent (const String& name, 26 | const bool triggerOnMouseDown) 27 | : PropertyComponent (name) 28 | { 29 | addAndMakeVisible (button); 30 | button.setTriggeredOnMouseDown (triggerOnMouseDown); 31 | button.addListener (this); 32 | } 33 | 34 | ButtonPropertyComponent::~ButtonPropertyComponent() 35 | { 36 | } 37 | 38 | void ButtonPropertyComponent::refresh() 39 | { 40 | button.setButtonText (getButtonText()); 41 | } 42 | 43 | void ButtonPropertyComponent::buttonClicked (Button*) 44 | { 45 | buttonClicked(); 46 | } 47 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/properties/juce_PropertyComponent.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | PropertyComponent::PropertyComponent (const String& name, const int preferredHeight_) 26 | : Component (name), preferredHeight (preferredHeight_) 27 | { 28 | jassert (name.isNotEmpty()); 29 | } 30 | 31 | PropertyComponent::~PropertyComponent() {} 32 | 33 | void PropertyComponent::paint (Graphics& g) 34 | { 35 | LookAndFeel& lf = getLookAndFeel(); 36 | 37 | lf.drawPropertyComponentBackground (g, getWidth(), getHeight(), *this); 38 | lf.drawPropertyComponentLabel (g, getWidth(), getHeight(), *this); 39 | } 40 | 41 | void PropertyComponent::resized() 42 | { 43 | if (Component* const c = getChildComponent(0)) 44 | c->setBounds (getLookAndFeel().getPropertyComponentContentPosition (*this)); 45 | } 46 | 47 | void PropertyComponent::enablementChanged() 48 | { 49 | repaint(); 50 | } 51 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_basics/widgets/juce_ImageComponent.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | ImageComponent::ImageComponent (const String& name) 26 | : Component (name), 27 | placement (RectanglePlacement::centred) 28 | { 29 | } 30 | 31 | ImageComponent::~ImageComponent() 32 | { 33 | } 34 | 35 | void ImageComponent::setImage (const Image& newImage) 36 | { 37 | if (image != newImage) 38 | { 39 | image = newImage; 40 | repaint(); 41 | } 42 | } 43 | 44 | void ImageComponent::setImage (const Image& newImage, RectanglePlacement placementToUse) 45 | { 46 | if (image != newImage || placement != placementToUse) 47 | { 48 | image = newImage; 49 | placement = placementToUse; 50 | repaint(); 51 | } 52 | } 53 | 54 | void ImageComponent::setImagePlacement (RectanglePlacement newPlacement) 55 | { 56 | if (placement != newPlacement) 57 | { 58 | placement = newPlacement; 59 | repaint(); 60 | } 61 | } 62 | 63 | const Image& ImageComponent::getImage() const 64 | { 65 | return image; 66 | } 67 | 68 | RectanglePlacement ImageComponent::getImagePlacement() const 69 | { 70 | return placement; 71 | } 72 | 73 | void ImageComponent::paint (Graphics& g) 74 | { 75 | g.setOpacity (1.0f); 76 | g.drawImage (image, getLocalBounds().toFloat(), placement); 77 | } 78 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #ifndef JUCE_CODETOKENISER_H_INCLUDED 26 | #define JUCE_CODETOKENISER_H_INCLUDED 27 | 28 | 29 | //============================================================================== 30 | /** 31 | A base class for tokenising code so that the syntax can be displayed in a 32 | code editor. 33 | 34 | @see CodeDocument, CodeEditorComponent 35 | */ 36 | class JUCE_API CodeTokeniser 37 | { 38 | public: 39 | CodeTokeniser() {} 40 | virtual ~CodeTokeniser() {} 41 | 42 | //============================================================================== 43 | /** Reads the next token from the source and returns its token type. 44 | 45 | This must leave the source pointing to the first character in the 46 | next token. 47 | */ 48 | virtual int readNextToken (CodeDocument::Iterator& source) = 0; 49 | 50 | /** Returns a suggested syntax highlighting colour scheme. */ 51 | virtual CodeEditorComponent::ColourScheme getDefaultColourScheme() = 0; 52 | 53 | private: 54 | JUCE_LEAK_DETECTOR (CodeTokeniser) 55 | }; 56 | 57 | 58 | #endif // JUCE_CODETOKENISER_H_INCLUDED 59 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #ifndef JUCE_LUACODETOKENISER_H_INCLUDED 26 | #define JUCE_LUACODETOKENISER_H_INCLUDED 27 | 28 | 29 | //============================================================================== 30 | /** 31 | */ 32 | class JUCE_API LuaTokeniser : public CodeTokeniser 33 | { 34 | public: 35 | //============================================================================== 36 | LuaTokeniser(); 37 | ~LuaTokeniser(); 38 | 39 | //============================================================================== 40 | int readNextToken (CodeDocument::Iterator&) override; 41 | CodeEditorComponent::ColourScheme getDefaultColourScheme() override; 42 | 43 | /** The token values returned by this tokeniser. */ 44 | enum TokenType 45 | { 46 | tokenType_error = 0, 47 | tokenType_comment, 48 | tokenType_keyword, 49 | tokenType_operator, 50 | tokenType_identifier, 51 | tokenType_integer, 52 | tokenType_float, 53 | tokenType_string, 54 | tokenType_bracket, 55 | tokenType_punctuation 56 | }; 57 | 58 | private: 59 | //============================================================================== 60 | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LuaTokeniser) 61 | }; 62 | 63 | #endif // JUCE_LUACODETOKENISER_H_INCLUDED 64 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #ifndef JUCE_XMLCODETOKENISER_H_INCLUDED 26 | #define JUCE_XMLCODETOKENISER_H_INCLUDED 27 | 28 | 29 | //============================================================================== 30 | /** 31 | */ 32 | class JUCE_API XmlTokeniser : public CodeTokeniser 33 | { 34 | public: 35 | //============================================================================== 36 | XmlTokeniser(); 37 | ~XmlTokeniser(); 38 | 39 | //============================================================================== 40 | int readNextToken (CodeDocument::Iterator&) override; 41 | CodeEditorComponent::ColourScheme getDefaultColourScheme() override; 42 | 43 | /** The token values returned by this tokeniser. */ 44 | enum TokenType 45 | { 46 | tokenType_error = 0, 47 | tokenType_comment, 48 | tokenType_keyword, 49 | tokenType_operator, 50 | tokenType_identifier, 51 | tokenType_string, 52 | tokenType_bracket, 53 | tokenType_punctuation, 54 | tokenType_preprocessor 55 | }; 56 | 57 | private: 58 | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (XmlTokeniser) 59 | }; 60 | 61 | 62 | #endif // JUCE_XMLCODETOKENISER_H_INCLUDED 63 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_extra/juce_gui_extra.mm: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #include "juce_gui_extra.cpp" 26 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | AnimatedAppComponent::AnimatedAppComponent() 26 | : lastUpdateTime (Time::getCurrentTime()), totalUpdates (0) 27 | { 28 | setOpaque (true); 29 | } 30 | 31 | void AnimatedAppComponent::setFramesPerSecond (int framesPerSecond) 32 | { 33 | jassert (framesPerSecond > 0 && framesPerSecond < 1000); 34 | startTimerHz (framesPerSecond); 35 | } 36 | 37 | int AnimatedAppComponent::getMillisecondsSinceLastUpdate() const noexcept 38 | { 39 | return (int) (Time::getCurrentTime() - lastUpdateTime).inMilliseconds(); 40 | } 41 | 42 | void AnimatedAppComponent::timerCallback() 43 | { 44 | ++totalUpdates; 45 | update(); 46 | repaint(); 47 | lastUpdateTime = Time::getCurrentTime(); 48 | } 49 | -------------------------------------------------------------------------------- /JUCE/JuceLibraryCode/modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file is part of the JUCE library. 5 | Copyright (c) 2015 - ROLI Ltd. 6 | 7 | Permission is granted to use this software under the terms of either: 8 | a) the GPL v2 (or any later version) 9 | b) the Affero GPL v3 10 | 11 | Details of these licenses can be found at: www.gnu.org/licenses 12 | 13 | JUCE is distributed in the hope that it will be useful, but WITHOUT ANY 14 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 | A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 | 17 | ------------------------------------------------------------------------------ 18 | 19 | To release a closed-source product which uses JUCE, commercial licenses are 20 | available: visit www.juce.com for more information. 21 | 22 | ============================================================================== 23 | */ 24 | 25 | #if JUCE_WINDOWS || JUCE_LINUX || JUCE_MAC 26 | 27 | SystemTrayIconComponent::SystemTrayIconComponent() 28 | { 29 | addToDesktop (0); 30 | } 31 | 32 | SystemTrayIconComponent::~SystemTrayIconComponent() 33 | { 34 | } 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BinAural VST 2 | ![](screenshot.png?raw=true) 3 | 4 | A mono-to-stereo vst plugin that positions sound in a 3D space using Head-Related Transfer Functions. 5 | Created with [JUCE](http://www.juce.com/) framework. 6 | 7 | ## Install: 8 | Copy the contents of the 'build' folder to your VST directory. 9 | You can remove unneeded version: _32 (32-bit) or _64 (64-bit). 10 | 11 | ## License: 12 | GPL (because JUCE is GPL) 13 | -------------------------------------------------------------------------------- /build/BinAural_32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twoz/binaural-vst/15bb77be7499036d76a461dd17be6440fd241ed8/build/BinAural_32.dll -------------------------------------------------------------------------------- /build/BinAural_64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twoz/binaural-vst/15bb77be7499036d76a461dd17be6440fd241ed8/build/BinAural_64.dll -------------------------------------------------------------------------------- /build/hrir/kemar.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twoz/binaural-vst/15bb77be7499036d76a461dd17be6440fd241ed8/build/hrir/kemar.bin -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twoz/binaural-vst/15bb77be7499036d76a461dd17be6440fd241ed8/screenshot.png -------------------------------------------------------------------------------- /source/AtomicAudioParameter.cpp: -------------------------------------------------------------------------------- 1 | #include "AtomicAudioParameter.h" 2 | 3 | 4 | AtomicAudioParameter::AtomicAudioParameter(String name, String label, NormalisableRange range, float defaultValue) 5 | : name(name) 6 | , label(label) 7 | , range(range) 8 | , defaultValue(defaultValue) 9 | , state({defaultValue, true}) 10 | { 11 | jassert(state.is_lock_free()); 12 | } 13 | 14 | void AtomicAudioParameter::setNewValue(float newValue) 15 | { 16 | setValueNotifyingHost(range.convertTo0to1(newValue)); 17 | } 18 | 19 | float AtomicAudioParameter::getValueAndMarkRead() 20 | { 21 | const auto currentVal = state.load().value; 22 | state.store({currentVal, 0}); 23 | return currentVal; 24 | } 25 | 26 | float AtomicAudioParameter::getDefaultValue() const 27 | { 28 | return defaultValue; 29 | } 30 | 31 | float AtomicAudioParameter::getValue() const 32 | { 33 | return range.convertTo0to1(state.load().value); 34 | } 35 | 36 | void AtomicAudioParameter::setValue(float newValueNormalized) 37 | { 38 | state.store({ range.convertFrom0to1(newValueNormalized), 1 }); 39 | } 40 | 41 | String AtomicAudioParameter::getName(int maximumStringLength) const 42 | { 43 | return name.dropLastCharacters(name.length() - maximumStringLength); 44 | } 45 | 46 | float AtomicAudioParameter::getValueForText(const String& text) const 47 | { 48 | return range.convertTo0to1(text.getFloatValue()); 49 | } 50 | -------------------------------------------------------------------------------- /source/AtomicAudioParameter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "../JuceLibraryCode/JuceHeader.h" 4 | 5 | 6 | class AtomicAudioParameter : public AudioProcessorParameter 7 | { 8 | public: 9 | AtomicAudioParameter(String name, String label, NormalisableRange range, float defaultValue); 10 | 11 | void setNewValue(float newValue); 12 | float getValueAndMarkRead(); 13 | bool hasNewValue() const { return state.load().valueChangedSinceLastRead == 1? true : false; } 14 | 15 | const NormalisableRange& getRange() const { return range; } 16 | String getLabel() const override { return label; } 17 | float getDefault() const { return defaultValue; } 18 | 19 | private: 20 | float getValue() const override; 21 | float getDefaultValue() const override; 22 | void setValue(float newValueNormalized) override; 23 | String getName(int maximumStringLength) const override; 24 | float getValueForText(const String& text) const override; 25 | 26 | String name; 27 | String label; 28 | NormalisableRange range; 29 | float defaultValue; 30 | struct AtomicAudioParameterState 31 | { 32 | float value; 33 | int valueChangedSinceLastRead; 34 | }; 35 | std::atomic state; 36 | }; 37 | -------------------------------------------------------------------------------- /source/Crossover.cpp: -------------------------------------------------------------------------------- 1 | #include "Crossover.h" 2 | 3 | Crossover::Crossover() 4 | { 5 | set(44100., 150.); 6 | } 7 | 8 | void Crossover::set(double sampleRate, double crossoverFrequency) 9 | { 10 | loPass.setCoefficients(IIRCoefficients::makeLowPass(sampleRate, crossoverFrequency)); 11 | hiPass.setCoefficients(IIRCoefficients::makeHighPass(sampleRate, crossoverFrequency)); 12 | this->sampleRate = sampleRate; 13 | this->crossoverFrequency = crossoverFrequency; 14 | } 15 | 16 | void Crossover::setCrossoverFrequency(double crossoverFrequency) 17 | { 18 | set(sampleRate, crossoverFrequency); 19 | } 20 | 21 | void Crossover::setSampleRate(double sampleRate) 22 | { 23 | set(sampleRate, crossoverFrequency); 24 | } 25 | 26 | void Crossover::reset() 27 | { 28 | loPass.reset(); 29 | hiPass.reset(); 30 | } 31 | 32 | void Crossover::process(const AudioSampleBuffer& input, int sourceChannelIndex, AudioSampleBuffer& output) 33 | { 34 | const auto samplesToProcess = jmin(input.getNumSamples(), output.getNumSamples()); 35 | output.copyFrom(loPassChannelIndex, 0, input, sourceChannelIndex, 0, samplesToProcess); 36 | output.copyFrom(hiPassChannelIndex, 0, input, sourceChannelIndex, 0, samplesToProcess); 37 | loPass.processSamples(output.getWritePointer(loPassChannelIndex), samplesToProcess); 38 | hiPass.processSamples(output.getWritePointer(hiPassChannelIndex), samplesToProcess); 39 | } 40 | -------------------------------------------------------------------------------- /source/Crossover.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../JuceLibraryCode/JuceHeader.h" 3 | 4 | class Crossover 5 | { 6 | public: 7 | enum 8 | { 9 | loPassChannelIndex = 0, 10 | hiPassChannelIndex = 1 11 | }; 12 | 13 | Crossover(); 14 | void set(double samplingRate, double crossoverFrequency); 15 | void setCrossoverFrequency(double crossoverFrequency); 16 | void setSampleRate(double sampleRate); 17 | void reset(); 18 | 19 | void process(const AudioSampleBuffer& input, int sourceChannelIndex, AudioSampleBuffer& output); 20 | 21 | private: 22 | IIRFilter loPass; 23 | IIRFilter hiPass; 24 | double crossoverFrequency{ 0 }; 25 | double sampleRate{ 0 }; 26 | }; 27 | -------------------------------------------------------------------------------- /source/HRIRFilter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "OouraFFT.h" 3 | #include "HRTFContainer.h" 4 | #include "Util.h" 5 | 6 | /** Single-channel (left or right) HRIR filter. 7 | Uses frequency-domain crossfading to avoid audio waveform discontinuities that arise when changing the impulse response. 8 | Expected calling order: setImpulseResponse(), process() 9 | */ 10 | class HRIRFilter 11 | { 12 | public: 13 | void setImpulseResponse(const HRIRBuffer::ImpulseResponse& impulseResponse); 14 | void prepare(int samplesPerBlock); 15 | void process(float* samples, int numSamples); 16 | void reset(); 17 | 18 | private: 19 | OouraFFT oouraFFT; 20 | ComplexVector transferFunction[2]; 21 | ComplexVector inputDFT; 22 | ComplexVector outputDFT; 23 | std::vector zeroPaddedIR[2]; 24 | std::vector inputBuffer; 25 | std::vector outputBuffer; 26 | int currentTargetFilterIndex = 0; 27 | size_t nfft = 0u; 28 | }; 29 | -------------------------------------------------------------------------------- /source/HRTFContainer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | #include "../JuceLibraryCode/JuceHeader.h" 6 | 7 | struct HRIRBuffer 8 | { 9 | static const auto HRIR_SIZE = 200u; 10 | using ImpulseResponse = std::array; 11 | 12 | ImpulseResponse leftEarIR; 13 | ImpulseResponse rightEarIR; 14 | }; 15 | 16 | class HRTFContainer 17 | { 18 | public: 19 | HRTFContainer(); 20 | ~HRTFContainer(); 21 | 22 | void updateHRIR(double azimuth, double elevation); 23 | const HRIRBuffer& hrir() const; 24 | 25 | void loadHrir(String filename); 26 | private: 27 | static int getElvIndex(int elv); 28 | 29 | std::map> hrirDict_; 30 | ScopedPointer triangulation_; 31 | HRIRBuffer hrir_[2]; 32 | std::atomic_int hrirReadIndex; 33 | }; 34 | -------------------------------------------------------------------------------- /source/MainDisplay.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "../JuceLibraryCode/JuceHeader.h" 4 | #include "Util.h" 5 | #include "images/head_top.h" 6 | #include "images/source_icon.h" 7 | 8 | 9 | class HrtfBiAuralAudioProcessorEditor; 10 | 11 | class MainDisplay : 12 | public Component, 13 | public Slider::Listener 14 | { 15 | public: 16 | MainDisplay(HrtfBiAuralAudioProcessorEditor* editor); 17 | ~MainDisplay(); 18 | 19 | void paint(Graphics& g) override; 20 | void mouseDrag(const MouseEvent& event) override; 21 | void sliderValueChanged(Slider* slider) override; 22 | 23 | private: 24 | void drawGridLines(Graphics& g); 25 | void drawSource(Graphics& g); 26 | void updateHRTF(); 27 | 28 | Image headImage_; 29 | Image sourceImage_; 30 | Point3DoublePolar sourcePos_; 31 | HrtfBiAuralAudioProcessorEditor* editor_; 32 | 33 | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(MainDisplay) 34 | }; 35 | -------------------------------------------------------------------------------- /source/OouraFFT.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | 6 | class OouraFFT 7 | { 8 | public: 9 | // prepare for fft/ifft 10 | // nfft - size of the future transforms 11 | void init(size_t nfft); 12 | 13 | // in must have length nfft 14 | // out must have length nfft/2 + 1 15 | void fft(float* in, std::complex* out); 16 | 17 | // out must have length nfft 18 | // in must have length nfft/2 + 1 19 | void ifft(std::complex* in, float* out); 20 | 21 | size_t getNfft() const { return nfft; } 22 | 23 | private: 24 | // original routines from the ooura fft (fast version, radix 4/2) 25 | // see http://www.kurims.kyoto-u.ac.jp/~ooura/fft.html 26 | void rdft(int n, int isgn, double *a, int *ip, double *w); 27 | void makewt(int nw, int * ip, double * w); 28 | void makect(int nc, int * ip, double * c); 29 | void bitrv2(int n, int * ip, double * a); 30 | void cftfsub(int n, double * a, double * w); 31 | void cftbsub(int n, double * a, double * w); 32 | void rftfsub(int n, double * a, int nc, double * c); 33 | void rftbsub(int n, double * a, int nc, double * c); 34 | void cft1st(int n, double * a, double * w); 35 | void cftmdl(int n, int l, double * a, double * w); 36 | 37 | std::vector ip_; // work area for bit reversal 38 | std::vector sineTable_; 39 | std::vector buffer_; 40 | 41 | size_t nfft = 0u; 42 | }; 43 | -------------------------------------------------------------------------------- /source/PluginEditor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | #include "PluginProcessor.h" 5 | #include "MainDisplay.h" 6 | #include "Util.h" 7 | 8 | 9 | class HrtfBiAuralAudioProcessorEditor : 10 | public AudioProcessorEditor, 11 | public Slider::Listener, 12 | public Button::Listener 13 | { 14 | friend class MainDisplay; 15 | public: 16 | HrtfBiAuralAudioProcessorEditor(HrtfBiAuralAudioProcessor& processor); 17 | ~HrtfBiAuralAudioProcessorEditor(); 18 | 19 | public: // Component implementation 20 | void paint(Graphics& g) override; 21 | void paintOverChildren(Graphics& g) override; 22 | void resized() override; 23 | 24 | public: // Slider::Listener implementation 25 | void sliderDragStarted(Slider* slider) override; 26 | void sliderValueChanged(Slider* slider) override; 27 | void sliderDragEnded(Slider* slider) override; 28 | 29 | public: // Button::Listener implementation 30 | void buttonClicked(Button* button) override; 31 | 32 | private: 33 | void drawBordersAndLabels(Graphics& g); 34 | 35 | private: 36 | HrtfBiAuralAudioProcessor& processor_; 37 | ScopedPointer mainDisplay_; 38 | Colour bgColor_; 39 | Colour fgColor_; 40 | Slider elevationSlider_; 41 | Slider crossoverKnob_; 42 | Slider wetKnob_; 43 | Slider gainKnob_; 44 | TextButton bypassButton_; 45 | int topSectionY_; 46 | 47 | std::unordered_map knobToParam_; 48 | 49 | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(HrtfBiAuralAudioProcessorEditor) 50 | }; 51 | -------------------------------------------------------------------------------- /source/PluginProcessor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../JuceLibraryCode/JuceHeader.h" 3 | #include "HRTFContainer.h" 4 | #include "HRIRFilter.h" 5 | #include "Crossover.h" 6 | 7 | class AtomicAudioParameter; 8 | 9 | class HrtfBiAuralAudioProcessor : public AudioProcessor 10 | { 11 | public: 12 | HrtfBiAuralAudioProcessor(); 13 | ~HrtfBiAuralAudioProcessor(); 14 | 15 | public: // AudioProcessor implementation 16 | void prepareToPlay(double sampleRate, int samplesPerBlock) override; 17 | void releaseResources() override; 18 | 19 | void processBlock(AudioSampleBuffer&, MidiBuffer&) override; 20 | 21 | AudioProcessorEditor* createEditor() override; 22 | bool hasEditor() const override; 23 | 24 | const String getName() const override; 25 | 26 | bool acceptsMidi() const override; 27 | bool producesMidi() const override; 28 | double getTailLengthSeconds() const override; 29 | void reset() override; 30 | 31 | int getNumPrograms() override; 32 | int getCurrentProgram() override; 33 | void setCurrentProgram(int index) override; 34 | const String getProgramName(int index) override; 35 | void changeProgramName(int index, const String& newName) override; 36 | 37 | void getStateInformation(MemoryBlock& destData) override; 38 | void setStateInformation(const void* data, int sizeInBytes) override; 39 | 40 | public: 41 | void updateHRTF(double, double); 42 | void toggleBypass(bool bypass); 43 | bool isHRIRLoaded() const; 44 | 45 | AtomicAudioParameter* getCrossoverFrequencyParameter() const; 46 | AtomicAudioParameter* getWetParameter() const; 47 | AtomicAudioParameter* getGainParameter() const; 48 | 49 | private: 50 | void processParameterChanges(); 51 | 52 | HRIRFilter hrirFilterL; 53 | HRIRFilter hrirFilterR; 54 | HRTFContainer hrtfContainer; 55 | AudioSampleBuffer crossoverOutput; 56 | Crossover crossover; 57 | AudioSampleBuffer monoInputBuffer; 58 | 59 | bool bypassed; 60 | bool hrirLoaded; 61 | 62 | AtomicAudioParameter* crossoverFreqParam; 63 | AtomicAudioParameter* wetPercentParam; 64 | AtomicAudioParameter* gainDbParam; 65 | 66 | 67 | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(HrtfBiAuralAudioProcessor) 68 | }; 69 | -------------------------------------------------------------------------------- /source/Util.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | 6 | template 7 | using ComplexVector = std::vector>; 8 | 9 | inline bool isPowerOf2(size_t val) 10 | { 11 | return (val == 1 || (val & (val - 1)) == 0); 12 | } 13 | 14 | inline int nextPowerOf2(int x) 15 | { 16 | if (x < 0) 17 | return 0; 18 | --x; 19 | x |= x >> 1; 20 | x |= x >> 2; 21 | x |= x >> 4; 22 | x |= x >> 8; 23 | x |= x >> 16; 24 | return x + 1; 25 | } 26 | 27 | template 28 | inline T clamp(const T& x, const T& lower, const T& upper) 29 | { 30 | return std::min(std::max(x, lower), upper); 31 | } 32 | 33 | template 34 | struct Point3Cartesian 35 | { 36 | Type x; 37 | Type y; 38 | Type z; 39 | }; 40 | 41 | template 42 | struct Point3DoublePolar 43 | { 44 | Type radius; 45 | Type azimuth; 46 | Type elevation; 47 | }; 48 | 49 | template 50 | inline Type deg2rad(Type deg) 51 | { 52 | return deg * float_Pi / 180; 53 | } 54 | 55 | template 56 | inline Type rad2deg(Type rad) 57 | { 58 | return rad * 180 / float_Pi; 59 | } 60 | 61 | template 62 | inline Point3DoublePolar cartesianToInteraural(const Point3Cartesian& p) 63 | { 64 | Type radius = std::sqrt(p.x * p.x + p.y * p.y + p.z * p.z); 65 | Type azimuth = std::asin(p.x / radius); 66 | Type elevation = std::atan2(p.z, p.y); 67 | if (p.y < 0 && p.z < 0) 68 | elevation += 2 * float_Pi; 69 | 70 | return Point3DoublePolar < Type > { radius, azimuth, elevation }; 71 | } 72 | 73 | template 74 | inline Point3Cartesian interauralToCartesian(const Point3DoublePolar& p) 75 | { 76 | Type x = p.radius * std::sin(p.azimuth); 77 | Type y = p.radius * std::cos(p.azimuth) * std::cos(p.elevation); 78 | Type z = p.radius * std::cos(p.azimuth) * std::sin(p.elevation); 79 | 80 | return Point3Cartesian < Type > { x, y, z }; 81 | } 82 | 83 | template 84 | inline Point3DoublePolar sphericalToInteraural(const Point3DoublePolar& p) 85 | { 86 | Type x = p.radius * std::cos(p.elevation) * std::sin(p.azimuth); 87 | Type y = p.radius * std::cos(p.elevation) * std::cos(p.azimuth); 88 | Type z = p.radius * std::sin(p.elevation); 89 | 90 | return cartesianToInteraural(Point3Cartesian < Type > {x, y, z}); 91 | } 92 | -------------------------------------------------------------------------------- /source/delaunay/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 Simon Zeni (simonzeni@gmail.com) 2 | 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | 24 | 25 | -------------------------------------------------------------------------------- /source/delaunay/delaunay.h: -------------------------------------------------------------------------------- 1 | #ifndef H_DELAUNAY 2 | #define H_DELAUNAY 3 | 4 | #include "vector2.h" 5 | #include "triangle.h" 6 | 7 | #include 8 | 9 | typedef Vector2 Vec2f; 10 | 11 | class Delaunay 12 | { 13 | public: 14 | const std::vector& triangulate(std::vector &vertices); 15 | const std::vector& getTriangles() const { return _triangles; }; 16 | const std::vector& getEdges() const { return _edges; }; 17 | 18 | private: 19 | std::vector _triangles; 20 | std::vector _edges; 21 | }; 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /source/delaunay/edge.h: -------------------------------------------------------------------------------- 1 | #ifndef H_EDGE 2 | #define H_EDGE 3 | 4 | #include "vector2.h" 5 | 6 | typedef Vector2 Vec2f; 7 | 8 | class Edge 9 | { 10 | public: 11 | Edge(const Vec2f &p1, const Vec2f &p2) : p1(p1), p2(p2) {}; 12 | Edge(const Edge &e) : p1(e.p1), p2(e.p2) {}; 13 | 14 | Vec2f p1; 15 | Vec2f p2; 16 | }; 17 | 18 | inline std::ostream &operator << (std::ostream &str, Edge const &e) 19 | { 20 | return str << "Edge " << e.p1 << ", " << e.p2; 21 | } 22 | 23 | inline bool operator == (const Edge & e1, const Edge & e2) 24 | { 25 | return (e1.p1 == e2.p1 && e1.p2 == e2.p2) || 26 | (e1.p1 == e2.p2 && e1.p2 == e2.p1); 27 | } 28 | 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /source/delaunay/triangle.cpp: -------------------------------------------------------------------------------- 1 | #include "triangle.h" 2 | 3 | #include 4 | #include 5 | 6 | #include "delaunay.h" 7 | 8 | Triangle::Triangle(const Vec2f &_p1, const Vec2f &_p2, const Vec2f &_p3) 9 | : p1(_p1), p2(_p2), p3(_p3), 10 | e1(_p1, _p2), e2(_p2, _p3), e3(_p3, _p1) 11 | {} 12 | 13 | bool Triangle::containsVertex(const Vec2f &v) 14 | { 15 | return p1 == v || p2 == v || p3 == v; 16 | } 17 | 18 | bool Triangle::circumCircleContains(const Vec2f &v) 19 | { 20 | float ab = (p1.x * p1.x) + (p1.y * p1.y); 21 | float cd = (p2.x * p2.x) + (p2.y * p2.y); 22 | float ef = (p3.x * p3.x) + (p3.y * p3.y); 23 | 24 | float circum_x = (ab * (p3.y - p2.y) + cd * (p1.y - p3.y) + ef * (p2.y - p1.y)) / (p1.x * (p3.y - p2.y) + p2.x * (p1.y - p3.y) + p3.x * (p2.y - p1.y)) / 2.f; 25 | float circum_y = (ab * (p3.x - p2.x) + cd * (p1.x - p3.x) + ef * (p2.x - p1.x)) / (p1.y * (p3.x - p2.x) + p2.y * (p1.x - p3.x) + p3.y * (p2.x - p1.x)) / 2.f; 26 | float circum_radius = sqrtf(((p1.x - circum_x) * (p1.x - circum_x)) + ((p1.y - circum_y) * (p1.y - circum_y))); 27 | 28 | float dist = sqrtf(((v.x - circum_x) * (v.x - circum_x)) + ((v.y - circum_y) * (v.y - circum_y))); 29 | return dist <= circum_radius; 30 | 31 | 32 | } 33 | 34 | bool Triangle::isDegenerate() const 35 | { 36 | const double T[] = { p1.x - p3.x, p1.y - p3.y, p2.x - p3.x, p2.y - p3.y }; 37 | const auto det = T[0] * T[3] - T[1] * T[2]; 38 | return det == 0; 39 | } 40 | -------------------------------------------------------------------------------- /source/delaunay/triangle.h: -------------------------------------------------------------------------------- 1 | #ifndef H_TRIANGLE 2 | #define H_TRIANGLE 3 | 4 | #include "vector2.h" 5 | #include "edge.h" 6 | 7 | typedef Vector2 Vec2f; 8 | 9 | class Triangle 10 | { 11 | public: 12 | Triangle(const Vec2f &_p1, const Vec2f &_p2, const Vec2f &_p3); 13 | 14 | bool containsVertex(const Vec2f &v); 15 | bool circumCircleContains(const Vec2f &v); 16 | bool isDegenerate() const; 17 | 18 | Vec2f p1; 19 | Vec2f p2; 20 | Vec2f p3; 21 | Edge e1; 22 | Edge e2; 23 | Edge e3; 24 | }; 25 | 26 | inline std::ostream &operator << (std::ostream &str, const Triangle & t) 27 | { 28 | return str << "Triangle:" << std::endl << "\t" << t.p1 << std::endl << "\t" << t.p2 << std::endl << "\t" << t.p3 << std::endl << "\t" << t.e1 << std::endl << "\t" << t.e2 << std::endl << "\t" << t.e3 << std::endl; 29 | 30 | } 31 | 32 | inline bool operator == (const Triangle &t1, const Triangle &t2) 33 | { 34 | return (t1.p1 == t2.p1 || t1.p1 == t2.p2 || t1.p1 == t2.p3) && 35 | (t1.p2 == t2.p1 || t1.p2 == t2.p2 || t1.p2 == t2.p3) && 36 | (t1.p3 == t2.p1 || t1.p3 == t2.p2 || t1.p3 == t2.p3); 37 | } 38 | 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /source/delaunay/vector2.h: -------------------------------------------------------------------------------- 1 | #ifndef H_VECTOR2 2 | #define H_VECTOR2 3 | 4 | #include 5 | #include 6 | 7 | template 8 | class Vector2 9 | { 10 | public: 11 | // 12 | // Constructors 13 | // 14 | 15 | Vector2() 16 | { 17 | x = 0; 18 | y = 0; 19 | } 20 | 21 | Vector2(T _x, T _y) 22 | { 23 | x = _x; 24 | y = _y; 25 | } 26 | 27 | Vector2(const Vector2 &v) 28 | { 29 | x = v.x; 30 | y = v.y; 31 | } 32 | 33 | void set(const Vector2 &v) 34 | { 35 | x = v.x; 36 | y = v.y; 37 | } 38 | 39 | // 40 | // Operations 41 | // 42 | T dist2(const Vector2 &v) 43 | { 44 | T dx = x - v.x; 45 | T dy = y - v.y; 46 | return dx * dx + dy * dy; 47 | } 48 | 49 | float dist(const Vector2 &v) 50 | { 51 | return sqrtf(dist2(v)); 52 | } 53 | 54 | T x; 55 | T y; 56 | 57 | }; 58 | 59 | template 60 | std::ostream &operator << (std::ostream &str, Vector2 const &point) 61 | { 62 | return str << "Point x: " << point.x << " y: " << point.y; 63 | } 64 | 65 | template 66 | bool operator == (Vector2 v1, Vector2 v2) 67 | { 68 | return (v1.x == v2.x) && (v1.y == v2.y); 69 | } 70 | 71 | #endif 72 | --------------------------------------------------------------------------------