~aleteoryx/muditaos

ref: 3cbbeff551230786ae13c23a7bf4fa8c50099896 muditaos/module-bsp/board/linux/eink/LinuxEinkDisplay.hpp -rw-r--r-- 1.7 KiB
3cbbeff5 — Lefucjusz [MOS-1011] Fix frequency switching stability 2 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include <hal/eink/AbstractEinkDisplay.hpp>

namespace hal::eink
{

    class LinuxEinkDisplay : public AbstractEinkDisplay
    {
      public:
        explicit LinuxEinkDisplay(FrameSize size);

      private:
        void setMode(const EinkDisplayColorMode mode) noexcept override;
        EinkDisplayColorMode getMode() const noexcept override;

        EinkStatus showImageUpdate(const std::vector<EinkFrame> &updateFrames,
                                   const std::uint8_t *frameBuffer) override;
        EinkStatus showImageRefresh(const EinkFrame &refreshFrame, const EinkRefreshMode refreshMode) override;
        EinkStatus showImage(const std::vector<EinkFrame> &updateFrames,
                             const EinkFrame &refreshFrame,
                             const std::uint8_t *frameBuffer,
                             const EinkRefreshMode refreshMode) override;
        void prepareEarlyRequest(const EinkRefreshMode refreshMode, const WaveformTemperature behaviour) override;

        EinkStatus dither() override;
        EinkStatus powerOn() override;
        EinkStatus powerOff() override;
        EinkStatus shutdown() override;
        EinkStatus wipeOut() override;
        EinkStatus resetAndInit() override;
        EinkStatus reinitAndPowerOn() override;
        [[nodiscard]] std::shared_ptr<devices::Device> getDevice() const noexcept override;

        FrameSize size;
        EinkDisplayColorMode displayColorMode{EinkDisplayColorMode::EinkDisplayColorModeStandard};
    };
} // namespace hal::eink