//////////////////////////////////////////////////////////////////////
// File - SCREEN_LIB.H
//
// Library for accessing the SCREEN card,
// Code was generated by DriverWizard.
// It accesses the hardware via WinDriver functions.
//
//////////////////////////////////////////////////////////////////////
#ifndef _SCREEN_LIB_H_
#define _SCREEN_LIB_H_
#include "windrvr.h"
#include "pci_regs.h"
#include "bits.h"
#include "cpia.h"
#ifdef __cplusplus
extern "C" {
#endif
// In order to run the application correctly, remark the
// unnecessary lines nd leave the VENDOR_ID and DEVICE_ID
// according the screen that you are using.
//enum { SCREEN_DEFAULT_VENDOR_ID = 0x1013 }; // Cirrus
//enum { SCREEN_DEFAULT_VENDOR_ID = 0x1023 }; // Trident
//enum { SCREEN_DEFAULT_VENDOR_ID = 0x102C }; // Chips And Technologies
enum { SCREEN_DEFAULT_VENDOR_ID = 0x1002 }; // ATI
enum { SCREEN_DEFAULT_DEVICE_ID = 0x0 };
// This line should be change according to the screen on which
// the application is running. 1024 means that the screen has
// 1024 pixels per line.
enum { STRID = 1024 };
typedef enum
{
SCREEN_MODE_BYTE = 0,
SCREEN_MODE_WORD = 1,
SCREEN_MODE_DWORD = 2
} SCREEN_MODE;
typedef enum
{
SCREEN_AD_BAR0 = AD_PCI_BAR0,
SCREEN_AD_BAR1 = AD_PCI_BAR1,
SCREEN_AD_BAR2 = AD_PCI_BAR2,
SCREEN_AD_BAR3 = AD_PCI_BAR3,
SCREEN_AD_BAR4 = AD_PCI_BAR4,
SCREEN_AD_BAR5 = AD_PCI_BAR5,
SCREEN_AD_EPROM = AD_PCI_BAR_EPROM,
} SCREEN_ADDR;
// Number of IO and memory ranges
enum { SCREEN_ITEMS = AD_PCI_BARS };
typedef struct SCREEN_STRUCT *SCREEN_HANDLE;
// Options for SCREEN_Open
enum { SCREEN_OPEN_USE_INT = 0x1 };
SCREEN_HANDLE SCREEN_LocateAndOpenBoard (DWORD dwVendorID, DWORD dwDeviceID, BOOL fUseInt, PVOID *pScreen);
BOOL SCREEN_Open (SCREEN_HANDLE *phSCREEN, DWORD dwVendorID, DWORD dwDeviceID, DWORD nCardNum, DWORD dwOptions);
void SCREEN_Close(SCREEN_HANDLE hSCREEN);
DWORD SCREEN_CountCards (DWORD dwVendorID, DWORD dwDeviceID);
BOOL SCREEN_IsAddrSpaceActive(SCREEN_HANDLE hSCREEN, SCREEN_ADDR addrSpace);
void SCREEN_GetPciSlot(SCREEN_HANDLE hSCREEN, WD_PCI_SLOT *pPciSlot);
// General read/write function
void SCREEN_ReadWriteBlock(SCREEN_HANDLE hSCREEN, SCREEN_ADDR addrSpace, DWORD dwOffset, BOOL fRead, PVOID buf, DWORD dwBytes, SCREEN_MODE mode);
void SCREEN_WriteDword(SCREEN_HANDLE hSCREEN, SCREEN_ADDR addrSpace, DWORD dwOffset, DWORD data);
DWORD SCREEN_ReadPCIReg(SCREEN_HANDLE hSCREEN, DWORD dwReg);
// This string is set to an error message, if one occurs
extern CHAR SCREEN_ErrorString[];
BOOL DrawPicture(PVOID pBuffer, FRAME_INFO frameInfo, BOOL first_time, BOOL last_time);
#ifdef __cplusplus
}
#endif
#endif