ISF15ACP4 Driver 1.0.0
API reference
Loading...
Searching...
No Matches
isf15acp4_types.hpp
Go to the documentation of this file.
1
6#pragma once
7
8#include <cstddef>
9#include <cstdint>
10
11namespace isf15acp4 {
12
19enum class ProductVariant : uint8_t {
20 Isf15acp4 = 0,
21 Isc15anp4 = 1,
22 Isc01p = 2
23};
24
28enum class Error : uint16_t {
29 None = 0,
30 SpiWrite = 1 << 0,
31 GpioControl = 1 << 1,
32 InvalidParam = 1 << 2,
33 NotInitialized = 1 << 3,
34 OutOfRange = 1 << 4,
35 PowerSequence = 1 << 5
36};
37
41enum class DisplayState : uint8_t {
42 Off = 0,
43 On = 1,
44 Dim = 2
45};
46
50using Color565 = uint16_t;
51
54 uint8_t width;
55 uint8_t height;
56 uint8_t column_start;
57 uint8_t column_end;
58 uint8_t row_start;
59 uint8_t row_end;
60 std::size_t framebuffer_bytes;
61};
62
63// Namespace-scope so GetGeometry stays C++20 constexpr (function-local
64// static constexpr is C++23).
65inline constexpr DisplayGeometry kGeometryIsf15acp4{96, 64, 0x00, 0x5F, 0x00, 0x3F,
66 96u * 64u * 2u};
67inline constexpr DisplayGeometry kGeometryIsc15anp4{64, 48, 0x10, 0x4F, 0x00, 0x2F,
68 64u * 48u * 2u};
69inline constexpr DisplayGeometry kGeometryIsc01p{52, 36, 0x16, 0x49, 0x00, 0x23,
70 52u * 36u * 2u};
71
77inline constexpr const DisplayGeometry& GetGeometry(ProductVariant variant) noexcept {
78 switch (variant) {
80 return kGeometryIsf15acp4;
82 return kGeometryIsc15anp4;
84 return kGeometryIsc01p;
85 }
86 return kGeometryIsf15acp4;
87}
88
90struct Point {
91 uint8_t x;
92 uint8_t y;
93};
94
96struct Rect {
97 uint8_t x0;
98 uint8_t y0;
99 uint8_t x1;
100 uint8_t y1;
101};
102
110inline constexpr Color565 MakeColor565(uint8_t r, uint8_t g, uint8_t b) noexcept {
111 return static_cast<Color565>(((r & 0xF8u) << 8) | ((g & 0xFCu) << 3) | (b >> 3));
112}
113
115namespace colors {
116inline constexpr Color565 Black = MakeColor565(0, 0, 0);
117inline constexpr Color565 White = MakeColor565(255, 255, 255);
118inline constexpr Color565 Red = MakeColor565(255, 0, 0);
119inline constexpr Color565 Green = MakeColor565(0, 255, 0);
120inline constexpr Color565 Blue = MakeColor565(0, 0, 255);
121inline constexpr Color565 Yellow = MakeColor565(255, 255, 0);
122inline constexpr Color565 Cyan = MakeColor565(0, 255, 255);
123inline constexpr Color565 Magenta = MakeColor565(255, 0, 255);
124inline constexpr Color565 Orange = MakeColor565(255, 165, 0);
125inline constexpr Color565 Gray = MakeColor565(128, 128, 128);
126} // namespace colors
127
133inline Color565 BmpPixelToColor565(const uint8_t* bgr) noexcept {
134 return MakeColor565(bgr[2], bgr[1], bgr[0]);
135}
136
137} // namespace isf15acp4
constexpr Color565 Red
Definition isf15acp4_types.hpp:118
constexpr Color565 Black
Definition isf15acp4_types.hpp:116
constexpr Color565 Yellow
Definition isf15acp4_types.hpp:121
constexpr Color565 White
Definition isf15acp4_types.hpp:117
constexpr Color565 Cyan
Definition isf15acp4_types.hpp:122
constexpr Color565 Gray
Definition isf15acp4_types.hpp:125
constexpr Color565 Green
Definition isf15acp4_types.hpp:119
constexpr Color565 Blue
Definition isf15acp4_types.hpp:120
constexpr Color565 Orange
Definition isf15acp4_types.hpp:124
constexpr Color565 Magenta
Definition isf15acp4_types.hpp:123
Definition isf15acp4.hpp:19
Color565 BmpPixelToColor565(const uint8_t *bgr) noexcept
Convert a 24-bit BMP pixel (BGR byte order) to RGB565.
Definition isf15acp4_types.hpp:133
DisplayState
Display power/visibility state.
Definition isf15acp4_types.hpp:41
Error
Driver error flags (bitmask).
Definition isf15acp4_types.hpp:28
constexpr DisplayGeometry kGeometryIsf15acp4
Definition isf15acp4_types.hpp:65
constexpr DisplayGeometry kGeometryIsc15anp4
Definition isf15acp4_types.hpp:67
ProductVariant
Supported NKK SmartDisplay OLED product variants.
Definition isf15acp4_types.hpp:19
@ Isc15anp4
Standard OLED pushbutton, 64x48 (ISC15ANP4)
@ Isc01p
OLED display module, 52x36 (ISC01P)
@ Isf15acp4
Frameless OLED pushbutton, 96x64 (ISF15ACP4)
uint16_t Color565
16-bit RGB565 color value (R5G6B5).
Definition isf15acp4_types.hpp:50
constexpr DisplayGeometry kGeometryIsc01p
Definition isf15acp4_types.hpp:69
constexpr Color565 MakeColor565(uint8_t r, uint8_t g, uint8_t b) noexcept
Build an RGB565 color from 8-bit RGB channels.
Definition isf15acp4_types.hpp:110
constexpr const DisplayGeometry & GetGeometry(ProductVariant variant) noexcept
Get geometry metadata for a product variant.
Definition isf15acp4_types.hpp:77
Compile-time display geometry for a product variant.
Definition isf15acp4_types.hpp:53
uint8_t height
Definition isf15acp4_types.hpp:55
uint8_t row_start
Definition isf15acp4_types.hpp:58
uint8_t column_end
Definition isf15acp4_types.hpp:57
std::size_t framebuffer_bytes
Definition isf15acp4_types.hpp:60
uint8_t row_end
Definition isf15acp4_types.hpp:59
uint8_t column_start
Definition isf15acp4_types.hpp:56
uint8_t width
Definition isf15acp4_types.hpp:54
2D point in display coordinates.
Definition isf15acp4_types.hpp:90
uint8_t y
Definition isf15acp4_types.hpp:92
uint8_t x
Definition isf15acp4_types.hpp:91
Axis-aligned rectangle in display coordinates (inclusive bounds).
Definition isf15acp4_types.hpp:96
uint8_t y1
Definition isf15acp4_types.hpp:100
uint8_t x0
Definition isf15acp4_types.hpp:97
uint8_t x1
Definition isf15acp4_types.hpp:99
uint8_t y0
Definition isf15acp4_types.hpp:98