#ifndef _INLINE_PROGRAB_H
#define _INLINE_PROGRAB_H

#ifndef __INLINE_MACROS_H
#include <inline/macros.h>
#endif

#ifndef PROGRAB_BASE_NAME
#define PROGRAB_BASE_NAME ProGrabBase
#endif



/*
**
**	prograbi.h  (29-Aug-1998)
**
**	created by hand by Nicholas Redgrave
**
**
**
*/


/*

Flags, defined in the prograb.h header file, determining
the image resolution:

EVDIGI_MODE_LORES               320x256 PAL/SECAM, 320x240 NTSC
EVDIGI_MODE_LORES_OSCAN         368x283 PAL/SECAM, 368x240 NTSC
EVDIGI_MODE_HIRES               640x256 PAL/SECAM, 640x240 NTSC
EVDIGI_MODE_HIRES_OSCAN         736x283 PAL/SECAM, 736x240 NTSC
EVDIGI_MODE_HIRESLACE           640x512 PAL/SECAM, 640x480 NTSC
EVDIGI_MODE_HIRESLACE_OSCAN     736x512 PAL/SECAM, 736x480 NTSC


Flags determining video systems:

EVDIGI_SYSTEM_PAL     0
EVDIGI_SYSTEM_SECAM   1
EVDIGI_SYSTEM_NTSC    2

*/


/*---------------------------------------------------------------*/



/* void EVDIGI_Init(register __a0 struct EVDigi *pVDigi); */

#define EVDIGI_Init(last) \
	LP1NR(0x1E,EVDIGI_Init, struct EVDigi *, last, a0, \
	, PROGRAB_BASE_NAME)



/* void EVDIGI_TestPerformance(register __a0 struct Screen *pScr); */

#define EVDIGI_TestPerformance(last) \
	LP1NR(0x72,EVDIGI_TestPerformance, struct Screen *, last, a0, \
	, PROGRAB_BASE_NAME)


/* BOOL EVDIGI_CheckVideoSignal(void); */

#define EVDIGI_CheckVideoSignal() \
	LP0(0x36, short, EVDIGI_CheckVideoSignal, \
	, PROGRAB_BASE_NAME)



/* BOOL EVDIGI_GrabImageRaw(register __a0 struct EVDigi *pVDigi,
                            register __d0 LONG ImageResolution);
*/


#define EVDIGI_GrabImageRaw(par1, last) \
	LP2(0x78,short, EVDIGI_GrabImageRaw, struct EVDigi *, par1, a0, \
                                             long,            last, d0, \
	, PROGRAB_BASE_NAME)



/*
LONG EVDIGI_GrabPreview4bpp( register __a0 struct Screen *pScr,
                             register __a1 UBYTE *BitPlanes[4] );
*/

#define EVDIGI_GrabPreview4bpp(par1, last) \
	LP2(0x3C,long, EVDIGI_GrabPreview4bpp, struct Screen *, par1, a0, \
                                               UBYTE *,         last, a1, \
	, PROGRAB_BASE_NAME)



/* LONG EVDIGI_SetBrightness(register __d0 LONG Brightness );*/

#define EVDIGI_SetBrightness(last) \
	LP1(0x42,long, EVDIGI_SetBrightness, long, last, d0, \
	, PROGRAB_BASE_NAME)


/* LONG EVDIGI_SetSaturation(register __d0 LONG Saturation ); */

#define EVDIGI_SetSaturation(last) \
	LP1(0x4E,long, EVDIGI_SetSaturation, long, last, d0, \
	, PROGRAB_BASE_NAME)


/* LONG EVDIGI_SetContrast(register __d0 LONG Contrast ); */

#define EVDIGI_SetContrast(last) \
	LP1(0x48,long, EVDIGI_SetContrast, long, last, d0, \
	, PROGRAB_BASE_NAME)


/* BOOL EVDIGI_GrabImage(register __a0 struct EVDigi *pVDigi,
                         register __d0 LONG ImageResolution,
                         register __a1 UBYTE *pRGB);
*/

#define EVDIGI_GrabImage(par1, par2, last) \
	LP3(0x2A,short, EVDIGI_GrabImage, struct EVDigi *, par1, a0, \
                                          long,            par2, d0, \
                                          UBYTE *,         last, a1, \
	, PROGRAB_BASE_NAME)


/* BOOL EVDIGI_RenderImage(register __a0 UBYTE *pRGB,
                           register __a1 struct Screen *pScr,
                           register __d0 WORD imageWidth,
                           register __d1 WORD imageHeight);
*/

#define EVDIGI_RenderImage(par1, par2, par3, last) \
	LP4(0x6C,short, EVDIGI_RenderImage, UBYTE *,         par1, a0, \
                                            struct Screen *, par2, a1, \
                                            WORD,            par3, d0, \
                                            WORD,            last, d1, \
	, PROGRAB_BASE_NAME)


/* BOOL EVDIGI_DecodeImage(register __a0 struct EVDigi *pVDigi,
                           register __a1 UBYTE *pRGB);
*/

#define EVDIGI_DecodeImage(par1, last) \
	LP2(0x7E,short, EVDIGI_DecodeImage, struct EVDigi *, par1, a0, \
                                            UBYTE *,         last, a1, \
	, PROGRAB_BASE_NAME)



/* void EVDIGI_Cleanup(void); */

#define EVDIGI_Cleanup() \
	LP0NR(0x30, EVDIGI_Cleanup, \
	, PROGRAB_BASE_NAME)



/* WORD EVDIGI_SetVideoSystem( register __d0 WORD NewVideoSystem ); */

#define EVDIGI_SetVideoSystem(last) \
	LP1(0x24,word, EVDIGI_SetVideoSystem, word, last, d0, \
	, PROGRAB_BASE_NAME)






#endif