MCPcopy Create free account
hub / github.com/cifertech/DisplayKit / build_header_text

Function build_header_text

server/tft_gif_core.py:176–211  ·  view source on GitHub ↗
(src_name: str, settings: ConvertSettings, result: ConversionResult)

Source from the content-addressed store, hash-verified

174
175
176def build_header_text(src_name: str, settings: ConvertSettings, result: ConversionResult) -> str:
177 lines = [
178 "#pragma once",
179 "#include <Arduino.h>",
180 "#include <pgmspace.h>",
181 "",
182 "#define IMAGE_POINTS_HAS_FRAMES 1",
183 f"// Generated from: {src_name}",
184 f"// Fit area: {settings.target_w}x{settings.target_h}, offset: {settings.offset_x},{settings.offset_y}",
185 f"// Invert mode: {settings.invert_mode}",
186 f"// Fit mode: {settings.fit_mode}, dither: {settings.dither_mode}",
187 f"// Sample step: {settings.sample_step}, max points/frame: {settings.max_points_per_frame}",
188 f"// Frames: {len(result.frames)}, total points: {len(result.flat_points)}",
189 "",
190 "struct ImagePoint {",
191 " int16_t x;",
192 " int16_t y;",
193 " uint8_t shade;",
194 "};",
195 "",
196 f"constexpr uint16_t IMAGE_FRAME_COUNT = {len(result.frames)};",
197 f"constexpr uint32_t IMAGE_POINT_COUNT = {len(result.flat_points)}UL;",
198 "const uint32_t IMAGE_FRAME_OFFSETS[] PROGMEM = {",
199 " " + ", ".join(f"{v}UL" for v in result.frame_offsets),
200 "};",
201 "const uint16_t IMAGE_FRAME_DURATIONS_MS[] PROGMEM = {",
202 " " + ", ".join(str(v) for v in result.durations),
203 "};",
204 "const ImagePoint IMAGE_POINTS[] PROGMEM = {",
205 ]
206 for i, (x, y, shade) in enumerate(result.flat_points):
207 comma = "," if i < len(result.flat_points) - 1 else ""
208 lines.append(f" {{{x}, {y}, {shade}}}{comma}")
209 lines.append("};")
210 lines.append("")
211 return "\n".join(lines)
212

Callers 1

convert_endpointFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected