summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVito Caputo <vcaputo@pengaru.com>2023-08-05 13:24:30 -0700
committerVito Caputo <vcaputo@pengaru.com>2023-08-05 14:30:34 -0700
commit99f05d9a964629d51f0d42e69ab546b8ae04fc75 (patch)
treebd8ea9e5523b3f509e918a2e17f071d2d5be05db /src
parentb212a43bb2d4eed6780cc93394fa566a09018a68 (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.c7
-rw-r--r--src/modules/montage/montage.c2
-rw-r--r--src/modules/rkt/rkt.c2
-rw-r--r--src/modules/rtv/rtv.c2
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;
© All Rights Reserved