blob: 307fb47980cc05eb77e67b7d5477405ccfd7fc8d (
plain) (
tree)
|
|
unit acm_unit;
interface
uses
windows, mmsystem;
(*
******************************************************************************
* ��������� � MS Audio Compression Manager
******************************************************************************
*)
type
PWaveFilter = ^TWaveFilter;
// Defined in mmreg.h
WAVEFILTER = packed record
cbStruct: DWORD; // Size of the filter in bytes
dwFilterTag: DWORD; // filter type
fdwFilter: DWORD; // Flags for the filter (Universal Dfns)
dwReserved: array [0..4] of DWORD; // Reserved for system use
end;
TWaveFilter = WAVEFILTER;
HACMDRIVERID__ = record
Unused: Integer;
end;
{$EXTERNALSYM HACMDRIVERID__}
HACMDRIVERID = ^HACMDRIVERID__;
{$EXTERNALSYM HACMDRIVERID}
PHACMDRIVERID = ^HACMDRIVERID;
{$EXTERNALSYM PHACMDRIVERID}
LPHACMDRIVERID = ^HACMDRIVERID;
{$EXTERNALSYM LPHACMDRIVERID}
HACMDRIVER__ = record
Unused: Integer;
end;
{$EXTERNALSYM HACMDRIVER__}
HACMDRIVER = ^HACMDRIVER__;
{$EXTERNALSYM HACMDRIVER}
PHACMDRIVER = ^HACMDRIVER;
{$EXTERNALSYM PHACMDRIVER}
LPHACMDRIVER = ^HACMDRIVER;
{$EXTERNALSYM LPHACMDRIVER}
HACMSTREAM__ = record
Unused: Integer;
end;
{$EXTERNALSYM HACMSTREAM__}
HACMSTREAM = ^HACMSTREAM__;
{$EXTERNALSYM HACMSTREAM}
PHACMSTREAM = ^HACMSTREAM;
{$EXTERNALSYM PHACMSTREAM}
LPHACMSTREAM = ^HACMSTREAM;
{$EXTERNALSYM LPHACMSTREAM}
PAcmStreamHeader = ^TAcmStreamHeader;
ACMSTREAMHEADER = packed record
cbStruct: DWORD;
fdwStatus: DWORD;
dwUser: DWORD;
pbSrc: PBYTE;
cbSrcLength: DWORD;
cbSrcLengthUsed: DWORD;
dwSrcUser: DWORD;
pbDst: PBYTE;
cbDstLength: DWORD;
cbDstLengthUsed: DWORD;
dwDstUser: DWORD;
dwReservedDriver: array [0..10 - 1] of DWORD;
end;
{$EXTERNALSYM tACMSTREAMHEADER}
TAcmStreamHeader = ACMSTREAMHEADER;
const
ACMSTREAMHEADER_STATUSF_DONE = $00010000;
{$EXTERNALSYM ACMSTREAMHEADER_STATUSF_DONE}
ACMSTREAMHEADER_STATUSF_PREPARED = $00020000;
{$EXTERNALSYM ACMSTREAMHEADER_STATUSF_PREPARED}
ACMSTREAMHEADER_STATUSF_INQUEUE = $00100000;
{$EXTERNALSYM ACMSTREAMHEADER_STATUSF_INQUEUE}
function acmStreamOpen(var phas: HACMSTREAM; had: HACMDRIVER; var pwfxSrc: TWAVEFORMATEX;
var pwfxDst: TWAVEFORMATEX; pwfltr: PWAVEFILTER; dwCallback: DWORD; dwInstance: DWORD;
fdwOpen: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmStreamOpen}
const
ACM_STREAMOPENF_QUERY = $00000001;
{$EXTERNALSYM ACM_STREAMOPENF_QUERY}
ACM_STREAMOPENF_ASYNC = $00000002;
{$EXTERNALSYM ACM_STREAMOPENF_ASYNC}
ACM_STREAMOPENF_NONREALTIME = $00000004;
{$EXTERNALSYM ACM_STREAMOPENF_NONREALTIME}
function acmStreamSize(has: HACMSTREAM; cbInput: DWORD; var pdwOutputBytes: DWORD;
fdwSize: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmStreamSize}
const
ACM_STREAMSIZEF_SOURCE = $00000000;
{$EXTERNALSYM ACM_STREAMSIZEF_SOURCE}
ACM_STREAMSIZEF_DESTINATION = $00000001;
{$EXTERNALSYM ACM_STREAMSIZEF_DESTINATION}
ACM_STREAMSIZEF_QUERYMASK = $0000000F;
{$EXTERNALSYM ACM_STREAMSIZEF_QUERYMASK}
function acmStreamConvert(has: HACMSTREAM; var pash: TAcmStreamHeader;
fdwConvert: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmStreamConvert}
const
ACM_STREAMCONVERTF_BLOCKALIGN = $00000004;
{$EXTERNALSYM ACM_STREAMCONVERTF_BLOCKALIGN}
ACM_STREAMCONVERTF_START = $00000010;
{$EXTERNALSYM ACM_STREAMCONVERTF_START}
ACM_STREAMCONVERTF_END = $00000020;
{$EXTERNALSYM ACM_STREAMCONVERTF_END}
function acmStreamPrepareHeader(has: HACMSTREAM; var pash: TAcmStreamHeader;
fdwPrepare: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmStreamPrepareHeader}
function acmStreamUnprepareHeader(has: HACMSTREAM; var pash: TAcmStreamHeader;
fdwUnprepare: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmStreamUnprepareHeader}
function acmStreamClose(has: HACMSTREAM; fdwClose: DWORD): MMRESULT; stdcall;
{$EXTERNALSYM acmStreamClose}
(*
******************************************************************************
* ��������� � MS Audio Compression Manager
******************************************************************************
*)
implementation
const
msacm32 = 'msacm32.dll';
(*function acmGetVersion; external msacm32 name 'acmGetVersion';
function acmMetrics; external msacm32 name 'acmMetrics';
function acmDriverEnum; external msacm32 name 'acmDriverEnum';
function acmDriverID; external msacm32 name 'acmDriverID';
function acmDriverAddA; external msacm32 name 'acmDriverAddA';
function acmDriverAddW; external msacm32 name 'acmDriverAddW';
function acmDriverAdd; external msacm32 name 'acmDriverAddA';
function acmDriverRemove; external msacm32 name 'acmDriverRemove';
function acmDriverOpen; external msacm32 name 'acmDriverOpen';
function acmDriverClose; external msacm32 name 'acmDriverClose';
function acmDriverMessage; external msacm32 name 'acmDriverMessage';
function acmDriverPriority; external msacm32 name 'acmDriverPriority';
function acmDriverDetailsA; external msacm32 name 'acmDriverDetailsA';
function acmDriverDetailsW; external msacm32 name 'acmDriverDetailsW';
function acmDriverDetails; external msacm32 name 'acmDriverDetailsA';
function acmFormatTagDetailsA; external msacm32 name 'acmFormatTagDetailsA';
function acmFormatTagDetailsW; external msacm32 name 'acmFormatTagDetailsW';
function acmFormatTagDetails; external msacm32 name 'acmFormatTagDetailsA';
function acmFormatDetailsA; external msacm32 name 'acmFormatDetailsA';
function acmFormatDetailsW; external msacm32 name 'acmFormatDetailsW';
function acmFormatDetails; external msacm32 name 'acmFormatDetailsA';
function acmFormatChooseA; external msacm32 name 'acmFormatChooseA';
function acmFormatChooseW; external msacm32 name 'acmFormatChooseW';
function acmFormatChoose; external msacm32 name 'acmFormatChooseA';
function acmFormatEnumA; external msacm32 name 'acmFormatEnumA';
function acmFormatEnumW; external msacm32 name 'acmFormatEnumW';
function acmFormatEnum; external msacm32 name 'acmFormatEnumA';
function acmFormatTagEnumA; external msacm32 name 'acmFormatTagEnumA';
function acmFormatTagEnumW; external msacm32 name 'acmFormatTagEnumW';
function acmFormatTagEnum; external msacm32 name 'acmFormatTagEnumA';
function acmFormatSuggest; external msacm32 name 'acmFormatSuggest';
function acmFilterTagDetailsA; external msacm32 name 'acmFilterTagDetailsA';
function acmFilterTagDetailsW; external msacm32 name 'acmFilterTagDetailsW';
function acmFilterTagDetails; external msacm32 name 'acmFilterTagDetailsA';
function acmFilterTagEnumA; external msacm32 name 'acmFilterTagEnumA';
function acmFilterTagEnumW; external msacm32 name 'acmFilterTagEnumW';
function acmFilterTagEnum; external msacm32 name 'acmFilterTagEnumA';
function acmFilterDetailsA; external msacm32 name 'acmFilterDetailsA';
function acmFilterDetailsW; external msacm32 name 'acmFilterDetailsW';
function acmFilterDetails; external msacm32 name 'acmFilterDetailsA';
function acmFilterEnumA; external msacm32 name 'acmFilterEnumA';
function acmFilterEnumW; external msacm32 name 'acmFilterEnumW';
function acmFilterEnum; external msacm32 name 'acmFilterEnumA';
function acmFilterChooseA; external msacm32 name 'acmFilterChooseA';
function acmFilterChooseW; external msacm32 name 'acmFilterChooseW';
function acmFilterChoose; external msacm32 name 'acmFilterChooseA'; *)
function acmStreamOpen; external msacm32 name 'acmStreamOpen';
function acmStreamClose; external msacm32 name 'acmStreamClose';
function acmStreamSize; external msacm32 name 'acmStreamSize';
//function acmStreamReset; external msacm32 name 'acmStreamReset';
//function acmStreamMessage; external msacm32 name 'acmStreamMessage';
function acmStreamConvert; external msacm32 name 'acmStreamConvert';
function acmStreamPrepareHeader; external msacm32 name 'acmStreamPrepareHeader';
function acmStreamUnprepareHeader; external msacm32 name 'acmStreamUnprepareHeader';
end.
|