A variety of displayio improvements

This changes a number of things in displayio:
* Introduces BuiltinFont and Glyph so the built in font can be used by libraries. For boards with
  a font it is available as board.TERMINAL_FONT. Fixes #1172
* Remove _load_row from Bitmap in favor of bitmap[] access. Index can be x/y tuple or overall index. Fixes #1191
* Add width and height properties to Bitmap.
* Add insert and [] access to Group. Fixes #1518
* Add index param to pop on Group.
* Terminal no longer takes unicode character info. It takes a BuiltinFont instead.
* Fix Terminal's handling of [###D vt100 commands used when up arrowing into repl history.
* Add x and y positions to Group plus scale as well.
* Add bitmap accessor for BuiltinFont
This commit is contained in:
Scott Shawcroft 2019-02-06 12:13:17 -08:00
parent 1a6ad20943
commit c17f147be9
No known key found for this signature in database
GPG Key ID: FD0EDC4B6C53CA59
45 changed files with 1699 additions and 872 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-02-07 09:09-0600\n" "POT-Creation-Date: 2019-02-11 17:39-0800\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"
@ -1356,7 +1356,7 @@ msgstr ""
msgid "division by zero" msgid "division by zero"
msgstr "" msgstr ""
#: py/modmicropython.c:155 #: py/modmicropython.c:117
msgid "schedule stack full" msgid "schedule stack full"
msgstr "" msgstr ""
@ -2181,7 +2181,7 @@ msgid "buffer must be a bytes-like object"
msgstr "" msgstr ""
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "" msgstr ""
@ -2344,74 +2344,88 @@ msgstr ""
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "y should be an int" msgid "Cannot delete values"
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:194
msgid "row buffer must be a bytearray or array of type 'b' or 'B'" #: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:94 #: shared-bindings/displayio/Bitmap.c:156
msgid "row data must be a buffer" msgid "pixel coordinates out of bounds"
msgstr "" msgstr ""
#: shared-bindings/displayio/ColorConverter.c:72 #: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:74
msgid "%q should be an int"
msgstr ""
#: shared-bindings/displayio/ColorConverter.c:70
msgid "color should be an int" msgid "color should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "" msgstr ""
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:61 shared-bindings/displayio/Group.c:66
msgid "Group must have size at least 1" #: shared-bindings/displayio/Group.c:93
msgid "Group must have %q at least 1"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Shape.c:88
msgid "y should be an int"
msgstr ""
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
msgid "start_x should be an int" msgid "start_x should be an int"
msgstr "" msgstr ""
@ -2424,19 +2438,19 @@ msgstr ""
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "" msgstr ""
@ -2464,6 +2478,7 @@ msgstr ""
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "" msgstr ""
@ -2513,19 +2528,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction." "PWM frequency not writable when variable_frequency is False on construction."
msgstr "" msgstr ""
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "" msgstr ""
@ -2574,11 +2577,6 @@ msgstr ""
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "" msgstr ""
#: shared-bindings/terminalio/Terminal.c:68
#, fuzzy
msgid "unicode_characters must be a string"
msgstr "keyword harus berupa string"
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
msgstr "" msgstr ""
@ -2697,25 +2695,26 @@ msgstr ""
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 "" msgstr ""
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c:118
#, fuzzy
msgid "Read-only object"
msgstr "sistem file (filesystem) bersifat Read-only"
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
#, fuzzy #, fuzzy
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "Baudrate tidak didukung" msgstr "Baudrate tidak didukung"
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:48
msgid "Group full" msgid "Group full"
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:46
msgid "Layer must be a Group or TileGrid subclass."
msgstr ""
#: shared-module/displayio/Group.c:55 #: shared-module/displayio/Group.c:55
msgid "Group empty" msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49
@ -2848,6 +2847,13 @@ msgid ""
"exit safe mode.\n" "exit safe mode.\n"
msgstr "" msgstr ""
#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n"
#~ msgstr ""
#~ "Sepertinya inti kode CircuitPython kita crash dengan sangat keras. Ups!\n"
#~ msgid "Invalid UUID parameter"
#~ msgstr "Parameter UUID tidak valid"
#~ msgid "" #~ msgid ""
#~ "enough power for the whole circuit and press reset (after ejecting " #~ "enough power for the whole circuit and press reset (after ejecting "
#~ "CIRCUITPY).\n" #~ "CIRCUITPY).\n"
@ -2855,24 +2861,21 @@ msgstr ""
#~ "tegangan cukup untuk semua sirkuit dan tekan reset (setelah mencabut " #~ "tegangan cukup untuk semua sirkuit dan tekan reset (setelah mencabut "
#~ "CIRCUITPY).\n" #~ "CIRCUITPY).\n"
#, fuzzy
#~ msgid "unpack requires a buffer of %d bytes"
#~ msgstr "Gagal untuk megalokasikan buffer RX dari %d byte"
#~ msgid "Invalid UUID string length" #~ msgid "Invalid UUID string length"
#~ msgstr "Panjang string UUID tidak valid" #~ msgstr "Panjang string UUID tidak valid"
#~ msgid "Invalid UUID parameter"
#~ msgstr "Parameter UUID tidak valid"
#~ msgid "All PWM peripherals are in use"
#~ msgstr "Semua perangkat PWM sedang digunakan"
#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n"
#~ msgstr ""
#~ "Sepertinya inti kode CircuitPython kita crash dengan sangat keras. Ups!\n"
#~ msgid "" #~ msgid ""
#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" #~ "Please file an issue here with the contents of your CIRCUITPY drive:\n"
#~ msgstr "" #~ msgstr ""
#~ "Silahkan taruh masalah disini dengan isi dari CIRCUITPY drive: anda \n" #~ "Silahkan taruh masalah disini dengan isi dari CIRCUITPY drive: anda \n"
#, fuzzy
#~ msgid "unpack requires a buffer of %d bytes"
#~ msgstr "Gagal untuk megalokasikan buffer RX dari %d byte"
#~ msgid "All PWM peripherals are in use"
#~ msgstr "Semua perangkat PWM sedang digunakan"
#, fuzzy
#~ msgid "unicode_characters must be a string"
#~ msgstr "keyword harus berupa string"

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-02-07 09:09-0600\n" "POT-Creation-Date: 2019-02-11 17:39-0800\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"
@ -1323,7 +1323,7 @@ msgstr ""
msgid "division by zero" msgid "division by zero"
msgstr "" msgstr ""
#: py/modmicropython.c:155 #: py/modmicropython.c:117
msgid "schedule stack full" msgid "schedule stack full"
msgstr "" msgstr ""
@ -2148,7 +2148,7 @@ msgid "buffer must be a bytes-like object"
msgstr "" msgstr ""
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "" msgstr ""
@ -2306,74 +2306,88 @@ msgstr ""
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "y should be an int" msgid "Cannot delete values"
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:194
msgid "row buffer must be a bytearray or array of type 'b' or 'B'" #: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:94 #: shared-bindings/displayio/Bitmap.c:156
msgid "row data must be a buffer" msgid "pixel coordinates out of bounds"
msgstr "" msgstr ""
#: shared-bindings/displayio/ColorConverter.c:72 #: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:74
msgid "%q should be an int"
msgstr ""
#: shared-bindings/displayio/ColorConverter.c:70
msgid "color should be an int" msgid "color should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "" msgstr ""
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:61 shared-bindings/displayio/Group.c:66
msgid "Group must have size at least 1" #: shared-bindings/displayio/Group.c:93
msgid "Group must have %q at least 1"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Shape.c:88
msgid "y should be an int"
msgstr ""
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
msgid "start_x should be an int" msgid "start_x should be an int"
msgstr "" msgstr ""
@ -2386,19 +2400,19 @@ msgstr ""
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "" msgstr ""
@ -2426,6 +2440,7 @@ msgstr ""
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "" msgstr ""
@ -2475,19 +2490,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction." "PWM frequency not writable when variable_frequency is False on construction."
msgstr "" msgstr ""
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "" msgstr ""
@ -2536,10 +2539,6 @@ msgstr ""
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "" msgstr ""
#: shared-bindings/terminalio/Terminal.c:68
msgid "unicode_characters must be a string"
msgstr ""
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
msgstr "" msgstr ""
@ -2658,24 +2657,24 @@ msgstr ""
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 "" msgstr ""
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c:118
msgid "Read-only object"
msgstr ""
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:48
msgid "Group full" msgid "Group full"
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:46
msgid "Layer must be a Group or TileGrid subclass."
msgstr ""
#: shared-module/displayio/Group.c:55 #: shared-module/displayio/Group.c:55
msgid "Group empty" msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49

View File

@ -7,10 +7,10 @@ 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-02-07 01:10-0600\n" "POT-Creation-Date: 2019-02-11 17:39-0800\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: Sebastian Plamauer\n"
"Language-Team: Sebastian Plamauer, Pascal Deneaux\n" "Language-Team: \n"
"Language: en_US\n" "Language: en_US\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -69,11 +69,11 @@ msgstr "eine nicht-hex zahl wurde gefunden"
#: extmod/modubinascii.c:169 #: extmod/modubinascii.c:169
msgid "incorrect padding" msgid "incorrect padding"
msgstr "padding ist inkorrekt" msgstr "falsches padding"
#: extmod/moductypes.c:122 #: extmod/moductypes.c:122
msgid "syntax error in uctypes descriptor" msgid "syntax error in uctypes descriptor"
msgstr "Syntaxfehler in uctypes Deskriptor" msgstr "Syntaxfehler in uctypes Definition"
#: extmod/moductypes.c:219 #: extmod/moductypes.c:219
msgid "Cannot unambiguously get sizeof scalar" msgid "Cannot unambiguously get sizeof scalar"
@ -105,7 +105,7 @@ msgstr "Syntaxfehler in JSON"
#: extmod/modure.c:161 #: extmod/modure.c:161
msgid "Splitting with sub-captures" msgid "Splitting with sub-captures"
msgstr "Splitting with sub-captures" msgstr "Teilen mit unter-captures"
#: extmod/modure.c:207 #: extmod/modure.c:207
msgid "Error in regex" msgid "Error in regex"
@ -161,7 +161,7 @@ msgid ""
"disable.\n" "disable.\n"
msgstr "" msgstr ""
"Automatisches Neuladen ist aktiv. Speichere Dateien über USB um sie " "Automatisches Neuladen ist aktiv. Speichere Dateien über USB um sie "
"auszuführen oder verbinde dich mit der REPL zum Deaktivieren.\n" "auszuführen oder verbinde dich mit der REPL zum deaktivieren.\n"
#: main.c:168 #: main.c:168
msgid "Running in safe mode! Auto-reload is off.\n" msgid "Running in safe mode! Auto-reload is off.\n"
@ -185,12 +185,12 @@ msgid ""
"\n" "\n"
"Code done running. Waiting for reload.\n" "Code done running. Waiting for reload.\n"
msgstr "" msgstr ""
"\n"
"Der Code wurde ausgeführt. Warte auf reload.\n"
#: main.c:254 #: main.c:254
msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgid "Press any key to enter the REPL. Use CTRL-D to reload."
msgstr "Drücke eine Taste um dich mit der REPL zu verbinden. Drücke Strg-D zum neu laden" msgstr ""
"Drücke eine Taste um dich mit der REPL zu verbinden. Drücke Strg-D zum neu "
"laden"
#: main.c:419 #: main.c:419
msgid "soft reboot\n" msgid "soft reboot\n"
@ -492,7 +492,9 @@ msgstr "Minimale PWM Frequenz ist %dHz"
#: ports/esp8266/common-hal/pulseio/PWMOut.c:68 #: ports/esp8266/common-hal/pulseio/PWMOut.c:68
#, c-format #, c-format
msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." msgid "Multiple PWM frequencies not supported. PWM already set to %dhz."
msgstr "Mehrere PWM Frequenzen werden nicht unterstützt. PWM wurde bereits auf %dHz gesetzt." msgstr ""
"Mehrere PWM Frequenzen werden nicht unterstützt. PWM wurde bereits auf %dHz "
"gesetzt."
#: ports/esp8266/common-hal/pulseio/PWMOut.c:77 ports/esp8266/machine_pwm.c:70 #: ports/esp8266/common-hal/pulseio/PWMOut.c:77 ports/esp8266/machine_pwm.c:70
#, c-format #, c-format
@ -509,7 +511,8 @@ msgstr "Dateisystem kann nicht wieder gemounted werden."
#: ports/esp8266/common-hal/storage/__init__.c:38 #: ports/esp8266/common-hal/storage/__init__.c:38
msgid "Use esptool to erase flash and re-upload Python instead" msgid "Use esptool to erase flash and re-upload Python instead"
msgstr "Benutze das esptool um den flash zu löschen und Python erneut hochzuladen" msgstr ""
"Benutze esptool um den flash zu löschen und stattdessen Python hochzuladen"
#: ports/esp8266/esp_mphal.c:154 #: ports/esp8266/esp_mphal.c:154
msgid "C-level assert" msgid "C-level assert"
@ -565,7 +568,8 @@ msgstr "len muss ein vielfaches von 4 sein"
#: ports/esp8266/modesp.c:274 #: ports/esp8266/modesp.c:274
#, c-format #, c-format
msgid "memory allocation failed, allocating %u bytes for native code" msgid "memory allocation failed, allocating %u bytes for native code"
msgstr "Speicherallozierung fehlgeschlagen, alloziere %u Bytes für nativen Code" msgstr ""
"Speicherallozierung fehlgeschlagen, alloziere %u Bytes für nativen Code"
#: ports/esp8266/modesp.c:317 #: ports/esp8266/modesp.c:317
msgid "flash location must be below 1MByte" msgid "flash location must be below 1MByte"
@ -840,7 +844,7 @@ msgstr "Ungültige Puffergröße"
#: ports/nrf/common-hal/busio/UART.c:99 #: ports/nrf/common-hal/busio/UART.c:99
msgid "Odd parity is not supported" msgid "Odd parity is not supported"
msgstr "Eine ungerade Parität wird nicht unterstützt" msgstr "Ungerade Parität wird nicht unterstützt"
#: ports/nrf/common-hal/busio/UART.c:335 ports/nrf/common-hal/busio/UART.c:339 #: ports/nrf/common-hal/busio/UART.c:335 ports/nrf/common-hal/busio/UART.c:339
#: ports/nrf/common-hal/busio/UART.c:344 ports/nrf/common-hal/busio/UART.c:349 #: ports/nrf/common-hal/busio/UART.c:344 ports/nrf/common-hal/busio/UART.c:349
@ -868,12 +872,12 @@ msgstr "ffi_prep_closure_loc"
#: ports/unix/modffi.c:413 #: ports/unix/modffi.c:413
msgid "Don't know how to pass object to native function" msgid "Don't know how to pass object to native function"
msgstr "Ich weiß nicht, wie man das Objekt an die native Funktion übergeben kann" msgstr ""
#: ports/unix/modusocket.c:474 #: ports/unix/modusocket.c:474
#, c-format #, c-format
msgid "[addrinfo error %d]" msgid "[addrinfo error %d]"
msgstr "[addrinfo error %d]" msgstr ""
#: py/argcheck.c:53 #: py/argcheck.c:53
msgid "function does not take keyword arguments" msgid "function does not take keyword arguments"
@ -882,7 +886,8 @@ msgstr "Funktion akzeptiert keine Keyword-Argumente"
#: py/argcheck.c:63 py/bc.c:85 py/objnamedtuple.c:108 #: py/argcheck.c:63 py/bc.c:85 py/objnamedtuple.c:108
#, c-format #, c-format
msgid "function takes %d positional arguments but %d were given" msgid "function takes %d positional arguments but %d were given"
msgstr "Funktion nimmt %d Argumente ohne Keyword an, aber es wurden %d angegeben" msgstr ""
"Funktion nimmt %d Argumente ohne Keyword an, aber es wurden %d angegeben"
#: py/argcheck.c:73 #: py/argcheck.c:73
#, c-format #, c-format
@ -912,7 +917,8 @@ msgstr "Anzahl/Type der Argumente passen nicht"
#: py/argcheck.c:156 #: py/argcheck.c:156
msgid "keyword argument(s) not yet implemented - use normal args instead" msgid "keyword argument(s) not yet implemented - use normal args instead"
msgstr "Keyword-Argument(e) noch nicht implementiert - verwenden Sie stattdessen " msgstr ""
"Keyword-Argument(e) noch nicht implementiert - verwenden Sie stattdessen "
"normale Argumente" "normale Argumente"
#: py/bc.c:88 py/objnamedtuple.c:112 #: py/bc.c:88 py/objnamedtuple.c:112
@ -950,11 +956,11 @@ msgstr "Funktion vermisst Keyword-only-Argument"
#: py/binary.c:112 #: py/binary.c:112
msgid "bad typecode" msgid "bad typecode"
msgstr "schlechter typecode" msgstr ""
#: py/builtinevex.c:99 #: py/builtinevex.c:99
msgid "bad compile mode" msgid "bad compile mode"
msgstr "schlechter compile mode" msgstr ""
#: py/builtinhelp.c:137 #: py/builtinhelp.c:137
msgid "Plus any modules on the filesystem\n" msgid "Plus any modules on the filesystem\n"
@ -1062,15 +1068,15 @@ msgstr "mehrere **x sind nicht gestattet"
#: py/compile.c:2271 #: py/compile.c:2271
msgid "LHS of keyword arg must be an id" msgid "LHS of keyword arg must be an id"
msgstr "LHS of keyword arg must be an id" msgstr ""
#: py/compile.c:2287 #: py/compile.c:2287
msgid "non-keyword arg after */**" msgid "non-keyword arg after */**"
msgstr "non-keyword arg after */**" msgstr ""
#: py/compile.c:2291 #: py/compile.c:2291
msgid "non-keyword arg after keyword arg" msgid "non-keyword arg after keyword arg"
msgstr "non-keyword arg after keyword arg" msgstr ""
#: py/compile.c:2463 py/compile.c:2473 py/compile.c:2712 py/compile.c:2742 #: py/compile.c:2463 py/compile.c:2473 py/compile.c:2712 py/compile.c:2742
#: py/parse.c:1176 #: py/parse.c:1176
@ -1148,56 +1154,56 @@ msgstr ""
#: py/emitinlinethumb.c:188 py/emitinlinethumb.c:230 #: py/emitinlinethumb.c:188 py/emitinlinethumb.c:230
#, c-format #, c-format
msgid "'%s' expects at most r%d" msgid "'%s' expects at most r%d"
msgstr "'%s' erwartet höchstens r%d" msgstr ""
#: py/emitinlinethumb.c:197 py/emitinlinextensa.c:162 #: py/emitinlinethumb.c:197 py/emitinlinextensa.c:162
#, c-format #, c-format
msgid "'%s' expects a register" msgid "'%s' expects a register"
msgstr "'%s' erwartet ein Register" msgstr ""
#: py/emitinlinethumb.c:211 #: py/emitinlinethumb.c:211
#, c-format #, c-format
msgid "'%s' expects a special register" msgid "'%s' expects a special register"
msgstr "'%s' erwartet ein Spezialregister" msgstr ""
#: py/emitinlinethumb.c:239 #: py/emitinlinethumb.c:239
#, c-format #, c-format
msgid "'%s' expects an FPU register" msgid "'%s' expects an FPU register"
msgstr "'%s' erwartet ein FPU-Register" msgstr ""
#: py/emitinlinethumb.c:292 #: py/emitinlinethumb.c:292
#, c-format #, c-format
msgid "'%s' expects {r0, r1, ...}" msgid "'%s' expects {r0, r1, ...}"
msgstr "'%s' erwartet {r0, r1, ...}" msgstr ""
#: py/emitinlinethumb.c:299 py/emitinlinextensa.c:169 #: py/emitinlinethumb.c:299 py/emitinlinextensa.c:169
#, c-format #, c-format
msgid "'%s' expects an integer" msgid "'%s' expects an integer"
msgstr "'%s' erwartet ein Integer" msgstr ""
#: py/emitinlinethumb.c:304 #: py/emitinlinethumb.c:304
#, c-format #, c-format
msgid "'%s' integer 0x%x does not fit in mask 0x%x" msgid "'%s' integer 0x%x does not fit in mask 0x%x"
msgstr "'%s' Integer 0x%x passt nicht in Maske 0x%x" msgstr ""
#: py/emitinlinethumb.c:328 #: py/emitinlinethumb.c:328
#, c-format #, c-format
msgid "'%s' expects an address of the form [a, b]" msgid "'%s' expects an address of the form [a, b]"
msgstr "'%s' erwartet eine Adresse in der Form [a, b]" msgstr ""
#: py/emitinlinethumb.c:334 py/emitinlinextensa.c:182 #: py/emitinlinethumb.c:334 py/emitinlinextensa.c:182
#, c-format #, c-format
msgid "'%s' expects a label" msgid "'%s' expects a label"
msgstr "'%s' erwartet ein Label" msgstr ""
#: py/emitinlinethumb.c:345 py/emitinlinextensa.c:193 #: py/emitinlinethumb.c:345 py/emitinlinextensa.c:193
msgid "label '%q' not defined" msgid "label '%q' not defined"
msgstr "Label '%q' nicht definiert" msgstr ""
#: py/emitinlinethumb.c:806 #: py/emitinlinethumb.c:806
#, c-format #, c-format
msgid "unsupported Thumb instruction '%s' with %d arguments" msgid "unsupported Thumb instruction '%s' with %d arguments"
msgstr "nicht unterstützter Thumb-Befehl '%s' mit %d Argumenten" msgstr ""
#: py/emitinlinethumb.c:810 #: py/emitinlinethumb.c:810
msgid "branch not in range" msgid "branch not in range"
@ -1205,11 +1211,11 @@ msgstr "Zweig ist außerhalb der Reichweite"
#: py/emitinlinextensa.c:86 #: py/emitinlinextensa.c:86
msgid "can only have up to 4 parameters to Xtensa assembly" msgid "can only have up to 4 parameters to Xtensa assembly"
msgstr "kann nur bis zu 4 Parameter für die Xtensa assembly haben" msgstr ""
#: py/emitinlinextensa.c:91 py/emitinlinextensa.c:96 #: py/emitinlinextensa.c:91 py/emitinlinextensa.c:96
msgid "parameters must be registers in sequence a2 to a5" msgid "parameters must be registers in sequence a2 to a5"
msgstr "Die Parameter müssen Register der Reihenfolge a2 bis a5 sein" msgstr ""
#: py/emitinlinextensa.c:174 #: py/emitinlinextensa.c:174
#, c-format #, c-format
@ -1263,19 +1269,19 @@ msgstr ""
#: py/emitnative.c:1540 #: py/emitnative.c:1540
msgid "can't implicitly convert '%q' to 'bool'" msgid "can't implicitly convert '%q' to 'bool'"
msgstr "Kann '%q' nicht implizit nach 'bool' konvertieren" msgstr ""
#: py/emitnative.c:1774 #: py/emitnative.c:1774
msgid "unary op %q not implemented" msgid "unary op %q not implemented"
msgstr "Der unäre Operator %q ist nicht implementiert" msgstr ""
#: py/emitnative.c:1930 #: py/emitnative.c:1930
msgid "binary op %q not implemented" msgid "binary op %q not implemented"
msgstr "Der binäre Operator %q ist nicht implementiert" msgstr ""
#: py/emitnative.c:1951 #: py/emitnative.c:1951
msgid "can't do binary op between '%q' and '%q'" msgid "can't do binary op between '%q' and '%q'"
msgstr "Eine binäre Operation zwischen '%q' und '%q' ist nicht möglich" msgstr ""
#: py/emitnative.c:2126 #: py/emitnative.c:2126
msgid "casting" msgid "casting"
@ -1299,51 +1305,51 @@ msgstr ""
#: py/modbuiltins.c:162 #: py/modbuiltins.c:162
msgid "chr() arg not in range(0x110000)" msgid "chr() arg not in range(0x110000)"
msgstr "chr() arg ist nicht in range(0x110000)" msgstr ""
#: py/modbuiltins.c:171 #: py/modbuiltins.c:171
msgid "chr() arg not in range(256)" msgid "chr() arg not in range(256)"
msgstr "chr() arg ist nicht in range(256)" msgstr ""
#: py/modbuiltins.c:285 #: py/modbuiltins.c:285
msgid "arg is an empty sequence" msgid "arg is an empty sequence"
msgstr "arg ist eine leere Sequenz" msgstr ""
#: py/modbuiltins.c:350 #: py/modbuiltins.c:350
msgid "ord expects a character" msgid "ord expects a character"
msgstr "ord erwartet ein Zeichen" msgstr ""
#: py/modbuiltins.c:353 #: py/modbuiltins.c:353
#, c-format #, c-format
msgid "ord() expected a character, but string of length %d found" msgid "ord() expected a character, but string of length %d found"
msgstr "ord() erwartet ein Zeichen aber es wurde eine Zeichenfolge mit Länge %d gefunden" msgstr ""
#: py/modbuiltins.c:363 #: py/modbuiltins.c:363
msgid "3-arg pow() not supported" msgid "3-arg pow() not supported"
msgstr "3-arg pow() wird nicht unterstützt" msgstr ""
#: py/modbuiltins.c:517 #: py/modbuiltins.c:517
msgid "must use keyword argument for key function" msgid "must use keyword argument for key function"
msgstr "muss Schlüsselwortargument für key function verwenden" msgstr ""
#: py/modmath.c:41 shared-bindings/math/__init__.c:53 #: py/modmath.c:41 shared-bindings/math/__init__.c:53
msgid "math domain error" msgid "math domain error"
msgstr "math domain error" msgstr ""
#: py/modmath.c:196 py/objfloat.c:270 py/objint_longlong.c:222 #: py/modmath.c:196 py/objfloat.c:270 py/objint_longlong.c:222
#: py/objint_mpz.c:230 py/runtime.c:619 shared-bindings/math/__init__.c:346 #: py/objint_mpz.c:230 py/runtime.c:619 shared-bindings/math/__init__.c:346
msgid "division by zero" msgid "division by zero"
msgstr "Division durch Null" msgstr ""
#: py/modmicropython.c:155 #: py/modmicropython.c:117
msgid "schedule stack full" msgid "schedule stack full"
msgstr "Der schedule stack ist voll" msgstr ""
#: py/modstruct.c:148 py/modstruct.c:156 py/modstruct.c:244 py/modstruct.c:254 #: py/modstruct.c:148 py/modstruct.c:156 py/modstruct.c:244 py/modstruct.c:254
#: shared-bindings/struct/__init__.c:102 shared-bindings/struct/__init__.c:161 #: shared-bindings/struct/__init__.c:102 shared-bindings/struct/__init__.c:161
#: shared-module/struct/__init__.c:128 shared-module/struct/__init__.c:183 #: shared-module/struct/__init__.c:128 shared-module/struct/__init__.c:183
msgid "buffer too small" msgid "buffer too small"
msgstr "Der Puffer ist zu klein" msgstr "Puffer zu klein"
#: py/modthread.c:240 #: py/modthread.c:240
msgid "expecting a dict for keyword args" msgid "expecting a dict for keyword args"
@ -1367,7 +1373,7 @@ msgstr "Datei existiert"
#: py/moduerrno.c:152 #: py/moduerrno.c:152
msgid "Unsupported operation" msgid "Unsupported operation"
msgstr "Nicht unterstützte Operation" msgstr "Nicht unterstützter Vorgang"
#: py/moduerrno.c:153 #: py/moduerrno.c:153
msgid "Invalid argument" msgid "Invalid argument"
@ -1375,7 +1381,7 @@ msgstr "Ungültiges Argument"
#: py/moduerrno.c:154 #: py/moduerrno.c:154
msgid "No space left on device" msgid "No space left on device"
msgstr "Kein Speicherplatz auf Gerät" msgstr ""
#: py/obj.c:92 #: py/obj.c:92
msgid "Traceback (most recent call last):\n" msgid "Traceback (most recent call last):\n"
@ -1391,7 +1397,7 @@ msgstr " Datei \"%q\""
#: py/obj.c:102 #: py/obj.c:102
msgid ", in %q\n" msgid ", in %q\n"
msgstr ", in %q\n" msgstr ""
#: py/obj.c:259 #: py/obj.c:259
msgid "can't convert to int" msgid "can't convert to int"
@ -1553,24 +1559,24 @@ msgstr ""
#: py/objint.c:144 #: py/objint.c:144
msgid "can't convert inf to int" msgid "can't convert inf to int"
msgstr "kann inf nicht nach int konvertieren" msgstr ""
#: py/objint.c:146 #: py/objint.c:146
msgid "can't convert NaN to int" msgid "can't convert NaN to int"
msgstr "kann NaN nicht nach int konvertieren" msgstr ""
#: py/objint.c:163 #: py/objint.c:163
msgid "float too big" msgid "float too big"
msgstr "float zu groß" msgstr ""
#: py/objint.c:328 #: py/objint.c:328
msgid "long int not supported in this build" msgid "long int not supported in this build"
msgstr "long int wird in diesem Build nicht unterstützt" msgstr ""
#: py/objint.c:334 py/objint.c:340 py/objint.c:350 py/objint.c:358 #: py/objint.c:334 py/objint.c:340 py/objint.c:350 py/objint.c:358
#: py/sequence.c:41 #: py/sequence.c:41
msgid "small int overflow" msgid "small int overflow"
msgstr "small int Überlauf" msgstr ""
#: py/objint_longlong.c:189 py/objint_mpz.c:283 py/runtime.c:486 #: py/objint_longlong.c:189 py/objint_mpz.c:283 py/runtime.c:486
msgid "negative power with no float support" msgid "negative power with no float support"
@ -1973,16 +1979,16 @@ msgstr "'%s' Objekt nicht iterierbar"
#: py/runtime.c:1260 py/runtime.c:1296 #: py/runtime.c:1260 py/runtime.c:1296
msgid "object not an iterator" msgid "object not an iterator"
msgstr "Objekt ist kein Iterator" msgstr ""
#: py/runtime.c:1262 py/runtime.c:1298 #: py/runtime.c:1262 py/runtime.c:1298
#, c-format #, c-format
msgid "'%s' object is not an iterator" msgid "'%s' object is not an iterator"
msgstr "'%s' Objekt ist kein Iterator" msgstr ""
#: py/runtime.c:1401 #: py/runtime.c:1401
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "Exceptions müssen von BaseException abgeleitet sein" msgstr ""
#: py/runtime.c:1430 #: py/runtime.c:1430
msgid "cannot import name %q" msgid "cannot import name %q"
@ -2003,23 +2009,23 @@ msgstr "maximale Rekursionstiefe überschritten"
#: py/sequence.c:273 #: py/sequence.c:273
msgid "object not in sequence" msgid "object not in sequence"
msgstr "Objekt ist nicht in sequence" msgstr ""
#: py/stream.c:96 #: py/stream.c:96
msgid "stream operation not supported" msgid "stream operation not supported"
msgstr "stream operation ist nicht unterstützt" msgstr ""
#: py/stream.c:254 #: py/stream.c:254
msgid "string not supported; use bytes or bytearray" msgid "string not supported; use bytes or bytearray"
msgstr "Zeichenfolgen werden nicht unterstützt; Verwenden Sie bytes oder bytearray" msgstr ""
#: py/stream.c:289 #: py/stream.c:289
msgid "length argument not allowed for this type" msgid "length argument not allowed for this type"
msgstr "Für diesen Typ ist length nicht zulässig" msgstr ""
#: py/vm.c:255 #: py/vm.c:255
msgid "local variable referenced before assignment" msgid "local variable referenced before assignment"
msgstr "Es wurde versucht auf eine Variable zuzugreifen, die es (noch) nicht gibt. Variablen immer zuerst Zuweisen!" msgstr ""
#: py/vm.c:1142 #: py/vm.c:1142
msgid "no active exception to reraise" msgid "no active exception to reraise"
@ -2159,16 +2165,16 @@ msgstr "Es müssen 8 oder 16 bits_per_sample sein"
msgid "" msgid ""
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or " "sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
"'B'" "'B'"
msgstr "sample_source buffer muss ein Bytearray oder ein Array vom Typ 'h', 'H', 'b' oder 'B' sein" msgstr ""
#: shared-bindings/audioio/RawSample.c:101 #: shared-bindings/audioio/RawSample.c:101
msgid "buffer must be a bytes-like object" msgid "buffer must be a bytes-like object"
msgstr "Puffer muss ein bytes-artiges Objekt sein" msgstr ""
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "Die Datei muss eine im Byte-Modus geöffnete Datei sein" msgstr ""
#: shared-bindings/bitbangio/I2C.c:109 shared-bindings/bitbangio/SPI.c:119 #: shared-bindings/bitbangio/I2C.c:109 shared-bindings/bitbangio/SPI.c:119
#: shared-bindings/busio/SPI.c:130 #: shared-bindings/busio/SPI.c:130
@ -2268,15 +2274,15 @@ msgstr ""
#: shared-bindings/bleio/UUID.c:66 #: shared-bindings/bleio/UUID.c:66
msgid "UUID integer value not in range 0 to 0xffff" msgid "UUID integer value not in range 0 to 0xffff"
msgstr "UUID-Integer nicht im Bereich 0 bis 0xffff" msgstr ""
#: shared-bindings/bleio/UUID.c:91 #: shared-bindings/bleio/UUID.c:91
msgid "UUID string not 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'" msgid "UUID string not 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'"
msgstr "UUID Zeichenfolge ist nicht 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'" msgstr ""
#: shared-bindings/bleio/UUID.c:103 #: shared-bindings/bleio/UUID.c:103
msgid "UUID value is not str, int or byte buffer" msgid "UUID value is not str, int or byte buffer"
msgstr "Der UUID-Wert ist kein str-, int- oder Byte-Puffer" msgstr ""
#: shared-bindings/bleio/UUID.c:107 #: shared-bindings/bleio/UUID.c:107
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
@ -2284,7 +2290,7 @@ msgstr "Der Puffer muss 16 Bytes lang sein"
#: shared-bindings/bleio/UUID.c:151 #: shared-bindings/bleio/UUID.c:151
msgid "not a 128-bit UUID" msgid "not a 128-bit UUID"
msgstr "keine 128-bit UUID" msgstr ""
#: shared-bindings/busio/I2C.c:117 #: shared-bindings/busio/I2C.c:117
msgid "Function requires lock." msgid "Function requires lock."
@ -2292,11 +2298,11 @@ msgstr "Die Funktion erwartet, dass der 'lock'-Befehl zuvor ausgeführt wurde"
#: shared-bindings/busio/UART.c:103 #: shared-bindings/busio/UART.c:103
msgid "bits must be 7, 8 or 9" msgid "bits must be 7, 8 or 9"
msgstr "bits muss 7, 8 oder 9 sein" msgstr ""
#: shared-bindings/busio/UART.c:115 #: shared-bindings/busio/UART.c:115
msgid "stop must be 1 or 2" msgid "stop must be 1 or 2"
msgstr "stop muss 1 oder 2 sein" msgstr ""
#: shared-bindings/busio/UART.c:120 #: shared-bindings/busio/UART.c:120
msgid "timeout >100 (units are now seconds, not msecs)" msgid "timeout >100 (units are now seconds, not msecs)"
@ -2324,74 +2330,89 @@ msgstr ""
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "y should be an int" msgid "Cannot delete values"
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:194
msgid "row buffer must be a bytearray or array of type 'b' or 'B'" #: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:94 #: shared-bindings/displayio/Bitmap.c:156
msgid "row data must be a buffer" msgid "pixel coordinates out of bounds"
msgstr "" msgstr ""
#: shared-bindings/displayio/ColorConverter.c:72 #: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:74
msgid "%q should be an int"
msgstr ""
#: shared-bindings/displayio/ColorConverter.c:70
msgid "color should be an int" msgid "color should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "" msgstr ""
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:61 shared-bindings/displayio/Group.c:66
msgid "Group must have size at least 1" #: shared-bindings/displayio/Group.c:93
msgstr "" #, fuzzy
msgid "Group must have %q at least 1"
msgstr "Der Puffer muss eine Mindestenslänge von 1 haben"
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Shape.c:88
msgid "y should be an int"
msgstr ""
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
msgid "start_x should be an int" msgid "start_x should be an int"
msgstr "" msgstr ""
@ -2404,25 +2425,25 @@ msgstr ""
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "Nicht unterstützter Bitmap-Typ" msgstr "Nicht unterstützter Bitmap-Typ"
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "" msgstr ""
#: shared-bindings/gamepad/GamePad.c:100 #: shared-bindings/gamepad/GamePad.c:100
msgid "too many arguments" msgid "too many arguments"
msgstr "zu viele Argumente" msgstr ""
#: shared-bindings/gamepad/GamePad.c:104 #: shared-bindings/gamepad/GamePad.c:104
msgid "expected a DigitalInOut" msgid "expected a DigitalInOut"
@ -2430,84 +2451,73 @@ msgstr ""
#: shared-bindings/i2cslave/I2CSlave.c:95 #: shared-bindings/i2cslave/I2CSlave.c:95
msgid "can't convert address to int" msgid "can't convert address to int"
msgstr "kann Adresse nicht in int konvertieren" msgstr ""
#: shared-bindings/i2cslave/I2CSlave.c:98 #: shared-bindings/i2cslave/I2CSlave.c:98
msgid "address out of bounds" msgid "address out of bounds"
msgstr "Adresse außerhalb der Grenzen" msgstr ""
#: shared-bindings/i2cslave/I2CSlave.c:104 #: shared-bindings/i2cslave/I2CSlave.c:104
msgid "addresses is empty" msgid "addresses is empty"
msgstr "adresses ist leer" msgstr ""
#: shared-bindings/microcontroller/Pin.c:89 #: shared-bindings/microcontroller/Pin.c:89
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "Erwartet ein(e) %q" msgstr ""
#: shared-bindings/microcontroller/Pin.c:100 #: shared-bindings/microcontroller/Pin.c:100
msgid "%q in use" msgid "%q in use"
msgstr "%q in Benutzung" msgstr ""
#: shared-bindings/microcontroller/__init__.c:126 #: shared-bindings/microcontroller/__init__.c:126
msgid "Invalid run mode." msgid "Invalid run mode."
msgstr "Ungültiger Ausführungsmodus" msgstr ""
#: shared-bindings/multiterminal/__init__.c:68 #: shared-bindings/multiterminal/__init__.c:68
msgid "Stream missing readinto() or write() method." msgid "Stream missing readinto() or write() method."
msgstr "Stream fehlt readinto() oder write() Methode." msgstr ""
#: shared-bindings/nvm/ByteArray.c:99 #: shared-bindings/nvm/ByteArray.c:99
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "Slice und Wert (value) haben unterschiedliche Längen." msgstr ""
#: shared-bindings/nvm/ByteArray.c:104 #: shared-bindings/nvm/ByteArray.c:104
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "Array-Werte sollten aus Einzelbytes bestehen." msgstr ""
#: shared-bindings/nvm/ByteArray.c:111 shared-bindings/nvm/ByteArray.c:141 #: shared-bindings/nvm/ByteArray.c:111 shared-bindings/nvm/ByteArray.c:141
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "Schreiben in nvm nicht möglich." msgstr ""
#: shared-bindings/nvm/ByteArray.c:137 #: shared-bindings/nvm/ByteArray.c:137
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "Ein Bytes kann nur Werte zwischen 0 und 255 annehmen." msgstr ""
#: shared-bindings/os/__init__.c:200 #: shared-bindings/os/__init__.c:200
msgid "No hardware random available" msgid "No hardware random available"
msgstr "Kein hardware random verfügbar" msgstr ""
#: shared-bindings/pulseio/PWMOut.c:117 #: shared-bindings/pulseio/PWMOut.c:117
msgid "All timers for this pin are in use" msgid "All timers for this pin are in use"
msgstr "Alle timer für diesen Pin werden bereits benutzt" msgstr "Alle timer für diesen Pin werden benutzt"
#: shared-bindings/pulseio/PWMOut.c:171 #: shared-bindings/pulseio/PWMOut.c:171
msgid "" msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)" "PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
msgstr "PWM duty_cycle muss zwischen 0 und 65535 (16 Bit Auflösung) liegen" msgstr ""
#: shared-bindings/pulseio/PWMOut.c:202 #: shared-bindings/pulseio/PWMOut.c:202
msgid "" msgid ""
"PWM frequency not writable when variable_frequency is False on construction." "PWM frequency not writable when variable_frequency is False on construction."
msgstr "Die PWM-Frequenz ist nicht schreibbar wenn variable_Frequenz = False." msgstr ""
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr "Kann Werte nicht löschen"
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "Slices werden nicht unterstützt"
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr "index muss ein int sein"
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "Nur lesen möglich, da Schreibgeschützt" msgstr ""
#: shared-bindings/pulseio/PulseOut.c:135 #: shared-bindings/pulseio/PulseOut.c:135
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
@ -2515,28 +2525,28 @@ msgstr ""
#: shared-bindings/random/__init__.c:92 shared-bindings/random/__init__.c:100 #: shared-bindings/random/__init__.c:92 shared-bindings/random/__init__.c:100
msgid "stop not reachable from start" msgid "stop not reachable from start"
msgstr "stop ist von start aus nicht erreichbar" msgstr ""
#: shared-bindings/random/__init__.c:111 #: shared-bindings/random/__init__.c:111
msgid "step must be non-zero" msgid "step must be non-zero"
msgstr "Schritt (step) darf nicht Null sein" msgstr ""
#: shared-bindings/random/__init__.c:114 #: shared-bindings/random/__init__.c:114
msgid "invalid step" msgid "invalid step"
msgstr "ungültiger Schritt (step)" msgstr ""
#: shared-bindings/random/__init__.c:146 #: shared-bindings/random/__init__.c:146
msgid "empty sequence" msgid "empty sequence"
msgstr "leere Sequenz" msgstr ""
#: shared-bindings/rtc/RTC.c:40 shared-bindings/rtc/RTC.c:44 #: shared-bindings/rtc/RTC.c:40 shared-bindings/rtc/RTC.c:44
#: shared-bindings/time/__init__.c:190 #: shared-bindings/time/__init__.c:190
msgid "RTC is not supported on this board" msgid "RTC is not supported on this board"
msgstr "Eine RTC wird auf diesem Board nicht unterstützt" msgstr ""
#: shared-bindings/rtc/RTC.c:52 #: shared-bindings/rtc/RTC.c:52
msgid "RTC calibration is not supported on this board" msgid "RTC calibration is not supported on this board"
msgstr "Die RTC-Kalibrierung wird auf diesem Board nicht unterstützt" msgstr ""
#: shared-bindings/socket/__init__.c:516 shared-module/network/__init__.c:81 #: shared-bindings/socket/__init__.c:516 shared-module/network/__init__.c:81
msgid "no available NIC" msgid "no available NIC"
@ -2544,20 +2554,15 @@ msgstr ""
#: shared-bindings/storage/__init__.c:77 #: shared-bindings/storage/__init__.c:77
msgid "filesystem must provide mount method" msgid "filesystem must provide mount method"
msgstr "Das Dateisystem muss eine Mount-Methode bereitstellen" msgstr ""
#: shared-bindings/supervisor/__init__.c:93 #: shared-bindings/supervisor/__init__.c:93
msgid "Brightness must be between 0 and 255" msgid "Brightness must be between 0 and 255"
msgstr "Die Helligkeit muss zwischen 0 und 255 liegen" msgstr ""
#: shared-bindings/supervisor/__init__.c:119 #: shared-bindings/supervisor/__init__.c:119
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "Die Stackgröße sollte mindestens 256 sein" msgstr ""
#: shared-bindings/terminalio/Terminal.c:68
#, fuzzy
msgid "unicode_characters must be a string"
msgstr "unicode_characters muss eine Zeichenfolge sein"
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
@ -2585,17 +2590,17 @@ msgstr ""
#: shared-bindings/touchio/TouchIn.c:173 #: shared-bindings/touchio/TouchIn.c:173
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 ""
#: shared-bindings/util.c:38 #: shared-bindings/util.c:38
msgid "" msgid ""
"Object has been deinitialized and can no longer be used. Create a new object." "Object has been deinitialized and can no longer be used. Create a new object."
msgstr "Objekt wurde deinitialisiert und kann nicht mehr verwendet werden. Erstelle ein neues Objekt." msgstr ""
#: shared-module/_pixelbuf/PixelBuf.c:69 #: shared-module/_pixelbuf/PixelBuf.c:69
#, c-format #, c-format
msgid "Expected tuple of length %d, got %d" msgid "Expected tuple of length %d, got %d"
msgstr "Habe ein Tupel der Länge %d erwartet aber %d erhalten" msgstr ""
#: shared-module/audioio/Mixer.c:47 shared-module/audioio/WaveFile.c:117 #: shared-module/audioio/Mixer.c:47 shared-module/audioio/WaveFile.c:117
msgid "Couldn't allocate first buffer" msgid "Couldn't allocate first buffer"
@ -2677,24 +2682,25 @@ msgstr ""
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 "" msgstr ""
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c:118
#, fuzzy
msgid "Read-only object"
msgstr "Schreibgeschützte Dateisystem"
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "Nicht unterstützter display bus type" msgstr "Nicht unterstützter display bus type"
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:48
msgid "Group full" msgid "Group full"
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:46
msgid "Layer must be a Group or TileGrid subclass."
msgstr ""
#: shared-module/displayio/Group.c:55 #: shared-module/displayio/Group.c:55
msgid "Group empty" msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49
@ -2738,12 +2744,12 @@ msgstr ""
#: shared-module/struct/__init__.c:179 #: shared-module/struct/__init__.c:179
msgid "buffer size must match format" msgid "buffer size must match format"
msgstr "Die Puffergröße muss zum Format passen" msgstr "Buffergröße muss zum Format passen"
#: shared-module/usb_hid/Device.c:45 #: shared-module/usb_hid/Device.c:45
#, c-format #, c-format
msgid "Buffer incorrect size. Should be %d bytes." msgid "Buffer incorrect size. Should be %d bytes."
msgstr "Der Puffergröße ist inkorrekt. Sie sollte %d bytes haben." msgstr "Buffergröße falsch, sollte %d bytes sein."
#: shared-module/usb_hid/Device.c:53 #: shared-module/usb_hid/Device.c:53
msgid "USB Busy" msgid "USB Busy"
@ -2837,3 +2843,10 @@ msgid ""
msgstr "" msgstr ""
"Die Reset-Taste wurde beim Booten von CircuitPython gedrückt. Drücke sie " "Die Reset-Taste wurde beim Booten von CircuitPython gedrückt. Drücke sie "
"erneut um den abgesicherten Modus zu verlassen. \n" "erneut um den abgesicherten Modus zu verlassen. \n"
#~ msgid "All PWM peripherals are in use"
#~ msgstr "Alle PWM-Peripheriegeräte werden verwendet"
#, fuzzy
#~ msgid "unicode_characters must be a string"
#~ msgstr "name muss ein String sein"

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-02-07 01:10-0600\n" "POT-Creation-Date: 2019-02-11 17:39-0800\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"
@ -1323,7 +1323,7 @@ msgstr ""
msgid "division by zero" msgid "division by zero"
msgstr "" msgstr ""
#: py/modmicropython.c:155 #: py/modmicropython.c:117
msgid "schedule stack full" msgid "schedule stack full"
msgstr "" msgstr ""
@ -2148,7 +2148,7 @@ msgid "buffer must be a bytes-like object"
msgstr "" msgstr ""
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "" msgstr ""
@ -2306,74 +2306,88 @@ msgstr ""
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "y should be an int" msgid "Cannot delete values"
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:194
msgid "row buffer must be a bytearray or array of type 'b' or 'B'" #: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:94 #: shared-bindings/displayio/Bitmap.c:156
msgid "row data must be a buffer" msgid "pixel coordinates out of bounds"
msgstr "" msgstr ""
#: shared-bindings/displayio/ColorConverter.c:72 #: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:74
msgid "%q should be an int"
msgstr ""
#: shared-bindings/displayio/ColorConverter.c:70
msgid "color should be an int" msgid "color should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "" msgstr ""
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:61 shared-bindings/displayio/Group.c:66
msgid "Group must have size at least 1" #: shared-bindings/displayio/Group.c:93
msgid "Group must have %q at least 1"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Shape.c:88
msgid "y should be an int"
msgstr ""
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
msgid "start_x should be an int" msgid "start_x should be an int"
msgstr "" msgstr ""
@ -2386,19 +2400,19 @@ msgstr ""
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "" msgstr ""
@ -2426,6 +2440,7 @@ msgstr ""
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "" msgstr ""
@ -2475,19 +2490,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction." "PWM frequency not writable when variable_frequency is False on construction."
msgstr "" msgstr ""
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "" msgstr ""
@ -2536,10 +2539,6 @@ msgstr ""
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "" msgstr ""
#: shared-bindings/terminalio/Terminal.c:68
msgid "unicode_characters must be a string"
msgstr ""
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
msgstr "" msgstr ""
@ -2658,24 +2657,24 @@ msgstr ""
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 "" msgstr ""
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c:118
msgid "Read-only object"
msgstr ""
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:48
msgid "Group full" msgid "Group full"
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:46
msgid "Layer must be a Group or TileGrid subclass."
msgstr ""
#: shared-module/displayio/Group.c:55 #: shared-module/displayio/Group.c:55
msgid "Group empty" msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49

View File

@ -8,7 +8,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-02-07 09:09-0600\n" "POT-Creation-Date: 2019-02-11 17:39-0800\n"
"PO-Revision-Date: 2018-08-24 22:56-0500\n" "PO-Revision-Date: 2018-08-24 22:56-0500\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -1359,7 +1359,7 @@ msgstr "error de dominio matemático"
msgid "division by zero" msgid "division by zero"
msgstr "división por cero" msgstr "división por cero"
#: py/modmicropython.c:155 #: py/modmicropython.c:117
msgid "schedule stack full" msgid "schedule stack full"
msgstr "" msgstr ""
@ -2200,7 +2200,7 @@ msgid "buffer must be a bytes-like object"
msgstr "buffer debe de ser un objeto bytes-like" msgstr "buffer debe de ser un objeto bytes-like"
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "el archivo deberia ser una archivo abierto en modo byte" msgstr "el archivo deberia ser una archivo abierto en modo byte"
@ -2365,75 +2365,92 @@ msgstr "Pull no se usa cuando la dirección es output."
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "valor pull no soportado." msgstr "valor pull no soportado."
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "y should be an int" msgid "Cannot delete values"
msgstr "No se puede eliminar valores"
#: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:194
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr ""
#: shared-bindings/displayio/Bitmap.c:156
#, fuzzy
msgid "pixel coordinates out of bounds"
msgstr "address fuera de límites"
#: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:74
#, fuzzy
msgid "%q should be an int"
msgstr "y deberia ser un int" msgstr "y deberia ser un int"
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/ColorConverter.c:70
msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "row buffer deberia ser un bytearray o array de tipo 'b' o 'B'"
#: shared-bindings/displayio/Bitmap.c:94
msgid "row data must be a buffer"
msgstr "row data debe ser un buffer"
#: shared-bindings/displayio/ColorConverter.c:72
msgid "color should be an int" msgid "color should be an int"
msgstr "color deberia ser un int" msgstr "color deberia ser un int"
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
#, fuzzy #, fuzzy
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "Bytes debe estar entre 0 y 255." msgstr "Bytes debe estar entre 0 y 255."
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:61 shared-bindings/displayio/Group.c:66
msgid "Group must have size at least 1" #: shared-bindings/displayio/Group.c:93
#, fuzzy
msgid "Group must have %q at least 1"
msgstr "Group debe tener size de minimo 1" msgstr "Group debe tener size de minimo 1"
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "color buffer deberia ser un bytearray o array de tipo 'b' o 'B'" msgstr "color buffer deberia ser un bytearray o array de tipo 'b' o 'B'"
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "color debe estar entre 0x000000 y 0xffffff" msgstr "color debe estar entre 0x000000 y 0xffffff"
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "color buffer deber ser un buffer o un int" msgstr "color buffer deber ser un buffer o un int"
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "palette_index deberia ser un int" msgstr "palette_index deberia ser un int"
#: shared-bindings/displayio/Shape.c:88
msgid "y should be an int"
msgstr "y deberia ser un int"
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
#, fuzzy #, fuzzy
msgid "start_x should be an int" msgid "start_x should be an int"
@ -2448,19 +2465,19 @@ msgstr "y deberia ser un int"
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "posición debe ser 2-tuple" msgstr "posición debe ser 2-tuple"
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "tipo de bitmap no soportado" msgstr "tipo de bitmap no soportado"
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "pixel_shader debe ser displayio.Palette o displayio.ColorConverter" msgstr "pixel_shader debe ser displayio.Palette o displayio.ColorConverter"
@ -2488,6 +2505,7 @@ msgstr "addresses esta vacío"
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "Se espera un %q" msgstr "Se espera un %q"
@ -2537,19 +2555,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction." "PWM frequency not writable when variable_frequency is False on construction."
msgstr "" msgstr ""
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr "No se puede eliminar valores"
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr "indice debe ser int"
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "Solo-lectura" msgstr "Solo-lectura"
@ -2598,11 +2604,6 @@ msgstr "Brightness debe estar entro 0 y 255"
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "" msgstr ""
#: shared-bindings/terminalio/Terminal.c:68
#, fuzzy
msgid "unicode_characters must be a string"
msgstr "palabras clave deben ser strings"
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
msgstr "la longitud de sleep no puede ser negativa" msgstr "la longitud de sleep no puede ser negativa"
@ -2723,27 +2724,28 @@ msgstr "No se puede transferir sin pines MOSI y MISO."
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 "Solo se admiten bit maps de color de 8 bits o menos" msgstr "Solo se admiten bit maps de color de 8 bits o menos"
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "la fila debe estar empacada y la palabra alineada" msgstr "la fila debe estar empacada y la palabra alineada"
#: shared-module/displayio/Bitmap.c:118
#, fuzzy
msgid "Read-only object"
msgstr "Solo-lectura"
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
#, fuzzy #, fuzzy
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "tipo de bitmap no soportado" msgstr "tipo de bitmap no soportado"
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:48
msgid "Group full" msgid "Group full"
msgstr "Group lleno" msgstr "Group lleno"
#: shared-module/displayio/Group.c:46 #: shared-module/displayio/Group.c:55
msgid "Layer must be a Group or TileGrid subclass." msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:55
msgid "Group empty"
msgstr "Group vacío"
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49
msgid "Invalid BMP file" msgid "Invalid BMP file"
msgstr "Archivo BMP inválido" msgstr "Archivo BMP inválido"
@ -2887,6 +2889,22 @@ msgstr ""
#~ msgid "Invalid UUID parameter" #~ msgid "Invalid UUID parameter"
#~ msgstr "Parámetro UUID inválido" #~ msgstr "Parámetro UUID inválido"
#~ msgid "Group empty"
#~ msgstr "Group vacío"
#~ msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
#~ msgstr "row buffer deberia ser un bytearray o array de tipo 'b' o 'B'"
#~ msgid "row data must be a buffer"
#~ msgstr "row data debe ser un buffer"
#, fuzzy
#~ msgid "unicode_characters must be a string"
#~ msgstr "palabras clave deben ser strings"
#~ msgid "index must be int"
#~ msgstr "indice debe ser int"
#~ msgid "Can not query for the device address." #~ msgid "Can not query for the device address."
#~ msgstr "No se puede consultar la dirección del dispositivo." #~ msgstr "No se puede consultar la dirección del dispositivo."
@ -2902,17 +2920,17 @@ msgstr ""
#~ msgid "Invalid UUID string length" #~ msgid "Invalid UUID string length"
#~ msgstr "Longitud de string UUID inválida" #~ msgstr "Longitud de string UUID inválida"
#~ msgid "Baud rate too high for this SPI peripheral"
#~ msgstr "Baud rate demasiado alto para este periférico SPI"
#~ msgid "Can encode UUID into the advertisement packet." #~ msgid "Can encode UUID into the advertisement packet."
#~ msgstr "Se puede codificar el UUID en el paquete de anuncio." #~ msgstr "Se puede codificar el UUID en el paquete de anuncio."
#~ msgid "Wrong address length"
#~ msgstr "Longitud de address erronea"
#~ msgid "Cannot apply GAP parameters." #~ msgid "Cannot apply GAP parameters."
#~ msgstr "No se pueden aplicar los parámetros GAP." #~ msgstr "No se pueden aplicar los parámetros GAP."
#~ msgid "Wrong address length" #~ msgid "Can not apply device name in the stack."
#~ msgstr "Longitud de address erronea" #~ msgstr "No se puede aplicar el nombre del dispositivo en el stack."
#~ msgid "" #~ msgid ""
#~ "enough power for the whole circuit and press reset (after ejecting " #~ "enough power for the whole circuit and press reset (after ejecting "
@ -2928,8 +2946,9 @@ msgstr ""
#~ "Por favor registra un issue en la siguiente URL con el contenidos de tu " #~ "Por favor registra un issue en la siguiente URL con el contenidos de tu "
#~ "unidad de almacenamiento CIRCUITPY:\n" #~ "unidad de almacenamiento CIRCUITPY:\n"
#~ msgid "Can not apply device name in the stack." #~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n"
#~ msgstr "No se puede aplicar el nombre del dispositivo en el stack." #~ msgstr ""
#~ "Parece que nuestro código CircuitPython dejó de funcionar. Whoops!\n"
#, fuzzy #, fuzzy
#~ msgid "unpack requires a buffer of %d bytes" #~ msgid "unpack requires a buffer of %d bytes"
@ -2941,15 +2960,14 @@ msgstr ""
#~ msgid "Can not add Service." #~ msgid "Can not add Service."
#~ msgstr "No se puede agregar el Servicio." #~ msgstr "No se puede agregar el Servicio."
#~ msgid "Can not apply advertisement data. status: 0x%02x" #~ msgid "Can not encode UUID, to check length."
#~ msgstr "No se puede aplicar los datos de anuncio. status: 0x%02x" #~ msgstr "No se puede codificar el UUID, para revisar la longitud."
#~ msgid "Invalid Service type" #~ msgid "Invalid Service type"
#~ msgstr "Tipo de Servicio inválido" #~ msgstr "Tipo de Servicio inválido"
#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" #~ msgid "Can not apply advertisement data. status: 0x%02x"
#~ msgstr "" #~ msgstr "No se puede aplicar los datos de anuncio. status: 0x%02x"
#~ "Parece que nuestro código CircuitPython dejó de funcionar. Whoops!\n"
#~ msgid "Can not encode UUID, to check length." #~ msgid "Baud rate too high for this SPI peripheral"
#~ msgstr "No se puede codificar el UUID, para revisar la longitud." #~ msgstr "Baud rate demasiado alto para este periférico SPI"

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-02-07 09:09-0600\n" "POT-Creation-Date: 2019-02-11 17:39-0800\n"
"PO-Revision-Date: 2018-12-20 22:15-0800\n" "PO-Revision-Date: 2018-12-20 22:15-0800\n"
"Last-Translator: Timothy <me@timothygarcia.ca>\n" "Last-Translator: Timothy <me@timothygarcia.ca>\n"
"Language-Team: fil\n" "Language-Team: fil\n"
@ -1360,7 +1360,7 @@ msgstr "may pagkakamali sa math domain"
msgid "division by zero" msgid "division by zero"
msgstr "dibisyon ng zero" msgstr "dibisyon ng zero"
#: py/modmicropython.c:155 #: py/modmicropython.c:117
msgid "schedule stack full" msgid "schedule stack full"
msgstr "puno na ang schedule stack" msgstr "puno na ang schedule stack"
@ -2205,7 +2205,7 @@ msgid "buffer must be a bytes-like object"
msgstr "buffer ay dapat bytes-like object" msgstr "buffer ay dapat bytes-like object"
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "file ay dapat buksan sa byte mode" msgstr "file ay dapat buksan sa byte mode"
@ -2370,75 +2370,92 @@ msgstr "Pull hindi ginagamit kapag ang direksyon ay output."
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "Hindi suportado ang pull value." msgstr "Hindi suportado ang pull value."
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "y should be an int" msgid "Cannot delete values"
msgstr "Hindi mabura ang values"
#: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:194
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "Hindi suportado ang Slices"
#: shared-bindings/displayio/Bitmap.c:156
#, fuzzy
msgid "pixel coordinates out of bounds"
msgstr "wala sa sakop ang address"
#: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:74
#, fuzzy
msgid "%q should be an int"
msgstr "y ay dapat int" msgstr "y ay dapat int"
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/ColorConverter.c:70
msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "ang row buffer ay dapat bytearray o array na type b or B"
#: shared-bindings/displayio/Bitmap.c:94
msgid "row data must be a buffer"
msgstr "row data ay dapat na buffer"
#: shared-bindings/displayio/ColorConverter.c:72
msgid "color should be an int" msgid "color should be an int"
msgstr "color ay dapat na int" msgstr "color ay dapat na int"
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
#, fuzzy #, fuzzy
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "Sa gitna ng 0 o 255 dapat ang bytes." msgstr "Sa gitna ng 0 o 255 dapat ang bytes."
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:61 shared-bindings/displayio/Group.c:66
msgid "Group must have size at least 1" #: shared-bindings/displayio/Group.c:93
#, fuzzy
msgid "Group must have %q at least 1"
msgstr "Group dapat ay hindi baba sa 1 na haba" msgstr "Group dapat ay hindi baba sa 1 na haba"
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "ang color buffer ay dapat bytearray o array na type b or B" msgstr "ang color buffer ay dapat bytearray o array na type b or B"
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "color buffer ay dapat na 3 bytes (RGB) o 4 bytes (RGB + pad byte)" msgstr "color buffer ay dapat na 3 bytes (RGB) o 4 bytes (RGB + pad byte)"
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "color ay dapat mula sa 0x000000 hangang 0xffffff" msgstr "color ay dapat mula sa 0x000000 hangang 0xffffff"
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "color buffer ay dapat buffer or int" msgstr "color buffer ay dapat buffer or int"
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "palette_index ay dapat na int" msgstr "palette_index ay dapat na int"
#: shared-bindings/displayio/Shape.c:88
msgid "y should be an int"
msgstr "y ay dapat int"
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
#, fuzzy #, fuzzy
msgid "start_x should be an int" msgid "start_x should be an int"
@ -2453,19 +2470,19 @@ msgstr "y ay dapat int"
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "position ay dapat 2-tuple" msgstr "position ay dapat 2-tuple"
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "Hindi supportadong tipo ng bitmap" msgstr "Hindi supportadong tipo ng bitmap"
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "pixel_shader ay dapat displayio.Palette o displayio.ColorConverter" msgstr "pixel_shader ay dapat displayio.Palette o displayio.ColorConverter"
@ -2493,6 +2510,7 @@ msgstr "walang laman ang address"
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "Umasa ng %q" msgstr "Umasa ng %q"
@ -2543,19 +2561,7 @@ msgid ""
msgstr "" msgstr ""
"PWM frequency hindi writable kapag variable_frequency ay False sa pag buo." "PWM frequency hindi writable kapag variable_frequency ay False sa pag buo."
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr "Hindi mabura ang values"
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "Hindi suportado ang Slices"
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr "index ay dapat int"
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "Basahin-lamang" msgstr "Basahin-lamang"
@ -2604,11 +2610,6 @@ msgstr "Ang liwanag ay dapat sa gitna ng 0 o 255"
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "Ang laki ng stack ay dapat na hindi bababa sa 256" msgstr "Ang laki ng stack ay dapat na hindi bababa sa 256"
#: shared-bindings/terminalio/Terminal.c:68
#, fuzzy
msgid "unicode_characters must be a string"
msgstr "ang keywords dapat strings"
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
msgstr "sleep length ay dapat hindi negatibo" msgstr "sleep length ay dapat hindi negatibo"
@ -2729,27 +2730,28 @@ msgstr "Hindi maaaring ilipat kapag walang MOSI at MISO pin."
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 "Tanging bit maps na may 8 bit color o mas mababa ang supportado" msgstr "Tanging bit maps na may 8 bit color o mas mababa ang supportado"
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "row ay dapat packed at ang word nakahanay" msgstr "row ay dapat packed at ang word nakahanay"
#: shared-module/displayio/Bitmap.c:118
#, fuzzy
msgid "Read-only object"
msgstr "Basahin-lamang"
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
#, fuzzy #, fuzzy
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "Hindi supportadong tipo ng bitmap" msgstr "Hindi supportadong tipo ng bitmap"
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:48
msgid "Group full" msgid "Group full"
msgstr "Puno ang group" msgstr "Puno ang group"
#: shared-module/displayio/Group.c:46 #: shared-module/displayio/Group.c:55
msgid "Layer must be a Group or TileGrid subclass." msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:55
msgid "Group empty"
msgstr "Walang laman ang group"
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49
msgid "Invalid BMP file" msgid "Invalid BMP file"
msgstr "Mali ang BMP file" msgstr "Mali ang BMP file"
@ -2893,6 +2895,22 @@ msgstr ""
#~ msgid "Invalid UUID parameter" #~ msgid "Invalid UUID parameter"
#~ msgstr "Mali ang UUID parameter" #~ msgstr "Mali ang UUID parameter"
#~ msgid "Group empty"
#~ msgstr "Walang laman ang group"
#~ msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
#~ msgstr "ang row buffer ay dapat bytearray o array na type b or B"
#~ msgid "row data must be a buffer"
#~ msgstr "row data ay dapat na buffer"
#, fuzzy
#~ msgid "unicode_characters must be a string"
#~ msgstr "ang keywords dapat strings"
#~ msgid "index must be int"
#~ msgstr "index ay dapat int"
#~ msgid "Can not query for the device address." #~ msgid "Can not query for the device address."
#~ msgstr "Hindi maaaring mag-query para sa address ng device." #~ msgstr "Hindi maaaring mag-query para sa address ng device."
@ -2908,18 +2926,17 @@ msgstr ""
#~ msgid "Invalid UUID string length" #~ msgid "Invalid UUID string length"
#~ msgstr "Mali ang UUID string length" #~ msgstr "Mali ang UUID string length"
#, fuzzy
#~ msgid "palette must be displayio.Palette"
#~ msgstr "ang palette ay dapat 32 bytes ang haba"
#~ msgid "Can encode UUID into the advertisement packet." #~ msgid "Can encode UUID into the advertisement packet."
#~ msgstr "Maaring i-encode ang UUID sa advertisement packet." #~ msgstr "Maaring i-encode ang UUID sa advertisement packet."
#~ msgid "Wrong address length"
#~ msgstr "Mali ang address length"
#~ msgid "Cannot apply GAP parameters." #~ msgid "Cannot apply GAP parameters."
#~ msgstr "Hindi ma-apply ang GAP parameters." #~ msgstr "Hindi ma-apply ang GAP parameters."
#~ msgid "Wrong address length" #~ msgid "Can not apply device name in the stack."
#~ msgstr "Mali ang address length" #~ msgstr "Hindi maaaring ma-aplay ang device name sa stack."
#~ msgid "" #~ msgid ""
#~ "enough power for the whole circuit and press reset (after ejecting " #~ "enough power for the whole circuit and press reset (after ejecting "
@ -2934,8 +2951,9 @@ msgstr ""
#~ "Mag-file ng isang isyu dito gamit ang mga nilalaman ng iyong CIRCUITPY " #~ "Mag-file ng isang isyu dito gamit ang mga nilalaman ng iyong CIRCUITPY "
#~ "drive:\n" #~ "drive:\n"
#~ msgid "Can not apply device name in the stack." #~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n"
#~ msgstr "Hindi maaaring ma-aplay ang device name sa stack." #~ msgstr ""
#~ "Mukhang ang core CircuitPython code ay nag-crash ng malakas. Aray!\n"
#, fuzzy #, fuzzy
#~ msgid "unpack requires a buffer of %d bytes" #~ msgid "unpack requires a buffer of %d bytes"
@ -2947,15 +2965,15 @@ msgstr ""
#~ msgid "Can not add Service." #~ msgid "Can not add Service."
#~ msgstr "Hindi maidaragdag ang serbisyo." #~ msgstr "Hindi maidaragdag ang serbisyo."
#~ msgid "Can not apply advertisement data. status: 0x%02x" #~ msgid "Can not encode UUID, to check length."
#~ msgstr "Hindi ma i-apply ang advertisement data. status: 0x%02x" #~ msgstr "Hindi ma-encode UUID, para suriin ang haba."
#~ msgid "Invalid Service type" #~ msgid "Invalid Service type"
#~ msgstr "Mali ang tipo ng serbisyo" #~ msgstr "Mali ang tipo ng serbisyo"
#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" #~ msgid "Can not apply advertisement data. status: 0x%02x"
#~ msgstr "" #~ msgstr "Hindi ma i-apply ang advertisement data. status: 0x%02x"
#~ "Mukhang ang core CircuitPython code ay nag-crash ng malakas. Aray!\n"
#~ msgid "Can not encode UUID, to check length." #, fuzzy
#~ msgstr "Hindi ma-encode UUID, para suriin ang haba." #~ msgid "palette must be displayio.Palette"
#~ msgstr "ang palette ay dapat 32 bytes ang haba"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 0.1\n" "Project-Id-Version: 0.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-02-07 09:09-0600\n" "POT-Creation-Date: 2019-02-11 17:39-0800\n"
"PO-Revision-Date: 2018-12-23 20:05+0100\n" "PO-Revision-Date: 2018-12-23 20:05+0100\n"
"Last-Translator: Pierrick Couturier <arofarn@arofarn.info>\n" "Last-Translator: Pierrick Couturier <arofarn@arofarn.info>\n"
"Language-Team: fr\n" "Language-Team: fr\n"
@ -1358,7 +1358,7 @@ msgstr "erreur de domaine math"
msgid "division by zero" msgid "division by zero"
msgstr "division par zéro" msgstr "division par zéro"
#: py/modmicropython.c:155 #: py/modmicropython.c:117
msgid "schedule stack full" msgid "schedule stack full"
msgstr "pile de plannification pleine" msgstr "pile de plannification pleine"
@ -2206,7 +2206,7 @@ msgid "buffer must be a bytes-like object"
msgstr "le tampon doit être un objet bytes-like" msgstr "le tampon doit être un objet bytes-like"
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "le fichier doit être un fichier ouvert en mode 'byte'" msgstr "le fichier doit être un fichier ouvert en mode 'byte'"
@ -2371,86 +2371,99 @@ msgstr "Le tirage 'pull' n'est pas utilisé quand la direction est 'output'."
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "Valeur de tirage 'pull' non supportée." msgstr "Valeur de tirage 'pull' non supportée."
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "Cannot delete values"
msgstr "Impossible de supprimer les valeurs"
#: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:194
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "Slices non supportées"
#: shared-bindings/displayio/Bitmap.c:156
#, fuzzy #, fuzzy
msgid "y should be an int" msgid "pixel coordinates out of bounds"
msgstr "adresse hors limites"
#: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:74
#, fuzzy
msgid "%q should be an int"
msgstr "y doit être un entier (int)" msgstr "y doit être un entier (int)"
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/ColorConverter.c:70
#, fuzzy
msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
msgstr ""
"le tampon de ligne doit être un bytearray ou un tableau de type 'b' ou 'B'"
#: shared-bindings/displayio/Bitmap.c:94
#, fuzzy
msgid "row data must be a buffer"
msgstr "les données de ligne doivent être un tampon"
#: shared-bindings/displayio/ColorConverter.c:72
#, fuzzy #, fuzzy
msgid "color should be an int" msgid "color should be an int"
msgstr "la couleur doit être un entier (int)" msgstr "la couleur doit être un entier (int)"
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
#, fuzzy #, fuzzy
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "Les octets 'bytes' doivent être entre 0 et 255" msgstr "Les octets 'bytes' doivent être entre 0 et 255"
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:61 shared-bindings/displayio/Group.c:66
#: shared-bindings/displayio/Group.c:93
#, fuzzy #, fuzzy
msgid "Group must have size at least 1" msgid "Group must have %q at least 1"
msgstr "Le tampon doit être de longueur au moins 1" msgstr "Le tampon doit être de longueur au moins 1"
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
#, fuzzy #, fuzzy
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "" msgstr ""
"le tampon de couleur doit être un bytearray ou un tableau de type 'b' ou 'B'" "le tampon de couleur doit être un bytearray ou un tableau de type 'b' ou 'B'"
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "le tampon de couleur doit faire 3 octets (RVB) ou 4 (RVB + pad byte)" msgstr "le tampon de couleur doit faire 3 octets (RVB) ou 4 (RVB + pad byte)"
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
#, fuzzy #, fuzzy
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "la couleur doit être entre 0x000000 et 0xffffff" msgstr "la couleur doit être entre 0x000000 et 0xffffff"
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
#, fuzzy #, fuzzy
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "le tampon de couleur doit être un tampon ou un entier" msgstr "le tampon de couleur doit être un tampon ou un entier"
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
#, fuzzy #, fuzzy
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "palette_index devrait être un entier (int)'" msgstr "palette_index devrait être un entier (int)'"
#: shared-bindings/displayio/Shape.c:88
#, fuzzy
msgid "y should be an int"
msgstr "y doit être un entier (int)"
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
#, fuzzy #, fuzzy
msgid "start_x should be an int" msgid "start_x should be an int"
@ -2466,20 +2479,20 @@ msgstr "y doit être un entier (int)"
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "position doit être un 2-tuple" msgstr "position doit être un 2-tuple"
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
#, fuzzy #, fuzzy
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "type de bitmap non supporté" msgstr "type de bitmap non supporté"
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "" msgstr ""
"pixel_shader doit être un objet displayio.Palette ou displayio.ColorConverter" "pixel_shader doit être un objet displayio.Palette ou displayio.ColorConverter"
@ -2509,6 +2522,7 @@ msgstr "adresses vides"
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "Attendu : %q" msgstr "Attendu : %q"
@ -2563,19 +2577,7 @@ msgstr ""
"La fréquence de PWM n'est pas modifiable quand variable_frequency est False " "La fréquence de PWM n'est pas modifiable quand variable_frequency est False "
"à la construction." "à la construction."
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr "Impossible de supprimer les valeurs"
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "Slices non supportées"
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr "l'index doit être un entier"
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "Lecture seule" msgstr "Lecture seule"
@ -2625,11 +2627,6 @@ msgstr "La luminosité doit être entre 0 et 255"
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "La pile doit être au moins de 256" msgstr "La pile doit être au moins de 256"
#: shared-bindings/terminalio/Terminal.c:68
#, fuzzy
msgid "unicode_characters must be a string"
msgstr "les noms doivent être des chaînes de caractère"
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
msgstr "la longueur de sleep ne doit pas être négative" msgstr "la longueur de sleep ne doit pas être négative"
@ -2750,28 +2747,28 @@ msgstr "Pas de transfert sans broches MOSI et MISO"
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 "Seules les bitmaps de 8bits par couleur ou moins sont supportées" msgstr "Seules les bitmaps de 8bits par couleur ou moins sont supportées"
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c:118
#, fuzzy
msgid "Read-only object"
msgstr "Lecture seule"
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
#, fuzzy #, fuzzy
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "type de bitmap non supporté" msgstr "type de bitmap non supporté"
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:48
msgid "Group full" msgid "Group full"
msgstr "Groupe plein" msgstr "Groupe plein"
#: shared-module/displayio/Group.c:46 #: shared-module/displayio/Group.c:55
msgid "Layer must be a Group or TileGrid subclass." msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:55
#, fuzzy
msgid "Group empty"
msgstr "Groupe vide"
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49
#, fuzzy #, fuzzy
msgid "Invalid BMP file" msgid "Invalid BMP file"
@ -2921,6 +2918,26 @@ msgstr ""
#~ msgid "Invalid UUID parameter" #~ msgid "Invalid UUID parameter"
#~ msgstr "Paramètre UUID invalide" #~ msgstr "Paramètre UUID invalide"
#, fuzzy
#~ msgid "Group empty"
#~ msgstr "Groupe vide"
#, fuzzy
#~ msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
#~ msgstr ""
#~ "le tampon de ligne doit être un bytearray ou un tableau de type 'b' ou 'B'"
#, fuzzy
#~ msgid "row data must be a buffer"
#~ msgstr "les données de ligne doivent être un tampon"
#, fuzzy
#~ msgid "unicode_characters must be a string"
#~ msgstr "les noms doivent être des chaînes de caractère"
#~ msgid "index must be int"
#~ msgstr "l'index doit être un entier"
#, fuzzy #, fuzzy
#~ msgid "palette must be displayio.Palette" #~ msgid "palette must be displayio.Palette"
#~ msgstr "la palette doit être une displayio.Palette" #~ msgstr "la palette doit être une displayio.Palette"
@ -2938,18 +2955,20 @@ msgstr ""
#~ msgid "Invalid UUID string length" #~ msgid "Invalid UUID string length"
#~ msgstr "Longeur de chaîne UUID invalide" #~ msgstr "Longeur de chaîne UUID invalide"
#~ msgid "Cannot set PPCP parameters."
#~ msgstr "Impossible d'appliquer les paramètres PPCP"
#~ msgid "Can not add Service." #~ msgid "Can not add Service."
#~ msgstr "Impossible d'ajouter le Service" #~ msgstr "Impossible d'ajouter le Service"
#~ msgid "Wrong address length"
#~ msgstr "Mauvaise longueur d'adresse"
#~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" #~ msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n"
#~ msgstr "" #~ msgstr ""
#~ "Il semblerait que votre code CircuitPython a durement planté. Oups!\n" #~ "Il semblerait que votre code CircuitPython a durement planté. Oups!\n"
#~ msgid "Wrong address length" #~ msgid ""
#~ msgstr "Mauvaise longueur d'adresse" #~ "Please file an issue here with the contents of your CIRCUITPY drive:\n"
#~ msgstr ""
#~ "SVP, remontez le problème là avec le contenu du lecteur CIRCUITPY:\n"
#~ msgid "Invalid Service type" #~ msgid "Invalid Service type"
#~ msgstr "Type de service invalide" #~ msgstr "Type de service invalide"
@ -2957,10 +2976,9 @@ msgstr ""
#~ msgid "Can not encode UUID, to check length." #~ msgid "Can not encode UUID, to check length."
#~ msgstr "Impossible d'encoder l'UUID pour vérifier la longueur." #~ msgstr "Impossible d'encoder l'UUID pour vérifier la longueur."
#~ msgid "" #, fuzzy
#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" #~ msgid "value_size must be power of two"
#~ msgstr "" #~ msgstr "value_size doit être une puissance de 2"
#~ "SVP, remontez le problème là avec le contenu du lecteur CIRCUITPY:\n"
#, fuzzy #, fuzzy
#~ msgid "unpack requires a buffer of %d bytes" #~ msgid "unpack requires a buffer of %d bytes"
@ -2973,19 +2991,18 @@ msgstr ""
#~ msgid "Can not apply device name in the stack." #~ msgid "Can not apply device name in the stack."
#~ msgstr "Impossible d'appliquer le nom de périphérique dans la pile" #~ msgstr "Impossible d'appliquer le nom de périphérique dans la pile"
#~ msgid "Can not query for the device address."
#~ msgstr "Impossible d'obtenir l'adresse du périphérique"
#~ msgid "Can not add Characteristic."
#~ msgstr "Impossible d'ajouter la Characteristic."
#, fuzzy
#~ msgid "value_size must be power of two"
#~ msgstr "value_size doit être une puissance de 2"
#~ msgid "" #~ msgid ""
#~ "enough power for the whole circuit and press reset (after ejecting " #~ "enough power for the whole circuit and press reset (after ejecting "
#~ "CIRCUITPY).\n" #~ "CIRCUITPY).\n"
#~ msgstr "" #~ msgstr ""
#~ "assez de puissance pour l'ensemble du circuit et appuyez sur " #~ "assez de puissance pour l'ensemble du circuit et appuyez sur "
#~ "'reset' (après avoir éjecter CIRCUITPY).\n" #~ "'reset' (après avoir éjecter CIRCUITPY).\n"
#~ msgid "Can not add Characteristic."
#~ msgstr "Impossible d'ajouter la Characteristic."
#~ msgid "Can not query for the device address."
#~ msgstr "Impossible d'obtenir l'adresse du périphérique"
#~ msgid "Cannot set PPCP parameters."
#~ msgstr "Impossible d'appliquer les paramètres PPCP"

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-02-07 09:09-0600\n" "POT-Creation-Date: 2019-02-11 17:39-0800\n"
"PO-Revision-Date: 2018-10-02 16:27+0200\n" "PO-Revision-Date: 2018-10-02 16:27+0200\n"
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n" "Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -1358,7 +1358,7 @@ msgstr "errore di dominio matematico"
msgid "division by zero" msgid "division by zero"
msgstr "divisione per zero" msgstr "divisione per zero"
#: py/modmicropython.c:155 #: py/modmicropython.c:117
msgid "schedule stack full" msgid "schedule stack full"
msgstr "" msgstr ""
@ -2203,7 +2203,7 @@ msgid "buffer must be a bytes-like object"
msgstr "" msgstr ""
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "" msgstr ""
@ -2368,77 +2368,94 @@ msgstr ""
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "Valore di pull non supportato." msgstr "Valore di pull non supportato."
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "y should be an int" msgid "Cannot delete values"
msgstr "Impossibile cancellare valori"
#: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:194
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "Slice non supportate"
#: shared-bindings/displayio/Bitmap.c:156
#, fuzzy
msgid "pixel coordinates out of bounds"
msgstr "indirizzo fuori limite"
#: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:74
#, fuzzy
msgid "%q should be an int"
msgstr "y dovrebbe essere un int" msgstr "y dovrebbe essere un int"
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/ColorConverter.c:70
msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "buffer di riga deve essere un bytearray o un array di tipo 'b' o 'B'"
#: shared-bindings/displayio/Bitmap.c:94
msgid "row data must be a buffer"
msgstr "valori della riga devono essere un buffer"
#: shared-bindings/displayio/ColorConverter.c:72
msgid "color should be an int" msgid "color should be an int"
msgstr "il colore deve essere un int" msgstr "il colore deve essere un int"
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
#, fuzzy #, fuzzy
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "I byte devono essere compresi tra 0 e 255" msgstr "I byte devono essere compresi tra 0 e 255"
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:61 shared-bindings/displayio/Group.c:66
msgid "Group must have size at least 1" #: shared-bindings/displayio/Group.c:93
#, fuzzy
msgid "Group must have %q at least 1"
msgstr "Il gruppo deve avere dimensione almeno 1" msgstr "Il gruppo deve avere dimensione almeno 1"
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "" msgstr ""
"buffer del colore deve essere un bytearray o un array di tipo 'b' o 'B'" "buffer del colore deve essere un bytearray o un array di tipo 'b' o 'B'"
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "" msgstr ""
"il buffer del colore deve esseer di 3 byte (RGB) o 4 byte (RGB + pad byte)" "il buffer del colore deve esseer di 3 byte (RGB) o 4 byte (RGB + pad byte)"
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "il colore deve essere compreso tra 0x000000 e 0xffffff" msgstr "il colore deve essere compreso tra 0x000000 e 0xffffff"
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "il buffer del colore deve essere un buffer o un int" msgstr "il buffer del colore deve essere un buffer o un int"
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "palette_index deve essere un int" msgstr "palette_index deve essere un int"
#: shared-bindings/displayio/Shape.c:88
msgid "y should be an int"
msgstr "y dovrebbe essere un int"
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
#, fuzzy #, fuzzy
msgid "start_x should be an int" msgid "start_x should be an int"
@ -2453,19 +2470,19 @@ msgstr "y dovrebbe essere un int"
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "position deve essere una 2-tuple" msgstr "position deve essere una 2-tuple"
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "tipo di bitmap non supportato" msgstr "tipo di bitmap non supportato"
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "pixel_shader deve essere displayio.Palette o displayio.ColorConverter" msgstr "pixel_shader deve essere displayio.Palette o displayio.ColorConverter"
@ -2493,6 +2510,7 @@ msgstr "gli indirizzi sono vuoti"
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "Atteso un %q" msgstr "Atteso un %q"
@ -2547,19 +2565,7 @@ msgstr ""
"frequenza PWM frequency non è scrivibile quando variable_frequency è " "frequenza PWM frequency non è scrivibile quando variable_frequency è "
"impostato nel costruttore a False." "impostato nel costruttore a False."
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr "Impossibile cancellare valori"
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr "Slice non supportate"
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr "l'indice deve essere int"
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "Sola lettura" msgstr "Sola lettura"
@ -2609,11 +2615,6 @@ msgstr "La luminosità deve essere compreso tra 0 e 255"
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "La dimensione dello stack deve essere almeno 256" msgstr "La dimensione dello stack deve essere almeno 256"
#: shared-bindings/terminalio/Terminal.c:68
#, fuzzy
msgid "unicode_characters must be a string"
msgstr "argomenti nominati devono essere stringhe"
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
msgstr "la lunghezza di sleed deve essere non negativa" msgstr "la lunghezza di sleed deve essere non negativa"
@ -2734,27 +2735,28 @@ msgstr "Impossibile trasferire senza i pin MOSI e MISO."
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 "Sono supportate solo bitmap con colori a 8 bit o meno" msgstr "Sono supportate solo bitmap con colori a 8 bit o meno"
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "la riga deve essere compattata e allineata alla parola" msgstr "la riga deve essere compattata e allineata alla parola"
#: shared-module/displayio/Bitmap.c:118
#, fuzzy
msgid "Read-only object"
msgstr "Sola lettura"
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
#, fuzzy #, fuzzy
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "tipo di bitmap non supportato" msgstr "tipo di bitmap non supportato"
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:48
msgid "Group full" msgid "Group full"
msgstr "Gruppo pieno" msgstr "Gruppo pieno"
#: shared-module/displayio/Group.c:46 #: shared-module/displayio/Group.c:55
msgid "Layer must be a Group or TileGrid subclass." msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:55
msgid "Group empty"
msgstr "Gruppo vuoto"
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49
msgid "Invalid BMP file" msgid "Invalid BMP file"
msgstr "File BMP non valido" msgstr "File BMP non valido"
@ -2887,17 +2889,34 @@ msgid ""
"exit safe mode.\n" "exit safe mode.\n"
msgstr "" msgstr ""
#, fuzzy
#~ msgid "Wrong number of bytes provided"
#~ msgstr "numero di argomenti errato"
#~ msgid "Invalid UUID parameter" #~ msgid "Invalid UUID parameter"
#~ msgstr "Parametro UUID non valido" #~ msgstr "Parametro UUID non valido"
#~ msgid "Group empty"
#~ msgstr "Gruppo vuoto"
#~ msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
#~ msgstr ""
#~ "buffer di riga deve essere un bytearray o un array di tipo 'b' o 'B'"
#~ msgid "row data must be a buffer"
#~ msgstr "valori della riga devono essere un buffer"
#, fuzzy #, fuzzy
#~ msgid "All PWM peripherals are in use" #~ msgid "All PWM peripherals are in use"
#~ msgstr "Tutte le periferiche SPI sono in uso" #~ msgstr "Tutte le periferiche SPI sono in uso"
#~ msgid "index must be int"
#~ msgstr "l'indice deve essere int"
#, fuzzy
#~ msgid "Wrong number of bytes provided"
#~ msgstr "numero di argomenti errato"
#, fuzzy
#~ msgid "unicode_characters must be a string"
#~ msgstr "argomenti nominati devono essere stringhe"
#~ msgid "Invalid Service type" #~ msgid "Invalid Service type"
#~ msgstr "Tipo di servizio non valido" #~ msgstr "Tipo di servizio non valido"
@ -2906,11 +2925,26 @@ msgstr ""
#~ "Sembra che il codice del core di CircuitPython sia crashato malamente. " #~ "Sembra che il codice del core di CircuitPython sia crashato malamente. "
#~ "Whoops!\n" #~ "Whoops!\n"
#~ msgid "Cannot set PPCP parameters."
#~ msgstr "Impossibile impostare i parametri PPCP."
#~ msgid "Can not apply advertisement data. status: 0x%02x"
#~ msgstr "Impossible inserire dati advertisement. status: 0x%02x"
#~ msgid "Invalid UUID string length"
#~ msgstr "Lunghezza della stringa UUID non valida"
#~ msgid "Can not query for the device address." #~ msgid "Can not query for the device address."
#~ msgstr "Non è possibile trovare l'indirizzo del dispositivo." #~ msgstr "Non è possibile trovare l'indirizzo del dispositivo."
#~ msgid "Cannot set PPCP parameters." #~ msgid "Can not add Service."
#~ msgstr "Impossibile impostare i parametri PPCP." #~ msgstr "Non è possibile aggiungere Service."
#~ msgid "Can not encode UUID, to check length."
#~ msgstr "Non è possibile codificare l'UUID, lunghezza da controllare."
#~ msgid "Can not apply device name in the stack."
#~ msgstr "Non è possibile inserire il nome del dipositivo nella lista."
#, fuzzy #, fuzzy
#~ msgid "unpack requires a buffer of %d bytes" #~ msgid "unpack requires a buffer of %d bytes"
@ -2923,30 +2957,15 @@ msgstr ""
#~ "abbastanza potenza per l'intero circuito e premere reset (dopo aver " #~ "abbastanza potenza per l'intero circuito e premere reset (dopo aver "
#~ "espulso CIRCUITPY).\n" #~ "espulso CIRCUITPY).\n"
#~ msgid "Can not add Service."
#~ msgstr "Non è possibile aggiungere Service."
#~ msgid "Can not apply advertisement data. status: 0x%02x"
#~ msgstr "Impossible inserire dati advertisement. status: 0x%02x"
#~ msgid "Can not apply device name in the stack."
#~ msgstr "Non è possibile inserire il nome del dipositivo nella lista."
#~ msgid "Can not add Characteristic."
#~ msgstr "Non è possibile aggiungere Characteristic."
#~ msgid "Can not encode UUID, to check length."
#~ msgstr "Non è possibile codificare l'UUID, lunghezza da controllare."
#~ msgid "Invalid UUID string length"
#~ msgstr "Lunghezza della stringa UUID non valida"
#~ msgid "Cannot apply GAP parameters." #~ msgid "Cannot apply GAP parameters."
#~ msgstr "Impossibile applicare i parametri GAP." #~ msgstr "Impossibile applicare i parametri GAP."
#~ msgid "Can encode UUID into the advertisement packet." #~ msgid "Can encode UUID into the advertisement packet."
#~ msgstr "È possibile codificare l'UUID nel pacchetto di advertisement." #~ msgstr "È possibile codificare l'UUID nel pacchetto di advertisement."
#~ msgid "Can not add Characteristic."
#~ msgstr "Non è possibile aggiungere Characteristic."
#~ msgid "" #~ msgid ""
#~ "Please file an issue here with the contents of your CIRCUITPY drive:\n" #~ "Please file an issue here with the contents of your CIRCUITPY drive:\n"
#~ 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-02-07 09:09-0600\n" "POT-Creation-Date: 2019-02-11 17:39-0800\n"
"PO-Revision-Date: 2018-10-02 21:14-0000\n" "PO-Revision-Date: 2018-10-02 21:14-0000\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -1340,7 +1340,7 @@ msgstr ""
msgid "division by zero" msgid "division by zero"
msgstr "divisão por zero" msgstr "divisão por zero"
#: py/modmicropython.c:155 #: py/modmicropython.c:117
msgid "schedule stack full" msgid "schedule stack full"
msgstr "" msgstr ""
@ -2169,7 +2169,7 @@ msgid "buffer must be a bytes-like object"
msgstr "" msgstr ""
#: shared-bindings/audioio/WaveFile.c:78 #: shared-bindings/audioio/WaveFile.c:78
#: shared-bindings/displayio/OnDiskBitmap.c:87 #: shared-bindings/displayio/OnDiskBitmap.c:85
msgid "file must be a file opened in byte mode" msgid "file must be a file opened in byte mode"
msgstr "" msgstr ""
@ -2334,75 +2334,91 @@ msgstr ""
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "" msgstr ""
#: shared-bindings/displayio/Bitmap.c:84 shared-bindings/displayio/Shape.c:88 #: shared-bindings/displayio/Bitmap.c:131 shared-bindings/pulseio/PulseIn.c:272
msgid "y should be an int" msgid "Cannot delete values"
msgstr "Não é possível excluir valores"
#: shared-bindings/displayio/Bitmap.c:139 shared-bindings/displayio/Group.c:194
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr ""
#: shared-bindings/displayio/Bitmap.c:156
msgid "pixel coordinates out of bounds"
msgstr ""
#: shared-bindings/displayio/Bitmap.c:166
msgid "pixel value requires too many bits"
msgstr ""
#: shared-bindings/displayio/BuiltinFont.c:74
#, fuzzy
msgid "%q should be an int"
msgstr "y deve ser um int" msgstr "y deve ser um int"
#: shared-bindings/displayio/Bitmap.c:89 #: shared-bindings/displayio/ColorConverter.c:70
msgid "row buffer must be a bytearray or array of type 'b' or 'B'"
msgstr ""
#: shared-bindings/displayio/Bitmap.c:94
msgid "row data must be a buffer"
msgstr ""
#: shared-bindings/displayio/ColorConverter.c:72
msgid "color should be an int" msgid "color should be an int"
msgstr "cor deve ser um int" msgstr "cor deve ser um int"
#: shared-bindings/displayio/Display.c:131 #: shared-bindings/displayio/Display.c:129
msgid "Display rotation must be in 90 degree increments" msgid "Display rotation must be in 90 degree increments"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:143 #: shared-bindings/displayio/Display.c:141
msgid "Too many displays" msgid "Too many displays"
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:167 #: shared-bindings/displayio/Display.c:165
msgid "Must be a Group subclass." msgid "Must be a Group subclass."
msgstr "" msgstr ""
#: shared-bindings/displayio/Display.c:209 #: shared-bindings/displayio/Display.c:207
#: shared-bindings/displayio/Display.c:219 #: shared-bindings/displayio/Display.c:217
msgid "Brightness not adjustable" msgid "Brightness not adjustable"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:93 #: shared-bindings/displayio/FourWire.c:91
#: shared-bindings/displayio/ParallelBus.c:98 #: shared-bindings/displayio/ParallelBus.c:96
msgid "Too many display busses" msgid "Too many display busses"
msgstr "" msgstr ""
#: shared-bindings/displayio/FourWire.c:109 #: shared-bindings/displayio/FourWire.c:107
#: shared-bindings/displayio/ParallelBus.c:113 #: shared-bindings/displayio/ParallelBus.c:111
#, fuzzy #, fuzzy
msgid "Command must be an int between 0 and 255" msgid "Command must be an int between 0 and 255"
msgstr "Os bytes devem estar entre 0 e 255." msgstr "Os bytes devem estar entre 0 e 255."
#: shared-bindings/displayio/Group.c:62 #: shared-bindings/displayio/Group.c:61 shared-bindings/displayio/Group.c:66
msgid "Group must have size at least 1" #: shared-bindings/displayio/Group.c:93
#, fuzzy
msgid "Group must have %q at least 1"
msgstr "Grupo deve ter tamanho pelo menos 1" msgstr "Grupo deve ter tamanho pelo menos 1"
#: shared-bindings/displayio/Palette.c:93 #: shared-bindings/displayio/Palette.c:91
msgid "color buffer must be a bytearray or array of type 'b' or 'B'" msgid "color buffer must be a bytearray or array of type 'b' or 'B'"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:99 #: shared-bindings/displayio/Palette.c:97
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)" msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:103 #: shared-bindings/displayio/Palette.c:101
msgid "color must be between 0x000000 and 0xffffff" msgid "color must be between 0x000000 and 0xffffff"
msgstr "cor deve estar entre 0x000000 e 0xffffff" msgstr "cor deve estar entre 0x000000 e 0xffffff"
#: shared-bindings/displayio/Palette.c:107 #: shared-bindings/displayio/Palette.c:105
msgid "color buffer must be a buffer or int" msgid "color buffer must be a buffer or int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Palette.c:120 #: shared-bindings/displayio/Palette.c:118
#: shared-bindings/displayio/Palette.c:134 #: shared-bindings/displayio/Palette.c:132
msgid "palette_index should be an int" msgid "palette_index should be an int"
msgstr "" msgstr ""
#: shared-bindings/displayio/Shape.c:88
msgid "y should be an int"
msgstr "y deve ser um int"
#: shared-bindings/displayio/Shape.c:92 #: shared-bindings/displayio/Shape.c:92
#, fuzzy #, fuzzy
msgid "start_x should be an int" msgid "start_x should be an int"
@ -2417,19 +2433,19 @@ msgstr "y deve ser um int"
msgid "position must be 2-tuple" msgid "position must be 2-tuple"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:117 #: shared-bindings/displayio/TileGrid.c:115
msgid "unsupported bitmap type" msgid "unsupported bitmap type"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:128 #: shared-bindings/displayio/TileGrid.c:126
msgid "Tile width must exactly divide bitmap width" msgid "Tile width must exactly divide bitmap width"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:131 #: shared-bindings/displayio/TileGrid.c:129
msgid "Tile height must exactly divide bitmap height" msgid "Tile height must exactly divide bitmap height"
msgstr "" msgstr ""
#: shared-bindings/displayio/TileGrid.c:198 #: shared-bindings/displayio/TileGrid.c:196
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter" msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
msgstr "" msgstr ""
@ -2457,6 +2473,7 @@ msgstr ""
#: shared-bindings/neopixel_write/__init__.c:67 #: shared-bindings/neopixel_write/__init__.c:67
#: shared-bindings/pulseio/PulseOut.c:76 #: shared-bindings/pulseio/PulseOut.c:76
#: shared-bindings/terminalio/Terminal.c:63 #: shared-bindings/terminalio/Terminal.c:63
#: shared-bindings/terminalio/Terminal.c:68
msgid "Expected a %q" msgid "Expected a %q"
msgstr "Esperado um" msgstr "Esperado um"
@ -2506,19 +2523,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction." "PWM frequency not writable when variable_frequency is False on construction."
msgstr "" msgstr ""
#: shared-bindings/pulseio/PulseIn.c:272 #: shared-bindings/pulseio/PulseIn.c:285
msgid "Cannot delete values"
msgstr "Não é possível excluir valores"
#: shared-bindings/pulseio/PulseIn.c:278
msgid "Slices not supported"
msgstr ""
#: shared-bindings/pulseio/PulseIn.c:284
msgid "index must be int"
msgstr "index deve ser int"
#: shared-bindings/pulseio/PulseIn.c:290
msgid "Read-only" msgid "Read-only"
msgstr "Somente leitura" msgstr "Somente leitura"
@ -2567,11 +2572,6 @@ msgstr "O brilho deve estar entre 0 e 255"
msgid "Stack size must be at least 256" msgid "Stack size must be at least 256"
msgstr "O tamanho da pilha deve ser pelo menos 256" msgstr "O tamanho da pilha deve ser pelo menos 256"
#: shared-bindings/terminalio/Terminal.c:68
#, fuzzy
msgid "unicode_characters must be a string"
msgstr "heap deve ser uma lista"
#: shared-bindings/time/__init__.c:78 #: shared-bindings/time/__init__.c:78
msgid "sleep length must be non-negative" msgid "sleep length must be non-negative"
msgstr "" msgstr ""
@ -2691,27 +2691,28 @@ msgstr "Não é possível transferir sem os pinos MOSI e MISO."
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 "Apenas bit maps de cores de 8 bit ou menos são suportados" msgstr "Apenas bit maps de cores de 8 bit ou menos são suportados"
#: shared-module/displayio/Bitmap.c:69 #: shared-module/displayio/Bitmap.c:81
msgid "row must be packed and word aligned" msgid "row must be packed and word aligned"
msgstr "Linha deve ser comprimida e com as palavras alinhadas" msgstr "Linha deve ser comprimida e com as palavras alinhadas"
#: shared-module/displayio/Bitmap.c:118
#, fuzzy
msgid "Read-only object"
msgstr "Somente leitura"
#: shared-module/displayio/Display.c:67 #: shared-module/displayio/Display.c:67
#, fuzzy #, fuzzy
msgid "Unsupported display bus type" msgid "Unsupported display bus type"
msgstr "Taxa de transmissão não suportada" msgstr "Taxa de transmissão não suportada"
#: shared-module/displayio/Group.c:39 #: shared-module/displayio/Group.c:48
msgid "Group full" msgid "Group full"
msgstr "Grupo cheio" msgstr "Grupo cheio"
#: shared-module/displayio/Group.c:46 #: shared-module/displayio/Group.c:55
msgid "Layer must be a Group or TileGrid subclass." msgid "Layer must be a Group or TileGrid subclass."
msgstr "" msgstr ""
#: shared-module/displayio/Group.c:55
msgid "Group empty"
msgstr "Grupo vazio"
#: shared-module/displayio/OnDiskBitmap.c:49 #: shared-module/displayio/OnDiskBitmap.c:49
msgid "Invalid BMP file" msgid "Invalid BMP file"
msgstr "Arquivo BMP inválido" msgstr "Arquivo BMP inválido"
@ -2836,40 +2837,50 @@ msgid ""
"exit safe mode.\n" "exit safe mode.\n"
msgstr "" msgstr ""
#~ msgid "Can not apply device name in the stack." #~ msgid "index must be int"
#~ msgstr "Não é possível aplicar o nome do dispositivo na pilha." #~ msgstr "index deve ser int"
#, fuzzy
#~ msgid "unicode_characters must be a string"
#~ msgstr "heap deve ser uma lista"
#~ msgid "Group empty"
#~ msgstr "Grupo vazio"
#~ msgid "Invalid UUID parameter"
#~ msgstr "Parâmetro UUID inválido"
#, fuzzy #, fuzzy
#~ msgid "unpack requires a buffer of %d bytes" #~ msgid "unpack requires a buffer of %d bytes"
#~ msgstr "Falha ao alocar buffer RX de %d bytes" #~ msgstr "Falha ao alocar buffer RX de %d bytes"
#~ msgid "Cannot set PPCP parameters."
#~ msgstr "Não é possível definir parâmetros PPCP."
#~ msgid "Can not apply device name in the stack."
#~ msgstr "Não é possível aplicar o nome do dispositivo na pilha."
#~ msgid "Cannot apply GAP parameters."
#~ msgstr "Não é possível aplicar parâmetros GAP."
#~ msgid "Can not add Characteristic."
#~ msgstr "Não é possível adicionar Característica."
#~ msgid "Can not apply advertisement data. status: 0x%02x"
#~ msgstr "Não é possível aplicar dados de anúncio. status: 0x%02x"
#~ msgid "Can encode UUID into the advertisement packet."
#~ msgstr "Pode codificar o UUID no pacote de anúncios."
#~ msgid "Invalid Service type"
#~ msgstr "Tipo de serviço inválido"
#~ msgid "Can not query for the device address."
#~ msgstr "Não é possível consultar o endereço do dispositivo."
#~ msgid "Baud rate too high for this SPI peripheral" #~ msgid "Baud rate too high for this SPI peripheral"
#~ msgstr "Taxa de transmissão muito alta para esse periférico SPI" #~ msgstr "Taxa de transmissão muito alta para esse periférico SPI"
#, fuzzy #, fuzzy
#~ msgid "All PWM peripherals are in use" #~ msgid "All PWM peripherals are in use"
#~ msgstr "Todos os temporizadores em uso" #~ msgstr "Todos os temporizadores em uso"
#~ msgid "Invalid UUID parameter"
#~ msgstr "Parâmetro UUID inválido"
#~ msgid "Can encode UUID into the advertisement packet."
#~ msgstr "Pode codificar o UUID no pacote de anúncios."
#~ msgid "Can not apply advertisement data. status: 0x%02x"
#~ msgstr "Não é possível aplicar dados de anúncio. status: 0x%02x"
#~ msgid "Cannot set PPCP parameters."
#~ msgstr "Não é possível definir parâmetros PPCP."
#~ msgid "Can not add Characteristic."
#~ msgstr "Não é possível adicionar Característica."
#~ msgid "Can not query for the device address."
#~ msgstr "Não é possível consultar o endereço do dispositivo."
#~ msgid "Invalid Service type"
#~ msgstr "Tipo de serviço inválido"
#~ msgid "Cannot apply GAP parameters."
#~ msgstr "Não é possível aplicar parâmetros GAP."

View File

@ -366,6 +366,7 @@ SRC_BINDINGS_ENUMS = \
digitalio/Direction.c \ digitalio/Direction.c \
digitalio/DriveMode.c \ digitalio/DriveMode.c \
digitalio/Pull.c \ digitalio/Pull.c \
displayio/Glyph.c \
microcontroller/RunMode.c \ microcontroller/RunMode.c \
help.c \ help.c \
math/__init__.c \ math/__init__.c \
@ -381,6 +382,7 @@ SRC_SHARED_MODULE = \
busio/OneWire.c \ busio/OneWire.c \
displayio/__init__.c \ displayio/__init__.c \
displayio/Bitmap.c \ displayio/Bitmap.c \
displayio/BuiltinFont.c \
displayio/ColorConverter.c \ displayio/ColorConverter.c \
displayio/Display.c \ displayio/Display.c \
displayio/FourWire.c \ displayio/FourWire.c \

View File

@ -1,6 +1,7 @@
#include "shared-bindings/board/__init__.h" #include "shared-bindings/board/__init__.h"
#include "supervisor/shared/board_busses.h" #include "supervisor/shared/board_busses.h"
#include "supervisor/shared/display.h"
// This mapping only includes functional names because pins broken // This mapping only includes functional names because pins broken
// out on connectors are labeled with their MCU name available from // out on connectors are labeled with their MCU name available from
@ -131,5 +132,7 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
{ MP_ROM_QSTR(MP_QSTR_TERMINAL_FONT), MP_ROM_PTR(&supervisor_terminal_font) },
}; };
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table); MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -195,6 +195,7 @@ SRC_BINDINGS_ENUMS = \
digitalio/Direction.c \ digitalio/Direction.c \
digitalio/DriveMode.c \ digitalio/DriveMode.c \
digitalio/Pull.c \ digitalio/Pull.c \
displayio/Glyph.c \
microcontroller/RunMode.c \ microcontroller/RunMode.c \
help.c \ help.c \
math/__init__.c \ math/__init__.c \
@ -221,6 +222,7 @@ SRC_SHARED_MODULE = \
busio/OneWire.c \ busio/OneWire.c \
displayio/__init__.c \ displayio/__init__.c \
displayio/Bitmap.c \ displayio/Bitmap.c \
displayio/BuiltinFont.c \
displayio/ColorConverter.c \ displayio/ColorConverter.c \
displayio/Display.c \ displayio/Display.c \
displayio/FourWire.c \ displayio/FourWire.c \

View File

@ -171,6 +171,9 @@ STATIC void mp_obj_class_lookup(struct class_lookup_data *lookup, const mp_obj_
// do a lookup, not a (base) type in which we found the class method. // do a lookup, not a (base) type in which we found the class method.
const mp_obj_type_t *org_type = (const mp_obj_type_t*)lookup->obj; const mp_obj_type_t *org_type = (const mp_obj_type_t*)lookup->obj;
mp_convert_member_lookup(MP_OBJ_NULL, org_type, elem->value, lookup->dest); mp_convert_member_lookup(MP_OBJ_NULL, org_type, elem->value, lookup->dest);
} else if (MP_OBJ_IS_TYPE(elem->value, &mp_type_property)) {
lookup->dest[0] = elem->value;
return;
} else { } else {
mp_obj_instance_t *obj = lookup->obj; mp_obj_instance_t *obj = lookup->obj;
mp_obj_t obj_obj; mp_obj_t obj_obj;

View File

@ -43,8 +43,6 @@
//| //|
//| Stores values of a certain size in a 2D array //| Stores values of a certain size in a 2D array
//| //|
//| .. warning:: This will likely be changed before 4.0.0. Consider it very experimental.
//|
//| .. class:: Bitmap(width, height, value_count) //| .. class:: Bitmap(width, height, value_count)
//| //|
//| Create a Bitmap object with the given fixed size. Each pixel stores a value that is used to //| Create a Bitmap object with the given fixed size. Each pixel stores a value that is used to
@ -71,34 +69,110 @@ STATIC mp_obj_t displayio_bitmap_make_new(const mp_obj_type_t *type, size_t n_ar
return MP_OBJ_FROM_PTR(self); return MP_OBJ_FROM_PTR(self);
} }
//| .. attribute:: width
//| .. method:: _load_row(y, data)
//| //|
//| Loads pre-packed data into the given row. //| Width of the bitmap. (read only)
//| //|
STATIC mp_obj_t displayio_bitmap_obj__load_row(mp_obj_t self_in, mp_obj_t y_in, mp_obj_t data_in) { STATIC mp_obj_t displayio_bitmap_obj_get_width(mp_obj_t self_in) {
displayio_bitmap_t *self = MP_OBJ_TO_PTR(self_in); displayio_bitmap_t *self = MP_OBJ_TO_PTR(self_in);
mp_int_t y;
if (!mp_obj_get_int_maybe(y_in, &y)) { return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_bitmap_get_width(self));
mp_raise_ValueError(translate("y should be an int")); }
MP_DEFINE_CONST_FUN_OBJ_1(displayio_bitmap_get_width_obj, displayio_bitmap_obj_get_width);
const mp_obj_property_t displayio_bitmap_width_obj = {
.base.type = &mp_type_property,
.proxy = {(mp_obj_t)&displayio_bitmap_get_width_obj,
(mp_obj_t)&mp_const_none_obj,
(mp_obj_t)&mp_const_none_obj},
};
//| .. attribute:: height
//|
//| Height of the bitmap. (read only)
//|
STATIC mp_obj_t displayio_bitmap_obj_get_height(mp_obj_t self_in) {
displayio_bitmap_t *self = MP_OBJ_TO_PTR(self_in);
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_bitmap_get_height(self));
}
MP_DEFINE_CONST_FUN_OBJ_1(displayio_bitmap_get_height_obj, displayio_bitmap_obj_get_height);
const mp_obj_property_t displayio_bitmap_height_obj = {
.base.type = &mp_type_property,
.proxy = {(mp_obj_t)&displayio_bitmap_get_height_obj,
(mp_obj_t)&mp_const_none_obj,
(mp_obj_t)&mp_const_none_obj},
};
//| .. method:: __getitem__(index)
//|
//| Returns the value at the given index. The index can either be an x,y tuple or an int equal
//| to ``y * width + x``.
//|
//| This allows you to::
//|
//| print(bitmap[0,1])
//|
//| .. method:: __setitem__(index, value)
//|
//| Sets the value at the given index. The index can either be an x,y tuple or an int equal
//| to ``y * width + x``.
//|
//| This allows you to::
//|
//| bitmap[0,1] = 3
//|
STATIC mp_obj_t bitmap_subscr(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t value_obj) {
if (value_obj == mp_const_none) {
// delete item
mp_raise_AttributeError(translate("Cannot delete values"));
return mp_const_none;
} }
mp_buffer_info_t bufinfo;
if (mp_get_buffer(data_in, &bufinfo, MP_BUFFER_READ)) { displayio_bitmap_t *self = MP_OBJ_TO_PTR(self_in);
if (bufinfo.typecode != 'b' && bufinfo.typecode != 'B' && bufinfo.typecode != BYTEARRAY_TYPECODE) {
mp_raise_ValueError(translate("row buffer must be a bytearray or array of type 'b' or 'B'")); if (MP_OBJ_IS_TYPE(index_obj, &mp_type_slice)) {
} // TODO(tannewt): Implement subscr after slices support start, stop and step tuples.
uint8_t* buf = bufinfo.buf; mp_raise_NotImplementedError(translate("Slices not supported"));
common_hal_displayio_bitmap_load_row(self, y, buf, bufinfo.len); return mp_const_none;
}
uint16_t x = 0;
uint16_t y = 0;
if (MP_OBJ_IS_SMALL_INT(index_obj)) {
mp_int_t i = MP_OBJ_SMALL_INT_VALUE(index_obj);
uint16_t width = common_hal_displayio_bitmap_get_width(self);
x = i % width;
y = i / width;
} else { } else {
mp_raise_TypeError(translate("row data must be a buffer")); mp_obj_t* items;
mp_obj_get_array_fixed_n(index_obj, 2, &items);
x = mp_obj_get_int(items[0]);
y = mp_obj_get_int(items[1]);
if (x >= common_hal_displayio_bitmap_get_width(self) || y >= common_hal_displayio_bitmap_get_height(self)) {
mp_raise_IndexError(translate("pixel coordinates out of bounds"));
}
}
if (value_obj == MP_OBJ_SENTINEL) {
// load
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_bitmap_get_pixel(self, x, y));
} else {
mp_int_t value = mp_obj_get_int(value_obj);
if (value >= 1 << common_hal_displayio_bitmap_get_bits_per_value(self)) {
mp_raise_ValueError(translate("pixel value requires too many bits"));
}
common_hal_displayio_bitmap_set_pixel(self, x, y, value);
} }
return mp_const_none; return mp_const_none;
} }
MP_DEFINE_CONST_FUN_OBJ_3(displayio_bitmap__load_row_obj, displayio_bitmap_obj__load_row);
STATIC const mp_rom_map_elem_t displayio_bitmap_locals_dict_table[] = { STATIC const mp_rom_map_elem_t displayio_bitmap_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR__load_row), MP_ROM_PTR(&displayio_bitmap__load_row_obj) }, { MP_ROM_QSTR(MP_QSTR_height), MP_ROM_PTR(&displayio_bitmap_height_obj) },
{ MP_ROM_QSTR(MP_QSTR_width), MP_ROM_PTR(&displayio_bitmap_width_obj) },
}; };
STATIC MP_DEFINE_CONST_DICT(displayio_bitmap_locals_dict, displayio_bitmap_locals_dict_table); STATIC MP_DEFINE_CONST_DICT(displayio_bitmap_locals_dict, displayio_bitmap_locals_dict_table);
@ -106,7 +180,6 @@ const mp_obj_type_t displayio_bitmap_type = {
{ &mp_type_type }, { &mp_type_type },
.name = MP_QSTR_Bitmap, .name = MP_QSTR_Bitmap,
.make_new = displayio_bitmap_make_new, .make_new = displayio_bitmap_make_new,
// TODO(tannewt): Implement subscr after slices support start, stop and step tuples. .subscr = bitmap_subscr,
// .subscr = displayio_bitmap_subscr,
.locals_dict = (mp_obj_dict_t*)&displayio_bitmap_locals_dict, .locals_dict = (mp_obj_dict_t*)&displayio_bitmap_locals_dict,
}; };

View File

@ -36,6 +36,10 @@ void common_hal_displayio_bitmap_construct(displayio_bitmap_t *self, uint32_t wi
void common_hal_displayio_bitmap_load_row(displayio_bitmap_t *self, uint16_t y, uint8_t* data, void common_hal_displayio_bitmap_load_row(displayio_bitmap_t *self, uint16_t y, uint8_t* data,
uint16_t len); uint16_t len);
uint16_t common_hal_displayio_bitmap_get_height(displayio_bitmap_t *self);
uint16_t common_hal_displayio_bitmap_get_width(displayio_bitmap_t *self);
uint32_t common_hal_displayio_bitmap_get_bits_per_value(displayio_bitmap_t *self);
void common_hal_displayio_bitmap_set_pixel(displayio_bitmap_t *bitmap, int16_t x, int16_t y, uint32_t value);
uint32_t common_hal_displayio_bitmap_get_pixel(displayio_bitmap_t *bitmap, int16_t x, int16_t y); uint32_t common_hal_displayio_bitmap_get_pixel(displayio_bitmap_t *bitmap, int16_t x, int16_t y);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_BITMAP_H #endif // MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_BITMAP_H

View File

@ -0,0 +1,110 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "shared-bindings/displayio/BuiltinFont.h"
#include <stdint.h>
#include "lib/utils/context_manager_helpers.h"
#include "py/binary.h"
#include "py/objproperty.h"
#include "py/runtime.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/util.h"
#include "supervisor/shared/translate.h"
//| .. currentmodule:: displayio
//|
//| :class:`BuiltinFont` -- A font built into CircuitPython
//| =========================================================================================
//|
//| A font built into CircuitPython.
//|
//| .. class:: BuiltinFont()
//|
//| Creation not supported. Available fonts are defined when CircuitPython is built. See the
//| `Adafruit_CircuitPython_Bitmap_Font <https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font>`_
//| library for dynamically loaded fonts.
//|
//| .. attribute:: bitmap
//|
//| Bitmap containing all font glyphs starting with ASCII and followed by unicode. Use
//| `get_glyph` in most cases. This is useful for use with `displayio.TileGrid` and
//| `displayio.Terminal`.
//|
STATIC mp_obj_t displayio_builtinfont_obj_get_bitmap(mp_obj_t self_in) {
displayio_builtinfont_t *self = MP_OBJ_TO_PTR(self_in);
return common_hal_displayio_builtinfont_get_bitmap(self);
}
MP_DEFINE_CONST_FUN_OBJ_1(displayio_builtinfont_get_bitmap_obj, displayio_builtinfont_obj_get_bitmap);
const mp_obj_property_t displayio_builtinfont_bitmap_obj = {
.base.type = &mp_type_property,
.proxy = {(mp_obj_t)&displayio_builtinfont_get_bitmap_obj,
(mp_obj_t)&mp_const_none_obj,
(mp_obj_t)&mp_const_none_obj},
};
//| .. method:: get_bounding_box()
//|
//| Returns the maximum bounds of all glyphs in the font in a tuple of two values: width, height.
//|
STATIC mp_obj_t displayio_builtinfont_obj_get_bounding_box(mp_obj_t self_in) {
displayio_builtinfont_t *self = MP_OBJ_TO_PTR(self_in);
return common_hal_displayio_builtinfont_get_bounding_box(self);
}
MP_DEFINE_CONST_FUN_OBJ_1(displayio_builtinfont_get_bounding_box_obj, displayio_builtinfont_obj_get_bounding_box);
//| .. method:: get_glyph(codepoint)
//|
//| Returns a `displayio.Glyph` for the given codepoint or None if no glyph is available.
//|
STATIC mp_obj_t displayio_builtinfont_obj_get_glyph(mp_obj_t self_in, mp_obj_t codepoint_obj) {
displayio_builtinfont_t *self = MP_OBJ_TO_PTR(self_in);
mp_int_t codepoint;
if (!mp_obj_get_int_maybe(codepoint_obj, &codepoint)) {
mp_raise_ValueError_varg(translate("%q should be an int"), MP_QSTR_codepoint);
}
return common_hal_displayio_builtinfont_get_glyph(self, codepoint);
}
MP_DEFINE_CONST_FUN_OBJ_2(displayio_builtinfont_get_glyph_obj, displayio_builtinfont_obj_get_glyph);
STATIC const mp_rom_map_elem_t displayio_builtinfont_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_bitmap), MP_ROM_PTR(&displayio_builtinfont_bitmap_obj) },
{ MP_ROM_QSTR(MP_QSTR_get_bounding_box), MP_ROM_PTR(&displayio_builtinfont_get_bounding_box_obj) },
{ MP_ROM_QSTR(MP_QSTR_get_glyph), MP_ROM_PTR(&displayio_builtinfont_get_glyph_obj) },
};
STATIC MP_DEFINE_CONST_DICT(displayio_builtinfont_locals_dict, displayio_builtinfont_locals_dict_table);
const mp_obj_type_t displayio_builtinfont_type = {
{ &mp_type_type },
.name = MP_QSTR_BuiltinFont,
.locals_dict = (mp_obj_dict_t*)&displayio_builtinfont_locals_dict,
};

View File

@ -0,0 +1,38 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_BUILTINFONT_H
#define MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_BUILTINFONT_H
#include "shared-module/displayio/BuiltinFont.h"
extern const mp_obj_type_t displayio_builtinfont_type;
mp_obj_t common_hal_displayio_builtinfont_get_bitmap(const displayio_builtinfont_t *self);
mp_obj_t common_hal_displayio_builtinfont_get_bounding_box(const displayio_builtinfont_t *self);
mp_obj_t common_hal_displayio_builtinfont_get_glyph(const displayio_builtinfont_t *self, mp_uint_t codepoint);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_BUILTINFONT_H

View File

@ -43,8 +43,6 @@
//| //|
//| Converts one color format to another. //| Converts one color format to another.
//| //|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental.
//|
//| .. class:: ColorConverter() //| .. class:: ColorConverter()
//| //|
//| Create a ColorConverter object to convert color formats. Only supports RGB888 to RGB565 //| Create a ColorConverter object to convert color formats. Only supports RGB888 to RGB565

View File

@ -50,8 +50,6 @@
//| Most people should not use this class directly. Use a specific display driver instead that will //| Most people should not use this class directly. Use a specific display driver instead that will
//| contain the initialization sequence at minimum. //| contain the initialization sequence at minimum.
//| //|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental.
//|
//| .. class:: Display(display_bus, init_sequence, *, width, height, colstart=0, rowstart=0, rotation=0, color_depth=16, set_column_command=0x2a, set_row_command=0x2b, write_ram_command=0x2c, set_vertical_scroll=0, backlight_pin=None) //| .. class:: Display(display_bus, init_sequence, *, width, height, colstart=0, rowstart=0, rotation=0, color_depth=16, set_column_command=0x2a, set_row_command=0x2b, write_ram_command=0x2c, set_vertical_scroll=0, backlight_pin=None)
//| //|
//| Create a Display object on the given display bus (`displayio.FourWire` or `displayio.ParallelBus`). //| Create a Display object on the given display bus (`displayio.FourWire` or `displayio.ParallelBus`).

View File

@ -46,8 +46,6 @@
//| Manage updating a display over SPI four wire protocol in the background while Python code runs. //| Manage updating a display over SPI four wire protocol in the background while Python code runs.
//| It doesn't handle display initialization. //| It doesn't handle display initialization.
//| //|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental.
//|
//| .. class:: FourWire(spi_bus, *, command, chip_select, reset) //| .. class:: FourWire(spi_bus, *, command, chip_select, reset)
//| //|
//| Create a FourWire object associated with the given pins. //| Create a FourWire object associated with the given pins.

View File

@ -0,0 +1,75 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "shared-bindings/displayio/Glyph.h"
#include <stdint.h>
//| .. currentmodule:: displayio
//|
//| :class:`Glyph` -- Storage of glyph info
//| ==========================================================================
//|
//| .. class:: Glyph(bitmap, tile_index, width, height, dx, dy, shift_x, shift_y)
//|
//| Named tuple used to capture a single glyph and its attributes.
//|
//| :param displayio.Bitmap bitmap: the bitmap including the glyph
//| :param int tile_index: the tile index within the bitmap
//| :param int width: the width of the glyph's bitmap
//| :param int height: the height of the glyph's bitmap
//| :param int dx: x adjustment to the bitmap's position
//| :param int dy: y adjustment to the bitmap's position
//| :param int shift_x: the x difference to the next glyph
//| :param int shift_y: the y difference to the next glyph
//|
const mp_obj_namedtuple_type_t displayio_glyph_type = {
.base = {
.base = {
.type = &mp_type_type
},
.name = MP_QSTR_Glyph,
.print = namedtuple_print,
.make_new = namedtuple_make_new,
.unary_op = mp_obj_tuple_unary_op,
.binary_op = mp_obj_tuple_binary_op,
.attr = namedtuple_attr,
.subscr = mp_obj_tuple_subscr,
.getiter = mp_obj_tuple_getiter,
.parent = &mp_type_tuple,
},
.n_fields = 8,
.fields = {
MP_QSTR_bitmap,
MP_QSTR_tile_index,
MP_QSTR_width,
MP_QSTR_height,
MP_QSTR_dx,
MP_QSTR_dy,
MP_QSTR_shift_x,
MP_QSTR_shift_y
},
};

View File

@ -0,0 +1,34 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_GLYPH_H
#define MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_GLYPH_H
#include "py/objnamedtuple.h"
extern const mp_obj_namedtuple_type_t displayio_glyph_type;
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_GLYPH_H

View File

@ -41,57 +41,236 @@
//| //|
//| Manage a group of sprites and groups and how they are inter-related. //| Manage a group of sprites and groups and how they are inter-related.
//| //|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental. //| .. class:: Group(*, max_size=4, scale=1)
//|
//| .. class:: Group(*, max_size=4)
//| //|
//| Create a Group of a given size. //| Create a Group of a given size.
//| //|
//| :param int max_size: The maximum group size. //| :param int max_size: The maximum group size.
//| //|
STATIC mp_obj_t displayio_group_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) { STATIC mp_obj_t displayio_group_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_max_size }; enum { ARG_max_size, ARG_scale };
static const mp_arg_t allowed_args[] = { static const mp_arg_t allowed_args[] = {
{ MP_QSTR_max_size, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 4} }, { MP_QSTR_max_size, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 4} },
{ MP_QSTR_scale, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 1} },
}; };
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)]; mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
mp_int_t max_size = args[ARG_max_size].u_int; mp_int_t max_size = args[ARG_max_size].u_int;
if (max_size < 1) { if (max_size < 1) {
mp_raise_ValueError(translate("Group must have size at least 1")); mp_raise_ValueError_varg(translate("Group must have %q at least 1"), MP_QSTR_max_size);
}
mp_int_t scale = args[ARG_scale].u_int;
if (scale < 1) {
mp_raise_ValueError_varg(translate("Group must have %q at least 1"), MP_QSTR_scale);
} }
displayio_group_t *self = m_new_obj(displayio_group_t); displayio_group_t *self = m_new_obj(displayio_group_t);
self->base.type = &displayio_group_type; self->base.type = &displayio_group_type;
common_hal_displayio_group_construct(self, max_size); common_hal_displayio_group_construct(self, max_size, scale);
return MP_OBJ_FROM_PTR(self); return MP_OBJ_FROM_PTR(self);
} }
// Helper to ensure we have the native super class instead of a subclass.
static displayio_group_t* native_group(mp_obj_t group_obj) {
mp_obj_t native_group = mp_instance_cast_to_native_base(group_obj, &displayio_group_type);
assert(native_group == MP_OBJ_NULL);
return MP_OBJ_TO_PTR(native_group);
}
//| .. attribute:: scale
//|
//| Scales each pixel within the Group in both directions. For example, when scale=2 each pixel
//| will be represented by 2x2 pixels.
//|
STATIC mp_obj_t displayio_group_obj_get_scale(mp_obj_t self_in) {
displayio_group_t *self = native_group(self_in);
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_group_get_scale(self));
}
MP_DEFINE_CONST_FUN_OBJ_1(displayio_group_get_scale_obj, displayio_group_obj_get_scale);
STATIC mp_obj_t displayio_group_obj_set_scale(mp_obj_t self_in, mp_obj_t scale_obj) {
displayio_group_t *self = native_group(self_in);
mp_int_t scale = mp_obj_get_int(scale_obj);
if (scale < 1) {
mp_raise_ValueError_varg(translate("Group must have %q at least 1"), MP_QSTR_scale);
}
common_hal_displayio_group_set_scale(self, scale);
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_2(displayio_group_set_scale_obj, displayio_group_obj_set_scale);
const mp_obj_property_t displayio_group_scale_obj = {
.base.type = &mp_type_property,
.proxy = {(mp_obj_t)&displayio_group_get_scale_obj,
(mp_obj_t)&displayio_group_set_scale_obj,
(mp_obj_t)&mp_const_none_obj},
};
//| .. attribute:: x
//|
//| X position of the Group in the parent.
//|
STATIC mp_obj_t displayio_group_obj_get_x(mp_obj_t self_in) {
displayio_group_t *self = native_group(self_in);
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_group_get_x(self));
}
MP_DEFINE_CONST_FUN_OBJ_1(displayio_group_get_x_obj, displayio_group_obj_get_x);
STATIC mp_obj_t displayio_group_obj_set_x(mp_obj_t self_in, mp_obj_t x_obj) {
displayio_group_t *self = native_group(self_in);
mp_int_t x = mp_obj_get_int(x_obj);
common_hal_displayio_group_set_x(self, x);
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_2(displayio_group_set_x_obj, displayio_group_obj_set_x);
const mp_obj_property_t displayio_group_x_obj = {
.base.type = &mp_type_property,
.proxy = {(mp_obj_t)&displayio_group_get_x_obj,
(mp_obj_t)&displayio_group_set_x_obj,
(mp_obj_t)&mp_const_none_obj},
};
//| .. attribute:: y
//|
//| Y position of the Group in the parent.
//|
STATIC mp_obj_t displayio_group_obj_get_y(mp_obj_t self_in) {
displayio_group_t *self = native_group(self_in);
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_group_get_y(self));
}
MP_DEFINE_CONST_FUN_OBJ_1(displayio_group_get_y_obj, displayio_group_obj_get_y);
STATIC mp_obj_t displayio_group_obj_set_y(mp_obj_t self_in, mp_obj_t y_obj) {
displayio_group_t *self = native_group(self_in);
mp_int_t y = mp_obj_get_int(y_obj);
common_hal_displayio_group_set_y(self, y);
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_2(displayio_group_set_y_obj, displayio_group_obj_set_y);
const mp_obj_property_t displayio_group_y_obj = {
.base.type = &mp_type_property,
.proxy = {(mp_obj_t)&displayio_group_get_y_obj,
(mp_obj_t)&displayio_group_set_y_obj,
(mp_obj_t)&mp_const_none_obj},
};
//| .. method:: append(layer) //| .. method:: append(layer)
//| //|
//| Append a layer to the group. It will be drawn above other layers. //| Append a layer to the group. It will be drawn above other layers.
//| //|
STATIC mp_obj_t displayio_group_obj_append(mp_obj_t self_in, mp_obj_t layer) { STATIC mp_obj_t displayio_group_obj_append(mp_obj_t self_in, mp_obj_t layer) {
displayio_group_t *self = MP_OBJ_TO_PTR(self_in); displayio_group_t *self = MP_OBJ_TO_PTR(self_in);
common_hal_displayio_group_append(self, layer); common_hal_displayio_group_insert(self, common_hal_displayio_group_get_len(self), layer);
return mp_const_none; return mp_const_none;
} }
MP_DEFINE_CONST_FUN_OBJ_2(displayio_group_append_obj, displayio_group_obj_append); MP_DEFINE_CONST_FUN_OBJ_2(displayio_group_append_obj, displayio_group_obj_append);
//| .. method:: pop() //| .. method:: insert(index, layer)
//| //|
//| Remove the last item and return it. //| Insert a layer into the group.
//| //|
STATIC mp_obj_t displayio_group_obj_pop(mp_obj_t self_in) { STATIC mp_obj_t displayio_group_obj_insert(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t layer) {
displayio_group_t *self = MP_OBJ_TO_PTR(self_in); displayio_group_t *self = MP_OBJ_TO_PTR(self_in);
return common_hal_displayio_group_pop(self); size_t index = mp_get_index(&displayio_group_type, common_hal_displayio_group_get_len(self), index_obj, false);
common_hal_displayio_group_insert(self, index, layer);
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_3(displayio_group_insert_obj, displayio_group_obj_insert);
//| .. method:: pop(i=-1)
//|
//| Remove the ith item and return it.
//|
STATIC mp_obj_t displayio_group_obj_pop(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
enum { ARG_i };
static const mp_arg_t allowed_args[] = {
{ MP_QSTR_i, MP_ARG_INT, {.u_int = -1} },
};
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
displayio_group_t *self = MP_OBJ_TO_PTR(pos_args[0]);
size_t index = mp_get_index(&displayio_group_type,
common_hal_displayio_group_get_len(self),
MP_OBJ_NEW_SMALL_INT(args[ARG_i].u_int),
false);
return common_hal_displayio_group_pop(self, index);
}
MP_DEFINE_CONST_FUN_OBJ_KW(displayio_group_pop_obj, 1, displayio_group_obj_pop);
//| .. method:: __len__()
//|
//| Returns the number of layers in a Group
//|
STATIC mp_obj_t group_unary_op(mp_unary_op_t op, mp_obj_t self_in) {
displayio_group_t *self = MP_OBJ_TO_PTR(self_in);
uint16_t len = common_hal_displayio_group_get_len(self);
switch (op) {
case MP_UNARY_OP_BOOL: return mp_obj_new_bool(len != 0);
case MP_UNARY_OP_LEN: return MP_OBJ_NEW_SMALL_INT(len);
default: return MP_OBJ_NULL; // op not supported
}
}
//| .. method:: __getitem__(index)
//|
//| Returns the value at the given index.
//|
//| This allows you to::
//|
//| print(group[0])
//|
//| .. method:: __setitem__(index, value)
//|
//| Sets the value at the given index.
//|
//| This allows you to::
//|
//| group[0] = sprite
//|
//| .. method:: __delitem__(index)
//|
//| Deletes the value at the given index.
//|
//| This allows you to::
//|
//| del group[0]
//|
STATIC mp_obj_t group_subscr(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t value) {
displayio_group_t *self = MP_OBJ_TO_PTR(self_in);
if (MP_OBJ_IS_TYPE(index_obj, &mp_type_slice)) {
mp_raise_NotImplementedError(translate("Slices not supported"));
} else {
size_t index = mp_get_index(&displayio_group_type, common_hal_displayio_group_get_len(self), index_obj, false);
if (value == MP_OBJ_SENTINEL) {
// load
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_group_get(self, index));
} else if (value == mp_const_none) {
common_hal_displayio_group_pop(self, index);
} else {
common_hal_displayio_group_set(self, index, value);
}
}
return mp_const_none;
} }
MP_DEFINE_CONST_FUN_OBJ_1(displayio_group_pop_obj, displayio_group_obj_pop);
STATIC const mp_rom_map_elem_t displayio_group_locals_dict_table[] = { STATIC const mp_rom_map_elem_t displayio_group_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_scale), MP_ROM_PTR(&displayio_group_scale_obj) },
{ MP_ROM_QSTR(MP_QSTR_x), MP_ROM_PTR(&displayio_group_x_obj) },
{ MP_ROM_QSTR(MP_QSTR_y), MP_ROM_PTR(&displayio_group_y_obj) },
{ MP_ROM_QSTR(MP_QSTR_append), MP_ROM_PTR(&displayio_group_append_obj) }, { MP_ROM_QSTR(MP_QSTR_append), MP_ROM_PTR(&displayio_group_append_obj) },
{ MP_ROM_QSTR(MP_QSTR_insert), MP_ROM_PTR(&displayio_group_insert_obj) },
{ MP_ROM_QSTR(MP_QSTR_pop), MP_ROM_PTR(&displayio_group_pop_obj) }, { MP_ROM_QSTR(MP_QSTR_pop), MP_ROM_PTR(&displayio_group_pop_obj) },
}; };
STATIC MP_DEFINE_CONST_DICT(displayio_group_locals_dict, displayio_group_locals_dict_table); STATIC MP_DEFINE_CONST_DICT(displayio_group_locals_dict, displayio_group_locals_dict_table);
@ -100,5 +279,7 @@ const mp_obj_type_t displayio_group_type = {
{ &mp_type_type }, { &mp_type_type },
.name = MP_QSTR_Group, .name = MP_QSTR_Group,
.make_new = displayio_group_make_new, .make_new = displayio_group_make_new,
.subscr = group_subscr,
.unary_op = group_unary_op,
.locals_dict = (mp_obj_dict_t*)&displayio_group_locals_dict, .locals_dict = (mp_obj_dict_t*)&displayio_group_locals_dict,
}; };

View File

@ -32,8 +32,18 @@
extern const mp_obj_type_t displayio_group_type; extern const mp_obj_type_t displayio_group_type;
void common_hal_displayio_group_construct(displayio_group_t* self, uint32_t max_size); void common_hal_displayio_group_construct(displayio_group_t* self, uint32_t max_size, uint32_t scale);
uint32_t common_hal_displayio_group_get_scale(displayio_group_t* self);
void common_hal_displayio_group_set_scale(displayio_group_t* self, uint32_t scale);
mp_int_t common_hal_displayio_group_get_x(displayio_group_t* self);
void common_hal_displayio_group_set_x(displayio_group_t* self, mp_int_t x);
mp_int_t common_hal_displayio_group_get_y(displayio_group_t* self);
void common_hal_displayio_group_set_y(displayio_group_t* self, mp_int_t y);
void common_hal_displayio_group_append(displayio_group_t* self, mp_obj_t layer); void common_hal_displayio_group_append(displayio_group_t* self, mp_obj_t layer);
mp_obj_t common_hal_displayio_group_pop(displayio_group_t* self); void common_hal_displayio_group_insert(displayio_group_t* self, size_t index, mp_obj_t layer);
size_t common_hal_displayio_group_get_len(displayio_group_t* self);
mp_obj_t common_hal_displayio_group_pop(displayio_group_t* self, size_t index);
mp_obj_t common_hal_displayio_group_get(displayio_group_t* self, size_t index);
void common_hal_displayio_group_set(displayio_group_t* self, size_t index, mp_obj_t layer);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_GROUP_H #endif // MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_GROUP_H

View File

@ -42,8 +42,6 @@
//| much slower pixel load times. These load times may result in frame tearing where only part of //| much slower pixel load times. These load times may result in frame tearing where only part of
//| the image is visible. //| the image is visible.
//| //|
//| .. warning:: This will likely be changed before 4.0.0. Consider it very experimental.
//|
//| It's easiest to use on a board with a built in display such as the `Hallowing M0 Express //| It's easiest to use on a board with a built in display such as the `Hallowing M0 Express
//| <https://www.adafruit.com/product/3900>`_. //| <https://www.adafruit.com/product/3900>`_.
//| //|

View File

@ -44,8 +44,6 @@
//| Map a pixel palette_index to a full color. Colors are transformed to the display's format internally to //| Map a pixel palette_index to a full color. Colors are transformed to the display's format internally to
//| save memory. //| save memory.
//| //|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental.
//|
//| .. class:: Palette(color_count) //| .. class:: Palette(color_count)
//| //|
//| Create a Palette object to store a set number of colors. //| Create a Palette object to store a set number of colors.

View File

@ -45,8 +45,6 @@
//| Manage updating a display over SPI four wire protocol in the background while Python code runs. //| Manage updating a display over SPI four wire protocol in the background while Python code runs.
//| It doesn't handle display initialization. //| It doesn't handle display initialization.
//| //|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental.
//|
//| .. class:: ParallelBus(*, data0, command, chip_select, write, read, reset) //| .. class:: ParallelBus(*, data0, command, chip_select, write, read, reset)
//| //|
//| Create a ParallelBus object associated with the given pins. The bus is inferred from data0 //| Create a ParallelBus object associated with the given pins. The bus is inferred from data0

View File

@ -60,8 +60,6 @@ static void unpack_position(mp_obj_t position_obj, int16_t* x, int16_t* y) {
//| //|
//| A single tile grid is also known as a Sprite. //| A single tile grid is also known as a Sprite.
//| //|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental.
//|
//| .. class:: TileGrid(bitmap, *, pixel_shader, position, width=1, height=1, tile_width=None, tile_height=None, default_tile=0) //| .. class:: TileGrid(bitmap, *, pixel_shader, position, width=1, height=1, tile_width=None, tile_height=None, default_tile=0)
//| //|
//| Create a TileGrid object. The bitmap is source for 2d pixels. The pixel_shader is used to //| Create a TileGrid object. The bitmap is source for 2d pixels. The pixel_shader is used to

View File

@ -31,9 +31,11 @@
#include "shared-bindings/displayio/__init__.h" #include "shared-bindings/displayio/__init__.h"
#include "shared-bindings/displayio/Bitmap.h" #include "shared-bindings/displayio/Bitmap.h"
#include "shared-bindings/displayio/BuiltinFont.h"
#include "shared-bindings/displayio/ColorConverter.h" #include "shared-bindings/displayio/ColorConverter.h"
#include "shared-bindings/displayio/Display.h" #include "shared-bindings/displayio/Display.h"
#include "shared-bindings/displayio/FourWire.h" #include "shared-bindings/displayio/FourWire.h"
#include "shared-bindings/displayio/Glyph.h"
#include "shared-bindings/displayio/Group.h" #include "shared-bindings/displayio/Group.h"
#include "shared-bindings/displayio/OnDiskBitmap.h" #include "shared-bindings/displayio/OnDiskBitmap.h"
#include "shared-bindings/displayio/Palette.h" #include "shared-bindings/displayio/Palette.h"
@ -51,17 +53,17 @@
//| The `displayio` module contains classes to manage display output //| The `displayio` module contains classes to manage display output
//| including synchronizing with refresh rates and partial updating. //| including synchronizing with refresh rates and partial updating.
//| //|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental.
//|
//| Libraries //| Libraries
//| //|
//| .. toctree:: //| .. toctree::
//| :maxdepth: 3 //| :maxdepth: 3
//| //|
//| Bitmap //| Bitmap
//| BuiltinFont
//| ColorConverter //| ColorConverter
//| Display //| Display
//| FourWire //| FourWire
//| Glyph
//| Group //| Group
//| OnDiskBitmap //| OnDiskBitmap
//| Palette //| Palette
@ -88,8 +90,10 @@ MP_DEFINE_CONST_FUN_OBJ_0(displayio_release_displays_obj, displayio_release_disp
STATIC const mp_rom_map_elem_t displayio_module_globals_table[] = { STATIC const mp_rom_map_elem_t displayio_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_displayio) }, { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_displayio) },
{ MP_ROM_QSTR(MP_QSTR_Bitmap), MP_ROM_PTR(&displayio_bitmap_type) }, { MP_ROM_QSTR(MP_QSTR_Bitmap), MP_ROM_PTR(&displayio_bitmap_type) },
{ MP_ROM_QSTR(MP_QSTR_BuiltinFont), MP_ROM_PTR(&displayio_builtinfont_type) },
{ MP_ROM_QSTR(MP_QSTR_ColorConverter), MP_ROM_PTR(&displayio_colorconverter_type) }, { MP_ROM_QSTR(MP_QSTR_ColorConverter), MP_ROM_PTR(&displayio_colorconverter_type) },
{ MP_ROM_QSTR(MP_QSTR_Display), MP_ROM_PTR(&displayio_display_type) }, { MP_ROM_QSTR(MP_QSTR_Display), MP_ROM_PTR(&displayio_display_type) },
{ MP_ROM_QSTR(MP_QSTR_Glyph), MP_ROM_PTR(&displayio_glyph_type) },
{ MP_ROM_QSTR(MP_QSTR_Group), MP_ROM_PTR(&displayio_group_type) }, { MP_ROM_QSTR(MP_QSTR_Group), MP_ROM_PTR(&displayio_group_type) },
{ MP_ROM_QSTR(MP_QSTR_OnDiskBitmap), MP_ROM_PTR(&displayio_ondiskbitmap_type) }, { MP_ROM_QSTR(MP_QSTR_OnDiskBitmap), MP_ROM_PTR(&displayio_ondiskbitmap_type) },
{ MP_ROM_QSTR(MP_QSTR_Palette), MP_ROM_PTR(&displayio_palette_type) }, { MP_ROM_QSTR(MP_QSTR_Palette), MP_ROM_PTR(&displayio_palette_type) },

View File

@ -257,7 +257,7 @@ STATIC mp_obj_t pulsein_unary_op(mp_unary_op_t op, mp_obj_t self_in) {
} }
} }
//| .. method:: __get__(index) //| .. method:: __getitem__(index)
//| //|
//| Returns the value at the given index or values in slice. //| Returns the value at the given index or values in slice.
//| //|
@ -277,12 +277,7 @@ STATIC mp_obj_t pulsein_subscr(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t va
if (MP_OBJ_IS_TYPE(index_obj, &mp_type_slice)) { if (MP_OBJ_IS_TYPE(index_obj, &mp_type_slice)) {
mp_raise_NotImplementedError(translate("Slices not supported")); mp_raise_NotImplementedError(translate("Slices not supported"));
} else { } else {
uint16_t index = 0; size_t index = mp_get_index(&pulseio_pulsein_type, common_hal_pulseio_pulsein_get_len(self), index_obj, false);
if (MP_OBJ_IS_SMALL_INT(index_obj)) {
index = MP_OBJ_SMALL_INT_VALUE(index_obj);
} else {
mp_raise_TypeError(translate("index must be int"));
}
if (value == MP_OBJ_SENTINEL) { if (value == MP_OBJ_SENTINEL) {
// load // load
return MP_OBJ_NEW_SMALL_INT(common_hal_pulseio_pulsein_get_item(self, index)); return MP_OBJ_NEW_SMALL_INT(common_hal_pulseio_pulsein_get_item(self, index));

View File

@ -34,6 +34,7 @@
#include "py/objstr.h" #include "py/objstr.h"
#include "py/runtime.h" #include "py/runtime.h"
#include "py/stream.h" #include "py/stream.h"
#include "shared-bindings/displayio/BuiltinFont.h"
#include "supervisor/shared/translate.h" #include "supervisor/shared/translate.h"
@ -42,18 +43,17 @@
//| :class:`Terminal` -- display a character stream with a TileGrid //| :class:`Terminal` -- display a character stream with a TileGrid
//| ================================================================ //| ================================================================
//| //|
//| .. class:: Terminal(tilegrid, *, unicode_characters="") //| .. class:: Terminal(tilegrid, font)
//| //|
//| Terminal manages tile indices and cursor position based on VT100 commands. Visible ASCII //| Terminal manages tile indices and cursor position based on VT100 commands. The font should be
//| characters are mapped to the first 94 tile indices by substracting 0x20 from characters value. //| a `displayio.BuiltinFont` and the TileGrid's bitmap should match the font's bitmap.
//| Unicode characters are mapped based on unicode_characters starting at index 94.
//| //|
STATIC mp_obj_t terminalio_terminal_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) { STATIC mp_obj_t terminalio_terminal_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_tilegrid, ARG_unicode_characters }; enum { ARG_tilegrid, ARG_font };
static const mp_arg_t allowed_args[] = { static const mp_arg_t allowed_args[] = {
{ MP_QSTR_tilegrid, MP_ARG_REQUIRED | MP_ARG_OBJ }, { MP_QSTR_tilegrid, MP_ARG_REQUIRED | MP_ARG_OBJ },
{ MP_QSTR_unicode_characters, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_obj = mp_const_none} }, { MP_QSTR_font, MP_ARG_REQUIRED | MP_ARG_OBJ },
}; };
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)]; mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
@ -63,15 +63,13 @@ STATIC mp_obj_t terminalio_terminal_make_new(const mp_obj_type_t *type, size_t n
mp_raise_TypeError_varg(translate("Expected a %q"), displayio_tilegrid_type.name); mp_raise_TypeError_varg(translate("Expected a %q"), displayio_tilegrid_type.name);
} }
mp_obj_t unicode_characters_obj = args[ARG_unicode_characters].u_obj; mp_obj_t font = args[ARG_font].u_obj;
if (MP_OBJ_IS_STR(unicode_characters_obj)) { if (!MP_OBJ_IS_TYPE(font, &displayio_builtinfont_type)) {
mp_raise_TypeError(translate("unicode_characters must be a string")); mp_raise_TypeError_varg(translate("Expected a %q"), displayio_builtinfont_type.name);
} }
GET_STR_DATA_LEN(unicode_characters_obj, unicode_characters, unicode_characters_len);
terminalio_terminal_obj_t *self = m_new_obj(terminalio_terminal_obj_t); terminalio_terminal_obj_t *self = m_new_obj(terminalio_terminal_obj_t);
self->base.type = &terminalio_terminal_type; self->base.type = &terminalio_terminal_type;
common_hal_terminalio_terminal_construct(self, MP_OBJ_TO_PTR(tilegrid), unicode_characters, unicode_characters_len); common_hal_terminalio_terminal_construct(self, MP_OBJ_TO_PTR(tilegrid), MP_OBJ_TO_PTR(font));
return MP_OBJ_FROM_PTR(self); return MP_OBJ_FROM_PTR(self);
} }

View File

@ -34,7 +34,7 @@
extern const mp_obj_type_t terminalio_terminal_type; extern const mp_obj_type_t terminalio_terminal_type;
extern void common_hal_terminalio_terminal_construct(terminalio_terminal_obj_t *self, extern void common_hal_terminalio_terminal_construct(terminalio_terminal_obj_t *self,
displayio_tilegrid_t* tilegrid, const byte* unicode_characters, size_t unicode_characters_len); displayio_tilegrid_t* tilegrid, const displayio_builtinfont_t* font);
// Write characters. len is in characters NOT bytes! // Write characters. len is in characters NOT bytes!
extern size_t common_hal_terminalio_terminal_write(terminalio_terminal_obj_t *self, extern size_t common_hal_terminalio_terminal_write(terminalio_terminal_obj_t *self,

View File

@ -45,11 +45,6 @@
//| //|
//| Not currently dynamically supported. //| Not currently dynamically supported.
//| //|
STATIC mp_obj_t usb_hid_device_make_new(const mp_obj_type_t *type,
mp_uint_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
return mp_const_none;
}
//| .. method:: send_report(buf) //| .. method:: send_report(buf)
//| //|
//| Send a HID report. //| Send a HID report.
@ -114,6 +109,5 @@ STATIC MP_DEFINE_CONST_DICT(usb_hid_device_locals_dict, usb_hid_device_locals_di
const mp_obj_type_t usb_hid_device_type = { const mp_obj_type_t usb_hid_device_type = {
{ &mp_type_type }, { &mp_type_type },
.name = MP_QSTR_Device, .name = MP_QSTR_Device,
.make_new = usb_hid_device_make_new,
.locals_dict = (mp_obj_t)&usb_hid_device_locals_dict, .locals_dict = (mp_obj_t)&usb_hid_device_locals_dict,
}; };

View File

@ -42,7 +42,7 @@ void common_hal_displayio_bitmap_construct(displayio_bitmap_t *self, uint32_t wi
self->width = width; self->width = width;
self->height = height; self->height = height;
self->data = m_malloc(self->stride * height * sizeof(uint32_t), false); self->data = m_malloc(self->stride * height * sizeof(uint32_t), false);
self->read_only = false;
self->bits_per_value = bits_per_value; self->bits_per_value = bits_per_value;
if (bits_per_value > 8) { if (bits_per_value > 8) {
@ -64,6 +64,18 @@ void common_hal_displayio_bitmap_construct(displayio_bitmap_t *self, uint32_t wi
self->bitmask = (1 << bits_per_value) - 1; self->bitmask = (1 << bits_per_value) - 1;
} }
uint16_t common_hal_displayio_bitmap_get_height(displayio_bitmap_t *self) {
return self->height;
}
uint16_t common_hal_displayio_bitmap_get_width(displayio_bitmap_t *self) {
return self->width;
}
uint32_t common_hal_displayio_bitmap_get_bits_per_value(displayio_bitmap_t *self) {
return self->bits_per_value;
}
void common_hal_displayio_bitmap_load_row(displayio_bitmap_t *self, uint16_t y, uint8_t* data, uint16_t len) { void common_hal_displayio_bitmap_load_row(displayio_bitmap_t *self, uint16_t y, uint8_t* data, uint16_t len) {
if (len != self->stride * sizeof(uint32_t)) { if (len != self->stride * sizeof(uint32_t)) {
mp_raise_ValueError(translate("row must be packed and word aligned")); mp_raise_ValueError(translate("row must be packed and word aligned"));
@ -85,6 +97,7 @@ void common_hal_displayio_bitmap_load_row(displayio_bitmap_t *self, uint16_t y,
row_value++; row_value++;
} }
} }
uint32_t common_hal_displayio_bitmap_get_pixel(displayio_bitmap_t *self, int16_t x, int16_t y) { uint32_t common_hal_displayio_bitmap_get_pixel(displayio_bitmap_t *self, int16_t x, int16_t y) {
if (x >= self->width || x < 0 || y >= self->height || y < 0) { if (x >= self->width || x < 0 || y >= self->height || y < 0) {
return 0; return 0;
@ -99,3 +112,21 @@ uint32_t common_hal_displayio_bitmap_get_pixel(displayio_bitmap_t *self, int16_t
return self->data[row_start + x * bytes_per_value]; return self->data[row_start + x * bytes_per_value];
} }
} }
void common_hal_displayio_bitmap_set_pixel(displayio_bitmap_t *self, int16_t x, int16_t y, uint32_t value) {
if (self->read_only) {
mp_raise_RuntimeError(translate("Read-only object"));
}
int32_t row_start = y * self->stride;
if (self->bits_per_value < 8) {
uint32_t bit_position = (32 - ((x & self->x_mask) + 1) * self->bits_per_value);
uint32_t index = row_start + (x >> self->x_shift);
uint32_t word = self->data[index];
word &= ~(self->bitmask << bit_position);
word |= (value & self->bitmask) << bit_position;
self->data[index] = word;
} else {
uint32_t bytes_per_value = self->bits_per_value / 8;
self->data[row_start + x * bytes_per_value] = value;
}
}

View File

@ -42,6 +42,7 @@ typedef struct {
uint8_t x_shift; uint8_t x_shift;
uint8_t x_mask; uint8_t x_mask;
uint16_t bitmask; uint16_t bitmask;
bool read_only;
} displayio_bitmap_t; } displayio_bitmap_t;
#endif // MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_BITMAP_H #endif // MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_BITMAP_H

View File

@ -0,0 +1,79 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2018 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "shared-bindings/displayio/BuiltinFont.h"
#include "shared-bindings/displayio/Glyph.h"
#include "py/objnamedtuple.h"
mp_obj_t common_hal_displayio_builtinfont_get_bitmap(const displayio_builtinfont_t *self) {
return MP_OBJ_FROM_PTR(self->bitmap);
}
mp_obj_t common_hal_displayio_builtinfont_get_bounding_box(const displayio_builtinfont_t *self) {
mp_obj_t *items = m_new(mp_obj_t, 2);
items[0] = MP_OBJ_NEW_SMALL_INT(self->width);
items[1] = MP_OBJ_NEW_SMALL_INT(self->height);
return mp_obj_new_tuple(2, items);
}
uint8_t displayio_builtinfont_get_glyph_index(const displayio_builtinfont_t *self, mp_uint_t codepoint) {
if (codepoint >= 0x20 && codepoint <= 0x7e) {
return codepoint - 0x20;
}
// Do a linear search of the mapping for unicode.
const byte* j = self->unicode_characters;
uint8_t k = 0;
while (j < self->unicode_characters + self->unicode_characters_len) {
unichar potential_c = utf8_get_char(j);
j = utf8_next_char(j);
if (codepoint == potential_c) {
return 0x7f - 0x20 + k;
}
k++;
}
return 0xff;
}
mp_obj_t common_hal_displayio_builtinfont_get_glyph(const displayio_builtinfont_t *self, mp_uint_t codepoint) {
uint8_t glyph_index = displayio_builtinfont_get_glyph_index(self, codepoint);
if (glyph_index == 0xff) {
return mp_const_none;
}
mp_obj_t field_values[8] = {
MP_OBJ_FROM_PTR(self->bitmap),
MP_OBJ_NEW_SMALL_INT(glyph_index),
MP_OBJ_NEW_SMALL_INT(self->width),
MP_OBJ_NEW_SMALL_INT(self->height),
MP_OBJ_NEW_SMALL_INT(0),
MP_OBJ_NEW_SMALL_INT(0),
MP_OBJ_NEW_SMALL_INT(self->width),
MP_OBJ_NEW_SMALL_INT(0)
};
return namedtuple_make_new((const mp_obj_type_t*) &displayio_glyph_type, 8, field_values, NULL);
}

View File

@ -0,0 +1,47 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2018 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_BUILTINFONT_H
#define MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_BUILTINFONT_H
#include <stdbool.h>
#include <stdint.h>
#include "py/obj.h"
#include "shared-bindings/displayio/Bitmap.h"
typedef struct {
mp_obj_base_t base;
const displayio_bitmap_t* bitmap;
uint8_t width;
uint8_t height;
const byte* unicode_characters;
uint16_t unicode_characters_len;
} displayio_builtinfont_t;
uint8_t displayio_builtinfont_get_glyph_index(const displayio_builtinfont_t *self, mp_uint_t codepoint);
#endif // MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_BUILTINFONT_H

View File

@ -29,12 +29,39 @@
#include "py/runtime.h" #include "py/runtime.h"
#include "shared-bindings/displayio/TileGrid.h" #include "shared-bindings/displayio/TileGrid.h"
void common_hal_displayio_group_construct(displayio_group_t* self, uint32_t max_size) { void common_hal_displayio_group_construct(displayio_group_t* self, uint32_t max_size, uint32_t scale) {
mp_obj_t* children = m_new(mp_obj_t, max_size); mp_obj_t* children = m_new(mp_obj_t, max_size);
displayio_group_construct(self, children, max_size); displayio_group_construct(self, children, max_size, scale);
} }
void common_hal_displayio_group_append(displayio_group_t* self, mp_obj_t layer) { uint32_t common_hal_displayio_group_get_scale(displayio_group_t* self) {
return self->scale;
}
void common_hal_displayio_group_set_scale(displayio_group_t* self, uint32_t scale) {
self->scale = scale;
self->needs_refresh = true;
}
mp_int_t common_hal_displayio_group_get_x(displayio_group_t* self) {
return self->x;
}
void common_hal_displayio_group_set_x(displayio_group_t* self, mp_int_t x) {
self->x = x;
self->needs_refresh = true;
}
mp_int_t common_hal_displayio_group_get_y(displayio_group_t* self) {
return self->y;
}
void common_hal_displayio_group_set_y(displayio_group_t* self, mp_int_t y) {
self->y = y;
self->needs_refresh = true;
}
void common_hal_displayio_group_insert(displayio_group_t* self, size_t index, mp_obj_t layer) {
if (self->size == self->max_size) { if (self->size == self->max_size) {
mp_raise_RuntimeError(translate("Group full")); mp_raise_RuntimeError(translate("Group full"));
} }
@ -45,29 +72,47 @@ void common_hal_displayio_group_append(displayio_group_t* self, mp_obj_t layer)
if (native_layer == MP_OBJ_NULL) { if (native_layer == MP_OBJ_NULL) {
mp_raise_ValueError(translate("Layer must be a Group or TileGrid subclass.")); mp_raise_ValueError(translate("Layer must be a Group or TileGrid subclass."));
} }
self->children[self->size] = layer; // Shift everything right.
for (size_t i = index; i < self->size; i++) {
self->children[i + 1] = self->children[i];
}
self->children[index] = native_layer;
self->size++; self->size++;
self->needs_refresh = true; self->needs_refresh = true;
} }
mp_obj_t common_hal_displayio_group_pop(displayio_group_t* self) { mp_obj_t common_hal_displayio_group_pop(displayio_group_t* self, size_t index) {
if (self->size == 0) {
mp_raise_IndexError(translate("Group empty"));
}
self->size--; self->size--;
mp_obj_t item = self->children[self->size]; mp_obj_t item = self->children[index];
// Shift everything left.
for (size_t i = index; i < self->size; i++) {
self->children[i] = self->children[i + 1];
}
self->children[self->size] = NULL; self->children[self->size] = NULL;
self->needs_refresh = true; self->needs_refresh = true;
return item; return item;
} }
void displayio_group_construct(displayio_group_t* self, mp_obj_t* child_array, uint32_t max_size) { size_t common_hal_displayio_group_get_len(displayio_group_t* self) {
return self->size;
}
mp_obj_t common_hal_displayio_group_get(displayio_group_t* self, size_t index) {
return self->children[index];
}
void common_hal_displayio_group_set(displayio_group_t* self, size_t index, mp_obj_t layer) {
self->children[index] = layer;
self->needs_refresh = true;
}
void displayio_group_construct(displayio_group_t* self, mp_obj_t* child_array, uint32_t max_size, uint32_t scale) {
self->x = 0; self->x = 0;
self->y = 0; self->y = 0;
self->children = child_array; self->children = child_array;
self->max_size = max_size; self->max_size = max_size;
self->needs_refresh = false; self->needs_refresh = false;
self->scale = 1; self->scale = scale;
} }
bool displayio_group_get_pixel(displayio_group_t *self, int16_t x, int16_t y, uint16_t* pixel) { bool displayio_group_get_pixel(displayio_group_t *self, int16_t x, int16_t y, uint16_t* pixel) {
@ -86,7 +131,6 @@ bool displayio_group_get_pixel(displayio_group_t *self, int16_t x, int16_t y, ui
return true; return true;
} }
} }
// TODO: Tiled layer
} }
return false; return false;
} }

View File

@ -43,11 +43,7 @@ typedef struct {
bool needs_refresh; bool needs_refresh;
} displayio_group_t; } displayio_group_t;
void displayio_group_construct(displayio_group_t* self, mp_obj_t* child_array, uint32_t max_size, uint32_t scale);
void common_hal_displayio_group_construct(displayio_group_t* self, uint32_t max_size);
void common_hal_displayio_group_append(displayio_group_t* self, mp_obj_t layer);
void displayio_group_construct(displayio_group_t* self, mp_obj_t* child_array, uint32_t max_size);
bool displayio_group_get_pixel(displayio_group_t *group, int16_t x, int16_t y, uint16_t *pixel); bool displayio_group_get_pixel(displayio_group_t *group, int16_t x, int16_t y, uint16_t *pixel);
bool displayio_group_needs_refresh(displayio_group_t *self); bool displayio_group_needs_refresh(displayio_group_t *self);
void displayio_group_finish_refresh(displayio_group_t *self); void displayio_group_finish_refresh(displayio_group_t *self);

View File

@ -40,9 +40,17 @@ void common_hal_displayio_tilegrid_construct(displayio_tilegrid_t *self, mp_obj_
// Sprites will only have one tile so save a little memory by inlining values in the pointer. // Sprites will only have one tile so save a little memory by inlining values in the pointer.
uint8_t inline_tiles = sizeof(uint8_t*); uint8_t inline_tiles = sizeof(uint8_t*);
if (total_tiles <= inline_tiles) { if (total_tiles <= inline_tiles) {
self->tiles = 0;
// Pack values into the pointer since there are only a few.
for (uint32_t i = 0; i < inline_tiles; i++) {
((uint8_t*) &self->tiles)[i] = default_tile;
}
self->inline_tiles = true; self->inline_tiles = true;
} else { } else {
self->tiles = (uint8_t*) m_malloc(total_tiles, false); self->tiles = (uint8_t*) m_malloc(total_tiles, false);
for (uint32_t i = 0; i < total_tiles; i++) {
self->tiles[i] = default_tile;
}
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;

View File

@ -27,14 +27,14 @@
#include "shared-module/terminalio/Terminal.h" #include "shared-module/terminalio/Terminal.h"
#include "shared-module/displayio/__init__.h" #include "shared-module/displayio/__init__.h"
#include "shared-module/displayio/BuiltinFont.h"
#include "shared-bindings/displayio/TileGrid.h" #include "shared-bindings/displayio/TileGrid.h"
void common_hal_terminalio_terminal_construct(terminalio_terminal_obj_t *self, displayio_tilegrid_t* tilegrid, const uint8_t* unicode_characters, size_t unicode_characters_len) { void common_hal_terminalio_terminal_construct(terminalio_terminal_obj_t *self, displayio_tilegrid_t* tilegrid, const displayio_builtinfont_t* font) {
self->cursor_x = 0; self->cursor_x = 0;
self->cursor_y = 0; self->cursor_y = 0;
self->font = font;
self->tilegrid = tilegrid; self->tilegrid = tilegrid;
self->unicode_characters = unicode_characters;
self->unicode_characters_len = unicode_characters_len;
self->first_row = 0; self->first_row = 0;
} }
@ -47,10 +47,10 @@ size_t common_hal_terminalio_terminal_write(terminalio_terminal_obj_t *self, con
// Always handle ASCII. // Always handle ASCII.
if (c < 128) { if (c < 128) {
if (c >= 0x20 && c <= 0x7e) { if (c >= 0x20 && c <= 0x7e) {
common_hal_displayio_textgrid_set_tile(self->tilegrid, self->cursor_x, self->cursor_y, c - 0x20); uint8_t tile_index = displayio_builtinfont_get_glyph_index(self->font, c);
common_hal_displayio_textgrid_set_tile(self->tilegrid, self->cursor_x, self->cursor_y, tile_index);
self->cursor_x++; self->cursor_x++;
} } else if (c == '\r') {
if (c == '\r') {
self->cursor_x = 0; self->cursor_x = 0;
} else if (c == '\n') { } else if (c == '\n') {
self->cursor_y++; self->cursor_y++;
@ -76,6 +76,7 @@ size_t common_hal_terminalio_terminal_write(terminalio_terminal_obj_t *self, con
n = n * 10 + (i[j] - '0'); n = n * 10 + (i[j] - '0');
} else { } else {
c = i[j]; c = i[j];
break;
} }
} }
if (c == 'D') { if (c == 'D') {
@ -84,23 +85,18 @@ size_t common_hal_terminalio_terminal_write(terminalio_terminal_obj_t *self, con
} else { } else {
self->cursor_x -= n; self->cursor_x -= n;
} }
i += j;
} }
i += j + 1;
continue;
} }
} }
} }
} else { } else {
// Do a linear search of the mapping for unicode. uint8_t tile_index = displayio_builtinfont_get_glyph_index(self->font, c);
const byte* j = self->unicode_characters; if (tile_index != 0xff) {
uint8_t k = 0; common_hal_displayio_textgrid_set_tile(self->tilegrid, self->cursor_x, self->cursor_y, tile_index);
while (j < self->unicode_characters + self->unicode_characters_len) { self->cursor_x++;
unichar potential_c = utf8_get_char(j);
j = utf8_next_char(j);
if (c == potential_c) {
common_hal_displayio_textgrid_set_tile(self->tilegrid, self->cursor_x, self->cursor_y, 0x7f - 0x20 + k);
self->cursor_x++;
break;
}
} }
} }
if (self->cursor_x >= self->tilegrid->width_in_tiles) { if (self->cursor_x >= self->tilegrid->width_in_tiles) {

View File

@ -31,15 +31,15 @@
#include <stdbool.h> #include <stdbool.h>
#include "py/obj.h" #include "py/obj.h"
#include "shared-module/displayio/BuiltinFont.h"
#include "shared-module/displayio/TileGrid.h" #include "shared-module/displayio/TileGrid.h"
typedef struct { typedef struct {
mp_obj_base_t base; mp_obj_base_t base;
const displayio_builtinfont_t* font;
uint16_t cursor_x; uint16_t cursor_x;
uint16_t cursor_y; uint16_t cursor_y;
displayio_tilegrid_t* tilegrid; displayio_tilegrid_t* tilegrid;
const byte* unicode_characters;
uint16_t unicode_characters_len;
uint16_t first_row; uint16_t first_row;
} terminalio_terminal_obj_t; } terminalio_terminal_obj_t;

View File

@ -134,7 +134,8 @@ displayio_bitmap_t blinka_bitmap = {
.bits_per_value = 4, .bits_per_value = 4,
.x_shift = 3, .x_shift = 3,
.x_mask = 0x7, .x_mask = 0x7,
.bitmask = 0xf .bitmask = 0xf,
.read_only = true
}; };
uint32_t blinka_transparency[1] = {0x80000000}; uint32_t blinka_transparency[1] = {0x80000000};

View File

@ -27,6 +27,7 @@
#ifndef MICROPY_INCLUDED_SUPERVISOR_SHARED_DISPLAY_H #ifndef MICROPY_INCLUDED_SUPERVISOR_SHARED_DISPLAY_H
#define MICROPY_INCLUDED_SUPERVISOR_SHARED_DISPLAY_H #define MICROPY_INCLUDED_SUPERVISOR_SHARED_DISPLAY_H
#include "shared-bindings/displayio/BuiltinFont.h"
#include "shared-bindings/displayio/Bitmap.h" #include "shared-bindings/displayio/Bitmap.h"
#include "shared-bindings/displayio/TileGrid.h" #include "shared-bindings/displayio/TileGrid.h"
#include "shared-bindings/terminalio/Terminal.h" #include "shared-bindings/terminalio/Terminal.h"
@ -34,7 +35,9 @@
// 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; extern const displayio_bitmap_t supervisor_terminal_font_bitmap;
extern const displayio_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_tilegrid_t supervisor_terminal_text_grid; extern displayio_tilegrid_t supervisor_terminal_text_grid;

View File

@ -118,7 +118,7 @@ displayio_palette_t supervisor_terminal_color = {
c_file.write("""\ c_file.write("""\
displayio_tilegrid_t supervisor_terminal_text_grid = {{ displayio_tilegrid_t supervisor_terminal_text_grid = {{
.base = {{ .type = &displayio_tilegrid_type }}, .base = {{ .type = &displayio_tilegrid_type }},
.bitmap = (displayio_bitmap_t*) &supervisor_terminal_font, .bitmap = (displayio_bitmap_t*) &supervisor_terminal_font_bitmap,
.pixel_shader = &supervisor_terminal_color, .pixel_shader = &supervisor_terminal_color,
.x = 16, .x = 16,
.y = 0, .y = 0,
@ -149,7 +149,7 @@ c_file.write("""\
""") """)
c_file.write("""\ c_file.write("""\
const displayio_bitmap_t supervisor_terminal_font = {{ const displayio_bitmap_t supervisor_terminal_font_bitmap = {{
.base = {{.type = &displayio_bitmap_type }}, .base = {{.type = &displayio_bitmap_type }},
.width = {}, .width = {},
.height = {}, .height = {},
@ -158,17 +158,29 @@ const displayio_bitmap_t supervisor_terminal_font = {{
.bits_per_value = 1, .bits_per_value = 1,
.x_shift = 5, .x_shift = 5,
.x_mask = 0x1f, .x_mask = 0x1f,
.bitmask = 0x1 .bitmask = 0x1,
.read_only = true
}}; }};
""".format(len(all_characters) * tile_x, tile_y, bytes_per_row / 4)) """.format(len(all_characters) * tile_x, tile_y, bytes_per_row / 4))
c_file.write("""\ c_file.write("""\
terminalio_terminal_obj_t supervisor_terminal = {{ const displayio_builtinfont_t supervisor_terminal_font = {{
.base = {{.type = &terminalio_terminal_type }}, .base = {{.type = &displayio_builtinfont_type }},
.cursor_x = 0, .bitmap = &supervisor_terminal_font_bitmap,
.cursor_y = 0, .width = {},
.tilegrid = &supervisor_terminal_text_grid, .height = {},
.unicode_characters = (const uint8_t*) "{}", .unicode_characters = (const uint8_t*) "{}",
.unicode_characters_len = {} .unicode_characters_len = {}
}}; }};
""".format(extra_characters, len(extra_characters.encode("utf-8")))) """.format(tile_x, tile_y, extra_characters, len(extra_characters.encode("utf-8"))))
c_file.write("""\
terminalio_terminal_obj_t supervisor_terminal = {
.base = { .type = &terminalio_terminal_type },
.font = &supervisor_terminal_font,
.cursor_x = 0,
.cursor_y = 0,
.tilegrid = &supervisor_terminal_text_grid
};
""")