•  Back 
  •  Protocols 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : TOS - The Operating System
Author      : 
Version     : tos.hyp (December 19, 2008)
Subject     : Programmieren/Atari
Nodes       : 3010
Index Size  : 93790
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : Title
@help       : 
@options    : +g -i -s +x +zz -t4
@width      : 70
View Ref-File13.15  XSSI protocol                                               TOS

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.

As an example, the screen saver Before Dawn installs a cookie in

the cookie jar with the ID XSSI. 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

             'Before Dawn' this is the identifier DAWN.

 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