]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/directx/xapo/xapo.factor
5878af80e02a9ffce25f824bc9499ab9459ed495
[factor.git] / basis / windows / directx / xapo / xapo.factor
1 USING: alien.c-types alien.syntax classes.struct windows.com
2 windows.com.syntax windows.directx.audiodefs windows.kernel32
3 windows.types ;
4 IN: windows.directx.xapo
5
6 CONSTANT: XAPO_MIN_CHANNELS 1
7 CONSTANT: XAPO_MAX_CHANNELS 64
8
9 CONSTANT: XAPO_MIN_FRAMERATE 1000
10 CONSTANT: XAPO_MAX_FRAMERATE 200000
11
12 CONSTANT: XAPO_REGISTRATION_STRING_LENGTH 256
13
14 CONSTANT: XAPO_FLAG_CHANNELS_MUST_MATCH      HEX: 00000001
15
16 CONSTANT: XAPO_FLAG_FRAMERATE_MUST_MATCH     HEX: 00000002
17
18 CONSTANT: XAPO_FLAG_BITSPERSAMPLE_MUST_MATCH HEX: 00000004
19
20 CONSTANT: XAPO_FLAG_BUFFERCOUNT_MUST_MATCH   HEX: 00000008
21
22 CONSTANT: XAPO_FLAG_INPLACE_REQUIRED         HEX: 00000020
23
24 CONSTANT: XAPO_FLAG_INPLACE_SUPPORTED        HEX: 00000010
25
26 STRUCT: XAPO_REGISTRATION_PROPERTIES 
27     { clsid                GUID       }
28     { FriendlyName         WCHAR[256] }
29     { CopyrightInfo        WCHAR[256] }
30     { MajorVersion         UINT32     }
31     { MinorVersion         UINT32     }
32     { Flags                UINT32     }
33     { MinInputBufferCount  UINT32     }
34     { MaxInputBufferCount  UINT32     }
35     { MinOutputBufferCount UINT32     }
36     { MaxOutputBufferCount UINT32     } ;
37
38 STRUCT: XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS
39     { pFormat                    WAVEFORMATEX* }
40     { MaxFrameCount              UINT32        } ;
41
42 C-ENUM:
43         XAPO_BUFFER_SILENT
44         XAPO_BUFFER_VALID ;
45 TYPEDEF: int XAPO_BUFFER_FLAGS
46
47 STRUCT: XAPO_PROCESS_BUFFER_PARAMETERS
48     { pBuffer                    void*             }
49     { BufferFlags                XAPO_BUFFER_FLAGS }
50     { ValidFrameCount            UINT32            } ;
51
52 COM-INTERFACE: IXAPO IUnknown {A90BC001-E897-E897-55E4-9E4700000000}
53     HRESULT GetRegistrationProperties ( XAPO_REGISTRATION_PROPERTIES** ppRegistrationProperties )
54     HRESULT IsInputFormatSupported ( WAVEFORMATEX* pOutputFormat, WAVEFORMATEX* pRequestedInputFormat, WAVEFORMATEX** ppSupportedInputFormat )
55     HRESULT IsOutputFormatSupported ( WAVEFORMATEX* pInputFormat, WAVEFORMATEX* pRequestedOutputFormat, WAVEFORMATEX** ppSupportedOutputFormat )
56     HRESULT Initialize ( void* pData, UINT32 DataByteSize )
57     void Reset ( )
58     HRESULT LockForProcess ( UINT32 InputLockedParameterCount, XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS* pInputLockedParameters, UINT32 OutputLockedParameterCount, XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS* pOutputLockedParameters )
59     void UnlockForProcess ( )
60     void Process ( UINT32 InputProcessParameterCount, XAPO_PROCESS_BUFFER_PARAMETERS* pInputProcessParameters, UINT32 OutputProcessParameterCount, XAPO_PROCESS_BUFFER_PARAMETERS* pOutputProcessParameters, BOOL IsEnabled )
61     UINT32 CalcInputFrames ( UINT32 OutputFrameCount )
62     UINT32 CalcOutputFrames ( UINT32 InputFrameCount ) ;
63
64 COM-INTERFACE: IXAPOParameters IUnknown {A90BC001-E897-E897-55E4-9E4700000001}
65     void SetParameters ( void* pParameters, UINT32 ParameterByteSize )
66     void GetParameters ( void* pParameters, UINT32 ParameterByteSize ) ;
67
68