Introduces watch/, a real Pebble watchapp (built via pebble build) that
build / build (push) Successful in 30s
build / build (push) Successful in 30s
shows the daily tarot/astrology reading on-device: persistence, reading computation, and UI screens, driven by the existing engine/interpreter code linked in unchanged where possible. Required engine-side changes to make that linking work: - A compact low-precision ephemeris (lowprec_ephemeris.c) replacing the vendored ~127KB Astronomy Engine, which doesn't fit the watch's ~64KB app budget. - Hand-rolled sqrt/atan2/sin/cos replacements for that ephemeris and astro.c's Ascendant calculation - Pebble's statically-linked libm hard-faults on real hardware under this app's -fPIE link for all four. - narrative.c/guidance.c refactored from FILE*/fprintf onto snprintf- based buffers, since Pebble's SDK blocks fprintf at compile time.
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
#ifndef WATCH_UI_TEXT_WINDOW_H
|
||||
#define WATCH_UI_TEXT_WINDOW_H
|
||||
|
||||
/* Pushes a scrollable full-screen text window: `title` as a bold header,
|
||||
* `body` below it, word-wrapped and scrollable with the up/down buttons.
|
||||
* Used for every screen that's just prose (Summary/Guidance, a single
|
||||
* transit's narrative) - the Celtic Cross card screens use
|
||||
* ui_card_window.h instead, which also shows the card's image.
|
||||
*
|
||||
* Copies both strings internally (into the pushed window's own heap
|
||||
* state, freed when it's popped), so the caller's buffer doesn't need to
|
||||
* outlive the call - every caller so far builds `title`/`body` in a
|
||||
* short-lived local buffer right before pushing. */
|
||||
void text_window_push(const char *title, const char *body);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user