From 4da0e4bd6d82c822c5287e29ac59e342bce88410 Mon Sep 17 00:00:00 2001 From: David Volovskiy Date: Mon, 1 Sep 2025 09:41:51 -0400 Subject: [PATCH 1/5] Fixed Sunday text --- watch-faces/complication/advanced_alarm_face.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/watch-faces/complication/advanced_alarm_face.c b/watch-faces/complication/advanced_alarm_face.c index 39739bc4..26f6eb5e 100644 --- a/watch-faces/complication/advanced_alarm_face.c +++ b/watch-faces/complication/advanced_alarm_face.c @@ -40,7 +40,7 @@ typedef enum { alarm_setting_idx_beeps } alarm_setting_idx_t; -static const char _dow_strings[ALARM_DAY_STATES + 1][2] ={"AL", "MO", "TU", "WE", "TH", "FR", "SA", "SO", "ED", "1t", "MF", "WN"}; +static const char _dow_strings[ALARM_DAY_STATES + 1][2] ={"AL", "MO", "TU", "WE", "TH", "FR", "SA", "SU", "ED", "1t", "MF", "WN"}; static const uint8_t _blink_idx[ALARM_SETTING_STATES] = {2, 0, 4, 6, 8, 9}; static const uint8_t _blink_idx2[ALARM_SETTING_STATES] = {3, 1, 5, 7, 8, 9}; static const watch_buzzer_note_t _buzzer_notes[3] = {BUZZER_NOTE_B6, BUZZER_NOTE_C8, BUZZER_NOTE_A8}; From f43dd33febe0639f9c7fd56cd8f638e907c1b7b7 Mon Sep 17 00:00:00 2001 From: David Volovskiy Date: Mon, 1 Sep 2025 09:43:23 -0400 Subject: [PATCH 2/5] Added capability to display longer days on custom display --- .../complication/advanced_alarm_face.c | 35 ++++++++++++++----- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/watch-faces/complication/advanced_alarm_face.c b/watch-faces/complication/advanced_alarm_face.c index 26f6eb5e..146386c0 100644 --- a/watch-faces/complication/advanced_alarm_face.c +++ b/watch-faces/complication/advanced_alarm_face.c @@ -40,7 +40,8 @@ typedef enum { alarm_setting_idx_beeps } alarm_setting_idx_t; -static const char _dow_strings[ALARM_DAY_STATES + 1][2] ={"AL", "MO", "TU", "WE", "TH", "FR", "SA", "SU", "ED", "1t", "MF", "WN"}; +static const char _dow_strings_classic[ALARM_DAY_STATES + 1][2] ={"AL", "MO", "TU", "WE", "TH", "FR", "SA", "SU", "ED", "1t", "MF", "WN"}; +static const char _dow_strings_custom[ALARM_DAY_STATES + 1][3] ={ "AL ", "MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN", "DAY", "1t ", "M-F", "WKD"}; static const uint8_t _blink_idx[ALARM_SETTING_STATES] = {2, 0, 4, 6, 8, 9}; static const uint8_t _blink_idx2[ALARM_SETTING_STATES] = {3, 1, 5, 7, 8, 9}; static const watch_buzzer_note_t _buzzer_notes[3] = {BUZZER_NOTE_B6, BUZZER_NOTE_C8, BUZZER_NOTE_A8}; @@ -90,18 +91,34 @@ static void _advanced_alarm_face_draw(alarm_state_t *state, uint8_t subsecond) { watch_set_indicator(WATCH_INDICATOR_24H); } - sprintf(buf, set_leading_zero? "%c%c%2d%02d%02d " : "%c%c%2d%2d%02d ", - _dow_strings[i][0], _dow_strings[i][1], - (state->alarm_idx + 1), - h, - state->alarm[state->alarm_idx].minute); // blink items if in settings mode - if (state->is_setting && subsecond % 2 && state->setting_state < alarm_setting_idx_pitch && !state->alarm_quick_ticks) { - buf[_blink_idx[state->setting_state]] = buf[_blink_idx2[state->setting_state]] = ' '; + bool blinking = state->is_setting && subsecond % 2 && state->setting_state < alarm_setting_idx_pitch && !state->alarm_quick_ticks; + if (state->setting_state == alarm_setting_idx_alarm && blinking) { + watch_display_text(WATCH_POSITION_TOP_RIGHT, " "); + } else { + sprintf(buf, "%2d", (state->alarm_idx + 1)); + watch_display_text(WATCH_POSITION_TOP_RIGHT, buf); + } + if (state->setting_state == alarm_setting_idx_day && blinking) { + watch_display_text_with_fallback(WATCH_POSITION_TOP_LEFT, " ", " "); + } else { + watch_display_text_with_fallback(WATCH_POSITION_TOP_LEFT, _dow_strings_custom[i], _dow_strings_classic[i]); + } + if (state->setting_state == alarm_setting_idx_hour && blinking) { + watch_display_text(WATCH_POSITION_HOURS, " "); + } else { + sprintf(buf, set_leading_zero? "%02d" : "%2d", h); + watch_display_text(WATCH_POSITION_HOURS, buf); + } + if (state->setting_state == alarm_setting_idx_minute && blinking) { + watch_display_text(WATCH_POSITION_MINUTES, " "); + } else { + sprintf(buf, "%02d", state->alarm[state->alarm_idx].minute); + watch_display_text(WATCH_POSITION_MINUTES, buf); } - watch_display_text(WATCH_POSITION_FULL, buf); if (state->is_setting) { + watch_display_text(WATCH_POSITION_SECONDS, " "); // draw pitch level indicator if ((subsecond % 2) == 0 || (state->setting_state != alarm_setting_idx_pitch)) { for (i = 0; i <= state->alarm[state->alarm_idx].pitch && i < 3; i++) From 562ed5158d070a1cc9ad90417cbad95c658607b0 Mon Sep 17 00:00:00 2001 From: David Volovskiy Date: Mon, 1 Sep 2025 09:43:56 -0400 Subject: [PATCH 3/5] Made showing which alarms are on in the same way as the Gshocks --- watch-faces/complication/advanced_alarm_face.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/watch-faces/complication/advanced_alarm_face.c b/watch-faces/complication/advanced_alarm_face.c index 146386c0..ae79f343 100644 --- a/watch-faces/complication/advanced_alarm_face.c +++ b/watch-faces/complication/advanced_alarm_face.c @@ -136,6 +136,9 @@ static void _advanced_alarm_face_draw(alarm_state_t *state, uint8_t subsecond) { } } } + else { + watch_display_text(WATCH_POSITION_SECONDS, state->alarm[state->alarm_idx].enabled ? "on" : "--"); + } // set alarm indicator _alarm_set_signal(state); From 92bae2016f9520674e763a80535f569e86a53a1a Mon Sep 17 00:00:00 2001 From: David Volovskiy Date: Mon, 1 Sep 2025 09:56:24 -0400 Subject: [PATCH 4/5] Removed unneeded arrays --- watch-faces/complication/advanced_alarm_face.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/watch-faces/complication/advanced_alarm_face.c b/watch-faces/complication/advanced_alarm_face.c index ae79f343..cfb83a95 100644 --- a/watch-faces/complication/advanced_alarm_face.c +++ b/watch-faces/complication/advanced_alarm_face.c @@ -42,8 +42,7 @@ typedef enum { static const char _dow_strings_classic[ALARM_DAY_STATES + 1][2] ={"AL", "MO", "TU", "WE", "TH", "FR", "SA", "SU", "ED", "1t", "MF", "WN"}; static const char _dow_strings_custom[ALARM_DAY_STATES + 1][3] ={ "AL ", "MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN", "DAY", "1t ", "M-F", "WKD"}; -static const uint8_t _blink_idx[ALARM_SETTING_STATES] = {2, 0, 4, 6, 8, 9}; -static const uint8_t _blink_idx2[ALARM_SETTING_STATES] = {3, 1, 5, 7, 8, 9}; +static const uint8_t _beeps_blink_idx = 9; static const watch_buzzer_note_t _buzzer_notes[3] = {BUZZER_NOTE_B6, BUZZER_NOTE_C8, BUZZER_NOTE_A8}; // Volume is indicated by the three segments 5D, 5G and 5A @@ -127,12 +126,12 @@ static void _advanced_alarm_face_draw(alarm_state_t *state, uint8_t subsecond) { // draw beep rounds indicator if ((subsecond % 2) == 0 || (state->setting_state != alarm_setting_idx_beeps)) { if (state->alarm[state->alarm_idx].beeps == ALARM_MAX_BEEP_ROUNDS - 1) - watch_display_character('L', _blink_idx[alarm_setting_idx_beeps]); + watch_display_character('L', _beeps_blink_idx); else { if (state->alarm[state->alarm_idx].beeps == 0) - watch_display_character('o', _blink_idx[alarm_setting_idx_beeps]); + watch_display_character('o', _beeps_blink_idx); else - watch_display_character(state->alarm[state->alarm_idx].beeps + 48, _blink_idx[alarm_setting_idx_beeps]); + watch_display_character(state->alarm[state->alarm_idx].beeps + 48, _beeps_blink_idx); } } } From 61294d557c28d78c52ddc050141b77bce29936ae Mon Sep 17 00:00:00 2001 From: David Volovskiy Date: Mon, 1 Sep 2025 10:09:53 -0400 Subject: [PATCH 5/5] _alarm_show_alarm_on_text is now its own function --- watch-faces/complication/advanced_alarm_face.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/watch-faces/complication/advanced_alarm_face.c b/watch-faces/complication/advanced_alarm_face.c index cfb83a95..16bfdbce 100644 --- a/watch-faces/complication/advanced_alarm_face.c +++ b/watch-faces/complication/advanced_alarm_face.c @@ -67,6 +67,10 @@ static void _alarm_set_signal(alarm_state_t *state) { watch_clear_indicator(WATCH_INDICATOR_SIGNAL); } +static void _alarm_show_alarm_on_text(alarm_state_t *state) { + watch_display_text(WATCH_POSITION_SECONDS, state->alarm[state->alarm_idx].enabled ? "on" : "--"); +} + static void _advanced_alarm_face_draw(alarm_state_t *state, uint8_t subsecond) { char buf[12]; bool set_leading_zero = movement_clock_mode_24h() == MOVEMENT_CLOCK_MODE_024H; @@ -136,7 +140,7 @@ static void _advanced_alarm_face_draw(alarm_state_t *state, uint8_t subsecond) { } } else { - watch_display_text(WATCH_POSITION_SECONDS, state->alarm[state->alarm_idx].enabled ? "on" : "--"); + _alarm_show_alarm_on_text(state); } // set alarm indicator @@ -322,6 +326,7 @@ bool advanced_alarm_face_loop(movement_event_t event, void *context) { // revert change of enabled flag and show it briefly state->alarm[state->alarm_idx].enabled ^= 1; _alarm_set_signal(state); + _alarm_show_alarm_on_text(state); delay_ms(275); state->alarm_idx = 0; }