1
0
Fork 0

icons, fonts.digits: Switch over to 2-bit RLE encoding

The 2-bit RLE encoding, in addition to supporting colour is also fully
ROMable meaning we can save 32 bytes of RAM per image by switching to
2-bit encoding.

Switch everything in icons and font.clock over to 2-bit encoding.

Note: this requires all the clock PNG files to be reencoded (because
      they were originally in 1-bit grayscale format and this is no
      longer supported by the encoder).

This reduces RAM overhead by 480 bytes and has only a negligable effect
on FLASH usage (+4 bytes).

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
This commit is contained in:
Daniel Thompson 2020-12-28 12:01:15 +00:00
parent 8abb6f3f4d
commit aef6466550
16 changed files with 245 additions and 85 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 6 KiB

View file

Before

Width:  |  Height:  |  Size: 454 B

After

Width:  |  Height:  |  Size: 454 B

View file

Before

Width:  |  Height:  |  Size: 500 B

After

Width:  |  Height:  |  Size: 500 B

View file

@ -79,7 +79,7 @@ class ClockApp():
# Clear the display and draw that static parts of the watch face
draw.fill()
draw.rleblit(digits.clock_colon, pos=(2*48, 80), fg=mid)
draw.blit(digits.clock_colon, 2*48, 80, fg=mid)
# Redraw the status bar
wasp.system.bar.draw()
@ -98,10 +98,10 @@ class ClockApp():
month = MONTH[month*3:(month+1)*3]
# Draw the changeable parts of the watch face
draw.rleblit(DIGITS[now[4] % 10], pos=(4*48, 80), fg=hi)
draw.rleblit(DIGITS[now[4] // 10], pos=(3*48, 80), fg=lo)
draw.rleblit(DIGITS[now[3] % 10], pos=(1*48, 80), fg=hi)
draw.rleblit(DIGITS[now[3] // 10], pos=(0*48, 80), fg=lo)
draw.blit(DIGITS[now[4] % 10], 4*48, 80, fg=hi)
draw.blit(DIGITS[now[4] // 10], 3*48, 80, fg=lo)
draw.blit(DIGITS[now[3] % 10], 1*48, 80, fg=hi)
draw.blit(DIGITS[now[3] // 10], 0*48, 80, fg=lo)
draw.set_color(hi)
draw.string('{} {} {}'.format(now[2], month, now[0]),
0, 180, width=240)

View file

@ -1,33 +1,177 @@
# 1-bit RLE, generated from res/clock_0.png, 217 bytes
clock_0 = (48, 60, b'\x10\t%\x0e \x12\x1c\x16\x19\x18\x17\x1a\x16\n\x06\n\x15\t\n\t\x13\t\x0c\t\x12\x08\x0e\x08\x11\x08\x0f\t\x10\x08\x10\x08\x0f\x08\x11\x08\x0f\x08\x12\x08\x0e\x08\x12\x08\x0e\x07\x13\x08\r\x08\x14\x08\x0c\x08\x14\x08\x0c\x08\x14\x08\x0c\x08\x14\x08\x0c\x08\x14\x08\x0b\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\x0b\x08\x14\x08\x0c\x08\x14\x08\x0c\x08\x14\x08\x0c\x08\x14\x08\x0c\x08\x14\x08\r\x07\x13\x08\x0e\x08\x12\x08\x0e\x08\x12\x08\x0e\x08\x11\t\x0f\x08\x10\x08\x10\x08\x0f\t\x11\x08\x0e\x08\x12\t\x0c\t\x13\t\n\t\x15\n\x06\n\x16\x1a\x17\x18\x19\x16\x1c\x12\x1f\x0f$\n\x16')
# 2-bit RLE, generated from res/clock_0.png, 220 bytes
clock_0 = (
b'\x02'
b'0<'
b'\x10\xc9%\xce \xd2\x1c\xd6\x19\xd8\x17\xda\x16\xca\x06\xca'
b'\x15\xc9\n\xc9\x13\xc9\x0c\xc9\x12\xc8\x0e\xc8\x11\xc8\x0f\xc9'
b'\x10\xc8\x10\xc8\x0f\xc8\x11\xc8\x0f\xc8\x12\xc8\x0e\xc8\x12\xc8'
b'\x0e\xc7\x13\xc8\r\xc8\x14\xc8\x0c\xc8\x14\xc8\x0c\xc8\x14\xc8'
b'\x0c\xc8\x14\xc8\x0c\xc8\x14\xc8\x0b\xc8\x16\xc8\n\xc8\x16\xc8'
b'\n\xc8\x16\xc8\n\xc8\x16\xc8\n\xc8\x16\xc8\n\xc8\x16\xc8'
b'\n\xc8\x16\xc8\n\xc8\x16\xc8\n\xc8\x16\xc8\n\xc8\x16\xc8'
b'\n\xc8\x16\xc8\n\xc8\x16\xc8\n\xc8\x16\xc8\n\xc8\x16\xc8'
b'\n\xc8\x16\xc8\n\xc8\x16\xc8\n\xc8\x16\xc8\n\xc8\x16\xc8'
b'\x0b\xc8\x14\xc8\x0c\xc8\x14\xc8\x0c\xc8\x14\xc8\x0c\xc8\x14\xc8'
b'\x0c\xc8\x14\xc8\r\xc7\x13\xc8\x0e\xc8\x12\xc8\x0e\xc8\x12\xc8'
b'\x0e\xc8\x11\xc9\x0f\xc8\x10\xc8\x10\xc8\x0f\xc9\x11\xc8\x0e\xc8'
b'\x12\xc9\x0c\xc9\x13\xc9\n\xc9\x15\xca\x06\xca\x16\xda\x17\xd8'
b'\x19\xd6\x1c\xd2\x1f\xcf$\xca\x16'
)
# 1-bit RLE, generated from res/clock_1.png, 123 bytes
clock_1 = (48, 60, b'B\n"\x0e\x1d\x13\x1b\x15\x1b\x15\x1b\x15\x1b\x0b\x02\x08\x1b\x07\x06\x08\x1b\x02\x0b\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08\x1c \x10 \x10 \x10 \x10 \x10 8')
# 2-bit RLE, generated from res/clock_1.png, 127 bytes
clock_1 = (
b'\x02'
b'0<'
b'?\x03\xca"\xce\x1d\xd3\x1b\xd5\x1b\xd5\x1b\xd5\x1b\xcb\x02'
b'\xc8\x1b\xc7\x06\xc8\x1b\xc2\x0b\xc8(\xc8(\xc8(\xc8('
b'\xc8(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8('
b'\xc8(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8('
b'\xc8(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8('
b'\xc8(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8('
b'\xc8(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8\x1c'
b'\xe0\x10\xe0\x10\xe0\x10\xe0\x10\xe0\x10\xe08'
)
# 1-bit RLE, generated from res/clock_2.png, 131 bytes
clock_2 = (48, 60, b"\x0e\x0c \x14\x19\x19\x14\x1e\x11 \x10!\x0f\r\t\x0c\x0e\t\x10\n\r\x07\x13\n\x0c\x05\x16\t\x0c\x03\x19\t\x0b\x01\x1c\x08(\x08)\x08(\x08(\x08(\x08(\x08(\x08(\x08'\x08(\x08(\x08'\x08'\t'\x08'\t&\t&\t'\t&\t&\t&\t&\t&\t&\t&\t&\t&\t&\t&\t&\t&\t&\t&\t&\t&\t&\t&\t&\t&\t&\t&\t&&\n&\n&\n&\n&\n&7")
# 2-bit RLE, generated from res/clock_2.png, 134 bytes
clock_2 = (
b'\x02'
b'0<'
b'\x0e\xcc \xd4\x19\xd9\x14\xde\x11\xe0\x10\xe1\x0f\xcd\t\xcc'
b'\x0e\xc9\x10\xca\r\xc7\x13\xca\x0c\xc5\x16\xc9\x0c\xc3\x19\xc9'
b'\x0b\xc1\x1c\xc8(\xc8)\xc8(\xc8(\xc8(\xc8(\xc8'
b"(\xc8(\xc8'\xc8(\xc8(\xc8'\xc8'\xc9'\xc8"
b"'\xc9&\xc9&\xc9'\xc9&\xc9&\xc9&\xc9&\xc9"
b'&\xc9&\xc9&\xc9&\xc9&\xc9&\xc9&\xc9&\xc9'
b'&\xc9&\xc9&\xc9&\xc9&\xc9&\xc9&\xc9&\xc9'
b'&\xc9&\xc9&\xc9&\xe6\n\xe6\n\xe6\n\xe6\n\xe6'
b'\n\xe67'
)
# 1-bit RLE, generated from res/clock_3.png, 139 bytes
clock_3 = (48, 60, b"\x0e\x0b \x14\x19\x19\x15\x1d\x13\x1e\x12\x1f\x11\n\n\x0c\x10\x06\x11\n\x0f\x03\x15\t\x0f\x01\x18\t(\x08(\x08)\x08(\x08(\x08(\x08(\x08(\x08(\x08'\x08(\x08'\t&\t%\n#\x0c\x19\x16\x1a\x14\x1c\x12\x1e\x12\x1e\x14\x1c\x16%\x0c'\n(\t(\t(\x08(\t(\x08(\x08)\x08(\x08(\x08(\x08(\x08(\x08(\x08'\t'\x08'\t\x0b\x01\x1b\t\x0b\x03\x18\t\x0c\x05\x15\n\x0c\x07\x11\x0b\r\x0b\n\r\x0e!\x0f \x10\x1f\x12\x1c\x18\x16\x1f\r\x17")
# 2-bit RLE, generated from res/clock_3.png, 142 bytes
clock_3 = (
b'\x02'
b'0<'
b'\x0e\xcb \xd4\x19\xd9\x15\xdd\x13\xde\x12\xdf\x11\xca\n\xcc'
b'\x10\xc6\x11\xca\x0f\xc3\x15\xc9\x0f\xc1\x18\xc9(\xc8(\xc8'
b")\xc8(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8'\xc8"
b"(\xc8'\xc9&\xc9%\xca#\xcc\x19\xd6\x1a\xd4\x1c\xd2"
b"\x1e\xd2\x1e\xd4\x1c\xd6%\xcc'\xca(\xc9(\xc9(\xc8"
b'(\xc9(\xc8(\xc8)\xc8(\xc8(\xc8(\xc8(\xc8'
b"(\xc8(\xc8'\xc9'\xc8'\xc9\x0b\xc1\x1b\xc9\x0b\xc3"
b'\x18\xc9\x0c\xc5\x15\xca\x0c\xc7\x11\xcb\r\xcb\n\xcd\x0e\xe1'
b'\x0f\xe0\x10\xdf\x12\xdc\x18\xd6\x1f\xcd\x17'
)
# 1-bit RLE, generated from res/clock_4.png, 177 bytes
clock_4 = (48, 60, b'H\t&\n%\x0b%\x0b$\x0c$\x0c#\r"\x0e"\x05\x01\x08!\x06\x01\x08 \x06\x02\x08 \x06\x02\x08\x1f\x06\x03\x08\x1f\x05\x04\x08\x1e\x06\x04\x08\x1d\x06\x05\x08\x1d\x06\x05\x08\x1c\x06\x06\x08\x1b\x06\x07\x08\x1b\x06\x07\x08\x1a\x06\x08\x08\x19\x07\x08\x08\x19\x06\t\x08\x18\x07\t\x08\x18\x06\n\x08\x17\x06\x0b\x08\x16\x07\x0b\x08\x16\x06\x0c\x08\x15\x07\x0c\x08\x14\x07\r\x08\x14\x06\x0e\x08\x13\x07\x0e\x08\x13\x06\x0f\x08\x12\x07\x0f\x08\x11\x07\x10\x08\x11\x07\x10\x08\x10\x07\x11\x08\x10\x06\x12\x08\x10(\x08(\x08(\x08(\x08(\x08( \x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08?')
# 2-bit RLE, generated from res/clock_4.png, 182 bytes
clock_4 = (
b'\x02'
b'0<'
b'?\t\xc9&\xca%\xcb%\xcb$\xcc$\xcc#\xcd"'
b'\xce"\xc5\x01\xc8!\xc6\x01\xc8 \xc6\x02\xc8 \xc6\x02'
b'\xc8\x1f\xc6\x03\xc8\x1f\xc5\x04\xc8\x1e\xc6\x04\xc8\x1d\xc6\x05'
b'\xc8\x1d\xc6\x05\xc8\x1c\xc6\x06\xc8\x1b\xc6\x07\xc8\x1b\xc6\x07'
b'\xc8\x1a\xc6\x08\xc8\x19\xc7\x08\xc8\x19\xc6\t\xc8\x18\xc7\t'
b'\xc8\x18\xc6\n\xc8\x17\xc6\x0b\xc8\x16\xc7\x0b\xc8\x16\xc6\x0c'
b'\xc8\x15\xc7\x0c\xc8\x14\xc7\r\xc8\x14\xc6\x0e\xc8\x13\xc7\x0e'
b'\xc8\x13\xc6\x0f\xc8\x12\xc7\x0f\xc8\x11\xc7\x10\xc8\x11\xc7\x10'
b'\xc8\x10\xc7\x11\xc8\x10\xc6\x12\xc8\x10\xe8\x08\xe8\x08\xe8\x08'
b'\xe8\x08\xe8\x08\xe8 \xc8(\xc8(\xc8(\xc8(\xc8('
b'\xc8(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8('
b'\xc8?\x00'
)
# 1-bit RLE, generated from res/clock_5.png, 137 bytes
clock_5 = (48, 60, b"6\x1f\x11\x1f\x11\x1f\x11\x1f\x11\x1f\x11\x1f\x11\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08\x02\n\x1c\x18\x18\x1a\x16\x1b\x15\x1d\x13\x1e\x12\x07\n\x0e\x11\x03\x11\x0b\x11\x01\x15\n'\n'\t(\t'\t(\x08(\x08(\t(\x08(\x08(\x08(\x08(\x08(\x08(\x08(\x08'\t'\x08(\x08'\t'\x08\x0c\x01\x1a\t\x0c\x02\x18\t\r\x04\x15\n\r\x07\x10\x0b\x0e\x0b\t\r\x0f \x10\x1f\x11\x1e\x13\x1b\x18\x16\x1f\r\x17")
# 2-bit RLE, generated from res/clock_5.png, 140 bytes
clock_5 = (
b'\x02'
b'0<'
b'6\xdf\x11\xdf\x11\xdf\x11\xdf\x11\xdf\x11\xdf\x11\xc8(\xc8'
b'(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8'
b'(\xc8(\xc8(\xc8(\xc8\x02\xca\x1c\xd8\x18\xda\x16\xdb'
b'\x15\xdd\x13\xde\x12\xc7\n\xce\x11\xc3\x11\xcb\x11\xc1\x15\xca'
b"'\xca'\xc9(\xc9'\xc9(\xc8(\xc8(\xc9(\xc8"
b"(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8(\xc8'\xc9"
b"'\xc8(\xc8'\xc9'\xc8\x0c\xc1\x1a\xc9\x0c\xc2\x18\xc9"
b'\r\xc4\x15\xca\r\xc7\x10\xcb\x0e\xcb\t\xcd\x0f\xe0\x10\xdf'
b'\x11\xde\x13\xdb\x18\xd6\x1f\xcd\x17'
)
# 1-bit RLE, generated from res/clock_6.png, 197 bytes
clock_6 = (48, 60, b'\x13\x0b"\x12\x1c\x16\x18\x18\x17\x19\x16\x1a\x15\x0c\x08\x07\x14\n\x0f\x03\x13\t\x13\x01\x13\x08\'\x08\'\x08(\x07)\x07(\x07)\x07)\x07(\x07)\x07)\x07)\x07\x08\t\x18\x06\x06\x0f\x14\x07\x05\x12\x12\x07\x03\x15\x11\x07\x02\x18\x0f\x07\x01\x1a\x0e\x07\x01\x08\x07\x0b\x0e\x0e\x0b\n\r\r\r\n\x0c\x0c\x0f\t\x0c\x0b\x11\x08\x0c\x0b\x12\x08\x0b\n\x13\x08\x0b\n\x13\x08\x0b\n\x13\t\n\t\x15\x08\n\t\x15\x08\n\t\x15\x08\n\t\x15\x08\x0b\x08\x15\x08\x0b\x08\x15\x08\x0b\x08\x15\x08\x0b\x08\x15\x08\x0b\x08\x15\x08\x0b\x08\x15\x08\x0c\x08\x13\t\x0c\x08\x13\x08\r\x08\x13\x08\x0e\x08\x12\x08\x0e\x08\x11\x08\x0f\t\x0f\t\x10\t\r\t\x12\t\x0b\n\x12\x0b\x07\x0b\x14\x1b\x16\x19\x18\x17\x1b\x14\x1e\x10#\n\x15')
# 2-bit RLE, generated from res/clock_6.png, 200 bytes
clock_6 = (
b'\x02'
b'0<'
b'\x13\xcb"\xd2\x1c\xd6\x18\xd8\x17\xd9\x16\xda\x15\xcc\x08\xc7'
b"\x14\xca\x0f\xc3\x13\xc9\x13\xc1\x13\xc8'\xc8'\xc8(\xc7"
b')\xc7(\xc7)\xc7)\xc7(\xc7)\xc7)\xc7)\xc7'
b'\x08\xc9\x18\xc6\x06\xcf\x14\xc7\x05\xd2\x12\xc7\x03\xd5\x11\xc7'
b'\x02\xd8\x0f\xc7\x01\xda\x0e\xc7\x01\xc8\x07\xcb\x0e\xce\x0b\xca'
b'\r\xcd\r\xca\x0c\xcc\x0f\xc9\x0c\xcb\x11\xc8\x0c\xcb\x12\xc8'
b'\x0b\xca\x13\xc8\x0b\xca\x13\xc8\x0b\xca\x13\xc9\n\xc9\x15\xc8'
b'\n\xc9\x15\xc8\n\xc9\x15\xc8\n\xc9\x15\xc8\x0b\xc8\x15\xc8'
b'\x0b\xc8\x15\xc8\x0b\xc8\x15\xc8\x0b\xc8\x15\xc8\x0b\xc8\x15\xc8'
b'\x0b\xc8\x15\xc8\x0c\xc8\x13\xc9\x0c\xc8\x13\xc8\r\xc8\x13\xc8'
b'\x0e\xc8\x12\xc8\x0e\xc8\x11\xc8\x0f\xc9\x0f\xc9\x10\xc9\r\xc9'
b'\x12\xc9\x0b\xca\x12\xcb\x07\xcb\x14\xdb\x16\xd9\x18\xd7\x1b\xd4'
b'\x1e\xd0#\xca\x15'
)
# 1-bit RLE, generated from res/clock_7.png, 117 bytes
clock_7 = (48, 60, b"2&\n&\n&\n&\n&\n%(\x08'\x08(\x08(\x08'\x08(\x08'\x08(\x08(\x08'\x08(\x08'\x08(\x08'\t'\x08(\x08'\x08(\x08'\t'\x08(\x08'\t'\x08'\t'\x08(\x08'\t'\x08'\t'\x08(\x08'\t'\x08'\t'\x08(\x08'\t'\x08'\t'\x08(\x08'\t'\x08'\t'\x08(\x08'\t'\x08'\t'\x08(\x08'\tM")
# 2-bit RLE, generated from res/clock_7.png, 121 bytes
clock_7 = (
b'\x02'
b'0<'
b"2\xe6\n\xe6\n\xe6\n\xe6\n\xe6\n\xe5(\xc8'\xc8"
b"(\xc8(\xc8'\xc8(\xc8'\xc8(\xc8(\xc8'\xc8"
b"(\xc8'\xc8(\xc8'\xc9'\xc8(\xc8'\xc8(\xc8"
b"'\xc9'\xc8(\xc8'\xc9'\xc8'\xc9'\xc8(\xc8"
b"'\xc9'\xc8'\xc9'\xc8(\xc8'\xc9'\xc8'\xc9"
b"'\xc8(\xc8'\xc9'\xc8'\xc9'\xc8(\xc8'\xc9"
b"'\xc8'\xc9'\xc8(\xc8'\xc9'\xc8'\xc9'\xc8"
b"(\xc8'\xc9?\x0e"
)
# 1-bit RLE, generated from res/clock_8.png, 205 bytes
clock_8 = (48, 60, b'\x10\n"\x12\x1c\x16\x18\x19\x16\x1c\x13\x1e\x11\x0c\x08\x0b\x11\n\x0c\n\x0f\n\x0e\n\x0e\t\x10\t\x0e\x08\x12\x08\r\t\x12\t\x0c\x08\x14\x08\x0c\x08\x14\x08\x0c\x08\x14\x08\x0c\x08\x14\x08\x0c\x08\x14\x08\x0c\x08\x14\x08\x0c\x08\x14\x08\r\x08\x12\x08\x0e\x08\x12\x08\x0f\x08\x10\x08\x10\x08\x10\x08\x11\t\x0c\t\x13\n\x08\n\x15\x19\x19\x16\x1d\x10\x1f\x12\x1b\x18\x17\x1a\x14\x0b\x08\n\x13\t\x0c\t\x11\x08\x10\x08\x0f\x08\x12\x08\x0e\x08\x12\x08\r\x08\x14\x08\x0c\x08\x14\x08\x0c\x07\x15\x08\x0b\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\x08\x16\x08\n\t\x14\t\x0b\x08\x14\x08\x0c\t\x12\t\x0c\t\x12\t\r\t\x10\t\x0e\x0b\x0c\x0b\x0f\x0c\x08\x0c\x11\x1e\x13\x1c\x15\x1a\x18\x16\x1c\x12"\n\x16')
# 2-bit RLE, generated from res/clock_8.png, 208 bytes
clock_8 = (
b'\x02'
b'0<'
b'\x10\xca"\xd2\x1c\xd6\x18\xd9\x16\xdc\x13\xde\x11\xcc\x08\xcb'
b'\x11\xca\x0c\xca\x0f\xca\x0e\xca\x0e\xc9\x10\xc9\x0e\xc8\x12\xc8'
b'\r\xc9\x12\xc9\x0c\xc8\x14\xc8\x0c\xc8\x14\xc8\x0c\xc8\x14\xc8'
b'\x0c\xc8\x14\xc8\x0c\xc8\x14\xc8\x0c\xc8\x14\xc8\x0c\xc8\x14\xc8'
b'\r\xc8\x12\xc8\x0e\xc8\x12\xc8\x0f\xc8\x10\xc8\x10\xc8\x10\xc8'
b'\x11\xc9\x0c\xc9\x13\xca\x08\xca\x15\xd9\x19\xd6\x1d\xd0\x1f\xd2'
b'\x1b\xd8\x17\xda\x14\xcb\x08\xca\x13\xc9\x0c\xc9\x11\xc8\x10\xc8'
b'\x0f\xc8\x12\xc8\x0e\xc8\x12\xc8\r\xc8\x14\xc8\x0c\xc8\x14\xc8'
b'\x0c\xc7\x15\xc8\x0b\xc8\x16\xc8\n\xc8\x16\xc8\n\xc8\x16\xc8'
b'\n\xc8\x16\xc8\n\xc8\x16\xc8\n\xc8\x16\xc8\n\xc8\x16\xc8'
b'\n\xc8\x16\xc8\n\xc9\x14\xc9\x0b\xc8\x14\xc8\x0c\xc9\x12\xc9'
b'\x0c\xc9\x12\xc9\r\xc9\x10\xc9\x0e\xcb\x0c\xcb\x0f\xcc\x08\xcc'
b'\x11\xde\x13\xdc\x15\xda\x18\xd6\x1c\xd2"\xca\x16'
)
# 1-bit RLE, generated from res/clock_9.png, 197 bytes
clock_9 = (48, 60, b'\x0f\n#\x10\x1e\x14\x1b\x17\x17\x1a\x15\x1c\x14\x0b\x07\x0b\x12\n\x0b\t\x11\n\r\t\x10\t\x0f\x08\x10\x08\x11\x08\x0e\x08\x12\x08\x0e\x08\x13\x08\r\x08\x13\x08\x0c\t\x13\x08\x0c\x08\x15\x08\x0b\x08\x15\x08\x0b\x08\x15\x08\x0b\x08\x15\x08\x0b\x08\x15\x08\x0b\x08\x15\x08\x0b\x08\x15\t\n\x08\x15\t\n\x08\x15\t\n\x08\x15\t\n\x08\x14\n\x0b\x08\x13\n\x0b\x08\x13\n\x0b\x08\x12\x0b\x0c\x08\x11\x0b\x0c\t\x0f\x0c\x0c\t\x0e\r\r\n\x0b\x0e\x0e\x0b\x07\x08\x01\x07\x0e\x1a\x01\x07\x0f\x18\x02\x07\x11\x15\x03\x07\x12\x12\x05\x07\x14\x0f\x06\x06\x18\t\x08\x07)\x07)\x07)\x07(\x07)\x07)\x07(\x07)\x07(\x08\'\x08\'\x08\x13\x01\x13\t\x13\x03\x0f\n\x14\x06\n\x0b\x15\x1a\x16\x19\x17\x18\x18\x16\x1b\x13"\x0b\x19')
# 1-bit RLE, generated from res/clock_colon.png, 61 bytes
clock_colon = (48, 60, b'\xff\x00\xff\x00\xff\x00s\n&\n&\n&\n&\n&\n&\n&\n&\n&\n&\n&\n\xff\x00\xff\x00\xff\x00Y\n&\n&\n&\n&\n&\n&\n&\n&\n&\n&\n&\nF')
# 2-bit RLE, generated from res/clock_9.png, 200 bytes
clock_9 = (
b'\x02'
b'0<'
b'\x0f\xca#\xd0\x1e\xd4\x1b\xd7\x17\xda\x15\xdc\x14\xcb\x07\xcb'
b'\x12\xca\x0b\xc9\x11\xca\r\xc9\x10\xc9\x0f\xc8\x10\xc8\x11\xc8'
b'\x0e\xc8\x12\xc8\x0e\xc8\x13\xc8\r\xc8\x13\xc8\x0c\xc9\x13\xc8'
b'\x0c\xc8\x15\xc8\x0b\xc8\x15\xc8\x0b\xc8\x15\xc8\x0b\xc8\x15\xc8'
b'\x0b\xc8\x15\xc8\x0b\xc8\x15\xc8\x0b\xc8\x15\xc9\n\xc8\x15\xc9'
b'\n\xc8\x15\xc9\n\xc8\x15\xc9\n\xc8\x14\xca\x0b\xc8\x13\xca'
b'\x0b\xc8\x13\xca\x0b\xc8\x12\xcb\x0c\xc8\x11\xcb\x0c\xc9\x0f\xcc'
b'\x0c\xc9\x0e\xcd\r\xca\x0b\xce\x0e\xcb\x07\xc8\x01\xc7\x0e\xda'
b'\x01\xc7\x0f\xd8\x02\xc7\x11\xd5\x03\xc7\x12\xd2\x05\xc7\x14\xcf'
b'\x06\xc6\x18\xc9\x08\xc7)\xc7)\xc7)\xc7(\xc7)\xc7'
b")\xc7(\xc7)\xc7(\xc8'\xc8'\xc8\x13\xc1\x13\xc9"
b'\x13\xc3\x0f\xca\x14\xc6\n\xcb\x15\xda\x16\xd9\x17\xd8\x18\xd6'
b'\x1b\xd3"\xcb\x19'
)
# 2-bit RLE, generated from res/clock_colon.png, 61 bytes
clock_colon = (
b'\x02'
b'0<'
b'?\xff\xff\xff4\xca&\xca&\xca&\xca&\xca&\xca'
b'&\xca&\xca&\xca&\xca&\xca&\xca?\xff\xff\xff'
b'\x1a\xca&\xca&\xca&\xca&\xca&\xca&\xca&\xca'
b'&\xca&\xca&\xca&\xca?\x07'
)

View file

@ -144,11 +144,19 @@ torch = (
b'\xff\x95'
)
# 1-bit RLE, generated from res/up_arrow.png, 16 bytes
up_arrow = (16, 9, b'\x07\x02\r\x04\x0b\x06\t\x08\x07\n\x05\x0c\x03\x0e\x01 ')
# 2-bit RLE, generated from res/up_arrow.png, 19 bytes
up_arrow = (
b'\x02'
b'\x10\t'
b'\x07\xc2\r\xc4\x0b\xc6\t\xc8\x07\xca\x05\xcc\x03\xce\x01\xe0'
)
# 1-bit RLE, generated from res/down_arrow.png, 17 bytes
down_arrow = (16, 9, b'\x00 \x01\x0e\x03\x0c\x05\n\x07\x08\t\x06\x0b\x04\r\x02\x07')
# 2-bit RLE, generated from res/down_arrow.png, 19 bytes
down_arrow = (
b'\x02'
b'\x10\t'
b'\xe0\x01\xce\x03\xcc\x05\xca\x07\xc8\t\xc6\x0b\xc4\r\xc2\x07'
)
# 2-bit RLE, generated from res/knob.png, 72 bytes
knob = (
@ -258,61 +266,69 @@ pause = (
b'&\xe0)\xdd-\xda1\xd47\xce?\xff\x8f'
)
# 2-bit RLE, generated from res/yes_button.png, 432 bytes
yes_button = (
96, 60,
b'a]\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01'
b'[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01'
b'[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01'
b'[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01'
b'\x08\x05\x0f\x05\x05\x14\n\x0f\x08\x01\x03\x01\x08\x05\x0f\x05'
b'\x05\x14\n\x0f\x08\x01\x03\x01\x08\x05\x0f\x05\x05\x14\n\x0f'
b'\x08\x01\x03\x01\x08\x05\x0f\x05\x05\x14\n\x0f\x08\x01\x03\x01'
b'\x08\x05\x0f\x05\x05\x14\n\x0f\x08\x01\x03\x01\x08\x05\x0f\x05'
b'\x05\x05\x14\x05\x17\x01\x03\x01\x08\x05\x0f\x05\x05\x05\x14\x05'
b'\x17\x01\x03\x01\x08\x05\x0f\x05\x05\x05\x14\x05\x17\x01\x03\x01'
b'\x08\x05\x0f\x05\x05\x05\x14\x05\x17\x01\x03\x01\x08\x05\x0f\x05'
b'\x05\x05\x14\x05\x17\x01\x03\x01\r\x0f\n\x0f\x0f\n\r\x01'
b'\x03\x01\r\x0f\n\x0f\x0f\n\r\x01\x03\x01\r\x0f\n\x0f'
b'\x0f\n\r\x01\x03\x01\r\x0f\n\x0f\x0f\n\r\x01\x03\x01'
b'\r\x0f\n\x0f\x0f\n\r\x01\x03\x01\x12\x05\x0f\x05#\x05'
b'\x08\x01\x03\x01\x12\x05\x0f\x05#\x05\x08\x01\x03\x01\x12\x05'
b'\x0f\x05#\x05\x08\x01\x03\x01\x12\x05\x0f\x05#\x05\x08\x01'
b'\x03\x01\x12\x05\x0f\x05#\x05\x08\x01\x03\x01\x12\x05\x0f\x14'
b'\x05\x0f\r\x01\x03\x01\x12\x05\x0f\x14\x05\x0f\r\x01\x03\x01'
b'\x12\x05\x0f\x14\x05\x0f\r\x01\x03\x01\x12\x05\x0f\x14\x05\x0f'
b'\r\x01\x03\x01\x12\x05\x0f\x14\x05\x0f\r\x01\x03\x01[\x01'
b'\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01'
b'\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01'
b'\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01'
b'\x03\x01[\x01\x03\x01[\x01\x03]\xc2'
b'\x02'
b'`<'
b'?"\xff\x1e\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1'
b'?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?'
b'\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c'
b'\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1'
b'\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03'
b'\xc1\x08\xc5\x0f\xc5\x05\xd4\n\xcf\x08\xc1\x03\xc1\x08\xc5\x0f'
b'\xc5\x05\xd4\n\xcf\x08\xc1\x03\xc1\x08\xc5\x0f\xc5\x05\xd4\n'
b'\xcf\x08\xc1\x03\xc1\x08\xc5\x0f\xc5\x05\xd4\n\xcf\x08\xc1\x03'
b'\xc1\x08\xc5\x0f\xc5\x05\xd4\n\xcf\x08\xc1\x03\xc1\x08\xc5\x0f'
b'\xc5\x05\xc5\x14\xc5\x17\xc1\x03\xc1\x08\xc5\x0f\xc5\x05\xc5\x14'
b'\xc5\x17\xc1\x03\xc1\x08\xc5\x0f\xc5\x05\xc5\x14\xc5\x17\xc1\x03'
b'\xc1\x08\xc5\x0f\xc5\x05\xc5\x14\xc5\x17\xc1\x03\xc1\x08\xc5\x0f'
b'\xc5\x05\xc5\x14\xc5\x17\xc1\x03\xc1\r\xcf\n\xcf\x0f\xca\r'
b'\xc1\x03\xc1\r\xcf\n\xcf\x0f\xca\r\xc1\x03\xc1\r\xcf\n'
b'\xcf\x0f\xca\r\xc1\x03\xc1\r\xcf\n\xcf\x0f\xca\r\xc1\x03'
b'\xc1\r\xcf\n\xcf\x0f\xca\r\xc1\x03\xc1\x12\xc5\x0f\xc5#'
b'\xc5\x08\xc1\x03\xc1\x12\xc5\x0f\xc5#\xc5\x08\xc1\x03\xc1\x12'
b'\xc5\x0f\xc5#\xc5\x08\xc1\x03\xc1\x12\xc5\x0f\xc5#\xc5\x08'
b'\xc1\x03\xc1\x12\xc5\x0f\xc5#\xc5\x08\xc1\x03\xc1\x12\xc5\x0f'
b'\xd4\x05\xcf\r\xc1\x03\xc1\x12\xc5\x0f\xd4\x05\xcf\r\xc1\x03'
b'\xc1\x12\xc5\x0f\xd4\x05\xcf\r\xc1\x03\xc1\x12\xc5\x0f\xd4\x05'
b'\xcf\r\xc1\x03\xc1\x12\xc5\x0f\xd4\x05\xcf\r\xc1\x03\xc1?'
b'\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c'
b'\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1'
b'\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03'
b'\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1'
b'?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xff\x1e?\x83'
)
# 2-bit RLE, generated from res/no_button.png, 442 bytes
no_button = (
96, 60,
b'a]\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01'
b'[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01'
b'[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01'
b'[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01\x16\x05\n\x05'
b'\n\n\x1d\x01\x03\x01\x16\x05\n\x05\n\n\x1d\x01\x03\x01'
b'\x16\x05\n\x05\n\n\x1d\x01\x03\x01\x16\x05\n\x05\n\n'
b'\x1d\x01\x03\x01\x16\x05\n\x05\n\n\x1d\x01\x03\x01\x16\n'
b'\x05\x05\x05\x05\n\x05\x18\x01\x03\x01\x16\n\x05\x05\x05\x05'
b'\n\x05\x18\x01\x03\x01\x16\n\x05\x05\x05\x05\n\x05\x18\x01'
b'\x03\x01\x16\n\x05\x05\x05\x05\n\x05\x18\x01\x03\x01\x16\n'
b'\x05\x05\x05\x05\n\x05\x18\x01\x03\x01\x16\x05\x05\n\x05\x05'
b'\n\x05\x18\x01\x03\x01\x16\x05\x05\n\x05\x05\n\x05\x18\x01'
b'\x03\x01\x16\x05\x05\n\x05\x05\n\x05\x18\x01\x03\x01\x16\x05'
b'\x05\n\x05\x05\n\x05\x18\x01\x03\x01\x16\x05\x05\n\x05\x05'
b'\n\x05\x18\x01\x03\x01\x16\x05\n\x05\x05\x05\n\x05\x18\x01'
b'\x03\x01\x16\x05\n\x05\x05\x05\n\x05\x18\x01\x03\x01\x16\x05'
b'\n\x05\x05\x05\n\x05\x18\x01\x03\x01\x16\x05\n\x05\x05\x05'
b'\n\x05\x18\x01\x03\x01\x16\x05\n\x05\x05\x05\n\x05\x18\x01'
b'\x03\x01\x16\x05\n\x05\n\n\x1d\x01\x03\x01\x16\x05\n\x05'
b'\n\n\x1d\x01\x03\x01\x16\x05\n\x05\n\n\x1d\x01\x03\x01'
b'\x16\x05\n\x05\n\n\x1d\x01\x03\x01\x16\x05\n\x05\n\n'
b'\x1d\x01\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01'
b'[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01'
b'[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01'
b'[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01[\x01\x03\x01'
b'[\x01\x03]\xc2'
b'\x02'
b'`<'
b'?"\xff\x1e\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1'
b'?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?'
b'\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c'
b'\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1'
b'\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1\x16\xc5\n\xc5'
b'\n\xca\x1d\xc1\x03\xc1\x16\xc5\n\xc5\n\xca\x1d\xc1\x03\xc1'
b'\x16\xc5\n\xc5\n\xca\x1d\xc1\x03\xc1\x16\xc5\n\xc5\n\xca'
b'\x1d\xc1\x03\xc1\x16\xc5\n\xc5\n\xca\x1d\xc1\x03\xc1\x16\xca'
b'\x05\xc5\x05\xc5\n\xc5\x18\xc1\x03\xc1\x16\xca\x05\xc5\x05\xc5'
b'\n\xc5\x18\xc1\x03\xc1\x16\xca\x05\xc5\x05\xc5\n\xc5\x18\xc1'
b'\x03\xc1\x16\xca\x05\xc5\x05\xc5\n\xc5\x18\xc1\x03\xc1\x16\xca'
b'\x05\xc5\x05\xc5\n\xc5\x18\xc1\x03\xc1\x16\xc5\x05\xca\x05\xc5'
b'\n\xc5\x18\xc1\x03\xc1\x16\xc5\x05\xca\x05\xc5\n\xc5\x18\xc1'
b'\x03\xc1\x16\xc5\x05\xca\x05\xc5\n\xc5\x18\xc1\x03\xc1\x16\xc5'
b'\x05\xca\x05\xc5\n\xc5\x18\xc1\x03\xc1\x16\xc5\x05\xca\x05\xc5'
b'\n\xc5\x18\xc1\x03\xc1\x16\xc5\n\xc5\x05\xc5\n\xc5\x18\xc1'
b'\x03\xc1\x16\xc5\n\xc5\x05\xc5\n\xc5\x18\xc1\x03\xc1\x16\xc5'
b'\n\xc5\x05\xc5\n\xc5\x18\xc1\x03\xc1\x16\xc5\n\xc5\x05\xc5'
b'\n\xc5\x18\xc1\x03\xc1\x16\xc5\n\xc5\x05\xc5\n\xc5\x18\xc1'
b'\x03\xc1\x16\xc5\n\xc5\n\xca\x1d\xc1\x03\xc1\x16\xc5\n\xc5'
b'\n\xca\x1d\xc1\x03\xc1\x16\xc5\n\xc5\n\xca\x1d\xc1\x03\xc1'
b'\x16\xc5\n\xc5\n\xca\x1d\xc1\x03\xc1\x16\xc5\n\xc5\n\xca'
b'\x1d\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c'
b'\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1'
b'\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03'
b'\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1'
b'?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?\x1c\xc1\x03\xc1?'
b'\x1c\xc1\x03\xff\x1e?\x83'
)