1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

JUCE version 5.0.0

This commit is contained in:
hogliux 2017-04-27 16:25:04 +01:00
commit 03de7b468f
2946 changed files with 205231 additions and 393005 deletions

20
.gitignore vendored
View file

@ -37,21 +37,23 @@ profile
**/VisualStudio2010/Release
**/VisualStudio2012/Debug
**/VisualStudio2012/Release
**/VisualStudio2013/Debug
**/VisualStudio2013/Release
**/VisualStudio2013/Win32
**/VisualStudio2013/x64
**/VisualStudio2015/Debug
**/VisualStudio2015/Release
**/VisualStudio2015/Win32
**/VisualStudio2015/x64
**/Android/bin
**/Android/libs
**/Android/gen
**/Android/obj
**/VisualStudio2017/Win32
**/VisualStudio2017/x64
**/.vs
**/CodeBlocks/bin
**/CodeBlocks/obj
**/CodeBlocks/*.depend
**/CodeBlocks/*.layout
**/Builds/AndroidStudio
**/Builds/Android/.gradle
**/Builds/Android/local.properties
**/Builds/Android/app/build
**/Builds/Android/app/.externalNativeBuild
**/Builds/Android/lib/build
**/Builds/Android/lib/.externalNativeBuild
**/doxygen/doc
**/doxygen/build
extras/Projucer/JUCECompileEngine.dylib

83
BREAKING-CHANGES.txt Normal file
View file

@ -0,0 +1,83 @@
JUCE breaking changes
=====================
Version 4.3.1
=============
Change
------
JUCE has changed the way native VST3/AudioUnit parameter ids are calculated
Possible Issues
---------------
DAW projects with automation data written by an AudioUnit or VST3 plug-in built with pre JUCE 4.3.1 versions will load incorrectly when opened by an AudioUnit or VST3 built with JUCE versions 4.3.1 and later. Plug-ins using JUCE_FORCE_USE_LEGACY_IDS are not affected
Workaround
----------
Disable JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS in the juce_audio_plugin_client module config page in the Projucer. For new plug-ins, be sure to use the default value for this property.
Rationale
--------
JUCE needs to convert between its own JUCE parameter id format (strings) to the native parameter id formats of the various plug-in backends. For VST3 and AudioUnits, JUCE uses a hash function to generate a numeric id. However, some VST3/AudioUnit hosts (specifically Studio One) have a bug that ignore any parameters that have a negative parameter id. Therefore, the hash function for VST3/AudioUnits needed to be changed to only return positive-valued hashes.
Version 4.3.0
=============
Change
------
A revised multi-bus API was released which supersedes the previously flawed multi-bus API - JUCE versions 4.0.0 - 4.2.4 (inclusive)
Possible Issues
---------------
If you have developed a plug-in with JUCE versions 4.0.0 - 4.2.4 (inclusive), then you will need to update your plug-in to the new multi-bus API. Pre JUCE 4.0.0 plug-ins are not affected apart from other breaking changes listed in this document.
Woraround
---------
None
Rationale
--------
A flawed multi-bus API was introduced with JUCE versions 4.0.0 up until version 4.2.4 (inclusive) which was not API compatible with pre JUCE 4 plug-ins. JUCE 4.3.0 releases a revised multi-bus API which restores pre JUCE 4 API compatibility. However, the new multi-bus API is not compatible with the flawed multi-bus API (JUCE version 4.0.0 - 4.2.4).
Change
------
JUCE now generates the AAX plug-in bus layout configuration id independent from the position as it appears in the Projucers legacy “Channel layout configuration” field.
Possible Issues
---------------
ProTools projects generated with a < 4.3.0 JUCE versions of your plug-in, may load the incorrect bus configuration when upgrading your plug-in to >= 4.3.0 versions of JUCE.
Workaround
----------
Implement AudioProcessors getAAXPluginIDForMainBusConfig callback to manually override which AAX plug-in id is associated to a specific bus layout of your plug-in. This workaround is only necessary if you have released your plug-in built with a version previous to JUCE 4.3.0.
Rationale
--------
The new multi-bus API offers more features, flexibility and accuracy in specifying bus layouts which cannot be expressed by the Projucers legacy “Channel layout configuration” field. The native plug-in format backends use the new multi-bus callback APIs to negotiate channel layouts with the host - including the AAX plug-in ids assigned to specific bus layouts. With the callback API, there is no notion of an order in which the channel configurations appear - as was the case with the legacy “Channel layout configuration” field - and therefore cannot be used to generate the AAX plug-in id. To remain backward compatible to pre JUCE 4.0.0 plug-ins, JUCE does transparently convert the legacy “Channel layout configuration” field to the new callback based multi-bus API, but this does not take the order into account in which the channel configurations appear in the legacy “Channel layout configuration” field.
Version 4.2.1
=============
Change
------
JUCE now uses the paramID property used in AudioProcessorParameterWithID to uniquely identify parameters to the host
Possible Issues
---------------
DAW projects with automation data written by an audio plug-in built with pre JUCE 4.2.1 will load incorrectly when opened by an audio plug-in built with JUCE 4.2.1 and later.
Workaround
----------
Enable JUCE_FORCE_USE_LEGACY_IDS in the juce_audio_plugin_client module config page in the Projucer. For new plug-ins, be sure to disable this property.
Rationale
--------
Each parameter of the AudioProcessor has an id associated so that the plug-ins host can uniquely identify parameters. The id has a different data-type for different plug-in types (for example VST uses integers, AAX uses string identifiers). Before 4.2.1, JUCE generated the parameter id by using the index of the parameter, i.e. the first parameter had id zero, the second parameter had id one, etc. This caused problems for certain plug-in types where JUCE needs to add internal parameters to the plug-in (for example VST3 requires the bypass control to be a parameter - so JUCE automatically creates this parameter for you in the VST3 backend). This causes subtle problems if a parameter is added to an update of an already published plug-in. The new parameters id would be identical to the id of the bypass parameter in old versions of your plug-in, causing seemingly random plug-in bypass behaviour when users upgrade their plug-in.
Most plug-in backends differentiate between a parameters id an index, so this distinction was adopted starting with JUCE 4.2.1 by deriving the parameters unique id from the paramID property of AudioProcessorParameterWithID class.

View file

@ -4,6 +4,25 @@
This file just lists the more notable headline features. For more detailed info
about minor changes and bugfixes, please see the git log!
Version 5.0.0
- New licensing model
- Projucer UI/UX overhaul
- New look and feel (version 4)
- New standalone plug-in format
- Added support for Visual Studio 2017
- Added support for VST3 SDK 3.6.7
- Added support for Apple Inter-App Audio on iOS
- Various Android stability and performance improvements
- Added support for non-experimental gradle plug-in versions >= 2.2 and Android Studio 2.3
- Added support for closed-source third-party modules
- Added support for Windows 10 Bluetooth LE MIDI devices
- Modernised JUCE codebase to use C++11/14 features
- Added support for Linux embedded platforms
- Added support for WebBrowserComponent on Linux
- Added support for IPv6
- Various minor improvements and bug fixes
- Various documentation improvements
Version 4.3.1
- Added support for iOS download tasks
- Added support for AAX plug-in meters

47
README.md Normal file
View file

@ -0,0 +1,47 @@
# The JUCE 5 Library
**BY DOWNLOADING, INSTALLING OR USING ANY PART OF THE JUCE LIBRARY, YOU AGREE
TO THE [JUCE 5 END-USER LICENSE AGREEMENT](https://www.juce.com/juce-5-licence)
AND [JUCE 5 PRIVACY POLICY](https://www.juce.com/juce-5-privacy-policy), WHICH
ARE BINDING AGREEMENTS BETWEEN YOU AND ROLI, LTD. IF YOU DO NOT AGREE TO THE
TERMS, DO NOT USE THE JUCE LIBRARY.**
JUCE is an all-encompassing C++ framework for developing cross-platform
software. JUCE is used by hundreds of companies to develop powerful,
cross-platform audio, interactive, embedded or graphic applications.
We now have tier-leveled license terms for JUCE 5, with different terms for
each available license: JUCE Personal (for developers or startup businesses
with revenue under 50K USD "Revenue Limit"; free), JUCE Indie (for small
businesses with under 200K Revenue Limit; $35/month), JUCE Pro (no Revenue
Limit; $65/month), and JUCE Educational (no Revenue Limit; free for bona fide
educational institutes). All licenses allow you to commercially release
applications so long as you do not exceed the Revenue Limit and pay applicable
Fees. Once your business hits the Revenue Limit for your JUCE license, you will
either have to upgrade your JUCE license or release your Applications under the
[GNU General Public License v.3](https://www.gnu.org/licenses/gpl-3.0.en.html),
which means, among other things, that your code can be freely copied and
distributed.
You agree to give notice to the end-users of your Applications that we may
track the IP addresses associated with their use of the Applications using JUCE
solely for our internal purposes in providing JUCE, unless you are a paying
JUCE customer and opt-out of such tracking. You agree to fully comply with all
laws, including relating to the collection of information from children and the
[Childrens Online Privacy Protection Act
(COPPA)](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/childrens-online-privacy-protection-rule).
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE, ARE DISCLAIMED.
The juce_audio_basics, juce_audio_devices, juce_blocks_basics, juce_core and
juce_events modules are permissively licensed under the terms of the [ISC
license](http://www.isc.org/downloads/software-support-policy/isc-license).
For more information, visit the website:
[www.juce.com](https://www.juce.com)
FULL JUCE TERMS:
- [JUCE 5 END-USER LICENSE AGREEMENT](https://www.juce.com/juce-5-licence)
- [JUCE 5 PRIVACY POLICY](https://www.juce.com/juce-5-privacy-policy)

View file

@ -1,18 +0,0 @@
# The JUCE Library
JUCE (Jules' Utility Class Extensions) is an all-encompassing
C++ framework for developing cross-platform software.
It contains pretty much everything you're likely to need to create
most applications, and is particularly well-suited for building
highly-customised GUIs, and for handling graphics and sound.
Most JUCE modules are shared under the GNU Public Licence
(GPLv2, v3, and the AGPLv3). This means that the code can
be freely copied and distributed, and costs nothing to use
in other GPL applications. The juce_audio_basics,
juce_audio_devices, juce_blocks_basics, juce_core and
juce_events modules are permissively licensed under the ISC.
For more information, visit the website:
http://www.juce.com

View file

@ -2055,8 +2055,6 @@ PREDEFINED = WIN32=1 \
JUCE_LINUX=1 \
DOXYGEN=1 \
JUCE_COMPILER_SUPPORTS_NOEXCEPT=1 \
JUCE_COMPILER_SUPPORTS_NULLPTR=1 \
JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS=1 \
JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS=1 \
JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES=1 \
JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL=1 \

View file

@ -8,8 +8,9 @@
pluginCode="AUv3" pluginChannelConfigs="" pluginIsSynth="1" pluginWantsMidiIn="1"
pluginProducesMidiOut="0" pluginIsMidiEffectPlugin="0" pluginEditorRequiresKeys="0"
pluginAUExportPrefix="AUv3SynthAU" pluginRTASCategory="" aaxIdentifier="com.roli.development.AUv3Synth"
pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="4.3.1"
buildStandalone="1">
pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="5.0.0"
buildStandalone="1" enableIAA="0" displaySplashScreen="0" reportAppUsage="0"
splashScreenColour="Dark">
<MAINGROUP id="h0gx6L" name="AUv3Synth">
<GROUP id="{9DC59668-E6DF-876C-EB58-DDA88D152162}" name="Source">
<GROUP id="{CDDEC2D7-B8D6-2849-AC85-2363EAD0449C}" name="BinaryData">

View file

@ -1 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>com.apple.security.app-sandbox</key> <true/></dict></plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
</dict>
</plist>

View file

@ -11,8 +11,7 @@
*/
#ifndef __JUCE_APPCONFIG_NAPIAV__
#define __JUCE_APPCONFIG_NAPIAV__
#pragma once
//==============================================================================
// [BEGIN_USER_CODE_SECTION]
@ -21,6 +20,28 @@
// [END_USER_CODE_SECTION]
//==============================================================================
/*
==============================================================================
In accordance with the terms of the JUCE 5 End-Use License Agreement, the
JUCE Code in SECTION A cannot be removed, changed or otherwise rendered
ineffective unless you have a JUCE Indie or Pro license, or are using JUCE
under the GPL v3 license.
End User License Agreement: www.juce.com/juce-5-licence
==============================================================================
*/
// BEGIN SECTION A
#define JUCE_DISPLAY_SPLASH_SCREEN 0
#define JUCE_REPORT_APP_USAGE 0
// END SECTION A
#define JUCE_USE_DARK_SPLASH_SCREEN 1
//==============================================================================
#define JUCE_MODULE_AVAILABLE_juce_audio_basics 1
#define JUCE_MODULE_AVAILABLE_juce_audio_devices 1
@ -37,7 +58,7 @@
//==============================================================================
#ifndef JUCE_STANDALONE_APPLICATION
#ifdef JucePlugin_Build_Standalone
#if defined(JucePlugin_Name) && defined(JucePlugin_Build_Standalone)
#define JUCE_STANDALONE_APPLICATION JucePlugin_Build_Standalone
#else
#define JUCE_STANDALONE_APPLICATION 0
@ -77,6 +98,10 @@
//#define JUCE_USE_ANDROID_OPENSLES
#endif
#ifndef JUCE_USE_WINRT_MIDI
//#define JUCE_USE_WINRT_MIDI
#endif
//==============================================================================
// juce_audio_formats flags:
@ -172,6 +197,13 @@
//#define JUCE_ALLOW_STATIC_NULL_VARIABLES
#endif
//==============================================================================
// juce_events flags:
#ifndef JUCE_EXECUTE_APP_SUSPEND_ON_IOS_BACKGROUND_TASK
//#define JUCE_EXECUTE_APP_SUSPEND_ON_IOS_BACKGROUND_TASK
#endif
//==============================================================================
// juce_graphics flags:
@ -213,7 +245,6 @@
//#define JUCE_ENABLE_LIVE_CONSTANT_EDITOR
#endif
//==============================================================================
// Audio plugin settings..
@ -238,6 +269,9 @@
#ifndef JucePlugin_Build_STANDALONE
#define JucePlugin_Build_STANDALONE 1
#endif
#ifndef JucePlugin_Enable_IAA
#define JucePlugin_Enable_IAA 0
#endif
#ifndef JucePlugin_Name
#define JucePlugin_Name "AUv3 Synth"
#endif
@ -340,5 +374,12 @@
#ifndef JucePlugin_AAXDisableMultiMono
#define JucePlugin_AAXDisableMultiMono 0
#endif
#endif // __JUCE_APPCONFIG_NAPIAV__
#ifndef JucePlugin_IAAType
#define JucePlugin_IAAType 0x61757269 // 'auri'
#endif
#ifndef JucePlugin_IAASubType
#define JucePlugin_IAASubType JucePlugin_PluginCode
#endif
#ifndef JucePlugin_IAAName
#define JucePlugin_IAAName "ROLI Ltd.: AUv3 Synth"
#endif

View file

@ -4,8 +4,7 @@
*/
#ifndef BINARYDATA_H_43410497_INCLUDED
#define BINARYDATA_H_43410497_INCLUDED
#pragma once
namespace BinaryData
{
@ -25,5 +24,3 @@ namespace BinaryData
// return the corresponding data and its size (or a null pointer if the name isn't found).
const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes) throw();
}
#endif

View file

@ -10,8 +10,7 @@
*/
#ifndef __APPHEADERFILE_NAPIAV__
#define __APPHEADERFILE_NAPIAV__
#pragma once
#include "AppConfig.h"
@ -44,5 +43,3 @@ namespace ProjectInfo
const int versionNumber = 0x10000;
}
#endif
#endif // __APPHEADERFILE_NAPIAV__

View file

@ -0,0 +1,9 @@
/*
IMPORTANT! This file is auto-generated each time you save your
project - if you alter its contents, your changes may be overwritten!
*/
#include "AppConfig.h"
#include <juce_audio_plugin_client_AU.r>

View file

@ -0,0 +1,9 @@
/*
IMPORTANT! This file is auto-generated each time you save your
project - if you alter its contents, your changes may be overwritten!
*/
#include "AppConfig.h"
#include <juce_audio_plugin_client_RTAS.r>

View file

@ -1,17 +1,36 @@
/*
==============================================================================
Copyright (c) 2015 - ROLI Ltd.
This file is part of the JUCE library.
Copyright (c) 2017 - ROLI Ltd.
JUCE is an open source library subject to commercial or open-source
licensing.
By using JUCE, you agree to the terms of both the JUCE 5 End-User License
Agreement and JUCE 5 Privacy Policy (both updated and effective as of the
27th April 2017).
End User License Agreement: www.juce.com/juce-5-licence
Privacy Policy: www.juce.com/juce-5-privacy-policy
Or: You may also use this code under the terms of the GPL v3 (see
www.gnu.org/licenses).
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
DISCLAIMED.
==============================================================================
*/
#include "MaterialLookAndFeel.h"
//==============================================================================
class AUv3SynthEditor : public AudioProcessorEditor,
public ButtonListener,
public Slider::Listener,
private Timer
public ButtonListener,
public Slider::Listener,
private Timer
{
public:
//==============================================================================

View file

@ -1,10 +1,29 @@
/*
==============================================================================
Copyright (c) 2015 - ROLI Ltd.
This file is part of the JUCE library.
Copyright (c) 2017 - ROLI Ltd.
JUCE is an open source library subject to commercial or open-source
licensing.
By using JUCE, you agree to the terms of both the JUCE 5 End-User License
Agreement and JUCE 5 Privacy Policy (both updated and effective as of the
27th April 2017).
End User License Agreement: www.juce.com/juce-5-licence
Privacy Policy: www.juce.com/juce-5-privacy-policy
Or: You may also use this code under the terms of the GPL v3 (see
www.gnu.org/licenses).
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
DISCLAIMED.
==============================================================================
*/
#include "../JuceLibraryCode/JuceHeader.h"
#include "AUv3SynthEditor.h"

View file

@ -1,7 +1,25 @@
/*
==============================================================================
Copyright (c) 2015 - ROLI Ltd.
This file is part of the JUCE library.
Copyright (c) 2017 - ROLI Ltd.
JUCE is an open source library subject to commercial or open-source
licensing.
By using JUCE, you agree to the terms of both the JUCE 5 End-User License
Agreement and JUCE 5 Privacy Policy (both updated and effective as of the
27th April 2017).
End User License Agreement: www.juce.com/juce-5-licence
Privacy Policy: www.juce.com/juce-5-privacy-policy
Or: You may also use this code under the terms of the GPL v3 (see
www.gnu.org/licenses).
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
DISCLAIMED.
==============================================================================
*/
@ -9,7 +27,7 @@
#include "../JuceLibraryCode/JuceHeader.h"
//==============================================================================
class MaterialLookAndFeel : public LookAndFeel_V3
class MaterialLookAndFeel : public LookAndFeel_V4
{
public:
//==============================================================================
@ -24,16 +42,10 @@ public:
void drawButtonBackground (Graphics& g,
Button& button,
const Colour& /*backgroundColour*/,
bool isMouseOverButton,
bool /*isMouseOverButton*/,
bool isButtonDown) override
{
ignoreUnused (isMouseOverButton);
const int width = button.getWidth();
const int height = button.getHeight();
Rectangle<float> buttonRect (0, 0, width, height);
buttonRect.reduce (haloRadius, 0.0f);
const auto buttonRect = button.getLocalBounds().toFloat();
if (isButtonDown)
g.setColour (brightButtonColour.withAlpha (0.7f));
@ -58,7 +70,7 @@ public:
else
g.setColour (backgroundColour);
g.drawFittedText (button.getButtonText(), 0, 1,
g.drawFittedText (button.getButtonText(), 0, 0,
button.getWidth(),
button.getHeight(),
Justification::centred, 2);

View file

@ -2,7 +2,8 @@
<JUCERPROJECT id="LrATE6" name="AnimationAppExample" projectType="guiapp" version="1.0.0"
bundleIdentifier="com.yourcompany.AnimationAppExample" includeBinaryInAppConfig="1"
jucerVersion="4.3.1">
jucerVersion="5.0.0" displaySplashScreen="0" reportAppUsage="0"
splashScreenColour="Dark">
<MAINGROUP id="F3keCY" name="AnimationAppExample">
<GROUP id="{5E4132EA-C4A0-CBDE-BEDA-FD6772DA79D5}" name="Source">
<FILE id="n1FmZc" name="MainComponent.cpp" compile="1" resource="0"
@ -57,29 +58,29 @@
<MODULEPATH id="juce_audio_processors" path="../../modules"/>
</MODULEPATHS>
</XCODE_IPHONE>
<VS2010 targetFolder="Builds/VisualStudio2010">
<VS2017 targetFolder="Builds/VisualStudio2017">
<CONFIGURATIONS>
<CONFIGURATION name="Debug" winWarningLevel="4" generateManifest="1" winArchitecture="32-bit"
<CONFIGURATION name="Debug" winWarningLevel="4" generateManifest="1" winArchitecture="x64"
isDebug="1" optimisation="1" targetName="AnimationAppExample"/>
<CONFIGURATION name="Release" winWarningLevel="4" generateManifest="1" winArchitecture="32-bit"
isDebug="0" optimisation="2" targetName="AnimationAppExample"/>
<CONFIGURATION name="Release" winWarningLevel="4" generateManifest="1" winArchitecture="x64"
isDebug="0" optimisation="3" targetName="AnimationAppExample"/>
</CONFIGURATIONS>
<MODULEPATHS>
<MODULEPATH id="juce_core" path="../../modules"/>
<MODULEPATH id="juce_events" path="../../modules"/>
<MODULEPATH id="juce_graphics" path="../../modules"/>
<MODULEPATH id="juce_data_structures" path="../../modules"/>
<MODULEPATH id="juce_gui_basics" path="../../modules"/>
<MODULEPATH id="juce_gui_extra" path="../../modules"/>
<MODULEPATH id="juce_cryptography" path="../../modules"/>
<MODULEPATH id="juce_video" path="../../modules"/>
<MODULEPATH id="juce_opengl" path="../../modules"/>
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
<MODULEPATH id="juce_audio_formats" path="../../modules"/>
<MODULEPATH id="juce_gui_extra" path="../../modules"/>
<MODULEPATH id="juce_gui_basics" path="../../modules"/>
<MODULEPATH id="juce_graphics" path="../../modules"/>
<MODULEPATH id="juce_events" path="../../modules"/>
<MODULEPATH id="juce_data_structures" path="../../modules"/>
<MODULEPATH id="juce_cryptography" path="../../modules"/>
<MODULEPATH id="juce_core" path="../../modules"/>
<MODULEPATH id="juce_audio_processors" path="../../modules"/>
<MODULEPATH id="juce_audio_formats" path="../../modules"/>
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
</MODULEPATHS>
</VS2010>
</VS2017>
</EXPORTFORMATS>
<MODULES>
<MODULES id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>

View file

@ -1,19 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{1B24A2D5-65BA-C9A3-F617-E93E84F1FF6F}") = "AnimationAppExample", "AnimationAppExample.vcxproj", "{76D4693E-258B-E95E-25F4-37E851715713}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{76D4693E-258B-E95E-25F4-37E851715713}.Debug|Win32.ActiveCfg = Debug|Win32
{76D4693E-258B-E95E-25F4-37E851715713}.Debug|Win32.Build.0 = Debug|Win32
{76D4693E-258B-E95E-25F4-37E851715713}.Release|Win32.ActiveCfg = Release|Win32
{76D4693E-258B-E95E-25F4-37E851715713}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,163 @@
<?xml version="1.0" encoding="UTF-8"?>
<Project DefaultTargets="Build"
ToolsVersion="15.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{D44A6FC4-2DA0-C221-F876-2A2012D2840C}</ProjectGuid>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props"/>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"
Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<PlatformToolset>v141</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"
Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v141</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/>
<ImportGroup Label="ExtensionSettings"/>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform"/>
</ImportGroup>
<PropertyGroup Label="UserMacros">
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<TargetExt>.exe</TargetExt>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)\$(Platform)\$(Configuration)\App\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\App\</IntDir>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AnimationAppExample</TargetName>
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)\$(Platform)\$(Configuration)\App\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\App\</IntDir>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AnimationAppExample</TargetName>
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateManifest>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>Win32</TargetEnvironment>
<HeaderFileName/>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/>
<AssemblerListingLocation>$(IntDir)\</AssemblerListingLocation>
<ObjectFileName>$(IntDir)\</ObjectFileName>
<ProgramDataBaseFileName>$(IntDir)\</ProgramDataBaseFileName>
<WarningLevel>Level4</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<OutputFile>$(OutDir)\AnimationAppExample.exe</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<IgnoreSpecificDefaultLibraries>libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(IntDir)\AnimationAppExample.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<LargeAddressAware>true</LargeAddressAware>
</Link>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>$(IntDir)\AnimationAppExample.bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>Win32</TargetEnvironment>
<HeaderFileName/>
</Midl>
<ClCompile>
<Optimization>Full</Optimization>
<AdditionalIncludeDirectories>..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader/>
<AssemblerListingLocation>$(IntDir)\</AssemblerListingLocation>
<ObjectFileName>$(IntDir)\</ObjectFileName>
<ProgramDataBaseFileName>$(IntDir)\</ProgramDataBaseFileName>
<WarningLevel>Level4</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<OutputFile>$(OutDir)\AnimationAppExample.exe</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>$(IntDir)\AnimationAppExample.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
</Link>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>$(IntDir)\AnimationAppExample.bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\Source\MainComponent.cpp"/>
<ClCompile Include="..\..\Source\Main.cpp"/>
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_basics.cpp"/>
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_devices.cpp"/>
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_formats.cpp"/>
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_processors.cpp"/>
<ClCompile Include="..\..\JuceLibraryCode\include_juce_core.cpp"/>
<ClCompile Include="..\..\JuceLibraryCode\include_juce_cryptography.cpp"/>
<ClCompile Include="..\..\JuceLibraryCode\include_juce_data_structures.cpp"/>
<ClCompile Include="..\..\JuceLibraryCode\include_juce_events.cpp"/>
<ClCompile Include="..\..\JuceLibraryCode\include_juce_graphics.cpp"/>
<ClCompile Include="..\..\JuceLibraryCode\include_juce_gui_basics.cpp"/>
<ClCompile Include="..\..\JuceLibraryCode\include_juce_gui_extra.cpp"/>
<ClCompile Include="..\..\JuceLibraryCode\include_juce_opengl.cpp"/>
<ClCompile Include="..\..\JuceLibraryCode\include_juce_video.cpp"/>
</ItemGroup>
<ItemGroup/>
<ItemGroup>
<ResourceCompile Include=".\resources.rc"/>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
<ImportGroup Label="ExtensionTargets"/>
</Project>

View file

@ -11,8 +11,7 @@
*/
#ifndef __JUCE_APPCONFIG_LRATE6__
#define __JUCE_APPCONFIG_LRATE6__
#pragma once
//==============================================================================
// [BEGIN_USER_CODE_SECTION]
@ -21,6 +20,28 @@
// [END_USER_CODE_SECTION]
//==============================================================================
/*
==============================================================================
In accordance with the terms of the JUCE 5 End-Use License Agreement, the
JUCE Code in SECTION A cannot be removed, changed or otherwise rendered
ineffective unless you have a JUCE Indie or Pro license, or are using JUCE
under the GPL v3 license.
End User License Agreement: www.juce.com/juce-5-licence
==============================================================================
*/
// BEGIN SECTION A
#define JUCE_DISPLAY_SPLASH_SCREEN 0
#define JUCE_REPORT_APP_USAGE 0
// END SECTION A
#define JUCE_USE_DARK_SPLASH_SCREEN 1
//==============================================================================
#define JUCE_MODULE_AVAILABLE_juce_audio_basics 1
#define JUCE_MODULE_AVAILABLE_juce_audio_devices 1
@ -38,7 +59,7 @@
//==============================================================================
#ifndef JUCE_STANDALONE_APPLICATION
#ifdef JucePlugin_Build_Standalone
#if defined(JucePlugin_Name) && defined(JucePlugin_Build_Standalone)
#define JUCE_STANDALONE_APPLICATION JucePlugin_Build_Standalone
#else
#define JUCE_STANDALONE_APPLICATION 1
@ -78,6 +99,10 @@
//#define JUCE_USE_ANDROID_OPENSLES
#endif
#ifndef JUCE_USE_WINRT_MIDI
//#define JUCE_USE_WINRT_MIDI
#endif
//==============================================================================
// juce_audio_formats flags:
@ -151,6 +176,13 @@
//#define JUCE_ALLOW_STATIC_NULL_VARIABLES
#endif
//==============================================================================
// juce_events flags:
#ifndef JUCE_EXECUTE_APP_SUSPEND_ON_IOS_BACKGROUND_TASK
//#define JUCE_EXECUTE_APP_SUSPEND_ON_IOS_BACKGROUND_TASK
#endif
//==============================================================================
// juce_graphics flags:
@ -210,6 +242,3 @@
#ifndef JUCE_USE_CAMERA
//#define JUCE_USE_CAMERA
#endif
#endif // __JUCE_APPCONFIG_LRATE6__

View file

@ -10,8 +10,7 @@
*/
#ifndef __APPHEADERFILE_LRATE6__
#define __APPHEADERFILE_LRATE6__
#pragma once
#include "AppConfig.h"
@ -44,5 +43,3 @@ namespace ProjectInfo
const int versionNumber = 0x10000;
}
#endif
#endif // __APPHEADERFILE_LRATE6__

View file

@ -1,9 +1,25 @@
/*
==============================================================================
This file was auto-generated by the Projucer!
This file is part of the JUCE library.
Copyright (c) 2017 - ROLI Ltd.
It contains the basic startup code for a Juce application.
JUCE is an open source library subject to commercial or open-source
licensing.
By using JUCE, you agree to the terms of both the JUCE 5 End-User License
Agreement and JUCE 5 Privacy Policy (both updated and effective as of the
27th April 2017).
End User License Agreement: www.juce.com/juce-5-licence
Privacy Policy: www.juce.com/juce-5-privacy-policy
Or: You may also use this code under the terms of the GPL v3 (see
www.gnu.org/licenses).
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
DISCLAIMED.
==============================================================================
*/
@ -62,7 +78,8 @@ public:
{
public:
MainWindow (String name) : DocumentWindow (name,
Colours::lightgrey,
LookAndFeel::getDefaultLookAndFeel()
.findColour (ResizableWindow::backgroundColourId),
DocumentWindow::allButtons)
{
setUsingNativeTitleBar (true);

View file

@ -1,14 +1,29 @@
/*
==============================================================================
This file was auto-generated!
This file is part of the JUCE library.
Copyright (c) 2017 - ROLI Ltd.
JUCE is an open source library subject to commercial or open-source
licensing.
By using JUCE, you agree to the terms of both the JUCE 5 End-User License
Agreement and JUCE 5 Privacy Policy (both updated and effective as of the
27th April 2017).
End User License Agreement: www.juce.com/juce-5-licence
Privacy Policy: www.juce.com/juce-5-privacy-policy
Or: You may also use this code under the terms of the GPL v3 (see
www.gnu.org/licenses).
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
DISCLAIMED.
==============================================================================
*/
#ifndef MAINCOMPONENT_H_INCLUDED
#define MAINCOMPONENT_H_INCLUDED
#include "../JuceLibraryCode/JuceHeader.h"
//==============================================================================
@ -35,9 +50,9 @@ public:
void paint (Graphics& g) override
{
// (Our component is opaque, so we must completely fill the background with a solid colour)
g.fillAll (Colours::black);
g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId));
g.setColour (Colours::white);
g.setColour (getLookAndFeel().findColour (Slider::thumbColourId));
const int fishLength = 15;
Path spinePath;
@ -82,6 +97,3 @@ private:
// (This function is called by the app startup code to create our main component)
Component* createMainContentComponent() { return new MainContentComponent(); }
#endif // MAINCOMPONENT_H_INCLUDED

View file

@ -2,7 +2,8 @@
<JUCERPROJECT id="PAnJXP" name="AudioAppExample" projectType="guiapp" version="1.0.0"
bundleIdentifier="com.yourcompany.AudioAppExample" includeBinaryInAppConfig="1"
jucerVersion="4.3.1">
jucerVersion="5.0.0" displaySplashScreen="0" reportAppUsage="0"
splashScreenColour="Dark">
<MAINGROUP id="GaJIge" name="AudioAppExample">
<GROUP id="{168FC5D4-FA65-8320-F83E-C14C416638E1}" name="Source">
<FILE id="aHvhJ2" name="MainComponent.cpp" compile="1" resource="0"
@ -59,30 +60,30 @@
<MODULEPATH id="juce_audio_utils" path="../../modules"/>
</MODULEPATHS>
</XCODE_IPHONE>
<VS2010 targetFolder="Builds/VisualStudio2010">
<VS2017 targetFolder="Builds/VisualStudio2017">
<CONFIGURATIONS>
<CONFIGURATION name="Debug" winWarningLevel="4" generateManifest="1" winArchitecture="32-bit"
<CONFIGURATION name="Debug" winWarningLevel="4" generateManifest="1" winArchitecture="x64"
isDebug="1" optimisation="1" targetName="AudioAppExample"/>
<CONFIGURATION name="Release" winWarningLevel="4" generateManifest="1" winArchitecture="32-bit"
isDebug="0" optimisation="2" targetName="AudioAppExample"/>
<CONFIGURATION name="Release" winWarningLevel="4" generateManifest="1" winArchitecture="x64"
isDebug="0" optimisation="3" targetName="AudioAppExample"/>
</CONFIGURATIONS>
<MODULEPATHS>
<MODULEPATH id="juce_core" path="../../modules"/>
<MODULEPATH id="juce_events" path="../../modules"/>
<MODULEPATH id="juce_graphics" path="../../modules"/>
<MODULEPATH id="juce_data_structures" path="../../modules"/>
<MODULEPATH id="juce_gui_basics" path="../../modules"/>
<MODULEPATH id="juce_gui_extra" path="../../modules"/>
<MODULEPATH id="juce_cryptography" path="../../modules"/>
<MODULEPATH id="juce_video" path="../../modules"/>
<MODULEPATH id="juce_opengl" path="../../modules"/>
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
<MODULEPATH id="juce_audio_formats" path="../../modules"/>
<MODULEPATH id="juce_audio_processors" path="../../modules"/>
<MODULEPATH id="juce_gui_extra" path="../../modules"/>
<MODULEPATH id="juce_gui_basics" path="../../modules"/>
<MODULEPATH id="juce_graphics" path="../../modules"/>
<MODULEPATH id="juce_events" path="../../modules"/>
<MODULEPATH id="juce_data_structures" path="../../modules"/>
<MODULEPATH id="juce_cryptography" path="../../modules"/>
<MODULEPATH id="juce_core" path="../../modules"/>
<MODULEPATH id="juce_audio_utils" path="../../modules"/>
<MODULEPATH id="juce_audio_processors" path="../../modules"/>
<MODULEPATH id="juce_audio_formats" path="../../modules"/>
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
</MODULEPATHS>
</VS2010>
</VS2017>
</EXPORTFORMATS>
<MODULES>
<MODULES id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>

View file

@ -1,19 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{2E378E24-A882-72B1-F070-ABCF45D0CB11}") = "AudioAppExample", "AudioAppExample.vcxproj", "{98301F26-3786-86BB-BD55-8BBF7C70DA8D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{98301F26-3786-86BB-BD55-8BBF7C70DA8D}.Debug|Win32.ActiveCfg = Debug|Win32
{98301F26-3786-86BB-BD55-8BBF7C70DA8D}.Debug|Win32.Build.0 = Debug|Win32
{98301F26-3786-86BB-BD55-8BBF7C70DA8D}.Release|Win32.ActiveCfg = Release|Win32
{98301F26-3786-86BB-BD55-8BBF7C70DA8D}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

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