{========================================================================} {= (c) 1995-98 SwiftSoft Ronald Dittrich =} {========================================================================} {= All Rights Reserved =} {========================================================================} {= D 01099 Dresden = Tel.: +0351-8012255 =} {= Loewenstr.7a = info@swiftsoft.de =} {========================================================================} {= Actual versions on http://www.swiftsoft.de/mmtools.html =} {========================================================================} {= This code is for reference purposes only and may not be copied or =} {= distributed in any format electronic or otherwise except one copy =} {= for backup purposes. =} {= =} {= No Delphi Component Kit or Component individually or in a collection=} {= subclassed or otherwise from the code in this unit, or associated =} {= .pas, .dfm, .dcu, .asm or .obj files may be sold or distributed =} {= without express permission from SwiftSoft. =} {= =} {= For more licence informations please refer to the associated =} {= HelpFile. =} {========================================================================} {= $Date: 20.01.1998 - 18:00:00 $ =} {========================================================================} unit MMACMSup; {$I COMPILER.INC} interface uses {$IFDEF WIN32} Windows, {$ELSE} WinTypes, WinProcs, {$ENDIF} SysUtils, Classes, Forms, MMSystem, MMUtils, MMRegs, MMACM; type PACMStream = ^TACMStream; TACMStream = record lpSrcBuffer : PChar; lpDstBuffer : PChar; dwSrcBufferSize: Longint; dwDstBufferSize: Longint; dwRemaining : Longint; acmStream : THACMSTREAM; acmStreamHeader: TACMStreamHeader; end; PACMConvert = ^TACMConvert; TACMConvert = record lpSrcBuffer : PChar; lpDstBuffer : PChar; dwSrcBufferSize : Longint; dwDstBufferSize : Longint; dwBytesConverted : Longint; dwBytesRead : Longint; bPending : Boolean; bFreeSrcBuffer : Boolean; Streams : TList; end; { a set of low level conversion routines to convert WaveFormat's } function acmMustConvert(pwfxSrc,pwfxDst: PWaveFormatEx): Boolean; function acmQueryConvert(pwfxSrc,pwfxDst: PWaveFormatEx; RealTime: Boolean): Boolean; function acmSuggestPCMFormat(pwfxSrc: PWaveFormatEx): TWaveFormatEx; function acmSizeOutputData(pwfxSrc,pwfxDst: PWaveFormatEx; SrcBufSize: Longint): Longint; function acmBeginConvert(pwfxSrc,pwfxDst: PWaveFormatEx; SrcBuffer: PChar; SrcBufSize: Longint; RealTime: Boolean): PACMConvert; function acmDoConvert(pConvert: PACMConvert; SrcBufSize: Longint): Longint; function acmEndConvert(pConvert: PACMConvert; SrcBufSize: Longint): Longint; procedure acmDoneConvert(var pConvert: PACMConvert); implementation