From http://www.jwz.org/xscreensaver/xscreensaver-5.30.tar.gz
[xscreensaver] / driver / types.h
index 48321877254bbb6d8a79f3cae6710e1f69fe54f7..f1630b0dc7d09e5f2888d5d711dc0fb924e6aa87 100644 (file)
@@ -1,7 +1,4 @@
-/* types.h
- *
- * This file is part of XScreenSaver,
- * Copyright (c) 1993-2004 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1993-2014 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
  * implied warranty.
  */
 
-#ifndef TYPES_H
-#define TYPES_H
+#ifndef __XSCREENSAVER_TYPES_H__
+#define __XSCREENSAVER_TYPES_H__
 
 typedef struct saver_info saver_info;
 
-/* Unlock states. Old pw_* equivalents in square brackets:
- * ul_read - reading input (or ready to do so) [pw_read]
- * ul_success - auth success, unlock the screen [pw_ok]
- * ul_fail - authentication failed [pw_fail]
- * ul_cancel - user cancelled auth [pw_cancel or pw_null]
- * ul_time - timed out, user took too long [pw_time]
- * ul_finished - user pressed enter on the current prompt, process input
- */
-enum unlock_state { ul_read, ul_success, ul_fail, ul_cancel, ul_time, ul_finished };
+typedef enum {
+  ul_read,             /* reading input or ready to do so */
+  ul_success,          /* auth success, unlock */
+  ul_fail,             /* auth fail */
+  ul_cancel,           /* user cancelled auth (pw_cancel or pw_null) */
+  ul_time,             /* timed out */
+  ul_finished          /* user pressed enter */
+} unlock_state;
 
 typedef struct screenhack screenhack;
 struct screenhack {
@@ -56,7 +52,28 @@ typedef struct saver_preferences saver_preferences;
 typedef struct saver_screen_info saver_screen_info;
 typedef struct passwd_dialog_data passwd_dialog_data;
 typedef struct splash_dialog_data splash_dialog_data;
+typedef struct _monitor monitor;
+
+typedef struct poll_mouse_data poll_mouse_data;
+struct poll_mouse_data {
+  int root_x;
+  int root_y;
+  Window child;
+  unsigned int mask;
+  time_t time;
+};
+
+#ifdef HAVE_XINPUT
+/* XInputExtension device support */
+#include <X11/extensions/XInput.h>
 
+typedef struct xinput_dev_info xinput_dev_info;
+struct xinput_dev_info {
+  XDevice       *device;
+  XEventClass   press, release, valuator;
+  poll_mouse_data last_poll_mouse;
+};
+#endif
 
 /* This structure holds all the user-specified parameters, read from the
    command line, the resource database, or entered through a dialog box.
@@ -115,6 +132,8 @@ struct saver_preferences {
   int pointer_hysteresis;      /* mouse motions less than N/sec are ignored */
 
   Bool dpms_enabled_p;         /* Whether to power down the monitor */
+  Bool dpms_quickoff_p;                /* Whether to power down monitor immediately
+                                  in "Blank Only" mode */
   Time dpms_standby;           /* how long until monitor goes black */
   Time dpms_suspend;           /* how long until monitor power-saves */
   Time dpms_off;               /* how long until monitor powers down */
@@ -134,6 +153,7 @@ struct saver_preferences {
   Bool use_mit_saver_extension;
   Bool use_sgi_saver_extension;
   Bool use_proc_interrupts;
+  Bool use_xinput_extension;
 
   Bool getviewport_full_of_lies_p; /* XFree86 bug #421 */
 
@@ -144,6 +164,10 @@ struct saver_preferences {
   char *help_url;              /* Where the help document resides. */
   char *load_url_command;      /* How one loads URLs. */
   char *new_login_command;     /* Command for the "New Login" button. */
+
+  int auth_warning_slack;      /* Don't warn about login failures if they
+                                   all happen within this many seconds of
+                                   a successful login. */
 };
 
 /* This structure holds all the data that applies to the program as a whole,
@@ -158,9 +182,11 @@ struct saver_info {
   saver_preferences prefs;
 
   int nscreens;
+  int ssi_count;
   saver_screen_info *screens;
   saver_screen_info *default_screen;   /* ...on which dialogs will appear. */
-
+  monitor **monitor_layout;            /* private to screens.c */
+  Visual **best_gl_visuals;            /* visuals for GL hacks on screen N */
 
   /* =======================================================================
      global connection info
@@ -173,7 +199,6 @@ struct saver_info {
      server extension info
      ======================================================================= */
 
-  Bool xinerama_p;                /* Whether Xinerama is in use.            */
   Bool using_xidle_extension;     /* which extension is being used.         */
   Bool using_mit_saver_extension;  /* Note that `p->use_*' is the *request*, */
   Bool using_sgi_saver_extension;  /* and `si->using_*' is the *reality*.    */
@@ -190,8 +215,20 @@ struct saver_info {
 # ifdef HAVE_RANDR
   int randr_event_number;
   int randr_error_number;
+  Bool using_randr_extension;
 # endif
 
+  Bool using_xinput_extension;     /* Note that `p->use_*' is the *request*, */
+                                   /* and `si->using_*' is the *reality*.    */
+#ifdef HAVE_XINPUT
+  int xinput_ext_event_number;     /* may not be used */
+  int xinput_ext_error_number;
+  int xinput_DeviceButtonPress;    /* Extension device event codes.          */
+  int xinput_DeviceButtonRelease;  /* Assigned by server at runtime          */
+  int xinput_DeviceMotionNotify;
+  xinput_dev_info *xinput_devices;
+  int num_xinput_devices;
+# endif
 
   /* =======================================================================
      blanking
@@ -237,6 +274,7 @@ struct saver_info {
 
   int unlock_failures;         /* Counts failed login attempts while the
                                   screen is locked. */
+  time_t unlock_failure_time;  /* Time of first failed login attempt. */
 
   char *unlock_typeahead;      /* If the screen is locked, and the user types
                                    a character, we assume that it is the first
@@ -247,7 +285,7 @@ struct saver_info {
   char *user;                  /* The user whose session is locked. */
   char *cached_passwd;         /* Cached password, used to avoid multiple
                                   prompts for password-only auth mechanisms.*/
-  enum unlock_state unlock_state;
+  unlock_state unlock_state;
 
   auth_conv_cb_t unlock_cb;    /* The function used to prompt for creds. */
   void (*auth_finished_cb) (saver_info *si);
@@ -349,7 +387,6 @@ struct saver_screen_info {
   int current_depth;           /* How deep the visual (and the window) are. */
 
   Visual *default_visual;      /* visual to use when none other specified */
-  Visual *best_gl_visual;      /* visual to use for GL hacks */
 
   Window real_vroot;           /* The original virtual-root window. */
   Window real_vroot_value;     /* What was in the __SWM_VROOT property. */
@@ -383,12 +420,7 @@ struct saver_screen_info {
      timers
      ======================================================================= */
 
-  int poll_mouse_last_root_x;          /* Used only when no server exts. */
-  int poll_mouse_last_root_y;
-  Window poll_mouse_last_child;
-  unsigned int poll_mouse_last_mask;
-  time_t poll_mouse_last_time;
-
+  poll_mouse_data last_poll_mouse;     /* Used only when no server exts. */
 
   /* =======================================================================
      subprocs
@@ -407,4 +439,4 @@ struct saver_screen_info {
 };
 
 
-#endif
+#endif /* __XSCREENSAVER_TYPES_H__ */