home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
videotlk.zip
/
H
/
VCADD.H
next >
Wrap
Text File
|
1998-11-06
|
30KB
|
769 lines
#ifdef DEBUG
#define STATIC
#else
#define STATIC static
#endif
#define VIDEO_IMAGE_DEFAULT (DI_FOURCC_Y422)
#define VIDEO_BPP_DEFAULT (DI_BITSPERPEL_16)
#define VIDEO_OVERLAY_DEFAULT (TRUE)
#define COLOUR_KEY_DEFAULT (0xDL)
#define VIDEO_FPS_TYPE_FPS (0)
#define VIDEO_FPS_TYPE_MICRO (1)
#define VIDEO_FPS_RATE_DEFAULT (15)
#define VIDEO_FPS_TYPE_DEFAULT (VIDEO_FPS_TYPE_FPS)
#define VGA_NUMCOLOURS_DEFAULT (256)
#ifndef INCL_32
#define ULONG unsigned long
#define LONG long
#define UINT unsigned short
#define USHORT unsigned short
#define SHORT short
#define BOOL unsigned short
#define UCHAR unsigned char
#define BYTE unsigned char
#define CHAR char
#define VOID void
typedef VOID *PVOID;
typedef USHORT (*PF)();
#define FAR far
#endif
#define DIM(a) (sizeof(a)/sizeof(a[0]))
#define MAX(x,y) (((x)>(y))?(x):(y))
#define MIN(x,y) (((x)<(y))?(x):(y))
#ifndef TRUE
#define TRUE (1)
#define FALSE (0)
#endif
// extern USHORT Io;
/* IOCTL Commands */
#define VCAI_CAT (0x8C)
#define VCAI_INIINFO 0x60
#define VCAI_SAVE 0x61
#define VCAI_RESTORE 0x62
/* KLL New Image Restore Functions - Start */
#define VCAI_LOAD_MICROCODE 0x63
#define VCAI_RESTORE_FORMAT 0x64
#define VCAI_CAPTURE_FORMAT 0x65
#define VCAI_RESTORE_IMAGE 0x66
#define VCAI_PLAY 0x67
/* KLL New Image Restore Functions - End */
/* KLL New Tuner Functions - Start */
#define VCAI_QUERYVIDEOSIGNAL 0x68
#define VCAI_TUNERCHANNEL 0x69
/* KLL New Tuner Functions - End */
#define VCAI_VIDEOINPUT 0x6A
#define VCAI_SETCAPTRECT 0x6B
#define VCAI_GETIMAGESCALE 0x6C
#define VCAI_GETDEVINFO 0x6D
#define VCAI_VALIDRECT 0x6E
#define VCAI_UNFREEZE 0x72
#define VCAI_FREEZE 0x74
#define VCAI_VIDEOADJ 0x75
#define VCAI_SETFPS 0x76
#define VCAI_USER 0x79
#define VCAI_AUDIODEV 0x79
#define VCAI_SCREENINFO 0x7C
#define VCAI_SETMONITOR 0x80
#define VCAI_EDCOLORKEY 0x81
#define VCAI_SETCOLORKEY 0x82
#define VCAI_SETCHROMAKEY 0x83
#define VCAI_TTSTATUS 0x92
#define VCAI_TTSETPAGE 0x93
#define VCAI_TTQUERYPAGE 0x94
#define VCAI_TTGETPAGE 0x95
#define VCAERR_SUCCESS 0
#define VCAERR_INVALID_BUFFER 1
#define VCAERR_INVALID_RECT 2
#define VCAERR_INVALID_PARM 3
#define VCAERR_UNSUPPORTED_CMD 4
#define VCAERR_HW_ERROR 5
/* KLL New Tuner Functions - Start */
#define VCAERR_CHANNEL_TOO_LOW 6
#define VCAERR_CHANNEL_TOO_HIGH 7
#define VCAERR_CHANNEL_SKIP 8
#define VCAERR_CHANNEL_NO_TUNER 9
#define VCAERR_SIGNAL_LOCKED 10
#define VCAERR_SIGNAL_NOT_LOCKED 11
#define VCAERR_SIGNAL_INDETERMINATE 12
// Video format types
#define CF_PAL 0
#define CF_NTSC 1
#define CF_YC 8
#define CF_COMPOSITE 9
#define CF_COMPRESS 10
#define CF_EXPAND 11
#define CF_INPUT0 12
#define CF_INPUT1 13
#define CF_INPUT2 14
// these are the video formats supported by the celebrity boards
#define CF_PAL_BGHI 0
#define CF_NTSC_M 1
#define CF_SECAM 2
#define CF_PAL_M 3
#define CF_PAL_N 4
#define CF_NTSC_443 5
#define CF_EXTERNAL_SRC 6
// these formats are supported by the prism board
#define CF_PAL_443 7
#define CF_MONO 8
typedef struct VIDSETTINGS
{
USHORT vid_brightness;
USHORT vid_hue;
USHORT vid_saturation;
USHORT vid_contrast;
} VIDSETTINGS, FAR *PVIDSETTINGS;
/* Used to contain initialiser strings for vxp500/bt812 chips */
typedef struct REGPAIR {
USHORT rp_register;
USHORT rp_value;
} REGPAIR, FAR *PREGPAIR;
typedef struct TUNER
{
ULONG tune_if_freq;
ULONG tune_low_band;
ULONG tune_mid_band;
USHORT tune_band_low;
USHORT tune_band_mid;
USHORT tune_band_high;
} TUNER, FAR * PTUNER;
#define TT_SYNC (0x80)
#define TT_VERSION (0x1C)
#define TT_CHIP_ID_MASK (0x60)
#define TT_CHIP_ID_5246 (0x00)
#define TT_CHIP_ID_5248 (0x20)
#define TT_CHIP_ID_5280 (0x40)
#define TT_CHIP_ID_5281 (0x60)
#define TT_TELETEXT_QUALITY (0x02)
#define TT_VIDEO_QUALITY (0x01)
#define TT_ACQUISITION_CIRCUITS (4)
typedef struct TTSTATUS // Teletext status result
{
ULONG tt_length;
USHORT tt_no_acquisition_circuits;
USHORT tt_flags;
} TTSTATUS, FAR *PTTSTATUS;
typedef struct TTSETPAGE // Specify Teletext page to acquire
{
USHORT tt_page_no;
USHORT tt_acquisition_circuit;
} TTSETPAGE, FAR *PTTSETPAGE;
typedef struct TTQUERYPAGE // Query if Teletext page present
{
USHORT tt_page_no;
USHORT tt_result;
} TTQUERYPAGE, FAR *PTTQUERYPAGE;
#define TT_PAGE_NOT_PRESENT (0x00) // return status results
#define TT_PAGE_PRESENT (0x01)
#define TT_GOOD_PAGE (0x02)
#define TT_BAD_PAGE_NO (0x04)
// Input flag settings
#define TT_ACQUIRE_SYNC (0x02) // call return
#define TT_ACQUIRE_ASYNC (0x04) // return & use semaphore
#define TT_TIMEOUT (0x80) // Timeout on long acquires SYNC/ASYNC
typedef struct TTGETPAGE // Get page of teletext
{
USHORT tt_page_no;
USHORT tt_page_start; // where in page to start acquiring from
USHORT tt_page_length; // number of bytes to acquire
ULONG tt_timeout;
USHORT tt_flags;
// HSEM tt_sem;
} TTGETPAGE, FAR *PTTGETPAGE;
// Specify the chip to use
#define HW_CHIP_ID_VXP500 (0x01)
#define HW_CHIP_ID_DIG (0x02)
#define HW_CHIP_ID_BT848 (0x03)
// Is it a read or a write
#define HW_READ (0x01)
#define HW_WRITE (0x02)
#define HW_READ_GPIO (0x03) // GPIO reads under Bt848 chip
#define HW_WRITE_GPIO (0x04) // GPIO writes under Bt848 chip
typedef struct HWINFO
{
USHORT hw_chip;
USHORT hw_flags;
USHORT hw_register;
USHORT hw_value;
} HWINFO, FAR * PHWINFO;
typedef struct I2CIO
{
USHORT i2c_id;
USHORT i2c_length_out;
UCHAR FAR *i2c_out_data;
USHORT i2c_length_in;
UCHAR FAR *i2c_in_data;
USHORT i2c_result;
} I2CIO, FAR * PI2CIO;
typedef struct ADV_FEATURES
{
ULONG af_red_low;
ULONG af_red_high;
ULONG af_green_low;
ULONG af_green_high;
ULONG af_blue_low;
ULONG af_blue_high;
ULONG af_crop_left;
ULONG af_crop_top;
ULONG af_crop_right;
ULONG af_crop_bottom;
ULONG af_scale_h;
ULONG af_scale_v;
ULONG af_chroma_key_flag;
ULONG af_colour_key_flag;
ULONG af_colour_key;
ULONG af_no_colours;
ULONG af_input_format;
ULONG af_interlace_flag;
ULONG af_v_interpolation;
ULONG af_uniform_flag;
ULONG af_hfilter;
ULONG af_q_factor;
ULONG af_q_auto;
ULONG af_interleave;
ULONG af_tuner_region;
ULONG af_tuner_frequency;
} AF, FAR * PAF;
/* Common Cature Rectangle Define */
typedef struct CRECT { /* CR */
ULONG X_Left;
ULONG Y_Top;
ULONG Y_Height;
ULONG X_Width;
} CRECT;
/* XLATOFF */
#pragma pack(1)
/* XLATON */
/* IOCTL category 140 code 6Ah - Set Video Input Source Connector */
/* & Query Current Input Source Connector */
typedef struct VCASETVIDEOINPUT{ /* VI */
ULONG INPUT_CONNECTOR; /* -1 NO_Change Returns Current Setting */
} VCASETVIDEOINPUT;
typedef VCASETVIDEOINPUT FAR * PVCASETVIDEOINPUT;
/* IOCTL category 140 code 6Bh - Set Source and Destination Capture Rectangles */
typedef struct VCASETCAPTURERECT{ /* CR */
ULONG Source_X_Left;
ULONG Source_Y_Top;
ULONG Source_Y_Height;
ULONG Source_X_Width;
ULONG Dest_X_Left;
ULONG Dest_Y_Top;
ULONG Dest_Y_Height;
ULONG Dest_X_Width;
} VCASETCAPTURERECT;
typedef VCASETCAPTURERECT FAR * PVCASETCAPTURERECT;
/* IOCTL category 140 code 6Ch - Get Image and Scale Into RAM Buffer */
typedef struct VCAGETIMAGESCALE{ /* GIS */
ULONG Capture_Buf_Len;
ULONG Capture_Buf_Ptr;
ULONG Source_X_Left;
ULONG Source_Y_Top;
ULONG Source_Y_Height;
ULONG Source_X_Width;
ULONG Dest_X_Left;
ULONG Dest_Y_Top;
ULONG Dest_Y_Height;
ULONG Dest_X_Width;
} VCAGETIMAGESCALE;
typedef VCAGETIMAGESCALE FAR * PVCAGETIMAGESCALE;
/* IOCTL category 140 code 6Dh - Get Devinfo */
typedef struct _vcadevinfo { /* DI */
ULONG Length;
CHAR ProdInfo[30];
CHAR ManInfo[30];
CHAR Version[10];
ULONG ImgFormat; /* Image Format Supported by the card */
USHORT BitsPerPEL; /* Bit Per PEL in this image format */
USHORT Overlay; /* Device has overlay support */
ULONG Brightness; /* Default Video Attributes for the card */
ULONG hue;
ULONG saturation;
ULONG contrast;
ULONG Sharpness;
ULONG unused1;
ULONG S_X_Left; /* Default Source Coordinates */
ULONG S_Y_Top;
ULONG S_Y_Height;
ULONG S_X_Width;
ULONG D_X_Left; /* Default Destination Coordinates */
ULONG D_Y_Top;
ULONG D_Y_Height;
ULONG D_X_Width;
ULONG D_ScaleFactor; /* Default Scale Factor on copy */
ULONG S_X_MAX; /* Maximum X size for the digitized Source */
ULONG S_Y_MAX; /* Maximun Y size for the digitized Source */
ULONG D_X_MAX; /* Maximun X size for the Destination */
ULONG D_Y_MAX; /* Maximun Y size for the Destination */
ULONG O_X_MAX; /* Maximun X size for the Overlay Destination */
ULONG O_Y_MAX; /* Maximun Y size for the Overlay Destination */
USHORT VideoInputs; /* Number of Software Switchable video Inputs */
USHORT CanRestore;
USHORT CanStretch;
USHORT CanDistort;
USHORT HasVolume; /* Has Volume Control */
USHORT HasBalance; /* Has Balance Control */
USHORT CanScale; /* Can Scale Down on GetImage */
USHORT CanStream; /* Can do streaming of Images to Stream Handler */
ULONG ulFileNum; /* System File Number used in Streaming */
//////////// New Items after 1.0 release below //////////////////////////
BYTE HasTuner; /* Card Has a Channel Tuner */
BYTE HasTeleTex; /* Card Has a TeleTex support */
LONG Delay_Time; /* MS delay between connector change/query signal*/
BYTE HasAFC; /* Automatic Frequency Control/FineTune */
BYTE HasPolarizer; /* Automatic Frequency Control/FineTune */
//////////// New Items after 1.1 release below //////////////////////////
// USHORT VideoOutputs; /* Opposite of Videoinputs */
} VCADEVINFO;
typedef VCADEVINFO FAR * PVCADEVINFO;
/* XLATOFF */
#pragma pack()
/* XLATON */
#define DI_FOURCC_Y422 0x32323459L //( 'Y422' in RAM = 224Y long)
#define DI_BITSPERPEL_16 16 /* 16 Bits Per PEL */
#define DI_NotSupported -1 /* Not Supported */
#define DI_Supported 1 /* Supported */
/* IOCTL category 140 code 6Eh - Set Streaming Capture Image Size */
typedef struct VCACAPISIZE { /* CS */
ULONG X_Left;
ULONG Y_Top;
ULONG Y_Height;
ULONG X_Width;
ULONG ScaleFactor;
} VCACAPISIZE;
typedef VCACAPISIZE FAR * PVCACAPISIZE;
/* IOCTL category 140 code 6Fh - Get Image Into RAM Buffer */
typedef struct VCAGETIMAGE{ /* GI */
ULONG Capture_Buf_Len;
ULONG Capture_Buf_Ptr;
} VCAGETIMAGE;
typedef VCAGETIMAGE FAR * PVCAGETIMAGE;
/* IOCTL category 140 code 70h - get buffer addressing */
typedef struct VCABUFFER{ /* BA */
ULONG buf_addr; /* 32 bit linear address */
ULONG buf_len; /* buffer length in bytes */
ULONG buf_banks; /* number of banks (1 if full aperature) */
} VCABUFFER;
typedef VCABUFFER FAR * PVCABUFFER;
/* IOCTL category 140 code 71h - set current VRAM bank number */
typedef struct VCASELECTBANK{ /* SB */
ULONG bank_num; /* number of bank to select (0-39) */
} VCASELECTBANK;
typedef VCASELECTBANK FAR * PVCASELECTBANK;
/* IOCTL category 140 code 75h - set/query video adjustments */
typedef struct VCASETVIDEO{ /* SV */
ULONG set_brightness; /* 1=min, 255=max, 128=norm, -1=no change, -2=reset default */
ULONG set_hue; /* 1=min, 255=max, 128=neutral, -1=no change, -2=reset default*/
ULONG set_saturation; /* 1=min, 255=max, 128=norm, -1=no change, -2=reset default */
ULONG set_contrast; /* 1=min, 255=max, 128=norm, -1=no change, -2=reset default */
ULONG ret_brightness; /* 1=min, 255=max */
ULONG ret_hue; /* 1=min, 255=max */
ULONG ret_saturation; /* 1=min, 255=max */
ULONG ret_contrast; /* 1=min, 255=max */
} VCASETVIDEO;
typedef VCASETVIDEO FAR * PVCASETVIDEO;
#define NO_CHANGE (0xFFFFFFFFL)
#define DEFAULT (0xFFFFFFFEL)
/* IOCTL category 140 code 76h - set Frame Rate for Streaming */
typedef struct VCASETFPS{ /* SF */
ULONG set_FPS; /* Frames to Second to stream to the Stream Handler */
ULONG ulFlags; /* Frames or MicroSeconds */
} VCASETFPS;
typedef VCASETFPS FAR * PVCASETFPS;
/* Defines for ulFlags */
#define VCASF_FRAMES 0x0
#define VCASF_MICROSECONDS 0x1
/* IOCTL cat 140 code 7Ch - New func that supplies info about the display */
typedef struct VCASCREENINFO{ /* SCRINFO */
ULONG ulLength; /* Length of this structure */
ULONG ul_RESV01; /* Reserved and set to zero */
ULONG ulWidth; /* Width of the Screen */
ULONG ulHeight; /* Height of the Screen */
ULONG ulNumColours; /* Number of Color in Screen's Palette */
ULONG ulHFreq; /* Horizontal Screen Frequency */
ULONG ulVFreq; /* Vertical Screen Frequency */
ULONG ulRGB[256]; /* Pallete Info if ulNumColors < 256 */
} VCASCREENINFO, FAR *PVCASCREENINFO;
/* IOCTL category 140 code 60h - Init Info from .INI file Generic Format */
typedef struct VCAINITG { /* INI */
ULONG ulBrightness; /* 1=min, 255=max */
ULONG ulHue; /* 1=min, 255=max or Tint */
ULONG ulSaturation; /* 1=min, 255=max or Color */
ULONG ulContrast; /* 1=min, 255=max */
BYTE bD_Info[512]; /* Device Specific Info */
} VCAINITG;
typedef VCAINITG FAR * PVCAINITG;
/* IOCTL category 140 code 60h - Init Info from .INI file */
typedef struct VCAINIT { /* IN */
ULONG ulBrightness; /* 1=min, 255=max */
ULONG ulHue; /* 1=min, 255=max or Tint */
ULONG ulSaturation; /* 1=min, 255=max or Color */
ULONG ulContrast; /* 1=min, 255=max */
BYTE bControl ; /* see ulControl Defines */
BYTE bCapPos ; /* see ulCappos Defines */
} VCAINIT;
typedef VCAINIT FAR * PVCAINIT;
/* KLL New Image Restore Functions - Start */
/**************************************************************************/
/* IOCTL category 140 code 63h - Query/Load/Unload MicroCode */
typedef struct VCALOAD { /* LOAD */
ULONG ulflags; /* 1=Query,2=Load,3=Unload */
CHAR ProdInfo[256]; /* Path and Name of MicroCode Load */
ULONG ulLoadID; /* Load ID (returend on a load) */
ULONG ulLength; /* Lenght of load data */
PVOID pLoadData; /* Pointer to MicroCode Load Data */
} VCALOAD;
typedef VCALOAD FAR * PVCALOAD;
/* ulFlags for VCALOAD */
#define VCALOAD_QUERY 0x01
#define VCALOAD_LOAD 0x02
#define VCALOAD_UNLOAD 0x03
/**************************************************************************/
/* IOCTL category 140 code 64h - Query/Set Image Restore Format */
typedef struct VCAIMAGERF { /* IRF */
ULONG ulFlags; /* 0 = Query, 1 = Set */
ULONG ulNumFormats; /* Number of supported format(s) */
ULONG ulCurIndex; /* Current or Format to set to */
ULONG FourCC[64]; /* Name for Format */
} VCAIMAGERF;
typedef VCAIMAGERF FAR * PVCAIMAGERF;
/* ulFlags for VCAIMAGERF (Image Restore Format) */
#define VCAIRF_Query 0x00
#define VCAIRF_Set 0x01
/**************************************************************************/
/* IOCTL category 140 code 65h - Query/Set Image Capture Format */
typedef struct VCAIMAGECF { /* ICF */
ULONG ulFlags; /* 0 = Query, 1 = Set */
ULONG ulNumFormats; /* Number of supported format(s) */
ULONG ulCurIndex; /* Current or Format to set to */
ULONG FourCC[64]; /* Name for Format */
} VCAIMAGECF;
typedef VCAIMAGECF FAR * PVCAIMAGECF;
/* ulFlags for VCAIMAGECF (Image Capture Format) */
#define VCAICF_Query 0x00
#define VCAICF_Set 0x01
/**************************************************************************/
/* IOCTL category 140 code 66h - Restore Image data to the device */
typedef struct VCAIMAGER { /* IR */
ULONG ulLength; /* Lenght of Image Data */
PVOID pImageData; /* Pointer to Image Data */
} VCAIMAGER;
typedef VCAIMAGER FAR * PVCAIMAGER;
/**************************************************************************/
/* IOCTL category 140 code 67h - Restore Image data to the device */
typedef struct VCASTREAM { /* STRM */
ULONG ulLength; /* Lenght of Image Data */
PVOID pImageData; /* Pointer to Image Data */
ULONG ulFlags; /* Flag info */
} VCASTREAM;
typedef VCASTREAM FAR * PVCASTREAM;
/* ulFlag Defines for VCASTREAM */
#define VCA_PLAY_START 0x01
#define VCA_PLAY_DATA 0x02
#define VCA_PLAY_STOP 0x04
/*********************** ********************** ****************************/
/*********************** Overlay Card Functions ****************************/
/*********************** ********************** ****************************/
/* IOCTL category 140 code 80h - Enable/Disable Monitor */
typedef struct VCASETMONITOR { /* EDM */
BOOL bMonitor; /* 1=TRUE=ON, 0=FALSE=OFF */
} VCASETMONITOR;
typedef VCASETMONITOR FAR * PVCASETMONITOR;
/* IOCTL category 140 code 81h - Enable/Disable Transparrent Color */
typedef struct VCAEDCOLORKEY { /* EDCK */
BOOL bColorKeying; /* 1=TRUE=ON, 0=FALSE=OFF */
} VCAEDCOLORKEY;
typedef VCAEDCOLORKEY FAR * PVCAEDCOLORKEY;
/* IOCTL category 140 code 82h - Set Color Key / Transparrent Color */
typedef struct VCASETCOLORKEY { /* SCK */
ULONG ulColorKey; /* Transparrent Color */
// VCA_QUERY_CURRENT
// VCA_SET_DEFAULT
} VCASETCOLORKEY;
typedef VCASETCOLORKEY FAR * PVCASETCOLORKEY;
/* IOCTL category 140 code 83h - Enable/Disable Chroma Key */
typedef struct VCASETCHROMAKEY {
BOOL bChromaKeying; /* 1=TRUE=ON, 0=FALSE=OFF */
} VCASETCHROMAKEY, FAR *PVCASETCHROMAKEY;
/* IOCTL category 140 code 83h - Set Destination Clip List */
typedef struct VCASETCLIPLIST
{
ULONG ulLength;
ULONG ulFlags; // reserved and set to zero
ULONG ulNum_Rects;
CRECT VisRect[256]; // Array of n visible Rectangles
} VCASETCLIPLIST, FAR *PVCASETCLIPLIST;
/* KLL New Tuner Functions - Start */
/* IOCTL category 140 code 68h - Query Video Input Connector's Signal */
/* no structure it just Returns a status */
/* VCAERR_SIGNAL_LOCKED 10 */
/* VCAERR_SIGNAL_NOT_LOCKED 11 */
/* VCAERR_SIGNAL_INDETERMINATE 12 */
/* IOCTL category 140 code 69h - Set/Query Tuner Channel */
typedef struct VCATUNCHAN { /* TUC */
ULONG ulFlags; /* 1=Set, 2=Query */
ULONG ulOptions; /* Options */
USHORT usRegion; /* Region of the word tuner is used in */
USHORT usChannel; /* Channel Number */
LONG lFineTune; /* Fine Tune value for Channel */
ULONG ulFrequency; /* Frequency instead of Channel/region */
} VCATUNCHAN;
typedef VCATUNCHAN FAR * PVCATUNCHAN;
/* Values for ulFlags on Set/Query Channel */
#define TUC_SET_CHANNEL 1
#define TUC_QUERY_CHANNEL 2
/* Values for ulOptions on Set/Query Channel */
/* Bit sensitive field */
#define TUC_AFC_ON 4
#define TUC_AFC_OFF 0
#define TUC_FREQUENCY 8
#define TUC_CHANNEL 0
#define TUC_POLARIZATION_VERT 16
#define TUC_POLARIZATION_HORI 0
/* values for ulRegion use on Set/Query Channel */
/* Tuner Type M */
#define USA 0
#define US_CATV 1
/* Tuner Type BG */
#define CCIR 2 /* Western Europe */
#define CCIR_CATV 3 /* Western Europe */
/* Tuner Type I */
#define AUSTRALIA 4 /* Australia */
#define JAPAN 5 /* Japan */
#define JAPAN_CATV 6 /* Japan */
/* Specific Status Returned by Set/Query Channel */
/* VCAERR_CHANNEL_TOO_LOW 6 */
/* VCAERR_CHANNEL_TOO_HIGH 7 */
/* VCAERR_CHANNEL_SKIP 8 */
/* VCAERR_CHANNEL_NO_TUNER 9 */
/* KLL New Tuner Functions - End */
/* KLL Volume Functions - Start */
// Modified by TS to comply to
// naming convention standard
/* IOCTL category 140 code 79h - General purpose VCAI_USER */
/* a General Device Specific command */
typedef struct VCAUSER{ /* Generic general purpose */
ULONG user_length; /* Length of this structure */
ULONG user_function; /* Function */
} VCAUSER, FAR *PVCAUSER;;
// Modified by TS to comply to
// naming convention standard
/* IOCTL category 140 code 79h - Set/Query Audio Functions, this is */
/* a General Device Specific command */
typedef struct VCADEVAUDIO{ /* DEVAUD */
ULONG aud_length; /* Length of this structure */
ULONG aud_function; /* Audio Input Channel */
ULONG aud_flags; /* Flags */
ULONG aud_reserved; /* Reserved and set to zero */
ULONG aud_lvolume; /* Left Volume */
ULONG aud_rvolume; /* Right " */
ULONG aud_lbass; /* Left Bass */
ULONG aud_rbass; /* Right " */
ULONG aud_ltreble; /* Left Treble */
ULONG aud_rtreble; /* Right " */
} VCADEVAUDIO;
typedef VCADEVAUDIO FAR * PVCADEVAUDIO;
/* Defines for function on VCADEVAUDIO IOCTL */
// A U D 1
#define VCADEV_AUDIO_FUNC 0x41554431
/* Defines for ulFlags on VCADEVAUDIO IOCTL */
#define VCADEV_AUDIO_FLAG_MUTE 1
#define VCADEV_AUDIO_FLAG_UNMUTE 0
/* Defines for ulL_xxx and ulR_xxx on VCADEVAUDIO IOCTL */
/* -1=no change, -2=reset default, -1 on QUERY = not supported */
#define VCA_QUERY_CURRENT 0xFFFFFFFF
#define VCA_SET_TO_DEFAULT 0xFFFFFFFE
#define VCA_NOT_SUPPORTED 0xFFFFFFFF
/* New Volume Functions - End */
typedef struct
{
ULONG vfh_FrameNumber; /* relative frame number */
ULONG vfh_FramesSkipped; /* no. frames skipped */
ULONG vfh_StreamTime; /* stream time in milliseconds */
ULONG vfh_FrameSize; /* size in bytes */
ULONG vfh_SHparm1; /* used by stream handler */
ULONG vfh_reserved3; /* unused */
ULONG vfh_reserved2; /* unused */
ULONG vfh_reserved1; /* unused */
} VIDEO_FRAME_HDR, FAR *PVIDEO_FRAME_HDR;
void ini_load (char *ini_name);
typedef struct MODEINFO
{
ULONG mi_len;
ULONG mi_bpp;
ULONG mi_hres;
ULONG mi_vres;
ULONG mi_vram_address;
ULONG mi_vram_bank_size; // Current bank size
ULONG mi_line_size; // Size in bytes of one scan line
ULONG mi_fcc; // PEL format FOURCC
ULONG mi_vram_size;
} MODEINFO, FAR *PMODEINFO;
typedef struct INIDATA
{
char *ini_name;
void *ini_address;
} INIDATA, FAR *PINIDATA;
// This structure is used by the hardware layer
// to supply the generic layer with the addresses
// of some key fields.
typedef struct DETAILS
{
ULONG det_length;
UCHAR det_product[30]; // VCA product name
UCHAR det_manufacturer[30]; // VCA manufacturer
UCHAR det_version[10]; // VCA version
USHORT *det_id; // address of VCAs Id variable
USHORT *det_irq; // address of VCAs Irq variable
USHORT *det_io; // address of VCAs Io variable
USHORT *det_dma; // address of VCAs dma variable
ULONG *det_memory; // address of VCAs memory variable
UCHAR *det_inifile; // address of VCAs inifile variable
} VCADETAILS, FAR *PVCADETAILS;
// Instance data structure passed from the generic
// layer to the hardware specific.
// The generic layer is responble for creating
// & initialising this data structure.
// In the current release (20/5/95) the instance
// data is single instance per driver
typedef struct VCAINST
{
USHORT vca_videoinput;
USHORT vca_videoinputs;
ULONG vca_fps_rate;
ULONG vca_fps_type;
USHORT vca_screenwidth;
USHORT vca_screenheight;
USHORT vca_xposition;
USHORT vca_yposition;
SHORT vca_xoffset;
SHORT vca_yoffset;
USHORT vca_windowwidth;
USHORT vca_windowheight;
USHORT vca_internhscale;
USHORT vca_internvscale;
USHORT vca_externhscale;
USHORT vca_externvscale;
USHORT vca_externhzoom;
USHORT vca_externvzoom;
USHORT vca_vzoomfactor;
USHORT vca_vzoomtearpoint;
ULONG vca_numcolours;
ULONG vca_colourkey;
USHORT vca_vgacolours;
USHORT vca_vgaclock;
VIDSETTINGS vca_video;
VCADEVAUDIO vca_aud;
ULONG vca_captureformat;
USHORT vca_capturebpp;
USHORT vca_capturemask;
USHORT vca_capturequality;
USHORT vca_freezestatus;
USHORT vca_inputformat;
BOOL vca_monitor;
BOOL vca_colourkeyflag;
BOOL vca_chromakeyflag;
ULONG vca_tunerregion;
ULONG vca_tunerchannel;
ULONG vca_tunerfreq; // Sky Satellite/Video
LONG vca_tunerfinetune;
BOOL vca_tunerafc;
BOOL vca_tunerpolarization;
BOOL vca_tunermute;
USHORT vca_tunertype; // Different tuner types
USHORT vca_tuneraddress; // Added to support new tuners
BOOL vca_overlay; // Is this an overlay driver
BOOL vca_monitorsvert; // Multi-monitor setting
BOOL vca_monitorshoriz; // Multi-monitor setting
BOOL vca_hwnd; // Destination Window Handle
BOOL vca_vram_present; // Is there a physical VRAM buffer
} VCAINST, FAR * PVCAINST;