* Allow multiple wakeup modes at the same time.
This commit adds multiple wakeup modes support.
It does so by storing them as a uint8_t bitfield enum.
It changes the following functions:
Since multiple modes can be on now, older version would not cut it:
WakeUpMode getWakeupMode() -> std::bitset<3> getWakeUpModes()
Where each bit corresponds to a WakeUpMode
We still need a way to check whether a specific wakeup mode is on, so:
bool isWakeUpModeOn(const WakeUpMode mode)
This function was changed to work correctly with the new implementation.
setWakeUpMode(WakeupMode mode, bool enable)
Previously, systemtask would exit SystemTask::OnTouchEvent() if the wake
up mode was None or RaiseWrist, to prevent waking up when a touch was
received. However, after enabling using multiple WakeUpModes, this
caused a bug where when RaiseWrist was checked with SingleTap or
DoubleTap, the tap detection wouldn't work.
This commit fixes that bug.
Next commit will update the settings WakeUpMode select UI to reflect these changes.
Signed-off-by: Kozova1 <mug66kk@gmail.com>
* Updated UI to reflect multiple WakeUp sources being available.
Signed-off-by: Kozova1 <mug66kk@gmail.com>
Replaced the use of the standard library trig functions with a LUT-based
implementation instead. The standard library implementations produce
more accurate results but the usage here doesn't need that. This ends up
saving nearly 7kB of binary size.
* PineTimeStyle
* Move GPL license header
* Add step count gauge - replaces heartrate in sidebar
* Enable 12/24h functionality
* Set step gauge outer to be white when step goal is reached
* Add font source file
* Move static needle_colors array to member variable
* Add documentation on generating a font
* Replace .ttf with Google version, add link to font page
Co-authored-by: JF002 <JF002@users.noreply.github.com>
* Retrieve and display bootloader version
- Display bootloader version on System Info screen
- Enable SPI flash sleep mode if bootloader version >= 1.0.0
* Wait for SPI flash to wakeup before starting OTA DFU
* update font with jetbrains mono v2.225 and the current converter
* added the tff file for JetBrains Mono to ensure everybody is using the same version
Co-authored-by: Florian <florian@florian-thinkpad.local>
* add basic metronome app
* add bpb, tap to bpm, update widgets
* use event pressed for bpm tap
* move case statement break to the right place
* narrow bpm selection range, override touch events
* fix arc knob style
* re-enable sleeping in destructor
* Add the following compilation flags:
* -fno-exceptions and -fno-non-call-exceptions : disable exception handling
* -fno-rtti : disable run time type information (needed by dynamic_cast, for example)
These flags reduce the binary size by about 100KB!
Also, -fstack-usage generate debug info (not in final binary) to allow tools like Puncover to do a stack analysis.
* Remove unused CMake variables in CMake_nRF5x.cmake (duplicated in src/CMakeLists.txt).
Replace -O0 by -Og in DEBUG builds. This generates a smaller binary (small enough for the internal memory) that is debugger friendly.
* Navigation app:
- Renaming and reformatting according to coding conventions
- declare iconMap as constexpr and use char* instead of std::string
This reduces the flash usage from 424644B to 419344B (-5300B)!
* built timer app
* Style improvements
* making sure buttons stay hidden when the app is reopened and reappear after the timer runs out
* more sensible calculations of time deltas. eliminated that mysterious scaling factor
* changing the timer icon