accessibility: speakup: Specify spk_vars among module parameters
authorMushahid Hussain <mushi.shar@gmail.com>
Tue, 15 Nov 2022 10:05:29 +0000 (15:05 +0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 23 Nov 2022 18:47:15 +0000 (19:47 +0100)
This is an enhancement which allows setting default variables for
speakup module at the boot rather than setting the sys variables after
the boot.

Signed-off-by: Mushahid Hussain <mushi.shar@gmail.com>
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Link: https://lore.kernel.org/r/20221115100530.91174-2-mushi.shar@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/accessibility/speakup/main.c

index 73db0cb44fc7b075ce84ddc70300b81ae5344ef9..1df9a27a5214d816cfd8aff8e529cd1d45d179e7 100644 (file)
@@ -1268,20 +1268,28 @@ int spk_set_key_info(const u_char *key_info, u_char *k_buffer)
        return 0;
 }
 
-static struct var_t spk_vars[] = {
+enum spk_vars_id {
+       BELL_POS_ID = 0, SPELL_DELAY_ID, ATTRIB_BLEEP_ID,
+       BLEEPS_ID, BLEEP_TIME_ID, PUNC_LEVEL_ID,
+       READING_PUNC_ID, CURSOR_TIME_ID, SAY_CONTROL_ID,
+       SAY_WORD_CTL_ID, NO_INTERRUPT_ID, KEY_ECHO_ID,
+       V_LAST_VAR_ID, NB_ID
+};
+
+static struct var_t spk_vars[NB_ID] = {
        /* bell must be first to set high limit */
-       {BELL_POS, .u.n = {NULL, 0, 0, 0, 0, 0, NULL} },
-       {SPELL_DELAY, .u.n = {NULL, 0, 0, 4, 0, 0, NULL} },
-       {ATTRIB_BLEEP, .u.n = {NULL, 1, 0, 3, 0, 0, NULL} },
-       {BLEEPS, .u.n = {NULL, 3, 0, 3, 0, 0, NULL} },
-       {BLEEP_TIME, .u.n = {NULL, 30, 1, 200, 0, 0, NULL} },
-       {PUNC_LEVEL, .u.n = {NULL, 1, 0, 4, 0, 0, NULL} },
-       {READING_PUNC, .u.n = {NULL, 1, 0, 4, 0, 0, NULL} },
-       {CURSOR_TIME, .u.n = {NULL, 120, 50, 600, 0, 0, NULL} },
-       {SAY_CONTROL, TOGGLE_0},
-       {SAY_WORD_CTL, TOGGLE_0},
-       {NO_INTERRUPT, TOGGLE_0},
-       {KEY_ECHO, .u.n = {NULL, 1, 0, 2, 0, 0, NULL} },
+       [BELL_POS_ID] = { BELL_POS, .u.n = {NULL, 0, 0, 0, 0, 0, NULL} },
+       [SPELL_DELAY_ID] = { SPELL_DELAY, .u.n = {NULL, 0, 0, 4, 0, 0, NULL} },
+       [ATTRIB_BLEEP_ID] = { ATTRIB_BLEEP, .u.n = {NULL, 1, 0, 3, 0, 0, NULL} },
+       [BLEEPS_ID] = { BLEEPS, .u.n = {NULL, 3, 0, 3, 0, 0, NULL} },
+       [BLEEP_TIME_ID] = { BLEEP_TIME, .u.n = {NULL, 30, 1, 200, 0, 0, NULL} },
+       [PUNC_LEVEL_ID] = { PUNC_LEVEL, .u.n = {NULL, 1, 0, 4, 0, 0, NULL} },
+       [READING_PUNC_ID] = { READING_PUNC, .u.n = {NULL, 1, 0, 4, 0, 0, NULL} },
+       [CURSOR_TIME_ID] = { CURSOR_TIME, .u.n = {NULL, 120, 50, 600, 0, 0, NULL} },
+       [SAY_CONTROL_ID] { SAY_CONTROL, TOGGLE_0},
+       [SAY_WORD_CTL_ID] = {SAY_WORD_CTL, TOGGLE_0},
+       [NO_INTERRUPT_ID] = { NO_INTERRUPT, TOGGLE_0},
+       [KEY_ECHO_ID] = { KEY_ECHO, .u.n = {NULL, 1, 0, 2, 0, 0, NULL} },
        V_LAST_VAR
 };
 
@@ -2453,5 +2461,31 @@ out:
        return err;
 }
 
+module_param_named(bell_pos, spk_vars[BELL_POS_ID].u.n.default_val, int, 0444);
+module_param_named(spell_delay, spk_vars[SPELL_DELAY_ID].u.n.default_val, int, 0444);
+module_param_named(attrib_bleep, spk_vars[ATTRIB_BLEEP_ID].u.n.default_val, int, 0444);
+module_param_named(bleeps, spk_vars[BLEEPS_ID].u.n.default_val, int, 0444);
+module_param_named(bleep_time, spk_vars[BLEEP_TIME_ID].u.n.default_val, int, 0444);
+module_param_named(punc_level, spk_vars[PUNC_LEVEL_ID].u.n.default_val, int, 0444);
+module_param_named(reading_punc, spk_vars[READING_PUNC_ID].u.n.default_val, int, 0444);
+module_param_named(cursor_time, spk_vars[CURSOR_TIME_ID].u.n.default_val, int, 0444);
+module_param_named(say_control, spk_vars[SAY_CONTROL_ID].u.n.default_val, int, 0444);
+module_param_named(say_word_ctl, spk_vars[SAY_WORD_CTL_ID].u.n.default_val, int, 0444);
+module_param_named(no_interrupt, spk_vars[NO_INTERRUPT_ID].u.n.default_val, int, 0444);
+module_param_named(key_echo, spk_vars[KEY_ECHO_ID].u.n.default_val, int, 0444);
+
+MODULE_PARM_DESC(bell_pos, "This works much like a typewriter bell. If for example 72 is echoed to bell_pos, it will beep the PC speaker when typing on a line past character 72.");
+MODULE_PARM_DESC(spell_delay, "This controls how fast a word is spelled when speakup's spell word review command is pressed.");
+MODULE_PARM_DESC(attrib_bleep, "Beeps the PC speaker when there is an attribute change such as background color when using speakup review commands. One = on, zero = off.");
+MODULE_PARM_DESC(bleeps, "This controls whether one hears beeps through the PC speaker when using speakup review commands.");
+MODULE_PARM_DESC(bleep_time, "This controls the duration of the PC speaker beeps speakup produces.");
+MODULE_PARM_DESC(punc_level, "Controls the level of punctuation spoken as the screen is displayed, not reviewed.");
+MODULE_PARM_DESC(reading_punc, "It controls the level of punctuation when reviewing the screen with speakup's screen review commands.");
+MODULE_PARM_DESC(cursor_time, "This controls cursor delay when using arrow keys.");
+MODULE_PARM_DESC(say_control, "This controls if speakup speaks shift, alt and control when those keys are pressed or not.");
+MODULE_PARM_DESC(say_word_ctl, "Sets thw say_word_ctl  on load.");
+MODULE_PARM_DESC(no_interrupt, "Controls if typing interrupts output from speakup.");
+MODULE_PARM_DESC(key_echo, "Controls if speakup speaks keys when they are typed. One = on zero = off or don't echo keys.");
+
 module_init(speakup_init);
 module_exit(speakup_exit);