/*$Author:   DCODY  $*/
/*$Date:   25 Jun 1992 23:21:50  $*/
/*$Header:   W:/sccs/inc/binary.h_v   1.1   25 Jun 1992 23:21:50   DCODY  $*/
/*$Log:   W:/sccs/inc/binary.h_v  $
 * 
 *    Rev 1.1   25 Jun 1992 23:21:50   DCODY
 * added generic SB mixer channel equates
 * 
 *    Rev 1.0   15 Jun 1992 09:58:34   BCRANE
 * Initial revision.
*/
/*$Logfile:   W:/sccs/inc/binary.h_v  $*/
/*$Modtimes$*/
/*$Revision:   1.1  $*/
/*$Workfile:   binary.h  $*/

    /*\
    |*|----====< BINARY.H >====----
    |*|
    |*| Copyright (c) 1991, Media Vision, Inc.	All Rights Reserved.
    |*|
    \*/

/*
// commands issued to the 2F interface
*/

#define BI_INSTALLCHECK 0		/* Check if the driver is installed */
#define BI_GETVERSION	1		/* Get the version #		    */
#define BI_GETSTATE	2		/* Get the state pointer and size   */
#define BI_GETFUNCTION	3		/* Get the function table pointer   */
#define BI_GETDMAIRQ	4		/* Get the DMA/IRQ/INT number	    */
#define BI_SENDCMD	5		/* reserved			    */
#define BI_GETSTATUSSTR 6		/* Get the status string	    */
#define BI_reserved1	7		/* reserved			    */
#define BI_reserved2	8		/* reserved			    */
#define BI_reserved3	9		/* reserved			    */
#define BI_SETSCANCODE	10		/* set the hot key scan codes	    */
#define BI_GETPATH	11		/* get the file path		    */

/*
// TRUE/FALSE & ON/OFF logic values
*/

#define BI_TRUE 	-1
#define BI_FALSE	0

#define BI_ON		BI_TRUE 	/* on state			    */
#define BI_OFF		BI_FALSE	/* off state			    */

#define BI_INT2FCODE1	0xBC		/* Bryan's initials                 */

/* int 2F ID (func 0) return register values				    */

#define BI_INT2FREGBX	0x6D00		/* 'm '                             */
#define BI_INT2FREGCX	0x0076		/* ' v'                             */
#define BI_INT2FREGDX	0x2020		/* UPPERCASE XOR MASK		    */

/*
// Command Block Structure
*/

	typedef struct {

	  unsigned int bc_blockID;	/* language command block	 (mandatory)  */

	  unsigned int bc_devcode;	/* device code (MIXER/VOLUME/CROSS/FILTER...) */

	  unsigned int bc_deviceselect; /* INPUT|OUTPUT mixer select & more...	      */

	  unsigned int bc_fromflag;	/* [FROM <term>] TRUE/FALSE		      */
	  unsigned int bc_fromtype;	/* type fromvalue is type # or %	      */
	  unsigned int bc_fromvalue;	/* value derived from <term>		      */

	  unsigned int bc_toflag;	/* [TO <term>] TRUE/FALSE	 (mandatory)  */
	  unsigned int bc_totype;	/* type fromvalue is type # or %	      */
	  unsigned int bc_tovalue;	/* value derived from <term>		      */

	  unsigned int breserved1;	/* reserved for internal use		      */

	  unsigned int bc_leftchflag;	/* set left channel  TRUE/FALSE 	      */
	  unsigned int bc_leftchannel;	/* left channel #			      */

	  unsigned int bc_ritchflag;	/* set right channel TRUE/FALSE 	      */
	  unsigned int bc_ritchannel;	/* right channel #			      */

	  unsigned int bc_secondsflag;	/* TRUE/FALSE to do it over time	      */
	  unsigned int bc_secondcount;	/* # of seconds to spread out the command     */

	  unsigned int breserved2;	/* reserved for internal use		      */

	  unsigned int bc_errorcode;	/* holds the error number		      */
	  unsigned long bc_targetstr;	/* user's target string pointer               */

	} cmdblk;

/*
// blockID Commands
*/

#define BI_RESETCMD	0		/* Reset the hardware settings		      */
#define BI_SETCMD	1		/* SET parsed language block		      */
#define BI_GETCMD	2		/* GET parsed language block		      */
#define BI_HOLDCMD	3		/* Hold the queue			      */
#define BI_RELCMD	4		/* Release the queue			      */

/*
// execode Commands
*/

#define BI_CROSSCMD	0		/* command is for the cross channel	      */
#define BI_FILTERCMD	1		/* command is for the filter		      */
#define BI_MIXERCMD	2		/* command is for the mixer		      */
#define BI_REALCMD	3		/* command is for the real sound switch       */
#define BI_VOLUMECMD	4		/* command is for the volume		      */

#define BI_LASTEXECMD	VOLUMECMD	/* Last valid command			      */

/*
// different logic flags for a TO condition (c_xxxxflag)
*/

#define BI_DONTSET	0		/* don't process FROM value                   */
#define BI_SETFROM	-1		/* FROM setting is available		      */
#define BI_SETTO	-1		/* TO setting is available (mandatory)	      */
#define BI_UPTO 	-2		/* set up from current setting		      */
#define BI_DOWNTO	-3		/* set down from current setting	      */

/*
// types of numeric data in FROM and TO fields (c_xxxxtype)
*/

#define BI_TYPEINT	1		/* "getterm" return type                      */
#define BI_TYPEPCT	2		/* "getterm" return type                      */

/*
// deviceselect values (c_deviceselect)
//
//	 (none for the filter)
*/

/*	 for mixers							    */

#define BI_OUTPUTMIXER	0x00		/* output mixer H/W select		      */
#define BI_INPUTMIXER	0x40		/* input mixer select			      */
#define BI_DEFMIXER	0xff		/* use the default mixer		      */

/*	 for cross channel						    */

#define BI_RIGHT2RIGHT	0x01		/* right to right			      */
#define BI_LEFT2RIGHT	0x02		/* left  to right			      */
#define BI_RIGHT2LEFT	0x04		/* right to left			      */
#define BI_LEFT2LEFT	0x08		/* left  to left			      */

/*	 for volume control						    */

#define BI_VOLLOUD	0x00		/* LOUDNESS switch			      */
#define BI_VOLENHANCE	0x01		/* ENHANCED stereo			      */
#define BI_VOLBASS	0x02		/* BASS (0-12)				      */
#define BI_VOLTREBLE	0x03		/* TREBLE (0-12)			      */
#define BI_VOLLEFT	0x04		/* LEFT VOLUME	(0-40)			      */
#define BI_VOLRIGHT	0x05		/* RIGHT VOLUME (0-40)			      */
#define BI_VOLMODE	0x06		/* MODE  (LEFT/STEREO/RIGHT)		      */

#define BI_bVOLLOUD	0x01		/* enhanced bass bit			      */
#define BI_bVOLENH	0x02		/* enhanced stereo bit			      */

/*
// left/right mixer channel selection
*/

/*	 left channel values						    */

#define BI_L_FM 	0x01
#define BI_L_IMIXER	0x02
#define BI_L_EXT	0x03
#define BI_L_INT	0x04
#define BI_L_MIC	0x05
#define BI_L_PCM	0x06
#define BI_L_SPEAKER	0x07
#define BI_L_SBDAC	0x00

/*	 right channel values						    */

#define BI_R_FM 	0x08
#define BI_R_IMIXER	0x09
#define BI_R_EXT	0x0A
#define BI_R_INT	0x0B
#define BI_R_MIC	0x0C
#define BI_R_PCM	0x0D
#define BI_R_SPEAKER	0x0E
#define BI_R_SBDAC	0x0F

/*
// end of binary.h
*/

