summaryrefslogtreecommitdiff
path: root/src/c/fastforge_internal.h
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-12 22:20:10 +0300
committerPaul Buetow <paul@buetow.org>2026-04-12 22:20:10 +0300
commit3b03de3e1bac378bbbdf122110fea94f45981b9d (patch)
tree43d980956902c7e24458e1632cad7021597a4032 /src/c/fastforge_internal.h
parent9d28ec3d0e03b32949b0392d22ad9489cb423f29 (diff)
i2: split FastForge core and history modules
Diffstat (limited to 'src/c/fastforge_internal.h')
-rw-r--r--src/c/fastforge_internal.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/c/fastforge_internal.h b/src/c/fastforge_internal.h
new file mode 100644
index 0000000..c0a2463
--- /dev/null
+++ b/src/c/fastforge_internal.h
@@ -0,0 +1,43 @@
+#ifndef FASTFORGE_INTERNAL_H
+#define FASTFORGE_INTERNAL_H
+
+#include "fastforge.h"
+
+extern bool s_fake_time_enabled;
+extern int32_t s_fake_time_offset_seconds;
+extern int32_t s_current_fast_origin_offset_seconds;
+extern MenuLayer *s_history_menu_layer;
+extern TextLayer *s_stats_body_layer;
+
+time_t fastforge_now(void);
+void recompute_streak_data_for_today(void);
+bool refresh_streak_if_day_changed(void);
+void update_max_stage_if_needed(time_t elapsed_seconds);
+void schedule_alarm_if_needed(void);
+time_t entry_duration_seconds(const FastEntry *entry);
+void format_hhmmss(time_t seconds, char *buffer, size_t size);
+void format_duration_hours_minutes(time_t seconds, char *buffer, size_t size);
+void format_entry_datetime(time_t timestamp, char *buffer, size_t size);
+uint8_t stage_level_for_elapsed(time_t elapsed_seconds);
+const char *stage_text_for_elapsed(time_t elapsed_seconds);
+bool running_fast_is_at_target(time_t now);
+void sort_history_by_end_time(void);
+int history_index_for_row(int row);
+const char *milestone_badge_label_for_level(uint8_t stage_level);
+const char *history_entry_badge_label(const FastEntry *entry);
+void format_optional_tag_text(const char *prefix, const char *value, char *buffer, size_t size);
+int note_tag_index_for_entry(const FastEntry *entry);
+void set_entry_note_from_tag_index(FastEntry *entry, int tag_index);
+int history_note_tag_count(void);
+void format_history_row(int row, char *title, size_t title_size, char *subtitle, size_t subtitle_size);
+void refresh_stats_window_content(void);
+void history_menu_reload(void);
+void request_history_export(void);
+void refresh_all_ui_state(void);
+void show_goal_reached_window(void);
+void show_placeholder_window(const char *title, const char *body, const char *hint);
+void fastforge_history_register_app_message_handlers(void);
+void fastforge_history_stop_export(void);
+void fastforge_force_goal_alarm(void);
+
+#endif