aboutsummaryrefslogtreecommitdiffstats
path: root/src/displayapp/Apps.h.in
diff options
context:
space:
mode:
authorJean-François Milants <jf@codingfield.com>2023-12-17 16:34:00 +0100
committerJF <JF002@users.noreply.github.com>2023-12-23 21:29:13 +0100
commit2bc93184511921abda938790a4bdd1d2ea8e06ce (patch)
tree060ddd0c7cbed07957f058c5a32dfccd3598f8e4 /src/displayapp/Apps.h.in
parentca7d8a668d37d3377aeb38d122a9eccafdd6822d (diff)
CMake User Applications selection
Use CMake's configure_file() functionality to generate the list of User Applications. All the apps included in current versions of InfiniTime are enabled by default, but this can now be overridden by setting variables ENABLE_APP_XXX to True or False. CMake CMP0140 is set to NEW to enable the return PROPAGATE functionality.
Diffstat (limited to 'src/displayapp/Apps.h.in')
-rw-r--r--src/displayapp/Apps.h.in99
1 files changed, 99 insertions, 0 deletions
diff --git a/src/displayapp/Apps.h.in b/src/displayapp/Apps.h.in
new file mode 100644
index 00000000..23ad12a3
--- /dev/null
+++ b/src/displayapp/Apps.h.in
@@ -0,0 +1,99 @@
+#pragma once
+#include <cstddef>
+#include <cstdint>
+
+namespace Pinetime {
+ namespace Applications {
+ enum class Apps : uint8_t {
+ None,
+ Launcher,
+ Clock,
+ SysInfo,
+ FirmwareUpdate,
+ FirmwareValidation,
+ NotificationsPreview,
+ Notifications,
+ Timer,
+ Alarm,
+ FlashLight,
+ BatteryInfo,
+ Music,
+ Paint,
+ Paddle,
+ Twos,
+ HeartRate,
+ Navigation,
+ StopWatch,
+ Metronome,
+ Motion,
+ Steps,
+ PassKey,
+ QuickSettings,
+ Settings,
+ SettingWatchFace,
+ SettingTimeFormat,
+ SettingDisplay,
+ SettingWakeUp,
+ SettingSteps,
+ SettingSetDateTime,
+ SettingChimes,
+ SettingShakeThreshold,
+ SettingBluetooth,
+ Error,
+ Weather
+ };
+
+ enum class WatchFace : uint8_t {
+ Digital,
+ Analog,
+ PineTimeStyle,
+ Terminal,
+ Infineat,
+ CasioStyleG7710,
+ };
+
+ template <Apps>
+ struct AppTraits {};
+
+ template <WatchFace>
+ struct WatchFaceTraits {};
+
+ template <Apps... As>
+ struct TypeList {
+ static constexpr size_t Count = sizeof...(As);
+ };
+
+ using UserAppTypes = TypeList<@USERAPP_TYPES@>;
+
+ template <WatchFace... Ws>
+ struct WatchFaceTypeList {
+ static constexpr size_t Count = sizeof...(Ws);
+ };
+
+ using UserAppTypes = TypeList<Apps::StopWatch,
+ Apps::Alarm,
+ Apps::Timer,
+ Apps::Steps,
+ Apps::HeartRate,
+ Apps::Music,
+ Apps::Paint,
+ Apps::Paddle,
+ Apps::Twos,
+ Apps::Metronome,
+ Apps::Navigation
+ /*
+ Apps::Weather,
+ Apps::Motion
+ */
+ >;
+
+ using UserWatchFaceTypes = WatchFaceTypeList<WatchFace::Digital,
+ WatchFace::Analog,
+ WatchFace::PineTimeStyle,
+ WatchFace::Terminal,
+ WatchFace::Infineat,
+ WatchFace::CasioStyleG7710>;
+
+ static_assert(UserWatchFaceTypes::Count >= 1);
+ }
+}