From 39bc166e549e8ccae75468aa2dd3613d51f54e27 Mon Sep 17 00:00:00 2001 From: Jean-François Milants Date: Sun, 10 Dec 2023 18:35:19 +0100 Subject: Watch face selection at build time Watch faces can now be selected at buid time. It's implemented in a similar way than the selection of user apps, using a list of watch face description that is generated at build time (consteval, constexpr) --- src/displayapp/screens/Clock.cpp | 133 --------------------------------------- 1 file changed, 133 deletions(-) delete mode 100644 src/displayapp/screens/Clock.cpp (limited to 'src/displayapp/screens/Clock.cpp') diff --git a/src/displayapp/screens/Clock.cpp b/src/displayapp/screens/Clock.cpp deleted file mode 100644 index 4219b090..00000000 --- a/src/displayapp/screens/Clock.cpp +++ /dev/null @@ -1,133 +0,0 @@ -#include "displayapp/screens/Clock.h" - -#include -#include "components/battery/BatteryController.h" -#include "components/motion/MotionController.h" -#include "components/ble/BleController.h" -#include "components/ble/NotificationManager.h" -#include "components/settings/Settings.h" -#include "displayapp/DisplayApp.h" -#include "displayapp/screens/WatchFaceDigital.h" -#include "displayapp/screens/WatchFaceTerminal.h" -#include "displayapp/screens/WatchFaceInfineat.h" -#include "displayapp/screens/WatchFaceAnalog.h" -#include "displayapp/screens/WatchFacePineTimeStyle.h" -#include "displayapp/screens/WatchFaceCasioStyleG7710.h" - -using namespace Pinetime::Applications::Screens; -using namespace Pinetime::Applications; - -Clock::Clock(Controllers::DateTime& dateTimeController, - const Controllers::Battery& batteryController, - const Controllers::Ble& bleController, - Controllers::NotificationManager& notificationManager, - Controllers::Settings& settingsController, - Controllers::HeartRateController& heartRateController, - Controllers::MotionController& motionController, - Controllers::WeatherService& weatherService, - Controllers::FS& filesystem) - : dateTimeController {dateTimeController}, - batteryController {batteryController}, - bleController {bleController}, - notificationManager {notificationManager}, - settingsController {settingsController}, - heartRateController {heartRateController}, - motionController {motionController}, - weatherService {weatherService}, - filesystem {filesystem}, - screen {[this, &settingsController]() { - switch (settingsController.GetWatchFace()) { - case WatchFace::Digital: - return WatchFaceDigitalScreen(); - break; - case WatchFace::Analog: - return WatchFaceAnalogScreen(); - break; - case WatchFace::PineTimeStyle: - return WatchFacePineTimeStyleScreen(); - break; - case WatchFace::Terminal: - return WatchFaceTerminalScreen(); - break; - case WatchFace::Infineat: - return WatchFaceInfineatScreen(); - break; - case WatchFace::CasioStyleG7710: - return WatchFaceCasioStyleG7710(); - break; - } - return WatchFaceDigitalScreen(); - }()} { - settingsController.SetAppMenu(0); -} - -Clock::~Clock() { - lv_obj_clean(lv_scr_act()); -} - -bool Clock::OnTouchEvent(Pinetime::Applications::TouchEvents event) { - return screen->OnTouchEvent(event); -} - -bool Clock::OnButtonPushed() { - return screen->OnButtonPushed(); -} - -std::unique_ptr Clock::WatchFaceDigitalScreen() { - return std::make_unique(dateTimeController, - batteryController, - bleController, - notificationManager, - settingsController, - heartRateController, - motionController); -} - -std::unique_ptr Clock::WatchFaceAnalogScreen() { - return std::make_unique(dateTimeController, - batteryController, - bleController, - notificationManager, - settingsController); -} - -std::unique_ptr Clock::WatchFacePineTimeStyleScreen() { - return std::make_unique(dateTimeController, - batteryController, - bleController, - notificationManager, - settingsController, - motionController, - weatherService); -} - -std::unique_ptr Clock::WatchFaceTerminalScreen() { - return std::make_unique(dateTimeController, - batteryController, - bleController, - notificationManager, - settingsController, - heartRateController, - motionController); -} - -std::unique_ptr Clock::WatchFaceInfineatScreen() { - return std::make_unique(dateTimeController, - batteryController, - bleController, - notificationManager, - settingsController, - motionController, - filesystem); -} - -std::unique_ptr Clock::WatchFaceCasioStyleG7710() { - return std::make_unique(dateTimeController, - batteryController, - bleController, - notificationManager, - settingsController, - heartRateController, - motionController, - filesystem); -} -- cgit v1.2.3-70-g09d2