w/ another -fsanitize=address hint, use separate objects instead of
relying on pattern itself holding everything api *may* need
combine pattern and preset patterns currently separate timers
pattern container reworked to allow small-size optimization
introduce a special '0,0' marker, repeating the whole pattern (instead
of just one delay at the end)
since pattern is part of the led struct proper, display it in settings query
update tests & reuse time parsing routines from utils
also noticed by -fsanitize=address
> auto split = StatefulSplitView{input, " "};
> ...
> split = StatefulSplitViewinput, ","};
ctor & assignment should properly re-construct iterator to avoid referencing
temporaries (especially when ctor & move actually happens and not elided)
per. https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/step implicit default is step="1"
> If not explicitly included, step defaults to 1 for number and range, and 1 unit type (minute, week, month, day) for the date/time input types.
> The value must be a positive number - integer or float — or the special value any, which means no stepping is implied and any value is allowed
> (barring other constraints, such as min and max)
>
> Only values which are a whole number of steps from the step base are valid.
.checkValidity()/.reportValidity() enforce the rule, making these values
impossible to set (besides manually setting the kv through console)
also clean-up any defaults & suspicious use in specific modules
resolve#2651
- typing info to clean-up path <-> string and arguments mixups
- argparse.FileType deprecated, use another built-in 'fileinput' that allows similar behaviour
- tool selection always uses shutil.which result for a full cmd path
- tool exec errors treated as script errors
size & storage set up when constructed, avoid splitting auto-size & explicit one
more expensive in code size than just a global, but can be remedied elsewhere
same as gpio init, settings & eeprom initialized statically within a func context
revise internals to access specific instance
- implement wrapper class for the rotate to slightly change the behaviour
correctly reference size info and move 'fill' aka 'clean' into the class itself
- increase storage rotation limits for 2M+ boards, 16 & 32 respectively
for 8M and 16M board configurations
bump to 8 original 4M one and extra check for 2M
- minor clean-up to terminal output. shorter strings, more static ones
fixes log size comparison, ref. https://github.com/hamed-ta/espurna/pull/2
try to use common funcs instead of code dup for sync and async variants
async buffer align & size calc moved into a separate struct
common code when dealing with fixed size ints
c++23 bit_cast when dealing with 'cpymem'-like ops
compat header continues to use std number comparison since
libstdcxx feature detection seem to rely on 'import' / 'include'
(and 'bits/version.h' is not available in gcc4)