7 Commits

Author SHA1 Message Date
hueso
fe5898e7ee Merge branch 'legacy_moonrise' into legacy
Some checks failed
Build / build (push) Has been cancelled
Build / build-simulator (push) Has been cancelled
2025-12-16 12:12:23 -03:00
hueso
5a3a99bb36 Merge branch 'legacy_español' into legacy 2025-12-16 12:12:15 -03:00
hueso
b98a2a0870 Moonrise face
Some checks failed
Build / build (push) Has been cancelled
Build / build-simulator (push) Has been cancelled
2025-12-16 12:09:15 -03:00
hueso
aeeb62eefd fix LED turning off on face changes
Some checks failed
Build / build (push) Has been cancelled
Build / build-simulator (push) Has been cancelled
2025-12-16 12:03:27 -03:00
hueso
f1e78b5b4b spanish translations
Some checks failed
Build / build (push) Has been cancelled
Build / build-simulator (push) Has been cancelled
2025-12-16 11:13:42 -03:00
hueso
0b58ac750e close_enough_face: swap bell/alarm to match stock firmware 2025-06-16 22:04:26 -03:00
hueso
45583b3120 ignore indicators for short beep alarms 2025-06-16 22:01:35 -03:00
7 changed files with 32 additions and 23 deletions

View File

@@ -33,20 +33,20 @@ const char *words[12] = {
" ", " ",
" 5", " 5",
"10", "10",
"15", "CU",
"20", "20",
"25", "Me",
"30", "ME",
"35", "mE",
"40", "40",
"45", "45",
"50", "50",
"55", "55",
}; };
static const char *past_word = " P"; static const char *past_word = " y";
static const char *to_word = " 2"; static const char *to_word = " -";
static const char *oclock_word = "OC"; static const char *oclock_word = "EP";
// sets when in the five minute period we switch // sets when in the five minute period we switch
// from "X past HH" to "X to HH+1" // from "X past HH" to "X to HH+1"
@@ -55,9 +55,9 @@ static const int hour_switch_index = 8;
static void _update_alarm_indicator(bool settings_alarm_enabled, close_enough_clock_state_t *state) { static void _update_alarm_indicator(bool settings_alarm_enabled, close_enough_clock_state_t *state) {
state->alarm_enabled = settings_alarm_enabled; state->alarm_enabled = settings_alarm_enabled;
if (state->alarm_enabled) { if (state->alarm_enabled) {
watch_set_indicator(WATCH_INDICATOR_BELL); watch_set_indicator(WATCH_INDICATOR_SIGNAL);
} else { } else {
watch_clear_indicator(WATCH_INDICATOR_BELL); watch_clear_indicator(WATCH_INDICATOR_SIGNAL);
}; };
} }
@@ -185,7 +185,7 @@ bool close_enough_clock_face_loop(movement_event_t event, movement_settings_t *s
int words_length = sizeof(words) / sizeof(words[0]); int words_length = sizeof(words) / sizeof(words[0]);
strncpy( strncpy(
first_word, third_word,
five_minute_period >= hour_switch_index ? five_minute_period >= hour_switch_index ?
words[words_length - five_minute_period] : words[words_length - five_minute_period] :
words[five_minute_period], words[five_minute_period],
@@ -197,7 +197,7 @@ bool close_enough_clock_face_loop(movement_event_t event, movement_settings_t *s
to_word : past_word, to_word : past_word,
3 3
); );
sprintf(third_word, "%2d", close_enough_hour); sprintf(first_word, "%2d", close_enough_hour);
} }
sprintf( sprintf(

View File

@@ -148,7 +148,7 @@ static void _alarm_update_alarm_enabled(movement_settings_t *settings, alarm_sta
uint16_t now_minutes_of_day; uint16_t now_minutes_of_day;
uint16_t alarm_minutes_of_day; uint16_t alarm_minutes_of_day;
for (uint8_t i = 0; i < ALARM_ALARMS; i++) { for (uint8_t i = 0; i < ALARM_ALARMS; i++) {
if (state->alarm[i].enabled) { if (state->alarm[i].enabled && state->alarm[i].beeps != 0) {
// figure out if alarm is to go off in the next 24 h // figure out if alarm is to go off in the next 24 h
if (state->alarm[i].day == ALARM_DAY_EACH_DAY || state->alarm[i].day == ALARM_DAY_ONE_TIME) { if (state->alarm[i].day == ALARM_DAY_EACH_DAY || state->alarm[i].day == ALARM_DAY_ONE_TIME) {
active_alarms = true; active_alarms = true;
@@ -235,7 +235,6 @@ void alarm_face_resign(movement_settings_t *settings, void *context) {
alarm_state_t *state = (alarm_state_t *)context; alarm_state_t *state = (alarm_state_t *)context;
state->is_setting = false; state->is_setting = false;
_alarm_update_alarm_enabled(settings, state); _alarm_update_alarm_enabled(settings, state);
watch_set_led_off();
state->alarm_quick_ticks = false; state->alarm_quick_ticks = false;
_wait_ticks = -1; _wait_ticks = -1;
movement_request_tick_frequency(1); movement_request_tick_frequency(1);

View File

@@ -43,6 +43,15 @@ static void _moonrise_face_update(movement_settings_t *settings, moonrise_state_
char buf[11]; char buf[11];
movement_location_t movement_location; movement_location_t movement_location;
watch_clear_colon();
watch_clear_indicator(WATCH_INDICATOR_PM);
watch_clear_indicator(WATCH_INDICATOR_24H);
// watch_display_string("__ _ ", 0);
if(state->rise_index == 0)
watch_display_string("M~ rise", 0);
else
watch_display_string("M_ set ", 0);
if (state->longLatToUse == 0 || _location_count <= 1) if (state->longLatToUse == 0 || _location_count <= 1)
movement_location = (movement_location_t) watch_get_backup_data(1); movement_location = (movement_location_t) watch_get_backup_data(1);
else{ else{
@@ -60,8 +69,13 @@ static void _moonrise_face_update(movement_settings_t *settings, moonrise_state_
watch_date_time scratch_time; // scratchpad, contains different values at different times watch_date_time scratch_time; // scratchpad, contains different values at different times
scratch_time.reg = date_time.reg; scratch_time.reg = date_time.reg;
double lat = (double)movement_location.bit.latitude / 100.0; // Weird quirky unsigned things were happening when I tried to cast these directly to doubles below.
double lon = (double)movement_location.bit.longitude / 100.0; // it looks redundant, but extracting them to local int16's seemed to fix it.
int16_t lat_centi = (int16_t)movement_location.bit.latitude;
int16_t lon_centi = (int16_t)movement_location.bit.longitude;
double lat = (double)lat_centi / 100.0;
double lon = (double)lon_centi / 100.0;
uint32_t t = watch_utility_date_time_to_unix_time(date_time, movement_timezone_offsets[settings->bit.time_zone] * 60); uint32_t t = watch_utility_date_time_to_unix_time(date_time, movement_timezone_offsets[settings->bit.time_zone] * 60);
MoonRise mr = MoonRise_calculate(lat, lon, t); MoonRise mr = MoonRise_calculate(lat, lon, t);
@@ -78,6 +92,9 @@ static void _moonrise_face_update(movement_settings_t *settings, moonrise_state_
watch_clear_indicator(WATCH_INDICATOR_24H); watch_clear_indicator(WATCH_INDICATOR_24H);
snprintf(buf, sizeof(buf), "%s%2d none ", state->rise_index ? "M_" : "M~", scratch_time.unit.day); snprintf(buf, sizeof(buf), "%s%2d none ", state->rise_index ? "M_" : "M~", scratch_time.unit.day);
watch_display_string(buf, 0); watch_display_string(buf, 0);
state->rise_set_expires = watch_utility_date_time_from_unix_time(
watch_utility_offset_timestamp(t, MR_WINDOW, 0, 0),
movement_timezone_offsets[settings->bit.time_zone] * 60);
return; return;
} }
watch_set_colon(); watch_set_colon();

View File

@@ -330,6 +330,5 @@ bool simon_face_loop(movement_event_t event, movement_settings_t *settings,
void simon_face_resign(movement_settings_t *settings, void *context) { void simon_face_resign(movement_settings_t *settings, void *context) {
(void)settings; (void)settings;
(void)context; (void)context;
watch_set_led_off();
watch_set_buzzer_off(); watch_set_buzzer_off();
} }

View File

@@ -60,10 +60,6 @@ bool preferences_face_loop(movement_event_t event, movement_settings_t *settings
case EVENT_ACTIVATE: case EVENT_ACTIVATE:
// Do nothing; handled below. // Do nothing; handled below.
break; break;
case EVENT_MODE_BUTTON_UP:
watch_set_led_off();
movement_move_to_next_face();
return false;
case EVENT_LIGHT_BUTTON_DOWN: case EVENT_LIGHT_BUTTON_DOWN:
current_page = (current_page + 1) % PREFERENCES_FACE_NUM_PREFERENCES; current_page = (current_page + 1) % PREFERENCES_FACE_NUM_PREFERENCES;
*((uint8_t *)context) = current_page; *((uint8_t *)context) = current_page;
@@ -202,7 +198,6 @@ bool preferences_face_loop(movement_event_t event, movement_settings_t *settings
return false; return false;
} }
watch_set_led_off();
return true; return true;
} }

View File

@@ -183,6 +183,5 @@ bool set_time_face_loop(movement_event_t event, movement_settings_t *settings, v
void set_time_face_resign(movement_settings_t *settings, void *context) { void set_time_face_resign(movement_settings_t *settings, void *context) {
(void) settings; (void) settings;
(void) context; (void) context;
watch_set_led_off();
watch_store_backup_data(settings->reg, 0); watch_store_backup_data(settings->reg, 0);
} }

View File

@@ -26,7 +26,7 @@
#include "watch_utility.h" #include "watch_utility.h"
const char * watch_utility_get_weekday(watch_date_time date_time) { const char * watch_utility_get_weekday(watch_date_time date_time) {
static const char weekdays[7][3] = {"MO", "TU", "WE", "TH", "FR", "SA", "SU"}; static const char weekdays[7][3] = {"LU", "MA", "MI", "JU", "VI", "SA", "do"};
return weekdays[watch_utility_get_iso8601_weekday_number(date_time.unit.year + WATCH_RTC_REFERENCE_YEAR, date_time.unit.month, date_time.unit.day) - 1]; return weekdays[watch_utility_get_iso8601_weekday_number(date_time.unit.year + WATCH_RTC_REFERENCE_YEAR, date_time.unit.month, date_time.unit.day) - 1];
} }