Skip to content

Commit 1caa9e1

Browse files
committed
update eez-framework
1 parent f8a9e4e commit 1caa9e1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+46791
-46093
lines changed

src/bb3/assets_V2.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
#include <eez/gui/widgets/containers/app_view.h>
2424
#include <eez/gui/widgets/containers/container.h>
2525
#include <eez/gui/widgets/containers/grid.h>
26-
#include <eez/gui/widgets/containers/layout_view.h>
26+
#include <eez/gui/widgets/containers/user_widget.h>
2727
#include <eez/gui/widgets/containers/list.h>
2828
#include <eez/gui/widgets/containers/select.h>
2929

@@ -444,11 +444,11 @@ static uint32_t convertWidget(WidgetV2 &widgetV2) {
444444
return savedOffset;
445445
}
446446

447-
if (widgetV2.type == WIDGET_TYPE_LAYOUT_VIEW) {
447+
if (widgetV2.type == WIDGET_TYPE_USER_WIDGET) {
448448
auto &widgetV2Specific = *(LayoutViewWidgetV2 *)specificV2;
449-
auto &widgetV3Specific = (LayoutViewWidget &)widgetV3;
449+
auto &widgetV3Specific = (UserWidgetWidget &)widgetV3;
450450

451-
ADD_V3_OFFSET(sizeof(LayoutViewWidget));
451+
ADD_V3_OFFSET(sizeof(UserWidgetWidget));
452452

453453
widgetV3Specific.layout = widgetV2Specific.layout;
454454
widgetV3Specific.context = widgetV2Specific.context;

src/bb3/gui/document.cpp

Lines changed: 45697 additions & 45679 deletions
Large diffs are not rendered by default.

src/bb3/gui/document.h

Lines changed: 94 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -2321,52 +2321,52 @@ enum PagesEnum {
23212321
PAGE_ID_USER_PROFILES = 70,
23222322
PAGE_ID_USER_PROFILE_SETTINGS = 71,
23232323
PAGE_ID_USER_PROFILE_0_SETTINGS = 72,
2324-
PAGE_ID_PROFILE_BASIC_INFO = 73,
2325-
PAGE_ID_STAND_BY_MENU = 74,
2326-
PAGE_ID_ENTERING_STANDBY = 75,
2327-
PAGE_ID_STANDBY = 76,
2328-
PAGE_ID_SAVING = 77,
2329-
PAGE_ID_SHUTDOWN = 78,
2330-
PAGE_ID_DISPLAY_OFF = 79,
2331-
PAGE_ID_SLOT_DEF_VERT = 80,
2332-
PAGE_ID_SLOT_DEF_VERT_VIEW_WITH_BORDER = 81,
2333-
PAGE_ID_SLOT_DEF_VERT_VIEW_WITH_BORDER_2COL = 82,
2334-
PAGE_ID_SLOT_DEF_VERT_TITLE = 83,
2335-
PAGE_ID_SLOT_DEF_VERT_TITLE_2COL = 84,
2336-
PAGE_ID_SLOT_DEF_VERT_ERROR = 85,
2337-
PAGE_ID_SLOT_DEF_VERT_ERROR_2COL = 86,
2338-
PAGE_ID_SLOT_DEF_VERT_NOT_INSTALLED = 87,
2339-
PAGE_ID_SLOT_DEF_VERT_NOT_INSTALLED_2COL = 88,
2340-
PAGE_ID_SLOT_DEF_HORZ = 89,
2341-
PAGE_ID_SLOT_DEF_HORZ_VIEW_WITH_BORDER = 90,
2342-
PAGE_ID_SLOT_DEF_HORZ_VIEW_WITH_BORDER_2COL = 91,
2343-
PAGE_ID_SLOT_DEF_HORZ_TITLE = 92,
2344-
PAGE_ID_SLOT_DEF_HORZ_TITLE_2COL = 93,
2345-
PAGE_ID_SLOT_DEF_HORZ_ERROR = 94,
2346-
PAGE_ID_SLOT_DEF_HORZ_ERROR_2COL = 95,
2347-
PAGE_ID_SLOT_DEF_HORZ_NOT_INSTALLED = 96,
2348-
PAGE_ID_SLOT_DEF_HORZ_NOT_INSTALLED_2COL = 97,
2349-
PAGE_ID_SLOT_DEF_HORZ_EMPTY = 98,
2350-
PAGE_ID_SLOT_DEF_HORZ_EMPTY_2COL = 99,
2351-
PAGE_ID_SLOT_MAX_ERROR = 100,
2352-
PAGE_ID_SLOT_MAX_NOT_INSTALLED = 101,
2353-
PAGE_ID_DLOG_VIEW = 102,
2354-
PAGE_ID_DLOG_VIEW_DRAWER = 103,
2355-
PAGE_ID_DLOG_PARAMS = 104,
2356-
PAGE_ID_IMAGE_VIEW = 105,
2357-
PAGE_ID_PINOUT = 106,
2358-
PAGE_ID_FILE_MANAGER = 107,
2359-
PAGE_ID_FILE_BROWSER = 108,
2360-
PAGE_ID_FILE_MENU = 109,
2361-
PAGE_ID_FILE_MANAGER_DETAILS_VIEW = 110,
2362-
PAGE_ID_FILE_MANAGER_SCRIPTS_VIEW = 111,
2363-
PAGE_ID_FILE_MANAGER_SCRIPTS_ALTER_VIEW = 112,
2364-
PAGE_ID_FILE_MANAGER_LARGE_ICONS_VIEW = 113,
2365-
PAGE_ID_TOUCH_TEST = 114,
2366-
PAGE_ID_FOCUS_VALUE_OVERLAY = 115,
2367-
PAGE_ID_OVP_TYPE = 116,
2368-
PAGE_ID_SLOT_LABELS_AND_COLORS = 117,
2369-
PAGE_ID_COLOR_PICKER = 118,
2324+
PAGE_ID_STAND_BY_MENU = 73,
2325+
PAGE_ID_ENTERING_STANDBY = 74,
2326+
PAGE_ID_STANDBY = 75,
2327+
PAGE_ID_SAVING = 76,
2328+
PAGE_ID_SHUTDOWN = 77,
2329+
PAGE_ID_DISPLAY_OFF = 78,
2330+
PAGE_ID_DLOG_VIEW = 79,
2331+
PAGE_ID_DLOG_PARAMS = 80,
2332+
PAGE_ID_IMAGE_VIEW = 81,
2333+
PAGE_ID_PINOUT = 82,
2334+
PAGE_ID_FILE_MANAGER = 83,
2335+
PAGE_ID_FILE_BROWSER = 84,
2336+
PAGE_ID_FILE_MENU = 85,
2337+
PAGE_ID_TOUCH_TEST = 86,
2338+
PAGE_ID_FOCUS_VALUE_OVERLAY = 87,
2339+
PAGE_ID_OVP_TYPE = 88,
2340+
PAGE_ID_COLOR_PICKER = 89,
2341+
PAGE_ID_PROFILE_BASIC_INFO = 90,
2342+
PAGE_ID_SLOT_DEF_VERT = 91,
2343+
PAGE_ID_SLOT_DEF_VERT_VIEW_WITH_BORDER = 92,
2344+
PAGE_ID_SLOT_DEF_VERT_VIEW_WITH_BORDER_2COL = 93,
2345+
PAGE_ID_SLOT_DEF_VERT_TITLE = 94,
2346+
PAGE_ID_SLOT_DEF_VERT_TITLE_2COL = 95,
2347+
PAGE_ID_SLOT_DEF_VERT_ERROR = 96,
2348+
PAGE_ID_SLOT_DEF_VERT_ERROR_2COL = 97,
2349+
PAGE_ID_SLOT_DEF_VERT_NOT_INSTALLED = 98,
2350+
PAGE_ID_SLOT_DEF_VERT_NOT_INSTALLED_2COL = 99,
2351+
PAGE_ID_SLOT_DEF_HORZ = 100,
2352+
PAGE_ID_SLOT_DEF_HORZ_VIEW_WITH_BORDER = 101,
2353+
PAGE_ID_SLOT_DEF_HORZ_VIEW_WITH_BORDER_2COL = 102,
2354+
PAGE_ID_SLOT_DEF_HORZ_TITLE = 103,
2355+
PAGE_ID_SLOT_DEF_HORZ_TITLE_2COL = 104,
2356+
PAGE_ID_SLOT_DEF_HORZ_ERROR = 105,
2357+
PAGE_ID_SLOT_DEF_HORZ_ERROR_2COL = 106,
2358+
PAGE_ID_SLOT_DEF_HORZ_NOT_INSTALLED = 107,
2359+
PAGE_ID_SLOT_DEF_HORZ_NOT_INSTALLED_2COL = 108,
2360+
PAGE_ID_SLOT_DEF_HORZ_EMPTY = 109,
2361+
PAGE_ID_SLOT_DEF_HORZ_EMPTY_2COL = 110,
2362+
PAGE_ID_SLOT_MAX_ERROR = 111,
2363+
PAGE_ID_SLOT_MAX_NOT_INSTALLED = 112,
2364+
PAGE_ID_DLOG_VIEW_DRAWER = 113,
2365+
PAGE_ID_FILE_MANAGER_DETAILS_VIEW = 114,
2366+
PAGE_ID_FILE_MANAGER_SCRIPTS_VIEW = 115,
2367+
PAGE_ID_FILE_MANAGER_SCRIPTS_ALTER_VIEW = 116,
2368+
PAGE_ID_FILE_MANAGER_LARGE_ICONS_VIEW = 117,
2369+
PAGE_ID_SLOT_LABELS_AND_COLORS = 118,
23702370
PAGE_ID_DIB_DCP405_SLOT_DEF_1CH_NUM_ON = 119,
23712371
PAGE_ID_DIB_DCP405_SLOT_DEF_1CH_NUM_ON_2COL = 120,
23722372
PAGE_ID_DIB_DCP405_SLOT_DEF_1CH_VBAR_ON = 121,
@@ -2482,7 +2482,7 @@ enum PagesEnum {
24822482
PAGE_ID_DIB_MUX14D_RELAY_CYCLES = 231
24832483
};
24842484

2485-
extern const uint8_t assets[315947];
2485+
extern const uint8_t assets[316001];
24862486

24872487
#elif defined(EEZ_PLATFORM_SIMULATOR)
24882488

@@ -4826,52 +4826,52 @@ enum PagesEnum {
48264826
PAGE_ID_USER_PROFILES = 70,
48274827
PAGE_ID_USER_PROFILE_SETTINGS = 71,
48284828
PAGE_ID_USER_PROFILE_0_SETTINGS = 72,
4829-
PAGE_ID_PROFILE_BASIC_INFO = 73,
4830-
PAGE_ID_STAND_BY_MENU = 74,
4831-
PAGE_ID_ENTERING_STANDBY = 75,
4832-
PAGE_ID_STANDBY = 76,
4833-
PAGE_ID_SAVING = 77,
4834-
PAGE_ID_SHUTDOWN = 78,
4835-
PAGE_ID_DISPLAY_OFF = 79,
4836-
PAGE_ID_SLOT_DEF_VERT = 80,
4837-
PAGE_ID_SLOT_DEF_VERT_VIEW_WITH_BORDER = 81,
4838-
PAGE_ID_SLOT_DEF_VERT_VIEW_WITH_BORDER_2COL = 82,
4839-
PAGE_ID_SLOT_DEF_VERT_TITLE = 83,
4840-
PAGE_ID_SLOT_DEF_VERT_TITLE_2COL = 84,
4841-
PAGE_ID_SLOT_DEF_VERT_ERROR = 85,
4842-
PAGE_ID_SLOT_DEF_VERT_ERROR_2COL = 86,
4843-
PAGE_ID_SLOT_DEF_VERT_NOT_INSTALLED = 87,
4844-
PAGE_ID_SLOT_DEF_VERT_NOT_INSTALLED_2COL = 88,
4845-
PAGE_ID_SLOT_DEF_HORZ = 89,
4846-
PAGE_ID_SLOT_DEF_HORZ_VIEW_WITH_BORDER = 90,
4847-
PAGE_ID_SLOT_DEF_HORZ_VIEW_WITH_BORDER_2COL = 91,
4848-
PAGE_ID_SLOT_DEF_HORZ_TITLE = 92,
4849-
PAGE_ID_SLOT_DEF_HORZ_TITLE_2COL = 93,
4850-
PAGE_ID_SLOT_DEF_HORZ_ERROR = 94,
4851-
PAGE_ID_SLOT_DEF_HORZ_ERROR_2COL = 95,
4852-
PAGE_ID_SLOT_DEF_HORZ_NOT_INSTALLED = 96,
4853-
PAGE_ID_SLOT_DEF_HORZ_NOT_INSTALLED_2COL = 97,
4854-
PAGE_ID_SLOT_DEF_HORZ_EMPTY = 98,
4855-
PAGE_ID_SLOT_DEF_HORZ_EMPTY_2COL = 99,
4856-
PAGE_ID_SLOT_MAX_ERROR = 100,
4857-
PAGE_ID_SLOT_MAX_NOT_INSTALLED = 101,
4858-
PAGE_ID_DLOG_VIEW = 102,
4859-
PAGE_ID_DLOG_VIEW_DRAWER = 103,
4860-
PAGE_ID_DLOG_PARAMS = 104,
4861-
PAGE_ID_IMAGE_VIEW = 105,
4862-
PAGE_ID_PINOUT = 106,
4863-
PAGE_ID_FILE_MANAGER = 107,
4864-
PAGE_ID_FILE_BROWSER = 108,
4865-
PAGE_ID_FILE_MENU = 109,
4866-
PAGE_ID_FILE_MANAGER_DETAILS_VIEW = 110,
4867-
PAGE_ID_FILE_MANAGER_SCRIPTS_VIEW = 111,
4868-
PAGE_ID_FILE_MANAGER_SCRIPTS_ALTER_VIEW = 112,
4869-
PAGE_ID_FILE_MANAGER_LARGE_ICONS_VIEW = 113,
4870-
PAGE_ID_TOUCH_TEST = 114,
4871-
PAGE_ID_FOCUS_VALUE_OVERLAY = 115,
4872-
PAGE_ID_OVP_TYPE = 116,
4873-
PAGE_ID_SLOT_LABELS_AND_COLORS = 117,
4874-
PAGE_ID_COLOR_PICKER = 118,
4829+
PAGE_ID_STAND_BY_MENU = 73,
4830+
PAGE_ID_ENTERING_STANDBY = 74,
4831+
PAGE_ID_STANDBY = 75,
4832+
PAGE_ID_SAVING = 76,
4833+
PAGE_ID_SHUTDOWN = 77,
4834+
PAGE_ID_DISPLAY_OFF = 78,
4835+
PAGE_ID_DLOG_VIEW = 79,
4836+
PAGE_ID_DLOG_PARAMS = 80,
4837+
PAGE_ID_IMAGE_VIEW = 81,
4838+
PAGE_ID_PINOUT = 82,
4839+
PAGE_ID_FILE_MANAGER = 83,
4840+
PAGE_ID_FILE_BROWSER = 84,
4841+
PAGE_ID_FILE_MENU = 85,
4842+
PAGE_ID_TOUCH_TEST = 86,
4843+
PAGE_ID_FOCUS_VALUE_OVERLAY = 87,
4844+
PAGE_ID_OVP_TYPE = 88,
4845+
PAGE_ID_COLOR_PICKER = 89,
4846+
PAGE_ID_PROFILE_BASIC_INFO = 90,
4847+
PAGE_ID_SLOT_DEF_VERT = 91,
4848+
PAGE_ID_SLOT_DEF_VERT_VIEW_WITH_BORDER = 92,
4849+
PAGE_ID_SLOT_DEF_VERT_VIEW_WITH_BORDER_2COL = 93,
4850+
PAGE_ID_SLOT_DEF_VERT_TITLE = 94,
4851+
PAGE_ID_SLOT_DEF_VERT_TITLE_2COL = 95,
4852+
PAGE_ID_SLOT_DEF_VERT_ERROR = 96,
4853+
PAGE_ID_SLOT_DEF_VERT_ERROR_2COL = 97,
4854+
PAGE_ID_SLOT_DEF_VERT_NOT_INSTALLED = 98,
4855+
PAGE_ID_SLOT_DEF_VERT_NOT_INSTALLED_2COL = 99,
4856+
PAGE_ID_SLOT_DEF_HORZ = 100,
4857+
PAGE_ID_SLOT_DEF_HORZ_VIEW_WITH_BORDER = 101,
4858+
PAGE_ID_SLOT_DEF_HORZ_VIEW_WITH_BORDER_2COL = 102,
4859+
PAGE_ID_SLOT_DEF_HORZ_TITLE = 103,
4860+
PAGE_ID_SLOT_DEF_HORZ_TITLE_2COL = 104,
4861+
PAGE_ID_SLOT_DEF_HORZ_ERROR = 105,
4862+
PAGE_ID_SLOT_DEF_HORZ_ERROR_2COL = 106,
4863+
PAGE_ID_SLOT_DEF_HORZ_NOT_INSTALLED = 107,
4864+
PAGE_ID_SLOT_DEF_HORZ_NOT_INSTALLED_2COL = 108,
4865+
PAGE_ID_SLOT_DEF_HORZ_EMPTY = 109,
4866+
PAGE_ID_SLOT_DEF_HORZ_EMPTY_2COL = 110,
4867+
PAGE_ID_SLOT_MAX_ERROR = 111,
4868+
PAGE_ID_SLOT_MAX_NOT_INSTALLED = 112,
4869+
PAGE_ID_DLOG_VIEW_DRAWER = 113,
4870+
PAGE_ID_FILE_MANAGER_DETAILS_VIEW = 114,
4871+
PAGE_ID_FILE_MANAGER_SCRIPTS_VIEW = 115,
4872+
PAGE_ID_FILE_MANAGER_SCRIPTS_ALTER_VIEW = 116,
4873+
PAGE_ID_FILE_MANAGER_LARGE_ICONS_VIEW = 117,
4874+
PAGE_ID_SLOT_LABELS_AND_COLORS = 118,
48754875
PAGE_ID_FRONT_PANEL = 119,
48764876
PAGE_ID_FRONT_PANEL_EMPTY_SLOT = 120,
48774877
PAGE_ID_FRONT_PANEL_NUMERIC_KEYPAD = 121,
@@ -4999,7 +4999,7 @@ enum PagesEnum {
49994999
PAGE_ID_DIB_MUX14D_RELAY_CYCLES = 243
50005000
};
50015001

5002-
extern const uint8_t assets[429685];
5002+
extern const uint8_t assets[429920];
50035003

50045004
#endif
50055005

src/bb3/psu/scpi/debug.cpp

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@
5151

5252
#include <bb3/fpga/prog.h>
5353

54+
#include <bb3/memory.h>
55+
5456
extern bool g_supervisorWatchdogEnabled;
5557

5658
namespace eez {
@@ -168,6 +170,49 @@ scpi_result_t scpi_cmd_debug(scpi_t *context) {
168170
#endif // DEBUG
169171
}
170172

173+
static char *g_buffer = (char *)DLOG_RECORD_BUFFER;
174+
175+
void dumpFreq(scpi_t *context) {
176+
g_buffer[0] = 0;
177+
stringAppendString(g_buffer, DLOG_RECORD_BUFFER_SIZE, "frequencies\r\n");
178+
for (int i = 0; i < 290; i++) {
179+
char buffer[100];
180+
snprintf(buffer, sizeof(buffer), "%g\r\n", 240000000.0 + i * 2487889.0);
181+
stringAppendString(g_buffer, DLOG_RECORD_BUFFER_SIZE, buffer);
182+
}
183+
SCPI_ResultCharacters(context, g_buffer, strlen(g_buffer));
184+
}
185+
186+
void dumpTrace1(scpi_t *context) {
187+
g_buffer[0] = 0;
188+
for (int i = 0; i < 290; i++) {
189+
char buffer[100];
190+
snprintf(buffer, sizeof(buffer), "trace 1 value %d %g\r\n", i, i * 2.0);
191+
stringAppendString(g_buffer, DLOG_RECORD_BUFFER_SIZE, buffer);
192+
}
193+
SCPI_ResultCharacters(context, g_buffer, strlen(g_buffer));
194+
}
195+
196+
void dumpTrace2(scpi_t *context) {
197+
g_buffer[0] = 0;
198+
for (int i = 0; i < 290; i++) {
199+
char buffer[100];
200+
snprintf(buffer, sizeof(buffer), "trace 2 value %d %g\r\n", i, i * 3.0);
201+
stringAppendString(g_buffer, DLOG_RECORD_BUFFER_SIZE, buffer);
202+
}
203+
SCPI_ResultCharacters(context, g_buffer, strlen(g_buffer));
204+
}
205+
206+
void dumpTrace3(scpi_t *context) {
207+
g_buffer[0] = 0;
208+
for (int i = 0; i < 290; i++) {
209+
char buffer[100];
210+
snprintf(buffer, sizeof(buffer), "trace 3 value %d %g\r\n", i, 500 + 500 * sin(i * 2 * 3.14 / 290));
211+
stringAppendString(g_buffer, DLOG_RECORD_BUFFER_SIZE, buffer);
212+
}
213+
SCPI_ResultCharacters(context, g_buffer, strlen(g_buffer));
214+
}
215+
171216
scpi_result_t scpi_cmd_debugQ(scpi_t *context) {
172217
#ifdef DEBUG
173218
int32_t cmd;
@@ -193,7 +238,19 @@ scpi_result_t scpi_cmd_debugQ(scpi_t *context) {
193238
} else if (cmd == 35) {
194239
dumpAlloc(context);
195240
return SCPI_RES_OK;
196-
} else {
241+
} else if (cmd == 101) {
242+
dumpFreq(context);
243+
return SCPI_RES_OK;
244+
} else if (cmd == 102) {
245+
dumpTrace1(context);
246+
return SCPI_RES_OK;
247+
} else if (cmd == 103) {
248+
dumpTrace2(context);
249+
return SCPI_RES_OK;
250+
} else if (cmd == 104) {
251+
dumpTrace3(context);
252+
return SCPI_RES_OK;
253+
} else {
197254
SCPI_ErrorPush(context, SCPI_ERROR_HARDWARE_MISSING);
198255
return SCPI_RES_ERR;
199256
}

src/eez-framework/src/eez/core/action.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020

2121
#include <eez/core/action.h>
2222

23+
#if defined(EEZ_FOR_LVGL)
24+
#include <eez/flow/hooks.h>
25+
#endif
26+
2327
namespace eez {
2428

2529
#if EEZ_OPTION_GUI
@@ -28,7 +32,7 @@ namespace gui {
2832

2933
void executeActionFunction(int actionId) {
3034
#if defined(EEZ_FOR_LVGL)
31-
g_actionExecFunctions[actionId](0);
35+
eez::flow::executeLvglActionHook(actionId - 1);
3236
#else
3337
g_actionExecFunctions[actionId]();
3438
#endif

src/eez-framework/src/eez/core/action.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,10 @@ namespace eez {
3232
namespace gui {
3333
#endif
3434

35-
#if defined(EEZ_FOR_LVGL)
36-
typedef void (*ActionExecFunc)(lv_event_t * e);
37-
#else
35+
#if !defined(EEZ_FOR_LVGL)
3836
typedef void (*ActionExecFunc)();
39-
#endif
4037
extern ActionExecFunc g_actionExecFunctions[];
38+
#endif
4139

4240
void executeActionFunction(int actionId);
4341

src/eez-framework/src/eez/core/assets.cpp

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,19 +233,35 @@ int getThemesCount() {
233233
}
234234

235235
Theme *getTheme(int i) {
236-
return g_mainAssets->colorsDefinition->themes[i];
236+
if (i < 0 || i >= (int)g_mainAssets->colorsDefinition->themes.count) {
237+
return nullptr;
238+
}
239+
return g_mainAssets->colorsDefinition->themes[i];
237240
}
238241

239242
const char *getThemeName(int i) {
240-
return static_cast<const char *>(getTheme(i)->name);
243+
auto theme = getTheme(i);
244+
if (!theme) {
245+
return "";
246+
}
247+
return static_cast<const char *>(theme->name);
241248
}
242249

243250
const uint32_t getThemeColorsCount(int themeIndex) {
244-
return getTheme(themeIndex)->colors.count;
251+
auto theme = getTheme(themeIndex);
252+
if (!theme) {
253+
return 0;
254+
}
255+
return theme->colors.count;
245256
}
246257

247258
const uint16_t *getThemeColors(int themeIndex) {
248-
return static_cast<uint16_t *>(getTheme(themeIndex)->colors.items);
259+
auto theme = getTheme(themeIndex);
260+
if (!theme) {
261+
static uint16_t *g_themeColors = { 0 };
262+
return g_themeColors;
263+
}
264+
return static_cast<uint16_t *>(theme->colors.items);
249265
}
250266

251267
const uint16_t *getColors() {

0 commit comments

Comments
 (0)