* 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>
Changed type of encodedBufferIndex to size_t to eliminate warning. It is
fine as a size_t as its only ever compared to another size_t and used as
an array index.
Was causing compiler warning for unused constant variable when being
compiled. This feel is directly included where it's needed so it doesn't
need to be separately compiled anyways.
* 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
The lv_obj_del is called on btnStopLap when transitioning to the
initial state, however the variable isn't then set to null. A subsequent
call to Refresh would attempt to delete the already freed object. This
could be triggered by stopping the stop watch, then pressing the
physical button on the watch.
Fixes https://github.com/JF002/InfiniTime/issues/315