Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

346 lines
10 KiB

/*[
* Product: SoftWindows Revision 2.0
*
* Name: haw.h
*
* Derived From: Original
*
* Authors: Rob Tizzard
*
* Created On: 16th April 1994
*
* Purpose: All base/host definitions for the SoftWindows
* host audio wave driver interface.
*
* (c)Copyright Insignia Solutions Ltd., 1994. All rights reserved.
*
]*/
#ifdef SCCSID
static char SccsID[]="@(#)haw.h 1.2 12/20/94";
#endif
/* Standard device sample formats */
#define HAW_INVALIDFORMAT 0x00000000 /* invalid format */
#define HAW_FORMAT_1M08 0x00000001 /* 11.025 kHz, Mono, 8-bit */
#define HAW_FORMAT_1S08 0x00000002 /* 11.025 kHz, Stereo, 8-bit */
#define HAW_FORMAT_1M16 0x00000004 /* 11.025 kHz, Mono, 16-bit */
#define HAW_FORMAT_1S16 0x00000008 /* 11.025 kHz, Stereo, 16-bit */
#define HAW_FORMAT_2M08 0x00000010 /* 22.05 kHz, Mono, 8-bit */
#define HAW_FORMAT_2S08 0x00000020 /* 22.05 kHz, Stereo, 8-bit */
#define HAW_FORMAT_2M16 0x00000040 /* 22.05 kHz, Mono, 16-bit */
#define HAW_FORMAT_2S16 0x00000080 /* 22.05 kHz, Stereo, 16-bit */
#define HAW_FORMAT_4M08 0x00000100 /* 44.1 kHz, Mono, 8-bit */
#define HAW_FORMAT_4S08 0x00000200 /* 44.1 kHz, Stereo, 8-bit */
#define HAW_FORMAT_4M16 0x00000400 /* 44.1 kHz, Mono, 16-bit */
#define HAW_FORMAT_4S16 0x00000800 /* 44.1 kHz, Stereo, 16-bit */
#define HAW_NAME_LEN 32 /* Device name length */
typedef struct {
IUM8 channels; /* Number of output channels */
IBOOL pitch_control; /* If TRUE device has pitch control */
IBOOL playbackrate_control; /* If TRUE device has playback rate control */
IBOOL volume_control; /* If TRUE device has volume control */
IBOOL lr_volume_control; /* If TRUE device has left & right volume control */
IBOOL synchronous; /* If TRUE device plays sounds synchronously */
IU32 formats; /* Standard output sample formats supported */
IU8 dev_name[HAW_NAME_LEN]; /* Name of waveform output device */
} HAWO_CAPS;
/*
* -----------------------------------------------------------------------------
* Host input capabilites.
* -----------------------------------------------------------------------------
*/
typedef struct {
IUM8 channels; /* Number of input channels */
IBOOL synchronous; /* If TRUE device records sounds synchronously */
IU32 formats; /* Standard output sample formats supported */
IU8 dev_name[HAW_NAME_LEN]; /* Name of waveform input device */
} HAWI_CAPS;
/*
* -----------------------------------------------------------------------------
* Host audio position structure.
* -----------------------------------------------------------------------------
*/
/* position_type field values */
#define HAW_POSN_MILLI_SEC (IUM8)1
#define HAW_POSN_SAMPLE (IUM8)2
#define HAW_POSN_BYTE_COUNT (IUM8)3
typedef struct {
IUM8 position_type;
union {
IU32 milli_sec; /* HAW_POSN_MILLI_SEC in milliseconds */
IU32 sample; /* HAW_POSN_SAMPLE in number of wave samples*/
IU32 byte_count; /* HAW_POSN_BYTE_COUNT in number of wave samples*/
} u;
} HAW_POSN;
/*
* -----------------------------------------------------------------------------
* Host audio formats.
* -----------------------------------------------------------------------------
*/
#define HAW_PCM_NOCOMPRESS (IUM8)0 /* Pulse Code Modulated, uncompressed. */
/* Adaptive Pulse Code Modulated (ADPCM) */
#define HAW_ADPCM_2 (IUM8)1 /* ADPCM, 2:1 compression */
#define HAW_ADPCM_3 (IUM8)2 /* ADPCM, 3:1 compression */
#define HAW_ADPCM_4 (IUM8)3 /* ADPCM, 4:1 compression */
/*
* -----------------------------------------------------------------------------
* Host audio function return codes.
* -----------------------------------------------------------------------------
*/
#define HAW_OK (IUM8)0 /* Sucessfully completed function. */
#define HAW_NOTSUPPORTED (IUM8)1 /* Feature not supported */
#define HAW_INVALID (IUM8)1 /* Feature not supported */
/*
* -----------------------------------------------------------------------------
* Default pitch & playback rates for hosts which don't have the support.
* -----------------------------------------------------------------------------
*/
#define HAW_DEF_PITCH (HAW_FIXPNT) 0x00010000 /* 1.0 */
#define HAW_DEF_PLAYBACK (HAW_FIXPNT) 0x00010000 /* 1.0 */
/*
* -----------------------------------------------------------------------------
* Host channel values.
* -----------------------------------------------------------------------------
*/
#define HAW_MONO (IUM8) 1
#define HAW_STEREO (IUM8) 2
/*
* -----------------------------------------------------------------------------
* Host audio loop control constants.
* -----------------------------------------------------------------------------
*/
#define HAW_LOOP_START (IUM8)1
#define HAW_LOOP_END (IUM8)2
/*
* -----------------------------------------------------------------------------
* Host sample sizes.
* -----------------------------------------------------------------------------
*/
#define HAW_SAMPLE_8 (IUM8)8
#define HAW_SAMPLE_16 (IUM8)16
/*
* -----------------------------------------------------------------------------
* Host Miscilanous Structures
* -----------------------------------------------------------------------------
*/
typedef IU32 HAW_FIXPNT; /* Fixed point */
typedef struct {
LIN_ADDR callbackData; /* Call back data */
} HAW_CALLBACK;
/*
* -----------------------------------------------------------------------------
* Host audio wave function prototypes.
* -----------------------------------------------------------------------------
*/
extern IUM8 hawo_num_devices IPT0();
extern void hawo_query_capabilities IPT2
(
IUM8, device, /* Output device */
HAWO_CAPS, *pcaps /* Pointer to output capabilities structure. */
);
extern IUM8 hawo_query_format IPT5
(
IUM8, device, /* Output device */
IUM8, channels, /* channels required */
IUM8, data_type, /* Data type, HAW_PCM_NOCOMPRESS, etc. */
IU32, sample_rate, /* Samples per second. */
IUM8, sample_size /* 8 or 16-bit data samples. */
);
extern IUM8 hawo_open IPT5
(
IUM8, device, /* Output device */
IUM8, channels, /* channels required */
IUM8, data_type, /* Data type, HAW_PCM_NOCOMPRESS, etc. */
IU32, sample_rate, /* Samples per second. */
IUM8, sample_size /* 8 or 16-bit data samples. */
);
extern HAW_FIXPNT hawo_get_pitch IPT1
(
IUM8, device /* Output device */
);
extern HAW_FIXPNT hawo_get_playback_rate IPT1
(
IUM8, device /* Output device */
);
extern IU32 hawo_get_def_volume IPT1
(
IUM8, device /* Output device */
);
extern IUM8 hawo_set_pitch IPT2
(
IUM8, device, /* Output device */
HAW_FIXPNT, pitch /* New pitch value */
);
extern IUM8 hawo_set_playback_rate IPT2
(
IUM8, device, /* Output device */
HAW_FIXPNT, playback_rate /* New playback value */
);
extern IUM8 hawo_set_volume IPT2
(
IUM8, device, /* Output device */
IU32, volume /* New volume value */
);
extern void hawo_write IPT6
(
IUM8, device, /* Output device */
LIN_ADDR, data_addr, /* Intel memory Pointer to wave data */
IU32, data_size, /* Number of bytes of output data */
IUM8, flags, /* Flags controlling loop playback */
IU32, loops, /* Number of times to play loop */
HAW_CALLBACK *, hawo_callback /* Callback function */
);
extern void hawo_get_position IPT2
(
IUM8, device, /* Output device */
HAW_POSN *, pinfo /* Pointer to audio position(time) structure */
);
extern void hawo_pause IPT1
(
IUM8, device /* Output device */
);
extern void hawo_restart IPT1
(
IUM8, device /* Output device */
);
extern void hawo_reset IPT1
(
IUM8, device /* Output device */
);
extern void hawo_close IPT1
(
IUM8, device /* Output device */
);
extern IBOOL hawo_is_active IPT1
(
IUM8, device /* Output device */
);
extern IUM8 hawo_break_loop IPT2
(
IUM8, device, /* Output device */
IBOOL, at_end /* If TRUE action at end of loop, otherwise action immediately */
);
extern IUM8 hawi_num_devices IPT0();
extern void hawi_query_capabilities IPT1
(
HAWI_CAPS, *pcaps /* Pointer to input capabilities structure. */
);
extern IUM8 hawi_query_format IPT4
(
IUM8, channels, /* channels required */
IUM8, data_type, /* Data type, HAW_PCM_NOCOMPRESS, etc. */
IU32, sample_rate, /* Samples per second. */
IUM8, sample_size /* 8 or 16-bit data samples. */
);
extern IUM8 hawi_open IPT5
(
IUM8, channels, /* channels required */
IUM8, data_type, /* Data type, HAW_PCM_NOCOMPRESS, etc. */
IU32, sample_rate, /* Samples per second. */
IUM8, sample_size, /* 8 or 16-bit data samples. */
LIN_ADDR, buff_addr
);
extern void hawi_get_position IPT1
(
HAW_POSN *, pinfo /* Pointer to audio position(time) structure */
);
extern void hawi_add_buffer IPT3
(
IU32, data_addr, /* Intel memory Pointer to wave data */
IU32, data_size, /* Number of bytes in input data buffer */
HAW_CALLBACK *, hawi_callback /* Callback function */
);
extern void hawi_start IPT0();
extern void hawi_restart IPT0();
extern IBOOL hawi_is_active IPT0();
extern void hawi_close IPT0();
extern IBOOL hawo_hardware_acquire IPT1
(
IUM8, device /* Output device */
);
extern IBOOL hawi_hardware_acquire IPT0();
extern void hawo_hardware_realease IPT1
(
IUM8, device /* Output device */
);
extern void hawi_hardware_realease IPT0();
extern IBOOL hawo_enable IPT0();
extern IBOOL hawi_enable IPT0();
extern IBOOL hawo_disable IPT0();
extern IBOOL hawi_disable IPT0();
extern IBOOL hawo_WEP IPT0();
extern IBOOL hawi_WEP IPT0();
extern void hawo_dec_int_cnt IPT1
(
IUM8, device /* Output device */
);