#ifndef LIBRARIES_SWAZBLANKER_H #define LIBRARIES_SWAZBLANKER_H /* ** $Filename: libraries/swazblanker.h $ ** $Release: 2.5 $ ** $Revision: 41.0 $ ** ** SwazBlanker definitions ** ** (C) Copyright 1993-94 David Swasbrook ** All Rights Reserved */ /*****************************************************************************/ #ifndef EXEC_LIBRARIES_H #include #endif /*****************************************************************************/ #define SWAZBLANKERNAME "swazblanker.library" #define SB_TagBase TAG_USER+0x80000 /*****************************************************************************/ /***************************************************************************** This structure is private, you should not have any need to read or write to this. If you need read/write please use the SB_Get and SB_Set functions. */ struct SwazBlankerBase { struct Library LibNode; UBYTE Flags; APTR SegList; struct SignalSemaphore Semaphore; /* Shared resources management */ APTR OldMousePtr; /* A blank pointer, useful when opening a blank screen */ struct Task *ServerMaster; /* Pointer to swazblanker master task */ struct Task *BlankerTask; /* Pointer to blanker task */ struct Screen *Screen; /* Pointer to blanker screen */ struct Window *Window; /* Pointer to blanker window */ BYTE BlankerDieSignal; /* Signal to server task from blanker */ BYTE BlankerReadySignal; /* Signal to server task from blanker */ WORD Pad2; STRPTR OldInterfaceFontName; /* Name of font to use for interfaces (NULL) */ STRPTR BlankerDir; /* Full Path to blanker directory */ struct MsgPort *SBPort; /* Port for use by SwazBlanker only */ STRPTR DocumentationDir; /* Full Path to documentation directory */ /* PRIVATE FIELDS FOLLOW */ BYTE BlankerTaskPri; STRPTR GuiFont; struct Window *PrefsWindow; struct List PrefsList; /* List of preferences modules running */ }; /***************************************************************************** This structure is for messages to the SBPort */ struct SBMessage { struct Message Message; ULONG Type; /* See below for message types */ ULONG Data; /* Specific for type */ ULONG Result; /* Result */ }; #define SBMSG_PING 0 #define SBMSG_BECOMEBLANKER 1 #define SBMSG_BECOMEBLANKER_END 2 /***************************************************************************** This structure is returned by SB_BlankerInfo() */ struct BlankerInfo { struct Node Node; struct DateStamp Date; LONG FileType; LONG FileSize; UWORD Version; /* Version of blanker module */ UWORD Revision; /* Revision of blanker module */ ULONG stack; /* recommended stack size */ ULONG kickstart; /* minimum kickstart required */ ULONG cpu; /* cpu */ STRPTR email; /* email address */ STRPTR author; /* authors name */ STRPTR title; /* breif description */ STRPTR load; /* cpu loading */ STRPTR info; /* information buffer */ STRPTR copyright; /* copyright info */ }; /***************************************************************************** This structure is returned by SB_OpenColorCycleTagList() Structure is PRIVATE! */ struct SBColorCyc { ULONG Flags; BYTE DieSig; struct Screen *Screen; struct ViewPort *ViewPort; struct Task *ColorTask; struct Task *CreatorTask; APTR Private; }; /***************************************************************************** This structure is returned by SB_OpenCopperTagList() Structure is PRIVATE! */ #define SB_MINCOPPER 30 #define SB_MAXCOPPER 200 struct SBCopper { BYTE DieSig; UBYTE Pen; UBYTE ColorAdd; UBYTE ColorRemove; UBYTE Color[3]; UBYTE Pad; WORD Spacing; WORD SpectrumLength; WORD YOffset; struct Screen *Screen; struct Task *CopperTask; struct Task *CreatorTask; struct ViewPort *ViewPort; struct UCopList *UCopList; WORD Speed; WORD CurrLev; WORD YStart; WORD YStop; /* Raw data follows ... */ LONG Spectrum[SB_MAXCOPPER*2]; }; /***************************************************************************** This structure is returned by SB_AddPrefsTaskTagList() */ struct BlankerPrefsNode { struct Node Node; /* Standard exec node */ struct Task *task; /* Pointer to prefs task */ struct Window *window; /* Pointer to window owned by prefs task */ APTR SBHelp; /* Pointer returned by SB_HelpTagList() */ }; /***************************************************************************** Mode values for SB_LockSBBase() and SB_UnLockSBBase(). */ #define SBLOCK_READ 0 #define SBLOCK_WRITE 1 /***************************************************************************** Tag values for SB_SetBaseVarTagList() and SB_GetBaseVarTagList(). */ #define SBBV_ObtainSemaphore SB_TagBase+0x01 #define SBBV_FontInfo SB_TagBase+0x02 #define SBBV_PrefsWindow SB_TagBase+0x03 #define SBBV_BlankerPath SB_TagBase+0x04 #define SBBV_DocPath SB_TagBase+0x05 #define SBBV_BlankerTaskPri SB_TagBase+0x06 #define SBBV_NumberOfPrefsTasks SB_TagBase+0x07 /***************************************************************************** Tag values for SB_BlankerInfoTagList(); */ #define SBBI_Buffer SB_TagBase+0x100 /***************************************************************************** Tag values for SB_HelpTagList(); */ #define SBHELP_BlankerPrefs SB_TagBase+0x101 #define SBHELP_Directory SB_TagBase+0x102 #define SBHELPDIR_SYS 0 /* Dir for main help files etc... */ #define SBHELPDIR_BLANKERS 1 /* Directory for blanker help files */ /***************************************************************************** Tag values for SB_OpenCopperTagList() and SB_SerCopperTagList(). */ #define SBCOPPER_RandomiseColors SB_TagBase+0x201 /* Randomise the colors being used */ #define SBCOPPER_YStart SB_TagBase+0x202 /* First line of copper */ #define SBCOPPER_YStop SB_TagBase+0x203 /* Last line of copper */ #define SBCOPPER_Disabled SB_TagBase+0x204 /* Set to TRUE to turn effect off */ #define SBCOPPER_ScanLinesPerColor SB_TagBase+0x205 /* How many scanlines before color change */ #define SBCOPPER_Speed SB_TagBase+0x206 /* How far copper should move in scanlines/vnblank */ #define SBCOPPER_Pen SB_TagBase+0x207 /* Pen to use for copper effect */ #endif /* LIBRARIES_SWAZBLANKER_H */