Skip to content

Commit 479392a

Browse files
peterhinchdpgeorge
authored andcommitted
drivers/display/ssd1306: Make SSD1306 class inherit from FrameBuffer.
1 parent 54cd6e3 commit 479392a

File tree

1 file changed

+4
-17
lines changed

1 file changed

+4
-17
lines changed

drivers/display/ssd1306.py

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,29 +23,16 @@
2323
SET_VCOM_DESEL = const(0xdb)
2424
SET_CHARGE_PUMP = const(0x8d)
2525

26-
27-
class SSD1306:
26+
# Subclassing FrameBuffer provides support for graphics primitives
27+
# http://docs.micropython.org/en/latest/pyboard/library/framebuf.html
28+
class SSD1306(framebuf.FrameBuffer):
2829
def __init__(self, width, height, external_vcc):
2930
self.width = width
3031
self.height = height
3132
self.external_vcc = external_vcc
3233
self.pages = self.height // 8
3334
self.buffer = bytearray(self.pages * self.width)
34-
fb = framebuf.FrameBuffer(self.buffer, self.width, self.height, framebuf.MONO_VLSB)
35-
self.framebuf = fb
36-
# Provide methods for accessing FrameBuffer graphics primitives. This is a
37-
# workround because inheritance from a native class is currently unsupported.
38-
# http://docs.micropython.org/en/latest/pyboard/library/framebuf.html
39-
self.fill = fb.fill
40-
self.pixel = fb.pixel
41-
self.hline = fb.hline
42-
self.vline = fb.vline
43-
self.line = fb.line
44-
self.rect = fb.rect
45-
self.fill_rect = fb.fill_rect
46-
self.text = fb.text
47-
self.scroll = fb.scroll
48-
self.blit = fb.blit
35+
super.__init__(self.buffer, self.width, self.height, framebuf.MONO_VLSB)
4936
self.init_display()
5037

5138
def init_display(self):

0 commit comments

Comments
 (0)