| 
							- #pragma once
 - 
 - %%include_juce%%
 - 
 - //==============================================================================
 - /*
 -     This component lives inside our window, and this is where you should put all
 -     your controls and content.
 - */
 - class %%content_component_class%%  : public juce::AudioAppComponent
 - {
 - public:
 -     //==============================================================================
 -     %%content_component_class%%()
 -     {
 -         // Make sure you set the size of the component after
 -         // you add any child components.
 -         setSize (800, 600);
 - 
 -         // Some platforms require permissions to open input channels so request that here
 -         if (juce::RuntimePermissions::isRequired (juce::RuntimePermissions::recordAudio)
 -             && ! juce::RuntimePermissions::isGranted (juce::RuntimePermissions::recordAudio))
 -         {
 -             juce::RuntimePermissions::request (juce::RuntimePermissions::recordAudio,
 -                                                [&] (bool granted) { setAudioChannels (granted ? 2 : 0, 2); });
 -         }
 -         else
 -         {
 -             // Specify the number of input and output channels that we want to open
 -             setAudioChannels (2, 2);
 -         }
 -     }
 - 
 -     ~%%content_component_class%%() override
 -     {
 -         // This shuts down the audio device and clears the audio source.
 -         shutdownAudio();
 -     }
 - 
 -     //==============================================================================
 -     void prepareToPlay (int samplesPerBlockExpected, double sampleRate) override
 -     {
 -         // This function will be called when the audio device is started, or when
 -         // its settings (i.e. sample rate, block size, etc) are changed.
 - 
 -         // You can use this function to initialise any resources you might need,
 -         // but be careful - it will be called on the audio thread, not the GUI thread.
 - 
 -         // For more details, see the help for AudioProcessor::prepareToPlay()
 -     }
 - 
 -     void getNextAudioBlock (const juce::AudioSourceChannelInfo& bufferToFill) override
 -     {
 -         // Your audio-processing code goes here!
 - 
 -         // For more details, see the help for AudioProcessor::getNextAudioBlock()
 - 
 -         // Right now we are not producing any data, in which case we need to clear the buffer
 -         // (to prevent the output of random noise)
 -         bufferToFill.clearActiveBufferRegion();
 -     }
 - 
 -     void releaseResources() override
 -     {
 -         // This will be called when the audio device stops, or when it is being
 -         // restarted due to a setting change.
 - 
 -         // For more details, see the help for AudioProcessor::releaseResources()
 -     }
 - 
 -     //==============================================================================
 -     void paint (juce::Graphics& g) override
 -     {
 -         // (Our component is opaque, so we must completely fill the background with a solid colour)
 -         g.fillAll (getLookAndFeel().findColour (juce::ResizableWindow::backgroundColourId));
 - 
 -         // You can add your drawing code here!
 -     }
 - 
 -     void resized() override
 -     {
 -         // This is called when the MainContentComponent is resized.
 -         // If you add any child components, this is where you should
 -         // update their positions.
 -     }
 - 
 - 
 - private:
 -     //==============================================================================
 -     // Your private member variables go here...
 - 
 - 
 -     JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (%%content_component_class%%)
 - };
 
 
  |