Skip to content

Commit 24ca5c0

Browse files
authored
Merge pull request #3295 from tannewt/turn_off_terminalio
Turn off terminalio for ja and ko
2 parents 33c9bdb + d01f5dc commit 24ca5c0

File tree

8 files changed

+75
-25
lines changed

8 files changed

+75
-25
lines changed

ports/atmel-samd/mpconfigport.mk

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,16 @@ USB_MSC_EP_NUM_OUT = 1
4747

4848
CIRCUITPY_ULAB = 0
4949

50+
ifeq ($(TRANSLATION), ja)
51+
RELEASE_NEEDS_CLEAN_BUILD = 1
52+
CIRCUITPY_TERMINALIO = 0
53+
endif
54+
55+
ifeq ($(TRANSLATION), ko)
56+
RELEASE_NEEDS_CLEAN_BUILD = 1
57+
CIRCUITPY_TERMINALIO = 0
58+
endif
59+
5060
endif # samd21
5161

5262
# Put samd51-only choices here.

py/circuitpy_defns.mk

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ ifeq ($(CIRCUITPY_DIGITALIO),1)
145145
SRC_PATTERNS += digitalio/%
146146
endif
147147
ifeq ($(CIRCUITPY_DISPLAYIO),1)
148-
SRC_PATTERNS += displayio/% terminalio/% fontio/%
148+
SRC_PATTERNS += displayio/%
149149
endif
150150
ifeq ($(CIRCUITPY_VECTORIO),1)
151151
SRC_PATTERNS += vectorio/%
@@ -237,6 +237,9 @@ endif
237237
ifeq ($(CIRCUITPY_SUPERVISOR),1)
238238
SRC_PATTERNS += supervisor/%
239239
endif
240+
ifeq ($(CIRCUITPY_TERMINALIO),1)
241+
SRC_PATTERNS += terminalio/% fontio/%
242+
endif
240243
ifeq ($(CIRCUITPY_TIME),1)
241244
SRC_PATTERNS += time/%
242245
endif

py/circuitpy_mpconfig.h

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -347,16 +347,20 @@ extern const struct _mp_obj_module_t displayio_module;
347347
extern const struct _mp_obj_module_t fontio_module;
348348
extern const struct _mp_obj_module_t terminalio_module;
349349
#define DISPLAYIO_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_displayio), (mp_obj_t)&displayio_module },
350-
#define FONTIO_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_fontio), (mp_obj_t)&fontio_module },
351-
#define TERMINALIO_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_terminalio), (mp_obj_t)&terminalio_module },
352350
#ifndef CIRCUITPY_DISPLAY_LIMIT
353351
#define CIRCUITPY_DISPLAY_LIMIT (1)
354352
#endif
355353
#else
356354
#define DISPLAYIO_MODULE
355+
#define CIRCUITPY_DISPLAY_LIMIT (0)
356+
#endif
357+
358+
#if CIRCUITPY_DISPLAYIO && CIRCUITPY_TERMINALIO
359+
#define FONTIO_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_fontio), (mp_obj_t)&fontio_module },
360+
#define TERMINALIO_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_terminalio), (mp_obj_t)&terminalio_module },
361+
#else
357362
#define FONTIO_MODULE
358363
#define TERMINALIO_MODULE
359-
#define CIRCUITPY_DISPLAY_LIMIT (0)
360364
#endif
361365

362366
#if CIRCUITPY_FRAMEBUFFERIO

py/circuitpy_mpconfig.mk

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,9 @@ CFLAGS += -DCIRCUITPY_STRUCT=$(CIRCUITPY_STRUCT)
195195
CIRCUITPY_SUPERVISOR ?= 1
196196
CFLAGS += -DCIRCUITPY_SUPERVISOR=$(CIRCUITPY_SUPERVISOR)
197197

198+
CIRCUITPY_TERMINALIO ?= $(CIRCUITPY_DISPLAYIO)
199+
CFLAGS += -DCIRCUITPY_TERMINALIO=$(CIRCUITPY_TERMINALIO)
200+
198201
CIRCUITPY_TIME ?= 1
199202
CFLAGS += -DCIRCUITPY_TIME=$(CIRCUITPY_TIME)
200203

supervisor/shared/display.c

Lines changed: 41 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
#include <string.h>
3030

3131
#include "py/mpstate.h"
32+
#include "shared-bindings/displayio/Bitmap.h"
3233
#include "shared-bindings/displayio/Group.h"
3334
#include "shared-bindings/displayio/Palette.h"
3435
#include "shared-bindings/displayio/TileGrid.h"
@@ -48,23 +49,28 @@ extern size_t blinka_bitmap_data[];
4849
extern displayio_bitmap_t blinka_bitmap;
4950
extern displayio_group_t circuitpython_splash;
5051

52+
#if CIRCUITPY_TERMINALIO
5153
static supervisor_allocation* tilegrid_tiles = NULL;
54+
#endif
5255

5356
void supervisor_start_terminal(uint16_t width_px, uint16_t height_px) {
57+
// Default the scale to 2 because we may show blinka without the terminal for
58+
// languages that don't have font support.
59+
uint8_t scale = 2;
60+
61+
#if CIRCUITPY_TERMINALIO
5462
displayio_tilegrid_t* grid = &supervisor_terminal_text_grid;
5563
uint16_t width_in_tiles = (width_px - blinka_bitmap.width) / grid->tile_width;
5664
// determine scale based on h
57-
uint8_t scale = 1;
58-
if (width_in_tiles > 80) {
59-
scale = 2;
65+
if (width_in_tiles < 80) {
66+
scale = 1;
6067
}
6168
width_in_tiles = (width_px - blinka_bitmap.width * scale) / (grid->tile_width * scale);
6269
uint16_t height_in_tiles = height_px / (grid->tile_height * scale);
6370
uint16_t remaining_pixels = height_px % (grid->tile_height * scale);
6471
if (remaining_pixels > 0) {
6572
height_in_tiles += 1;
6673
}
67-
circuitpython_splash.scale = scale;
6874

6975
uint16_t total_tiles = width_in_tiles * height_in_tiles;
7076

@@ -94,34 +100,42 @@ void supervisor_start_terminal(uint16_t width_px, uint16_t height_px) {
94100
grid->full_change = true;
95101

96102
common_hal_terminalio_terminal_construct(&supervisor_terminal, grid, &supervisor_terminal_font);
103+
#endif
104+
105+
circuitpython_splash.scale = scale;
97106
}
98107

99108
void supervisor_stop_terminal(void) {
109+
#if CIRCUITPY_TERMINALIO
100110
if (tilegrid_tiles != NULL) {
101111
free_memory(tilegrid_tiles);
102112
tilegrid_tiles = NULL;
103113
supervisor_terminal_text_grid.inline_tiles = false;
104114
supervisor_terminal_text_grid.tiles = NULL;
105115
}
116+
#endif
106117
}
107118

108119
void supervisor_display_move_memory(void) {
109-
#if CIRCUITPY_DISPLAYIO
120+
#if CIRCUITPY_TERMINALIO
110121
displayio_tilegrid_t* grid = &supervisor_terminal_text_grid;
111-
if (MP_STATE_VM(terminal_tilegrid_tiles) == NULL || grid->tiles != MP_STATE_VM(terminal_tilegrid_tiles)) {
112-
return;
113-
}
114-
uint16_t total_tiles = grid->width_in_tiles * grid->height_in_tiles;
122+
if (MP_STATE_VM(terminal_tilegrid_tiles) != NULL &&
123+
grid->tiles == MP_STATE_VM(terminal_tilegrid_tiles)) {
124+
uint16_t total_tiles = grid->width_in_tiles * grid->height_in_tiles;
115125

116-
tilegrid_tiles = allocate_memory(align32_size(total_tiles), false);
117-
if (tilegrid_tiles != NULL) {
118-
memcpy(tilegrid_tiles->ptr, grid->tiles, total_tiles);
119-
grid->tiles = (uint8_t*) tilegrid_tiles->ptr;
120-
} else {
121-
grid->tiles = NULL;
122-
grid->inline_tiles = false;
126+
tilegrid_tiles = allocate_memory(align32_size(total_tiles), false);
127+
if (tilegrid_tiles != NULL) {
128+
memcpy(tilegrid_tiles->ptr, grid->tiles, total_tiles);
129+
grid->tiles = (uint8_t*) tilegrid_tiles->ptr;
130+
} else {
131+
grid->tiles = NULL;
132+
grid->inline_tiles = false;
133+
}
134+
MP_STATE_VM(terminal_tilegrid_tiles) = NULL;
123135
}
124-
MP_STATE_VM(terminal_tilegrid_tiles) = NULL;
136+
#endif
137+
138+
#if CIRCUITPY_DISPLAYIO
125139
for (uint8_t i = 0; i < CIRCUITPY_DISPLAY_LIMIT; i++) {
126140
#if CIRCUITPY_RGBMATRIX
127141
if (displays[i].rgbmatrix.base.type == &rgbmatrix_RGBMatrix_type) {
@@ -254,18 +268,26 @@ displayio_tilegrid_t blinka_sprite = {
254268
.in_group = true
255269
};
256270

271+
#if CIRCUITPY_TERMINALIO
272+
#define CHILD_COUNT 2
257273
displayio_group_child_t splash_children[2] = {
258274
{&blinka_sprite, &blinka_sprite},
259275
{&supervisor_terminal_text_grid, &supervisor_terminal_text_grid}
260276
};
277+
#else
278+
#define CHILD_COUNT 1
279+
displayio_group_child_t splash_children[1] = {
280+
{&blinka_sprite, &blinka_sprite},
281+
};
282+
#endif
261283

262284
displayio_group_t circuitpython_splash = {
263285
.base = {.type = &displayio_group_type },
264286
.x = 0,
265287
.y = 0,
266288
.scale = 2,
267-
.size = 2,
268-
.max_size = 2,
289+
.size = CHILD_COUNT,
290+
.max_size = CHILD_COUNT,
269291
.children = splash_children,
270292
.item_removed = false,
271293
.in_group = false,

supervisor/shared/display.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@
2727
#ifndef MICROPY_INCLUDED_SUPERVISOR_SHARED_DISPLAY_H
2828
#define MICROPY_INCLUDED_SUPERVISOR_SHARED_DISPLAY_H
2929

30+
#include <stdint.h>
31+
32+
#if CIRCUITPY_TERMINALIO
33+
3034
#include "shared-bindings/displayio/Bitmap.h"
3135
#include "shared-bindings/displayio/TileGrid.h"
3236
#include "shared-bindings/fontio/BuiltinFont.h"
@@ -42,6 +46,8 @@ extern displayio_bitmap_t supervisor_terminal_font_bitmap;
4246
extern displayio_tilegrid_t supervisor_terminal_text_grid;
4347
extern terminalio_terminal_obj_t supervisor_terminal;
4448

49+
#endif
50+
4551
void supervisor_start_terminal(uint16_t width_px, uint16_t height_px);
4652
void supervisor_stop_terminal(void);
4753

supervisor/shared/serial.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ void serial_write_substring(const char* text, uint32_t length) {
9999
if (length == 0) {
100100
return;
101101
}
102-
#if CIRCUITPY_DISPLAYIO
102+
#if CIRCUITPY_TERMINALIO
103103
int errcode;
104104
common_hal_terminalio_terminal_write(&supervisor_terminal, (const uint8_t*) text, length, &errcode);
105105
#endif

supervisor/supervisor.mk

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,9 @@ ifeq ($(CIRCUITPY_DISPLAYIO), 1)
110110
SRC_SUPERVISOR += \
111111
supervisor/shared/display.c
112112

113-
SUPERVISOR_O += $(BUILD)/autogen_display_resources.o
113+
ifeq ($(CIRCUITPY_TERMINALIO), 1)
114+
SUPERVISOR_O += $(BUILD)/autogen_display_resources.o
115+
endif
114116
endif
115117
ifndef USB_INTERFACE_NAME
116118
USB_INTERFACE_NAME = "CircuitPython"

0 commit comments

Comments
 (0)