sst-filters
Filters submodule for the Surge Synthesizer
Loading...
Searching...
No Matches
Namespaces | Functions
configuration_selector.h File Reference

Namespaces

namespace  sst
 Parent namespace for all Surge Synth Team code.
 
namespace  sst::filtersplusplus
 configuration_selector contains a set of useful functions to genreate uis and allow users to navigate the configuration space more naturally than the simple flat list in the core api.
 

Functions

bool isModelConfigValid (const FilterModel &fm, const ModelConfig &tc)
 A simple boolean check of if a given model config is valid for a given model.
 
bool isPartialConfigValid (const FilterModel &fm, Passband p)
 This API allows you to build a partial config and test if you are valid so far.
 
bool isPartialConfigValid (const FilterModel &fm, Passband p, Slope s)
 
bool isPartialConfigValid (const FilterModel &fm, Passband p, Slope s, DriveMode d)
 
template<is_modelconfig_enum T, typename... Args>
requires (is_modelconfig_enum<Args> && ...)
bool isPartialMatch (const ModelConfig &mc, Args... cstr)
 isPartialMatch is just a utility where you can send a model config and then any subset of enums and get a true/false.
 
ModelConfig closestValidModelTo (const FilterModel &fm, const ModelConfig &mc)
 Given a model config, which is the 'closes' valid model to the one handed in.
 
template<is_modelconfig_enum T>
std::vector< T > potentialValuesFor (const FilterModel &fm)
 Given an enum type, what are the potential values this model could support for just that dimension.
 
template<is_modelconfig_enum T>
bool supportsChoice (const FilterModel &fm)
 If a model doesn't use a particular dimension at all (namely all values of that dimension are UNSUPPORTED) return true.
 
template<is_modelconfig_enum T>
std::vector< std::pair< T, bool > > valuesAndValidityForPartialConfig (const FilterModel &fm)
 To probe a partial config, you want to know which values are possible valid and either get a list with only valid ones, or get a list of values with validity.
 
template<is_modelconfig_enum T>
std::vector< std::pair< T, bool > > valuesAndValidityForPartialConfig (const FilterModel &fm, Passband p)
 
template<is_modelconfig_enum T>
std::vector< std::pair< T, bool > > valuesAndValidityForPartialConfig (const FilterModel &fm, Passband p, Slope s)
 
template<is_modelconfig_enum T>
std::vector< std::pair< T, bool > > valuesAndValidityForPartialConfig (const FilterModel &fm, Passband p, Slope s, DriveMode d)
 
template<is_modelconfig_enum T, typename... Args>
requires (is_distinct_modelconfig_enum<Args, T> && ...)
std::vector< std::pair< T, bool > > valuesAndValidityForPartiaulConfig (const FilterModel &fm, Args... args)
 
template<is_modelconfig_enum T>
std::vector< T > valuesForPartialConfig (const FilterModel &fm)
 And this provides the filtered version, so items in the above api with false here would just not appear in the list.
 
template<is_modelconfig_enum T>
std::vector< T > valuesForPartialConfig (const FilterModel &fm, const Passband &p)
 
template<is_modelconfig_enum T>
std::vector< T > valuesForPartialConfig (const FilterModel &fm, const Passband &p, const Slope &s)
 
template<is_modelconfig_enum T>
std::vector< T > valuesForPartialConfig (const FilterModel &fm, const Passband &p, const Slope &s, const DriveMode &d)
 
template<is_modelconfig_enum T, typename... Args>
requires (is_distinct_modelconfig_enum<Args, T> && ...)
std::vector< T > valuesForPartialConfig (const FilterModel &fm, Args... args)
 
template<is_modelconfig_enum T, typename... Args>
requires (is_distinct_modelconfig_enum<Args, T> && ...)
bool noChoicesOrOnlyUnsupported (const FilterModel &fm, Args... args)