// House of Mixtape — DAW Plugin (Path 2) // Skeleton AudioProcessor. Does no DSP yet; lives only to host the editor. #pragma once #include #include "HomApiClient.h" class HomAudioProcessor : public juce::AudioProcessor { public: HomAudioProcessor(); ~HomAudioProcessor() override = default; // ── AudioProcessor lifecycle ────────────────────────────────────── void prepareToPlay (double sampleRate, int samplesPerBlock) override; void releaseResources() override; bool isBusesLayoutSupported (const BusesLayout&) const override; void processBlock (juce::AudioBuffer&, juce::MidiBuffer&) override; // ── Boilerplate JUCE host queries ───────────────────────────────── juce::AudioProcessorEditor* createEditor() override; bool hasEditor() const override { return true; } const juce::String getName() const override { return "House of Mixtape"; } bool acceptsMidi() const override { return false; } bool producesMidi() const override { return false; } bool isMidiEffect() const override { return false; } double getTailLengthSeconds() const override { return 0.0; } int getNumPrograms() override { return 1; } int getCurrentProgram() override { return 0; } void setCurrentProgram (int) override {} const juce::String getProgramName (int) override { return {}; } void changeProgramName (int, const juce::String&) override {} void getStateInformation (juce::MemoryBlock&) override; void setStateInformation (const void*, int) override; // ── House of Mixtape — exposed to the editor ────────────────────── HomApiClient& getApiClient() { return apiClient; } private: HomApiClient apiClient; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (HomAudioProcessor) };