diff --git a/CHANGES.rst b/CHANGES.rst index 95bf8bdc..e564df9d 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,6 +4,8 @@ ChangeLog +------------+---------------------------------------------------------------------+------------+ | Version | Description | Date | +============+=====================================================================+============+ +| *upcoming* | * Fix bug where SSD1325/1327 didn't handle ``framebuffer`` properly | | ++------------+---------------------------------------------------------------------+------------+ | **3.0.0** | * **BREAKING** Fix SSD1351 init sequence didn't set RGB/BGR color | 2018/12/02 | | | order properly. Users of this device should verify proper color | | | | rendering and add ``bgr=True`` if blue/red color components | | diff --git a/luma/oled/device/__init__.py b/luma/oled/device/__init__.py index 1d9d6a98..ede442b6 100644 --- a/luma/oled/device/__init__.py +++ b/luma/oled/device/__init__.py @@ -462,11 +462,11 @@ class ssd1325(greyscale_device): display to properly configure it. Further control commands can then be called to affect the brightness and other settings. """ - def __init__(self, serial_interface=None, width=128, height=64, rotate=0, mode="RGB", **kwargs): + def __init__(self, serial_interface=None, width=128, height=64, rotate=0, + mode="RGB", framebuffer="full_frame", **kwargs): super(ssd1325, self).__init__(luma.core.const.common, serial_interface, - width, height, rotate, mode, - framebuffer="full_frame", nibble_order=1, - **kwargs) + width, height, rotate, mode, framebuffer, + nibble_order=1, **kwargs) def _supported_dimensions(self): return [(128, 64)] @@ -509,11 +509,11 @@ class ssd1327(greyscale_device): .. versionadded:: 2.4.0 """ - def __init__(self, serial_interface=None, width=128, height=128, rotate=0, mode="RGB", **kwargs): + def __init__(self, serial_interface=None, width=128, height=128, rotate=0, + mode="RGB", framebuffer="full_frame", **kwargs): super(ssd1327, self).__init__(luma.core.const.common, serial_interface, - width, height, rotate, mode, - framebuffer="full_frame", nibble_order=1, - **kwargs) + width, height, rotate, mode, framebuffer, + nibble_order=1, **kwargs) def _supported_dimensions(self): return [(128, 128)] diff --git a/tests/test_ssd1325.py b/tests/test_ssd1325.py index a687c986..3ac05330 100644 --- a/tests/test_ssd1325.py +++ b/tests/test_ssd1325.py @@ -91,3 +91,10 @@ def test_monochrome_display(): # Next 4096 bytes are data representing the drawn image serial.data.assert_called_once_with(get_json_data('demo_ssd1325_monochrome')) + + +def test_framebuffer_override(): + """ + Reproduce https://github.com/rm-hull/luma.examples/issues/95 + """ + ssd1325(serial, mode="1", framebuffer="diff_to_previous") diff --git a/tests/test_ssd1327.py b/tests/test_ssd1327.py index eef3be52..1e422bda 100644 --- a/tests/test_ssd1327.py +++ b/tests/test_ssd1327.py @@ -91,3 +91,10 @@ def test_monochrome_display(): # Next 4096 bytes are data representing the drawn image serial.data.assert_called_once_with(get_json_data('demo_ssd1327_monochrome')) + + +def test_framebuffer_override(): + """ + Reproduce https://github.com/rm-hull/luma.examples/issues/95 + """ + ssd1327(serial, mode="1", framebuffer="diff_to_previous")