/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* bos720 src/bos/kernext/disp/inc/voo_info.h 1.1                         */
/*                                                                        */
/*                                                                        */
/*                                                                        */
/* OBJECT CODE ONLY SOURCE MATERIALS                                      */
/*                                                                        */
/* COPYRIGHT International Business Machines Corp. 1993,1994              */
/* All Rights Reserved                                                    */
/*                                                                        */
/* The source code for this program is not published or otherwise         */
/* divested of its trade secrets, irrespective of what has been           */
/* deposited with the U.S. Copyright Office.                              */
/*                                                                        */
/* IBM_PROLOG_END_TAG                                                     */
/* @(#)89	1.1  src/bos/kernext/disp/inc/voo_info.h, rcmrby, bos720 2/16/94 15:33:05 */
/*
 * COMPONENT_NAME: rcmrby
 *
 * FUNCTIONS: Video defines and structures information
 *
 * ORIGINS: 27
 *
 * (C) COPYRIGHT International Business Machines Corp. 1993
 * All Rights Reserved
 * Licensed Materials - Property of IBM
 *
 * US Government Users Restricted Rights - Use, duplication or
 * disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
 */
#ifndef _H_VOO_INFO
#define _H_VOO_INFO

#define VOO_CLUT_SIZE           256             /* 256 entries in CLUT  */
#define VOO_CLUT_WORDS          64              /* 64 words each color  */
#define VOO_DEBUG_MODE          0xFACECAFE      /* debug mode value     */
#define VOO_UPPER_THREE_BYTES   0xFFFFFF00      /* phase/freq check     */
#define VOO_PHASE_DFLT_VALUE    0x00000040      /* phase default        */
#define VOO_FREQ_DFLT_VALUE     0x00000000      /* freq  default        */
/*----------------------------------------------------------------------*/
/* Interface Options                                                    */
/*      Used in voo_options structure, types[] fields.                  */
/*----------------------------------------------------------------------*/
#define VOO_NUM_TYPES           5
#define VOO_CLUTBP_Option       0
#define VOO_GENLOCK_Option      1
#define VOO_FORMAT_Option       2
#define VOO_COLOR_Option        3
#define VOO_CHROM_Option        4
/* not in types[] field,  but value settable by caller */
#define VOO_PHASE_Option        5
#define VOO_FREQ_Option         6

/*----------------------------------------------------------------------*/
/* Interface Option Values                                              */
/*----------------------------------------------------------------------*/
#define VOO_MAX_VALUES          2
/*- VooSetCLUTBypass ---------------------------------------------------*/
#define VOO_NUM_CLUTBP          2       /* number of values             */
#define VOO_CLUT_BYPASS         1       /* clutbp_type - bypass CLUT    */
#define VOO_CLUT_NO_BYPASS      2       /* clutbp_type - no bypass CLUT */
/*- VooSetGenlock ------------------------------------------------------*/
#define VOO_NUM_GENLOCK         2       /* number of values             */
#define VOO_GENLOCK             1       /* genlock_type - use genlock   */
#define VOO_NO_GENLOCK          2       /* genlock_type - no genlock    */
/*- VooSetFormat -------------------------------------------------------*/
#define VOO_NUM_FORMAT          2       /* number of values             */
#define VOO_NTSC1               1       /* NTSC-M;    60Hz;SQP(12.27MHz)*/
#define VOO_PAL1                2       /* PAL-B/G 4.43 50Hz; SQP       */
/*- VooSetColor --------------------------------------------------------*/
#define VOO_NUM_COLOR           2       /* number of values             */
#define VOO_COLOR               1       /* color_type - color mode      */
#define VOO_NO_COLOR            2       /* color type - black-white mode*/
/*- VooSetChrominance --------------------------------------------------*/
#define VOO_NUM_CHROM           2       /* number of values             */
#define VOO_CHROM_STD           1       /* chrom_type - standard        */
#define VOO_CHROM_ENH           2       /* chrom_type - enhanced        */
/*- VidMode ------------------------------------------------------------*/
#define VOO_NUM_MODE            1       /* number of VOO values         */
#define VID_NUM_MODE            3       /* number of video values       */
#define VID_VOO                 1       /* mode_type - enter VOO mode   */
#define VID_STEREO_I            2       /* mode_type - enter stereo-I   */
#define VID_RESTORE             3       /* mode_type - non-video mode   */
/* stereo-II not yet supported */
#define VID_STEREO_II12         4       /* mode_type - enter Stereo-II12*/
#define VID_STEREO_II24         5       /* mode_type - enter Stereo-II24*/


/*----------------------------------------------------------------------*/
/* Default option settings for VOO                                      */
/*----------------------------------------------------------------------*/
#define VOO_CLUTBP_DFLT         VOO_CLUT_NO_BYPASS
#define VOO_GENLOCK_DFLT        VOO_GENLOCK
#define VOO_FORMAT_DFLT         VOO_NTSC1
#define VOO_COLOR_DFLT          VOO_COLOR
#define VOO_CHROM_DFLT          VOO_CHROM_STD


/*----------------------------------------------------------------------*/
/* VOO interface structures                                             */
/*----------------------------------------------------------------------*/
typedef struct voo_clut_entry {         /* format of VOO CLUT entry     */
	unsigned long red  [VOO_CLUT_WORDS];    /* 256 bytes red        */
	unsigned long green[VOO_CLUT_WORDS];    /* 256 bytes green      */
	unsigned long blue [VOO_CLUT_WORDS];    /* 256 bytes blue       */
} VooCLUT, * VooCLUTPtr;

typedef struct voo_options {
    long     types[VOO_NUM_TYPES];      /* Use array for chking via loop*/
	/*   0  clutbp_type;               VOO_CLUT_BYPASS, ._NO_BYPASS */
	/*   1  genlock_type;              VOO_GENLOCK, VOO_NO_GENLOCK  */
	/*   2  format_type;               VOO_PAL, VOO_NTSC choices    */
	/*   3  color_type;                VOO_COLOR, VOO_NO_COLOR      */
	/*   4  chrom_type;                VOO_CHROM_STD, VOO_CHROM_ENH */
    long     phase;                     /* phase adjustment value       */
    long     freq;                      /* subcarrier freq value        */
    long     signal;                    /* signal for Genlock_lost      */
    long     reserved1;                 /* reserved field               */
    long     reserved2;                 /* reserved field               */
  }  VooOpts, * VooOptsPtr;

typedef struct vid_return {             /* generic video return codes   */
    long     rc;                        /* return code                  */
    long     pid;                       /* pid if VID_IN_USE            */
    long     state;                     /* state if VID_IN_USE          */
  }  VooRetr, * VooRetrPtr, VstRetr, * VstRetrPtr, VidRetr, * VidRetrPtr;

typedef struct voo_info {
    VooRetr retr;                       /* VOO return codes             */
    VooOpts opts;                       /* VOO options structure        */
    VooCLUT clut;                       /* CLUT to load (user, dflst or */
					/*    nothing if bypass         */
} VooInfo, * VooInfoPtr, VooEnter, * VooEnterPtr, VidVoo, * VidVooPtr;

typedef struct vst_info {               /* generic stereo               */
    VidRetr retr;                       /* return codes                 */
    long    type;                       /* type of stereo - VID_STEREO_I*/
} VstEnter, * VstEnterPtr, VidSti, * VidStiPtr;

typedef struct vid_exit {
    VidRetr retr;                      /* Video  return codes           */
} VidExit, * VidExitPtr, VidRestore, * VidRestorePtr;

typedef struct vid_query {              /* video query                  */
    VidRetr retr;                       /* return codes                 */
    long    type;                       /* type of video - VOO, stereo-I*/
} VidQry, * VidQryPtr;



/*----------------------------------------------------------------------*/
/* Struct containing just the data to be passed to the adapter.         */
/*----------------------------------------------------------------------*/
typedef struct voo_data {
    VooOpts opts;                       /* VOO options structure        */
    VooCLUT clut;                       /* CLUT to load (user, dflst or */
					/*    nothing if bypass         */
} VooData, * VooDataPtr;



#endif /* _H_VOO_INFO */

