📄 mmregs.pas
字号:
MM_OPTI_P16_AUX = $0016;
MM_OPTI_M32_WAVEIN = $0020;
MM_OPTI_M32_WAVEOUT = $0021;
MM_OPTI_M32_MIDIIN = $0022;
MM_OPTI_M32_MIDIOUT = $0023;
MM_OPTI_M32_SYNTH_STEREO = $0024;
MM_OPTI_M32_MIXER = $0025;
MM_OPTI_M32_AUX = $0026;
{$ENDIF} { NOMMIDS }
{**************************************************************************}
{ INFO LIST CHUNKS (from the Multimedia Programmer's Reference }
{ (plus new ones) }
{**************************************************************************}
{$IFNDEF NONEWRIFFINFO}
const
RIFFINFO_IARL = $4C524149; {'IARL'} { Archival location }
RIFFINFO_IART = $54524149; {'IART'} { Artist }
RIFFINFO_ICMS = $534D4349; {'ICMS'} { Commissioned }
RIFFINFO_ICMT = $544D4349; {'ICMT'} { Comments }
RIFFINFO_ICOP = $504F4349; {'ICOP'} { Copyright }
RIFFINFO_ICRD = $44524349; {'ICRD'} { Creation date of subject }
RIFFINFO_ICRP = $50524349; {'ICRP'} { Cropped }
RIFFINFO_IDIM = $4D494449; {'IDIM'} { Dimensions }
RIFFINFO_IDPI = $49504449; {'IDPI'} { Dots per inch }
RIFFINFO_IENG = $474E4549; {'IENG'} { Engineer }
RIFFINFO_IGNR = $524E4749; {'IGNR'} { Genre }
RIFFINFO_IKEY = $59454B49; {'IKEY'} { Keywords }
RIFFINFO_ILGT = $54474C49; {'ILGT'} { Lightness settings }
RIFFINFO_IMED = $44454D49; {'IMED'} { Medium }
RIFFINFO_INAM = $4D414E49; {'INAM'} { Name of subject }
RIFFINFO_IPLT = $544C5049; {'IPLT'} { Palette Settings. No. of colors requested.}
RIFFINFO_IPRD = $44525049; {'IPRD'} { Product }
RIFFINFO_ISBJ = $4A425349; {'ISBJ'} { Subject description }
RIFFINFO_ISFT = $54465349; {'ISFT'} { Software. Name of package used to create file.}
RIFFINFO_ISHP = $50485349; {'ISHP'} { Sharpness. }
RIFFINFO_ISRC = $43525349; {'ISRC'} { Source. }
RIFFINFO_ISRF = $46525349; {'ISRF'} { Source Form. ie slide, paper }
RIFFINFO_ITCH = $48435449; {'ITCH'} { Technician who digitized the subject.}
{ New INFO Chunks as of August 30, 1993: }
RIFFINFO_ISMP = $504D5349; {'ISMP'} { SMPTE time code }
{ ISMP: SMPTE time code of digitization start point expressed as a }
{ NULL terminated text string "HH:MM:SS:FF". If performing MCI }
{ capture in AVICAP, this chunk will be automatically set based on }
{ the MCI start time. }
RIFFINFO_IDIT = $54494449; {'IDIT'} { Digitization Time }
{ IDIT: "Digitization Time" Specifies the time and date that the }
{ digitization commenced. The digitization time is contained in an }
{ ASCII string which contains exactly 26 characters and is in the }
{ format "Wed Jan 02 02:03:55 1990\n\0". }
{ The ctime(), asctime(), functions can be used to create strings }
{ in this format. This chunk is automatically added to the capture }
{ file based on the current system time at the moment capture is }
{ initiated. }
RIFFINFO_I = $20202049; {'I '} { Template line for new additions}
{$ENDIF} { NONEWRIFFINFO }
(**************************************************************************)
{$IFNDEF NONEWWAVE}
{ WAVE form wFormatTag IDs }
const
WAVE_FORMAT_UNKNOWN = $0000; { Microsoft Corporation }
WAVE_FORMAT_ADPCM = $0002; { Microsoft Corporation }
WAVE_FORMAT_MEDIAVISION_ADPCM = $0003; { MV's *UNREGISTERED* ADPCM}
WAVE_FORMAT_IBM_CVSD = $0005; { IBM Corporation }
WAVE_FORMAT_ALAW = $0006; { Microsoft Corporation }
WAVE_FORMAT_MULAW = $0007; { Microsoft Corporation }
WAVE_FORMAT_OKI_ADPCM = $0010; { OKI }
WAVE_FORMAT_DVI_ADPCM = $0011; { Intel Corporation }
WAVE_FORMAT_IMA_ADPCM = $0011; { Intel Corporation }
WAVE_FORMAT_MEDIASPACE_ADPCM = $0012; { Videologic }
WAVE_FORMAT_SIERRA_ADPCM = $0013; { Sierra Semiconductor Corp}
WAVE_FORMAT_G723_ADPCM = $0014; { Antex Electronics Corporation}
WAVE_FORMAT_DIGISTD = $0015; { DSP Solutions, Inc. }
WAVE_FORMAT_DIGIFIX = $0016; { DSP Solutions, Inc. }
WAVE_FORMAT_DIALOGIC_OKI_ADPCM = $0017; { Dialogic Corporation }
WAVE_FORMAT_YAMAHA_ADPCM = $0020; { Yamaha Corporation of America}
WAVE_FORMAT_SONARC = $0021; { Speech Compression }
WAVE_FORMAT_DSPGROUP_TRUESPEECH = $0022; { DSP Group, Inc }
WAVE_FORMAT_ECHOSC1 = $0023; { Echo Speech Corporation }
WAVE_FORMAT_AUDIOFILE_AF36 = $0024; { }
WAVE_FORMAT_APTX = $0025; { Audio Processing Technology}
WAVE_FORMAT_AUDIOFILE_AF10 = $0026; { }
WAVE_FORMAT_DOLBY_AC2 = $0030; { Dolby Laboratories }
WAVE_FORMAT_DOLBYAC2 = WAVE_FORMAT_DOLBY_AC2;
WAVE_FORMAT_GSM610 = $0031; { Microsoft Corporation }
WAVE_FORMAT_ANTEX_ADPCME = $0033; { Antex Electronics Corporation}
WAVE_FORMAT_CONTROL_RES_VQLPC = $0034; { Control Resources Limited}
WAVE_FORMAT_DIGIREAL = $0035; { DSP Solutions, Inc. }
WAVE_FORMAT_DIGIADPCM = $0036; { DSP Solutions, Inc. }
WAVE_FORMAT_CONTROL_RES_CR10 = $0037; { Control Resources Limited}
WAVE_FORMAT_NMS_VBXADPCM = $0038; { Natural MicroSystems }
WAVE_FORMAT_CS_IMAADPCM = $0039; { Crystal Semiconductor IMA ADPCM }
WAVE_FORMAT_G721_ADPCM = $0040; { Antex Electronics Corporation}
WAVE_FORMAT_MPEG = $0050; { Microsoft Corporation }
WAVE_FORMAT_MPEG_LAYER3 = $0055; { ISO Mpeg Layer 3 }
WAVE_FORMAT_CREATIVE_ADPCM = $0200; { Creative Labs, Inc }
WAVE_FORMAT_CREATIVE_FASTSPEECH8 = $0202; { Creative Labs, Inc }
WAVE_FORMAT_CREATIVE_FASTSPEECH10 = $0203; { Creative Labs, Inc }
WAVE_FORMAT_CDIC = $0204; { cdi-c }
WAVE_FORMAT_CDIB = $0205; { cdi-b }
WAVE_FORMAT_ADPCME = $0206; { ANTEX-DVI-OKI_ADPCME }
WAVE_FORMAT_DOLBY_AC2_REVA = $0209; { dolby ac2 48khz rev a }
WAVE_FORMAT_G728_CELP = $020A; { G.728 }
WAVE_FORMAT_AAUDIT = $020B; { AAUDIT }
WAVE_FORMAT_PCM32 = $020C; { PCM 32 }
WAVE_FORMAT_FM_TOWNS_SND = $0300; { Fujitsu Corp. }
WAVE_FORMAT_OLIGSM = $1000; { Ing C. Olivetti & C., S.p.A.}
WAVE_FORMAT_OLIADPCM = $1001; { Ing C. Olivetti & C., S.p.A.}
WAVE_FORMAT_OLICELP = $1002; { Ing C. Olivetti & C., S.p.A.}
WAVE_FORMAT_OLISBC = $1003; { Ing C. Olivetti & C., S.p.A.}
WAVE_FORMAT_OLIOPR = $1004; { Ing C. Olivetti & C., S.p.A.}
{ the WAVE_FORMAT_DEVELOPMENT format tag can be used during the }
{ development phase of a new wave format. Before shipping, you MUST }
{ acquire an official format tag from Microsoft. }
WAVE_FORMAT_DEVELOPMENT = $FFFF;
{$ENDIF} { NONEWWAVE }
{$IFNDEF WIN32}
type
DWORD = Longint;
{*************************************************************************}
{ We must redeclare this, Borland has the records in MMSystem packed !!! }
{*************************************************************************}
{*************************************************************************}
{ general waveform format structure (information common to all formats) }
{*************************************************************************}
type
PWaveFormat = ^TWaveFormat;
TWaveFormat = packed record
wFormatTag : Word; { format type }
nChannels : Word; { number of channels (i.e. mono, stereo, etc.) }
nSamplesPerSec : DWORD; { sample rate }
nAvgBytesPerSec: DWORD; { for buffer estimation }
nBlockAlign : Word; { block size of data }
end;
{*************************************************************************}
{ specific waveform format structure for PCM data }
{*************************************************************************}
type
PPCMWaveFormat = ^TPCMWaveFormat;
TPCMWaveFormat = packed record
wf: TWaveFormat;
wBitsPerSample: Word;
end;
{*************************************************************************}
{ general extended waveform format structure }
{ Use this for all NON PCM formats (information common to all formats) }
{*************************************************************************}
type
PWaveFormatEx = ^TWaveFormatEx;
TWaveFormatEx = packed record
wFormatTag : Word; { format type }
nChannels : Word; { number of channels (i.e. mono, stereo..)}
nSamplesPerSec : Longint; { sample rate }
nAvgBytesPerSec: Longint; { for buffer estimation }
nBlockAlign : Word; { block size of data }
wBitsPerSample : Word; { Number of bits per sample of mono data }
cbSize : Word; { The count in bytes of the size of }
end; { extra information (after cbSize) }
{$ENDIF}
type
PWaveFormatExtensible = ^TWaveFormatExtensible;
TWaveFormatExtensible = packed record
Format: TWaveFormatEx;
Samples: record
case Word of
0: (wValidBitsPerSample: WORD);// bits of precision
1: (wSamplesPerBlock : WORD);// valid if wBitsPerSample==0
2: (wReserved : WORD);// If neither applies, set to zero.
end;
dwChannelMask: DWORD; // which channels are
SubFormat : TGUID; // present in stream
end;
const
WAVE_FORMAT_EXTENSIBLE = $FFFE;
// Speaker Positions:
SPEAKER_FRONT_LEFT = $1;
SPEAKER_FRONT_RIGHT = $2;
SPEAKER_FRONT_CENTER = $4;
SPEAKER_LOW_FREQUENCY = $8;
SPEAKER_BACK_LEFT = $10;
SPEAKER_BACK_RIGHT = $20;
SPEAKER_FRONT_LEFT_OF_CENTER = $40;
SPEAKER_FRONT_RIGHT_OF_CENTER = $80;
SPEAKER_BACK_CENTER = $100;
SPEAKER_SIDE_LEFT = $200;
SPEAKER_SIDE_RIGHT = $400;
SPEAKER_TOP_CENTER = $800;
SPEAKER_TOP_FRONT_LEFT = $1000;
SPEAKER_TOP_FRONT_CENTER = $2000;
SPEAKER_TOP_FRONT_RIGHT = $4000;
SPEAKER_TOP_BACK_LEFT = $8000;
SPEAKER_TOP_BACK_CENTER = $10000;
SPEAKER_TOP_BACK_RIGHT = $20000;
// Bit mask locations reserved for future use
SPEAKER_RESERVED = $7FFC0000;
// Used to specify that any possible permutation of speaker configurations
SPEAKER_ALL = $80000000;
// DirectSound Speaker Config
KSAUDIO_SPEAKER_MONO = SPEAKER_FRONT_CENTER;
KSAUDIO_SPEAKER_STEREO = SPEAKER_FRONT_LEFT or SPEAKER_FRONT_RIGHT;
KSAUDIO_SPEAKER_QUAD = SPEAKER_FRONT_LEFT or SPEAKER_FRONT_RIGHT or
SPEAKER_BACK_LEFT or SPEAKER_BACK_RIGHT;
KSAUDIO_SPEAKER_SURROUND = SPEAKER_FRONT_LEFT or SPEAKER_FRONT_RIGHT or
SPEAKER_FRONT_CENTER or SPEAKER_BACK_CENTER;
KSAUDIO_SPEAKER_5POINT1 = SPEAKER_FRONT_LEFT or SPEAKER_FRONT_RIGHT or
SPEAKER_FRONT_CENTER or SPEAKER_LOW_FREQUENCY or
SPEAKER_BACK_LEFT or SPEAKER_BACK_RIGHT;
KSAUDIO_SPEAKER_7POINT1 = SPEAKER_FRONT_LEFT or SPEAKER_FRONT_RIGHT or
SPEAKER_FRONT_CENTER or SPEAKER_LOW_FREQUENCY or
SPEAKER_BACK_LEFT or SPEAKER_BACK_RIGHT or
SPEAKER_FRONT_LEFT_OF_CENTER or SPEAKER_FRONT_RIGHT_OF_CENTER;
// DVD Speaker Positions
KSAUDIO_SPEAKER_GROUND_FRONT_LEFT = SPEAKER_FRONT_LEFT;
KSAUDIO_SPEAKER_GROUND_FRONT_CENTER = SPEAKER_FRONT_CENTER;
KSAUDIO_SPEAKER_GROUND_FRONT_RIGHT = SPEAKER_FRONT_RIGHT;
KSAUDIO_SPEAKER_GROUND_REAR_LEFT = SPEAKER_BACK_LEFT;
KSAUDIO_SPEAKER_GROUND_REAR_RIGHT = SPEAKER_BACK_RIGHT;
KSAUDIO_SPEAKER_TOP_MIDDLE = SPEAKER_TOP_CENTER;
KSAUDIO_SPEAKER_SUPER_WOOFER = SPEAKER_LOW_FREQUENCY;
//DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_PCM)
KSDATAFORMAT_SUBTYPE_PCM : TGUID = '{00000001-0000-0010-8000-00aa00389b71}';
{$IFNDEF NONEWWAVE}
{*************************************************************************}
{ Define data for MS ADPCM }
{*************************************************************************}
type
PADPCMCOEFSET = ^TADPCMCOEFSET;
TADPCMCOEFSET = packed record
iCoef1: Smallint;
iCoef2: Smallint;
end;
PADPCMWaveFormat = ^TADPCMWaveFormat;
TADPCMWaveFormat = packed record
wfx : TWaveFormatEx;
wSamplesPerBlock : Word;
wNumCoef : Word;
aCoef: array[0..0] of TADPCMCOEFSET;
end;
{*************************************************************************}
{ Intel's DVI ADPCM structure definitions }
{ for WAVE_FORMAT_DVI_ADPCM $0011 }
{*************************************************************************}
type
PDVIADPCMWaveFormat = ^TDVIADPCMWaveFormat;
TDVIADPCMWaveFormat = packed record
wfx : TWaveFormatEx;
wSamplesPerBlock: Word;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -