From 108b9991d293eecbd02fa87ea6dea1c239959dc4 Mon Sep 17 00:00:00 2001 From: Joey Castillo Date: Wed, 9 Feb 2022 13:40:29 -0500 Subject: [PATCH] simulator: add geolocation support --- .../complication/sunrise_sunset_face.c | 21 ++++++++++++++ watch-library/simulator/shell.html | 29 +++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/movement/watch_faces/complication/sunrise_sunset_face.c b/movement/watch_faces/complication/sunrise_sunset_face.c index 1e6f342..fef9b4d 100644 --- a/movement/watch_faces/complication/sunrise_sunset_face.c +++ b/movement/watch_faces/complication/sunrise_sunset_face.c @@ -33,6 +33,10 @@ #include "watch_utility.h" #include "sunriset.h" +#if __EMSCRIPTEN__ +#include +#endif + static void _sunrise_sunset_set_expiration(sunrise_sunset_state_t *state, watch_date_time next_rise_set) { uint32_t timestamp = watch_utility_date_time_to_unix_time(next_rise_set, 0); state->rise_set_expires = watch_utility_date_time_from_unix_time(timestamp + 60, 0); @@ -279,6 +283,23 @@ void sunrise_sunset_face_setup(movement_settings_t *settings, uint8_t watch_face void sunrise_sunset_face_activate(movement_settings_t *settings, void *context) { (void) settings; if (watch_tick_animation_is_running()) watch_stop_tick_animation(); + +#if __EMSCRIPTEN__ + int16_t browser_lat = EM_ASM_INT({ + return lat; + }); + int16_t browser_lon = EM_ASM_INT({ + return lon; + }); + if ((watch_get_backup_data(1) == 0) && (browser_lat || browser_lon)) { + movement_location_t browser_loc; + browser_loc.bit.latitude = browser_lat; + browser_loc.bit.longitude = browser_lon; + watch_store_backup_data(browser_loc.reg, 1); + } +#endif + + sunrise_sunset_state_t *state = (sunrise_sunset_state_t *)context; movement_location_t movement_location = (movement_location_t) watch_get_backup_data(1); state->working_latitude = _sunrise_sunset_face_struct_from_latlon(movement_location.bit.latitude); diff --git a/watch-library/simulator/shell.html b/watch-library/simulator/shell.html index 1a4de98..2f560ab 100644 --- a/watch-library/simulator/shell.html +++ b/watch-library/simulator/shell.html @@ -321,6 +321,8 @@

Original F-91W SVG is © 2020 Alexis Philip, and is used here under the terms of the MIT license.

+ +
{{{ SCRIPT }}}