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  | 
