diff options
| author | Avamander <avamander@gmail.com> | 2020-10-02 19:16:48 (GMT) |
|---|---|---|
| committer | Avamander <avamander@gmail.com> | 2020-10-02 19:16:48 (GMT) |
| commit | 6c86d1d9d706706fcb6f214aba8259e61ed68755 (patch) | |
| tree | 2f4137a9916869cee18fd01449aa83ee586b9604 /src/components/ble/NotificationManager.cpp | |
| parent | 4daab2692692d47af24a9384eb0f402821527882 (diff) | |
Fixed all the includes that were broken due to the renames
Diffstat (limited to 'src/components/ble/NotificationManager.cpp')
| -rw-r--r-- | src/components/ble/NotificationManager.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/components/ble/NotificationManager.cpp b/src/components/ble/NotificationManager.cpp new file mode 100644 index 0000000..0aea069 --- /dev/null +++ b/src/components/ble/NotificationManager.cpp @@ -0,0 +1,30 @@ +#include <cstring> +#include "NotificationManager.h" + +using namespace Pinetime::Controllers; + +void NotificationManager::Push(Pinetime::Controllers::NotificationManager::Categories category, + const char *message, uint8_t currentMessageSize) { + // TODO handle edge cases on read/write index + auto checkedSize = std::min(currentMessageSize, uint8_t{18}); + auto& notif = notifications[writeIndex]; + std::memcpy(notif.message.data(), message, checkedSize); + notif.message[checkedSize] = '\0'; + notif.category = category; + + writeIndex = (writeIndex + 1 < TotalNbNotifications) ? writeIndex + 1 : 0; + if(!empty && writeIndex == readIndex) + readIndex = writeIndex + 1; +} + +NotificationManager::Notification Pinetime::Controllers::NotificationManager::Pop() { +// TODO handle edge cases on read/write index + NotificationManager::Notification notification = notifications[readIndex]; + + if(readIndex != writeIndex) { + readIndex = (readIndex + 1 < TotalNbNotifications) ? readIndex + 1 : 0; + } + + // TODO Check move optimization on return + return notification; +} |
