13#ifndef ZEPHYR_INCLUDE_MPIPE_MPIPE_VALUE_H_
14#define ZEPHYR_INCLUDE_MPIPE_MPIPE_VALUE_H_
115#define MPIPE_VALUE_BOOLEAN(v) {.type = MPIPE_TYPE_BOOLEAN, .v_boolean = (v)}
121#define MPIPE_VALUE_INT(v) {.type = MPIPE_TYPE_INT, .v_int = (v)}
127#define MPIPE_VALUE_UINT(v) {.type = MPIPE_TYPE_UINT, .v_uint = (v)}
129#define MPIPE_VALUE_RANGE_INIT(m, lo, hi, st) {.min.m = (lo), .max.m = (hi), .step.m = (st)}
138#define MPIPE_VALUE_INT_RANGE(lo, hi, st) \
139 {.type = MPIPE_TYPE_INT_RANGE, .range = MPIPE_VALUE_RANGE_INIT(v_int, lo, hi, st)}
147#define MPIPE_VALUE_UINT_RANGE(lo, hi, st) \
148 {.type = MPIPE_TYPE_UINT_RANGE, .range = MPIPE_VALUE_RANGE_INIT(v_uint, lo, hi, st)}
void mpipe_value_print(const struct mpipe_value *value, bool new_line)
Print a value.
bool mpipe_value_get_boolean(const struct mpipe_value *value)
Get boolean value of MPIPE_TYPE_BOOLEAN type.
int32_t mpipe_value_get_int_range_max(const struct mpipe_value *range)
Get maximum value of a MPIPE_TYPE_INT_RANGE type.
uint32_t mpipe_value_get_uint(const struct mpipe_value *value)
Get uint value of MPIPE_TYPE_UINT type.
uint32_t mpipe_value_get_uint_range_max(const struct mpipe_value *range)
Get maximum value of a MPIPE_TYPE_UINT_RANGE type.
bool mpipe_value_is_primitive(const struct mpipe_value *value)
Check if a value is of a primitive type.
int32_t mpipe_value_get_int_range_step(const struct mpipe_value *range)
Get step value of a MPIPE_TYPE_INT_RANGE type.
int32_t mpipe_value_get_int(const struct mpipe_value *value)
Get int value of MPIPE_TYPE_INT type.
mpipe_value_type
Value types.
Definition mpipe_value.h:52
uint32_t mpipe_value_get_uint_range_min(const struct mpipe_value *range)
Get minimum value of a MPIPE_TYPE_UINT_RANGE type.
int mpipe_value_set_va_list(struct mpipe_value *value, enum mpipe_value_type type, va_list *args)
Set a value from a va_list.
uint32_t mpipe_value_get_uint_range_step(const struct mpipe_value *range)
Get step value of a MPIPE_TYPE_UINT_RANGE type.
int mpipe_value_intersect(const struct mpipe_value *val1, const struct mpipe_value *val2, struct mpipe_value *out)
Intersect two values, put the result into caller-provided storage.
int32_t mpipe_value_get_int_range_min(const struct mpipe_value *range)
Get minimum value of a MPIPE_TYPE_INT_RANGE type.
int mpipe_value_set(struct mpipe_value *value, int type,...)
Set a value's type and contents.
@ MPIPE_TYPE_COUNT
Number of types.
Definition mpipe_value.h:59
@ MPIPE_TYPE_UINT
Unsigned integer value.
Definition mpipe_value.h:56
@ MPIPE_TYPE_INT
Signed integer value.
Definition mpipe_value.h:55
@ MPIPE_TYPE_NONE
No type.
Definition mpipe_value.h:53
@ MPIPE_TYPE_BOOLEAN
Boolean value.
Definition mpipe_value.h:54
@ MPIPE_TYPE_UINT_RANGE
Unsigned integer range value.
Definition mpipe_value.h:58
@ MPIPE_TYPE_INT_RANGE
Integer range value.
Definition mpipe_value.h:57
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__INT32_TYPE__ int32_t
Definition stdint.h:74
Value structure.
Definition mpipe_value.h:78
bool v_boolean
MPIPE_TYPE_BOOLEAN.
Definition mpipe_value.h:84
enum mpipe_value_type type
Type of value, see mpipe_value_type.
Definition mpipe_value.h:80
uint32_t v_uint
MPIPE_TYPE_UINT.
Definition mpipe_value.h:88
union mpipe_value_bound step
Step between two consecutive values of the range.
Definition mpipe_value.h:96
struct mpipe_value::@304057214326334104223036011311100323123046341056::@073267022065006245065314027154165251005145371304 range
MPIPE_TYPE_INT_RANGE, MPIPE_TYPE_UINT_RANGE.
union mpipe_value_bound min
Lower bound of the range.
Definition mpipe_value.h:92
union mpipe_value_bound max
Upper bound of the range.
Definition mpipe_value.h:94
int32_t v_int
MPIPE_TYPE_INT.
Definition mpipe_value.h:86
One end of a range value, or its step.
Definition mpipe_value.h:65
uint32_t v_uint
MPIPE_TYPE_UINT_RANGE.
Definition mpipe_value.h:69
int32_t v_int
MPIPE_TYPE_INT_RANGE.
Definition mpipe_value.h:67