#pragma once #include "config.h" #include "WatchyDisplay.h" #include "WatchyRTC.h" #include #include #include class Watchy { public: Watchy(); void Init(); void DeepSleep(); void VibeMotor(uint8_t intervalMs = 100, uint8_t length = 20); float GetBatteryVoltage(); void ConnectWiFi(); void SyncNTPTime(); void DisconnectWiFi(); void ShowWatchFace(bool partialRefresh = false); // Called after hardware is setup virtual void Setup() = 0; virtual void HandleButtonPress(uint64_t buttonMask) = 0; virtual void DrawWatchFace(bool partialRefresh = false) = 0; protected: static void DisplayBusyCallback(const void *); static WatchyDisplayBase m_displayBase; static WatchyDisplay m_display; static WatchyRTC m_RTC; };