diff options
author | DrZlo13 <who.just.the.doctor@gmail.com> | 2021-01-20 19:09:26 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-20 19:09:26 +0300 |
commit | 8f9b2513ffdda4afd9a3bce1906183bf8c5a8622 (patch) | |
tree | d6d47f17d0717e1db436ab6c7ef16fcfa9913132 /applications/bt | |
parent | 6c4983c6b6a03c025c39cdd5d7100a4c955b6cf6 (diff) |
[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>
Diffstat (limited to 'applications/bt')
-rw-r--r-- | applications/bt/bt.c | 27 | ||||
-rw-r--r-- | applications/bt/bt_i.h | 11 |
2 files changed, 17 insertions, 21 deletions
diff --git a/applications/bt/bt.c b/applications/bt/bt.c index d77293e2..bc2a4cb0 100644 --- a/applications/bt/bt.c +++ b/applications/bt/bt.c @@ -2,16 +2,23 @@ Bt* bt_alloc() { Bt* bt = furi_alloc(sizeof(Bt)); - bt->cli = furi_open("cli"); + + bt->cli = furi_record_open("cli"); + cli_add_command(bt->cli, "bt_info", bt_cli_info, bt); + bt->gui = furi_record_open("gui"); + bt->menu = furi_record_open("menu"); bt->statusbar_icon = assets_icons_get(I_Bluetooth_5x8); bt->statusbar_widget = widget_alloc(); widget_set_width(bt->statusbar_widget, icon_get_width(bt->statusbar_icon)); widget_draw_callback_set(bt->statusbar_widget, bt_draw_statusbar_callback, bt); widget_enabled_set(bt->statusbar_widget, false); + gui_add_widget(bt->gui, bt->statusbar_widget, GuiLayerStatusBarLeft); bt->menu_icon = assets_icons_get(A_Bluetooth_14); bt->menu_item = menu_item_alloc_menu("Bluetooth", bt->menu_icon); + with_value_mutex( + bt->menu, (Menu * menu) { menu_item_add(menu, bt->menu_item); }); return bt; } @@ -33,23 +40,7 @@ void bt_cli_info(string_t args, void* context) { void bt_task() { Bt* bt = bt_alloc(); - if(bt->cli) { - cli_add_command(bt->cli, "bt_info", bt_cli_info, bt); - } - - // TODO: add ValueMutex(bt) to "bt" record - if(!furi_create("bt", bt)) { - printf("[bt_task] unable to create bt record\n"); - furiac_exit(NULL); - } - - Gui* gui = furi_open("gui"); - gui_add_widget(gui, bt->statusbar_widget, GuiLayerStatusBarLeft); - - with_value_mutex( - furi_open("menu"), (Menu * menu) { menu_item_add(menu, bt->menu_item); }); - - furiac_ready(); + furi_record_create("bt", bt); api_hal_bt_init(); diff --git a/applications/bt/bt_i.h b/applications/bt/bt_i.h index a6eec8ff..01acfca8 100644 --- a/applications/bt/bt_i.h +++ b/applications/bt/bt_i.h @@ -2,10 +2,9 @@ #include "bt.h" -#include <cli/cli.h> +#include <furi.h> -#include <flipper.h> -#include <flipper_v2.h> +#include <cli/cli.h> #include <gui/gui.h> #include <gui/widget.h> @@ -15,6 +14,8 @@ typedef struct { Cli* cli; + Gui* gui; + ValueMutex* menu; // Status bar Icon* statusbar_icon; Widget* statusbar_widget; @@ -26,3 +27,7 @@ typedef struct { Bt* bt_alloc(); void bt_draw_statusbar_callback(Canvas* canvas, void* context); + +void bt_cli_info(string_t args, void* context); + +void bt_draw_statusbar_callback(Canvas* canvas, void* context); |