/*
	Standard Include Data for eXternal Screen Blanker Standard
	----------------------------------------------------------
	written by Oliver Wagner (C) 1992 All Rights Reserved
*/

/* Prefs structure for XSB library. Usage is free to the XSB library */
struct XSBPref {
  union {
    char string[40]; /* a string value */
    long arg; /* long values */
  } u;
};
#define xsb_string u.string
#define xsb_arg u.arg


/* Param structure for the XSB call XSBGetParams. Passed back to the
   XSB commodity by the library (should be static data)
*/
struct XSBParams {
  struct XSBParams *next;
  long type; /* see defines below */
  char *text; /* text label for gadgets */
  char **labels; /* optional labels for cycle gadgets */
  long min,max; /* optional min/max values for sliders */
  struct XSBPref *value; /* value entry */
};

/* definitions for the "type" entry */
#define XSBP_BOOL 1 /* Boolean checkbox */
#define XSBP_STRING 2 /* String gadget */
#define XSBP_INTEGER 3 /* Integer gadget */
#define XSBP_SLIDER 4 /* a slider */
#define XSBP_CYCLE 5 /* a cycle gadget */


/* this structure is passed to your XSB library at blanking time */
struct XSBInfo {
  struct timerequest *tr; /* a properly, ready to use timer request (UNIT_VBLANK) */
  struct XSBPref *prefs; /* pointer to array of struct XSBPref, loaded from ENV:XSB/<blankername>.XSBP */
};

/* XSB Library pragmas */
#pragma libcall XSBBase XSBBlankScreen 1E 8002
#pragma libcall XSBBase XSBGetID 24 0
#pragma libcall XSBBase XSBGetParams 2A 0

/* XSB Library protos */
void __saveds XSBBlankScreen(long,struct XSBInfo*);
char * __saveds XSBGetID(void);
struct XSBParams * __saveds XSBGetParams(void);
