From de91403db94c09b5962b0102e494526a17f49f4f Mon Sep 17 00:00:00 2001 From: Brian Ferguson Date: Sun, 23 Feb 2014 10:55:44 -0700 Subject: [PATCH] SysInfo: Added "Idle_Time" type. Use "SysInfoData to scale the output. --- Plugins/PluginSysInfo/SysInfo.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Plugins/PluginSysInfo/SysInfo.cpp b/Plugins/PluginSysInfo/SysInfo.cpp index 46a699e8..3c1519d0 100644 --- a/Plugins/PluginSysInfo/SysInfo.cpp +++ b/Plugins/PluginSysInfo/SysInfo.cpp @@ -44,6 +44,7 @@ enum MeasureType MEASURE_RAS_STATUS, MEASURE_OS_VERSION, MEASURE_OS_BITS, + MEASURE_IDLE_TIME, MEASURE_ADAPTER_DESCRIPTION, MEASURE_NET_MASK, MEASURE_IP_ADDRESS, @@ -132,6 +133,11 @@ PLUGIN_EXPORT void Reload(void* data, void* rm, double* maxValue) { measure->type = MEASURE_OS_BITS; } + else if (_wcsicmp(L"IDLE_TIME", type) == 0) + { + defaultData = 1; + measure->type = MEASURE_IDLE_TIME; + } else if (_wcsicmp(L"ADAPTER_DESCRIPTION", type) == 0) { defaultData = 0; @@ -388,6 +394,14 @@ PLUGIN_EXPORT double Update(void* data) si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64) ? 64.0 : 32.0; } + case MEASURE_IDLE_TIME: + { + LASTINPUTINFO idle = { sizeof(LASTINPUTINFO) }; + GetLastInputInfo(&idle); + int scale = (measure->data < 1) ? 1 : measure->data; + return (double)((GetTickCount() - idle.dwTime) / scale); + } + case MEASURE_INTERNET_CONNECTIVITY: { const auto connectivity = GetNetworkConnectivity();