From ee65637a655254cf1fbb5bf3404b14f179f2a2e7 Mon Sep 17 00:00:00 2001 From: Vito Caputo Date: Tue, 29 Aug 2023 15:49:27 -0700 Subject: modules/strobe: s/period/hz/ Preparatory commit for exposing strobe::hz as a tap, it seems awkward to work in periods especially in the track data. Though I do like the 0-1 range of period, though that doesn't even hold for slower than 1HZ frequencies so... it's kind of a lie anyways. At least if the track is called "hz" anyone will know what the values mean and easily reason about them. So I'm making the setting consistent with the soon to be added "hz" tap. --- src/modules/strobe/strobe.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/modules/strobe/strobe.c b/src/modules/strobe/strobe.c index 3b90c2d..8b3658e 100644 --- a/src/modules/strobe/strobe.c +++ b/src/modules/strobe/strobe.c @@ -16,14 +16,14 @@ /* Copyright (C) 2022 Vito Caputo */ /* TODO: - * - Make period setting more flexible + * - Make hz setting more flexible */ -#define STROBE_DEFAULT_PERIOD .1 +#define STROBE_DEFAULT_HZ 10 typedef struct strobe_setup_t { til_setup_t til_setup; - float period; + float hz; } strobe_setup_t; typedef struct strobe_context_t { @@ -56,7 +56,7 @@ static void strobe_prepare_frame(til_module_context_t *context, til_stream_t *st *res_frame_plan = (til_frame_plan_t){ .fragmenter = til_fragmenter_slice_per_cpu_x16 }; - if (ctxt->flash_ready && (ticks - ctxt->ticks >= (unsigned)(ctxt->setup->period * 1000.f))){ + if (ctxt->flash_ready && (ticks - ctxt->ticks >= (unsigned)((1.f / ctxt->setup->hz) * 1000.f))){ ctxt->flash = 1; ctxt->flash_ready = 0; } else { @@ -107,15 +107,15 @@ til_module_t strobe_module = { static int strobe_setup(const til_settings_t *settings, til_setting_t **res_setting, const til_setting_desc_t **res_desc, til_setup_t **res_setup) { - const char *period; - const char *period_values[] = { - ".0166", - ".02", - ".025", - ".05", - ".1", - ".25", - ".5", + const char *hz; + const char *hz_values[] = { + "60", + "50", + "40", + "20", + "10", + "4", + "2", "1", NULL }; @@ -123,14 +123,14 @@ static int strobe_setup(const til_settings_t *settings, til_setting_t **res_sett r = til_settings_get_and_describe_value(settings, &(til_setting_spec_t){ - .name = "Strobe period", - .key = "period", + .name = "Strobe frequency in hz", + .key = "hz", .regex = "\\.[0-9]+", - .preferred = TIL_SETTINGS_STR(STROBE_DEFAULT_PERIOD), - .values = period_values, + .preferred = TIL_SETTINGS_STR(STROBE_DEFAULT_HZ), + .values = hz_values, .annotations = NULL }, - &period, + &hz, res_setting, res_desc); if (r) @@ -143,7 +143,7 @@ static int strobe_setup(const til_settings_t *settings, til_setting_t **res_sett if (!setup) return -ENOMEM; - sscanf(period, "%f", &setup->period); + sscanf(hz, "%f", &setup->hz); *res_setup = &setup->til_setup; } -- cgit v1.2.3