* gui: refactore ViewNavigator -> SceneManager
* view_dispatcher: remove scene controller, add custom and navigation cb
* scene_manager: rework scene controller, move AppScene from lib
* nfc: rework nfc scenes with new scene controller API
* view_dispatcher: crash on free if not all views were freed
* nfc: introduce scene declaration
* scene_manager: allocate and configure application scenes
* nfc: rework nfc with new Scene Manager API
* scene_manager: remove dublicated scene handlers allocation
* nfc: rework nfc app with new scene manager API
* view_dispatcher: add tick event
* scene_manager: add tick event type and handler
* nfc: rework notifications with tick event
* scene_manager: remove scene id from scene structure
* scene_manager: rename array -> stack, add documentation
* api-hal-nfc: remove listen activation processing
* nfc_scene_start: shorter submenu call
* nfc: fix nfc file name
* nfc: fix Retry in mifare ul success read
* nfc_cli: fix read timeout in nfc_detect CLI command
Co-authored-by: あく <alleteam@gmail.com>
* nfc: add scripts menu scene
* canvas: add glyph width api
* app_scene: add state to Scene template
* gui: introduce TextBox view
* nfc: add mifare ultralight read scenes
* nfc: add mifare ultralight menu scene
* nfc: fix scene functions declaration
* Gui: use size_t for sizes.
Co-authored-by: あく <alleteam@gmail.com>
* SubGhz: changing the operation of the capture timer, and the logic of the work of parsers
* Add toolbox lib. Move levels to toolbox. Subghz switch to levels.
* Subghz: update worker signatures
* SubGhz: pluggable level duration implementations.
* SubGhz : test drawing pictures in Gui
* SubGhz: Added a callback with the parser structure as argument
* SubGhz: copy protocol data to model
* SubGhz: refactoing code
* SubGhz: cleanup and format sources
* SubGhz: remove comments
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
* GUI: Icons and IconsAnimation refactoring. Switch assets to new Icon API.
* Gui: icon and animation draw now do not accept null pointer
* Format Sources
* Fix no debug build
* Furi: stricter checks in memmgr
* Menu: secondary menu rendering
* Manu: reset window position on enter to new menu
* App-loader: settings menu
* Applications: add settings app list
* App backlight-control: all work related to turning off the display is now in the notification app
* App notification: settings save and load
* Gui: variable item list module
* App: new notification settings app
* Display: backlight is now fully serviced in the notification app
* Gui: update variable item list module documentation
* Gui module byte-input: changed api
* Gui: changed font height in multiline text according to guideline
* Apps lrfid, nfc: changed send and receive icon
* App lfrfid: fix text, fix scene switсh
* Elements: multiline text framed, fix paddings
* Gui: remove duplicate definition of elements_multiline_text_framed
* App NFC: update byte_input callback signature
* App subghz: fix text lines in capture scene
* App subghz: position of the text is aligned with the guidelines and other scenes
* App subghz: removed mockup
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
* nfc: add save name and save success scenes
* applications: increase nfc app stack size to 4k
* nfc: move nfc device data to separate file
* nfc: add nfc device save to SD card
* nfc: add file select scene
* nfc: add saved key menu scene
* nfc: add manual SAK, ATQA, UID enter
* nfc: add manual enter
* nfc scenes: remove typedef in SubmenuIndex enu
* nfc_device: close file_worker after load data
Co-authored-by: あく <alleteam@gmail.com>
* Cli: merge version and hwinfo and form machine/human readable key value set.
* Backport F6 changes to F5. Add readme to cli_command_device_info rountine
* Cli: return proper order to radio stack version in device_info command
Co-authored-by: SG <who.just.the.doctor@gmail.com>
* ApiHal: set frequency and path in one go. Drivers: proper frequency registers calculation for CC1101. Update subghz cli to match new api.
* SubGhz: preparation for parsers porting, tim2 sharing
* ApiHal: add interrupts API, move all TIM2 related things there.
* SubGhz: refactor protocol lib and add keeloq.
* SubGhz: proper init_set for keeloq manafacture key
* SubGhz: port more protocols to lib
* SubGhz: load keeloq manufacture keys from sd card (if any).
* SubGhz: format output from protocols.
* SubGhz: use default frequency in subghz_rx cli command.
* SubGhz: keeloq key types
* Fix compillation error when internal storage disabled
* SubGhz: minor cleanup
* SubGhz: properly handle timeout and reset signal in subghz_rx
* SubGhz: Worker, Capture View. Furi: emulate thread join.
* SubGhz: free strings on keeloq key load end
* SubGhz: update protocols reporting API, app refactoring and capture view, update API HAL usage.
* SubGhz: update dump formatting
* ApiHal: backport subghz preset to F5
* ApiHal: backport subghz frequency range to F5
* ibutton: run emulation when launched with argument
* app-loader: set NULL context when starting application from menu
* ibutton: change p to argc
* ibutton: fix load key data from file
* ibutton: fix memory leak
* Update MLib to latest master.
* Archive: update string_t usage, add unsafe usage TODO, change model type to blocking and fix invalid usage.
* Gui: update text_input API and it's usage.
* fix blocking model issues
* fix unsafe string_t usage
Co-authored-by: Igor Baranov <bedtimeposts@gmail.com>
Co-authored-by: its your bedtime <23366927+itsyourbedtime@users.noreply.github.com>
* Assets: move assets compilation to separate Makefile. Move all scripts to scripts folder. Add scripts ReadMe. Add precompiled assets.
* Split assets.py into separate entities. Option bytes for FL-1289 and checker/setter.
* Cli: explicitly initialize variable befor use in api_hal_vcp_rx_with_timeout
* Rename ob_check script to ob.
* ibutton: long names partial fix\
* ibutton: limit max filename length to 22 chars
* elwrapping long names to a new line
* Proper m-string size usage
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
* Add saving to SD-Card (not ready yet)
* Add saving to SD-card (done)
* Select previous menu item
* Fix central button
* Fix current_button
* Refactoring
* Add notifications
* [FL-1417] Add IRDA CLI
CLI commands:
1) ir_rx
Receives all IR-trafic, decodes and prints result to stdout
2) ir_tx <protocol> <address> <command>
Transmits IR-signal. Address and command are hex-formatted
* Fix BUG with random memory corruption at random time in random place in random universe in random unknown space and time forever amen
* Fix submenu set_selected_item
* Bring protocol order back
* Add TODO sdcard check
* fixed line end in cli:hw_info command
* remove x0a from ctime() out
* syntax fix
* use reentrant verison of ctime
Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
* GUI module submenu: fix documentation
* GUI module submenu: add submenu_set_selected_item fn
* App iButton: use submenu_set_selected_item to store and set selected item in submenu
* App iButton: swap write and emulate in "saved key menu" scene
* App iButton: file select can now switch to the previous selected file
* App iButton: swap write and emulate indexes in "saved key menu" scene
* Gui module file_select: work with separate extension
* iButton app: separate file managment, file error handling
* SD card api: custom error message
* iButton app: better file error handling
Co-authored-by: あく <alleteam@gmail.com>
* app-loader: add API for starting applications with arguments
* app-loader: add check if application is running
* archive: rework starting app with app-loader API
Co-authored-by: あく <alleteam@gmail.com>
* GUI module submenu: fix documentation
* GUI module submenu: add submenu_set_selected_item fn
* App iButton: use submenu_set_selected_item to store and set selected item in submenu
* App iButton: swap write and emulate in "saved key menu" scene
* App iButton: file select can now switch to the previous selected file
* App iButton: swap write and emulate indexes in "saved key menu" scene
Co-authored-by: あく <alleteam@gmail.com>
* Add more more frequencees and change ok key bahavior to toggle
* GUI: add queue support to ViewDispatcher
* SubGhz: basic cli
* SubGHz: pt send cli
* SubGhz: carrier cli commands.
* Fix irda test data merge artifacts
* Unit tests: fix IRDA test data
* Fix format-errors on test data files
* Fix sticking red/green light on unit-tests
Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: Albert Kharisov <albert@flipperdevices.com>
* ibutton: remove existing key file before saving new
* ibutton: save key name in iButtunKey object
* ibutton: rename IBUTTON_KEY_SIZE -> IBUTTON_KEY_DATA_SIZE
* ibutton: clear key when enter one manually
* ibutton: change strcpy -> strlcpy
Co-authored-by: あく <alleteam@gmail.com>
* Add cscope db generation
* Add api-hal-irda, TIM2: HAL->LL
* Add libirda: pwm decoding
* Universal state machine
* Add irda decoder library
* Move IRDA capture to standalone tool
* Add encoder/decoder samsung32, NEC, fix bugs
* Port current App to new Irda lib
* Fix clang format for test data
* Port IRDA api-hal to f6
Co-authored-by: あく <alleteam@gmail.com>
* Add littlefs submodule
* Furi: add mutex in logging, fix issues with corrupted printf
* ApiHal: disable debug traces in ble glue
* App-loader: more logs
* Passport: fix invalid DolphinState usage
* ApiHal, linker script: flash API is now aware of free space, complete abstraction layer for storage
* Internal Storage: littlefs based storage services with key value API. Migrate dolphin state to new storage API.
* Dolphin idle screen: Cleanup of debug views; Hold [down] to open debug view; Sequential input for unlocking;
* Lock screen popup, WIP
* Fix reverse modulus
* Lock popup added
* Dolphin: timer for handling UI animation sequences
* Allow tick events to be discarded on queue overflow and prevent timer service from crash
Co-authored-by: あく <alleteam@gmail.com>
* furi_log: introduce log system
* applications: rework with furi logging
* furi_log: reset color after tag printed
* core: add log info
Co-authored-by: あく <alleteam@gmail.com>
* Dolphin scene add moar enterprise sleeps
* Gihub: update PR template and cleanup codeowners
Co-authored-by: its your bedtime <23366927+itsyourbedtime@users.noreply.github.com>
* Debug apps moved into its own menu category, APP_DEBUG flag added
* Menu power icon added
* Added APP_DEBUG flag to flash_core1 bash script
* Removed commented section in app-loader
Co-authored-by: あく <alleteam@gmail.com>
* dolphin scenes refactoring & restructuring phase 1
* Passport app: mood and level display, opens from main menu and dolphin scenes. Dolphin scenes: minor refactoring (WIP)
* dolphin scene app restruct
* use gui defines for screen size
* mv passport to dolphin dir
Co-authored-by: あく <alleteam@gmail.com>
* Add bootloader versioning
* Move some logic to api-hal-version
* Backport to f4
* Dolphin: update version screen layout, make it more readable
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
* Interrupt manager: add memory barriers.
* ISRs: remove TIM17 dead code.
* API HAL Delay: rename initialization routine and move to API-HAL
* Main: move FURI initialization to the start.
* API HAL GPIO: drop CC1101 shenanigans, COMP inversion for new boards.
* IButton: migrate Cyfral and Metakom to RFID comp routine, make it compatible with new boards.
* RFID: Better keyboard handling and shutdown routines
* file_select: process zero file counter
* file_select: process file select view for less than 4 files
* ibutton: change application navigation
* ibutton: add read new key submenu
* file_select: use standart MIN() function
* sd-filesystem: remove unused min() define
* fix statusbar height and main screen views, added multiline text framed func
* replace char* arguments with const char*
* small prettify
* move pointer increment to end of loop
* API HAL SPI: refactoring, split into layers, prepare ST HAL separation. API HAL SubGhz: initialize on start. Drivers: add basic cc1101 driver. Update API usage. Debug: increase max debugger port speed. Remove subghz apps.
* CC1101: chip status handling. ApiHalSpi: increase SubGhz bus speed to 8mhz. F4: backport subghz initialization.
* Api Hal SubGhz: rx path and frequency. CC1101: frequency control.
* SubGhz Application: basic tests
* SubGhz app: tone and packet test. API HAL SUBGHZ: update configs, add missing bits and pieces.
* new status bar, lock menu and dolphin activities screen
* lock icon indication
* main screen animation, basic scene switching
* level progression calculations based on icounter value
Co-authored-by: rusdacent <rusdacentx0x08@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
* SD App: more specific sd api
* Gui: view dispatcher fix api documentation
* Gui: view holder thingy
* SD App: do not sleep when working with sd card bus
* SD App: queue-based lifecycle
* Assets: sd-card assets
* SD App: init file select api
Co-authored-by: あく <alleteam@gmail.com>
* rename old ibutton app to ibutton-test
* more renames
* updated onewire library compilation condition
* add submenu_clean subroutine
* add index for submenu callback
* c++ guard for gui modules
* add released ibutton app
* fix the position of the submenu window if there are too few items
* iButton app basis
* negative icon position info
* fix submenu_clean subroutine
* add ibutton app to applications makefile
* add onewire key read routine to read mode
* rename mode to scene
* rename files and folder (mode to scene)
* rename ibutton view to view manager
* rename get_view to get_view_manager
* cpp guards
* key read, store and notify features
* syntax fix
* make iButtonScene functions pure virtual
* fix syntax
* add text store, add new scene (crc error)
* not a key scene
* syntax fix
* read success scene
* app, switching to the previous scene with the number of scenes to be skipped
* scene whith menu when key is readed
* fix font height calculation, fix offsets
* add key write scene
* view_dispatcher_remove_view subroutine
* generic pause/resume os methods
* fix furi_assert usage
* key store, worker
* fix pointer comparsion
* saved keys, saved key action scenes
* key delete/confirm delete scenes and routines
* use last input subsystem changes
* fix syntax
* fix new model usage in submenu
* fix includes
* use vibro pin
* use stored key name if valid
* emulate scene
* random name generator
* name and save readed key scenes, new icon
* fix icon position
* fix text scene exit
* fix naming, fix text placement, new info scene
* state-driven cyfral decoder
* better cyfral decoder
* better cyfral decoder
* one wire: search command set
* metakom decoder
* more key types
* add next scene to error scenes
* universal key reader
* use new key reader
* syntax fix
* warning fix
* byte input module template
* new thread and insomnia api usage
* New element: slightly rounded frame
* Use elements_slightly_rounded_frame in text input
* Gui test app: byte input usage
* Byte input module: data drawing and selection
* Byte input: comment currently unused fns
* remove volatile qualifier
* base byte input realisation
* App gui test: remove internal fns visibility
* Byne input, final version
* test install gcc-arm-none-eabi-10-2020-q4-major
* test install gcc-arm-none-eabi-10-2020-q4-major
* App iButton: byte input view managment
* App iButton: add key manually scenes
* App iButton: rename scenes, add popup timeout
* App iButton: use new scenes, new fn for rollback to specific prevous scene.
* App iButton: remove byte input view on app exit
* App iButton: edit key scene
* Module byte input: reduce swintch value to uint8_t
* Module byte input: switch from switch-case to if, unfortunately we need compile-time constants to use with switch
* Icons: new small arrows
* Module byte input: new arrangement of elements
* OneWire slave lib: fix deattach sequence
* App iButton: pulse sequencer
* App iButton: add more keys to store
* App iButton: split key worker to separate read/write/emulate entitys
* App iButton: use new read/emulate entities
* fix callback pointer saving
* App iButton: use KeyReader error enum instead of KeyWorker error list handling
* App iButton: do not use insomnia fns in pulse sequencer
* App iButton: use KeyReader error enum in read scene
* OneWire slave lib: more READ ROM command variants, call callback only if positive result
* GPIO resources: add external gpio
* App SD/NFC: removed application
* App iButton-test: update to new light api
* App iButton: update to new light-api
* Outdated apps: add api-light-usage
* Gpio: update SD card CS pin settings
* API-power: added fns to disable/enable external 3v3 dc-dc
* API-gpio: separated SD card detect routines
* Resources: removed sd cs pin
* SD card: low level init now resets card power supply
* App SD-filesystem: use new card detect fns
* SD card: fix low level init headers
* SD card: more realilable low level init, power reset, exit from command read cycle conditionally
* App SD-filesystem: led notifiers, init cycling
* SD card: backport to F4
* Api PWM: add c++ guards
* App iButton: yellow blink in emulate scene, vibro on
* App iButton: one wire keys command set
* App iButton: successful write scene
* App iButton: key writer
* App iButton: syntax fix
* App iButton: notify write success
* App iButton: fix double scene change
* SD card: handle eject in init sequence
* SD card: api to set level on detect gpio
* SPI: api to set state on bus pins
* SD card: set low state on bus pins while power reset
* File select: init
* File select: fix input consuming
* SD Card: fixed dir open api error
* SD-card: replace strncpy by strlcpy. Fix buffer overflow error.
* API HAL OS: replace CMP based ticks with ARR based one, hard reset lptimer on reconfiguration.
* GUI: More stack size for (temporary, wee need to implement sd card api in separate thread)
* GUI: File select module.
* App iButton-test: remove obsolete app
Co-authored-by: rusdacent <rusdacentx0x08@gmail.com>
Co-authored-by: coreglitch <mail@s3f.ru>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>