Merge pull request #2040 from tannewt/merge_in_410

Merge 4.1.0 into master
This commit is contained in:
Dan Halbert 2019-08-05 22:54:12 -04:00 committed by GitHub
commit 1e8800117a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 178 additions and 82 deletions

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-31 16:30-0500\n" "POT-Creation-Date: 2019-08-05 17:52-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -1176,7 +1176,11 @@ msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
msgid "Tile indices must be 0 - 255" msgid "Tile index out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile value out of bounds"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
@ -2453,10 +2457,6 @@ msgstr "sintaksis error pada pendeskripsi uctypes"
msgid "threshold must be in the range 0-65536" msgid "threshold must be in the range 0-65536"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c
msgid "tile index out of bounds"
msgstr ""
#: shared-bindings/time/__init__.c #: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence" msgid "time.struct_time() takes a 9-sequence"
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-31 16:30-0500\n" "POT-Creation-Date: 2019-08-05 17:52-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -1153,7 +1153,11 @@ msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
msgid "Tile indices must be 0 - 255" msgid "Tile index out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile value out of bounds"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
@ -2417,10 +2421,6 @@ msgstr ""
msgid "threshold must be in the range 0-65536" msgid "threshold must be in the range 0-65536"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c
msgid "tile index out of bounds"
msgstr ""
#: shared-bindings/time/__init__.c #: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence" msgid "time.struct_time() takes a 9-sequence"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-31 16:30-0500\n" "POT-Creation-Date: 2019-08-05 17:52-0700\n"
"PO-Revision-Date: 2018-07-27 11:55-0700\n" "PO-Revision-Date: 2018-07-27 11:55-0700\n"
"Last-Translator: Pascal Deneaux\n" "Last-Translator: Pascal Deneaux\n"
"Language-Team: Sebastian Plamauer, Pascal Deneaux\n" "Language-Team: Sebastian Plamauer, Pascal Deneaux\n"
@ -1182,7 +1182,11 @@ msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
msgid "Tile indices must be 0 - 255" msgid "Tile index out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile value out of bounds"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
@ -2469,10 +2473,6 @@ msgstr "Syntaxfehler in uctypes Deskriptor"
msgid "threshold must be in the range 0-65536" msgid "threshold must be in the range 0-65536"
msgstr "threshold muss im Intervall 0-65536 liegen" msgstr "threshold muss im Intervall 0-65536 liegen"
#: shared-bindings/displayio/TileGrid.c
msgid "tile index out of bounds"
msgstr ""
#: shared-bindings/time/__init__.c #: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence" msgid "time.struct_time() takes a 9-sequence"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-31 16:30-0500\n" "POT-Creation-Date: 2019-08-05 17:52-0700\n"
"PO-Revision-Date: 2018-07-27 11:55-0700\n" "PO-Revision-Date: 2018-07-27 11:55-0700\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -1153,7 +1153,11 @@ msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
msgid "Tile indices must be 0 - 255" msgid "Tile index out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile value out of bounds"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
@ -2417,10 +2421,6 @@ msgstr ""
msgid "threshold must be in the range 0-65536" msgid "threshold must be in the range 0-65536"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c
msgid "tile index out of bounds"
msgstr ""
#: shared-bindings/time/__init__.c #: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence" msgid "time.struct_time() takes a 9-sequence"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-31 16:30-0500\n" "POT-Creation-Date: 2019-08-05 17:52-0700\n"
"PO-Revision-Date: 2018-07-27 11:55-0700\n" "PO-Revision-Date: 2018-07-27 11:55-0700\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: @sommersoft, @MrCertainly\n" "Language-Team: @sommersoft, @MrCertainly\n"
@ -1157,7 +1157,11 @@ msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
msgid "Tile indices must be 0 - 255" msgid "Tile index out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile value out of bounds"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
@ -2421,10 +2425,6 @@ msgstr ""
msgid "threshold must be in the range 0-65536" msgid "threshold must be in the range 0-65536"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c
msgid "tile index out of bounds"
msgstr ""
#: shared-bindings/time/__init__.c #: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence" msgid "time.struct_time() takes a 9-sequence"
msgstr "" msgstr ""

View File

@ -1193,8 +1193,12 @@ msgid "Tile height must exactly divide bitmap height"
msgstr "La altura del Tile debe dividir exacto la altura del bitmap" msgstr "La altura del Tile debe dividir exacto la altura del bitmap"
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
msgid "Tile indices must be 0 - 255" msgid "Tile index out of bounds"
msgstr "Los índices de Tile deben ser 0 - 255" msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile value out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
@ -2484,10 +2488,6 @@ msgstr "error de sintaxis en el descriptor uctypes"
msgid "threshold must be in the range 0-65536" msgid "threshold must be in the range 0-65536"
msgstr "limite debe ser en el rango 0-65536" msgstr "limite debe ser en el rango 0-65536"
#: shared-bindings/displayio/TileGrid.c
msgid "tile index out of bounds"
msgstr "el indice del tile fuera de limite"
#: shared-bindings/time/__init__.c #: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence" msgid "time.struct_time() takes a 9-sequence"
msgstr "time.struct_time() toma un sequencio 9" msgstr "time.struct_time() toma un sequencio 9"
@ -2844,6 +2844,9 @@ msgstr "paso cero"
#~ msgid "STA required" #~ msgid "STA required"
#~ msgstr "STA requerido" #~ msgstr "STA requerido"
#~ msgid "Tile indices must be 0 - 255"
#~ msgstr "Los índices de Tile deben ser 0 - 255"
#~ msgid "UART(%d) does not exist" #~ msgid "UART(%d) does not exist"
#~ msgstr "UART(%d) no existe" #~ msgstr "UART(%d) no existe"
@ -2945,6 +2948,9 @@ msgstr "paso cero"
#~ msgid "services includes an object that is not a Service" #~ msgid "services includes an object that is not a Service"
#~ msgstr "services incluye un objeto que no es servicio" #~ msgstr "services incluye un objeto que no es servicio"
#~ msgid "tile index out of bounds"
#~ msgstr "el indice del tile fuera de limite"
#~ msgid "too many arguments" #~ msgid "too many arguments"
#~ msgstr "muchos argumentos" #~ msgstr "muchos argumentos"

View File

@ -1196,7 +1196,11 @@ msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
msgid "Tile indices must be 0 - 255" msgid "Tile index out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile value out of bounds"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
@ -2494,10 +2498,6 @@ msgstr "may pagkakamali sa sintaks sa uctypes descriptor"
msgid "threshold must be in the range 0-65536" msgid "threshold must be in the range 0-65536"
msgstr "ang threshold ay dapat sa range 0-65536" msgstr "ang threshold ay dapat sa range 0-65536"
#: shared-bindings/displayio/TileGrid.c
msgid "tile index out of bounds"
msgstr ""
#: shared-bindings/time/__init__.c #: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence" msgid "time.struct_time() takes a 9-sequence"
msgstr "time.struct_time() kumukuha ng 9-sequence" msgstr "time.struct_time() kumukuha ng 9-sequence"

View File

@ -1217,8 +1217,12 @@ msgid "Tile height must exactly divide bitmap height"
msgstr "La hauteur de la tuile doit diviser exactement la hauteur de l'image" msgstr "La hauteur de la tuile doit diviser exactement la hauteur de l'image"
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
msgid "Tile indices must be 0 - 255" msgid "Tile index out of bounds"
msgstr "Les indices des tuiles doivent être compris entre 0 et 255 " msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile value out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
@ -2536,10 +2540,6 @@ msgstr "erreur de syntaxe dans le descripteur d'uctypes"
msgid "threshold must be in the range 0-65536" msgid "threshold must be in the range 0-65536"
msgstr "le seuil doit être dans la gamme 0-65536" msgstr "le seuil doit être dans la gamme 0-65536"
#: shared-bindings/displayio/TileGrid.c
msgid "tile index out of bounds"
msgstr "indice de tuile hors limites"
#: shared-bindings/time/__init__.c #: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence" msgid "time.struct_time() takes a 9-sequence"
msgstr "time.struct_time() prend une séquence de longueur 9" msgstr "time.struct_time() prend une séquence de longueur 9"
@ -2895,6 +2895,9 @@ msgstr "'step' nul"
#~ msgid "STA required" #~ msgid "STA required"
#~ msgstr "'STA' requis" #~ msgstr "'STA' requis"
#~ msgid "Tile indices must be 0 - 255"
#~ msgstr "Les indices des tuiles doivent être compris entre 0 et 255 "
#~ msgid "UART(%d) does not exist" #~ msgid "UART(%d) does not exist"
#~ msgstr "UART(%d) n'existe pas" #~ msgstr "UART(%d) n'existe pas"
@ -2991,6 +2994,9 @@ msgstr "'step' nul"
#~ msgid "services includes an object that is not a Service" #~ msgid "services includes an object that is not a Service"
#~ msgstr "'services' inclut un object qui n'est pas un 'Service'" #~ msgstr "'services' inclut un object qui n'est pas un 'Service'"
#~ msgid "tile index out of bounds"
#~ msgstr "indice de tuile hors limites"
#~ msgid "too many arguments" #~ msgid "too many arguments"
#~ msgstr "trop d'arguments" #~ msgstr "trop d'arguments"

View File

@ -1195,7 +1195,11 @@ msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
msgid "Tile indices must be 0 - 255" msgid "Tile index out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile value out of bounds"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
@ -2492,10 +2496,6 @@ msgstr "errore di sintassi nel descrittore uctypes"
msgid "threshold must be in the range 0-65536" msgid "threshold must be in the range 0-65536"
msgstr "la soglia deve essere nell'intervallo 0-65536" msgstr "la soglia deve essere nell'intervallo 0-65536"
#: shared-bindings/displayio/TileGrid.c
msgid "tile index out of bounds"
msgstr ""
#: shared-bindings/time/__init__.c #: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence" msgid "time.struct_time() takes a 9-sequence"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-31 16:30-0500\n" "POT-Creation-Date: 2019-08-05 17:52-0700\n"
"PO-Revision-Date: 2019-03-19 18:37-0700\n" "PO-Revision-Date: 2019-03-19 18:37-0700\n"
"Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n" "Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n"
"Language-Team: pl\n" "Language-Team: pl\n"
@ -1173,8 +1173,12 @@ msgid "Tile height must exactly divide bitmap height"
msgstr "Wysokość bitmapy musi być wielokrotnością wysokości kafelka" msgstr "Wysokość bitmapy musi być wielokrotnością wysokości kafelka"
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
msgid "Tile indices must be 0 - 255" msgid "Tile index out of bounds"
msgstr "Indeks kafelka musi być pomiędzy 0 a 255 włącznie" msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile value out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
@ -2444,10 +2448,6 @@ msgstr "błąd składni w deskryptorze uctypes"
msgid "threshold must be in the range 0-65536" msgid "threshold must be in the range 0-65536"
msgstr "threshold musi być w zakresie 0-65536" msgstr "threshold musi być w zakresie 0-65536"
#: shared-bindings/displayio/TileGrid.c
msgid "tile index out of bounds"
msgstr "indeks kafelka poza zakresem"
#: shared-bindings/time/__init__.c #: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence" msgid "time.struct_time() takes a 9-sequence"
msgstr "time.struct_time() wymaga 9-elementowej sekwencji" msgstr "time.struct_time() wymaga 9-elementowej sekwencji"
@ -2702,6 +2702,9 @@ msgstr "zerowy krok"
#~ msgid "Must be a Group subclass." #~ msgid "Must be a Group subclass."
#~ msgstr "Musi dziedziczyć z Group." #~ msgstr "Musi dziedziczyć z Group."
#~ msgid "Tile indices must be 0 - 255"
#~ msgstr "Indeks kafelka musi być pomiędzy 0 a 255 włącznie"
#~ msgid "UUID integer value not in range 0 to 0xffff" #~ msgid "UUID integer value not in range 0 to 0xffff"
#~ msgstr "Wartość UUID poza zakresem 0 do 0xffff" #~ msgstr "Wartość UUID poza zakresem 0 do 0xffff"
@ -2710,3 +2713,6 @@ msgstr "zerowy krok"
#~ msgid "services includes an object that is not a Service" #~ msgid "services includes an object that is not a Service"
#~ msgstr "obiekt typu innego niż Service w services" #~ msgstr "obiekt typu innego niż Service w services"
#~ msgid "tile index out of bounds"
#~ msgstr "indeks kafelka poza zakresem"

View File

@ -1173,7 +1173,11 @@ msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
msgid "Tile indices must be 0 - 255" msgid "Tile index out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile value out of bounds"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
@ -2445,10 +2449,6 @@ msgstr ""
msgid "threshold must be in the range 0-65536" msgid "threshold must be in the range 0-65536"
msgstr "Limite deve estar no alcance de 0-65536" msgstr "Limite deve estar no alcance de 0-65536"
#: shared-bindings/displayio/TileGrid.c
msgid "tile index out of bounds"
msgstr ""
#: shared-bindings/time/__init__.c #: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence" msgid "time.struct_time() takes a 9-sequence"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: circuitpython-cn\n" "Project-Id-Version: circuitpython-cn\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-31 16:30-0500\n" "POT-Creation-Date: 2019-08-05 17:52-0700\n"
"PO-Revision-Date: 2019-04-13 10:10-0700\n" "PO-Revision-Date: 2019-04-13 10:10-0700\n"
"Last-Translator: hexthat\n" "Last-Translator: hexthat\n"
"Language-Team: Chinese Hanyu Pinyin\n" "Language-Team: Chinese Hanyu Pinyin\n"
@ -1180,8 +1180,12 @@ msgid "Tile height must exactly divide bitmap height"
msgstr "Píng pū gāodù bìxū huàfēn wèi tú gāodù" msgstr "Píng pū gāodù bìxū huàfēn wèi tú gāodù"
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
msgid "Tile indices must be 0 - 255" msgid "Tile index out of bounds"
msgstr "Píng pū zhǐshù bìxū wèi 0 - 255" msgstr ""
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile value out of bounds"
msgstr ""
#: shared-bindings/displayio/TileGrid.c #: shared-bindings/displayio/TileGrid.c
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
@ -2458,10 +2462,6 @@ msgstr "uctypes miáoshù fú zhōng de yǔfǎ cuòwù"
msgid "threshold must be in the range 0-65536" msgid "threshold must be in the range 0-65536"
msgstr "yùzhí bìxū zài fànwéi 0-65536" msgstr "yùzhí bìxū zài fànwéi 0-65536"
#: shared-bindings/displayio/TileGrid.c
msgid "tile index out of bounds"
msgstr "kuài suǒyǐn chāochū fànwéi"
#: shared-bindings/time/__init__.c #: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence" msgid "time.struct_time() takes a 9-sequence"
msgstr "time.struct_time() xūyào 9 xùliè" msgstr "time.struct_time() xūyào 9 xùliè"
@ -2728,6 +2728,9 @@ msgstr "líng bù"
#~ msgid "Only bit maps of 8 bit color or less are supported" #~ msgid "Only bit maps of 8 bit color or less are supported"
#~ msgstr "Jǐn zhīchí 8 wèi yánsè huò xiǎoyú" #~ msgstr "Jǐn zhīchí 8 wèi yánsè huò xiǎoyú"
#~ msgid "Tile indices must be 0 - 255"
#~ msgstr "Píng pū zhǐshù bìxū wèi 0 - 255"
#~ msgid "UUID integer value not in range 0 to 0xffff" #~ msgid "UUID integer value not in range 0 to 0xffff"
#~ msgstr "UUID zhěngshù zhí bùzài fànwéi 0 zhì 0xffff" #~ msgstr "UUID zhěngshù zhí bùzài fànwéi 0 zhì 0xffff"
@ -2743,6 +2746,9 @@ msgstr "líng bù"
#~ msgid "services includes an object that is not a Service" #~ msgid "services includes an object that is not a Service"
#~ msgstr "fúwù bāokuò yīgè bùshì fúwù de wùjiàn" #~ msgstr "fúwù bāokuò yīgè bùshì fúwù de wùjiàn"
#~ msgid "tile index out of bounds"
#~ msgstr "kuài suǒyǐn chāochū fànwéi"
#~ msgid "too many arguments" #~ msgid "too many arguments"
#~ msgstr "tài duō cānshù" #~ msgstr "tài duō cānshù"

View File

@ -131,7 +131,8 @@ STATIC mp_obj_t displayio_tilegrid_make_new(const mp_obj_type_t *type, size_t n_
displayio_tilegrid_t *self = m_new_obj(displayio_tilegrid_t); displayio_tilegrid_t *self = m_new_obj(displayio_tilegrid_t);
self->base.type = &displayio_tilegrid_type; self->base.type = &displayio_tilegrid_type;
common_hal_displayio_tilegrid_construct(self, native, bitmap_width / tile_width, common_hal_displayio_tilegrid_construct(self, native,
bitmap_width / tile_width, bitmap_height / tile_height,
pixel_shader, args[ARG_width].u_int, args[ARG_height].u_int, pixel_shader, args[ARG_width].u_int, args[ARG_height].u_int,
tile_width, tile_height, x, y, args[ARG_default_tile].u_int); tile_width, tile_height, x, y, args[ARG_default_tile].u_int);
return MP_OBJ_FROM_PTR(self); return MP_OBJ_FROM_PTR(self);
@ -346,7 +347,7 @@ STATIC mp_obj_t tilegrid_subscr(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t v
} }
if (x >= common_hal_displayio_tilegrid_get_width(self) || if (x >= common_hal_displayio_tilegrid_get_width(self) ||
y >= common_hal_displayio_tilegrid_get_height(self)) { y >= common_hal_displayio_tilegrid_get_height(self)) {
mp_raise_IndexError(translate("tile index out of bounds")); mp_raise_IndexError(translate("Tile index out of bounds"));
} }
if (value_obj == MP_OBJ_SENTINEL) { if (value_obj == MP_OBJ_SENTINEL) {
@ -357,7 +358,7 @@ STATIC mp_obj_t tilegrid_subscr(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t v
} else { } else {
mp_int_t value = mp_obj_get_int(value_obj); mp_int_t value = mp_obj_get_int(value_obj);
if (value < 0 || value > 255) { if (value < 0 || value > 255) {
mp_raise_ValueError(translate("Tile indices must be 0 - 255")); mp_raise_ValueError(translate("Tile value out of bounds"));
} }
common_hal_displayio_tilegrid_set_tile(self, x, y, value); common_hal_displayio_tilegrid_set_tile(self, x, y, value);
} }

View File

@ -32,7 +32,8 @@
extern const mp_obj_type_t displayio_tilegrid_type; extern const mp_obj_type_t displayio_tilegrid_type;
void common_hal_displayio_tilegrid_construct(displayio_tilegrid_t *self, mp_obj_t bitmap, void common_hal_displayio_tilegrid_construct(displayio_tilegrid_t *self, mp_obj_t bitmap,
uint16_t bitmap_width_in_tiles, mp_obj_t pixel_shader, uint16_t width, uint16_t height, uint16_t bitmap_width_in_tiles, uint16_t bitmap_height_in_tiles,
mp_obj_t pixel_shader, uint16_t width, uint16_t height,
uint16_t tile_width, uint16_t tile_height, uint16_t x, uint16_t y, uint8_t default_tile); uint16_t tile_width, uint16_t tile_height, uint16_t x, uint16_t y, uint8_t default_tile);
mp_int_t common_hal_displayio_tilegrid_get_x(displayio_tilegrid_t *self); mp_int_t common_hal_displayio_tilegrid_get_x(displayio_tilegrid_t *self);

View File

@ -63,6 +63,11 @@ void common_hal_displayio_bitmap_construct(displayio_bitmap_t *self, uint32_t wi
} }
self->x_mask = (1 << self->x_shift) - 1; // Used as a modulus on the x value self->x_mask = (1 << self->x_shift) - 1; // Used as a modulus on the x value
self->bitmask = (1 << bits_per_value) - 1; self->bitmask = (1 << bits_per_value) - 1;
self->dirty_area.x1 = 0;
self->dirty_area.x2 = width;
self->dirty_area.y1 = 0;
self->dirty_area.y2 = height;
} }
uint16_t common_hal_displayio_bitmap_get_height(displayio_bitmap_t *self) { uint16_t common_hal_displayio_bitmap_get_height(displayio_bitmap_t *self) {
@ -104,6 +109,26 @@ void common_hal_displayio_bitmap_set_pixel(displayio_bitmap_t *self, int16_t x,
if (self->read_only) { if (self->read_only) {
mp_raise_RuntimeError(translate("Read-only object")); mp_raise_RuntimeError(translate("Read-only object"));
} }
// Update the dirty area.
if (self->dirty_area.x1 == self->dirty_area.x2) {
self->dirty_area.x1 = x;
self->dirty_area.x2 = x + 1;
self->dirty_area.y1 = y;
self->dirty_area.y2 = y + 1;
} else {
if (x < self->dirty_area.x1) {
self->dirty_area.x1 = x;
} else if (x >= self->dirty_area.x2) {
self->dirty_area.x2 = x + 1;
}
if (y < self->dirty_area.y1) {
self->dirty_area.y1 = y;
} else if (y >= self->dirty_area.y2) {
self->dirty_area.y2 = y + 1;
}
}
// Update our data
int32_t row_start = y * self->stride; int32_t row_start = y * self->stride;
uint32_t bytes_per_value = self->bits_per_value / 8; uint32_t bytes_per_value = self->bits_per_value / 8;
if (bytes_per_value < 1) { if (bytes_per_value < 1) {
@ -124,3 +149,16 @@ void common_hal_displayio_bitmap_set_pixel(displayio_bitmap_t *self, int16_t x,
} }
} }
} }
displayio_area_t* displayio_bitmap_get_refresh_areas(displayio_bitmap_t *self, displayio_area_t* tail) {
if (self->dirty_area.x1 == self->dirty_area.x2) {
return tail;
}
self->dirty_area.next = tail;
return &self->dirty_area;
}
void displayio_bitmap_finish_refresh(displayio_bitmap_t *self) {
self->dirty_area.x1 = 0;
self->dirty_area.x2 = 0;
}

View File

@ -31,6 +31,7 @@
#include <stdint.h> #include <stdint.h>
#include "py/obj.h" #include "py/obj.h"
#include "shared-module/displayio/area.h"
typedef struct { typedef struct {
mp_obj_base_t base; mp_obj_base_t base;
@ -41,8 +42,12 @@ typedef struct {
uint8_t bits_per_value; uint8_t bits_per_value;
uint8_t x_shift; uint8_t x_shift;
size_t x_mask; size_t x_mask;
displayio_area_t dirty_area;
uint16_t bitmask; uint16_t bitmask;
bool read_only; bool read_only;
} displayio_bitmap_t; } displayio_bitmap_t;
void displayio_bitmap_finish_refresh(displayio_bitmap_t *self);
displayio_area_t* displayio_bitmap_get_refresh_areas(displayio_bitmap_t *self, displayio_area_t* tail);
#endif // MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_BITMAP_H #endif // MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_BITMAP_H

View File

@ -26,6 +26,7 @@
#include "shared-bindings/displayio/TileGrid.h" #include "shared-bindings/displayio/TileGrid.h"
#include "py/runtime.h"
#include "shared-bindings/displayio/Bitmap.h" #include "shared-bindings/displayio/Bitmap.h"
#include "shared-bindings/displayio/ColorConverter.h" #include "shared-bindings/displayio/ColorConverter.h"
#include "shared-bindings/displayio/OnDiskBitmap.h" #include "shared-bindings/displayio/OnDiskBitmap.h"
@ -33,7 +34,7 @@
#include "shared-bindings/displayio/Shape.h" #include "shared-bindings/displayio/Shape.h"
void common_hal_displayio_tilegrid_construct(displayio_tilegrid_t *self, mp_obj_t bitmap, void common_hal_displayio_tilegrid_construct(displayio_tilegrid_t *self, mp_obj_t bitmap,
uint16_t bitmap_width_in_tiles, uint16_t bitmap_width_in_tiles, uint16_t bitmap_height_in_tiles,
mp_obj_t pixel_shader, uint16_t width, uint16_t height, mp_obj_t pixel_shader, uint16_t width, uint16_t height,
uint16_t tile_width, uint16_t tile_height, uint16_t x, uint16_t y, uint8_t default_tile) { uint16_t tile_width, uint16_t tile_height, uint16_t x, uint16_t y, uint8_t default_tile) {
uint32_t total_tiles = width * height; uint32_t total_tiles = width * height;
@ -54,6 +55,7 @@ void common_hal_displayio_tilegrid_construct(displayio_tilegrid_t *self, mp_obj_
self->inline_tiles = false; self->inline_tiles = false;
} }
self->bitmap_width_in_tiles = bitmap_width_in_tiles; self->bitmap_width_in_tiles = bitmap_width_in_tiles;
self->tiles_in_bitmap = bitmap_width_in_tiles * bitmap_height_in_tiles;
self->width_in_tiles = width; self->width_in_tiles = width;
self->height_in_tiles = height; self->height_in_tiles = height;
self->x = x; self->x = x;
@ -204,6 +206,9 @@ uint8_t common_hal_displayio_tilegrid_get_tile(displayio_tilegrid_t *self, uint1
} }
void common_hal_displayio_tilegrid_set_tile(displayio_tilegrid_t *self, uint16_t x, uint16_t y, uint8_t tile_index) { void common_hal_displayio_tilegrid_set_tile(displayio_tilegrid_t *self, uint16_t x, uint16_t y, uint8_t tile_index) {
if (tile_index >= self->tiles_in_bitmap) {
mp_raise_ValueError(translate("Tile value out of bounds"));
}
uint8_t* tiles = self->tiles; uint8_t* tiles = self->tiles;
if (self->inline_tiles) { if (self->inline_tiles) {
tiles = (uint8_t*) &self->tiles; tiles = (uint8_t*) &self->tiles;
@ -462,6 +467,14 @@ void displayio_tilegrid_finish_refresh(displayio_tilegrid_t *self) {
} else if (MP_OBJ_IS_TYPE(self->pixel_shader, &displayio_colorconverter_type)) { } else if (MP_OBJ_IS_TYPE(self->pixel_shader, &displayio_colorconverter_type)) {
displayio_colorconverter_finish_refresh(self->pixel_shader); displayio_colorconverter_finish_refresh(self->pixel_shader);
} }
if (MP_OBJ_IS_TYPE(self->bitmap, &displayio_bitmap_type)) {
displayio_bitmap_finish_refresh(self->bitmap);
} else if (MP_OBJ_IS_TYPE(self->bitmap, &displayio_shape_type)) {
// TODO: Support shape changes.
} else if (MP_OBJ_IS_TYPE(self->bitmap, &displayio_ondiskbitmap_type)) {
// OnDiskBitmap changes will trigger a complete reload so no need to
// track changes.
}
// TODO(tannewt): We could double buffer changes to position and move them over here. // TODO(tannewt): We could double buffer changes to position and move them over here.
// That way they won't change during a refresh and tear. // That way they won't change during a refresh and tear.
} }
@ -478,8 +491,21 @@ displayio_area_t* displayio_tilegrid_get_refresh_areas(displayio_tilegrid_t *sel
return &self->current_area; return &self->current_area;
} }
// We must recheck if our sources require a refresh because needs_refresh may or may not have // If we have an in-memory bitmap, then check it for modifications.
// been called. if (MP_OBJ_IS_TYPE(self->bitmap, &displayio_bitmap_type)) {
displayio_area_t* refresh_area = displayio_bitmap_get_refresh_areas(self->bitmap, tail);
if (refresh_area != tail) {
// Special case a TileGrid that shows a full bitmap and use its
// dirty area. Copy it to ours so we can transform it.
if (self->tiles_in_bitmap == 1) {
displayio_area_copy(refresh_area, &self->dirty_area);
self->partial_change = true;
} else {
self->full_change = true;
}
}
}
self->full_change = self->full_change || self->full_change = self->full_change ||
(MP_OBJ_IS_TYPE(self->pixel_shader, &displayio_palette_type) && (MP_OBJ_IS_TYPE(self->pixel_shader, &displayio_palette_type) &&
displayio_palette_needs_refresh(self->pixel_shader)) || displayio_palette_needs_refresh(self->pixel_shader)) ||

View File

@ -42,7 +42,8 @@ typedef struct {
int16_t y; int16_t y;
uint16_t pixel_width; uint16_t pixel_width;
uint16_t pixel_height; uint16_t pixel_height;
uint16_t bitmap_width_in_tiles; uint16_t bitmap_width_in_tiles;;
uint8_t tiles_in_bitmap;
uint16_t width_in_tiles; uint16_t width_in_tiles;
uint16_t height_in_tiles; uint16_t height_in_tiles;
uint16_t tile_width; uint16_t tile_width;

View File

@ -35,11 +35,10 @@
// These are autogenerated resources. // These are autogenerated resources.
// This is fixed so it doesn't need to be in RAM. // This is fixed so it doesn't need to be in RAM.
extern const displayio_bitmap_t supervisor_terminal_font_bitmap;
extern const fontio_builtinfont_t supervisor_terminal_font; extern const fontio_builtinfont_t supervisor_terminal_font;
// These will change so they must live in RAM. // These will change so they must live in RAM.
extern displayio_bitmap_t supervisor_terminal_font_bitmap;
extern displayio_tilegrid_t supervisor_terminal_text_grid; extern displayio_tilegrid_t supervisor_terminal_text_grid;
extern terminalio_terminal_obj_t supervisor_terminal; extern terminalio_terminal_obj_t supervisor_terminal;

View File

@ -129,6 +129,7 @@ displayio_tilegrid_t supervisor_terminal_text_grid = {{
.pixel_width = {1}, .pixel_width = {1},
.pixel_height = {2}, .pixel_height = {2},
.bitmap_width_in_tiles = {0}, .bitmap_width_in_tiles = {0},
.tiles_in_bitmap = {0},
.width_in_tiles = 1, .width_in_tiles = 1,
.height_in_tiles = 1, .height_in_tiles = 1,
.tile_width = {1}, .tile_width = {1},
@ -157,7 +158,7 @@ c_file.write("""\
""") """)
c_file.write("""\ c_file.write("""\
const displayio_bitmap_t supervisor_terminal_font_bitmap = {{ displayio_bitmap_t supervisor_terminal_font_bitmap = {{
.base = {{.type = &displayio_bitmap_type }}, .base = {{.type = &displayio_bitmap_type }},
.width = {}, .width = {},
.height = {}, .height = {},