/* ==================================== JUCER_BINARY_RESOURCE ====================================

   This is an auto-generated file: Any edits you make may be overwritten!

*/

#include <cstring>

namespace BinaryData
{

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

const char* jucer_AudioComponentTemplate_cpp = (const char*) temp_binary_data_22;
}
