HomeProtocolsxFSL interfaceAppendix

15.15 XSSI protocol

A major problem for the programmer of a screen saver is that many applications know nothing about what is currently happening before the user's eyes on the screen. Accordingly they continue to output their information to the screen, even though actually it has now been taken over by the screen saver. So that an application can be certain of the state of the screen saver, and in some circumstances may even influence it, there exists the so-called XSSI standard (where XSSI stands for 'eXtended ScreenSaver Interface'), which was suggested by Julian Reschke.

The value of the XSSI cookie is a pointer to the following structure:

typedef struct
{
     LONG id;
     WORD version;
     WORD save_stat;
     WORD prg_stat;
     LONG vec_stat;
} INFOXSSI;
id Each screen saver enters its XBRA identifier as id. For

id screen saver
DAWN Before Dawn
BBLS BUBBLES
version The version number of the XSSI protocol is entered in version. 'Before Dawn' at present uses the version number 0x101.
save_stat An application can find out whether the saver is active at the time with save_stat. A value of 0 means that the saver is not active, a negative value means that it has kicked in.
prg_stat With prg_stat an application can inform 'Before Dawn' how it is to behave. prg_stat can take the following values:

prg_stat = 0 Save normally
prg_stat = 1 Never save
prg_stat = -1 Save immediately
vec_stat vec_stat indicates which system vectors are monitored. This value represents a bit-field. Its assignment is as follows:

Bit System vector
0 Keyboard
1 Mouse
2 Joystick
3 MIDI
4 Modem 1
5 Modem 2
6 Serial 1
7 LAN port or Serial 2
8-14 Other vectors
15 Window events

HomeProtocolsxFSL interfaceAppendix