diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2023-08-05 13:24:30 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2023-08-05 14:30:34 -0700 |
commit | 99f05d9a964629d51f0d42e69ab546b8ae04fc75 (patch) | |
tree | bd8ea9e5523b3f509e918a2e17f071d2d5be05db /src | |
parent | b212a43bb2d4eed6780cc93394fa566a09018a68 (diff) |
modules/{compose,montage,rtv}: exclude builtins
Basically everywhere the
TIL_MODULE_HERMETIC|TIL_MODULE_EXPERIMENTAL exclusions were being
applied needed TIL_MODULE_BUILTIN added.
Mostly this is to prevent randomizers from tripping over builtins
in the available modules lists they draw from.
Because builtins aren't visually interesting by themselves, and
in some cases don't currently even have a means of being
randomized properly like ref's path setting.
This wasn't needed previously since builtins were kept off the
modules list altogether. But since 1a6210be that changed and
they must be explicitly filtered by flag instead.
Note I deliberately left the rkt case with just a TODO comment.
It's not a randomizer situation, and it might be acceptable to
let rkt just show everything all the time in the module lists.
That whole situation there is for advanced users.
Also note that without this, rtv et al would easily trigger an
assert on NULL setup due to the "none" builtin. Since there's
still work to be done there in callers properly handling NULL
@res_setup on a successful finalize. But this commit mitigates
that by avoiding the builtins in the randomizers.
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/compose/compose.c | 7 | ||||
-rw-r--r-- | src/modules/montage/montage.c | 2 | ||||
-rw-r--r-- | src/modules/rkt/rkt.c | 2 | ||||
-rw-r--r-- | src/modules/rtv/rtv.c | 2 |
4 files changed, 7 insertions, 6 deletions
diff --git a/src/modules/compose/compose.c b/src/modules/compose/compose.c index 5420cc3..4c6e0f5 100644 --- a/src/modules/compose/compose.c +++ b/src/modules/compose/compose.c @@ -149,11 +149,12 @@ static char * compose_random_layers_setting(unsigned seed) size_t n_modules, n_rand_overlays, n_overlayable = 0, n_unusable = 0, base_idx; char *layers = NULL; const til_module_t **modules; + unsigned unusable_flags = (TIL_MODULE_HERMETIC | TIL_MODULE_EXPERIMENTAL | TIL_MODULE_BUILTIN); til_get_modules(&modules, &n_modules); for (size_t i = 0; i < n_modules; i++) { - if ((modules[i]->flags & (TIL_MODULE_HERMETIC | TIL_MODULE_EXPERIMENTAL)) || + if ((modules[i]->flags & unusable_flags) || modules[i] == &compose_module) { n_unusable++; @@ -166,7 +167,7 @@ static char * compose_random_layers_setting(unsigned seed) base_idx = rand_r(&seed) % (n_modules - (n_overlayable + n_unusable)); for (size_t i = 0, j = 0; !layers && i < n_modules; i++) { - if ((modules[i]->flags & (TIL_MODULE_HERMETIC | TIL_MODULE_EXPERIMENTAL)) || + if ((modules[i]->flags & unusable_flags) || modules[i] == &compose_module) continue; @@ -187,7 +188,7 @@ static char * compose_random_layers_setting(unsigned seed) size_t rand_idx = rand_r(&seed) % n_overlayable; for (size_t i = 0, j = 0; i < n_modules; i++) { - if ((modules[i]->flags & (TIL_MODULE_HERMETIC | TIL_MODULE_EXPERIMENTAL)) || + if ((modules[i]->flags & unusable_flags) || modules[i] == &compose_module) continue; diff --git a/src/modules/montage/montage.c b/src/modules/montage/montage.c index 9864520..ec4ff7f 100644 --- a/src/modules/montage/montage.c +++ b/src/modules/montage/montage.c @@ -208,7 +208,7 @@ static const char * montage_tiles_setting_override(const char *value) if (strcasecmp(value, "all")) return value; - return til_get_module_names((TIL_MODULE_HERMETIC|TIL_MODULE_EXPERIMENTAL), exclusions); + return til_get_module_names((TIL_MODULE_HERMETIC|TIL_MODULE_EXPERIMENTAL|TIL_MODULE_BUILTIN), exclusions); } diff --git a/src/modules/rkt/rkt.c b/src/modules/rkt/rkt.c index c84b6ce..d5c42d5 100644 --- a/src/modules/rkt/rkt.c +++ b/src/modules/rkt/rkt.c @@ -392,7 +392,7 @@ int rkt_scene_module_setup(const til_settings_t *settings, til_setting_t **res_s res_setup, "Scene Module", RKT_DEFAULT_SCENE_MODULE, - (TIL_MODULE_EXPERIMENTAL | TIL_MODULE_HERMETIC), + (TIL_MODULE_EXPERIMENTAL | TIL_MODULE_HERMETIC), /* TODO: TIL_MODULE_BUILTIN?? rkt is kind of advanced maybe just don't hide things? */ NULL); /* << "rkt" would be wise, but it already gets caught by HERMETIC */ } diff --git a/src/modules/rtv/rtv.c b/src/modules/rtv/rtv.c index a9e8678..2a7c02d 100644 --- a/src/modules/rtv/rtv.c +++ b/src/modules/rtv/rtv.c @@ -239,7 +239,7 @@ static int rtv_should_skip_module(const rtv_setup_t *setup, const til_module_t * */ if (!setup->channels[0]) { /* for "all" skip these, but you can still explicitly name them. */ - if ((module->flags & (TIL_MODULE_HERMETIC | TIL_MODULE_EXPERIMENTAL))) + if ((module->flags & (TIL_MODULE_HERMETIC | TIL_MODULE_EXPERIMENTAL | TIL_MODULE_BUILTIN))) return 1; return 0; |