ref: 0195ece317d15bcba7dfbd74b58bb8dbcd3bca0a
src/Components/Ble/NotificationManager.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#pragma once #include <array> namespace Pinetime { namespace Controllers { class NotificationManager { public: enum class Categories {Unknown, SimpleAlert, Email, News, IncomingCall, MissedCall, Sms, VoiceMail, Schedule, HighProriotyAlert, InstantMessage }; static constexpr uint8_t MessageSize = 18; struct Notification { std::array<char, MessageSize> message; Categories category = Categories::Unknown; }; void Push(Categories category, const char* message, uint8_t messageSize); Notification Pop(); private: static constexpr uint8_t TotalNbNotifications = 5; std::array<Notification, TotalNbNotifications> notifications; uint8_t readIndex = 0; uint8_t writeIndex = 0; bool empty = true; }; } } |