From be87daf81deb622c782ffb4a76252386aaeb8877 Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Thu, 19 Jan 2017 08:35:16 -0500 Subject: [PATCH] API CHANGE (new action): sysadm/moused, "action"="list_devices_active": This will return a list of all the devices which are currently active. ------------- REST Request (example): ------------------------------- PUT /sysadm/moused { "action" : "list_devices_active" } WebSocket Request: ------------------------------- { "name" : "moused", "namespace" : "sysadm", "id" : "fooid", "args" : { "action" : "list_devices_active" } } Response: ------------------------------- { "args": { "list_devices_active": { "active_devices": [ "ums0" ] } }, "id": "fooid", "name": "response", "namespace": "sysadm" } --- src/server/WebBackend.cpp | 2 ++ src/server/library/sysadm-moused.cpp | 45 ++++++++++++++++++++-------- src/server/library/sysadm-moused.h | 10 +++---- 3 files changed, 39 insertions(+), 18 deletions(-) diff --git a/src/server/WebBackend.cpp b/src/server/WebBackend.cpp index ce2cc5a..49ed714 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -1225,6 +1225,8 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmMousedRequest(const QJsonVal QJsonObject outobj; if(action == "list_devices"){ outobj = sysadm::moused::listDevices(); + }else if(action == "list_devices_active"){ + outobj = sysadm::moused::listActiveDevices(); }else if(action == "list_device_options"){ outobj = sysadm::moused::listOptions(); }else if(action == "read_device_options"){ diff --git a/src/server/library/sysadm-moused.cpp b/src/server/library/sysadm-moused.cpp index fc09b9a..027af99 100644 --- a/src/server/library/sysadm-moused.cpp +++ b/src/server/library/sysadm-moused.cpp @@ -17,11 +17,16 @@ using namespace sysadm; QJsonObject moused::listDevices(){ QJsonObject out; + //First find all the active devices QDir dir("/var/run"); - QStringList devs = dir.entryList(QStringList() << "moused-*.pid", QDir::Files, QDir::Name); + QStringList devsactive = dir.entryList(QStringList() << "moused-*.pid", QDir::Files, QDir::Name); + for(int i=0; i