From 6485e3c4fba0dcb55754a6564fca0eb45e2af3e5 Mon Sep 17 00:00:00 2001 From: David Vukovic Date: Mon, 4 Dec 2023 23:49:30 +0100 Subject: [JSON-Rpc] Add GUI.ActivateScreenSaver method JSONRPC method call to activate currently configured screensaver --- xbmc/interfaces/json-rpc/GUIOperations.cpp | 10 ++++++++++ xbmc/interfaces/json-rpc/GUIOperations.h | 5 +++++ xbmc/interfaces/json-rpc/JSONServiceDescription.cpp | 1 + xbmc/interfaces/json-rpc/schema/methods.json | 8 ++++++++ xbmc/interfaces/json-rpc/schema/version.txt | 2 +- 5 files changed, 25 insertions(+), 1 deletion(-) diff --git a/xbmc/interfaces/json-rpc/GUIOperations.cpp b/xbmc/interfaces/json-rpc/GUIOperations.cpp index 6e52b143a9..b020939867 100644 --- a/xbmc/interfaces/json-rpc/GUIOperations.cpp +++ b/xbmc/interfaces/json-rpc/GUIOperations.cpp @@ -129,6 +129,16 @@ JSONRPC_STATUS CGUIOperations::GetStereoscopicModes(const std::string &method, I return OK; } +JSONRPC_STATUS CGUIOperations::ActivateScreenSaver(const std::string& method, + ITransportLayer* transport, + IClient* client, + const CVariant& parameterObject, + CVariant& result) +{ + CServiceBroker::GetAppMessenger()->SendMsg(TMSG_ACTIVATESCREENSAVER); + return ACK; +} + JSONRPC_STATUS CGUIOperations::GetPropertyValue(const std::string &property, CVariant &result) { if (property == "currentwindow") diff --git a/xbmc/interfaces/json-rpc/GUIOperations.h b/xbmc/interfaces/json-rpc/GUIOperations.h index 04c3f81cac..6d324b8d05 100644 --- a/xbmc/interfaces/json-rpc/GUIOperations.h +++ b/xbmc/interfaces/json-rpc/GUIOperations.h @@ -26,6 +26,11 @@ namespace JSONRPC static JSONRPC_STATUS SetFullscreen(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant ¶meterObject, CVariant &result); static JSONRPC_STATUS SetStereoscopicMode(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant ¶meterObject, CVariant &result); static JSONRPC_STATUS GetStereoscopicModes(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant ¶meterObject, CVariant &result); + static JSONRPC_STATUS ActivateScreenSaver(const std::string& method, + ITransportLayer* transport, + IClient* client, + const CVariant& parameterObject, + CVariant& result); private: static JSONRPC_STATUS GetPropertyValue(const std::string &property, CVariant &result); static CVariant GetStereoModeObjectFromGuiMode(const RENDER_STEREO_MODE &mode); diff --git a/xbmc/interfaces/json-rpc/JSONServiceDescription.cpp b/xbmc/interfaces/json-rpc/JSONServiceDescription.cpp index 3a9cd037ad..a5071e7ec3 100644 --- a/xbmc/interfaces/json-rpc/JSONServiceDescription.cpp +++ b/xbmc/interfaces/json-rpc/JSONServiceDescription.cpp @@ -174,6 +174,7 @@ JsonRpcMethodMap CJSONServiceDescription::m_methodMaps[] = { { "GUI.SetFullscreen", CGUIOperations::SetFullscreen }, { "GUI.SetStereoscopicMode", CGUIOperations::SetStereoscopicMode }, { "GUI.GetStereoscopicModes", CGUIOperations::GetStereoscopicModes }, + { "GUI.ActivateScreenSaver", CGUIOperations::ActivateScreenSaver}, // PVR operations { "PVR.GetProperties", CPVROperations::GetProperties }, diff --git a/xbmc/interfaces/json-rpc/schema/methods.json b/xbmc/interfaces/json-rpc/schema/methods.json index c33e23ea31..49fb091916 100644 --- a/xbmc/interfaces/json-rpc/schema/methods.json +++ b/xbmc/interfaces/json-rpc/schema/methods.json @@ -2090,6 +2090,14 @@ } } }, + "GUI.ActivateScreenSaver": { + "type": "method", + "description": "Activates currently used screensaver", + "transport": "Response", + "permission": "ControlGUI", + "params": [], + "returns": "string" + }, "Addons.GetAddons": { "type": "method", "description": "Gets all available addons", diff --git a/xbmc/interfaces/json-rpc/schema/version.txt b/xbmc/interfaces/json-rpc/schema/version.txt index 652ab24d06..ae933fc633 100644 --- a/xbmc/interfaces/json-rpc/schema/version.txt +++ b/xbmc/interfaces/json-rpc/schema/version.txt @@ -1 +1 @@ -JSONRPC_VERSION 13.3.1 +JSONRPC_VERSION 13.4.0 -- cgit v1.2.3