#ifndef GRAPHICS_DISPLAYINFO_H
#define GRAPHICS_DISPLAYINFO_H
/*
** $Filename: graphics/displayinfo.h $
** $Release: 2.04 Includes, V37.4 $
** $Revision: 37.6 $
** $Date: 91/11/08 $
**
** include define file for displayinfo database
**
** (C) Copyright 1985-1991 Commodore-Amiga, Inc.
** All Rights Reserved
*/

#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif 

#ifndef GRAPHICS_GFX_H
#include <graphics/gfx.h>
#endif 

#ifndef GRAPHICS_MONITOR_H
#include <graphics/monitor.h>
#endif 

#ifndef UTILITY_TAGITEM_H
#include <utility/tagitem.h>
#endif 



typedef APTR DisplayInfoHandle;



#define DTAG_DISP 0x80000000
#define DTAG_DIMS 0x80001000
#define DTAG_MNTR 0x80002000
#define DTAG_NAME 0x80003000

struct QueryHeader
{
 ULONG StructID; 
 ULONG DisplayID; 
 ULONG SkipID; 
 ULONG Length; 
};

struct DisplayInfo
{
 struct QueryHeader Header;
 UWORD NotAvailable; 
 ULONG PropertyFlags; 
 Point Resolution; 
 UWORD PixelSpeed; 
 UWORD NumStdSprites; 
 UWORD PaletteRange; 
 Point SpriteResolution; 
 UBYTE pad[4];
 ULONG reserved[2]; 
};



#define DI_AVAIL_NOCHIPS 0x0001
#define DI_AVAIL_NOMONITOR 0x0002
#define DI_AVAIL_NOTWITHGENLOCK 0x0004



#define DIPF_IS_LACE 0x00000001
#define DIPF_IS_DUALPF 0x00000002
#define DIPF_IS_PF2PRI 0x00000004
#define DIPF_IS_HAM 0x00000008

#define DIPF_IS_ECS 0x00000010 
#define DIPF_IS_PAL 0x00000020
#define DIPF_IS_SPRITES 0x00000040
#define DIPF_IS_GENLOCK 0x00000080

#define DIPF_IS_WB 0x00000100
#define DIPF_IS_DRAGGABLE 0x00000200
#define DIPF_IS_PANELLED 0x00000400
#define DIPF_IS_BEAMSYNC 0x00000800

#define DIPF_IS_EXTRAHALFBRITE 0x00001000

struct DimensionInfo
{
 struct QueryHeader Header;
 UWORD MaxDepth; 
 UWORD MinRasterWidth; 
 UWORD MinRasterHeight; 
 UWORD MaxRasterWidth; 
 UWORD MaxRasterHeight; 
 struct Rectangle Nominal; 
 struct Rectangle MaxOScan; 
 struct Rectangle VideoOScan; 
 struct Rectangle TxtOScan; 
 struct Rectangle StdOScan; 
 UBYTE pad[14];
 ULONG reserved[2]; 
};

struct MonitorInfo
{
 struct QueryHeader Header;
 struct MonitorSpec *Mspc; 
 Point ViewPosition; 
 Point ViewResolution; 
 struct Rectangle ViewPositionRange; 
 UWORD TotalRows; 
 UWORD TotalColorClocks; 
 UWORD MinRow; 
 WORD Compatibility; 
 UBYTE pad[36];
 Point DefaultViewPosition; 
 ULONG PreferredModeID; 
 ULONG reserved[2]; 
};



#define MCOMPAT_MIXED 0 
#define MCOMPAT_SELF 1 
#define MCOMPAT_NOBODY -1 

#define DISPLAYNAMELEN 32

struct NameInfo
{
 struct QueryHeader Header;
 UBYTE Name[DISPLAYNAMELEN];
 ULONG reserved[2]; 
};



#define INVALID_ID ~0



#define MONITOR_ID_MASK 0xFFFF1000

#define DEFAULT_MONITOR_ID 0x00000000
#define NTSC_MONITOR_ID 0x00011000
#define PAL_MONITOR_ID 0x00021000





#define LORES_KEY 0x00000000
#define HIRES_KEY 0x00008000
#define SUPER_KEY 0x00008020
#define HAM_KEY 0x00000800
#define LORESLACE_KEY 0x00000004
#define HIRESLACE_KEY 0x00008004
#define SUPERLACE_KEY 0x00008024
#define HAMLACE_KEY 0x00000804
#define LORESDPF_KEY 0x00000400
#define HIRESDPF_KEY 0x00008400
#define SUPERDPF_KEY 0x00008420
#define LORESLACEDPF_KEY 0x00000404
#define HIRESLACEDPF_KEY 0x00008404
#define SUPERLACEDPF_KEY 0x00008424
#define LORESDPF2_KEY 0x00000440
#define HIRESDPF2_KEY 0x00008440
#define SUPERDPF2_KEY 0x00008460
#define LORESLACEDPF2_KEY 0x00000444
#define HIRESLACEDPF2_KEY 0x00008444
#define SUPERLACEDPF2_KEY 0x00008464
#define EXTRAHALFBRITE_KEY 0x00000080
#define EXTRAHALFBRITELACE_KEY 0x00000084



#define VGA_MONITOR_ID 0x00031000

#define VGAEXTRALORES_KEY 0x00031004
#define VGALORES_KEY 0x00039004
#define VGAPRODUCT_KEY 0x00039024
#define VGAHAM_KEY 0x00031804
#define VGAEXTRALORESLACE_KEY 0x00031005
#define VGALORESLACE_KEY 0x00039005
#define VGAPRODUCTLACE_KEY 0x00039025
#define VGAHAMLACE_KEY 0x00031805
#define VGAEXTRALORESDPF_KEY 0x00031404
#define VGALORESDPF_KEY 0x00039404
#define VGAPRODUCTDPF_KEY 0x00039424
#define VGAEXTRALORESLACEDPF_KEY 0x00031405
#define VGALORESLACEDPF_KEY 0x00039405
#define VGAPRODUCTLACEDPF_KEY 0x00039425
#define VGAEXTRALORESDPF2_KEY 0x00031444
#define VGALORESDPF2_KEY 0x00039444
#define VGAPRODUCTDPF2_KEY 0x00039464
#define VGAEXTRALORESLACEDPF2_KEY 0x00031445
#define VGALORESLACEDPF2_KEY 0x00039445
#define VGAPRODUCTLACEDPF2_KEY 0x00039465
#define VGAEXTRAHALFBRITE_KEY 0x00031084
#define VGAEXTRAHALFBRITELACE_KEY 0x00031085



#define A2024_MONITOR_ID 0x00041000

#define A2024TENHERTZ_KEY 0x00041000
#define A2024FIFTEENHERTZ_KEY 0x00049000



#define PROTO_MONITOR_ID 0x00051000

#endif 
