From 5803854e175a911011abc760b3cda23dae05b50a Mon Sep 17 00:00:00 2001 From: Timo Eskola Date: Tue, 8 Sep 2015 13:45:38 +0300 Subject: Version 0.0.3 --- activity.c | 21 +++++++++++++++++++++ activity.h | 4 ++++ useractivity.c | 18 +++++++++++++++++- 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/activity.c b/activity.c index 1575a41..1ab8f04 100644 --- a/activity.c +++ b/activity.c @@ -9,14 +9,19 @@ #include #include #include +#ifdef USE_XSS #include #include +#endif #include #include #include #include #include #include +#if VDRVERSNUM >= 10501 +#include +#endif #include "activity.h" #ifdef USE_XSS @@ -100,6 +105,9 @@ char *cUserActivity::GetUsers(void) { using namespace std; stringstream stream; +#if VDRVERSNUM >= 10501 + stream << "VDR user has been inactive " << GetUserInactivity() << " minutes." << endl; +#endif stream << "USER DEVICE IDLE" << endl; setutent(); while((uptr = getutent())!=NULL) { @@ -124,3 +132,16 @@ char *cUserActivity::GetUsers(void) { strcpy(result, resultString.c_str()); return result; } + +#if VDRVERSNUM >= 10501 +int cUserActivity::GetUserInactivity(void) { + return GetMinUserInactivity() ? + GetMinUserInactivity() - 1 - + (ShutdownHandler.GetUserInactiveTime() - time(NULL))/60 : -1; +} + +void cUserActivity::UserActivity(void) { + ShutdownHandler.SetUserInactiveTimeout(); +} +#endif + diff --git a/activity.h b/activity.h index 752efdb..051a193 100644 --- a/activity.h +++ b/activity.h @@ -20,6 +20,10 @@ class cUserActivity { static void SetMinUserInactivity(int minutes); static int GetMinUserInactivity(void); static char *GetUsers(void); +#if VDRVERSNUM >= 10501 + static int GetUserInactivity(void); + static void UserActivity(void); +#endif }; #endif diff --git a/useractivity.c b/useractivity.c index 6f510e5..c94a18f 100644 --- a/useractivity.c +++ b/useractivity.c @@ -10,7 +10,7 @@ #include "i18n.h" #include "activity.h" -static const char *VERSION = "0.0.2"; +static const char *VERSION = "0.0.3"; static const char *DESCRIPTION = trNOOP("Prevents shutdown if there are active users"); #if 0 static const char *MAINMENUENTRY = trNOOP("Active users"); @@ -137,6 +137,10 @@ const char **cPluginUseractivity::SVDRPHelpPages(void) " Display minimum user inactivity in minutes.", "LSTU\n" " Display a list of users.", +#if VDRVERSNUM >= 10501 + "SETA\n" + " Set VDR user activity.", +#endif "SETI \n" " Set minimum user inactivity in minutes.", NULL @@ -149,12 +153,24 @@ cString cPluginUseractivity::SVDRPCommand(const char *Command, const char *Optio // Process SVDRP commands this plugin implements if (strcasecmp(Command, "GETI") == 0) { // we use the default reply code here +#if VDRVERSNUM >= 10501 + return cString::sprintf("Minimum user inactivity is %d minutes.\nVDR user has been inactive %d minutes.", + cUserActivity::GetMinUserInactivity(), cUserActivity::GetUserInactivity()); +#else return cString::sprintf("Minimum user inactivity is %d minutes.", cUserActivity::GetMinUserInactivity()); +#endif } else if (strcasecmp(Command, "LSTU") == 0) { // we use the default reply code here return cString(cUserActivity::GetUsers()); } +#if VDRVERSNUM >= 10501 + else if (strcasecmp(Command, "SETA") == 0) { + // we use the default reply code here + cUserActivity::UserActivity(); + return cString::sprintf("VDR user set active."); +} +#endif else if (strcasecmp(Command, "SETI") == 0) { ReplyCode = 501; if (*Option) { -- cgit v1.2.3