summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--locale/ID.po45
-rw-r--r--locale/circuitpython.pot45
-rw-r--r--locale/de_DE.po45
-rw-r--r--locale/en_US.po45
-rw-r--r--locale/en_x_pirate.po45
-rw-r--r--locale/es.po45
-rw-r--r--locale/fil.po45
-rw-r--r--locale/fr.po45
-rw-r--r--locale/it_IT.po45
-rw-r--r--locale/pl.po45
-rw-r--r--locale/pt_BR.po45
-rw-r--r--locale/zh_Latn_pinyin.po45
-rw-r--r--ports/atmel-samd/boards/hallowing_m0_express/board.c2
-rw-r--r--ports/atmel-samd/boards/pybadge/board.c2
-rw-r--r--ports/atmel-samd/boards/pybadge_airlift/board.c2
-rw-r--r--ports/atmel-samd/boards/pygamer/board.c2
-rw-r--r--ports/atmel-samd/boards/pygamer_advance/board.c2
-rw-r--r--ports/atmel-samd/boards/pyportal/board.c2
-rw-r--r--ports/atmel-samd/boards/ugame10/board.c2
-rw-r--r--shared-bindings/displayio/Display.c16
-rw-r--r--shared-bindings/displayio/Display.h5
-rw-r--r--shared-module/displayio/Display.c27
-rw-r--r--shared-module/displayio/Palette.h2
-rw-r--r--shared-module/displayio/TileGrid.c6
-rw-r--r--shared-module/displayio/__init__.c48
-rw-r--r--supervisor/shared/display.c3
26 files changed, 380 insertions, 281 deletions
diff --git a/locale/ID.po b/locale/ID.po
index b211d5379..bd12a5c94 100644
--- a/locale/ID.po
+++ b/locale/ID.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-07-19 16:10-0700\n"
+"POT-Creation-Date: 2019-07-25 22:48-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -472,11 +472,11 @@ msgstr ""
msgid "Could not initialize UART"
msgstr "Tidak dapat menginisialisasi UART"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate first buffer"
msgstr ""
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate second buffer"
msgstr ""
@@ -493,7 +493,7 @@ msgstr "DAC sudah digunakan"
msgid "Data 0 pin must be byte aligned"
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
msgstr ""
@@ -712,6 +712,10 @@ msgstr ""
msgid "Function requires lock"
msgstr ""
+#: shared-bindings/displayio/Display.c
+msgid "Group already used"
+msgstr ""
+
#: shared-module/displayio/Group.c
msgid "Group full"
msgstr ""
@@ -768,7 +772,7 @@ msgstr "Ukuran buffer tidak valid"
msgid "Invalid capture period. Valid range: 1 - 500"
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid channel count"
msgstr ""
@@ -776,11 +780,11 @@ msgstr ""
msgid "Invalid direction."
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid file"
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid format chunk size"
msgstr ""
@@ -822,11 +826,11 @@ msgstr ""
msgid "Invalid run mode."
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid voice count"
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid wave file"
msgstr ""
@@ -1071,7 +1075,7 @@ msgstr ""
msgid "SDA or SCL needs a pull up"
msgstr "SDA atau SCL membutuhkan pull up"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Sample rate must be positive"
msgstr ""
@@ -1143,19 +1147,19 @@ msgid ""
"exit safe mode.\n"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's bits_per_sample does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's channel count does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's sample rate does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's signedness does not match the mixer's"
msgstr ""
@@ -1261,7 +1265,7 @@ msgstr "Baudrate tidak didukung"
msgid "Unsupported display bus type"
msgstr "Baudrate tidak didukung"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Unsupported format"
msgstr ""
@@ -1277,7 +1281,7 @@ msgstr ""
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "Voice index too high"
msgstr ""
@@ -1404,7 +1408,7 @@ msgstr ""
msgid "bits must be 8"
msgstr "bits harus memilki nilai 8"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "bits_per_sample must be 8 or 16"
msgstr ""
@@ -1417,7 +1421,7 @@ msgstr ""
msgid "buf is too small. need %d bytes"
msgstr ""
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr ""
@@ -1780,7 +1784,8 @@ msgstr "argumen keyword ekstra telah diberikan"
msgid "extra positional arguments given"
msgstr "argumen posisi ekstra telah diberikan"
-#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
+#: shared-bindings/audiocore/WaveFile.c
+#: shared-bindings/displayio/OnDiskBitmap.c
msgid "file must be a file opened in byte mode"
msgstr ""
@@ -2325,7 +2330,7 @@ msgstr ""
msgid "rsplit(None,n)"
msgstr ""
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'"
diff --git a/locale/circuitpython.pot b/locale/circuitpython.pot
index d91e2b3ac..1b135822f 100644
--- a/locale/circuitpython.pot
+++ b/locale/circuitpython.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-07-19 16:10-0700\n"
+"POT-Creation-Date: 2019-07-25 22:48-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -462,11 +462,11 @@ msgstr ""
msgid "Could not initialize UART"
msgstr ""
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate first buffer"
msgstr ""
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate second buffer"
msgstr ""
@@ -483,7 +483,7 @@ msgstr ""
msgid "Data 0 pin must be byte aligned"
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
msgstr ""
@@ -697,6 +697,10 @@ msgstr ""
msgid "Function requires lock"
msgstr ""
+#: shared-bindings/displayio/Display.c
+msgid "Group already used"
+msgstr ""
+
#: shared-module/displayio/Group.c
msgid "Group full"
msgstr ""
@@ -753,7 +757,7 @@ msgstr ""
msgid "Invalid capture period. Valid range: 1 - 500"
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid channel count"
msgstr ""
@@ -761,11 +765,11 @@ msgstr ""
msgid "Invalid direction."
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid file"
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid format chunk size"
msgstr ""
@@ -807,11 +811,11 @@ msgstr ""
msgid "Invalid run mode."
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid voice count"
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid wave file"
msgstr ""
@@ -1051,7 +1055,7 @@ msgstr ""
msgid "SDA or SCL needs a pull up"
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Sample rate must be positive"
msgstr ""
@@ -1120,19 +1124,19 @@ msgid ""
"exit safe mode.\n"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's bits_per_sample does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's channel count does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's sample rate does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's signedness does not match the mixer's"
msgstr ""
@@ -1237,7 +1241,7 @@ msgstr ""
msgid "Unsupported display bus type"
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Unsupported format"
msgstr ""
@@ -1253,7 +1257,7 @@ msgstr ""
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "Voice index too high"
msgstr ""
@@ -1371,7 +1375,7 @@ msgstr ""
msgid "bits must be 8"
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "bits_per_sample must be 8 or 16"
msgstr ""
@@ -1384,7 +1388,7 @@ msgstr ""
msgid "buf is too small. need %d bytes"
msgstr ""
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr ""
@@ -1746,7 +1750,8 @@ msgstr ""
msgid "extra positional arguments given"
msgstr ""
-#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
+#: shared-bindings/audiocore/WaveFile.c
+#: shared-bindings/displayio/OnDiskBitmap.c
msgid "file must be a file opened in byte mode"
msgstr ""
@@ -2289,7 +2294,7 @@ msgstr ""
msgid "rsplit(None,n)"
msgstr ""
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'"
diff --git a/locale/de_DE.po b/locale/de_DE.po
index 748833147..7ad69e1dd 100644
--- a/locale/de_DE.po
+++ b/locale/de_DE.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-07-19 16:10-0700\n"
+"POT-Creation-Date: 2019-07-25 22:48-0700\n"
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
"Last-Translator: Pascal Deneaux\n"
"Language-Team: Sebastian Plamauer, Pascal Deneaux\n"
@@ -466,11 +466,11 @@ msgstr "Konnte ble_uuid nicht decodieren. Status: 0x%04x"
msgid "Could not initialize UART"
msgstr "Konnte UART nicht initialisieren"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate first buffer"
msgstr "Konnte first buffer nicht zuteilen"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate second buffer"
msgstr "Konnte second buffer nicht zuteilen"
@@ -487,7 +487,7 @@ msgstr "DAC wird schon benutzt"
msgid "Data 0 pin must be byte aligned"
msgstr "Data 0 pin muss am Byte ausgerichtet sein"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
msgstr ""
@@ -701,6 +701,10 @@ msgstr ""
msgid "Function requires lock"
msgstr "Die Funktion erwartet, dass der 'lock'-Befehl zuvor ausgeführt wurde"
+#: shared-bindings/displayio/Display.c
+msgid "Group already used"
+msgstr ""
+
#: shared-module/displayio/Group.c
msgid "Group full"
msgstr "Gruppe voll"
@@ -759,7 +763,7 @@ msgstr "Ungültige Puffergröße"
msgid "Invalid capture period. Valid range: 1 - 500"
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid channel count"
msgstr "Ungültige Anzahl von Kanälen"
@@ -767,11 +771,11 @@ msgstr "Ungültige Anzahl von Kanälen"
msgid "Invalid direction."
msgstr "Ungültige Richtung"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid file"
msgstr "Ungültige Datei"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid format chunk size"
msgstr "Ungültige format chunk size"
@@ -813,11 +817,11 @@ msgstr "Ungültige Polarität"
msgid "Invalid run mode."
msgstr "Ungültiger Ausführungsmodus"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid voice count"
msgstr "Ungültige Anzahl von Stimmen"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid wave file"
msgstr "Ungültige wave Datei"
@@ -1068,7 +1072,7 @@ msgstr "Sicherheitsmodus aktiv! Gespeicherter Code wird nicht ausgeführt\n"
msgid "SDA or SCL needs a pull up"
msgstr "SDA oder SCL brauchen pull up"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Sample rate must be positive"
msgstr "Abtastrate muss positiv sein"
@@ -1149,19 +1153,19 @@ msgstr ""
"Die Reset-Taste wurde beim Booten von CircuitPython gedrückt. Drücke sie "
"erneut um den abgesicherten Modus zu verlassen. \n"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's bits_per_sample does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's channel count does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's sample rate does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's signedness does not match the mixer's"
msgstr ""
@@ -1268,7 +1272,7 @@ msgstr "Baudrate wird nicht unterstützt"
msgid "Unsupported display bus type"
msgstr "Nicht unterstützter display bus type"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Unsupported format"
msgstr "Nicht unterstütztes Format"
@@ -1284,7 +1288,7 @@ msgstr "Nicht unterstützter Pull-Wert"
msgid "Viper functions don't currently support more than 4 arguments"
msgstr "Viper-Funktionen unterstützen derzeit nicht mehr als 4 Argumente"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "Voice index too high"
msgstr "Voice index zu hoch"
@@ -1411,7 +1415,7 @@ msgstr "bits muss 7, 8 oder 9 sein"
msgid "bits must be 8"
msgstr "bits müssen 8 sein"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "bits_per_sample must be 8 or 16"
msgstr "Es müssen 8 oder 16 bits_per_sample sein"
@@ -1424,7 +1428,7 @@ msgstr "Zweig ist außerhalb der Reichweite"
msgid "buf is too small. need %d bytes"
msgstr "buf ist zu klein. brauche %d Bytes"
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "Puffer muss ein bytes-artiges Objekt sein"
@@ -1786,7 +1790,8 @@ msgstr "Es wurden zusätzliche Keyword-Argumente angegeben"
msgid "extra positional arguments given"
msgstr "Es wurden zusätzliche Argumente ohne Keyword angegeben"
-#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
+#: shared-bindings/audiocore/WaveFile.c
+#: shared-bindings/displayio/OnDiskBitmap.c
msgid "file must be a file opened in byte mode"
msgstr "Die Datei muss eine im Byte-Modus geöffnete Datei sein"
@@ -2338,7 +2343,7 @@ msgstr ""
msgid "rsplit(None,n)"
msgstr ""
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'"
diff --git a/locale/en_US.po b/locale/en_US.po
index 38074de98..49699283c 100644
--- a/locale/en_US.po
+++ b/locale/en_US.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-07-19 16:10-0700\n"
+"POT-Creation-Date: 2019-07-25 22:48-0700\n"
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -462,11 +462,11 @@ msgstr ""
msgid "Could not initialize UART"
msgstr ""
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate first buffer"
msgstr ""
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate second buffer"
msgstr ""
@@ -483,7 +483,7 @@ msgstr ""
msgid "Data 0 pin must be byte aligned"
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
msgstr ""
@@ -697,6 +697,10 @@ msgstr ""
msgid "Function requires lock"
msgstr ""
+#: shared-bindings/displayio/Display.c
+msgid "Group already used"
+msgstr ""
+
#: shared-module/displayio/Group.c
msgid "Group full"
msgstr ""
@@ -753,7 +757,7 @@ msgstr ""
msgid "Invalid capture period. Valid range: 1 - 500"
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid channel count"
msgstr ""
@@ -761,11 +765,11 @@ msgstr ""
msgid "Invalid direction."
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid file"
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid format chunk size"
msgstr ""
@@ -807,11 +811,11 @@ msgstr ""
msgid "Invalid run mode."
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid voice count"
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid wave file"
msgstr ""
@@ -1051,7 +1055,7 @@ msgstr ""
msgid "SDA or SCL needs a pull up"
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Sample rate must be positive"
msgstr ""
@@ -1120,19 +1124,19 @@ msgid ""
"exit safe mode.\n"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's bits_per_sample does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's channel count does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's sample rate does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's signedness does not match the mixer's"
msgstr ""
@@ -1237,7 +1241,7 @@ msgstr ""
msgid "Unsupported display bus type"
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Unsupported format"
msgstr ""
@@ -1253,7 +1257,7 @@ msgstr ""
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "Voice index too high"
msgstr ""
@@ -1371,7 +1375,7 @@ msgstr ""
msgid "bits must be 8"
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "bits_per_sample must be 8 or 16"
msgstr ""
@@ -1384,7 +1388,7 @@ msgstr ""
msgid "buf is too small. need %d bytes"
msgstr ""
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr ""
@@ -1746,7 +1750,8 @@ msgstr ""
msgid "extra positional arguments given"
msgstr ""
-#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
+#: shared-bindings/audiocore/WaveFile.c
+#: shared-bindings/displayio/OnDiskBitmap.c
msgid "file must be a file opened in byte mode"
msgstr ""
@@ -2289,7 +2294,7 @@ msgstr ""
msgid "rsplit(None,n)"
msgstr ""
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'"
diff --git a/locale/en_x_pirate.po b/locale/en_x_pirate.po
index 9bee12d2a..885abe681 100644
--- a/locale/en_x_pirate.po
+++ b/locale/en_x_pirate.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-07-19 16:10-0700\n"
+"POT-Creation-Date: 2019-07-25 22:48-0700\n"
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
"Last-Translator: \n"
"Language-Team: @sommersoft, @MrCertainly\n"
@@ -466,11 +466,11 @@ msgstr ""
msgid "Could not initialize UART"
msgstr ""
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate first buffer"
msgstr ""
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate second buffer"
msgstr ""
@@ -487,7 +487,7 @@ msgstr ""
msgid "Data 0 pin must be byte aligned"
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
msgstr ""
@@ -701,6 +701,10 @@ msgstr ""
msgid "Function requires lock"
msgstr ""
+#: shared-bindings/displayio/Display.c
+msgid "Group already used"
+msgstr ""
+
#: shared-module/displayio/Group.c
msgid "Group full"
msgstr ""
@@ -757,7 +761,7 @@ msgstr ""
msgid "Invalid capture period. Valid range: 1 - 500"
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid channel count"
msgstr ""
@@ -765,11 +769,11 @@ msgstr ""
msgid "Invalid direction."
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid file"
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid format chunk size"
msgstr ""
@@ -811,11 +815,11 @@ msgstr ""
msgid "Invalid run mode."
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid voice count"
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid wave file"
msgstr ""
@@ -1055,7 +1059,7 @@ msgstr "Runnin' in safe mode! Nay runnin' saved code.\n"
msgid "SDA or SCL needs a pull up"
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Sample rate must be positive"
msgstr ""
@@ -1124,19 +1128,19 @@ msgid ""
"exit safe mode.\n"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's bits_per_sample does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's channel count does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's sample rate does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's signedness does not match the mixer's"
msgstr ""
@@ -1241,7 +1245,7 @@ msgstr ""
msgid "Unsupported display bus type"
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Unsupported format"
msgstr ""
@@ -1257,7 +1261,7 @@ msgstr ""
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "Voice index too high"
msgstr ""
@@ -1375,7 +1379,7 @@ msgstr ""
msgid "bits must be 8"
msgstr "pieces must be of 8"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "bits_per_sample must be 8 or 16"
msgstr ""
@@ -1388,7 +1392,7 @@ msgstr ""
msgid "buf is too small. need %d bytes"
msgstr ""
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr ""
@@ -1750,7 +1754,8 @@ msgstr ""
msgid "extra positional arguments given"
msgstr ""
-#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
+#: shared-bindings/audiocore/WaveFile.c
+#: shared-bindings/displayio/OnDiskBitmap.c
msgid "file must be a file opened in byte mode"
msgstr ""
@@ -2293,7 +2298,7 @@ msgstr ""
msgid "rsplit(None,n)"
msgstr ""
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'"
diff --git a/locale/es.po b/locale/es.po
index 33cdfe348..772570a31 100644
--- a/locale/es.po
+++ b/locale/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-07-19 16:10-0700\n"
+"POT-Creation-Date: 2019-07-25 22:48-0700\n"
"PO-Revision-Date: 2018-08-24 22:56-0500\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -470,11 +470,11 @@ msgstr "No se puede descodificar ble_uuid, err 0x%04x"
msgid "Could not initialize UART"
msgstr "No se puede inicializar la UART"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate first buffer"
msgstr "No se pudo asignar el primer buffer"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate second buffer"
msgstr "No se pudo asignar el segundo buffer"
@@ -491,7 +491,7 @@ msgstr "DAC ya está siendo utilizado"
msgid "Data 0 pin must be byte aligned"
msgstr "El pin Data 0 debe estar alineado a bytes"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
msgstr "Trozo de datos debe seguir fmt chunk"
@@ -706,6 +706,10 @@ msgstr "Frecuencia capturada por encima de la capacidad. Captura en pausa."
msgid "Function requires lock"
msgstr "La función requiere lock"
+#: shared-bindings/displayio/Display.c
+msgid "Group already used"
+msgstr ""
+
#: shared-module/displayio/Group.c
msgid "Group full"
msgstr "Group lleno"
@@ -764,7 +768,7 @@ msgstr "Tamaño de buffer inválido"
msgid "Invalid capture period. Valid range: 1 - 500"
msgstr "Inválido periodo de captura. Rango válido: 1 - 500"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid channel count"
msgstr "Cuenta de canales inválida"
@@ -772,11 +776,11 @@ msgstr "Cuenta de canales inválida"
msgid "Invalid direction."
msgstr "Dirección inválida."
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid file"
msgstr "Archivo inválido"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid format chunk size"
msgstr "Formato de fragmento de formato no válido"
@@ -818,11 +822,11 @@ msgstr "Polaridad inválida"
msgid "Invalid run mode."
msgstr "Modo de ejecución inválido."
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid voice count"
msgstr "Cuenta de voces inválida"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid wave file"
msgstr "Archivo wave inválido"
@@ -1079,7 +1083,7 @@ msgstr "Ejecutando en modo seguro! No se esta ejecutando el código guardado.\n"
msgid "SDA or SCL needs a pull up"
msgstr "SDA o SCL necesitan una pull up"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Sample rate must be positive"
msgstr "Sample rate debe ser positivo"
@@ -1160,19 +1164,19 @@ msgstr ""
"El botón reset fue presionado mientras arrancaba CircuitPython. Presiona "
"otra vez para salir del modo seguro.\n"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's bits_per_sample does not match the mixer's"
msgstr "Los bits_per_sample del sample no igualan a los del mixer"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's channel count does not match the mixer's"
msgstr "La cuenta de canales del sample no iguala a las del mixer"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's sample rate does not match the mixer's"
msgstr "El sample rate del sample no iguala al del mixer"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's signedness does not match the mixer's"
msgstr "El signo del sample no iguala al del mixer"
@@ -1278,7 +1282,7 @@ msgstr "Baudrate no soportado"
msgid "Unsupported display bus type"
msgstr "tipo de bitmap no soportado"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Unsupported format"
msgstr "Formato no soportado"
@@ -1294,7 +1298,7 @@ msgstr "valor pull no soportado."
msgid "Viper functions don't currently support more than 4 arguments"
msgstr "funciones Viper actualmente no soportan más de 4 argumentos."
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "Voice index too high"
msgstr "Index de voz demasiado alto"
@@ -1420,7 +1424,7 @@ msgstr "bits deben ser 7, 8 ó 9"
msgid "bits must be 8"
msgstr "bits debe ser 8"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "bits_per_sample must be 8 or 16"
msgstr "bits_per_sample debe ser 8 ó 16"
@@ -1433,7 +1437,7 @@ msgstr "El argumento de chr() no esta en el rango(256)"
msgid "buf is too small. need %d bytes"
msgstr "buf es demasiado pequeño. necesita %d bytes"
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "buffer debe de ser un objeto bytes-like"
@@ -1802,7 +1806,8 @@ msgstr "argumento(s) por palabra clave adicionales fueron dados"
msgid "extra positional arguments given"
msgstr "argumento posicional adicional dado"
-#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
+#: shared-bindings/audiocore/WaveFile.c
+#: shared-bindings/displayio/OnDiskBitmap.c
msgid "file must be a file opened in byte mode"
msgstr "el archivo deberia ser una archivo abierto en modo byte"
@@ -2353,7 +2358,7 @@ msgstr "retorno esperado '%q' pero se obtuvo '%q'"
msgid "rsplit(None,n)"
msgstr "rsplit(None,n)"
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'"
diff --git a/locale/fil.po b/locale/fil.po
index 4f05812f7..8e4dbd9fd 100644
--- a/locale/fil.po
+++ b/locale/fil.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-07-19 16:10-0700\n"
+"POT-Creation-Date: 2019-07-25 22:48-0700\n"
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
"Language-Team: fil\n"
@@ -471,11 +471,11 @@ msgstr ""
msgid "Could not initialize UART"
msgstr "Hindi ma-initialize ang UART"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate first buffer"
msgstr "Hindi ma-iallocate ang first buffer"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate second buffer"
msgstr "Hindi ma-iallocate ang second buffer"
@@ -493,7 +493,7 @@ msgstr "Ginagamit na ang DAC"
msgid "Data 0 pin must be byte aligned"
msgstr "graphic ay dapat 2048 bytes ang haba"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
msgstr "Dapat sunurin ng Data chunk ang fmt chunk"
@@ -715,6 +715,10 @@ msgstr ""
msgid "Function requires lock"
msgstr "Function nangangailangan ng lock"
+#: shared-bindings/displayio/Display.c
+msgid "Group already used"
+msgstr ""
+
#: shared-module/displayio/Group.c
msgid "Group full"
msgstr "Puno ang group"
@@ -773,7 +777,7 @@ msgstr "Mali ang buffer size"
msgid "Invalid capture period. Valid range: 1 - 500"
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid channel count"
msgstr "Maling bilang ng channel"
@@ -781,11 +785,11 @@ msgstr "Maling bilang ng channel"
msgid "Invalid direction."
msgstr "Mali ang direksyon."
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid file"
msgstr "Mali ang file"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid format chunk size"
msgstr "Mali ang format ng chunk size"
@@ -827,11 +831,11 @@ msgstr "Mali ang polarity"
msgid "Invalid run mode."
msgstr "Mali ang run mode."
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid voice count"
msgstr "Maling bilang ng voice"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid wave file"
msgstr "May hindi tama sa wave file"
@@ -1084,7 +1088,7 @@ msgstr "Tumatakbo sa safe mode! Hindi tumatakbo ang nai-save na code.\n"
msgid "SDA or SCL needs a pull up"
msgstr "Kailangan ng pull up resistors ang SDA o SCL"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Sample rate must be positive"
msgstr "Sample rate ay dapat positibo"
@@ -1163,19 +1167,19 @@ msgstr ""
"Ang reset button ay pinindot habang nag boot ang CircuitPython. Pindutin "
"ulit para lumabas sa safe mode.\n"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's bits_per_sample does not match the mixer's"
msgstr "Ang bits_per_sample ng sample ay hindi tugma sa mixer"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's channel count does not match the mixer's"
msgstr "Ang channel count ng sample ay hindi tugma sa mixer"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's sample rate does not match the mixer's"
msgstr "Ang sample rate ng sample ay hindi tugma sa mixer"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's signedness does not match the mixer's"
msgstr "Ang signedness ng sample hindi tugma sa mixer"
@@ -1282,7 +1286,7 @@ msgstr "Hindi supportadong baudrate"
msgid "Unsupported display bus type"
msgstr "Hindi supportadong tipo ng bitmap"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Unsupported format"
msgstr "Hindi supportadong format"
@@ -1300,7 +1304,7 @@ msgstr ""
"Ang mga function ng Viper ay kasalukuyang hindi sumusuporta sa higit sa 4 na "
"argumento"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "Voice index too high"
msgstr "Index ng Voice ay masyadong mataas"
@@ -1424,7 +1428,7 @@ msgstr "bits ay dapat 7, 8 o 9"
msgid "bits must be 8"
msgstr "bits ay dapat walo (8)"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "bits_per_sample must be 8 or 16"
msgstr "bits_per_sample ay dapat 8 o 16"
@@ -1437,7 +1441,7 @@ msgstr "branch wala sa range"
msgid "buf is too small. need %d bytes"
msgstr ""
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "buffer ay dapat bytes-like object"
@@ -1811,7 +1815,8 @@ msgstr "dagdag na keyword argument na ibinigay"
msgid "extra positional arguments given"
msgstr "dagdag na positional argument na ibinigay"
-#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
+#: shared-bindings/audiocore/WaveFile.c
+#: shared-bindings/displayio/OnDiskBitmap.c
msgid "file must be a file opened in byte mode"
msgstr "file ay dapat buksan sa byte mode"
@@ -2363,7 +2368,7 @@ msgstr "return umasa ng '%q' pero ang nakuha ay ‘%q’"
msgid "rsplit(None,n)"
msgstr "rsplit(None,n)"
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'"
diff --git a/locale/fr.po b/locale/fr.po
index a948630ee..5bb51b622 100644
--- a/locale/fr.po
+++ b/locale/fr.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-07-19 16:10-0700\n"
+"POT-Creation-Date: 2019-07-25 22:48-0700\n"
"PO-Revision-Date: 2019-04-14 20:05+0100\n"
"Last-Translator: Pierrick Couturier <arofarn@arofarn.info>\n"
"Language-Team: fr\n"
@@ -477,11 +477,11 @@ msgstr "Impossible de décoder le 'ble_uuid', err 0x%04x"
msgid "Could not initialize UART"
msgstr "L'UART n'a pu être initialisé"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate first buffer"
msgstr "Impossible d'allouer le 1er tampon"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate second buffer"
msgstr "Impossible d'allouer le 2e tampon"
@@ -499,7 +499,7 @@ msgstr "DAC déjà utilisé"
msgid "Data 0 pin must be byte aligned"
msgstr "La broche 'Data 0' doit être aligné sur l'octet"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
msgstr "Un bloc de données doit suivre un bloc de format"
@@ -720,6 +720,10 @@ msgstr "La fréquence capturée est au delà des capacités. Capture en pause."
msgid "Function requires lock"
msgstr "La fonction nécessite un verrou"
+#: shared-bindings/displayio/Display.c
+msgid "Group already used"
+msgstr ""
+
#: shared-module/displayio/Group.c
msgid "Group full"
msgstr "Groupe plein"
@@ -780,7 +784,7 @@ msgstr "Longueur de tampon invalide"
msgid "Invalid capture period. Valid range: 1 - 500"
msgstr "Période de capture invalide. Gamme valide: 1 à 500"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
#, fuzzy
msgid "Invalid channel count"
msgstr "Nombre de canaux invalide"
@@ -789,11 +793,11 @@ msgstr "Nombre de canaux invalide"
msgid "Invalid direction."
msgstr "Direction invalide"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid file"
msgstr "Fichier invalide"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid format chunk size"
msgstr "Taille de bloc de formatage invalide"
@@ -835,12 +839,12 @@ msgstr "Polarité invalide"
msgid "Invalid run mode."
msgstr "Mode de lancement invalide."
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
#, fuzzy
msgid "Invalid voice count"
msgstr "Nombre de voix invalide"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid wave file"
msgstr "Fichier WAVE invalide"
@@ -1100,7 +1104,7 @@ msgstr "Mode sans-échec! Le code sauvegardé n'est pas éxecuté.\n"
msgid "SDA or SCL needs a pull up"
msgstr "SDA ou SCL a besoin d'une résistance de tirage ('pull up')"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
#, fuzzy
msgid "Sample rate must be positive"
msgstr "Le taux d'échantillonage doit être positif"
@@ -1183,20 +1187,20 @@ msgstr ""
"Le bouton 'reset' a été appuyé pendant le démarrage de CircuitPython. "
"Appuyer de nouveau pour quitter de le mode sans-échec.\n"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's bits_per_sample does not match the mixer's"
msgstr ""
"Le 'bits_per_sample' de l'échantillon ne correspond pas à celui du mixer"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's channel count does not match the mixer's"
msgstr "Le canal de l'échantillon ne correspond pas à celui du mixer"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's sample rate does not match the mixer's"
msgstr "L'échantillonage de l'échantillon ne correspond pas à celui du mixer"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's signedness does not match the mixer's"
msgstr "Le signe de l'échantillon ne correspond pas à celui du mixer"
@@ -1307,7 +1311,7 @@ msgstr "Débit non supporté"
msgid "Unsupported display bus type"
msgstr "Type de bus d'affichage non supporté"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Unsupported format"
msgstr "Format non supporté"
@@ -1324,7 +1328,7 @@ msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
"les fonctions de Viper ne supportent pas plus de 4 arguments actuellement"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "Voice index too high"
msgstr "Index de la voix trop grand"
@@ -1449,7 +1453,7 @@ msgstr "bits doivent être 7, 8 ou 9"
msgid "bits must be 8"
msgstr "les bits doivent être 8"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
#, fuzzy
msgid "bits_per_sample must be 8 or 16"
msgstr "'bits_per_sample' doivent être 8 ou 16"
@@ -1464,7 +1468,7 @@ msgstr "branche hors-bornes"
msgid "buf is too small. need %d bytes"
msgstr "'buf' est trop petit. Besoin de %d octets"
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "le tampon doit être un objet bytes-like"
@@ -1845,7 +1849,8 @@ msgstr "argument(s) nommé(s) supplémentaire(s) donné(s)"
msgid "extra positional arguments given"
msgstr "argument(s) positionnel(s) supplémentaire(s) donné(s)"
-#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
+#: shared-bindings/audiocore/WaveFile.c
+#: shared-bindings/displayio/OnDiskBitmap.c
msgid "file must be a file opened in byte mode"
msgstr "le fichier doit être un fichier ouvert en mode 'byte'"
@@ -2404,7 +2409,7 @@ msgstr "return attendait '%q' mais a reçu '%q'"
msgid "rsplit(None,n)"
msgstr ""
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'"
diff --git a/locale/it_IT.po b/locale/it_IT.po
index 40a685f75..2f8cfdc1e 100644
--- a/locale/it_IT.po
+++ b/locale/it_IT.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-07-19 16:10-0700\n"
+"POT-Creation-Date: 2019-07-25 22:48-0700\n"
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
"Language-Team: \n"
@@ -472,11 +472,11 @@ msgstr ""
msgid "Could not initialize UART"
msgstr "Impossibile inizializzare l'UART"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate first buffer"
msgstr "Impossibile allocare il primo buffer"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate second buffer"
msgstr "Impossibile allocare il secondo buffer"
@@ -494,7 +494,7 @@ msgstr "DAC già in uso"
msgid "Data 0 pin must be byte aligned"
msgstr "graphic deve essere lunga 2048 byte"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
msgstr ""
@@ -714,6 +714,10 @@ msgstr ""
msgid "Function requires lock"
msgstr ""
+#: shared-bindings/displayio/Display.c
+msgid "Group already used"
+msgstr ""
+
#: shared-module/displayio/Group.c
msgid "Group full"
msgstr "Gruppo pieno"
@@ -773,7 +777,7 @@ msgstr "lunghezza del buffer non valida"
msgid "Invalid capture period. Valid range: 1 - 500"
msgstr "periodo di cattura invalido. Zona valida: 1 - 500"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
#, fuzzy
msgid "Invalid channel count"
msgstr "Argomento non valido"
@@ -782,11 +786,11 @@ msgstr "Argomento non valido"
msgid "Invalid direction."
msgstr "Direzione non valida."
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid file"
msgstr "File non valido"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid format chunk size"
msgstr ""
@@ -828,12 +832,12 @@ msgstr "Polarità non valida"
msgid "Invalid run mode."
msgstr "Modalità di esecuzione non valida."
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
#, fuzzy
msgid "Invalid voice count"
msgstr "Tipo di servizio non valido"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid wave file"
msgstr "File wave non valido"
@@ -1088,7 +1092,7 @@ msgstr "Modalità sicura in esecuzione! Codice salvato non in esecuzione.\n"
msgid "SDA or SCL needs a pull up"
msgstr "SDA o SCL necessitano un pull-up"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
#, fuzzy
msgid "Sample rate must be positive"
msgstr "STA deve essere attiva"
@@ -1162,19 +1166,19 @@ msgid ""
"exit safe mode.\n"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's bits_per_sample does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's channel count does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's sample rate does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's signedness does not match the mixer's"
msgstr ""
@@ -1281,7 +1285,7 @@ msgstr "baudrate non supportato"
msgid "Unsupported display bus type"
msgstr "tipo di bitmap non supportato"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Unsupported format"
msgstr "Formato non supportato"
@@ -1297,7 +1301,7 @@ msgstr "Valore di pull non supportato."
msgid "Viper functions don't currently support more than 4 arguments"
msgstr "Le funzioni Viper non supportano più di 4 argomenti al momento"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "Voice index too high"
msgstr ""
@@ -1418,7 +1422,7 @@ msgstr "i bit devono essere 7, 8 o 9"
msgid "bits must be 8"
msgstr "i bit devono essere 8"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
#, fuzzy
msgid "bits_per_sample must be 8 or 16"
msgstr "i bit devono essere 7, 8 o 9"
@@ -1433,7 +1437,7 @@ msgstr "argomento di chr() non è in range(256)"
msgid "buf is too small. need %d bytes"
msgstr ""
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr ""
@@ -1803,7 +1807,8 @@ msgstr "argomento nominato aggiuntivo fornito"
msgid "extra positional arguments given"
msgstr "argomenti posizonali extra dati"
-#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
+#: shared-bindings/audiocore/WaveFile.c
+#: shared-bindings/displayio/OnDiskBitmap.c
msgid "file must be a file opened in byte mode"
msgstr ""
@@ -2361,7 +2366,7 @@ msgstr "return aspettava '%q' ma ha ottenuto '%q'"
msgid "rsplit(None,n)"
msgstr ""
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'"
diff --git a/locale/pl.po b/locale/pl.po
index 896785126..83e408a3d 100644
--- a/locale/pl.po
+++ b/locale/pl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-07-19 16:10-0700\n"
+"POT-Creation-Date: 2019-07-25 22:48-0700\n"
"PO-Revision-Date: 2019-03-19 18:37-0700\n"
"Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n"
"Language-Team: pl\n"
@@ -465,11 +465,11 @@ msgstr "Nie można zdekodować ble_uuid, błąd 0x%04x"
msgid "Could not initialize UART"
msgstr "Ustawienie UART nie powiodło się"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate first buffer"
msgstr "Nie udała się alokacja pierwszego bufora"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate second buffer"
msgstr "Nie udała się alokacja drugiego bufora"
@@ -486,7 +486,7 @@ msgstr "DAC w użyciu"
msgid "Data 0 pin must be byte aligned"
msgstr "Nóżka data 0 musi być wyrównana do bajtu"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
msgstr "Fragment danych musi następować po fragmencie fmt"
@@ -700,6 +700,10 @@ msgstr "Uzyskana częstotliwość jest niemożliwa. Spauzowano."
msgid "Function requires lock"
msgstr "Funkcja wymaga blokady"
+#: shared-bindings/displayio/Display.c
+msgid "Group already used"
+msgstr ""
+
#: shared-module/displayio/Group.c
msgid "Group full"
msgstr "Grupa pełna"
@@ -758,7 +762,7 @@ msgstr "Zła wielkość bufora"
msgid "Invalid capture period. Valid range: 1 - 500"
msgstr "Zły okres. Poprawny zakres to: 1 - 500"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid channel count"
msgstr "Zła liczba kanałów"
@@ -766,11 +770,11 @@ msgstr "Zła liczba kanałów"
msgid "Invalid direction."
msgstr "Zły tryb"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid file"
msgstr "Zły plik"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid format chunk size"
msgstr "Zła wielkość fragmentu formatu"
@@ -812,11 +816,11 @@ msgstr "Zła polaryzacja"
msgid "Invalid run mode."
msgstr "Zły tryb uruchomienia"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid voice count"
msgstr "Zła liczba głosów"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid wave file"
msgstr "Zły plik wave"
@@ -1061,7 +1065,7 @@ msgstr "Uruchomiony tryb bezpieczeństwa! Zapisany kod nie jest uruchamiany.\n"
msgid "SDA or SCL needs a pull up"
msgstr "SDA lub SCL wymagają podciągnięcia"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Sample rate must be positive"
msgstr "Częstotliwość próbkowania musi być dodatnia"
@@ -1140,19 +1144,19 @@ msgstr ""
"Przycisk reset został wciśnięty podczas startu CircuitPythona. Wciśnij go "
"ponownie aby wyjść z trybu bezpieczeństwa.\n"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's bits_per_sample does not match the mixer's"
msgstr "Wartość bits_per_sample nie pasuje do miksera"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's channel count does not match the mixer's"
msgstr "Liczba kanałów nie pasuje do miksera "
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's sample rate does not match the mixer's"
msgstr "Sample rate nie pasuje do miksera"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's signedness does not match the mixer's"
msgstr "Znak nie pasuje do miksera"
@@ -1257,7 +1261,7 @@ msgstr "Zła szybkość transmisji"
msgid "Unsupported display bus type"
msgstr "Zły typ magistrali wyświetlaczy"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Unsupported format"
msgstr "Zły format"
@@ -1273,7 +1277,7 @@ msgstr "Zła wartość podciągnięcia."
msgid "Viper functions don't currently support more than 4 arguments"
msgstr "Funkcje Viper nie obsługują obecnie więcej niż 4 argumentów"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "Voice index too high"
msgstr "Zbyt wysoki indeks głosu"
@@ -1395,7 +1399,7 @@ msgstr "bits musi być 7, 8 lub 9"
msgid "bits must be 8"
msgstr "bits musi być 8"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "bits_per_sample must be 8 or 16"
msgstr "bits_per_sample musi być 8 lub 16"
@@ -1408,7 +1412,7 @@ msgstr "skok poza zakres"
msgid "buf is too small. need %d bytes"
msgstr "buf zbyt mały. Wymagane %d bajtów"
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "bufor mysi być typu bytes"
@@ -1771,7 +1775,8 @@ msgstr "nadmiarowe argumenty nazwane"
msgid "extra positional arguments given"
msgstr "nadmiarowe argumenty pozycyjne"
-#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
+#: shared-bindings/audiocore/WaveFile.c
+#: shared-bindings/displayio/OnDiskBitmap.c
msgid "file must be a file opened in byte mode"
msgstr "file musi być otwarte w trybie bajtowym"
@@ -2315,7 +2320,7 @@ msgstr "return oczekiwał '%q', a jest '%q'"
msgid "rsplit(None,n)"
msgstr "rsplit(None,n)"
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'"
diff --git a/locale/pt_BR.po b/locale/pt_BR.po
index 7e052bfb7..d3a8fe50a 100644
--- a/locale/pt_BR.po
+++ b/locale/pt_BR.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-07-19 16:10-0700\n"
+"POT-Creation-Date: 2019-07-25 22:48-0700\n"
"PO-Revision-Date: 2018-10-02 21:14-0000\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -468,11 +468,11 @@ msgstr ""
msgid "Could not initialize UART"
msgstr "Não foi possível inicializar o UART"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate first buffer"
msgstr "Não pôde alocar primeiro buffer"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate second buffer"
msgstr "Não pôde alocar segundo buffer"
@@ -489,7 +489,7 @@ msgstr "DAC em uso"
msgid "Data 0 pin must be byte aligned"
msgstr ""
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
msgstr "Pedaço de dados deve seguir o pedaço de cortes"
@@ -709,6 +709,10 @@ msgstr ""
msgid "Function requires lock"
msgstr ""
+#: shared-bindings/displayio/Display.c
+msgid "Group already used"
+msgstr ""
+
#: shared-module/displayio/Group.c
msgid "Group full"
msgstr "Grupo cheio"
@@ -766,7 +770,7 @@ msgstr "Arquivo inválido"
msgid "Invalid capture period. Valid range: 1 - 500"
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
#, fuzzy
msgid "Invalid channel count"
msgstr "certificado inválido"
@@ -775,11 +779,11 @@ msgstr "certificado inválido"
msgid "Invalid direction."
msgstr "Direção inválida"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid file"
msgstr "Arquivo inválido"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid format chunk size"
msgstr "Tamanho do pedaço de formato inválido"
@@ -821,12 +825,12 @@ msgstr ""
msgid "Invalid run mode."
msgstr ""
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
#, fuzzy
msgid "Invalid voice count"
msgstr "certificado inválido"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid wave file"
msgstr "Aqruivo de ondas inválido"
@@ -1071,7 +1075,7 @@ msgstr "Rodando em modo seguro! Não está executando o código salvo.\n"
msgid "SDA or SCL needs a pull up"
msgstr "SDA ou SCL precisa de um pull up"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Sample rate must be positive"
msgstr ""
@@ -1140,19 +1144,19 @@ msgid ""
"exit safe mode.\n"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's bits_per_sample does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's channel count does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's sample rate does not match the mixer's"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's signedness does not match the mixer's"
msgstr ""
@@ -1258,7 +1262,7 @@ msgstr "Taxa de transmissão não suportada"
msgid "Unsupported display bus type"
msgstr "Taxa de transmissão não suportada"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Unsupported format"
msgstr "Formato não suportado"
@@ -1274,7 +1278,7 @@ msgstr ""
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "Voice index too high"
msgstr ""
@@ -1392,7 +1396,7 @@ msgstr ""
msgid "bits must be 8"
msgstr "bits devem ser 8"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
#, fuzzy
msgid "bits_per_sample must be 8 or 16"
msgstr "bits devem ser 8"
@@ -1407,7 +1411,7 @@ msgstr "Calibração está fora do intervalo"
msgid "buf is too small. need %d bytes"
msgstr ""
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr ""
@@ -1771,7 +1775,8 @@ msgstr "argumentos extras de palavras-chave passados"
msgid "extra positional arguments given"
msgstr "argumentos extra posicionais passados"
-#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
+#: shared-bindings/audiocore/WaveFile.c
+#: shared-bindings/displayio/OnDiskBitmap.c
msgid "file must be a file opened in byte mode"
msgstr ""
@@ -2316,7 +2321,7 @@ msgstr ""
msgid "rsplit(None,n)"
msgstr ""
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'"
diff --git a/locale/zh_Latn_pinyin.po b/locale/zh_Latn_pinyin.po
index 164f50bb4..055dd5461 100644
--- a/locale/zh_Latn_pinyin.po
+++ b/locale/zh_Latn_pinyin.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: circuitpython-cn\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-07-19 16:10-0700\n"
+"POT-Creation-Date: 2019-07-25 22:48-0700\n"
"PO-Revision-Date: 2019-04-13 10:10-0700\n"
"Last-Translator: hexthat\n"
"Language-Team: Chinese Hanyu Pinyin\n"
@@ -466,11 +466,11 @@ msgstr "Wúfǎ jiěmǎ kě dú_uuid, err 0x%04x"
msgid "Could not initialize UART"
msgstr "Wúfǎ chūshǐhuà UART"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate first buffer"
msgstr "Wúfǎ fēnpèi dì yī gè huǎnchōng qū"
-#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
msgid "Couldn't allocate second buffer"
msgstr "Wúfǎ fēnpèi dì èr gè huǎnchōng qū"
@@ -487,7 +487,7 @@ msgstr "Fā yuán huì yǐjīng shǐyòng"
msgid "Data 0 pin must be byte aligned"
msgstr "Shùjù 0 de yǐn jiǎo bìxū shì zì jié duìqí"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
msgstr "Shùjù kuài bìxū zūnxún fmt qū kuài"
@@ -701,6 +701,10 @@ msgstr "Pínlǜ bǔhuò gāo yú nénglì. Bǔhuò zàntíng."
msgid "Function requires lock"
msgstr "Hánshù xūyào suǒdìng"
+#: shared-bindings/displayio/Display.c
+msgid "Group already used"
+msgstr ""
+
#: shared-module/displayio/Group.c
msgid "Group full"
msgstr "Fēnzǔ yǐ mǎn"
@@ -759,7 +763,7 @@ msgstr "Wúxiào de huǎnchōng qū dàxiǎo"
msgid "Invalid capture period. Valid range: 1 - 500"
msgstr "Wúxiào de bǔhuò zhōuqí. Yǒuxiào fànwéi: 1-500"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid channel count"
msgstr "Wúxiào de tōngdào jìshù"
@@ -767,11 +771,11 @@ msgstr "Wúxiào de tōngdào jìshù"
msgid "Invalid direction."
msgstr "Wúxiào de fāngxiàng."
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid file"
msgstr "Wúxiào de wénjiàn"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid format chunk size"
msgstr "Géshì kuài dàxiǎo wúxiào"
@@ -813,11 +817,11 @@ msgstr "Wúxiào liǎng jí zhí"
msgid "Invalid run mode."
msgstr "Wúxiào de yùnxíng móshì."
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Invalid voice count"
msgstr "Wúxiào de yǔyīn jìshù"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Invalid wave file"
msgstr "Wúxiào de làng làngcháo wénjiàn"
@@ -1066,7 +1070,7 @@ msgstr "Zài ānquán móshì xià yùnxíng! Bù yùnxíng yǐ bǎocún de dài
msgid "SDA or SCL needs a pull up"
msgstr "SDA huò SCL xūyào lādòng"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "Sample rate must be positive"
msgstr "Cǎiyàng lǜ bìxū wèi zhèng shù"
@@ -1146,19 +1150,19 @@ msgstr ""
"Qǐdòng CircuitPython shí, chóng zhì ànniǔ bèi àn xià. Zàicì àn xià yǐ tuìchū "
"ānquán móshì\n"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's bits_per_sample does not match the mixer's"
msgstr "Yàngběn de bits_per_sample yǔ hǔn yīn qì bù pǐpèi"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's channel count does not match the mixer's"
msgstr "Yàngběn de píndào jìshù yǔ hǔn yīn qì bù xiāngfú"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's sample rate does not match the mixer's"
msgstr "Yàngběn de yàngběn sùdù yǔ hǔn yīn qì de xiāngchà bù pǐpèi"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "The sample's signedness does not match the mixer's"
msgstr "Yàngběn de qiānmíng yǔ hǔn yīn qì de qiānmíng bù pǐpèi"
@@ -1263,7 +1267,7 @@ msgstr "Bù zhīchí de baudrate"
msgid "Unsupported display bus type"
msgstr "Bù zhīchí de gōnggòng qìchē lèixíng"
-#: shared-module/audioio/WaveFile.c
+#: shared-module/audiocore/WaveFile.c
msgid "Unsupported format"
msgstr "Bù zhīchí de géshì"
@@ -1279,7 +1283,7 @@ msgstr "Bù zhīchí de lādòng zhí."
msgid "Viper functions don't currently support more than 4 arguments"
msgstr "Viper hánshù mùqián bù zhīchí chāoguò 4 gè cānshù"
-#: shared-module/audioio/Mixer.c
+#: shared-module/audiocore/Mixer.c
msgid "Voice index too high"
msgstr "Yǔyīn suǒyǐn tài gāo"
@@ -1404,7 +1408,7 @@ msgstr "bǐtè bìxū shì 7,8 huò 9"
msgid "bits must be 8"
msgstr "bǐtè bìxū shì 8"
-#: shared-bindings/audioio/Mixer.c
+#: shared-bindings/audiocore/Mixer.c
msgid "bits_per_sample must be 8 or 16"
msgstr "měi jiàn yàngběn bìxū wèi 8 huò 16"
@@ -1417,7 +1421,7 @@ msgstr "fēnzhī bùzài fànwéi nèi"
msgid "buf is too small. need %d bytes"
msgstr "huǎnchōng tài xiǎo. Xūyào%d zì jié"
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid "buffer must be a bytes-like object"
msgstr "huǎnchōng qū bìxū shì zì jié lèi duìxiàng"
@@ -1782,7 +1786,8 @@ msgstr "éwài de guānjiàn cí cānshù"
msgid "extra positional arguments given"
msgstr "gěi chūle éwài de wèizhì cānshù"
-#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
+#: shared-bindings/audiocore/WaveFile.c
+#: shared-bindings/displayio/OnDiskBitmap.c
msgid "file must be a file opened in byte mode"
msgstr "wénjiàn bìxū shì zài zì jié móshì xià dǎkāi de wénjiàn"
@@ -2327,7 +2332,7 @@ msgstr "fǎnhuí yùqí de '%q' dàn huòdéle '%q'"
msgid "rsplit(None,n)"
msgstr ""
-#: shared-bindings/audioio/RawSample.c
+#: shared-bindings/audiocore/RawSample.c
msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'"
diff --git a/ports/atmel-samd/boards/hallowing_m0_express/board.c b/ports/atmel-samd/boards/hallowing_m0_express/board.c
index be1741c87..c12431f8b 100644
--- a/ports/atmel-samd/boards/hallowing_m0_express/board.c
+++ b/ports/atmel-samd/boards/hallowing_m0_express/board.c
@@ -93,6 +93,8 @@ void board_init(void) {
16, // Color depth
false, // Grayscale
false, // Pixels in a byte share a row. Only used for depth < 8
+ 1, // bytes per cell. Only valid for depths < 8
+ false, // reverse_pixels_in_byte. Only valid for depths < 8
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
diff --git a/ports/atmel-samd/boards/pybadge/board.c b/ports/atmel-samd/boards/pybadge/board.c
index c9dca0329..e30b901b0 100644
--- a/ports/atmel-samd/boards/pybadge/board.c
+++ b/ports/atmel-samd/boards/pybadge/board.c
@@ -95,6 +95,8 @@ void board_init(void) {
16, // Color depth
false, // grayscale
false, // pixels in byte share row. only used for depth < 8
+ 1, // bytes per cell. Only valid for depths < 8
+ false, // reverse_pixels_in_byte. Only valid for depths < 8
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
diff --git a/ports/atmel-samd/boards/pybadge_airlift/board.c b/ports/atmel-samd/boards/pybadge_airlift/board.c
index eeab3f2b2..38fb33886 100644
--- a/ports/atmel-samd/boards/pybadge_airlift/board.c
+++ b/ports/atmel-samd/boards/pybadge_airlift/board.c
@@ -73,6 +73,8 @@ void board_init(void) {
16, // Color depth
false, // grayscale
false, // pixels in byte share row. Only used for depth < 8
+ 1, // bytes per cell. Only valid for depths < 8
+ false, // reverse_pixels_in_byte. Only valid for depths < 8
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
diff --git a/ports/atmel-samd/boards/pygamer/board.c b/ports/atmel-samd/boards/pygamer/board.c
index d413c8e34..5ccf3fc50 100644
--- a/ports/atmel-samd/boards/pygamer/board.c
+++ b/ports/atmel-samd/boards/pygamer/board.c
@@ -95,6 +95,8 @@ void board_init(void) {
16, // Color depth
false, // Grayscale
false, // pixels in a byte share a row. Only valid for depths < 8
+ 1, // bytes per cell. Only valid for depths < 8
+ false, // reverse_pixels_in_byte. Only valid for depths < 8
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
diff --git a/ports/atmel-samd/boards/pygamer_advance/board.c b/ports/atmel-samd/boards/pygamer_advance/board.c
index 498a29db2..72d4dda8d 100644
--- a/ports/atmel-samd/boards/pygamer_advance/board.c
+++ b/ports/atmel-samd/boards/pygamer_advance/board.c
@@ -73,6 +73,8 @@ void board_init(void) {
16, // Color depth
false, // Grayscale
false, // pixels in a byte share a row. Only valid for depths < 8
+ 1, // bytes per cell. Only valid for depths < 8
+ false, // reverse_pixels_in_byte. Only valid for depths < 8
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
diff --git a/ports/atmel-samd/boards/pyportal/board.c b/ports/atmel-samd/boards/pyportal/board.c
index 938072158..a5de1d145 100644
--- a/ports/atmel-samd/boards/pyportal/board.c
+++ b/ports/atmel-samd/boards/pyportal/board.c
@@ -85,6 +85,8 @@ void board_init(void) {
16, // Color depth
false, // grayscale
false, // pixels_in_byte_share_row (unused for depths > 8)
+ 1, // bytes per cell. Only valid for depths < 8
+ false, // reverse_pixels_in_byte. Only valid for depths < 8
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
diff --git a/ports/atmel-samd/boards/ugame10/board.c b/ports/atmel-samd/boards/ugame10/board.c
index 15e22a72c..72b0ed577 100644
--- a/ports/atmel-samd/boards/ugame10/board.c
+++ b/ports/atmel-samd/boards/ugame10/board.c
@@ -93,6 +93,8 @@ void board_init(void) {
16, // Color depth
false, // grayscale
false, // pixels in byte share row. Only used with depth < 8
+ 1, // bytes per cell. Only valid for depths < 8
+ false, // reverse_pixels_in_byte. Only valid for depths < 8
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
diff --git a/shared-bindings/displayio/Display.c b/shared-bindings/displayio/Display.c
index 361a37ece..9cb4d6e74 100644
--- a/shared-bindings/displayio/Display.c
+++ b/shared-bindings/displayio/Display.c
@@ -51,7 +51,7 @@
//| Most people should not use this class directly. Use a specific display driver instead that will
//| contain the initialization sequence at minimum.
//|
-//| .. class:: Display(display_bus, init_sequence, *, width, height, colstart=0, rowstart=0, rotation=0, color_depth=16, grayscale=False, pixels_in_byte_share_row=True, set_column_command=0x2a, set_row_command=0x2b, write_ram_command=0x2c, set_vertical_scroll=0, backlight_pin=None, brightness_command=None, brightness=1.0, auto_brightness=False, single_byte_bounds=False, data_as_commands=False)
+//| .. class:: Display(display_bus, init_sequence, *, width, height, colstart=0, rowstart=0, rotation=0, color_depth=16, grayscale=False, pixels_in_byte_share_row=True, bytes_per_cell=1, reverse_pixels_in_byte=False, set_column_command=0x2a, set_row_command=0x2b, write_ram_command=0x2c, set_vertical_scroll=0, backlight_pin=None, brightness_command=None, brightness=1.0, auto_brightness=False, single_byte_bounds=False, data_as_commands=False)
//|
//| Create a Display object on the given display bus (`displayio.FourWire` or `displayio.ParallelBus`).
//|
@@ -90,6 +90,8 @@
//| support 18 bit but 16 is easier to transmit. The last bit is extrapolated.)
//| :param bool grayscale: True if the display only shows a single color.
//| :param bool pixels_in_byte_share_row: True when pixels are less than a byte and a byte includes pixels from the same row of the display. When False, pixels share a column.
+//| :param int bytes_per_cell: Number of bytes per addressable memory location when color_depth < 8. When greater than one, bytes share a row or column according to pixels_in_byte_share_row.
+//| :param bool reverse_pixels_in_byte: Reverses the pixel order within each byte when color_depth < 8. Does not apply across multiple bytes even if there is more than one byte per cell (bytes_per_cell.)
//| :param int set_column_command: Command used to set the start and end columns to update
//| :param int set_row_command: Command used so set the start and end rows to update
//| :param int write_ram_command: Command used to write pixels values into the update region. Ignored if data_as_commands is set.
@@ -102,7 +104,7 @@
//| :param bool data_as_commands: Treat all init and boundary data as SPI commands. Certain displays require this.
//|
STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
- enum { ARG_display_bus, ARG_init_sequence, ARG_width, ARG_height, ARG_colstart, ARG_rowstart, ARG_rotation, ARG_color_depth, ARG_grayscale, ARG_pixels_in_byte_share_row, ARG_set_column_command, ARG_set_row_command, ARG_write_ram_command, ARG_set_vertical_scroll, ARG_backlight_pin, ARG_brightness_command, ARG_brightness, ARG_auto_brightness, ARG_single_byte_bounds, ARG_data_as_commands };
+ enum { ARG_display_bus, ARG_init_sequence, ARG_width, ARG_height, ARG_colstart, ARG_rowstart, ARG_rotation, ARG_color_depth, ARG_grayscale, ARG_pixels_in_byte_share_row, ARG_bytes_per_cell, ARG_reverse_pixels_in_byte, ARG_set_column_command, ARG_set_row_command, ARG_write_ram_command, ARG_set_vertical_scroll, ARG_backlight_pin, ARG_brightness_command, ARG_brightness, ARG_auto_brightness, ARG_single_byte_bounds, ARG_data_as_commands };
static const mp_arg_t allowed_args[] = {
{ MP_QSTR_display_bus, MP_ARG_REQUIRED | MP_ARG_OBJ },
{ MP_QSTR_init_sequence, MP_ARG_REQUIRED | MP_ARG_OBJ },
@@ -114,6 +116,8 @@ STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_a
{ MP_QSTR_color_depth, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 16} },
{ MP_QSTR_grayscale, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = false} },
{ MP_QSTR_pixels_in_byte_share_row, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = true} },
+ { MP_QSTR_bytes_per_cell, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 1} },
+ { MP_QSTR_reverse_pixels_in_byte, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = false} },
{ MP_QSTR_set_column_command, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 0x2a} },
{ MP_QSTR_set_row_command, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 0x2b} },
{ MP_QSTR_write_ram_command, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 0x2c} },
@@ -163,7 +167,8 @@ STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_a
common_hal_displayio_display_construct(
self,
display_bus, args[ARG_width].u_int, args[ARG_height].u_int, args[ARG_colstart].u_int, args[ARG_rowstart].u_int, rotation,
- args[ARG_color_depth].u_int, args[ARG_grayscale].u_bool, args[ARG_pixels_in_byte_share_row].u_bool,
+ args[ARG_color_depth].u_int, args[ARG_grayscale].u_bool,
+ args[ARG_pixels_in_byte_share_row].u_bool, args[ARG_bytes_per_cell].u_bool, args[ARG_reverse_pixels_in_byte].u_bool,
args[ARG_set_column_command].u_int, args[ARG_set_row_command].u_int,
args[ARG_write_ram_command].u_int,
args[ARG_set_vertical_scroll].u_int,
@@ -199,7 +204,10 @@ STATIC mp_obj_t displayio_display_obj_show(mp_obj_t self_in, mp_obj_t group_in)
group = MP_OBJ_TO_PTR(native_group(group_in));
}
- common_hal_displayio_display_show(self, group);
+ bool ok = common_hal_displayio_display_show(self, group);
+ if (!ok) {
+ mp_raise_ValueError(translate("Group already used"));
+ }
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_2(displayio_display_show_obj, displayio_display_obj_show);
diff --git a/shared-bindings/displayio/Display.h b/shared-bindings/displayio/Display.h
index e765e6f25..a8938bbcd 100644
--- a/shared-bindings/displayio/Display.h
+++ b/shared-bindings/displayio/Display.h
@@ -40,7 +40,8 @@ extern const mp_obj_type_t displayio_display_type;
void common_hal_displayio_display_construct(displayio_display_obj_t* self,
mp_obj_t bus, uint16_t width, uint16_t height,
- int16_t colstart, int16_t rowstart, uint16_t rotation, uint16_t color_depth, bool grayscale, bool pixels_in_byte_share_row,
+ int16_t colstart, int16_t rowstart, uint16_t rotation, uint16_t color_depth, bool grayscale,
+ bool pixels_in_byte_share_row, uint8_t bytes_per_cell, bool reverse_pixels_in_byte,
uint8_t set_column_command, uint8_t set_row_command, uint8_t write_ram_command, uint8_t set_vertical_scroll,
uint8_t* init_sequence, uint16_t init_sequence_len, const mcu_pin_obj_t* backlight_pin, uint16_t brightness_command,
mp_float_t brightness, bool auto_brightness,
@@ -48,7 +49,7 @@ void common_hal_displayio_display_construct(displayio_display_obj_t* self,
int32_t common_hal_displayio_display_wait_for_frame(displayio_display_obj_t* self);
-void common_hal_displayio_display_show(displayio_display_obj_t* self, displayio_group_t* root_group);
+bool common_hal_displayio_display_show(displayio_display_obj_t* self, displayio_group_t* root_group);
void common_hal_displayio_display_refresh_soon(displayio_display_obj_t* self);
diff --git a/shared-module/displayio/Display.c b/shared-module/displayio/Display.c
index a8515b9e5..51c6f292a 100644
--- a/shared-module/displayio/Display.c
+++ b/shared-module/displayio/Display.c
@@ -44,7 +44,7 @@
void common_hal_displayio_display_construct(displayio_display_obj_t* self,
mp_obj_t bus, uint16_t width, uint16_t height, int16_t colstart, int16_t rowstart, uint16_t rotation,
- uint16_t color_depth, bool grayscale, bool pixels_in_byte_share_row,
+ uint16_t color_depth, bool grayscale, bool pixels_in_byte_share_row, uint8_t bytes_per_cell, bool reverse_pixels_in_byte,
uint8_t set_column_command, uint8_t set_row_command,
uint8_t write_ram_command, uint8_t set_vertical_scroll, uint8_t* init_sequence, uint16_t init_sequence_len,
const mcu_pin_obj_t* backlight_pin, uint16_t brightness_command, mp_float_t brightness, bool auto_brightness,
@@ -52,6 +52,8 @@ void common_hal_displayio_display_construct(displayio_display_obj_t* self,
self->colorspace.depth = color_depth;
self->colorspace.grayscale = grayscale;
self->colorspace.pixels_in_byte_share_row = pixels_in_byte_share_row;
+ self->colorspace.bytes_per_cell = bytes_per_cell;
+ self->colorspace.reverse_pixels_in_byte = reverse_pixels_in_byte;
self->set_column_command = set_column_command;
self->set_row_command = set_row_command;
self->write_ram_command = write_ram_command;
@@ -195,17 +197,25 @@ void common_hal_displayio_display_construct(displayio_display_obj_t* self,
common_hal_displayio_display_show(self, &circuitpython_splash);
}
-void common_hal_displayio_display_show(displayio_display_obj_t* self, displayio_group_t* root_group) {
+bool common_hal_displayio_display_show(displayio_display_obj_t* self, displayio_group_t* root_group) {
if (root_group == NULL) {
root_group = &circuitpython_splash;
}
if (root_group == self->current_group) {
- return;
+ return true;
+ }
+ if (root_group->in_group) {
+ return false;
+ }
+ if (self->current_group != NULL) {
+ self->current_group->in_group = false;
}
displayio_group_update_transform(root_group, &self->transform);
+ root_group->in_group = true;
self->current_group = root_group;
self->full_refresh = true;
common_hal_displayio_display_refresh_soon(self);
+ return true;
}
void common_hal_displayio_display_refresh_soon(displayio_display_obj_t* self) {
@@ -299,11 +309,11 @@ void displayio_display_set_region_to_update(displayio_display_obj_t* self, displ
if (self->colorspace.depth < 8) {
uint8_t pixels_per_byte = 8 / self->colorspace.depth;
if (self->colorspace.pixels_in_byte_share_row) {
- x1 /= pixels_per_byte;
- x2 /= pixels_per_byte;
+ x1 /= pixels_per_byte * self->colorspace.bytes_per_cell;
+ x2 /= pixels_per_byte * self->colorspace.bytes_per_cell;
} else {
- y1 /= pixels_per_byte;
- y2 /= pixels_per_byte;
+ y1 /= pixels_per_byte * self->colorspace.bytes_per_cell;
+ y2 /= pixels_per_byte * self->colorspace.bytes_per_cell;
}
}
@@ -318,7 +328,6 @@ void displayio_display_set_region_to_update(displayio_display_obj_t* self, displ
if (self->single_byte_bounds) {
data[data_length++] = x1 + self->colstart;
data[data_length++] = x2 - 1 + self->colstart;
- data_length += 2;
} else {
x1 += self->colstart;
x2 += self->colstart - 1;
@@ -413,7 +422,7 @@ bool displayio_display_clip_area(displayio_display_obj_t *self, const displayio_
// Expand the area if we have multiple pixels per byte and we need to byte
// align the bounds.
if (self->colorspace.depth < 8) {
- uint8_t pixels_per_byte = 8 / self->colorspace.depth;
+ uint8_t pixels_per_byte = 8 / self->colorspace.depth * self->colorspace.bytes_per_cell;
if (self->colorspace.pixels_in_byte_share_row) {
if (clipped->x1 % pixels_per_byte != 0) {
clipped->x1 -= clipped->x1 % pixels_per_byte;
diff --git a/shared-module/displayio/Palette.h b/shared-module/displayio/Palette.h
index 19c05baf5..a917e2432 100644
--- a/shared-module/displayio/Palette.h
+++ b/shared-module/displayio/Palette.h
@@ -36,6 +36,8 @@ typedef struct {
uint8_t depth;
bool grayscale;
bool pixels_in_byte_share_row;
+ uint8_t bytes_per_cell;
+ bool reverse_pixels_in_byte;
uint8_t hue;
} _displayio_colorspace_t;
diff --git a/shared-module/displayio/TileGrid.c b/shared-module/displayio/TileGrid.c
index 88873d3a9..fee2ae978 100644
--- a/shared-module/displayio/TileGrid.c
+++ b/shared-module/displayio/TileGrid.c
@@ -436,7 +436,11 @@ bool displayio_tilegrid_fill_area(displayio_tilegrid_t *self, const _displayio_c
// asm("bkpt");
// }
}
- ((uint8_t*)buffer)[offset / pixels_per_byte] |= pixel << ((offset % pixels_per_byte) * colorspace->depth);
+ uint8_t shift = (offset % pixels_per_byte) * colorspace->depth;
+ if (colorspace->reverse_pixels_in_byte) {
+ shift = (pixels_per_byte - 1) * colorspace->depth - shift;
+ }
+ ((uint8_t*)buffer)[offset / pixels_per_byte] |= pixel << shift;
}
}
}
diff --git a/shared-module/displayio/__init__.c b/shared-module/displayio/__init__.c
index 97060aaeb..8f6e650a1 100644
--- a/shared-module/displayio/__init__.c
+++ b/shared-module/displayio/__init__.c
@@ -209,35 +209,35 @@ void reset_displays(void) {
}
}
} else if (displays[i].i2cdisplay_bus.base.type == &displayio_i2cdisplay_type) {
- displayio_i2cdisplay_obj_t* i2c = &displays[i].i2cdisplay_bus;
- if (((uint32_t) i2c->bus) < ((uint32_t) &displays) ||
- ((uint32_t) i2c->bus) > ((uint32_t) &displays + CIRCUITPY_DISPLAY_LIMIT)) {
- busio_i2c_obj_t* original_i2c = i2c->bus;
- #if BOARD_I2C
- // We don't need to move original_i2c if it is the board.SPI object because it is
- // statically allocated already. (Doing so would also make it impossible to reference in
- // a subsequent VM run.)
- if (original_i2c == common_hal_board_get_i2c()) {
- continue;
- }
- #endif
- memcpy(&i2c->inline_bus, original_i2c, sizeof(busio_i2c_obj_t));
- i2c->bus = &i2c->inline_bus;
- // Check for other displays that use the same i2c bus and swap them too.
- for (uint8_t j = i + 1; j < CIRCUITPY_DISPLAY_LIMIT; j++) {
- if (displays[i].i2cdisplay_bus.base.type == &displayio_i2cdisplay_type &&
- displays[i].i2cdisplay_bus.bus == original_i2c) {
- displays[i].i2cdisplay_bus.bus = &i2c->inline_bus;
- }
+ displayio_i2cdisplay_obj_t* i2c = &displays[i].i2cdisplay_bus;
+ if (((uint32_t) i2c->bus) < ((uint32_t) &displays) ||
+ ((uint32_t) i2c->bus) > ((uint32_t) &displays + CIRCUITPY_DISPLAY_LIMIT)) {
+ busio_i2c_obj_t* original_i2c = i2c->bus;
+ #if BOARD_I2C
+ // We don't need to move original_i2c if it is the board.SPI object because it is
+ // statically allocated already. (Doing so would also make it impossible to reference in
+ // a subsequent VM run.)
+ if (original_i2c == common_hal_board_get_i2c()) {
+ continue;
+ }
+ #endif
+ memcpy(&i2c->inline_bus, original_i2c, sizeof(busio_i2c_obj_t));
+ i2c->bus = &i2c->inline_bus;
+ // Check for other displays that use the same i2c bus and swap them too.
+ for (uint8_t j = i + 1; j < CIRCUITPY_DISPLAY_LIMIT; j++) {
+ if (displays[i].i2cdisplay_bus.base.type == &displayio_i2cdisplay_type &&
+ displays[i].i2cdisplay_bus.bus == original_i2c) {
+ displays[i].i2cdisplay_bus.bus = &i2c->inline_bus;
}
}
}
- }
-
- for (uint8_t i = 0; i < CIRCUITPY_DISPLAY_LIMIT; i++) {
- if (displays[i].display.base.type == NULL) {
+ } else {
+ // Not an active display.
continue;
}
+
+ // Reset the displayed group. Only the first will get the terminal but
+ // that's ok.
displayio_display_obj_t* display = &displays[i].display;
display->auto_brightness = true;
common_hal_displayio_display_show(display, &circuitpython_splash);
diff --git a/supervisor/shared/display.c b/supervisor/shared/display.c
index 6a39cbe8e..fd51e2c07 100644
--- a/supervisor/shared/display.c
+++ b/supervisor/shared/display.c
@@ -229,5 +229,6 @@ displayio_group_t circuitpython_splash = {
.size = 2,
.max_size = 2,
.children = splash_children,
- .item_removed = false
+ .item_removed = false,
+ .in_group = false
};