code style aligned
added .clang-format and updated projects Furi and NanoBake with it
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
#include "desktop.h"
|
||||
#include "nb_hardware.h"
|
||||
#include "core_defines.h"
|
||||
#include "nb_hardware.h"
|
||||
|
||||
static int32_t prv_desktop_main(void* param) {
|
||||
UNUSED(param);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "gui_i.h"
|
||||
#include "core_defines.h"
|
||||
#include "record.h"
|
||||
#include "check.h"
|
||||
#include "core_defines.h"
|
||||
#include "gui_i.h"
|
||||
#include "record.h"
|
||||
|
||||
#define TAG "gui"
|
||||
|
||||
@@ -13,9 +13,9 @@ ViewPort* gui_view_port_find_enabled(ViewPortArray_t array) {
|
||||
// Iterating backward
|
||||
ViewPortArray_it_t it;
|
||||
ViewPortArray_it_last(it, array);
|
||||
while(!ViewPortArray_end_p(it)) {
|
||||
while (!ViewPortArray_end_p(it)) {
|
||||
ViewPort* view_port = *ViewPortArray_ref(it);
|
||||
if(view_port_is_enabled(view_port)) {
|
||||
if (view_port_is_enabled(view_port)) {
|
||||
return view_port;
|
||||
}
|
||||
ViewPortArray_previous(it);
|
||||
@@ -31,9 +31,9 @@ size_t gui_active_view_port_count(NbGui* gui, GuiLayer layer) {
|
||||
gui_lock(gui);
|
||||
ViewPortArray_it_t it;
|
||||
ViewPortArray_it_last(it, gui->layers[layer]);
|
||||
while(!ViewPortArray_end_p(it)) {
|
||||
while (!ViewPortArray_end_p(it)) {
|
||||
ViewPort* view_port = *ViewPortArray_ref(it);
|
||||
if(view_port_is_enabled(view_port)) {
|
||||
if (view_port_is_enabled(view_port)) {
|
||||
ret++;
|
||||
}
|
||||
ViewPortArray_previous(it);
|
||||
@@ -67,9 +67,9 @@ void gui_add_view_port(NbGui* gui, ViewPort* view_port, GuiLayer layer) {
|
||||
gui_lock(gui);
|
||||
// Verify that view port is not yet added
|
||||
ViewPortArray_it_t it;
|
||||
for(size_t i = 0; i < GuiLayerMAX; i++) {
|
||||
for (size_t i = 0; i < GuiLayerMAX; i++) {
|
||||
ViewPortArray_it(it, gui->layers[i]);
|
||||
while(!ViewPortArray_end_p(it)) {
|
||||
while (!ViewPortArray_end_p(it)) {
|
||||
furi_assert(*ViewPortArray_ref(it) != view_port);
|
||||
ViewPortArray_next(it);
|
||||
}
|
||||
@@ -90,19 +90,21 @@ void gui_remove_view_port(NbGui* gui, ViewPort* view_port) {
|
||||
gui_lock(gui);
|
||||
view_port_gui_set(view_port, NULL);
|
||||
ViewPortArray_it_t it;
|
||||
for(size_t i = 0; i < GuiLayerMAX; i++) {
|
||||
for (size_t i = 0; i < GuiLayerMAX; i++) {
|
||||
ViewPortArray_it(it, gui->layers[i]);
|
||||
while(!ViewPortArray_end_p(it)) {
|
||||
if(*ViewPortArray_ref(it) == view_port) {
|
||||
while (!ViewPortArray_end_p(it)) {
|
||||
if (*ViewPortArray_ref(it) == view_port) {
|
||||
ViewPortArray_remove(gui->layers[i], it);
|
||||
} else {
|
||||
ViewPortArray_next(it);
|
||||
}
|
||||
}
|
||||
}
|
||||
// if(gui->ongoing_input_view_port == view_port) {
|
||||
// gui->ongoing_input_view_port = NULL;
|
||||
// }
|
||||
/*
|
||||
if(gui->ongoing_input_view_port == view_port) {
|
||||
gui->ongoing_input_view_port = NULL;
|
||||
}
|
||||
*/
|
||||
gui_unlock(gui);
|
||||
|
||||
// Request redraw
|
||||
@@ -117,10 +119,10 @@ void gui_view_port_send_to_front(NbGui* gui, ViewPort* view_port) {
|
||||
// Remove
|
||||
GuiLayer layer = GuiLayerMAX;
|
||||
ViewPortArray_it_t it;
|
||||
for(size_t i = 0; i < GuiLayerMAX; i++) {
|
||||
for (size_t i = 0; i < GuiLayerMAX; i++) {
|
||||
ViewPortArray_it(it, gui->layers[i]);
|
||||
while(!ViewPortArray_end_p(it)) {
|
||||
if(*ViewPortArray_ref(it) == view_port) {
|
||||
while (!ViewPortArray_end_p(it)) {
|
||||
if (*ViewPortArray_ref(it) == view_port) {
|
||||
ViewPortArray_remove(gui->layers[i], it);
|
||||
furi_assert(layer == GuiLayerMAX);
|
||||
layer = i;
|
||||
@@ -146,10 +148,10 @@ void gui_view_port_send_to_back(NbGui* gui, ViewPort* view_port) {
|
||||
// Remove
|
||||
GuiLayer layer = GuiLayerMAX;
|
||||
ViewPortArray_it_t it;
|
||||
for(size_t i = 0; i < GuiLayerMAX; i++) {
|
||||
for (size_t i = 0; i < GuiLayerMAX; i++) {
|
||||
ViewPortArray_it(it, gui->layers[i]);
|
||||
while(!ViewPortArray_end_p(it)) {
|
||||
if(*ViewPortArray_ref(it) == view_port) {
|
||||
while (!ViewPortArray_end_p(it)) {
|
||||
if (*ViewPortArray_ref(it) == view_port) {
|
||||
ViewPortArray_remove(gui->layers[i], it);
|
||||
furi_assert(layer == GuiLayerMAX);
|
||||
layer = i;
|
||||
@@ -185,18 +187,18 @@ NbGui* gui_alloc() {
|
||||
gui->lvgl_parent = lv_scr_act();
|
||||
gui->lockdown = false;
|
||||
furi_check(gui->mutex);
|
||||
for(size_t i = 0; i < GuiLayerMAX; i++) {
|
||||
for (size_t i = 0; i < GuiLayerMAX; i++) {
|
||||
ViewPortArray_init(gui->layers[i]);
|
||||
}
|
||||
|
||||
/*
|
||||
/*
|
||||
// Input
|
||||
gui->input_queue = furi_message_queue_alloc(8, sizeof(InputEvent));
|
||||
gui->input_events = furi_record_open(RECORD_INPUT_EVENTS);
|
||||
|
||||
furi_check(gui->input_events);
|
||||
furi_pubsub_subscribe(gui->input_events, gui_input_events_callback, gui);
|
||||
*/
|
||||
*/
|
||||
return gui;
|
||||
}
|
||||
|
||||
@@ -213,13 +215,13 @@ __attribute((__noreturn__)) int32_t prv_gui_main(void* parameter) {
|
||||
FuriWaitForever
|
||||
);
|
||||
// Process and dispatch input
|
||||
if (flags & GUI_THREAD_FLAG_INPUT) {
|
||||
// // Process till queue become empty
|
||||
// InputEvent input_event;
|
||||
// while(furi_message_queue_get(gui->input_queue, &input_event, 0) == FuriStatusOk) {
|
||||
// gui_input(gui, &input_event);
|
||||
// }
|
||||
}
|
||||
/*if (flags & GUI_THREAD_FLAG_INPUT) {
|
||||
// Process till queue become empty
|
||||
InputEvent input_event;
|
||||
while(furi_message_queue_get(gui->input_queue, &input_event, 0) == FuriStatusOk) {
|
||||
gui_input(gui, &input_event);
|
||||
}
|
||||
}*/
|
||||
// Process and dispatch draw call
|
||||
if (flags & GUI_THREAD_FLAG_DRAW) {
|
||||
// Clear flags that arrived on input step
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include "view_port.h"
|
||||
#include "lvgl.h"
|
||||
#include "nb_app.h"
|
||||
#include "view_port.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -24,7 +24,7 @@ typedef enum {
|
||||
|
||||
GuiLayerWindow, /**< Window layer, status bar is shown */
|
||||
|
||||
GuiLayerStatusBarLeft, /**< Status bar left-side layer, auto-layout */
|
||||
GuiLayerStatusBarLeft, /**< Status bar left-side layer, auto-layout */
|
||||
GuiLayerStatusBarRight, /**< Status bar right-side layer, auto-layout */
|
||||
|
||||
GuiLayerFullscreen, /**< Fullscreen layer, no status bar */
|
||||
@@ -37,7 +37,8 @@ typedef void (*GuiCanvasCommitCallback)(
|
||||
uint8_t* data,
|
||||
size_t size,
|
||||
CanvasOrientation orientation,
|
||||
void* context);
|
||||
void* context
|
||||
);
|
||||
|
||||
#define RECORD_GUI "gui"
|
||||
|
||||
|
||||
@@ -1,169 +1,175 @@
|
||||
#include "gui_i.h"
|
||||
#include "check.h"
|
||||
#include "gui_i.h"
|
||||
|
||||
static void gui_redraw_status_bar(NbGui* gui, bool need_attention) {
|
||||
// ViewPortArray_it_t it;
|
||||
// uint8_t left_used = 0;
|
||||
// uint8_t right_used = 0;
|
||||
// uint8_t width;
|
||||
//
|
||||
// canvas_frame_set(
|
||||
// gui->lvgl_parent, GUI_STATUS_BAR_X, GUI_STATUS_BAR_Y, GUI_DISPLAY_WIDTH, GUI_STATUS_BAR_HEIGHT);
|
||||
//
|
||||
// /* for support black theme - paint white area and
|
||||
// * draw icon with transparent white color
|
||||
// */
|
||||
// canvas_set_color(gui->canvas, ColorWhite);
|
||||
// canvas_draw_box(gui->canvas, 1, 1, 9, 7);
|
||||
// canvas_draw_box(gui->canvas, 7, 3, 58, 6);
|
||||
// canvas_draw_box(gui->canvas, 61, 1, 32, 7);
|
||||
// canvas_draw_box(gui->canvas, 89, 3, 38, 6);
|
||||
// canvas_set_color(gui->canvas, ColorBlack);
|
||||
// canvas_set_bitmap_mode(gui->canvas, 1);
|
||||
// canvas_draw_icon(gui->canvas, 0, 0, &I_Background_128x11);
|
||||
// canvas_set_bitmap_mode(gui->canvas, 0);
|
||||
//
|
||||
// // Right side
|
||||
// uint8_t x = GUI_DISPLAY_WIDTH - 1;
|
||||
// ViewPortArray_it(it, gui->layers[GuiLayerStatusBarRight]);
|
||||
// while(!ViewPortArray_end_p(it) && right_used < GUI_STATUS_BAR_WIDTH) {
|
||||
// ViewPort* view_port = *ViewPortArray_ref(it);
|
||||
// if(view_port_is_enabled(view_port)) {
|
||||
// width = view_port_get_width(view_port);
|
||||
// if(!width) width = 8;
|
||||
// // Recalculate next position
|
||||
// right_used += (width + 2);
|
||||
// x -= (width + 2);
|
||||
// // Prepare work area background
|
||||
// canvas_frame_set(
|
||||
// gui->canvas,
|
||||
// x - 1,
|
||||
// GUI_STATUS_BAR_Y + 1,
|
||||
// width + 2,
|
||||
// GUI_STATUS_BAR_WORKAREA_HEIGHT + 2);
|
||||
// canvas_set_color(gui->canvas, ColorWhite);
|
||||
// canvas_draw_box(
|
||||
// gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas));
|
||||
// canvas_set_color(gui->canvas, ColorBlack);
|
||||
// // ViewPort draw
|
||||
// canvas_frame_set(
|
||||
// gui->canvas, x, GUI_STATUS_BAR_Y + 2, width, GUI_STATUS_BAR_WORKAREA_HEIGHT);
|
||||
// view_port_draw(view_port, gui->canvas);
|
||||
// }
|
||||
// ViewPortArray_next(it);
|
||||
// }
|
||||
// // Draw frame around icons on the right
|
||||
// if(right_used) {
|
||||
// canvas_frame_set(
|
||||
// gui->canvas,
|
||||
// GUI_DISPLAY_WIDTH - 3 - right_used,
|
||||
// GUI_STATUS_BAR_Y,
|
||||
// right_used + 3,
|
||||
// GUI_STATUS_BAR_HEIGHT);
|
||||
// canvas_set_color(gui->canvas, ColorBlack);
|
||||
// canvas_draw_rframe(
|
||||
// gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas), 1);
|
||||
// canvas_draw_line(
|
||||
// gui->canvas,
|
||||
// canvas_width(gui->canvas) - 2,
|
||||
// 1,
|
||||
// canvas_width(gui->canvas) - 2,
|
||||
// canvas_height(gui->canvas) - 2);
|
||||
// canvas_draw_line(
|
||||
// gui->canvas,
|
||||
// 1,
|
||||
// canvas_height(gui->canvas) - 2,
|
||||
// canvas_width(gui->canvas) - 2,
|
||||
// canvas_height(gui->canvas) - 2);
|
||||
// }
|
||||
//
|
||||
// // Left side
|
||||
// x = 2;
|
||||
// ViewPortArray_it(it, gui->layers[GuiLayerStatusBarLeft]);
|
||||
// while(!ViewPortArray_end_p(it) && (right_used + left_used) < GUI_STATUS_BAR_WIDTH) {
|
||||
// ViewPort* view_port = *ViewPortArray_ref(it);
|
||||
// if(view_port_is_enabled(view_port)) {
|
||||
// width = view_port_get_width(view_port);
|
||||
// if(!width) width = 8;
|
||||
// // Prepare work area background
|
||||
// canvas_frame_set(
|
||||
// gui->canvas,
|
||||
// x - 1,
|
||||
// GUI_STATUS_BAR_Y + 1,
|
||||
// width + 2,
|
||||
// GUI_STATUS_BAR_WORKAREA_HEIGHT + 2);
|
||||
// canvas_set_color(gui->canvas, ColorWhite);
|
||||
// canvas_draw_box(
|
||||
// gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas));
|
||||
// canvas_set_color(gui->canvas, ColorBlack);
|
||||
// // ViewPort draw
|
||||
// canvas_frame_set(
|
||||
// gui->canvas, x, GUI_STATUS_BAR_Y + 2, width, GUI_STATUS_BAR_WORKAREA_HEIGHT);
|
||||
// view_port_draw(view_port, gui->canvas);
|
||||
// // Recalculate next position
|
||||
// left_used += (width + 2);
|
||||
// x += (width + 2);
|
||||
// }
|
||||
// ViewPortArray_next(it);
|
||||
// }
|
||||
// // Extra notification
|
||||
// if(need_attention) {
|
||||
// width = icon_get_width(&I_Hidden_window_9x8);
|
||||
// // Prepare work area background
|
||||
// canvas_frame_set(
|
||||
// gui->canvas,
|
||||
// x - 1,
|
||||
// GUI_STATUS_BAR_Y + 1,
|
||||
// width + 2,
|
||||
// GUI_STATUS_BAR_WORKAREA_HEIGHT + 2);
|
||||
// canvas_set_color(gui->canvas, ColorWhite);
|
||||
// canvas_draw_box(gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas));
|
||||
// canvas_set_color(gui->canvas, ColorBlack);
|
||||
// // Draw Icon
|
||||
// canvas_frame_set(
|
||||
// gui->canvas, x, GUI_STATUS_BAR_Y + 2, width, GUI_STATUS_BAR_WORKAREA_HEIGHT);
|
||||
// canvas_draw_icon(gui->canvas, 0, 0, &I_Hidden_window_9x8);
|
||||
// // Recalculate next position
|
||||
// left_used += (width + 2);
|
||||
// x += (width + 2);
|
||||
// }
|
||||
// // Draw frame around icons on the left
|
||||
// if(left_used) {
|
||||
// canvas_frame_set(gui->canvas, 0, 0, left_used + 3, GUI_STATUS_BAR_HEIGHT);
|
||||
// canvas_draw_rframe(
|
||||
// gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas), 1);
|
||||
// canvas_draw_line(
|
||||
// gui->canvas,
|
||||
// canvas_width(gui->canvas) - 2,
|
||||
// 1,
|
||||
// canvas_width(gui->canvas) - 2,
|
||||
// canvas_height(gui->canvas) - 2);
|
||||
// canvas_draw_line(
|
||||
// gui->canvas,
|
||||
// 1,
|
||||
// canvas_height(gui->canvas) - 2,
|
||||
// canvas_width(gui->canvas) - 2,
|
||||
// canvas_height(gui->canvas) - 2);
|
||||
// }
|
||||
/*
|
||||
ViewPortArray_it_t it;
|
||||
uint8_t left_used = 0;
|
||||
uint8_t right_used = 0;
|
||||
uint8_t width;
|
||||
|
||||
canvas_frame_set(
|
||||
gui->lvgl_parent, GUI_STATUS_BAR_X, GUI_STATUS_BAR_Y, GUI_DISPLAY_WIDTH, GUI_STATUS_BAR_HEIGHT);
|
||||
|
||||
// for support black theme - paint white area and
|
||||
// draw icon with transparent white color
|
||||
|
||||
canvas_set_color(gui->canvas, ColorWhite);
|
||||
canvas_draw_box(gui->canvas, 1, 1, 9, 7);
|
||||
canvas_draw_box(gui->canvas, 7, 3, 58, 6);
|
||||
canvas_draw_box(gui->canvas, 61, 1, 32, 7);
|
||||
canvas_draw_box(gui->canvas, 89, 3, 38, 6);
|
||||
canvas_set_color(gui->canvas, ColorBlack);
|
||||
canvas_set_bitmap_mode(gui->canvas, 1);
|
||||
canvas_draw_icon(gui->canvas, 0, 0, &I_Background_128x11);
|
||||
canvas_set_bitmap_mode(gui->canvas, 0);
|
||||
|
||||
// Right side
|
||||
uint8_t x = GUI_DISPLAY_WIDTH - 1;
|
||||
ViewPortArray_it(it, gui->layers[GuiLayerStatusBarRight]);
|
||||
while(!ViewPortArray_end_p(it) && right_used < GUI_STATUS_BAR_WIDTH) {
|
||||
ViewPort* view_port = *ViewPortArray_ref(it);
|
||||
if(view_port_is_enabled(view_port)) {
|
||||
width = view_port_get_width(view_port);
|
||||
if(!width) width = 8;
|
||||
// Recalculate next position
|
||||
right_used += (width + 2);
|
||||
x -= (width + 2);
|
||||
// Prepare work area background
|
||||
canvas_frame_set(
|
||||
gui->canvas,
|
||||
x - 1,
|
||||
GUI_STATUS_BAR_Y + 1,
|
||||
width + 2,
|
||||
GUI_STATUS_BAR_WORKAREA_HEIGHT + 2);
|
||||
canvas_set_color(gui->canvas, ColorWhite);
|
||||
canvas_draw_box(
|
||||
gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas));
|
||||
canvas_set_color(gui->canvas, ColorBlack);
|
||||
// ViewPort draw
|
||||
canvas_frame_set(
|
||||
gui->canvas, x, GUI_STATUS_BAR_Y + 2, width, GUI_STATUS_BAR_WORKAREA_HEIGHT);
|
||||
view_port_draw(view_port, gui->canvas);
|
||||
}
|
||||
ViewPortArray_next(it);
|
||||
}
|
||||
// Draw frame around icons on the right
|
||||
if(right_used) {
|
||||
canvas_frame_set(
|
||||
gui->canvas,
|
||||
GUI_DISPLAY_WIDTH - 3 - right_used,
|
||||
GUI_STATUS_BAR_Y,
|
||||
right_used + 3,
|
||||
GUI_STATUS_BAR_HEIGHT);
|
||||
canvas_set_color(gui->canvas, ColorBlack);
|
||||
canvas_draw_rframe(
|
||||
gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas), 1);
|
||||
canvas_draw_line(
|
||||
gui->canvas,
|
||||
canvas_width(gui->canvas) - 2,
|
||||
1,
|
||||
canvas_width(gui->canvas) - 2,
|
||||
canvas_height(gui->canvas) - 2);
|
||||
canvas_draw_line(
|
||||
gui->canvas,
|
||||
1,
|
||||
canvas_height(gui->canvas) - 2,
|
||||
canvas_width(gui->canvas) - 2,
|
||||
canvas_height(gui->canvas) - 2);
|
||||
}
|
||||
|
||||
// Left side
|
||||
x = 2;
|
||||
ViewPortArray_it(it, gui->layers[GuiLayerStatusBarLeft]);
|
||||
while(!ViewPortArray_end_p(it) && (right_used + left_used) < GUI_STATUS_BAR_WIDTH) {
|
||||
ViewPort* view_port = *ViewPortArray_ref(it);
|
||||
if(view_port_is_enabled(view_port)) {
|
||||
width = view_port_get_width(view_port);
|
||||
if(!width) width = 8;
|
||||
// Prepare work area background
|
||||
canvas_frame_set(
|
||||
gui->canvas,
|
||||
x - 1,
|
||||
GUI_STATUS_BAR_Y + 1,
|
||||
width + 2,
|
||||
GUI_STATUS_BAR_WORKAREA_HEIGHT + 2);
|
||||
canvas_set_color(gui->canvas, ColorWhite);
|
||||
canvas_draw_box(
|
||||
gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas));
|
||||
canvas_set_color(gui->canvas, ColorBlack);
|
||||
// ViewPort draw
|
||||
canvas_frame_set(
|
||||
gui->canvas, x, GUI_STATUS_BAR_Y + 2, width, GUI_STATUS_BAR_WORKAREA_HEIGHT);
|
||||
view_port_draw(view_port, gui->canvas);
|
||||
// Recalculate next position
|
||||
left_used += (width + 2);
|
||||
x += (width + 2);
|
||||
}
|
||||
ViewPortArray_next(it);
|
||||
}
|
||||
// Extra notification
|
||||
if(need_attention) {
|
||||
width = icon_get_width(&I_Hidden_window_9x8);
|
||||
// Prepare work area background
|
||||
canvas_frame_set(
|
||||
gui->canvas,
|
||||
x - 1,
|
||||
GUI_STATUS_BAR_Y + 1,
|
||||
width + 2,
|
||||
GUI_STATUS_BAR_WORKAREA_HEIGHT + 2);
|
||||
canvas_set_color(gui->canvas, ColorWhite);
|
||||
canvas_draw_box(gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas));
|
||||
canvas_set_color(gui->canvas, ColorBlack);
|
||||
// Draw Icon
|
||||
canvas_frame_set(
|
||||
gui->canvas, x, GUI_STATUS_BAR_Y + 2, width, GUI_STATUS_BAR_WORKAREA_HEIGHT);
|
||||
canvas_draw_icon(gui->canvas, 0, 0, &I_Hidden_window_9x8);
|
||||
// Recalculate next position
|
||||
left_used += (width + 2);
|
||||
x += (width + 2);
|
||||
}
|
||||
// Draw frame around icons on the left
|
||||
if(left_used) {
|
||||
canvas_frame_set(gui->canvas, 0, 0, left_used + 3, GUI_STATUS_BAR_HEIGHT);
|
||||
canvas_draw_rframe(
|
||||
gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas), 1);
|
||||
canvas_draw_line(
|
||||
gui->canvas,
|
||||
canvas_width(gui->canvas) - 2,
|
||||
1,
|
||||
canvas_width(gui->canvas) - 2,
|
||||
canvas_height(gui->canvas) - 2);
|
||||
canvas_draw_line(
|
||||
gui->canvas,
|
||||
1,
|
||||
canvas_height(gui->canvas) - 2,
|
||||
canvas_width(gui->canvas) - 2,
|
||||
canvas_height(gui->canvas) - 2);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
static bool gui_redraw_window(NbGui* gui) {
|
||||
// canvas_frame_set(gui->lvgl_parent, GUI_WINDOW_X, GUI_WINDOW_Y, GUI_WINDOW_WIDTH, GUI_WINDOW_HEIGHT);
|
||||
// ViewPort* view_port = gui_view_port_find_enabled(gui->layers[GuiLayerWindow]);
|
||||
// if(view_port) {
|
||||
// view_port_draw(view_port, gui->lvgl_parent);
|
||||
// return true;
|
||||
// }
|
||||
/*
|
||||
canvas_frame_set(gui->lvgl_parent, GUI_WINDOW_X, GUI_WINDOW_Y, GUI_WINDOW_WIDTH, GUI_WINDOW_HEIGHT);
|
||||
ViewPort* view_port = gui_view_port_find_enabled(gui->layers[GuiLayerWindow]);
|
||||
if(view_port) {
|
||||
view_port_draw(view_port, gui->lvgl_parent);
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool gui_redraw_desktop(NbGui* gui) {
|
||||
// canvas_frame_set(gui->lvgl_parent, 0, 0, GUI_DISPLAY_WIDTH, GUI_DISPLAY_HEIGHT);
|
||||
// ViewPort* view_port = gui_view_port_find_enabled(gui->layers[GuiLayerDesktop]);
|
||||
// if(view_port) {
|
||||
// view_port_draw(view_port, gui->lvgl_parent);
|
||||
// return true;
|
||||
// }
|
||||
/*
|
||||
canvas_frame_set(gui->lvgl_parent, 0, 0, GUI_DISPLAY_WIDTH, GUI_DISPLAY_HEIGHT);
|
||||
ViewPort* view_port = gui_view_port_find_enabled(gui->layers[GuiLayerDesktop]);
|
||||
if(view_port) {
|
||||
view_port_draw(view_port, gui->lvgl_parent);
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
||||
return false;
|
||||
}
|
||||
@@ -184,7 +190,7 @@ void gui_redraw(NbGui* gui) {
|
||||
|
||||
lv_obj_clean(gui->lvgl_parent);
|
||||
|
||||
if(gui->lockdown) {
|
||||
if (gui->lockdown) {
|
||||
ESP_LOGI("gui", "gui_redraw with lockdown");
|
||||
gui_redraw_desktop(gui);
|
||||
bool need_attention =
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
|
||||
#include "gui.h"
|
||||
|
||||
#include <m-array.h>
|
||||
#include <m-algo.h>
|
||||
#include <m-array.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "message_queue.h"
|
||||
#include "mutex.h"
|
||||
#include "pubsub.h"
|
||||
#include "view_port.h"
|
||||
#include "view_port_i.h"
|
||||
#include "message_queue.h"
|
||||
#include "pubsub.h"
|
||||
#include "mutex.h"
|
||||
|
||||
#define GUI_DISPLAY_WIDTH 128
|
||||
#define GUI_DISPLAY_HEIGHT 64
|
||||
@@ -55,12 +55,12 @@ struct NbGui {
|
||||
lv_obj_t* lvgl_parent;
|
||||
|
||||
// Input
|
||||
/*
|
||||
/*
|
||||
FuriMessageQueue* input_queue;
|
||||
FuriPubSub* input_events;
|
||||
uint8_t ongoing_input;
|
||||
ViewPort* ongoing_input_view_port;
|
||||
*/
|
||||
*/
|
||||
};
|
||||
|
||||
/** Find enabled ViewPort in ViewPortArray
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
#include "view_port_i.h"
|
||||
|
||||
#include "check.h"
|
||||
#include "gui.h"
|
||||
#include "gui_i.h"
|
||||
#include "check.h"
|
||||
#include "view_port_i.h"
|
||||
|
||||
#define TAG "viewport"
|
||||
|
||||
@@ -10,7 +9,8 @@ _Static_assert(ViewPortOrientationMAX == 4, "Incorrect ViewPortOrientation count
|
||||
_Static_assert(
|
||||
(ViewPortOrientationHorizontal == 0 && ViewPortOrientationHorizontalFlip == 1 &&
|
||||
ViewPortOrientationVertical == 2 && ViewPortOrientationVerticalFlip == 3),
|
||||
"Incorrect ViewPortOrientation order");
|
||||
"Incorrect ViewPortOrientation order"
|
||||
);
|
||||
|
||||
ViewPort* view_port_alloc() {
|
||||
ViewPort* view_port = malloc(sizeof(ViewPort));
|
||||
@@ -32,9 +32,9 @@ void view_port_free(ViewPort* view_port) {
|
||||
void view_port_enabled_set(ViewPort* view_port, bool enabled) {
|
||||
furi_assert(view_port);
|
||||
furi_check(furi_mutex_acquire(view_port->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
if(view_port->is_enabled != enabled) {
|
||||
if (view_port->is_enabled != enabled) {
|
||||
view_port->is_enabled = enabled;
|
||||
if(view_port->gui) gui_update(view_port->gui);
|
||||
if (view_port->gui) gui_update(view_port->gui);
|
||||
}
|
||||
furi_check(furi_mutex_release(view_port->mutex) == FuriStatusOk);
|
||||
}
|
||||
@@ -60,11 +60,11 @@ void view_port_update(ViewPort* view_port) {
|
||||
|
||||
// We are not going to lockup system, but will notify you instead
|
||||
// Make sure that you don't call viewport methods inside another mutex, especially one that is used in draw call
|
||||
if(furi_mutex_acquire(view_port->mutex, 2) != FuriStatusOk) {
|
||||
if (furi_mutex_acquire(view_port->mutex, 2) != FuriStatusOk) {
|
||||
ESP_LOGW(TAG, "ViewPort lockup: see %s:%d", __FILE__, __LINE__ - 3);
|
||||
}
|
||||
|
||||
if(view_port->gui && view_port->is_enabled) gui_update(view_port->gui);
|
||||
if (view_port->gui && view_port->is_enabled) gui_update(view_port->gui);
|
||||
furi_mutex_release(view_port->mutex);
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ void view_port_draw(ViewPort* view_port, lv_obj_t* parent) {
|
||||
|
||||
// We are not going to lockup system, but will notify you instead
|
||||
// Make sure that you don't call viewport methods inside another mutex, especially one that is used in draw call
|
||||
if(furi_mutex_acquire(view_port->mutex, 2) != FuriStatusOk) {
|
||||
if (furi_mutex_acquire(view_port->mutex, 2) != FuriStatusOk) {
|
||||
ESP_LOGW(TAG, "ViewPort lockup: see %s:%d", __FILE__, __LINE__ - 3);
|
||||
}
|
||||
|
||||
|
||||
@@ -64,4 +64,3 @@ void view_port_update(ViewPort* view_port);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include "gui_i.h"
|
||||
#include "view_port.h"
|
||||
#include "mutex.h"
|
||||
#include "view_port.h"
|
||||
|
||||
struct ViewPort {
|
||||
NbGui* gui;
|
||||
@@ -12,8 +12,10 @@ struct ViewPort {
|
||||
ViewPortDrawCallback draw_callback;
|
||||
void* draw_callback_context;
|
||||
|
||||
// ViewPortInputCallback input_callback;
|
||||
// void* input_callback_context;
|
||||
/*
|
||||
ViewPortInputCallback input_callback;
|
||||
void* input_callback_context;
|
||||
*/
|
||||
};
|
||||
|
||||
/** Set GUI reference.
|
||||
@@ -35,10 +37,10 @@ void view_port_gui_set(ViewPort* view_port, NbGui* gui);
|
||||
void view_port_draw(ViewPort* view_port, lv_obj_t* parent);
|
||||
|
||||
/** Process input. Calls input callback.
|
||||
// *
|
||||
// * To be used by GUI, called on input dispatch.
|
||||
// *
|
||||
// * @param view_port ViewPort instance
|
||||
// * @param event pointer to input event
|
||||
// */
|
||||
*
|
||||
* To be used by GUI, called on input dispatch.
|
||||
*
|
||||
* @param view_port ViewPort instance
|
||||
* @param event pointer to input event
|
||||
*/
|
||||
//void view_port_input(ViewPort* view_port, InputEvent* event);
|
||||
|
||||
@@ -3,10 +3,12 @@
|
||||
/** ViewPort Input callback
|
||||
* @warning called from GUI thread
|
||||
*/
|
||||
//typedef void (*ViewPortInputCallback)(InputEvent* event, void* context);
|
||||
/*
|
||||
typedef void (*ViewPortInputCallback)(InputEvent* event, void* context);
|
||||
|
||||
//void view_port_input_callback_set(
|
||||
// ViewPort* view_port,
|
||||
// ViewPortInputCallback callback,
|
||||
// void* context);
|
||||
//
|
||||
void view_port_input_callback_set(
|
||||
ViewPort* view_port,
|
||||
ViewPortInputCallback callback,
|
||||
void* context);
|
||||
|
||||
*/
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "system_info.h"
|
||||
#include "nanobake.h"
|
||||
#include "core_defines.h"
|
||||
#include "nanobake.h"
|
||||
#include "thread.h"
|
||||
|
||||
static int32_t system_info_entry_point(void* param) {
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
#include "nanobake.h"
|
||||
#include "nb_hardware_i.h"
|
||||
#include "nb_lvgl_i.h"
|
||||
#include "nb_app_i.h"
|
||||
#include "applications/nb_applications.h"
|
||||
#include "esp_log.h"
|
||||
#include "m-list.h"
|
||||
#include "nb_app_i.h"
|
||||
#include "nb_hardware_i.h"
|
||||
#include "nb_lvgl_i.h"
|
||||
// Furi
|
||||
#include "thread.h"
|
||||
#include "kernel.h"
|
||||
#include "record.h"
|
||||
#include "thread.h"
|
||||
|
||||
M_LIST_DEF(thread_ids, FuriThreadId);
|
||||
|
||||
@@ -36,10 +36,7 @@ size_t nanobake_get_app_thread_count() {
|
||||
}
|
||||
|
||||
static void prv_start_app(const NbApp _Nonnull* app) {
|
||||
ESP_LOGI(TAG, "Starting %s app \"%s\"",
|
||||
nb_app_type_to_string(app->type),
|
||||
app->name
|
||||
);
|
||||
ESP_LOGI(TAG, "Starting %s app \"%s\"", nb_app_type_to_string(app->type), app->name);
|
||||
|
||||
FuriThread* thread = furi_thread_alloc_ex(
|
||||
app->name,
|
||||
@@ -64,7 +61,7 @@ __attribute__((unused)) extern void nanobake_start(NbConfig _Nonnull* config) {
|
||||
prv_furi_init();
|
||||
|
||||
NbHardware hardware = nb_hardware_create(config);
|
||||
/*NbLvgl lvgl =*/ nb_lvgl_init(&hardware);
|
||||
/*NbLvgl lvgl =*/nb_lvgl_init(&hardware);
|
||||
|
||||
thread_ids_init(prv_thread_ids);
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include "nb_hardware.h"
|
||||
#include "nb_app.h"
|
||||
#include "nb_config.h"
|
||||
#include "nb_hardware.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "nb_app_i.h"
|
||||
#include "check.h"
|
||||
#include "nb_app_i.h"
|
||||
|
||||
const char* prv_type_service = "service";
|
||||
const char* prv_type_system = "system";
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdio.h>
|
||||
#include "esp_err.h"
|
||||
#include "lvgl.h"
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -25,7 +25,7 @@ typedef enum {
|
||||
NB_TASK_STACK_SIZE_DEFAULT = 2048
|
||||
} NbStackSize;
|
||||
|
||||
typedef int32_t (*NbAppEntryPoint) (void _Nonnull* parameter);
|
||||
typedef int32_t (*NbAppEntryPoint)(void _Nonnull* parameter);
|
||||
|
||||
typedef struct {
|
||||
const char id[NB_APP_ID_LENGTH];
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include "nb_app.h"
|
||||
#include "nb_display.h"
|
||||
#include "nb_touch.h"
|
||||
#include "nb_app.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
||||
@@ -18,7 +18,7 @@ typedef struct {
|
||||
bool swap_xy;
|
||||
} NbDisplay;
|
||||
|
||||
typedef bool(*CreateDisplay)(NbDisplay* display);
|
||||
typedef bool (*CreateDisplay)(NbDisplay* display);
|
||||
|
||||
typedef struct {
|
||||
char name[32];
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "nb_hardware_i.h"
|
||||
#include "check.h"
|
||||
#include "esp_check.h"
|
||||
#include "esp_err.h"
|
||||
#include "check.h"
|
||||
#include "nb_hardware_i.h"
|
||||
|
||||
#define TAG "hardware"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "nb_hardware.h"
|
||||
#include "nb_config.h"
|
||||
#include "nb_hardware.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "nb_lvgl_i.h"
|
||||
#include "esp_lvgl_port.h"
|
||||
#include "check.h"
|
||||
#include "esp_lvgl_port.h"
|
||||
#include "nb_lvgl_i.h"
|
||||
|
||||
#define TAG "lvgl"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "nb_lvgl.h"
|
||||
#include "nb_hardware.h"
|
||||
#include "nb_lvgl.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "esp_lcd_touch.h"
|
||||
#include "esp_lcd_panel_io.h"
|
||||
#include "esp_lcd_touch.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
||||
Reference in New Issue
Block a user