feat(l2): screenshots over USB (RGB565); USB tools moved to the Solo site

- CMD_GET_SCREENSHOT on colour screens: display type 2 (RGB565 LE),
  32-bit payload size; ui-lvgl captureFrame() shared with the SD BMP
- ENABLE_SCREENSHOT in the L2 build; tools/screenshot.py decodes type 2
- docs and READMEs point to solo.marekzegarek.com/#pc-tools
- USB popup: "Keep card" instead of "Charge only" (only the card is lent;
  charging and USB serial work either way)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-09-29 12:27:59 +02:00
co-authored by Claude Opus 5.5
parent 4ab9d949ec
commit e4d24650c5
11 changed files with 83 additions and 40 deletions
@@ -33,6 +33,11 @@ public:
void notify(UIEventType t = UIEventType::none) override;
void shutdown(bool restart = false) override;
MyMesh::Listener* meshListener() override;
// The screen as it is now: RGB565 (native, little-endian), row-major, w x h.
// For CMD_GET_SCREENSHOT (MyMesh, -D ENABLE_SCREENSHOT, display type 2);
// nullptr without the memory for it. The caller frees it with free().
uint16_t* captureFrame(int& w, int& h);
#define UI_SCREENSHOT_RGB565 1
// UiCoreHost
bool isViewingChannel(uint8_t channel_idx) override;