From 5e95e522e7d6a5dcef4b138a1e77dac609833549 Mon Sep 17 00:00:00 2001 From: Risto Date: Tue, 20 Aug 2024 05:12:33 +0200 Subject: [PATCH] feat(lua): add screenshot() function (#5181) --- radio/src/lua/api_general.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/radio/src/lua/api_general.cpp b/radio/src/lua/api_general.cpp index 1b722e78112..7cc1f962b21 100644 --- a/radio/src/lua/api_general.cpp +++ b/radio/src/lua/api_general.cpp @@ -1631,6 +1631,30 @@ static int luaPlayTone(lua_State * L) return 0; } +/*luadoc +@name screenshot + +@description Takes a screenshot, which is saved to the SCREENSHOTS folder on the radio SD card. + +@syntax screenshot() + +@return none + +@notes This command is currently not rate limited, so repeated frequent calls will slow down the UI and can even freeze the entire radio, so should be used with care. + +@target [BW] +@target [GS] +@target [COLOR] + +@status current Introduced in 2.11 +*/ +static int luaScreenshot(lua_State * L) +{ + UNUSED(L); + writeScreenshot(); + return 0; +} + /*luadoc @function playHaptic(duration, pause [, flags]) @@ -2930,6 +2954,7 @@ LROT_BEGIN(etxlib, NULL, 0) LROT_FUNCENTRY( playTone, luaPlayTone ) LROT_FUNCENTRY( playHaptic, luaPlayHaptic ) LROT_FUNCENTRY( flushAudio, luaFlushAudio ) + LROT_FUNCENTRY( screenshot, luaScreenshot ) #if defined(ENABLE_LUA_POPUP_INPUT) LROT_FUNCENTRY( popupInput, luaPopupInput ) #endif