Skip to content

Commit 8ffedb1

Browse files
committed
add missing rectangle drawer, allow use of adafruit_framebuf
1 parent 304e7fc commit 8ffedb1

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

adafruit_ssd1306.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@
3232

3333
from micropython import const
3434
from adafruit_bus_device import i2c_device, spi_device
35-
import framebuf
35+
try:
36+
import framebuf
37+
except ImportError:
38+
import adafruit_framebuf as framebuf
3639

3740
__version__ = "0.0.0-auto.0"
3841
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_SSD1306.git"
@@ -63,7 +66,7 @@ class _SSD1306:
6366
"""Base class for SSD1306 display driver"""
6467
#pylint: disable-msg=too-many-arguments
6568
#pylint: disable-msg=too-many-instance-attributes
66-
def __init__(self, framebuffer, width, height, external_vcc, reset):
69+
def __init__(self, framebuffer, width, height, *, external_vcc, reset):
6770
self.framebuf = framebuffer
6871
self.fill = self.framebuf.fill
6972
self.pixel = self.framebuf.pixel
@@ -74,6 +77,7 @@ def __init__(self, framebuffer, width, height, external_vcc, reset):
7477
self.vline = self.framebuf.vline
7578
self.hline = self.framebuf.hline
7679
self.fill_rect = self.framebuf.fill_rect
80+
self.rect = self.framebuf.rect
7781
self.width = width
7882
self.height = height
7983
self.external_vcc = external_vcc
@@ -188,7 +192,8 @@ def __init__(self, width, height, i2c, *, addr=0x3c, external_vcc=False, reset=N
188192
self.buffer = bytearray(((height // 8) * width) + 1)
189193
self.buffer[0] = 0x40 # Set first byte of data buffer to Co=0, D/C=1
190194
framebuffer = framebuf.FrameBuffer1(memoryview(self.buffer)[1:], width, height)
191-
super().__init__(framebuffer, width, height, external_vcc, reset)
195+
super().__init__(framebuffer, width, height,
196+
external_vcc=external_vcc, reset=reset)
192197

193198
def write_cmd(self, cmd):
194199
"""Send a command to the SPI device"""
@@ -226,7 +231,8 @@ def __init__(self, width, height, spi, dc, reset, cs, *,
226231
self.dc_pin = dc
227232
self.buffer = bytearray((height // 8) * width)
228233
framebuffer = framebuf.FrameBuffer1(self.buffer, width, height)
229-
super().__init__(framebuffer, width, height, external_vcc, reset)
234+
super().__init__(framebuffer, width, height,
235+
external_vcc=external_vcc, reset=reset)
230236

231237
def write_cmd(self, cmd):
232238
"""Send a command to the SPI device"""

0 commit comments

Comments
 (0)