return movement_get_current_timezone_offset_for_zone(movement_state.settings.bit.time_zone);
}
+int32_t movement_get_timezone_index(void) {
+ return movement_state.settings.bit.time_zone;
+}
+
+void movement_set_timezone_index(uint8_t value) {
+ movement_state.settings.bit.time_zone = value;
+}
+
bool movement_button_should_sound(void) {
return movement_state.settings.bit.button_should_sound;
}
int32_t movement_get_current_timezone_offset_for_zone(uint8_t zone_index);
int32_t movement_get_current_timezone_offset(void);
+int32_t movement_get_timezone_index(void);
+void movement_set_timezone_index(uint8_t value);
+
bool movement_button_should_sound(void);
void movement_set_button_should_sound(bool value);
habit_state_t *state = (habit_state_t *)*context_ptr;
state->lookback = 0;
state->last_update = watch_utility_offset_timestamp(
- today_unix(settings->bit.time_zone), -24, 0, 0);
+ today_unix(movement_get_current_timezone_offset()), -24, 0, 0);
}
}
void *context) {
habit_state_t *state = (habit_state_t *)context;
- const uint32_t today_now_unix = today_unix(settings->bit.time_zone);
+ const uint32_t today_now_unix = today_unix(movement_get_current_timezone_offset());
const bool can_do = (state->lookback & 1) == 0;
switch (event.event_type) {
#include "set_time_hackwatch_face.h"
#include "watch.h"
#include "watch_utility.h"
+#include "zones.h"
char set_time_hackwatch_face_titles[][3] = {"HR", "M1", "SE", "YR", "MO", "DA", "ZO"};
#define set_time_hackwatch_face_NUM_SETTINGS (sizeof(set_time_hackwatch_face_titles) / sizeof(*set_time_hackwatch_face_titles))
date_time_settings.unit.day++;
break;
case 6: // time zone
- if (settings->bit.time_zone > 0) {
- settings->bit.time_zone--;
+ if (movement_get_timezone_index() > 0) {
+ movement_set_timezone_index(movement_get_timezone_index() - 1);
} else {
- settings->bit.time_zone = 40;
+ movement_set_timezone_index(NUM_ZONE_NAMES - 1);
}
break;
}
date_time_settings.unit.day = date_time_settings.unit.day + 1;
break;
case 6: // time zone
- settings->bit.time_zone++;
- if (settings->bit.time_zone > 40) settings->bit.time_zone = 0;
+ movement_set_timezone_index(movement_get_timezone_index() + 1);
+ if (movement_get_timezone_index() >= NUM_ZONE_NAMES) movement_set_timezone_index(0);
break;
}
if (date_time_settings.unit.day > days_in_month(date_time_settings.unit.month, date_time_settings.unit.year + WATCH_RTC_REFERENCE_YEAR))
break;
}
case 6: // time zone
- settings->bit.time_zone++;
- if (settings->bit.time_zone >= NUM_ZONE_NAMES) settings->bit.time_zone = 0;
+ movement_set_timezone_index(movement_get_timezone_index() + 1);
+ if (movement_get_timezone_index() >= NUM_ZONE_NAMES) movement_set_timezone_index(0);
break;
}
if (date_time.unit.day > days_in_month(date_time.unit.month, date_time.unit.year + WATCH_RTC_REFERENCE_YEAR))
if (event.subsecond % 2) {
memset(buf, ' ', sizeof(buf));
} else {
- watch_display_text(WATCH_POSITION_TOP_LEFT, (char *) (zone_names + 11 * settings->bit.time_zone));
- sprintf(buf, "%s", (char *) (3 + zone_names + 11 * settings->bit.time_zone));
+ watch_display_text(WATCH_POSITION_TOP_LEFT, (char *) (zone_names + 11 * movement_get_timezone_index()));
+ sprintf(buf, "%s", (char *) (3 + zone_names + 11 * movement_get_timezone_index()));
}
}