return movement_get_current_timezone_offset_for_zone(movement_state.settings.bit.time_zone);
}
+bool movement_button_should_sound(void) {
+ return movement_state.settings.bit.button_should_sound;
+}
+
+void movement_set_button_should_sound(bool value) {
+ movement_state.settings.bit.button_should_sound = value;
+}
+
void app_init(void) {
_watch_init();
int32_t movement_get_current_timezone_offset_for_zone(uint8_t zone_index);
int32_t movement_get_current_timezone_offset(void);
+
+bool movement_button_should_sound(void);
+void movement_set_button_should_sound(bool value);
refresh_face = true;
movement_request_tick_frequency(1);
- if (settings->bit.button_should_sound)
+ if (movement_button_should_sound())
watch_buzzer_play_note(BUZZER_NOTE_C8, 50);
break;
case EVENT_MODE_BUTTON_UP:
refresh_face = true;
movement_request_tick_frequency(1);
- if (settings->bit.button_should_sound)
+ if (movement_button_should_sound())
watch_buzzer_play_note(BUZZER_NOTE_C8, 50);
break;
case EVENT_LIGHT_LONG_PRESS:
zone = state->current_zone;
state->zones[zone].selected = !state->zones[zone].selected;
- if (settings->bit.button_should_sound) {
+ if (movement_button_should_sound()) {
if (state->zones[zone].selected) {
beep_enable();
} else {
}
break;
case EVENT_ALARM_BUTTON_UP:
- if (settings->bit.button_should_sound) {
+ if (movement_button_should_sound()) {
watch_buzzer_play_note(BUZZER_NOTE_C8, 50);
}
paused = !paused;
static inline void _beep_button(movement_settings_t *settings)
{
// Play a beep as confirmation for a button press (if applicable)
- if (!settings->bit.button_should_sound)
+ if (!movement_button_should_sound())
return;
watch_buzzer_play_note(BUZZER_NOTE_C7, 50);
/* Beep for entering settings */
static inline void _beep_enable(movement_settings_t *settings)
{
- if (!settings->bit.button_should_sound)
+ if (!movement_button_should_sound())
return;
watch_buzzer_play_note(BUZZER_NOTE_G7, 50);
/* Beep for leaving settings */
static inline void _beep_disable(movement_settings_t *settings)
{
- if (!settings->bit.button_should_sound)
+ if (!movement_button_should_sound())
return;
watch_buzzer_play_note(BUZZER_NOTE_C8, 50);
/* Beep function */
static inline void beep(movement_settings_t *settings) {
- if (settings->bit.button_should_sound) watch_buzzer_play_note(BUZZER_NOTE_C7, 50);
+ if (movement_button_should_sound()) watch_buzzer_play_note(BUZZER_NOTE_C7, 50);
}
/* Prep for a new round */
static inline void _button_beep(movement_settings_t *settings) {
// play a beep as confirmation for a button press (if applicable)
- if (settings->bit.button_should_sound) watch_buzzer_play_note(BUZZER_NOTE_C7, 50);
+ if (movement_button_should_sound()) watch_buzzer_play_note(BUZZER_NOTE_C7, 50);
}
static void _timer_write_info(interval_face_state_t *state, char *buf, uint8_t timer_page) {
watch_set_indicator(WATCH_INDICATOR_BELL);
watch_display_string("Err", 5);
- if (settings->bit.button_should_sound)
+ if (movement_button_should_sound())
watch_buzzer_play_sequence(calc_fail_seq, NULL);
}
else
watch_display_string("0", 7);
}
- if (settings->bit.button_should_sound)
+ if (movement_button_should_sound())
watch_buzzer_play_sequence(calc_success_seq, NULL);
}
watch_display_string("=", 1);
}
// Play boop
- if (settings->bit.button_should_sound)
+ if (movement_button_should_sound())
watch_buzzer_play_note(BUZZER_NOTE_C7, 50);
}
display(state, settings, event.subsecond);
// Play beep
- if (settings->bit.button_should_sound)
+ if (movement_button_should_sound())
watch_buzzer_play_note(BUZZER_NOTE_C8, 50);
state->light_held = false;
display(state, settings, event.subsecond);
// Play bleep
- if (settings->bit.button_should_sound)
+ if (movement_button_should_sound())
watch_buzzer_play_note(BUZZER_NOTE_E7, 50);
}
}
/* Beep function */
static inline void beep(movement_settings_t *settings) {
- if (settings->bit.button_should_sound)
+ if (movement_button_should_sound())
watch_buzzer_play_note(BUZZER_NOTE_E8, 75);
}
else stop_quick_cyc();
}
- _handle_mode_still_pressed(state, settings->bit.button_should_sound);
+ _handle_mode_still_pressed(state, movement_button_should_sound());
break;
case EVENT_LIGHT_BUTTON_UP:
if (state->mode <= SCREEN_ELEMENT) {
- _handle_backward(state, settings->bit.button_should_sound);
+ _handle_backward(state, movement_button_should_sound());
}
else {
state->mode = SCREEN_ELEMENT;
- _display_screen(state, settings->bit.button_should_sound);
+ _display_screen(state, movement_button_should_sound());
}
break;
case EVENT_LIGHT_BUTTON_DOWN:
break;
case EVENT_ALARM_BUTTON_UP:
if (state->mode <= SCREEN_ELEMENT) {
- _handle_forward(state, settings->bit.button_should_sound);
+ _handle_forward(state, movement_button_should_sound());
}
else {
state->mode = SCREEN_ELEMENT;
- _display_screen(state, settings->bit.button_should_sound);
+ _display_screen(state, movement_button_should_sound());
}
break;
case EVENT_ALARM_LONG_PRESS:
if (state->mode <= SCREEN_ELEMENT) {
start_quick_cyc();
- _handle_forward(state, settings->bit.button_should_sound);
+ _handle_forward(state, movement_button_should_sound());
}
break;
case EVENT_LIGHT_LONG_PRESS:
if (state->mode <= SCREEN_ELEMENT) {
start_quick_cyc();
- _handle_backward(state, settings->bit.button_should_sound);
+ _handle_backward(state, movement_button_should_sound());
}
else {
movement_illuminate_led();
state->mode = (state->mode + 1) % SCREENS_COUNT;
if (state->mode == SCREEN_ELEMENT){
_display_screen(state, false);
- if (settings->bit.button_should_sound) watch_buzzer_play_note(BUZZER_NOTE_A6, 50);
+ if (movement_button_should_sound()) watch_buzzer_play_note(BUZZER_NOTE_A6, 50);
}
else
- _display_screen(state, settings->bit.button_should_sound);
+ _display_screen(state, movement_button_should_sound());
}
break;
case EVENT_MODE_LONG_PRESS:
return true;
case SCREEN_ELEMENT:
state->mode = SCREEN_TITLE;
- _display_screen(state, settings->bit.button_should_sound);
+ _display_screen(state, movement_button_should_sound());
break;
default:
state->mode = SCREEN_ELEMENT;
- _display_screen(state, settings->bit.button_should_sound);
+ _display_screen(state, movement_button_should_sound());
break;
}
_ts_ticks = 2;
static inline void _button_beep(movement_settings_t *settings) {
// play a beep as confirmation for a button press (if applicable)
- if (settings->bit.button_should_sound) watch_buzzer_play_note(BUZZER_NOTE_C7, 50);
+ if (movement_button_should_sound()) watch_buzzer_play_note(BUZZER_NOTE_C7, 50);
}
/// @brief Display minutes, seconds and fractions derived from 128 Hz tick counter
}
break;
case EVENT_ALARM_BUTTON_DOWN:
- if (settings->bit.button_should_sound) {
+ if (movement_button_should_sound()) {
watch_buzzer_play_note(BUZZER_NOTE_C8, 50);
}
stopwatch_state->running = !stopwatch_state->running;
break;
case EVENT_ALARM_BUTTON_UP:
if (!state->running && state->total_time == 0){
- if (settings->bit.button_should_sound && !state->editing) {
+ if (movement_button_should_sound() && !state->editing) {
watch_buzzer_play_note(BUZZER_NOTE_C8, 50);
}
if (!state->editing) {
}
}
} else if (state->running) {
- if (settings->bit.button_should_sound && !state->editing) {
+ if (movement_button_should_sound() && !state->editing) {
watch_buzzer_play_note(BUZZER_NOTE_C8, 50);
}
// Stop running
// Enter editing
state->editing = true;
state->active_digit = 0;
- if (settings->bit.button_should_sound) {
+ if (movement_button_should_sound()) {
watch_buzzer_play_note(BUZZER_NOTE_C7, 80);
watch_buzzer_play_note(BUZZER_NOTE_C8, 80);
}
state->dist_digits.ones = 1;
}
_tachymeter_face_distance_lcd(event, state);
- if (settings->bit.button_should_sound) {
+ if (movement_button_should_sound()) {
watch_buzzer_play_note(BUZZER_NOTE_C8, 80);
watch_buzzer_play_note(BUZZER_NOTE_C7, 80);
}
bool light_pressed = watch_get_pin_level(BTN_LIGHT);
bool alarm_pressed = watch_get_pin_level(BTN_ALARM);
if (light_pressed && alarm_pressed) stop_quick_cyc();
- else if (light_pressed) tally_face_increment(state, settings->bit.button_should_sound);
- else if (alarm_pressed) tally_face_decrement(state, settings->bit.button_should_sound);
+ else if (light_pressed) tally_face_increment(state, movement_button_should_sound());
+ else if (alarm_pressed) tally_face_decrement(state, movement_button_should_sound());
else stop_quick_cyc();
}
break;
case EVENT_ALARM_BUTTON_UP:
- tally_face_decrement(state, settings->bit.button_should_sound);
+ tally_face_decrement(state, movement_button_should_sound());
break;
case EVENT_ALARM_LONG_PRESS:
- tally_face_decrement(state, settings->bit.button_should_sound);
+ tally_face_decrement(state, movement_button_should_sound());
start_quick_cyc();
break;
case EVENT_MODE_LONG_PRESS:
state->tally_idx = _tally_default[state->tally_default_idx]; // reset tally index
_init_val = true;
//play a reset tune
- if (settings->bit.button_should_sound) watch_buzzer_play_note(BUZZER_NOTE_G6, 30);
- if (settings->bit.button_should_sound) watch_buzzer_play_note(BUZZER_NOTE_REST, 30);
- if (settings->bit.button_should_sound) watch_buzzer_play_note(BUZZER_NOTE_E6, 30);
- print_tally(state, settings->bit.button_should_sound);
+ if (movement_button_should_sound()) watch_buzzer_play_note(BUZZER_NOTE_G6, 30);
+ if (movement_button_should_sound()) watch_buzzer_play_note(BUZZER_NOTE_REST, 30);
+ if (movement_button_should_sound()) watch_buzzer_play_note(BUZZER_NOTE_E6, 30);
+ print_tally(state, movement_button_should_sound());
}
break;
case EVENT_LIGHT_BUTTON_UP:
- tally_face_increment(state, settings->bit.button_should_sound);
+ tally_face_increment(state, movement_button_should_sound());
break;
case EVENT_LIGHT_BUTTON_DOWN:
case EVENT_ALARM_BUTTON_DOWN:
if (TALLY_FACE_PRESETS_SIZE() > 1 && _init_val){
state->tally_default_idx = (state->tally_default_idx + 1) % TALLY_FACE_PRESETS_SIZE();
state->tally_idx = _tally_default[state->tally_default_idx];
- if (settings->bit.button_should_sound) watch_buzzer_play_note(BUZZER_NOTE_E6, 30);
- if (settings->bit.button_should_sound) watch_buzzer_play_note(BUZZER_NOTE_REST, 30);
- if (settings->bit.button_should_sound) watch_buzzer_play_note(BUZZER_NOTE_G6, 30);
- print_tally(state, settings->bit.button_should_sound);
+ if (movement_button_should_sound()) watch_buzzer_play_note(BUZZER_NOTE_E6, 30);
+ if (movement_button_should_sound()) watch_buzzer_play_note(BUZZER_NOTE_REST, 30);
+ if (movement_button_should_sound()) watch_buzzer_play_note(BUZZER_NOTE_G6, 30);
+ print_tally(state, movement_button_should_sound());
}
else{
- tally_face_increment(state, settings->bit.button_should_sound);
+ tally_face_increment(state, movement_button_should_sound());
start_quick_cyc();
}
break;
case EVENT_ACTIVATE:
- print_tally(state, settings->bit.button_should_sound);
+ print_tally(state, movement_button_should_sound());
break;
case EVENT_TIMEOUT:
// ignore timeout
case pausing:
case running:
_reset(state);
- if (settings->bit.button_should_sound) watch_buzzer_play_note(BUZZER_NOTE_C7, 50);
+ if (movement_button_should_sound()) watch_buzzer_play_note(BUZZER_NOTE_C7, 50);
break;
default:
break;
_alarm_thermometer_face_update(settings->bit.use_imperial_units);
break;
}
- if (settings->bit.button_should_sound) {
+ if (movement_button_should_sound()) {
watch_buzzer_play_note(BUZZER_NOTE_C7, 50);
}
break;
static inline void button_beep(movement_settings_t *settings) {
// play a beep as confirmation for a button press (if applicable)
- if (settings->bit.button_should_sound)
+ if (movement_button_should_sound())
watch_buzzer_play_note(BUZZER_NOTE_C7, 50);
}
else watch_display_text(WATCH_POSITION_BOTTOM, "12h");
break;
case PREFERENCES_PAGE_BUTTON_SOUND:
- if (settings->bit.button_should_sound) {
+ if (movement_button_should_sound()) {
watch_display_text(WATCH_POSITION_TOP_RIGHT, " Y");
} else {
watch_display_text(WATCH_POSITION_TOP_RIGHT, " N");
settings->bit.clock_mode_24h = !settings->bit.clock_mode_24h;
break;
case PREFERENCES_PAGE_BUTTON_SOUND:
- settings->bit.button_should_sound = !settings->bit.button_should_sound;
+ movement_set_button_should_sound(!movement_button_should_sound());
break;
case PREFERENCES_PAGE_TIMEOUT:
settings->bit.to_interval = settings->bit.to_interval + 1;