Struct thl::ParameterDefinition#

struct ParameterDefinition#

Collaboration diagram for thl::ParameterDefinition:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "3" [label="std::basic_string< Char >" tooltip="std::basic_string< Char >"] "2" [label="std::string" tooltip="std::string"] "5" [label="thl::NormalizationCurve" tooltip="thl::NormalizationCurve"] "1" [label="thl::ParameterDefinition" tooltip="thl::ParameterDefinition" fillcolor="#BFBFBF"] "4" [label="thl::Range" tooltip="thl::Range"] "7" [label="thl::modulation::ModulationScope" tooltip="thl::modulation::ModulationScope"] "6" [label="std::vector< std::string >" tooltip="std::vector< std::string >"] "2" -> "3" [dir=forward tooltip="public-inheritance"] "1" -> "2" [dir=forward tooltip="usage"] "1" -> "4" [dir=forward tooltip="usage"] "1" -> "6" [dir=forward tooltip="usage"] "1" -> "7" [dir=forward tooltip="usage"] "4" -> "5" [dir=forward tooltip="usage"] "6" -> "2" [dir=forward tooltip="usage"] }

Public Functions

inline float as_float() const#
inline int as_int() const#
inline bool as_bool() const#
inline bool is_automatable() const#
inline bool is_modulatable() const#
inline ParameterDefinition &unit(std::string u)#
inline ParameterDefinition &short_name(std::string s)#
inline ParameterDefinition &decimal_places(size_t dp)#
inline ParameterDefinition &polarity(SliderPolarity p)#
inline ParameterDefinition &flags(uint32_t f)#
inline ParameterDefinition &automatable(bool v)#
inline ParameterDefinition &modulatable(bool v)#
inline ParameterDefinition &param_id(uint32_t i)#
inline ParameterDefinition &choices(std::vector<std::string> c)#
inline ParameterDefinition &value_to_text_fn(std::function<std::string(float)> fn)#
inline ParameterDefinition &text_to_value_fn(std::function<float(const std::string&)> fn)#
inline ParameterDefinition &modulation_scope(thl::modulation::ModulationScope scope)#
inline void ensure_formatters()#

Generate default formatters based on m_type if not already set.

Called by State::create_in_root() to ensure every parameter has formatters.

Public Members

std::string m_name#
ParameterType m_type = ParameterType::Float#
Range m_range#
float m_default_value = 0.0f#
size_t m_decimal_places = 2#
uint32_t m_flags = ParameterFlags::k_default#
SliderPolarity m_polarity = SliderPolarity::Unipolar#
uint32_t m_id = UINT32_MAX#
std::string m_unit#
std::string m_short_name#
std::vector<std::string> m_choices#
thl::modulation::ModulationScope m_modulation_scope = thl::modulation::k_global_scope#
std::string m_pending_scope_name#
std::function<std::string(float)> m_value_to_text#
std::function<float(const std::string&)> m_text_to_value#

Public Static Functions

static inline ParameterDefinition make_float(std::string name, Range range, float default_val, size_t dp = 2)#
static inline ParameterDefinition make_int(std::string name, Range range, int default_val)#
static inline ParameterDefinition make_bool(std::string name, bool default_val = false)#
static inline ParameterDefinition make_choice(std::string name, std::vector<std::string> choice_labels, int default_val = 0)#
static inline std::function<std::string(float)> make_float_formatter(size_t dp)#
static inline std::function<float(const std::string&)> make_float_parser()#
static inline std::function<std::string(float)> make_int_formatter()#
static inline std::function<float(const std::string&)> make_int_parser()#
static inline std::function<std::string(float)> make_bool_formatter()#
static inline std::function<float(const std::string&)> make_bool_parser()#
static inline std::function<std::string(float)> make_choice_formatter(const std::vector<std::string> &labels)#
static inline std::function<float(const std::string&)> make_choice_parser(const std::vector<std::string> &labels)#