HouseOfMixtape-DAW-Plugin/Source/PluginProcessor.h

48 lines
2.0 KiB
C++

// House of Mixtape — DAW Plugin (Path 2)
// Skeleton AudioProcessor. Does no DSP yet; lives only to host the editor.
#pragma once
#include <juce_audio_processors/juce_audio_processors.h>
#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<float>&, 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)
};