custom LCD now has an 'arrows' indicator instead of a battery

This commit is contained in:
Joey Castillo 2025-05-12 22:34:27 -04:00
parent 956b8601f6
commit e0746e06f1
5 changed files with 18 additions and 14 deletions

View File

@ -82,8 +82,14 @@ static void clock_indicate_pm(watch_date_time_t date_time) {
}
static void clock_indicate_low_available_power(clock_state_t *clock) {
// Set the LAP indicator if battery power is low
clock_indicate(WATCH_INDICATOR_LAP, clock->battery_low);
// Set the low battery indicator if battery power is low
if (watch_get_lcd_type() == WATCH_LCD_TYPE_CUSTOM) {
// interlocking arrows imply "exchange" the battery.
clock_indicate(WATCH_INDICATOR_ARROWS, clock->battery_low);
} else {
// LAP indicator on classic LCD is an adequate fallback.
clock_indicate(WATCH_INDICATOR_LAP, clock->battery_low);
}
}
static watch_date_time_t clock_24h_to_12h(watch_date_time_t date_time) {

View File

@ -119,8 +119,7 @@ bool activity_logging_face_loop(movement_event_t event, void *context) {
break;
case EVENT_ALARM_LONG_PRESS:
state->data_dump_idx = 0;
/// FIXME: Battery indicator is now Arrows indicator.
watch_set_indicator(WATCH_INDICATOR_BATTERY);
watch_set_indicator(WATCH_INDICATOR_ARROWS);
movement_request_tick_frequency(4);
watch_set_decimal_if_available();
// fall through
@ -146,8 +145,7 @@ bool activity_logging_face_loop(movement_event_t event, void *context) {
state->data_dump_idx++;
if (state->data_dump_idx >= MOVEMENT_NUM_DATA_POINTS) {
state->data_dump_idx = -1;
/// FIXME: Battery indicator is now Arrows indicator.
watch_clear_indicator(WATCH_INDICATOR_BATTERY);
watch_clear_indicator(WATCH_INDICATOR_ARROWS);
watch_clear_decimal_if_available();
movement_request_tick_frequency(1);
state->display_index = 0;

View File

@ -248,7 +248,7 @@ void watch_start_indicator_blink_if_possible(watch_indicator_t indicator, uint32
case WATCH_INDICATOR_LAP:
mask = 0b0010;
break;
case WATCH_INDICATOR_BATTERY:
case WATCH_INDICATOR_ARROWS:
mask = 0b0100;
break;
case WATCH_INDICATOR_SLEEP:

View File

@ -36,8 +36,8 @@ uint32_t IndicatorSegments[7] = {
SLCD_SEGID(2, 16), // WATCH_INDICATOR_24H
SLCD_SEGID(1, 10), // WATCH_INDICATOR_LAP
// Aliases for indicators unavailable on the original F-91W LCD
SLCD_SEGID(1, 10), // WATCH_INDICATOR_BATTERY (same as LAP)
// Placeholders for indicators unavailable on the original F-91W LCD
SLCD_SEGID(4, 0), // WATCH_INDICATOR_ARROWS (does not exist, will set in SDATAL4 which is harmless)
SLCD_SEGID(4, 0) // WATCH_INDICATOR_SLEEP (does not exist, will set in SDATAL4 which is harmless)
};
@ -374,7 +374,7 @@ void watch_clear_all_indicators(void) {
watch_clear_indicator(WATCH_INDICATOR_PM);
watch_clear_indicator(WATCH_INDICATOR_24H);
watch_clear_indicator(WATCH_INDICATOR_LAP);
watch_clear_indicator(WATCH_INDICATOR_BATTERY);
watch_clear_indicator(WATCH_INDICATOR_ARROWS);
watch_clear_indicator(WATCH_INDICATOR_SLEEP);
}
@ -385,7 +385,7 @@ void _watch_update_indicator_segments(void) {
IndicatorSegments[2] = SLCD_SEGID(3, 21); // WATCH_INDICATOR_PM
IndicatorSegments[3] = SLCD_SEGID(2, 21); // WATCH_INDICATOR_24H
IndicatorSegments[4] = SLCD_SEGID(1, 0); // WATCH_INDICATOR_LAP
IndicatorSegments[5] = SLCD_SEGID(2, 0); // WATCH_INDICATOR_BATTERY
IndicatorSegments[5] = SLCD_SEGID(2, 0); // WATCH_INDICATOR_ARROWS
IndicatorSegments[6] = SLCD_SEGID(3, 0); // WATCH_INDICATOR_SLEEP
}
}

View File

@ -52,11 +52,11 @@ typedef enum {
WATCH_INDICATOR_BELL, ///< The small bell indicating that an alarm is set.
WATCH_INDICATOR_PM, ///< The PM indicator, indicating that a time is in the afternoon.
WATCH_INDICATOR_24H, ///< The 24H indicator, indicating that the watch is in a 24-hour mode.
WATCH_INDICATOR_LAP, ///< The LAP indicator; the F-91W uses this in its stopwatch UI.
WATCH_INDICATOR_LAP, ///< The LAP indicator; the F-91W uses this in its stopwatch UI. On custom LCD it's a looped arrow.
// These next indicators are only available on the new custom LCD:
WATCH_INDICATOR_BATTERY, ///< The battery indicator. Will fall back to the LAP icon on the original F-91W LCD.
WATCH_INDICATOR_SLEEP, ///< The sleep indicator. No fallback here; use the tick animation to indicate sleep.
WATCH_INDICATOR_ARROWS, ///< The interlocking arrows indicator; indicates data transfer, or can signal to change the battery.
WATCH_INDICATOR_SLEEP, ///< The sleep indicator.
// You can generally address the colon using dedicated functions, but it's also available here if needed.
WATCH_INDICATOR_COLON, ///< The colon between hours and minutes.