#ifndef GRAPHICS_DISPLAYINFO_H
#include <graphics/displayinfo.h>
#endif

#ifndef CLIENT_H
#define CLIENT_H

/* Client actions  - what the client can say to the server */

#define ACTION_FAILED      3

/* Server commands - what the server can say to the client */

#define COMMAND_IDLE        0
#define COMMAND_QUIT        1

/*=====================================================*/
/*=== DisplayIDInformation ============================*/
/*=====================================================*/

struct DisplayIDInformation
	{
	struct DisplayInfo   di_DisplayInfo;
	struct DimensionInfo di_DimensionInfo;
	struct MonitorInfo   di_MonitorInfo;
	UBYTE di_Brightness;
	UBYTE di_Volume;
	STRPTR di_Args;
	};

/* Some useful macros follow */

#define FREEDISPLAYIDINFO(dinf) FreeServerData(dinf)
#define DISPLAYID(dinf)         dinf->di_DisplayInfo.Header.DisplayID
#define FILTEROUT(id,flags)     ((id) & ~(flags))
#define GETSTANDARDRECT(dinf)   &(dinf->di_DimensionInfo.Nominal)
#define GETMAXOSCANRECT(dinf)   &(dinf->di_DimensionInfo.MaxOScan)
#define GETVIDEOOSCANRECT(dinf) &(dinf->di_DimensionInfo.VideoOScan)
#define GETTXTOSCANRECT(dinf)   &(dinf->di_DimensionInfo.TxtOScan)
#define GETSTDOSCANRECT(dinf)   &(dinf->di_DimensionInfo.StdOScan)
#define GETBRIGHTNESS(dinf)     (dinf->di_Brightness)
#define GETVOLUME(dinf)         (dinf->di_Volume)

#define RECTANGLEWIDTH(r)	((r)->MaxX - (r)->MinX + 1)
#define RECTANGLEHEIGHT(r)	((r)->MaxY - (r)->MinY + 1)

#define STILL_BLANKING (GetServerCommand()==COMMAND_IDLE)

#define Check4String(str_l,str_h) (BOOL)(GetArgString(str_l,str_h,NULL)?1:0)

typedef APTR Sound;

typedef APTR Module;

#ifndef CLIENT_PRAGMAS_H
#include "client_pragmas.h"
#endif

#endif
