⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmregs.pas

📁 一套及时通讯的原码
💻 PAS
📖 第 1 页 / 共 5 页
字号:
     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 + -