Structure that is to be passed to the EVDIGI_Init() function:

struct EVDigi {
     struct Library *GfxBase;
     struct Library *IntuitionBase;
     struct Library *DOSBase; 
     UBYTE *Buffer;
     LONG BufferSize;     
};


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

************************************************************************

LIBRARY FUNCTIONS

WORD __asm EVDIGI_SetVideoSystem( register __d0 WORD NewVideoSystem );

Selects video system: PAL, SECAM or NTSC.

-------------------------------------------------------------------

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

Grabs image and renders it on screen. See the sample program for
more details.

-------------------------------------------------------------------

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

This function must be invoked before you can use any functions from
the prograb.library.

-------------------------------------------------------------------

void EVDIGI_Cleanup(void);

Must be invoked before terminating your application.

-------------------------------------------------------------------

BOOL __asm EVDIGI_CheckVideoSignal(void);

Returns TRUE is video signal has been detected.

-------------------------------------------------------------------

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

Grabs B/W frame and renders it on screen. See the sample program for
more details.

-------------------------------------------------------------------

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

Renders image to screen, depending on the screen depth and mode.

Screen´s dimensions must not be lower than image width and image height.

Return: TRUE if success

-------------------------------------------------------------------

LONG __asm EVDIGI_SetBrightness(register __d0 LONG Brightness );

Sets new value for brightness that will be used while decoding image 
colors. Available values are 0-30, default is 0.
Returns previous value.

-------------------------------------------------------------------

LONG __asm EVDIGI_SetContrast(register __d0 LONG Contrast );

Sets new value for contrast that will be used while decoding image 
colors. Available values are 1-30, default is 10.
Returns previous value.

-------------------------------------------------------------------

LONG __asm EVDIGI_SetSaturation(register __d0 LONG Saturation );

Sets new value for saturation that will be used while decoding image 
colors. Available values are 1-30, default is 10.
Returns previous value.

-------------------------------------------------------------------

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

You need to invoke this procedure only if your program
may be used on accelerated Amigas and/or if it supports 
Multiscan, DblPAL etc. screen modes.

-------------------------------------------------------------------

void EVDIGI_ForcePCMCIAMode();

Forces the library to use the PCMCIA interface. You probably won´t need
to use this function because EVDIGI_Init() automatically detects 
the interface. 

-------------------------------------------------------------------

void EVDIGI_UseA4000Mode();

If you encounter problems on accelerated machines, try this funcion.

-------------------------------------------------------------------

void EVDIGI_UseA1200TurboMode();

If you encounter problems on accelerated machines, try this funcion.

-------------------------------------------------------------------

void EVDIGI_UseNormalMode();

Switches back to the normal mode for unaccelerated computers.

-------------------------------------------------------------------

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

Grabs image. See the sample program for
more details.

-------------------------------------------------------------------

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

Renders grabbed image on screen. See the sample program for
more details. Do not change the resolution between calling EVDIGI_GrabImageRow
and EVDIGI_DecodeImage. When you do not call EVDIGI_DecodeImage you have to
free the buffer memory yourself. The EVDIGI->Buffer contain the address of the buffer
and EVDIGI->BufferSize contain the buffer size (valid only after if 
EVDIGI_GrabImageRaw was first called.

-------------------------------------------------------------------

BOOL __asm EVDIGI_GrabPreviewChunky(register __a0 struct EVDigi *pVDigi, register __a1 UBYTE *GfxMem, register __d0 LONG ImageResolution, register __d1 LONG screenSizeX );

Grabs image in 256 gray levels:
