# SPDX-License-Identifier: GPL-3.0-or-later # branding.conf - this plugin's canonical identity. # # Managed by tools/brand-plugin.sh, read by tools/check-branding.sh. Hand-editing # works and is sometimes the quickest thing, but the helper is what keeps this # file, the source tree and tools/branding-sites.tsv agreeing with each other. # Edit here and you are on the hook for running the checker afterwards. # --- derivations ------------------------------------------------------------ # Defined before the values so the defaults below can use them. # Package name: lowercased, every run of non-alphanumerics becomes one # underscore. Cargo accepts hyphens too and maps them to underscores for the # built artifact, which nih_plug_xtask already handles; underscores are used to # match the Rust convention. _derive_pkg() { printf '%s' "$1" | tr '[:upper:]' '[:lower:]' \ | sed -e 's/[^a-z0-9]\{1,\}/_/g' -e 's/^_//' -e 's/_$//' } # Rust type name: CamelCase, non-alphanumerics dropped. _derive_struct() { printf '%s' "$1" | sed -e 's/[^A-Za-z0-9]\{1,\}/ /g' \ | awk '{for(i=1;i<=NF;i++) printf "%s%s", toupper(substr($i,1,1)), substr($i,2); print ""}' } # --- the names --------------------------------------------------------------- PLUGIN_NAME="Plugin Name" # the one name everything else derives from VENDOR="Your Name" # Plugin::VENDOR - the org, not the person EMAIL="your@email.com" # Plugin::EMAIL # Cargo's authors entry names whoever wrote it, which is not always the vendor: # an org ships the plugin, a person authored it. Defaults to VENDOR when the two # are the same, which is the common case for a one-person project. # AUTHOR="Your Name" HOMEPAGE="https://github.com/YOUR-USERNAME/YOUR-PLUGIN-NAME" # -> Plugin::URL DESCRIPTION="A minimal NIH-plug audio plugin" # Cargo description # What the plugin does *now*. No codename, no "prototype", no "v2 rewrite" - # hosts show this to users who never knew any of that. check-branding.sh # enforces the mechanical half by rejecting retired names and the repo codename. CLAP_DESCRIPTION="Your plugin description" # --- frozen identity --------------------------------------------------------- # Hosts key saved projects and presets off these two. Change either and every # existing session silently loses the plugin: the track comes up empty, with no # error. Choose once before the first release, then never again. # brand-plugin.sh refuses to move them without --allow-identity-change. CLAP_ID="com.your-domain.plugin-name" # reverse-DNS, lowercase, no spaces VST3_CLASS_ID="Unique16CharId!!" # MUST be exactly 16 bytes # --- fixed at repo creation -------------------------------------------------- # The repository's own name. Deliberately NOT renamed when the plugin is: the # repo keeps its development codename while the plugin gets a product name. # Recorded only so it can be kept out of user-facing text. CODENAME="nih-plug-template" # Where the two Rust types are defined. A plugin whose params outgrow lib.rs # points PARAMS_FILE at src/params.rs. LIB_FILE="src/lib.rs" PARAMS_FILE="src/lib.rs" # --- derived unless overridden ----------------------------------------------- # Set one only when the derivation is wrong or rejected - a name like # "206 Prototype" derives to "206_prototype", which cargo refuses because a # package name cannot start with a digit. # # This template overrides three of them, which a real plugin usually will not: # its package and type names are the template's own rather than derived from a # product name. Delete these three lines after renaming and the derivations # from PLUGIN_NAME take over. PKG="nih_plug_template" STRUCT="MyPlugin" PARAMS_STRUCT="PluginParams" # DISPLAY="Plugin Name" # defaults to PLUGIN_NAME : "${AUTHOR:=$VENDOR}" : "${DISPLAY:=$PLUGIN_NAME}" : "${PKG:=$(_derive_pkg "$PLUGIN_NAME")}" : "${STRUCT:=$(_derive_struct "$PLUGIN_NAME")}" : "${PARAMS_STRUCT:=${STRUCT}Params}" # --- retired spellings ------------------------------------------------------- # Must no longer appear in tracked files. An entry is skipped while it is still # part of a canonical value above and arms the moment it stops being one, so a # rename is self-checking in both directions. brand-plugin.sh appends here. STALE="nih_plug_template MyPlugin PluginParams A minimal NIH-plug audio plugin Your plugin description Plugin Name Your Name your@email.com com.your-domain.plugin-name Unique16CharId!! YOUR-USERNAME YOUR-PLUGIN-NAME your-domain"