* fix multithread logic
* more buffer for dallas id string
* update apps to use new logic
* delay_us small speedup
* add consant qualifier to gpio records and some core api
* fix some apps to use simpler method of getting gpio record
* fix ibutton app, stupid stack problem
* Assets: import from gdrive
* Assets: fully working build pipeline and registry
* NFC: menu icon
* Gui: layers. Irukagotchi: base app to handle input on idle screen. Makefile: reboot after flash in dfu mode.
* ValueMutex: with lambda
* Assets: proper animation frames sorting
* ValueMutex: proper furi_open usage
* Assets,GUI: split icon into icon data and icon state.
* Format source code
* Docker: add python3 and imagemagic
* Irukagotchi: cleanup
* GUI: event lock moved to gui.
* Rfid: proper gui layer
* GUI: elements. Menu: frame and scroll
* GUI, Menu: format code.
* Menu: dual font main menu
* Menu: format sources
* GUI: 0 total scrollbar
* CI: enable lfs
* Menu: pixel perfect main menu
Co-authored-by: Aleksandr Kutuzov <aku@plooks.com>
Co-authored-by: aanper <mail@s3f.ru>
* Fix ValueManager implementation
* Implement ValueComposer
* Add constructor for ValueManager
* Add value-expanders.h to flipper_v2.h set
* Move COPY_COMPOSE body into a .c file
* Add test for ValueManager
* Add destructors for ValueMutex, ValueManager and ValueComposer
* Use destructors in tests
* Move composition logic into perform_compose()
* Add docs for perform_compose()
* Add test for ValueComposer
* Replace atomic_bool with bool as g++ compiler doesn't support C11 atomics
* Add Event type
* Add semaphore support to the local target
* Add test for Event
* Update input records and relevant examples
* Rename Event to AppEvent in the cc1101-workaround example
* Rename Event to AppEvent in the irda example
* Use Event in ValueComposer to wait for update request
* Add perform_compose_internal() function
* fix Event/AppEvent
Co-authored-by: aanper <mail@s3f.ru>
* add input debounce code from old fw
* exampl of input api
* change input API to get/release
* revert input API to read
* pointer instead of instance
* add input API description
* add display API
* rewrite display names
* migrate to valuemanager
* add LED API
* add closing brakets
* add sound api
* fix led api
* basic api
* rename API pages
* change pubsub implementation
* move FURI AC -> flapp, add valuemutex example, add valuemanager implementation
* pubsub usage example
* user led example
* update example
* simplify input
* add composed display
* add SPI/GPIO and CC1101 bus
* change cc1101 api
* spi api and devices
* spi api and devices
* move SPI to page, add GPIO
* not block pin open
* backlight API and more
* add minunit tests
* fix logging
* ignore unexisting time service on embedded targets
* fix warning, issue with printf
* Deprecate furi_open and furi_close (#167)
Rename existing furi_open and furi_close to deprecated version
* add exitcode
* migrate to printf
* indicate test by leds
* add testing description
* rename furi.h
* wip basic api
* add valuemutex, pubsub, split files
* add value expanders
* value mutex realization and tests
* valuemutex test added to makefile
* do not build unimplemented files
* fix build furmware target f2
* redesigned minunit tests to allow testing in separate files
* test file for valuemutex minunit testing
* minunit partial test valuemutex
* local cmsis_os2 mutex bindings
* implement furi open/create, tests
* migrate concurrent_access to ValueMutex
* add spi header
* Lib: add mlib submodule.
Co-authored-by: rusdacent <rusdacentx0x08@gmail.com>
Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>