[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
#include "applications.h"
|
2021-08-07 19:54:42 +03:00
|
|
|
#include <assets_icons.h>
|
|
|
|
|
|
|
|
// Services
|
2021-10-12 14:48:34 +03:00
|
|
|
extern int32_t rpc_srv(void* p);
|
2021-08-07 19:54:42 +03:00
|
|
|
extern int32_t bt_srv(void* p);
|
|
|
|
extern int32_t cli_srv(void* p);
|
|
|
|
extern int32_t dialogs_srv(void* p);
|
|
|
|
extern int32_t dolphin_srv(void* p);
|
|
|
|
extern int32_t gui_srv(void* p);
|
|
|
|
extern int32_t input_srv(void* p);
|
|
|
|
extern int32_t loader_srv(void* p);
|
|
|
|
extern int32_t notification_srv(void* p);
|
|
|
|
extern int32_t power_srv(void* p);
|
|
|
|
extern int32_t storage_srv(void* p);
|
2021-09-28 12:40:39 +03:00
|
|
|
extern int32_t desktop_srv(void* p);
|
2022-04-13 23:50:25 +03:00
|
|
|
extern int32_t updater_srv(void* p);
|
2021-08-07 19:54:42 +03:00
|
|
|
|
|
|
|
// Apps
|
|
|
|
extern int32_t accessor_app(void* p);
|
|
|
|
extern int32_t archive_app(void* p);
|
2021-10-17 23:34:36 +03:00
|
|
|
extern int32_t bad_usb_app(void* p);
|
2021-12-22 23:04:08 +03:00
|
|
|
extern int32_t u2f_app(void* p);
|
2021-11-20 01:19:31 +03:00
|
|
|
extern int32_t uart_echo_app(void* p);
|
2021-08-07 19:54:42 +03:00
|
|
|
extern int32_t blink_test_app(void* p);
|
2021-10-17 23:34:36 +03:00
|
|
|
extern int32_t bt_debug_app(void* p);
|
2021-10-13 18:39:37 +03:00
|
|
|
extern int32_t delay_test_app(void* p);
|
2021-10-17 23:34:36 +03:00
|
|
|
extern int32_t display_test_app(void* p);
|
2021-09-30 23:03:28 +03:00
|
|
|
extern int32_t gpio_app(void* p);
|
2021-08-07 19:54:42 +03:00
|
|
|
extern int32_t ibutton_app(void* p);
|
2022-02-25 18:22:58 +03:00
|
|
|
extern int32_t infrared_app(void* p);
|
|
|
|
extern int32_t infrared_monitor_app(void* p);
|
2021-08-07 19:54:42 +03:00
|
|
|
extern int32_t keypad_test_app(void* p);
|
|
|
|
extern int32_t lfrfid_app(void* p);
|
|
|
|
extern int32_t lfrfid_debug_app(void* p);
|
|
|
|
extern int32_t nfc_app(void* p);
|
2021-12-07 16:13:07 +03:00
|
|
|
extern int32_t passport_app(void* p);
|
2021-08-07 19:54:42 +03:00
|
|
|
extern int32_t scened_app(void* p);
|
|
|
|
extern int32_t storage_test_app(void* p);
|
|
|
|
extern int32_t subghz_app(void* p);
|
2021-10-13 19:38:24 +03:00
|
|
|
extern int32_t usb_mouse_app(void* p);
|
2021-10-17 23:34:36 +03:00
|
|
|
extern int32_t usb_test_app(void* p);
|
|
|
|
extern int32_t vibro_test_app(void* p);
|
2021-12-15 20:39:06 +03:00
|
|
|
extern int32_t bt_hid_app(void* p);
|
2022-01-03 01:52:45 +03:00
|
|
|
extern int32_t battery_test_app(void* p);
|
2021-08-07 19:54:42 +03:00
|
|
|
|
|
|
|
// Plugins
|
|
|
|
extern int32_t music_player_app(void* p);
|
2021-11-23 19:07:46 +03:00
|
|
|
extern int32_t snake_game_app(void* p);
|
2021-02-12 20:24:34 +03:00
|
|
|
|
2021-05-06 22:51:20 +03:00
|
|
|
// On system start hooks declaration
|
2021-12-24 21:47:48 +03:00
|
|
|
extern void bt_on_system_start();
|
|
|
|
extern void crypto_on_system_start();
|
|
|
|
extern void ibutton_on_system_start();
|
2022-02-25 18:22:58 +03:00
|
|
|
extern void infrared_on_system_start();
|
2021-12-24 21:47:48 +03:00
|
|
|
extern void lfrfid_on_system_start();
|
|
|
|
extern void nfc_on_system_start();
|
|
|
|
extern void storage_on_system_start();
|
|
|
|
extern void subghz_on_system_start();
|
|
|
|
extern void power_on_system_start();
|
|
|
|
extern void unit_tests_on_system_start();
|
2022-04-13 23:50:25 +03:00
|
|
|
extern void updater_on_system_start();
|
2021-05-06 22:51:20 +03:00
|
|
|
|
2021-07-05 01:03:56 +03:00
|
|
|
// Settings
|
2021-08-07 19:54:42 +03:00
|
|
|
extern int32_t notification_settings_app(void* p);
|
|
|
|
extern int32_t storage_settings_app(void* p);
|
2021-09-02 02:22:40 +03:00
|
|
|
extern int32_t bt_settings_app(void* p);
|
2021-09-28 12:40:39 +03:00
|
|
|
extern int32_t desktop_settings_app(void* p);
|
2021-09-20 21:39:52 +03:00
|
|
|
extern int32_t about_settings_app(void* p);
|
2021-09-24 19:28:02 +03:00
|
|
|
extern int32_t power_settings_app(void* p);
|
2021-12-15 01:39:59 +03:00
|
|
|
extern int32_t system_settings_app(void* p);
|
2021-07-05 01:03:56 +03:00
|
|
|
|
2021-02-12 20:24:34 +03:00
|
|
|
const FlipperApplication FLIPPER_SERVICES[] = {
|
2021-08-07 19:54:42 +03:00
|
|
|
/* Services */
|
2021-10-12 14:48:34 +03:00
|
|
|
#ifdef SRV_RPC
|
2021-11-11 19:17:50 +03:00
|
|
|
{.app = rpc_srv, .name = "RpcSrv", .stack_size = 1024 * 4, .icon = NULL},
|
2021-10-12 14:48:34 +03:00
|
|
|
#endif
|
|
|
|
|
2021-08-07 19:54:42 +03:00
|
|
|
#ifdef SRV_BT
|
2021-11-11 19:17:50 +03:00
|
|
|
{.app = bt_srv, .name = "BtSrv", .stack_size = 1024, .icon = NULL},
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
#endif
|
|
|
|
|
2021-08-07 19:54:42 +03:00
|
|
|
#ifdef SRV_CLI
|
2021-11-11 19:17:50 +03:00
|
|
|
{.app = cli_srv, .name = "CliSrv", .stack_size = 4096, .icon = NULL},
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
#endif
|
|
|
|
|
2021-08-07 19:54:42 +03:00
|
|
|
#ifdef SRV_DIALOGS
|
2021-11-11 19:17:50 +03:00
|
|
|
{.app = dialogs_srv, .name = "DialogsSrv", .stack_size = 1024, .icon = NULL},
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
#endif
|
|
|
|
|
2021-08-07 19:54:42 +03:00
|
|
|
#ifdef SRV_DOLPHIN
|
2021-11-11 19:17:50 +03:00
|
|
|
{.app = dolphin_srv, .name = "DolphinSrv", .stack_size = 1024, .icon = NULL},
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
#endif
|
|
|
|
|
2021-09-28 12:40:39 +03:00
|
|
|
#ifdef SRV_DESKTOP
|
2022-04-13 23:50:25 +03:00
|
|
|
#ifdef SRV_UPDATER
|
|
|
|
#error SRV_UPDATER and SRV_DESKTOP are mutually exclusive!
|
|
|
|
#endif
|
2021-11-11 19:17:50 +03:00
|
|
|
{.app = desktop_srv, .name = "DesktopSrv", .stack_size = 2048, .icon = NULL},
|
2021-09-28 12:40:39 +03:00
|
|
|
#endif
|
|
|
|
|
2021-04-30 14:07:13 +03:00
|
|
|
#ifdef SRV_GUI
|
2021-11-11 19:17:50 +03:00
|
|
|
{.app = gui_srv, .name = "GuiSrv", .stack_size = 2048, .icon = NULL},
|
2021-08-07 19:54:42 +03:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef SRV_INPUT
|
2021-11-11 19:17:50 +03:00
|
|
|
{.app = input_srv, .name = "InputSrv", .stack_size = 1024, .icon = NULL},
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
#endif
|
|
|
|
|
2021-09-28 16:10:13 +03:00
|
|
|
#ifdef SRV_LOADER
|
2021-11-11 19:17:50 +03:00
|
|
|
{.app = loader_srv, .name = "LoaderSrv", .stack_size = 1024, .icon = NULL},
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
#endif
|
|
|
|
|
2021-08-07 19:54:42 +03:00
|
|
|
#ifdef SRV_NOTIFICATION
|
2021-11-11 19:17:50 +03:00
|
|
|
{.app = notification_srv, .name = "NotificationSrv", .stack_size = 1536, .icon = NULL},
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
#endif
|
|
|
|
|
2021-04-30 14:07:13 +03:00
|
|
|
#ifdef SRV_POWER
|
2021-11-11 19:17:50 +03:00
|
|
|
{.app = power_srv, .name = "PowerSrv", .stack_size = 1024, .icon = NULL},
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
#endif
|
|
|
|
|
2021-08-07 19:54:42 +03:00
|
|
|
#ifdef SRV_STORAGE
|
2021-11-11 19:17:50 +03:00
|
|
|
{.app = storage_srv, .name = "StorageSrv", .stack_size = 3072, .icon = NULL},
|
2021-08-07 19:54:42 +03:00
|
|
|
#endif
|
2022-04-13 23:50:25 +03:00
|
|
|
|
|
|
|
#ifdef SRV_UPDATER
|
|
|
|
#ifdef SRV_DESKTOP
|
|
|
|
#error SRV_UPDATER and SRV_DESKTOP are mutually exclusive!
|
|
|
|
#endif
|
|
|
|
{.app = updater_srv, .name = "UpdaterSrv", .stack_size = 2048, .icon = NULL},
|
|
|
|
#endif
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
};
|
|
|
|
|
2021-02-12 20:24:34 +03:00
|
|
|
const size_t FLIPPER_SERVICES_COUNT = sizeof(FLIPPER_SERVICES) / sizeof(FlipperApplication);
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
|
2022-04-13 23:50:25 +03:00
|
|
|
const FlipperApplication FLIPPER_SYSTEM_APPS[] = {
|
|
|
|
#ifdef APP_UPDATER
|
|
|
|
#ifdef SRV_UPDATER
|
|
|
|
#error APP_UPDATER and SRV_UPDATER are mutually exclusive!
|
|
|
|
#endif
|
|
|
|
{.app = updater_srv, .name = "UpdaterApp", .stack_size = 2048, .icon = NULL},
|
|
|
|
#endif
|
|
|
|
};
|
|
|
|
|
|
|
|
const size_t FLIPPER_SYSTEM_APPS_COUNT = sizeof(FLIPPER_SERVICES) / sizeof(FlipperApplication);
|
|
|
|
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
// Main menu APP
|
2021-02-12 20:24:34 +03:00
|
|
|
const FlipperApplication FLIPPER_APPS[] = {
|
2021-05-18 21:54:56 +03:00
|
|
|
|
2021-09-24 19:28:02 +03:00
|
|
|
#ifdef APP_SUBGHZ
|
|
|
|
{.app = subghz_app, .name = "Sub-GHz", .stack_size = 2048, .icon = &A_Sub1ghz_14},
|
2021-05-18 21:54:56 +03:00
|
|
|
#endif
|
|
|
|
|
2021-04-30 14:07:13 +03:00
|
|
|
#ifdef APP_LF_RFID
|
[FL-1191][FL-1524] Filesystem rework (#568)
* FS-Api: removed datetime manipulation functions and most of the file flags
* Filesystem: common proxy api
* Filesystem: renamed to Storage. Work has begun on a glue layer. Added functions for reentrance.
* Storage: sd mount and sd file open
* Storage: sd file close
* Storage: temporary test app
* Storage: free filedata on close
* Storage: sd file read and write
* Storage: added internal storage (LittleFS)
* Storage: renamed internal commands
* Storage: seek, tell, truncate, size, sync, eof
* Storage: error descriptions
* Storage: directory management api (open, close, read, rewind)
* Storage: common management api (stat, fs_stat, remove, rename, mkdir)
* Dolphin app and Notifications app now use raw storage.
* Storage: storage statuses renamed. Implemented sd card icon.
* Storage: added raw sd-card api.
* Storage settings: work started
* Assets: use new icons approach
* Storage settings: working storage settings
* Storage: completely redesigned api, no longer sticking out FS_Api
* Storage: more simplified api, getting error_id from file is hidden from user, pointer to api is hidden inside file
* Storage: cli info and format commands
* Storage-cli: file list
* Storage: a simpler and more reliable api
* FatFS: slightly lighter and faster config. Also disabled reentrancy and file locking functions. They moved to a storage service.
* Storage-cli: accommodate to the new cli api.
* Storage: filesystem api is separated into internal and common api.
* Cli: added the ability to print the list of free heap blocks
* Storage: uses a list instead of an array to store the StorageFile. Rewrote api calls to use semaphores instead of thread flags.
* Storage settings: added the ability to benchmark the SD card.
* Gui module file select: uses new storage api
* Apps: removed deprecated sd_card_test application
* Args lib: support for enquoted arguments
* Dialogs: a new gui app for simple non-asynchronous apps
* Dialogs: view holder for easy single view work
* File worker: use new storage api
* IButton and lfrrfid apps: save keys to any storage
* Apps: fix ibutton and lfrfid stack, remove sd_card_test.
* SD filesystem: app removed
* File worker: fixed api pointer type
* Subghz: loading assets using the new storage api
* NFC: use the new storage api
* Dialogs: the better api for the message element
* Archive: use new storage api
* Irda: changed assest path, changed app path
* FileWorker: removed unused file_buf_cnt
* Storage: copying and renaming files now works between storages
* Storage cli: read, copy, remove, rename commands
* Archive: removed commented code
* Storage cli: write command
* Applications: add SRV_STORAGE and SRV_DIALOGS
* Internal-storage: removed
* Storage: improved api
* Storage app: changed api pointer from StorageApp to Storage
* Storage: better file_id handling
* Storage: more consistent errors
* Loader: support for NULL icons
* Storage: do nothing with the lfs file or directory if it is not open
* Storage: fix typo
* Storage: minor float usage cleanup, rename some symbols.
* Storage: compact doxygen comments.
Co-authored-by: あく <alleteam@gmail.com>
2021-07-23 15:20:19 +03:00
|
|
|
{.app = lfrfid_app, .name = "125 kHz RFID", .stack_size = 2048, .icon = &A_125khz_14},
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
#endif
|
|
|
|
|
2021-10-01 14:57:32 +03:00
|
|
|
#ifdef APP_NFC
|
|
|
|
{.app = nfc_app, .name = "NFC", .stack_size = 4096, .icon = &A_NFC_14},
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
#endif
|
|
|
|
|
2022-02-25 18:22:58 +03:00
|
|
|
#ifdef APP_INFRARED
|
|
|
|
{.app = infrared_app, .name = "Infrared", .stack_size = 1024 * 3, .icon = &A_Infrared_14},
|
2021-09-24 19:28:02 +03:00
|
|
|
#endif
|
|
|
|
|
2021-09-30 23:03:28 +03:00
|
|
|
#ifdef APP_GPIO
|
|
|
|
{.app = gpio_app, .name = "GPIO", .stack_size = 1024, .icon = &A_GPIO_14},
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
#endif
|
2021-05-18 21:54:56 +03:00
|
|
|
|
2021-10-01 14:57:32 +03:00
|
|
|
#ifdef APP_IBUTTON
|
|
|
|
{.app = ibutton_app, .name = "iButton", .stack_size = 2048, .icon = &A_iButton_14},
|
|
|
|
#endif
|
|
|
|
|
2021-11-26 16:53:51 +03:00
|
|
|
#ifdef APP_BAD_USB
|
|
|
|
{.app = bad_usb_app, .name = "Bad USB", .stack_size = 2048, .icon = &A_BadUsb_14},
|
|
|
|
#endif
|
2021-12-22 23:04:08 +03:00
|
|
|
|
|
|
|
#ifdef APP_U2F
|
|
|
|
{.app = u2f_app, .name = "U2F", .stack_size = 2048, .icon = &A_U2F_14},
|
|
|
|
#endif
|
|
|
|
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
};
|
|
|
|
|
2021-02-12 20:24:34 +03:00
|
|
|
const size_t FLIPPER_APPS_COUNT = sizeof(FLIPPER_APPS) / sizeof(FlipperApplication);
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
|
2021-05-06 22:51:20 +03:00
|
|
|
// On system start hooks
|
|
|
|
const FlipperOnStartHook FLIPPER_ON_SYSTEM_START[] = {
|
2021-12-24 21:47:48 +03:00
|
|
|
crypto_on_system_start,
|
2021-09-28 16:10:13 +03:00
|
|
|
|
2022-02-25 18:22:58 +03:00
|
|
|
#ifdef APP_INFRARED
|
|
|
|
infrared_on_system_start,
|
2021-09-28 16:10:13 +03:00
|
|
|
#endif
|
|
|
|
|
2021-05-06 22:51:20 +03:00
|
|
|
#ifdef APP_NFC
|
2021-12-24 21:47:48 +03:00
|
|
|
nfc_on_system_start,
|
2021-05-06 22:51:20 +03:00
|
|
|
#endif
|
2021-09-28 16:10:13 +03:00
|
|
|
|
2021-05-25 13:19:07 +03:00
|
|
|
#ifdef APP_SUBGHZ
|
2021-12-24 21:47:48 +03:00
|
|
|
subghz_on_system_start,
|
2021-05-25 13:19:07 +03:00
|
|
|
#endif
|
2021-09-28 16:10:13 +03:00
|
|
|
|
2021-06-10 14:53:59 +03:00
|
|
|
#ifdef APP_LF_RFID
|
2021-12-24 21:47:48 +03:00
|
|
|
lfrfid_on_system_start,
|
2021-06-10 14:53:59 +03:00
|
|
|
#endif
|
2021-09-28 16:10:13 +03:00
|
|
|
|
2021-06-17 14:13:37 +03:00
|
|
|
#ifdef APP_IBUTTON
|
2021-12-24 21:47:48 +03:00
|
|
|
ibutton_on_system_start,
|
2021-06-17 14:13:37 +03:00
|
|
|
#endif
|
2021-09-28 16:10:13 +03:00
|
|
|
|
2021-05-29 01:57:11 +03:00
|
|
|
#ifdef SRV_BT
|
2021-12-24 21:47:48 +03:00
|
|
|
bt_on_system_start,
|
2021-05-29 01:57:11 +03:00
|
|
|
#endif
|
2021-09-28 16:10:13 +03:00
|
|
|
|
2021-09-24 19:28:02 +03:00
|
|
|
#ifdef SRV_POWER
|
2021-12-24 21:47:48 +03:00
|
|
|
power_on_system_start,
|
2021-09-24 19:28:02 +03:00
|
|
|
#endif
|
2021-09-28 16:10:13 +03:00
|
|
|
|
[FL-1191][FL-1524] Filesystem rework (#568)
* FS-Api: removed datetime manipulation functions and most of the file flags
* Filesystem: common proxy api
* Filesystem: renamed to Storage. Work has begun on a glue layer. Added functions for reentrance.
* Storage: sd mount and sd file open
* Storage: sd file close
* Storage: temporary test app
* Storage: free filedata on close
* Storage: sd file read and write
* Storage: added internal storage (LittleFS)
* Storage: renamed internal commands
* Storage: seek, tell, truncate, size, sync, eof
* Storage: error descriptions
* Storage: directory management api (open, close, read, rewind)
* Storage: common management api (stat, fs_stat, remove, rename, mkdir)
* Dolphin app and Notifications app now use raw storage.
* Storage: storage statuses renamed. Implemented sd card icon.
* Storage: added raw sd-card api.
* Storage settings: work started
* Assets: use new icons approach
* Storage settings: working storage settings
* Storage: completely redesigned api, no longer sticking out FS_Api
* Storage: more simplified api, getting error_id from file is hidden from user, pointer to api is hidden inside file
* Storage: cli info and format commands
* Storage-cli: file list
* Storage: a simpler and more reliable api
* FatFS: slightly lighter and faster config. Also disabled reentrancy and file locking functions. They moved to a storage service.
* Storage-cli: accommodate to the new cli api.
* Storage: filesystem api is separated into internal and common api.
* Cli: added the ability to print the list of free heap blocks
* Storage: uses a list instead of an array to store the StorageFile. Rewrote api calls to use semaphores instead of thread flags.
* Storage settings: added the ability to benchmark the SD card.
* Gui module file select: uses new storage api
* Apps: removed deprecated sd_card_test application
* Args lib: support for enquoted arguments
* Dialogs: a new gui app for simple non-asynchronous apps
* Dialogs: view holder for easy single view work
* File worker: use new storage api
* IButton and lfrrfid apps: save keys to any storage
* Apps: fix ibutton and lfrfid stack, remove sd_card_test.
* SD filesystem: app removed
* File worker: fixed api pointer type
* Subghz: loading assets using the new storage api
* NFC: use the new storage api
* Dialogs: the better api for the message element
* Archive: use new storage api
* Irda: changed assest path, changed app path
* FileWorker: removed unused file_buf_cnt
* Storage: copying and renaming files now works between storages
* Storage cli: read, copy, remove, rename commands
* Archive: removed commented code
* Storage cli: write command
* Applications: add SRV_STORAGE and SRV_DIALOGS
* Internal-storage: removed
* Storage: improved api
* Storage app: changed api pointer from StorageApp to Storage
* Storage: better file_id handling
* Storage: more consistent errors
* Loader: support for NULL icons
* Storage: do nothing with the lfs file or directory if it is not open
* Storage: fix typo
* Storage: minor float usage cleanup, rename some symbols.
* Storage: compact doxygen comments.
Co-authored-by: あく <alleteam@gmail.com>
2021-07-23 15:20:19 +03:00
|
|
|
#ifdef SRV_STORAGE
|
2021-12-24 21:47:48 +03:00
|
|
|
storage_on_system_start,
|
[FL-1191][FL-1524] Filesystem rework (#568)
* FS-Api: removed datetime manipulation functions and most of the file flags
* Filesystem: common proxy api
* Filesystem: renamed to Storage. Work has begun on a glue layer. Added functions for reentrance.
* Storage: sd mount and sd file open
* Storage: sd file close
* Storage: temporary test app
* Storage: free filedata on close
* Storage: sd file read and write
* Storage: added internal storage (LittleFS)
* Storage: renamed internal commands
* Storage: seek, tell, truncate, size, sync, eof
* Storage: error descriptions
* Storage: directory management api (open, close, read, rewind)
* Storage: common management api (stat, fs_stat, remove, rename, mkdir)
* Dolphin app and Notifications app now use raw storage.
* Storage: storage statuses renamed. Implemented sd card icon.
* Storage: added raw sd-card api.
* Storage settings: work started
* Assets: use new icons approach
* Storage settings: working storage settings
* Storage: completely redesigned api, no longer sticking out FS_Api
* Storage: more simplified api, getting error_id from file is hidden from user, pointer to api is hidden inside file
* Storage: cli info and format commands
* Storage-cli: file list
* Storage: a simpler and more reliable api
* FatFS: slightly lighter and faster config. Also disabled reentrancy and file locking functions. They moved to a storage service.
* Storage-cli: accommodate to the new cli api.
* Storage: filesystem api is separated into internal and common api.
* Cli: added the ability to print the list of free heap blocks
* Storage: uses a list instead of an array to store the StorageFile. Rewrote api calls to use semaphores instead of thread flags.
* Storage settings: added the ability to benchmark the SD card.
* Gui module file select: uses new storage api
* Apps: removed deprecated sd_card_test application
* Args lib: support for enquoted arguments
* Dialogs: a new gui app for simple non-asynchronous apps
* Dialogs: view holder for easy single view work
* File worker: use new storage api
* IButton and lfrrfid apps: save keys to any storage
* Apps: fix ibutton and lfrfid stack, remove sd_card_test.
* SD filesystem: app removed
* File worker: fixed api pointer type
* Subghz: loading assets using the new storage api
* NFC: use the new storage api
* Dialogs: the better api for the message element
* Archive: use new storage api
* Irda: changed assest path, changed app path
* FileWorker: removed unused file_buf_cnt
* Storage: copying and renaming files now works between storages
* Storage cli: read, copy, remove, rename commands
* Archive: removed commented code
* Storage cli: write command
* Applications: add SRV_STORAGE and SRV_DIALOGS
* Internal-storage: removed
* Storage: improved api
* Storage app: changed api pointer from StorageApp to Storage
* Storage: better file_id handling
* Storage: more consistent errors
* Loader: support for NULL icons
* Storage: do nothing with the lfs file or directory if it is not open
* Storage: fix typo
* Storage: minor float usage cleanup, rename some symbols.
* Storage: compact doxygen comments.
Co-authored-by: あく <alleteam@gmail.com>
2021-07-23 15:20:19 +03:00
|
|
|
#endif
|
2021-10-13 18:39:37 +03:00
|
|
|
|
|
|
|
#ifdef APP_UNIT_TESTS
|
2021-12-24 21:47:48 +03:00
|
|
|
unit_tests_on_system_start,
|
2021-10-13 18:39:37 +03:00
|
|
|
#endif
|
2022-04-13 23:50:25 +03:00
|
|
|
|
|
|
|
#ifdef APP_UPDATER
|
|
|
|
updater_on_system_start,
|
|
|
|
#endif
|
2021-05-06 22:51:20 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
const size_t FLIPPER_ON_SYSTEM_START_COUNT =
|
2021-05-25 13:19:07 +03:00
|
|
|
sizeof(FLIPPER_ON_SYSTEM_START) / sizeof(FlipperOnStartHook);
|
2021-05-06 22:51:20 +03:00
|
|
|
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
// Plugin menu
|
2021-02-12 20:24:34 +03:00
|
|
|
const FlipperApplication FLIPPER_PLUGINS[] = {
|
2021-12-15 20:39:06 +03:00
|
|
|
#ifdef APP_BLE_HID
|
2022-04-11 14:54:38 +03:00
|
|
|
{.app = bt_hid_app, .name = "Bluetooth Remote", .stack_size = 1024, .icon = NULL},
|
2021-12-15 20:39:06 +03:00
|
|
|
#endif
|
2021-04-28 13:43:21 +03:00
|
|
|
|
2021-04-30 14:07:13 +03:00
|
|
|
#ifdef APP_MUSIC_PLAYER
|
2021-08-07 19:54:42 +03:00
|
|
|
{.app = music_player_app, .name = "Music Player", .stack_size = 1024, .icon = &A_Plugins_14},
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
#endif
|
2021-11-23 19:07:46 +03:00
|
|
|
|
|
|
|
#ifdef APP_SNAKE_GAME
|
|
|
|
{.app = snake_game_app, .name = "Snake Game", .stack_size = 1024, .icon = &A_Plugins_14},
|
|
|
|
#endif
|
2021-04-28 13:43:21 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
const size_t FLIPPER_PLUGINS_COUNT = sizeof(FLIPPER_PLUGINS) / sizeof(FlipperApplication);
|
|
|
|
|
|
|
|
// Plugin menu
|
|
|
|
const FlipperApplication FLIPPER_DEBUG_APPS[] = {
|
2021-08-07 19:54:42 +03:00
|
|
|
#ifdef APP_BLINK
|
2021-10-17 23:34:36 +03:00
|
|
|
{.app = blink_test_app, .name = "Blink Test", .stack_size = 1024, .icon = NULL},
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
#endif
|
|
|
|
|
2021-10-17 23:34:36 +03:00
|
|
|
#ifdef APP_VIBRO_TEST
|
|
|
|
{.app = vibro_test_app, .name = "Vibro Test", .stack_size = 1024, .icon = NULL},
|
Implementation of some widgets based on real use cases and designs [FL-392][FL-809] (#315)
* gui test app
* aligned string draw functions
* add canvas_invert_color, canvas_draw_button_left, canvas_draw_button_right
* use new str and button fns in dialog
* real dialog mockup
* add new gui test app recipe
* submenu module init
* delete unused variable
* move buttons to element, add canvas_string_width fn, new center button element
* button icons
* submenu module
* use submenu module, switch views
* keyboard buttons img
* new font for keyboard
* text input (keyboard) module
* add text input to gui test app
* add gui tesst app to release build, fix flags
* handle transition from start and end position, fix input switch
* add long text support to text input
* canvas_string_width and the underlying u8g2_GetStrWidth now return uint16_t
* remove deprecated libs and apps
* canvas_font_max_height fn
* new element, aligned multiline text
* use multiline text instead of plain string
* fix second keyboard row, rename uppercase fn
* qwerty-like keyboard layout
* new icons for iButton app
* better dialog text position and events handling
* remove confusing comment
* new extended dialog module
* extended dialog module usage
* update docs
* new gui module, popup with timeout
* popup usage
* canvas, remove outdated canvas_font_max_height, use canvas_current_font_height
* use furi check
* use new view_enter and view_exit callback for timers
* add DrZlo to gui tester codeowner
Co-authored-by: aanper <mail@s3f.ru>
2021-02-05 02:35:06 +03:00
|
|
|
#endif
|
2021-03-05 12:47:27 +03:00
|
|
|
|
2021-04-30 14:07:13 +03:00
|
|
|
#ifdef APP_KEYPAD_TEST
|
2021-10-17 23:34:36 +03:00
|
|
|
{.app = keypad_test_app, .name = "Keypad Test", .stack_size = 1024, .icon = NULL},
|
2021-03-10 15:38:01 +03:00
|
|
|
#endif
|
|
|
|
|
2021-04-30 14:07:13 +03:00
|
|
|
#ifdef APP_ACCESSOR
|
2021-10-17 23:34:36 +03:00
|
|
|
{.app = accessor_app, .name = "Accessor", .stack_size = 4096, .icon = NULL},
|
2021-04-28 15:13:25 +03:00
|
|
|
#endif
|
|
|
|
|
2021-10-06 12:24:09 +03:00
|
|
|
#ifdef APP_USB_TEST
|
2021-10-17 23:34:36 +03:00
|
|
|
{.app = usb_test_app, .name = "USB Test", .stack_size = 1024, .icon = NULL},
|
2021-10-06 12:24:09 +03:00
|
|
|
#endif
|
|
|
|
|
2021-10-13 19:38:24 +03:00
|
|
|
#ifdef APP_USB_MOUSE
|
2022-04-11 14:54:38 +03:00
|
|
|
{.app = usb_mouse_app, .name = "USB Mouse Demo", .stack_size = 1024, .icon = NULL},
|
2021-10-13 19:38:24 +03:00
|
|
|
#endif
|
|
|
|
|
2021-11-20 01:19:31 +03:00
|
|
|
#ifdef APP_UART_ECHO
|
|
|
|
{.app = uart_echo_app, .name = "Uart Echo", .stack_size = 2048, .icon = NULL},
|
|
|
|
#endif
|
|
|
|
|
2022-02-25 18:22:58 +03:00
|
|
|
#ifdef APP_INFRARED_MONITOR
|
|
|
|
{.app = infrared_monitor_app, .name = "Infrared Monitor", .stack_size = 1024, .icon = NULL},
|
2021-05-18 13:51:00 +03:00
|
|
|
#endif
|
2021-05-19 12:43:15 +03:00
|
|
|
|
2021-06-15 14:01:56 +03:00
|
|
|
#ifdef APP_SCENED
|
2021-10-17 23:34:36 +03:00
|
|
|
{.app = scened_app, .name = "Templated Scene", .stack_size = 1024, .icon = NULL},
|
2021-06-15 14:01:56 +03:00
|
|
|
#endif
|
2021-06-28 17:42:30 +03:00
|
|
|
|
|
|
|
#ifdef APP_LF_RFID
|
2021-10-17 23:34:36 +03:00
|
|
|
{.app = lfrfid_debug_app, .name = "LF-RFID Debug", .stack_size = 1024, .icon = NULL},
|
2021-06-28 17:42:30 +03:00
|
|
|
#endif
|
2021-09-02 02:22:40 +03:00
|
|
|
|
|
|
|
#ifdef SRV_BT
|
|
|
|
{.app = bt_debug_app, .name = "Bluetooth Debug", .stack_size = 1024, .icon = NULL},
|
|
|
|
#endif
|
2021-10-13 18:39:37 +03:00
|
|
|
|
|
|
|
#ifdef APP_UNIT_TESTS
|
2021-10-17 23:34:36 +03:00
|
|
|
{.app = delay_test_app, .name = "Delay Test", .stack_size = 1024, .icon = NULL},
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef APP_DISPLAY_TEST
|
|
|
|
{.app = display_test_app, .name = "Display Test", .stack_size = 1024, .icon = NULL},
|
2021-10-13 18:39:37 +03:00
|
|
|
#endif
|
2022-01-03 01:52:45 +03:00
|
|
|
|
|
|
|
#ifdef APP_BATTERY_TEST
|
|
|
|
{.app = battery_test_app, .name = "Battery Test", .stack_size = 1024, .icon = NULL},
|
|
|
|
#endif
|
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
|
|
|
};
|
|
|
|
|
2021-04-28 13:43:21 +03:00
|
|
|
const size_t FLIPPER_DEBUG_APPS_COUNT = sizeof(FLIPPER_DEBUG_APPS) / sizeof(FlipperApplication);
|
2021-04-13 21:06:25 +03:00
|
|
|
|
2021-05-18 21:54:56 +03:00
|
|
|
#ifdef APP_ARCHIVE
|
|
|
|
const FlipperApplication FLIPPER_ARCHIVE =
|
2021-08-07 19:54:42 +03:00
|
|
|
{.app = archive_app, .name = "Archive", .stack_size = 4096, .icon = &A_FileManager_14};
|
2021-05-18 21:54:56 +03:00
|
|
|
#endif
|
|
|
|
|
2021-07-05 01:03:56 +03:00
|
|
|
// Settings menu
|
|
|
|
const FlipperApplication FLIPPER_SETTINGS_APPS[] = {
|
2021-09-24 19:28:02 +03:00
|
|
|
#ifdef SRV_BT
|
|
|
|
{.app = bt_settings_app, .name = "Bluetooth", .stack_size = 1024, .icon = NULL},
|
|
|
|
#endif
|
|
|
|
|
2021-07-05 01:03:56 +03:00
|
|
|
#ifdef SRV_NOTIFICATION
|
2021-09-24 19:28:02 +03:00
|
|
|
{.app = notification_settings_app,
|
2022-04-11 14:54:38 +03:00
|
|
|
.name = "LCD and Notifications",
|
2021-09-24 19:28:02 +03:00
|
|
|
.stack_size = 1024,
|
|
|
|
.icon = NULL},
|
[FL-1191][FL-1524] Filesystem rework (#568)
* FS-Api: removed datetime manipulation functions and most of the file flags
* Filesystem: common proxy api
* Filesystem: renamed to Storage. Work has begun on a glue layer. Added functions for reentrance.
* Storage: sd mount and sd file open
* Storage: sd file close
* Storage: temporary test app
* Storage: free filedata on close
* Storage: sd file read and write
* Storage: added internal storage (LittleFS)
* Storage: renamed internal commands
* Storage: seek, tell, truncate, size, sync, eof
* Storage: error descriptions
* Storage: directory management api (open, close, read, rewind)
* Storage: common management api (stat, fs_stat, remove, rename, mkdir)
* Dolphin app and Notifications app now use raw storage.
* Storage: storage statuses renamed. Implemented sd card icon.
* Storage: added raw sd-card api.
* Storage settings: work started
* Assets: use new icons approach
* Storage settings: working storage settings
* Storage: completely redesigned api, no longer sticking out FS_Api
* Storage: more simplified api, getting error_id from file is hidden from user, pointer to api is hidden inside file
* Storage: cli info and format commands
* Storage-cli: file list
* Storage: a simpler and more reliable api
* FatFS: slightly lighter and faster config. Also disabled reentrancy and file locking functions. They moved to a storage service.
* Storage-cli: accommodate to the new cli api.
* Storage: filesystem api is separated into internal and common api.
* Cli: added the ability to print the list of free heap blocks
* Storage: uses a list instead of an array to store the StorageFile. Rewrote api calls to use semaphores instead of thread flags.
* Storage settings: added the ability to benchmark the SD card.
* Gui module file select: uses new storage api
* Apps: removed deprecated sd_card_test application
* Args lib: support for enquoted arguments
* Dialogs: a new gui app for simple non-asynchronous apps
* Dialogs: view holder for easy single view work
* File worker: use new storage api
* IButton and lfrrfid apps: save keys to any storage
* Apps: fix ibutton and lfrfid stack, remove sd_card_test.
* SD filesystem: app removed
* File worker: fixed api pointer type
* Subghz: loading assets using the new storage api
* NFC: use the new storage api
* Dialogs: the better api for the message element
* Archive: use new storage api
* Irda: changed assest path, changed app path
* FileWorker: removed unused file_buf_cnt
* Storage: copying and renaming files now works between storages
* Storage cli: read, copy, remove, rename commands
* Archive: removed commented code
* Storage cli: write command
* Applications: add SRV_STORAGE and SRV_DIALOGS
* Internal-storage: removed
* Storage: improved api
* Storage app: changed api pointer from StorageApp to Storage
* Storage: better file_id handling
* Storage: more consistent errors
* Loader: support for NULL icons
* Storage: do nothing with the lfs file or directory if it is not open
* Storage: fix typo
* Storage: minor float usage cleanup, rename some symbols.
* Storage: compact doxygen comments.
Co-authored-by: あく <alleteam@gmail.com>
2021-07-23 15:20:19 +03:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef SRV_STORAGE
|
2021-08-07 19:54:42 +03:00
|
|
|
{.app = storage_settings_app, .name = "Storage", .stack_size = 2048, .icon = NULL},
|
2021-07-05 01:03:56 +03:00
|
|
|
#endif
|
2021-09-02 02:22:40 +03:00
|
|
|
|
2021-09-24 19:28:02 +03:00
|
|
|
#ifdef SRV_POWER
|
|
|
|
{.app = power_settings_app, .name = "Power", .stack_size = 1024, .icon = NULL},
|
2021-09-02 02:22:40 +03:00
|
|
|
#endif
|
2021-09-20 21:39:52 +03:00
|
|
|
|
2021-09-28 19:18:06 +03:00
|
|
|
#ifdef SRV_DESKTOP
|
2021-09-28 12:40:39 +03:00
|
|
|
{.app = desktop_settings_app, .name = "Desktop", .stack_size = 1024, .icon = NULL},
|
|
|
|
#endif
|
|
|
|
|
2021-12-07 16:13:07 +03:00
|
|
|
#ifdef APP_PASSPORT
|
|
|
|
{.app = passport_app, .name = "Passport", .stack_size = 1024, .icon = NULL},
|
|
|
|
#endif
|
|
|
|
|
2021-12-15 01:39:59 +03:00
|
|
|
#ifdef SRV_GUI
|
|
|
|
{.app = system_settings_app, .name = "System", .stack_size = 1024, .icon = NULL},
|
|
|
|
#endif
|
|
|
|
|
2021-09-20 21:39:52 +03:00
|
|
|
#ifdef APP_ABOUT
|
|
|
|
{.app = about_settings_app, .name = "About", .stack_size = 1024, .icon = NULL},
|
|
|
|
#endif
|
2021-07-05 01:03:56 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
const size_t FLIPPER_SETTINGS_APPS_COUNT =
|
2022-04-13 23:50:25 +03:00
|
|
|
sizeof(FLIPPER_SETTINGS_APPS) / sizeof(FlipperApplication);
|