get stats on screensaver, idle time, etc
authordaniel watson <ozzloy@gmail.com>
Sun, 31 Jul 2016 18:39:25 +0000 (11:39 -0700)
committerdaniel watson <ozzloy@gmail.com>
Sun, 31 Jul 2016 18:39:25 +0000 (11:39 -0700)
print_screensaver_stats.cpp [new file with mode: 0644]
print_screensaver_stats.h [new file with mode: 0644]

diff --git a/print_screensaver_stats.cpp b/print_screensaver_stats.cpp
new file mode 100644 (file)
index 0000000..9848be4
--- /dev/null
@@ -0,0 +1,74 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <X11/Xlib.h>
+#include <X11/extensions/sync.h>
+#include <X11/extensions/scrnsaver.h>
+
+Display *get_current_display(void)
+{
+  static Display *dpy = NULL;
+  if(!dpy)
+    {
+      if(!(dpy=XOpenDisplay(NULL)))
+        {
+          fputs("Could not open X11 display.\n", stderr);
+          return NULL;
+        }
+    }
+  return dpy;
+}
+
+void print_screensaver_stats(void)
+{
+  int timeout = 0;
+  int interval = 0;
+  int prefer_blanking = 0;
+  int allow_exposures = 0;
+  int x_get_screen_saver = 0;
+
+  Display *dpy = get_current_display();
+  if(!dpy)
+    {
+      fprintf(stderr, "badness!\n");
+    }
+
+  x_get_screen_saver = XGetScreenSaver(dpy,
+                                       &timeout,
+                                       &interval,
+                                       &prefer_blanking,
+                                       &allow_exposures);
+  printf("x_get_screen_saver = %d\n", x_get_screen_saver);
+  printf("timeout = %d\n", timeout);
+  printf("interval = %d\n", interval);
+  printf("prefer_blanking = %d\n", prefer_blanking);
+  printf("allow_exposures = %d\n", allow_exposures);
+
+  return;
+}
+
+void call_XForceScreenSaver_with_mode_ScreenSaverReset(void)
+{
+  Display* dpy = get_current_display();
+  if(!dpy)
+    {
+      fprintf(stderr, "badness!\n");
+    }
+  int x_force_screen_saver = 0;
+  // maybe ScreenSaverReset's in the current namespace?
+  return;
+}
+
+int main(int argc, char** argv)
+{
+  Display *dpy = NULL;
+  dpy = get_current_display();
+  if(!dpy)
+    {
+      fprintf(stderr, "badness!\n");
+    }
+  call_XForceScreenSaver_with_mode_ScreenSaverReset();
+  print_screensaver_stats();
+  return 0;
+}
diff --git a/print_screensaver_stats.h b/print_screensaver_stats.h
new file mode 100644 (file)
index 0000000..4898fa0
--- /dev/null
@@ -0,0 +1,4 @@
+
+Display *get_current_display(void);
+void print_screensaver_stats(void);
+void call_XForceScreenSaver_with_mode_ScreenSaverReset(void)