cd921e1aa9
- Add ScreensaverType::McpScreen to DisplaySettings enum, toString/fromString - Add 'MCP Screen' option to the Display settings screensaver dropdown - New McpScreensaver (Screensaver subclass): creates full-screen lv_canvas on the overlay, allocates framebuffer in SPIRAM, registers canvas pointer in McpSystemState, shows 'Waiting for LLM...' until first draw command arrives - Wire McpScreensaver into DisplayIdle::activateScreensaver() switch - McpSystem::ensureOverrideScreen() now calls displayidle::findService()-> startScreensaver() instead of launching McpOverrideApp — canvas appears automatically on any LLM draw command - Remove McpOverrideApp (replaced by screensaver), deregister from Tactility.cpp - Remove mcpOverrideEnabled from McpSettings — no longer needed - Simplify McpSettingsApp: remove Screen Override toggle, update info text to direct users to Settings -> Display -> Screensaver -> MCP Screen
31 lines
812 B
C++
31 lines
812 B
C++
#pragma once
|
|
#ifdef ESP_PLATFORM
|
|
|
|
#include "Screensaver.h"
|
|
#include <cstdint>
|
|
|
|
namespace tt::service::displayidle {
|
|
|
|
/**
|
|
* MCP Screen screensaver.
|
|
* Creates a full-screen LVGL canvas on the overlay and registers it in
|
|
* McpSystemState so that MCP HTTP draw commands can paint to it.
|
|
* Dismissed by a touch event (handled by the parent DisplayIdle overlay).
|
|
*/
|
|
class McpScreensaver final : public Screensaver {
|
|
uint16_t* framebuffer = nullptr;
|
|
size_t framebufferSize = 0;
|
|
|
|
public:
|
|
McpScreensaver() = default;
|
|
~McpScreensaver() override = default;
|
|
|
|
void start(lv_obj_t* overlay, lv_coord_t screenW, lv_coord_t screenH) override;
|
|
void stop() override;
|
|
void update(lv_coord_t screenW, lv_coord_t screenH) override;
|
|
};
|
|
|
|
} // namespace tt::service::displayidle
|
|
|
|
#endif // ESP_PLATFORM
|