1 /*
2   ==============================================================================
3 
4    This file is part of the JUCE library.
5    Copyright (c) 2020 - Raw Material Software Limited
6 
7    JUCE is an open source library subject to commercial or open-source
8    licensing.
9 
10    By using JUCE, you agree to the terms of both the JUCE 6 End-User License
11    Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020).
12 
13    End User License Agreement: www.juce.com/juce-6-licence
14    Privacy Policy: www.juce.com/juce-privacy-policy
15 
16    Or: You may also use this code under the terms of the GPL v3 (see
17    www.gnu.org/licenses).
18 
19    JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20    EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21    DISCLAIMED.
22 
23   ==============================================================================
24 */
25 
26 #include <JuceHeader.h>
27 #include "../../../Assets/DemoUtilities.h"
28 #include "JUCEDemos.h"
29 
30 #include "../../../Assets/AudioLiveScrollingDisplay.h"
31 
32 //==============================================================================
33 #include "IntroScreen.h"
34 #include "../../../Audio/AudioAppDemo.h"
35 #include "../../../Audio/AudioLatencyDemo.h"
36 #include "../../../Audio/AudioPlaybackDemo.h"
37 #include "../../../Audio/AudioRecordingDemo.h"
38 #include "../../../Audio/AudioSettingsDemo.h"
39 #include "../../../Audio/AudioSynthesiserDemo.h"
40 #include "../../../Audio/MidiDemo.h"
41 #include "../../../Audio/MPEDemo.h"
42 #include "../../../Audio/PluckedStringsDemo.h"
43 #include "../../../Audio/SimpleFFTDemo.h"
44 
45 #include "../../../BLOCKS/BlocksDrawingDemo.h"
46 #include "../../../BLOCKS/BlocksMonitorDemo.h"
47 #include "../../../BLOCKS/BlocksSynthDemo.h"
48 
49 #include "../../../DSP/ConvolutionDemo.h"
50 #include "../../../DSP/FIRFilterDemo.h"
51 #include "../../../DSP/GainDemo.h"
52 #include "../../../DSP/IIRFilterDemo.h"
53 #include "../../../DSP/OscillatorDemo.h"
54 #include "../../../DSP/OverdriveDemo.h"
55 #if JUCE_USE_SIMD
56  #include "../../../DSP/SIMDRegisterDemo.h"
57 #endif
58 #include "../../../DSP/StateVariableFilterDemo.h"
59 #include "../../../DSP/WaveShaperTanhDemo.h"
60 
61 #include "../../../Utilities/Box2DDemo.h"
62 #if JUCE_MAC || JUCE_WINDOWS || JUCE_LINUX || JUCE_BSD
63  #include "../../../Utilities/ChildProcessDemo.h"
64 #endif
65 #include "../../../Utilities/CryptographyDemo.h"
66 #include "../../../Utilities/JavaScriptDemo.h"
67 #include "../../../Utilities/LiveConstantDemo.h"
68 #include "../../../Utilities/MultithreadingDemo.h"
69 #include "../../../Utilities/NetworkingDemo.h"
70 #include "../../../Utilities/OSCDemo.h"
71 #include "../../../Utilities/SystemInfoDemo.h"
72 #include "../../../Utilities/TimersAndEventsDemo.h"
73 #include "../../../Utilities/UnitTestsDemo.h"
74 #include "../../../Utilities/ValueTreesDemo.h"
75 #include "../../../Utilities/XMLandJSONDemo.h"
76 
registerDemos_One()77 void registerDemos_One() noexcept
78 {
79     REGISTER_DEMO (AudioAppDemo,            Audio,     false)
80     REGISTER_DEMO (AudioLatencyDemo,        Audio,     false)
81     REGISTER_DEMO (AudioPlaybackDemo,       Audio,     false)
82     REGISTER_DEMO (AudioRecordingDemo,      Audio,     false)
83     REGISTER_DEMO (AudioSettingsDemo,       Audio,     false)
84     REGISTER_DEMO (AudioSynthesiserDemo,    Audio,     false)
85     REGISTER_DEMO (MidiDemo,                Audio,     false)
86     REGISTER_DEMO (MPEDemo,                 Audio,     false)
87     REGISTER_DEMO (PluckedStringsDemo,      Audio,     false)
88 
89     REGISTER_DEMO (SimpleFFTDemo,           Audio,     false)
90     REGISTER_DEMO (BlocksDrawingDemo,       BLOCKS,    false)
91     REGISTER_DEMO (BlocksMonitorDemo,       BLOCKS,    false)
92     REGISTER_DEMO (BlocksSynthDemo,         BLOCKS,    false)
93 
94     REGISTER_DEMO (ConvolutionDemo,         DSP,       false)
95     REGISTER_DEMO (FIRFilterDemo,           DSP,       false)
96     REGISTER_DEMO (GainDemo,                DSP,       false)
97     REGISTER_DEMO (IIRFilterDemo,           DSP,       false)
98     REGISTER_DEMO (OscillatorDemo,          DSP,       false)
99     REGISTER_DEMO (OverdriveDemo,           DSP,       false)
100     #if JUCE_USE_SIMD
101      REGISTER_DEMO (SIMDRegisterDemo,       DSP,       false)
102     #endif
103     REGISTER_DEMO (StateVariableFilterDemo, DSP,       false)
104     REGISTER_DEMO (WaveShaperTanhDemo,      DSP,       false)
105 
106     REGISTER_DEMO (Box2DDemo,               Utilities, false)
107    #if JUCE_MAC || JUCE_WINDOWS || JUCE_LINUX || JUCE_BSD
108     REGISTER_DEMO (ChildProcessDemo,        Utilities, false)
109    #endif
110     REGISTER_DEMO (CryptographyDemo,        Utilities, false)
111     REGISTER_DEMO (JavaScriptDemo,          Utilities, false)
112     REGISTER_DEMO (LiveConstantDemo,        Utilities, false)
113     REGISTER_DEMO (MultithreadingDemo,      Utilities, false)
114     REGISTER_DEMO (NetworkingDemo,          Utilities, false)
115     REGISTER_DEMO (OSCDemo,                 Utilities, false)
116     REGISTER_DEMO (SystemInfoDemo,          Utilities, false)
117     REGISTER_DEMO (TimersAndEventsDemo,     Utilities, false)
118     REGISTER_DEMO (UnitTestsDemo,           Utilities, false)
119     REGISTER_DEMO (ValueTreesDemo,          Utilities, false)
120     REGISTER_DEMO (XMLandJSONDemo,          Utilities, false)
121 }
122 
createIntroDemo()123 Component* createIntroDemo()
124 {
125     return new IntroScreen();
126 }
127 
isComponentIntroDemo(Component * comp)128 bool isComponentIntroDemo (Component* comp) noexcept
129 {
130     return (dynamic_cast<IntroScreen*> (comp) != nullptr);
131 }
132