// reasampler_vst.h — shared identity constants for the ReaSampler VST3 instrument: the
// plugin's class UID, vendor name/URL/email, so the processor, factory, and editor agree.
// A class UID is FOREVER-STABLE once shipped (see this directory's CLAUDE.md) — minted
// once, never regenerated. Filename + display name are channel-derived from app_version's
// string accessors; this header owns only the binary UID identity.

#pragma once

#include "pluginterfaces/base/funknown.h"

#include "core/wire/reasampler_uid.h"  // the FROZEN UID macros + channel selection (SDK-free values)

namespace reasampler::vst {

// Vendor identity, shared across channels — the channel is carried by the UID + filename +
// display fork, not the vendor block.
inline constexpr const char* kVendorName = "ReaSampler";
inline constexpr const char* kVendorUrl = "https://github.com/daniel-c-harvey/reasampler";
inline constexpr const char* kVendorEmail = "mailto:the.real.daniel.harvey@gmail.com";

// The two FOREVER-FROZEN VST3 class UIDs — one per channel — live in reasampler_uid.h
// (SDK-free, so the extension's pure instrument_drop can render the .vstpreset class-ID
// string from the same constants without pulling the VST3 SDK). The channel bit selects
// which one this binary's factory registers — one class per binary, never both.

// The runtime FUID for the class this binary registers — the channel-selected UID.
static const Steinberg::FUID kReaSamplerProcessorUID(REASAMPLER_ACTIVE_UID_1,
                                                     REASAMPLER_ACTIVE_UID_2,
                                                     REASAMPLER_ACTIVE_UID_3,
                                                     REASAMPLER_ACTIVE_UID_4);

}  // namespace reasampler::vst
