diff options
author | Keith Packard <keithp@keithp.com> | 2014-05-02 12:26:07 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2014-05-02 13:52:45 -0700 |
commit | 027b1470c7a2d007eaab5c8d49f772b0c7559b80 (patch) | |
tree | 07f9711d5625a603b82aad080fc0283a7e4ffad0 /src/kernel/ao_config.c | |
parent | 8e3842660274ac4bcd7b5a78f5db215222b1c4de (diff) |
altos: Add configurable beep tone
This lets you directly set the mid-range beep tone; the high and low
tones remain set off of that in the same ratio as before.
Note that none of the cc1111 products get this feature as they don't
have enough flash space anymore...
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/kernel/ao_config.c')
-rw-r--r-- | src/kernel/ao_config.c | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/src/kernel/ao_config.c b/src/kernel/ao_config.c index 4482f673..411399d7 100644 --- a/src/kernel/ao_config.c +++ b/src/kernel/ao_config.c @@ -22,6 +22,9 @@ #include <ao_sample.h> #include <ao_data.h> #endif +#if HAS_BEEP +#include <ao_beep.h> +#endif __xdata struct ao_config ao_config; __pdata uint8_t ao_config_loaded; @@ -171,6 +174,10 @@ _ao_config_get(void) ao_config.accel_minus_g = 0; } #endif +#if HAS_BEEP_CONFIG + if (minor < 16) + ao_config.mid_beep = AO_BEEP_MID_DEFAULT; +#endif ao_config.minor = AO_CONFIG_MINOR; ao_config_dirty = 1; } @@ -357,7 +364,7 @@ ao_config_accel_calibrate_set(void) __reentrant int16_t accel_across_up = 0, accel_across_down = 0; int16_t accel_through_up = 0, accel_through_down = 0; #endif - + ao_cmd_decimal(); if (ao_cmd_status != ao_cmd_success) return; @@ -555,7 +562,7 @@ ao_config_radio_enable_set(void) __reentrant _ao_config_edit_finish(); } #endif /* HAS_RADIO */ - + #if HAS_AES __xdata uint8_t ao_config_aes_seq = 1; @@ -650,6 +657,26 @@ ao_config_radio_power_set(void) #endif +#if HAS_BEEP_CONFIG +void +ao_config_beep_show(void) +{ + printf ("Beeper setting: %d\n", ao_config.mid_beep); +} + +void +ao_config_beep_set(void) +{ + ao_cmd_decimal(); + if (ao_cmd_status != ao_cmd_success) + return; + _ao_config_edit_start(); + ao_config.mid_beep = ao_cmd_lex_i; + _ao_config_edit_finish(); +} +#endif + + struct ao_config_var { __code char *str; void (*set)(void) __reentrant; @@ -720,6 +747,10 @@ __code struct ao_config_var ao_config_vars[] = { { "A <secs>\0APRS packet interval (0 disable)", ao_config_aprs_set, ao_config_aprs_show }, #endif +#if HAS_BEEP_CONFIG + { "b <val>\0Configure beeper tone (freq = 1/2 (24e6/32) / beep", + ao_config_beep_set, ao_config_beep_show }, +#endif { "s\0Show", ao_config_show, 0 }, #if HAS_EEPROM |