48 lines
2.0 KiB
C++
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)
|
|
};
|