winamp/Src/libvp6/corelibs/include/toolvox.h

1189 lines
49 KiB
C
Raw Normal View History

2024-09-24 12:54:57 +00:00
/*****************************************************************************
Module ToolVox.H
The defines and prototypes for the Voxware voice compression
system.
Version 1.1.8.192
For MacOS, Windows 3.1, Windows95, and Solaris
Voxware Inc.
305 College Road East
Princeton, New Jersey 08540
http://www.voxware.com
Voxware Proprietary Material
Copyright 1996, Voxware, Inc.
All Rights Resrved
DISTRIBUTION PROHIBITED without written authorization from Voxware
*****************************************************************************/
/*
!!! All reserved, padding, and optional fields should be set to zero if
!!! you are not using them. Please memset() all structures before using
!!! them.
*/
/*
You must "#define VOXWARE_xxx" for the environment you
are generating code for.
Valid types are:
VOXWARE_WIN16 <-- Windows 3.x
VOXWARE_WIN32 <-- Windows 95 or Windows NT
VOXWARE_DOS <-- MS-DOS
VOXWARE_MAC <-- MacOS
VOXWARE_SUN <-- SunOS/Solaris
VOXWARE_HP <-- HPUX (Version 9.xx)
VOXWARE_AIX <-- IBM's AIX
*/
#ifndef __TOOLVOX_H_
#define __TOOLVOX_H_
#ifdef __cplusplus
extern "C" {
#endif
#ifndef VOXWARE_SUN
#ifdef VOXWARE_MAC
#include <ConditionalMacros.h>
#endif
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=mac68k
#elif VOXWARE_HP
#pragma HP_ALIGN HPUX_WORD
#else
#pragma pack(2)
#endif
#endif
// DAVE: THIS SHOULD PROBABLY BE IN THIS FILE INSTEAD OF ITS OWN HDR. -GEO
#include "voxchunk.h"
/* Value returned from a ToolVox function call. See ToolVox manual for a */
/* list of specific return codes for each function. */
typedef unsigned short VOXWARE_RETCODE;
/* We support VOXWARE_WIN for backwards compatibility. Use VOXWARE_WIN16. */
#if defined (VOXWARE_WIN)
#define VOXWARE_WIN16
#endif
#if defined (VOXWARE_WIN16)
#define VOX_FAR __far
#define VOX_EXPORT __export
#define VOX_PASCAL __pascal
#define VOXAPI VOX_FAR VOX_PASCAL
#ifdef __cplusplus
#define VOXAPI_CALLBACK VOX_FAR __pascal
#else
#define VOXAPI_CALLBACK VOX_FAR __pascal __loadds
#endif
#elif defined(VOXWARE_WIN32)
#define VOX_FAR
#define VOX_EXPORT
#define VOX_PASCAL __stdcall
#define VOXAPI VOX_PASCAL
#define VOXAPI_CALLBACK __stdcall
#elif defined(VOXWARE_MAC)
#define VOX_FAR
#define VOX_EXPORT
#define VOX_PASCAL pascal
#define VOXAPI VOX_PASCAL
#define VOXAPI_CALLBACK VOX_PASCAL
#elif defined(VOXWARE_SUN)
#if defined(VOXWARE_SGI) || defined(VOXWARE_DEC)
#define VOX_FAR
#define VOX_EXPORT
#define VOX_PASCAL
#define VOXAPI
#define VOXAPI_CALLBACK short
#else
#define VOX_FAR
#define VOX_EXPORT
#define VOX_PASCAL
#define VOXAPI
#define VOXAPI_CALLBACK
#endif
#elif defined(VOXWARE_DOS)
#define VOX_FAR __far
#define VOX_EXPORT
#define VOX_PASCAL pascal
#define VOXAPI VOX_PASCAL
#define VOXAPI_CALLBACK VOX_PASCAL
#else
#pragma message ("TOOLVOX.H: Platform indicator #define not setup.")
#pragma message ("TOOLVOX.H: One of the following must be initialized:")
#pragma message ("TOOLVOX.H: #define VOXWARE_WIN16")
#pragma message ("TOOLVOX.H: #define VOXWARE_WIN32")
#pragma message ("TOOLVOX.H: #define VOXWARE_MAC")
#pragma message ("TOOLVOX.H: #define VOXWARE_SUN")
#pragma message ("TOOLVOX.H: #define VOXWARE_DOS")
#pragma message ("TOOLVOX.H: Check the Voxware manual for more information.")
#endif
/*****************************************************************************
** **
** The data structures that will be passed to the ToolVox functions. **
** **
*****************************************************************************/
typedef struct tagVOX_ENVIRONMENT
{
unsigned short wSizeofVoxEnvironment; /* --> Fill this in for us */
unsigned short wCompatibility; /* <-- versioning */
unsigned long dwAPIVersionNumber; /* <-- Version of API */
unsigned long dwAPIMaintanceNumber; /* <-- Maint Rel of API */
unsigned short wNumCodecs; /* <-- Number of CODECS avail. */
unsigned short wNumVoiceFonts; /* <-- Number of VoiceFonts */
char szAPIName[32]; /* <-- ToolVox For MacOS 1.1.5 */
} VOX_ENVIRONMENT;
typedef VOX_ENVIRONMENT VOX_FAR * LPVOX_ENVIRONMENT;
typedef struct tagVOXWARE_DATA
{
unsigned short wSizeOfVoxwareData; /* The size of this structure */
unsigned short wUserData; /* Application dependent data */
/* ...(16 bit). */
unsigned long dwUserData; /* Application dependent data */
/* (32 bit). */
/* Buffer information required for (de)compressing between buffers <-> */
/* disk. */
unsigned long dwInputType; /* What is stored in the */
/* ...'lpInputLocation' field. */
void VOX_FAR *lpInputLocation; /* Pointer to a filename or */
/* ...buffer. */
unsigned long dwInputSize; /* Inform Voxware about the */
/* ...buffer size. */
unsigned long dwInputPosition; /* Input data offset info. */
unsigned long dwInputSamplingRate; /* Number of samples per second.*/
unsigned short wInputBytesPerSample; /* Number of bytes per sample. */
unsigned long dwOutputType; /* What is stored in the */
/* ...'lpOutputLocation' field. */
void VOX_FAR *lpOutputLocation; /* Pointer to filename, buffer, */
/* ...or empty for playback. */
unsigned long dwOutputSize; /* Inform Voxware about the */
/* ...buffer size. */
unsigned long dwOutputPosition; /* Output data offset info. */
unsigned long dwOutputSamplingRate; /* Number of samples per second.*/
unsigned short wOutputBytesPerSample;/* Number of bytes per sample. */
/* The decompression routines will use the following for voice effects: */
unsigned short bUseAbsolutePitchFlag;/* TRUE if fPitchChange is to */
/* ...be used; FALSE is for */
/* ...fPitchShift usage. */
float fRelativePitch; /* Relative PitchShift factor. */
float fAbsolutePitch; /* Absolute PitchShift value. */
float fWarpedLengthFactor; /* Warping factor */
/* ...0.2<factor<5.0 (a value */
/* ...of 1.0 = normal time) */
void VOX_FAR *lpVoiceFont; /* VoiceFont used for playback. */
unsigned long dwVoiceFontEnum; /* Data used for enumeration of */
/* ...VoiceFonts. */
/* This is a more detailed value that can help track down errors. */
signed long dwSecondaryReturnCode;
unsigned long dwDataLeft; /* Amount of data to process. */
/* A callback function that the effects routines will call. */
void VOX_FAR *lpCallbackFunc;
void VOX_FAR *lpvControlBlock; /* Private control block used */
/* ...by Voxware. */
/* New fields for ToolVox version 1.1.0. */
unsigned long dwCompressionSettings;/* Choose the compression codec.*/
unsigned long dwStatus; /* Status of ToolVox engine. */
unsigned short wVoiceFontType; /* Unused. Set to zero. */
unsigned short bUseAbsoluteGainFlag; /* true if fGainControl is used */
float fRelativeGain; /* decompression only */
/* Multimedia Codecs Only */
/* 1.0 is normal */
/* greater than 1 is louder */
/* less than 1 is softer */
float fAbsoluteGain; /* decompression only */
signed short wCurrentEnergyLevel; /* 0..255; > 200 = clipping */
unsigned short padding3; /* Unused. Set to zero. */
void VOX_FAR *lpReservedFunction; /* reserved 1 */
void VOX_FAR *lpReservedVars; /* reserved 2 */
void VOX_FAR *lpMarkerRecord; /* reserved */
//###GTT - Added support for communication of info chunks - 5/30/96
VOX_CHUNK_INFO VOX_FAR *lpInfoChunks;
short wNumInfoChunks;
short bV1Compatible;
unsigned short wVoiceFontID; /* Used to activate a VoiceFont */
void VOX_FAR * lpPlaybackWindow;
unsigned short wNumBitsPerFrame;
} VOXWARE_DATA;
typedef VOXWARE_DATA VOX_FAR * LPVOXWARE_DATA;
typedef struct tagVOX_VERSION
{
/* The version and internal name for the ToolVox Compression DLL. */
unsigned char szCompressVersion[64];
unsigned char szCompressInternal[32];
/* The version and maintenance for the ToolVox Compression DLL. */
/* For example: 1.30.46.01 */
unsigned long dwCompressVersion; /* e.g. 0x00010030 = "01.30" */
unsigned long dwCompressMaint; /* e.g. 0x00460001 = "46.01" */
/* The version and internal name for the ToolVox Decompression DLL. */
unsigned char szDecompressVersion[64];
unsigned char szDecompressInternal[32];
/* The version and maintenance for the ToolVox Decompression DLL. */
/* For example: 1.30.46.01 */
unsigned long dwDecompressVersion; /* e.g. 0x00010030 = "01.30" */
unsigned long dwDecompressMaint; /* e.g. 0x00460001 = "46.01" */
/* The version and internal name for the ToolVox VoiceFont DLL. */
unsigned char szVoiceFontVersion[64];
unsigned char szVoiceFontInternal[32];
/* The version and maintenance for the ToolVox VoiceFont DLL. */
/* For example: 1.30.46.01 */
unsigned long dwVoiceFontVersion; /* e.g. 0x00010030 = "01.30" */
unsigned long dwVoiceFontMaint; /* e.g. 0x00460001 = "46.01" */
/* The version and internal name for the ToolVox Utility DLL. */
unsigned char szUtilityVersion[64];
unsigned char szUtilityInternal[32];
/* The version and maintenance for the ToolVox Utility DLL. */
/* For example: 1.30.46.01 */
unsigned long dwUtilityVersion; /* e.g. 0x00010030 = "01.30" */
unsigned long dwUtilityMaint; /* e.g. 0x00460001 = "46.01" */
/* The version and internal name for the ToolVox RT24 Compression DLL. */
unsigned char szRT24CompressVersion[64];
unsigned char szRT24CompressInternal[32];
/* The version and maintenance for the ToolVox RT24 Compression DLL. */
/* For example: 1.30.46.01 */
unsigned long dwRT24CompressVersion; /* e.g. 0x00010030 = "01.30" */
unsigned long dwRT24CompressMaint; /* e.g. 0x00460001 = "46.01" */
/* The version and internal name for the ToolVox RT24 Decompression DLL.*/
unsigned char szRT24DecompressVersion[64];
unsigned char szRT24DecompressInternal[32];
/* The version and maintenance for the ToolVox RT24 Decompression DLL. */
/* For example: 1.30.46.01 */
unsigned long dwRT24DecompressVersion; /* e.g. 0x00010030 = "01.30" */
unsigned long dwRT24DecompressMaint; /* e.g. 0x00460001 = "46.01" */
} VOX_VERSION;
typedef VOX_VERSION VOX_FAR * LPVOX_VERSION;
typedef struct tagVOX_FILE_INFO
{
/* Some standard WAV, AIFF, and VOX file data. */
unsigned short wFormatTag; /* WAVE_FORMAT_VOXWARE for com- */
/* ...pressed or WAVE_FORMAT_PCM */
/* ...for standard files. */
unsigned short nChannels; /* Set to the value */
/* ...VOXWARE_WAVE_FILE_MONO or */
/* ...VOXWARE_WAVE_FILE_STEREO. */
unsigned long nAvgBitsPerSec; /* The bit rate of this file. */
unsigned long dwSamplingRate;
unsigned short wBytesPerSample;
unsigned long dwNumSamplesInFile; /* The total number of samples in */
/* ...the file. */
float fMeanPitch; /* Weighted average pitch of the */
/* ...Vox file. */
float fMinPitch; /* Lowest pitch value of the file. */
float fMaxPitch; /* Highest pitch value of the file. */
//###lee - split this out into a new structure:
unsigned long dwCompressedSize; /* One is estimated, and the other */
unsigned long dwDecompressedSize; /* ...is the current size. */
unsigned short bVariableRate; /* TRUE if codec is variable rate. */
} VOX_FILE_INFO;
typedef VOX_FILE_INFO VOX_FAR * LPVOX_FILE_INFO;
typedef struct tagVFONT_IDENTIFIER
{
/* Used for vfontEnumerate calls. */
char szFontName[32];
char szFontFile[128];
} VFONT_IDENTIFIER;
typedef VFONT_IDENTIFIER VOX_FAR * LPVFONT_IDENTIFIER;
typedef struct tagCODEC_DESCRIPTION
{
unsigned long dwCodecID;
char szCodecInternalName[44];
char szCodecListBoxName[44];
char szCodecDescription[256];
} CODEC_DESCRIPTION;
typedef CODEC_DESCRIPTION VOX_FAR * LPCODEC_DESCRIPTION;
typedef struct tagVOICE_FONT_DESCRIPTION
{
unsigned short wFontID;
char szFontFamily[44];
char szFontName[44];
char szFontDescription[256];
unsigned short bHasDecodeEffect;
unsigned short wSizeofDecodeChunk;
} VOICE_FONT_DESCRIPTION;
typedef VOICE_FONT_DESCRIPTION VOX_FAR * LPVOICE_FONT_DESCRIPTION;
typedef struct tagVOX_FUNCTION_VARS
{
unsigned short wSizeOfFunctionVars; /* The size of this structure */
void VOX_FAR *lpBuffer; /* Pointer to a the data buffer.*/
unsigned long dwBufferSize; /* The size of the buffer. */
unsigned long dwUserData; /* Application dependent data */
/* (32 bit). */
LPVOXWARE_DATA lpVoxwareData; /* The original VoxawareData */
/* used to start processing. */
} VOX_FUNCTION_VARS;
typedef VOX_FUNCTION_VARS VOX_FAR * LPVOX_FUNCTION_VARS;
/*
For use with BitStreams
*/
typedef struct tagVOX_STREAM_HEADER
{
unsigned long dwHeaderID;
unsigned short wSizeOfVoxStreamHeader;
unsigned char voxStreamHeaderData[1]; // variable length
} VOX_STREAM_HEADER;
typedef VOX_STREAM_HEADER VOX_FAR * LPVOX_STREAM_HEADER;
typedef struct tagFIRST_BITSTREAM_BUFFER
{
unsigned short wSizeOfFirstBitStreamStruct;
unsigned short wNumBitsPerFrame;
unsigned short wNumSamplesPerFrame;
unsigned short wPadding;
VOX_STREAM_HEADER voxStreamHeader; /* Send this to the decoder */
} FIRST_BITSTREAM_BUFFER;
typedef FIRST_BITSTREAM_BUFFER VOX_FAR * LPFIRST_BITSTREAM_BUFFER;
/*
VOX_CALLBACK is a typedef for the user function that is called by the
ToolVox compression and decompression routines.
Special Note for Macintosh Developers:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Do >> NOT << give us a Universal Procedure Pointer.
We make our own so you don't have to... (your welcome)
Sooo just give us the functions name:
yourVoxData->lpCallbackFunc = myCallbackProc;
*/
#ifdef VOXWARE_MAC
typedef VOXAPI_CALLBACK VOXWARE_RETCODE (* VOX_CALLBACK)
(unsigned short wVox, unsigned short wMessage,
LPVOXWARE_DATA lpVoxData);
#else
#if defined(VOXWARE_SGI) || defined(VOXWARE_DEC)
typedef VOXWARE_RETCODE ( * VOX_CALLBACK) (unsigned short , unsigned short , LPVOXWARE_DATA );
#else
typedef VOXWARE_RETCODE (VOXAPI_CALLBACK * VOX_CALLBACK)
(unsigned short wVox, unsigned short wMessage,
LPVOXWARE_DATA lpVoxData);
#endif
#endif
typedef struct tagVOX_COMMAND
{
unsigned long dwAttribute; /* Attribute to act on? */
float fFloatParam; /* Use this for float attributes. */
unsigned long dwLongParam; /* Use this for long attributes. */
} VOX_COMMAND;
typedef VOX_COMMAND VOX_FAR * LPVOX_COMMAND;
#define ATTRIBUTE_WARPED_LENGTH_FACTOR 1L // get and set
#define ATTRIBUTE_RELATIVE_PITCH 2L // get and set
#define ATTRIBUTE_ABSOLUTE_PITCH 3L // get and set
#define ATTRIBUTE_PLAY_TIME 5L // not yet supported
#define ATTRIBUTE_VOICE_FONT 6L // set only
#define ATTRIBUTE_GAIN_CONTROL 7L // get and set
#define ATTRIBUTE_BITS_PER_SECOND 8L // not yet supported
#define ATTRIBUTE_FIXED_RATE_CODEC 9L // not yet supported
#define ATTRIBUTE_DUMP_BUFFERS 0x80000 + 1L // RESERVED: bit bit offset is param
#define ATTRIBUTE_SILENT_WINDOW 0x80000 + 2L // RESERVED: get set dwLongParam = WORD ms
#define ATTRIBUTE_INDICATE_LOST_FRAME 0x80000 + 3L // RESERVED: set dwLongParam = BOOL
#define ATTRIBUTE_VOICE_LEVEL 0x80000 + 4L // RESERVED: get set dwLongParam = WORD Value
#define ATTRIBUTE_VOICE_STATE 0x80000 + 5L // RESERVED: get dwLongParam = int Value
//#define ATTRIBUTE_VOICE_FONT_II 0x80000 + 6L // RESERVED: set dwLongParam = short EffectSelection - fFloatParam = short SliderValue
//#define ATTRIBUTE_VOICE_EFFECT 0x80000 + 7L // RESERVED: set dwLongParam = short EffectSelection - fFloatParam = short SliderValue
#define ATTRIBUTE_BIT_OFFSET 0x80000 + 8L // RESERVED: set
#define ATTRIBUTE_GAIN_CONTROL_ADJUST 0x80000 + 6L // RESERVED: get dwLongParam = signed short Value
#define ATTRIBUTE_AGC_REFERENCE_LEVEL 0x80000 + 7L // RESERVED: set dwLongParam = unsigned short Value
/*****************************************************************************
**
** lpVoxwareData->dwCompressionSettings = VOXWARE_CODEC_xxx
**
** Not filling in the dwCompressionSettings field, or setting it to default
** tells ToolVox to compress what you gave it using the best codec for the
** job. If you give us a 11k-16k file, we will chose the MM_11k codec, if
** you give us a 22k or better file, we will choose the MM_22k codec, etc...
**
** If you assign one of the values below to the dwCompressionSettings field,
** then we will send your file through the codec you asked us to.
**
** Refer to page ###Maija: of the manual for more.
**
*****************************************************************************/
#define VOXWARE_CODEC_RT_8K 0x01000001
#define VOXWARE_CODEC_RT_8K_HQ29 0x01000010
#define VOXWARE_CODEC_RT_8K_HQ24 0x01000004 // Do not use - unavailable for this release.
#define VOXWARE_CODEC_RT_8K_VR12 0x01000008 // Do not use - unavailable for this release.
#define VOXWARE_CODEC_RT_8K_VR15 0x01000009 // Do not use - unavailable for this release.
#define VOXWARE_CODEC_RT_8K_UQ 0x0100000C // Do not use - unavailable for this release.
#define VOXWARE_CODEC_MM_11K 0x02000002 // Do not use - unavailable for this release.
#define VOXWARE_CODEC_MM_22K 0x04000002 // Do not use - unavailable for this release.
#define VOXWARE_CODEC_DEFAULT 0x00000000
#define VOXWARE_CODEC_RT24 VOXWARE_CODEC_RT_8K // obs spelling
/*Add for AUDIO codec*/
#define VOXWARE_CODEC_AC_8K 0X08000001
#define VOXWARE_CODEC_AC_11K 0X08000002
#define VOXWARE_CODEC_AC_16K 0X08000003
#define VOXWARE_CODEC_AC_22K 0X08000004
/* These are provided for backwards compatibility The #define's above should be used. */
#define VOXWARE_AUDIO_CODEC_08 VOXWARE_CODEC_AC_8K
#define VOXWARE_AUDIO_CODEC_11 VOXWARE_CODEC_AC_11K
#define VOXWARE_AUDIO_CODEC_16 VOXWARE_CODEC_AC_16K
#define VOXWARE_AUDIO_CODEC_22 VOXWARE_CODEC_AC_22K
/*****************************************************************************
**
** These are used to define the input and output types. They should be ORed
** together to create the type that is needed. For example compressing
** a Windows Wave file would use VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_FILE.
** To specify the compressed output Wave file, use: VOXTYPE_FORMAT_WAVE|
** VOXTYPE_LOCATION_FILE|VOXTYPE_QUALIFIER_VOX.
**
*****************************************************************************/
//#define VOXTYPE_FORMAT_IRRELEVENT (unsigned long)(0x00000000L)
#define VOXTYPE_FORMAT_WAVE (unsigned long)(0x00010000L)
#define VOXTYPE_FORMAT_RAW (unsigned long)(0x00020000L)
#define VOXTYPE_FORMAT_AIFF (unsigned long)(0x00030000L)
#define VOXTYPE_FORMAT_VFONT (unsigned long)(0x00040000L)
#define VOXTYPE_FORMAT_PITCH (unsigned long)(0x00050000L)
#define VOXTYPE_LOCATION_FILE (unsigned long)(0x00000100L)
#define VOXTYPE_LOCATION_BUFFER (unsigned long)(0x00000200L)
#define VOXTYPE_LOCATION_FSSPEC (unsigned long)(0x00000300L)
#define VOXTYPE_LOCATION_SOUND (unsigned long)(0x00000400L)
#define VOXTYPE_LOCATION_FUNCTION (unsigned long)(0x00000800L)
#define VOXTYPE_LOCATION_STRING (unsigned long)(0x00001000L)
#define VOXTYPE_LOCATION_BITSTREAM (unsigned long)(0x00001100L)
#define VOXTYPE_LOCATION_VOICE_FONT_ID (unsigned long)(0x00001200L)
#define VOXTYPE_QUALIFIER_PCM (unsigned long)(0x00000000L)
#define VOXTYPE_QUALIFIER_VOX (unsigned long)(0x00000001L)
#define VOXTYPE_QUALIFIER_PITCH (unsigned long)(0x00000002L)
//#define VOXTYPE_QUALIFIER_ASYNC (unsigned long)(0x00000004L)
#define VOXTYPE_CONST_FILE_INFO (unsigned long)(0x10000000L)
#define VOXTYPE_CONST_VERSION (unsigned long)(0x20000000L)
#define VOXTYPE_CONST_BENCHMARK (unsigned long)(0x40000000L)
#define VOXTYPE_FORMAT_MASK (unsigned long)(0x000F0000L)
#define VOXTYPE_LOCATION_MASK (unsigned long)(0x0000FF00L)
#define VOXTYPE_VFONT_FILENAME (unsigned long)(VOXTYPE_FORMAT_VFONT|VOXTYPE_LOCATION_FILE)
#define VOXTYPE_VFONT_DESCRIPTION (unsigned long)(VOXTYPE_FORMAT_VFONT|VOXTYPE_LOCATION_STRING)
#define VOXTYPE_VFONT_IDENTIFIER (unsigned long)(VOXTYPE_FORMAT_VFONT|VOXTYPE_LOCATION_BUFFER)
/*
The following constants can be used in the dwOutputType and dwInputType
fields of the VoxwareData structure instead of ORing the flags above...
*/
#define TYPE_WAVE_PCM_FILE (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_FILE|VOXTYPE_QUALIFIER_PCM)
#define TYPE_AIFF_PCM_FILE (unsigned long)(VOXTYPE_FORMAT_AIFF|VOXTYPE_LOCATION_FILE|VOXTYPE_QUALIFIER_PCM)
#define TYPE_RAW_PCM_FILE (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_FILE|VOXTYPE_QUALIFIER_PCM)
#define TYPE_WAVE_PCM_FSSPEC (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_FSSPEC|VOXTYPE_QUALIFIER_PCM)
#define TYPE_AIFF_PCM_FSSPEC (unsigned long)(VOXTYPE_FORMAT_AIFF|VOXTYPE_LOCATION_FSSPEC|VOXTYPE_QUALIFIER_PCM)
#define TYPE_RAW_PCM_FSSPEC (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_FSSPEC|VOXTYPE_QUALIFIER_PCM)
#define TYPE_WAVE_PCM_BUFFER (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_BUFFER|VOXTYPE_QUALIFIER_PCM)
#define TYPE_AIFF_PCM_BUFFER (unsigned long)(VOXTYPE_FORMAT_AIFF|VOXTYPE_LOCATION_BUFFER|VOXTYPE_QUALIFIER_PCM)
#define TYPE_RAW_PCM_BUFFER (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_BUFFER|VOXTYPE_QUALIFIER_PCM)
#define TYPE_WAVE_PCM_FUNCTION (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_FUNCTION|VOXTYPE_QUALIFIER_PCM)
#define TYPE_AIFF_PCM_FUNCTION (unsigned long)(VOXTYPE_FORMAT_AIFF|VOXTYPE_LOCATION_FUNCTION|VOXTYPE_QUALIFIER_PCM)
#define TYPE_RAW_PCM_FUNCTION (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_FUNCTION|VOXTYPE_QUALIFIER_PCM)
#define TYPE_WAVE_VOX_FILE (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_FILE|VOXTYPE_QUALIFIER_VOX)
//#define TYPE_AIFF_VOX_FILE (unsigned long)(VOXTYPE_FORMAT_AIFF|VOXTYPE_LOCATION_FILE|VOXTYPE_QUALIFIER_VOX)
#define TYPE_RAW_VOX_FILE (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_FILE|VOXTYPE_QUALIFIER_VOX)
#define TYPE_WAVE_VOX_FSSPEC (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_FSSPEC|VOXTYPE_QUALIFIER_VOX)
//#define TYPE_AIFF_VOX_FSSPEC (unsigned long)(VOXTYPE_FORMAT_AIFF|VOXTYPE_LOCATION_FSSPEC|VOXTYPE_QUALIFIER_VOX)
#define TYPE_RAW_VOX_FSSPEC (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_FSSPEC|VOXTYPE_QUALIFIER_VOX)
#define TYPE_WAVE_VOX_BUFFER (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_BUFFER|VOXTYPE_QUALIFIER_VOX)
#define TYPE_AIFF_VOX_BUFFER (unsigned long)(VOXTYPE_FORMAT_AIFF|VOXTYPE_LOCATION_BUFFER|VOXTYPE_QUALIFIER_VOX)
#define TYPE_RAW_VOX_BUFFER (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_BUFFER|VOXTYPE_QUALIFIER_VOX)
#define TYPE_WAVE_VOX_FUNCTION (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_FUNCTION|VOXTYPE_QUALIFIER_VOX)
#define TYPE_AIFF_VOX_FUNCTION (unsigned long)(VOXTYPE_FORMAT_AIFF|VOXTYPE_LOCATION_FUNCTION|VOXTYPE_QUALIFIER_VOX)
#define TYPE_RAW_VOX_FUNCTION (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_FUNCTION|VOXTYPE_QUALIFIER_VOX)
#define TYPE_PLAY_WINMM (unsigned long)(VOXTYPE_LOCATION_SOUND|VOXTYPE_QUALIFIER_PCM)
#define TYPE_PLAY_MAC (unsigned long)(VOXTYPE_LOCATION_SOUND|VOXTYPE_QUALIFIER_PCM)
#define VOXTYPE_RECORD_PCM (unsigned long)(VOXTYPE_LOCATION_SOUND|VOXTYPE_QUALIFIER_PCM) // ###dave 03/25/96: added this
#define TYPE_RAW_VOX_BITSTREAM (unsigned long)(VOXTYPE_FORMAT_RAW|VOXTYPE_LOCATION_BITSTREAM|VOXTYPE_QUALIFIER_VOX)
#define VOX_VOICE_FONT_PREVIEW_ID (unsigned long)(VOXTYPE_FORMAT_WAVE|VOXTYPE_LOCATION_VOICE_FONT_ID|VOXTYPE_QUALIFIER_VOX)
/*****************************************************************************
**
** Some defines that can be used with the ToolVox routines.
**
*****************************************************************************/
/* This is the maximum filename size that can be used with the ToolVox */
/* routines. Does not include the space for the NULL. */
#define MAX_FILENAMESIZE 255 /* char szFile[MAX_FILENAMESIZE+1]; */
#define WAVE_FORMAT_VOXWARE 0x0062
// ###dave -lee we need to define _WAVE & _AIFF, and friends... (raw)
#define VOXWARE_WAVE_FILE_MONO 1
#define VOXWARE_WAVE_FILE_STEREO 2
#define VOXWARE_SAMPLING_RATE_8K 8000L
#define VOXWARE_SAMPLING_RATE_11K 11025L
#define VOXWARE_SAMPLING_RATE_11127K 0x2B7745D1L /*11127.27273 khz */
#define VOXWARE_SAMPLING_RATE_16K 16000L
#define VOXWARE_SAMPLING_RATE_22K 22050L
#define VOXWARE_SAMPLING_RATE_22254K 0x56EE8BA3L /*22254.54545 khz */
#define VOXWARE_SAMPLING_RATE_32K 32000L
#define VOXWARE_SAMPLING_RATE_44K 44100L
#define VOXWARE_SAMPLING_INDEX_8K 0
#define VOXWARE_SAMPLING_INDEX_11k 1
#define VOXWARE_SAMPLING_INDEX_16K 2
#define VOXWARE_SAMPLING_INDEX_22K 3
#define VOXWARE_SAMPLING_INDEX_32K 4
#define VOXWARE_SAMPLING_INDEX_44K 5
#define VOXWARE_SAMPLING_INDEX_11127K 6
#define VOXWARE_SAMPLING_INDEX_22254K 7
#define VOXWARE_SAMPLING_INDEX_END (VOXWARE_SAMPLING_INDEX_22254K+1)
#define VOXWARE_NUM_SAMPLING_RATES (VOXWARE_SAMPLING_INDEX_22254K+1)
#define VOXWARE_SAMPLING_RATE_ARRAY {VOXWARE_SAMPLING_RATE_8K, \
VOXWARE_SAMPLING_RATE_11K, \
VOXWARE_SAMPLING_RATE_16K, \
VOXWARE_SAMPLING_RATE_22K, \
VOXWARE_SAMPLING_RATE_32K, \
VOXWARE_SAMPLING_RATE_44K, \
VOXWARE_SAMPLING_RATE_11127K,\
VOXWARE_SAMPLING_RATE_22254K,\
0L}
#define VOXWARE_SAMPLE_SIZE_8BIT 1
#define VOXWARE_SAMPLE_SIZE_16BIT 2
#define VOXWARE_SAMPLE_INDEX_8BIT 0
#define VOXWARE_SAMPLE_INDEX_16BIT 1
#define VOXWARE_SAMPLE_INDEX_END (VOXWARE_SAMPLE_INDEX_16BIT+1)
#define VOXWARE_NUM_SAMPLE_SIZES (VOXWARE_SAMPLE_INDEX_16BIT+1)
#define VOXWARE_SAMPLE_SIZE_ARRAY {VOXWARE_SAMPLE_SIZE_8BIT, \
VOXWARE_SAMPLE_SIZE_16BIT, \
0L}
/*****************************************************************************
**
** Some consts so you don't hard-coding anything!
**
*****************************************************************************/
#define GAIN_ENERGY_LEVEL_CLIPPING (char) 200 /* You may be clipping if > */
/* ...this level. */
#define GAIN_ENERGY_LEVEL_TOO_LOW (char) 150 /* Speaker should not go */
/* below this for very long.*/
#define MAX_WARPED_LENGTH_FACTOR (float) 5.0
#define MIN_WARPED_LENGTH_FACTOR (float) 0.2
#define DEFAULT_WARPED_LENGTH_FACTOR (float) 1.0
#define USE_ABSOLUTE_PITCH TRUE
#define USE_RELATIVE_PITCH FALSE /* Default for bAbsolutePitchFlag */
#define MAX_RELATIVE_PITCH (float) +24.0
#define MIN_RELATIVE_PITCH (float) -24.0
#define DEFAULT_RELATIVE_PITCH (float) 0.0
#define MAX_ABSOLUTE_PITCH (float) 400.0
#define MIN_ABSOLUTE_PITCH (float) 70.0
#define USE_ABSOLUTE_GAIN TRUE
#define USE_RELATIVE_GAIN FALSE /* Default for bUseAbsoluteGainFlag */
#define MAX_RELATIVE_GAIN (float) +100.0
#define MIN_RELATIVE_GAIN (float) -100.0
#define DEFAULT_RELATIVE_GAIN (float) 0.0
#define MAX_ABSOLUTE_GAIN (float) 255.0
#define MIN_ABSOLUTE_GAIN (float) 0.0
#define NO_VOICE_FONT NULL
/* Assign the wVoiceFontType field to one of the following */
#define VOICE_FONT_VERSION_ONE_POINTER (short) 0
#define VOICE_FONT_BETA_2_STRUCT (short) 1
/*
The manual say's that the minimum size buffer you should ever
pass in is 512 bytes. (Truth is, we don't need that much,
but since I haven't called by psychic friend yet... I don't
know what the future will hold -- :)
*/
#define VOX_MINIMUM_BUFFER_SIZE (unsigned long) 512
/* Version format: vers.rel.maint.patch - this is version 1.1.8.192 */
#define TOOLVOX_VERSION_NUMBER 0x00010001L
#define TOOLVOX_MAINTENANCE_LEVEL 0x000800C0L
/* The following are obsolete spellings - use the constants #defined above. */
#define VOXWARE_VERSION TOOLVOX_VERSION_NUMBER
#define VOXWARE_MAINT TOOLVOX_MAINTENANCE_LEVEL
/*****************************************************************************
**
** Message values that are passed to the callback & the dwStatus field
**
*****************************************************************************/
#define VOXWARE_PLAYBACKERROR 10
#define VOXWARE_STARTCOMPRESS 11
#define VOXWARE_ENDCOMPRESS 12
#define VOXWARE_STARTDECOMPRESS 13
#define VOXWARE_ENDDECOMPRESS 14
#define VOXWARE_STARTPLAY 15
#define VOXWARE_ENDPLAY 16
//#define VOXWARE_STARTPITCH 17
//#define VOXWARE_ENDPITCH 18
#define VOXWARE_GETINFO 19
#define VOXWARE_STARTRECORD 20 /* Added in Version 1.1 */
#define VOXWARE_ENDRECORD 21 /* Added in Version 1.1 */
#define VOXWARE_RECORDERROR 22 /* Added in Version 1.1 */
#define VOXWARE_WAITING_TO_CLEANUP 23 /* Added in Version 1.1 */
#define VOXWARE_PAUSED 24 /* Added in Version 1.2 */
// ###lee: where is SOUNDOUT ??
#define VOXWARE_FUNCTION_INIT 40 /* Added in Version 1.1 */
#define VOXWARE_FUNCTION_READ 41 /* Added in Version 1.1 */
#define VOXWARE_FUNCTION_WRITE 42 /* Added in Version 1.1 */
#define VOXWARE_FUNCTION_CLEANUP 43 /* Added in Version 1.1 */
/*****************************************************************************
**
** Messages that are sent to the FILTER function
**
*****************************************************************************/
#define VOXWARE_FILTER_INIT 50
#define VOXWARE_FILTER_PCM 51
#define VOXWARE_FILTER_CLEANUP 52
/*****************************************************************************
**
** Messages that are returned from the low level compress and decompress
** functions.
**
*****************************************************************************/
#define VOXWARE_NEED_MORE_INPUT_DATA 91
#define VOXWARE_OUTPUT_BUFFER_FULL 92
#define VOXWARE_USER_ABORTED 93
#define VOXWARE_USER_PAUSED 94
/*****************************************************************************
**
** Error return values.
** All the errors are described in more detail in the file: tvgetstr.c
**
*****************************************************************************/
/* This is the return code for successful functions that work. */
#define VOX_NO_ERROR 00000
#define obsERR_BITS_PER_SAMPLE 101
#define obsERR_SAMPLE_RATE 102
#define VOXERR_FORMAT_PCM 103
#define VOXERR_NOT_MONO 104
#define VOXERR_VOXWARE_DATA_POINTER_NULL 105
#define VOXERR_VOXWARE_DATA_SIZE 106
#define VOXERR_VOX_FILE_INFO_POINTER_NULL 107
#define VOXERR_VOX_FILE_INFO_SIZE 108
#define VOXERR_VOX_VERSION_POINTER_NULL 109
#define VOXERR_VOX_VERSION_SIZE 110
#define VOXERR_VOX_VOICE_POINTER_NULL 111
#define VOXERR_VOX_VOICE_NAME_NULL 112
#define VOXERR_MORPHIO_POINTER_BAD 113
#define VOXERR_INVALID_INPUT_TYPE 114
#define VOXERR_INVALID_OUTPUT_TYPE 115
#define VOXERR_INPUT_HANDLER 116
#define VOXERR_OUTPUT_HANDLER 117
#define VOXERR_PRIME_TIME 118
#define VOXERR_WARP_2_BIG 119
#define VOXERR_WARP_2_SMALL 120
#define VOXERR_ABS_PITCH_2_BIG 121
#define VOXERR_ABS_PITCH_2_SMALL 122
#define VOXERR_REL_PITCH_2_BIG 123
#define VOXERR_REL_PITCH_2_SMALL 124
#define VOXERR_CODEC_UNKNOWN 125
#define VOXERR_INPUT_BYTES_PER_SAMPLE 126
#define VOXERR_OUTPUT_BYTES_PER_SAMPLE 127
#define VOXERR_FORMAT_VOX 128
#define VOXERR_UNKNOWN_ATTRIBUTE 129
#define VOXERR_VWD_OR_VCB_IS_NULL 130
#define VOXERR_NO_MARKERS_IN_INPUT_FILE 131
#define VOXERR_BAD_SRC_4_MARKER_INPUT 132
#define VOXERR_UNSUPPORTED_MARKER_CHUNK 133
#define VOXERR_INVALID_MARKER_SELECTOR 134
#define VOXERR_NO_INPUT_SAMPLE_SIZE 135
#define VOXERR_NO_INPUT_SAMPLING_RATE 136
#define VOXERR_BAD_INPUT_SAMPLING_RATE 137
#define VOXERR_BAD_OUTPUT_SAMPLING_RATE 138
/* A spot check of your machine and system software revealed a slight problem. */
/* These are MacOS ONLY errors: */
#define VOXERR_VALIDATE_NO_GESTALT 139
#define VOXERR_VALIDATE_CPU_OLD_AS_DIRT 140
#define VOXERR_VALIDATE_NO_FPU 141
#define VOXERR_VALIDATE_FILE_MGR_TOO_OLD 142
#define VOXERR_VALIDATE_NO_NOTIFICATION_MGR 143
#define VOXERR_VALIDATE_YIKES_NO_SOUND_MGR 144
#define VOXERR_VALIDATE_U_LACK_16BIT_SND 145
#define VOXERR_VALIDATE_SND_MGR_NOT_CURRENT 146
#define VOXERR_DONT_GIVE_INPUT_SAMPLE_RATE 147
#define VOXERR_DONT_GIVE_INPUT_SAMPLE_SIZE 148
#define VOXERR_NO_SAMPLE_RATE_FOR_VOX 149
#define VOXERR_NO_SAMPLE_SIZE_FOR_VOX 150
#define VOXERR_EFFECTS_ARE_NOT_SUPPORTED 151
#define VOXERR_FX_R_4_DECOMPRESSION_ONLY 152
#define VOXERR_ONLY_RT_8K_CODEC_AVAILABLE 153
#define VOXERR_INVALID_MARKER_SIZEOF 154
#define VOXERR_INVALID_VCB 155
#define VOXERR_INVALID_OUTPUT_VARS 156
#define VOXERR_INVALID_INPUT_VARS 157
#define VOXERR_ABS_GAIN_2_BIG 158
#define VOXERR_ABS_GAIN_2_SMALL 159
#define VOXERR_REL_GAIN_2_BIG 160
#define VOXERR_REL_GAIN_2_SMALL 161
#define VOXERR_VOXWARE_ALREADY_INITIALIZED 162
#define VOXERR_MUST_PLAY_TO_LOCATION_SOUND 163 // new, not yet in manual
#define VOXERR_MUST_CALL_DCMP_TOOLVOX_PLAY 164 // new, not yet in manual
#define VOXERR_FPU_DETECT 165 // new, not yet in manual
#define VOXERR_IDENTIFYING_THE_CPU 166 // new, not yet in manual
#define obsERR_IDENTIFYING_THE_OS 167 // bozo sabotage error... never use this.
#define VOXERR_CODEC_NOT_AVAILABLE 168 // new, not yet in manual
#define obsERR_DONT_GIVE_CODEC 169 // bozo sabotage error... never use this.
#define VOXERR_DONT_GIVE_CMP_SETTINGS 170 // new, not yet in manual
#define VOXERR_LINK_WITH_NATIVE_CODE 171 // mac only: new, not yet in manual
/* File I/O error codes. */
#define obsERR_DATA_CHUNK_SEEK 201
#define obsERR_FMT_CHUNK_READ 202
#define VOXERR_FMT_CHUNK_SIZE 203
#define VOXERR_RIFF_CHUNK_READ 204
#define VOXERR_VOX_HEADER_FLAG 205
#define VOXERR_VOX_HEADER_SIZE 206
#define obsERR_VOX_INIT_READ 207
#define obsERR_VOX_INIT_WRITE 208
#define obsERR_VOX_OPEN 209
#define obsERR_VOX_READ 210
#define obsERR_VOX_WRITE 211
#define obsERR_WAVE_CKID 212
#define obsERR_WAVE_INIT_READ 213
#define obsERR_WAVE_INIT_WRITE 214
#define obsERR_WAVE_OPEN 215
#define obsERR_WAVE_READ 216
#define obsERR_WAVE_WRITE 217
#define VOXERR_VFONT_OPEN 218
#define VOXERR_VFONT_READ 219
#define VOXERR_VFONT_WRITE 220
#define VOXERR_ENDOFFILE_REACHED 221
#define VOXERR_READING_FROM_FILE 222
#define VOXERR_WRITING_TO_FILE 223
#define VOXERR_BAD_PATH_TO_FILE 224
#define VOXERR_SET_FPOS 225
#define VOXERR_OPENING_INPUT_FILE 226
#define VOXERR_OPENING_OUTPUT_FILE 227
#define VOXERR_CLOSING_INPUT_FILE 228
#define VOXERR_CLOSING_OUTPUT_FILE 229
#define VOXERR_READING_MARKER 230
#define VOXERR_SEEKING_TO_MARKER_CHUNK 231
#define VOXERR_MARKER_SEEK_RESET 232
#define VOXERR_FAILED_SEEK_TO_MARKER 233
#define VOXERR_REOPENING_MARKER_LOG 234
#define VOXERR_OPENING_MARKER_LOG 235
#define VOXERR_FAILED_TO_GET_EOF 236
#define VOXERR_SEEKING_PAST_HEADER 237
#define VOXERR_ENDOFBUFFER_REACHED 238
/* Format/Header error codes */
#define WheReIsErOrNuMbErThReEoOnE 301 //###lee
#define VOXERR_UNKNOWN_HEADER_FORMAT 302
#define VOXERR_WE_DONT_SUPPORT_RIFX 303
#define VOXERR_WAVE_DOESNT_START_RIFF 304
#define VOXERR_CANT_SURF_THIS_WAVE 305
#define VOXERR_AIFF_COULDNT_FIND_ALL_CHUNKS 306
#define VOXERR_HDR_MISSING_BITS_OF_DATA 307
#define VOXERR_NOT_A_COMPRESSED_HEADER 308
#define VOXERR_NO_CODECID_FOR_HEADER 309 // new MJ51
#define VOXERR_UNKNOWN_CODECID_IN_HEADER 310 // new MJ67
/* Memory allocation error codes. */
#define VOXERR_PLAYBACK_MEMORY 401
#define VOXERR_VOXSTRUCT_MEMORY 402
#define obsERR_VOX_DATA_MEMORY 403
#define obsERR_WAVE_DATA_MEMORY 404
#define VOXERR_WAVEHDR_MEMORY 405
#define VOXERR_VER_INFO_MEMORY 406
#define VOXERR_MORPHIO_MEMORY 407
#define VOXERR_INPUT_VARS_MEMORY 408
#define VOXERR_OUTPUT_VARS_MEMORY 409
#define VOXERR_RECORD_MEMORY 410
#define VOXERR_MARKERS_MEMORY 411
#define VOXERR_FILELINK_MEMORY 412
#define VOXERR_READ_COMPLETION_MEMORY 413
#define VOXERR_INPUT_DISKIO_MEMORY 414
#define VOXERR_OUTPUT_DISKIO_MEMORY 415
#define VOXERR_FLUSH_BUFFER_MEMORY 416
#define VOXERR_FUNCIN_BUFFER_MEMORY 417
#define VOXERR_FUNCOUT_BUFFER_MEMORY 418
#define VOXERR_DEFERRED_TASK_PROC_MEMORY 419
#define VOXERR_DEFERRED_TASK_MEMORY 420
#define VOXERR_SOUND_CALLBACK_PROC_MEMORY 421
#define VOXERR_NOTIFICATION_REC_MEMORY 422
#define VOXERR_PLAYBACK_VARS_MEMORY 423
#define VOXERR_PLAYBACK_BUFFER_MEMORY 424
#define VOXERR_ORD_MARKERS_MEMORY 425
#define VOXERR_MARKERS_TEMP_CHUNK_MEMORY 426
#define VOXERR_WAVE_MARKER_CHUNK_MEMORY 427
#define VOXERR_GENERIC_MARKERS_MEMORY 428
#define VOXERR_TEMP_INPUT_BUFFER_MEMORY 429
/* General system error codes. */
#define VOXERR_BREW_BLACK_ART 501
#define VOXERR_COMPRESSION 502
#define VOXERR_CREATE_WINDOW 503
#define VOXERR_DECOMPRESSION 504
#define VOXERR_WAVEOUT_OPEN 505
#define VOXERR_PREPARE_HDR 506
#define VOXERR_WAVEOUT_WRITE 507
#define VOXERR_WAVEIN_ADD_BUFFER 508
#define VOXERR_WAVEIN_OPEN 509
#define VOXERR_WAVEIN_START 510
#define VOXERR_FUNCTION_EXPIRED 511
#define VOXERR_NOT_ENOUGH_DATA_TO_COMPRESS 512
#define VOXERR_COMPRESS_BUFFER 513
#define VOXERR_PROCESSING_ABORTED 514 // new, not yet in manual
#define VOXERR_PAUSING 515 // new MJ44 -- not yet in manual
#define VOXERR_RESUMING 516 // new MJ44 -- not yet in manual
#define VOXERR_FLUSHCMD 517 // new MJ44 -- not yet in manual
#define VOXERR_QUIETCMD 518 // new MJ44 -- not yet in manual
#define VOXERR_BUFFERCMD 519 // new MJ44 -- not yet in manual
#define VOXERR_CALLBACKCMD 520 // new MJ44 -- not yet in manual
#define VOXERR_DTINSTALL_FAILED 521 // new MJ44 -- not yet in manual
/* Errors that occur using the VoiceFonts API. */
#define VOXERR_VFONT_FILE_NOT_FOUND 601
#define VOXERR_VFONT_WRONGNAME 602
#define VOXERR_VFONT_DELETE 603
#define VOXERR_VFONT_FILE_FORMAT 604
#define VOXERR_MORPHIO_HANDLE_INVALID 605
#define VOXERR_VFII_UNKNOWN_VOICE_FONT 606 // new MJ50 -- not yet in manual
#define VOXERR_VFII_UNKNOWN_VF_CHUNK_SIZE 607 // new MJ50 -- not yet in manual
/*****************************************************************************
**
** Header routines to convert from digitized speech to VOX data. They all
** take PCM data as input and output compressed VOX data.
**
*****************************************************************************/
/* New calls that have the properties of all of the other calls. The routine
** use the dwInputType and dwOutputType fields to tell how to process the data.
** This makes the older calls obsolete (yet still supported).
*/
VOXWARE_RETCODE VOXAPI cmpToolVoxRecord(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI cmpToolVoxCompress(LPVOXWARE_DATA lpVoxwareData);
/* These routines are used for low-level compression. */
VOXWARE_RETCODE VOXAPI cmpVoxInit(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI cmpVoxConvert(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI cmpVoxFree(LPVOXWARE_DATA lpVoxwareData);
/* Older functions that are only here for backwards compatibility. */
VOXWARE_RETCODE VOXAPI cmpFileToVoxFile(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI cmpFileToVoxBuffer(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI cmpBufferToVoxFile(LPVOXWARE_DATA lpVoxwareData);
/*****************************************************************************
**
** Header routines to convert from VOX data to digitized speech. They all
** take VOX data as input (either as VOX file or a buffer of VOX data) and
** output decompressed PCM data. There is also a routine to play VOX or PCM
** data.
**
*****************************************************************************/
VOXWARE_RETCODE VOXAPI dcmpToolVoxPlay(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI dcmpToolVoxDecompress(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI dcmpToolVoxStop(LPVOXWARE_DATA lpVoxwareData); // MacOS only
VOXWARE_RETCODE VOXAPI dcmpToolVoxPause(LPVOXWARE_DATA lpVoxwareData); // Hidden API don't use.
VOXWARE_RETCODE VOXAPI dcmpToolVoxResume(LPVOXWARE_DATA lpVoxwareData); // Hidden API don't use.
VOXWARE_RETCODE VOXAPI dcmpSetBitOffset(LPVOXWARE_DATA lpVoxwareData, short newOffset); // Hidden API don't use.
/* These routines are used for low-level decompression. */
VOXWARE_RETCODE VOXAPI dcmpVoxInit(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI dcmpVoxConvert(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI dcmpVoxFree(LPVOXWARE_DATA lpVoxwareData);
/* Older functions that are only here for backwards compatibility. */
VOXWARE_RETCODE VOXAPI dcmpVoxFileToFile(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI dcmpVoxFileToBuffer(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI dcmpVoxBufferToFile(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI dcmpPlayVoxFile(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI dcmpPlayVoxBuffer(LPVOXWARE_DATA lpVoxwareData);
/*****************************************************************************
**
** These utility routines can be used to get information about the speed of
** the ToolVox compression or to get file information about an AIFF or VOX
** file. There are also routines to get and set different attributes of the
** ToolVox API.
**
*****************************************************************************/
VOXWARE_RETCODE VOXAPI utilGetFileInfo(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI utilGetVersionInfo(LPVOXWARE_DATA lpVoxwareData);
VOXWARE_RETCODE VOXAPI utilToolVoxGetAttribute(
LPVOXWARE_DATA lpVoxwareData,
LPVOX_COMMAND lpCommand);
VOXWARE_RETCODE VOXAPI utilToolVoxSetAttribute(
LPVOXWARE_DATA lpVoxwareData,
LPVOX_COMMAND lpCommand);
/*****************************************************************************
**
** This prototype is for the callback function that can be passed to ToolVox
** in the VOXWARE_DATA structure. If you create this function, it must be
** in a FIXED/Locked segment!
**
*****************************************************************************/
VOXAPI_CALLBACK VoxFunc(
unsigned short wVox,
unsigned short wMessage,
LPVOXWARE_DATA lpVoxwareData);
#ifndef VOXWARE_SUN
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=reset
#elif VOXWARE_HP
#pragma HP_ALIGN HPUX_NATURAL
#else
#pragma pack()
#endif
#endif
#ifdef __cplusplus
}
#endif
#endif /*__TOOLVOX_H_*/