1189 lines
49 KiB
C
1189 lines
49 KiB
C
/*****************************************************************************
|
|
|
|
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_*/
|