pub struct Config {Show 14 fields
pub name: &'static str,
pub category: Category,
pub vendor: &'static str,
pub url: &'static str,
pub email: &'static str,
pub version: &'static str,
pub has_editor: bool,
pub subcategories: &'static [Subcategory],
pub manufacturer: FourCharCode,
pub subtype: FourCharCode,
pub vst3_id: Option<[u32; 4]>,
pub vst3_controller_id: Option<[u32; 4]>,
pub sysex_slots: usize,
pub sysex_buffer_size: usize,
}Expand description
Unified plugin configuration.
Contains all plugin metadata: shared fields (name, vendor, category), plugin identity (AU four-char codes), and format-specific settings (VST3 component UIDs). The VST3 component UID is derived automatically from the AU codes via FNV-1a hash unless explicitly overridden.
§Example
use beamer_core::{Config, config::Category};
pub static CONFIG: Config = Config::new("My Plugin", Category::Effect, "Mfgr", "plgn")
.with_vendor("My Company")
.with_version(env!("CARGO_PKG_VERSION"));Fields§
§name: &'static strPlugin name displayed in the DAW.
category: CategoryPlugin category (effect, instrument, etc.)
vendor: &'static strVendor/company name.
url: &'static strVendor URL.
email: &'static strVendor email.
version: &'static strPlugin version string.
has_editor: boolWhether this plugin has an editor/GUI.
subcategories: &'static [Subcategory]Plugin subcategories for more specific classification.
manufacturer: FourCharCodeManufacturer code (4-character identifier for your company/brand).
subtype: FourCharCodeSubtype code (4-character identifier for this specific plugin).
vst3_id: Option<[u32; 4]>Explicit VST3 component UID override. When None, the UID is
derived from the manufacturer and subtype codes via FNV-1a hash.
vst3_controller_id: Option<[u32; 4]>Explicit VST3 controller UID. When None, the plugin uses the
combined component pattern (processor + controller in one object).
sysex_slots: usizeNumber of SysEx output slots per process block (AU and VST3).
sysex_buffer_size: usizeMaximum size of each SysEx message in bytes (AU and VST3).
Implementations§
Source§impl Config
impl Config
Sourcepub const fn new(
name: &'static str,
category: Category,
manufacturer_code: &str,
plugin_code: &str,
) -> Self
pub const fn new( name: &'static str, category: Category, manufacturer_code: &str, plugin_code: &str, ) -> Self
Create a new plugin configuration.
§Arguments
name- Plugin name displayed in the DAWcategory- Plugin category (effect, instrument, etc.)manufacturer_code- 4-character manufacturer code (e.g., “Bmer”)plugin_code- 4-character plugin code (e.g., “gain”)
§Panics
Panics at compile time if manufacturer_code or plugin_code are not exactly 4 ASCII characters.
§Example
pub static CONFIG: Config = Config::new("My Plugin", Category::Effect, "Mfgr", "plgn")
.with_vendor("My Company")
.with_version(env!("CARGO_PKG_VERSION"));Sourcepub const fn vst3_uid_parts(&self) -> [u32; 4]
pub const fn vst3_uid_parts(&self) -> [u32; 4]
Get VST3 component UID as [u32; 4].
Returns the explicit override if set via with_vst3_id(), otherwise
derives a UID from the manufacturer and subtype codes via FNV-1a hash.
Sourcepub const fn vst3_controller_uid_parts(&self) -> Option<[u32; 4]>
pub const fn vst3_controller_uid_parts(&self) -> Option<[u32; 4]>
Get VST3 controller UID as [u32; 4], if split component/controller mode is enabled.
Sourcepub const fn manufacturer_u32(&self) -> u32
pub const fn manufacturer_u32(&self) -> u32
Get the manufacturer code as a u32.
Sourcepub const fn subtype_u32(&self) -> u32
pub const fn subtype_u32(&self) -> u32
Get the subtype code as a u32.
Sourcepub fn vst3_subcategories(&self) -> String
pub fn vst3_subcategories(&self) -> String
Build the VST3 subcategories string.
Combines the main category with subcategories using pipe separators.
For example: Category::Effect with [Subcategory::Dynamics] becomes "Fx|Dynamics".
Get AU tags derived from subcategories.
Returns tags for subcategories that have AU equivalents. Subcategories without AU mappings are skipped.