summaryrefslogtreecommitdiff
path: root/src/BootloaderVersion.cpp
diff options
context:
space:
mode:
authorKieran Cawthray <kieranc@gmail.com>2021-06-29 21:10:36 +0200
committerKieran Cawthray <kieranc@gmail.com>2021-06-29 21:10:36 +0200
commit4f21748aa2a4693bd4b243ab0ebe11482d1aaf09 (patch)
tree762dd147b5d08db903da93883e7dc8dcaf6292cd /src/BootloaderVersion.cpp
parent660a8597f6edc66deec94782817613e1a4f84a6d (diff)
parentf317d54218659af437d840d00fd349e7919a243f (diff)
Merge remote-tracking branch 'upstream/develop' into pinetimestyle-colorpicker
Diffstat (limited to 'src/BootloaderVersion.cpp')
-rw-r--r--src/BootloaderVersion.cpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/src/BootloaderVersion.cpp b/src/BootloaderVersion.cpp
index 5eba7a1d..07a1da4e 100644
--- a/src/BootloaderVersion.cpp
+++ b/src/BootloaderVersion.cpp
@@ -1,26 +1,36 @@
#include <cstdint>
+#include <cstdio>
#include "BootloaderVersion.h"
using namespace Pinetime;
-// NOTE : current bootloader does not export its version to the application firmware.
+// NOTE : version < 1.0.0 of bootloader does not export its version to the application firmware.
-uint32_t BootloaderVersion::Major() {
- return 0;
+uint32_t BootloaderVersion::version = 0;
+char BootloaderVersion::versionString[BootloaderVersion::VERSION_STR_LEN] = "0.0.0";
+
+const uint32_t BootloaderVersion::Major() {
+ return (BootloaderVersion::version >> 16u) & 0xff;
}
-uint32_t BootloaderVersion::Minor() {
- return 0;
+const uint32_t BootloaderVersion::Minor() {
+ return (BootloaderVersion::version >> 8u) & 0xff;
}
-uint32_t BootloaderVersion::Patch() {
- return 0;
+const uint32_t BootloaderVersion::Patch() {
+ return BootloaderVersion::version & 0xff;
}
const char* BootloaderVersion::VersionString() {
- return "0.0.0";
+ return BootloaderVersion::versionString;
+}
+
+const bool BootloaderVersion::IsValid() {
+ return BootloaderVersion::version >= 0x00010000;
}
-bool BootloaderVersion::IsValid() {
- return false;
+void BootloaderVersion::SetVersion(uint32_t v) {
+ BootloaderVersion::version = v;
+ snprintf(BootloaderVersion::versionString, BootloaderVersion::VERSION_STR_LEN, "%ld.%ld.%ld",
+ BootloaderVersion::Major(), BootloaderVersion::Minor(), BootloaderVersion::Patch());
}