#pragma once #include #include "PluginProcessor.h" #include "parser/FileParser.h" #include "parser/FrameProducer.h" #include "components/VisualiserComponent.h" #include "audio/PitchDetector.h" class OscirenderAudioProcessorEditor; class MainComponent : public juce::GroupComponent { public: MainComponent(OscirenderAudioProcessor&, OscirenderAudioProcessorEditor&); ~MainComponent() override; void resized() override; void updateFileLabel(); private: OscirenderAudioProcessor& audioProcessor; OscirenderAudioProcessorEditor& pluginEditor; std::unique_ptr chooser; juce::TextButton fileButton; juce::TextButton closeFileButton; juce::Label fileLabel; juce::TextEditor fileName; juce::ComboBox fileType; juce::TextButton createFile{"Create File"}; VisualiserComponent visualiser{2, audioProcessor}; juce::Label frequencyLabel; int callbackIndex = -1; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(MainComponent) };