Initial community commit

This commit is contained in:
Jef
2024-09-24 14:54:57 +02:00
parent 537bcbc862
commit f2d940131e
16886 changed files with 4659320 additions and 2 deletions

View File

@ -0,0 +1,461 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 5.01.0164 */
/* at Fri May 03 10:13:47 2002
*/
/* Compiler settings for CakeMedParam.idl:
Os (OptLev=s), W1, Zp8, env=Win32, ms_ext, c_ext
error checks: allocation ref bounds_check enum stub_data
*/
//MIDL_FILE_HEADING( )
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/
#ifndef __CakeMedParam_h__
#define __CakeMedParam_h__
#ifdef __cplusplus
extern "C"{
#endif
/* Forward Declarations */
#ifndef __IMediaParamsUICallback_FWD_DEFINED__
#define __IMediaParamsUICallback_FWD_DEFINED__
typedef interface IMediaParamsUICallback IMediaParamsUICallback;
#endif /* __IMediaParamsUICallback_FWD_DEFINED__ */
#ifndef __IMediaParamsSetUICallback_FWD_DEFINED__
#define __IMediaParamsSetUICallback_FWD_DEFINED__
typedef interface IMediaParamsSetUICallback IMediaParamsSetUICallback;
#endif /* __IMediaParamsSetUICallback_FWD_DEFINED__ */
#ifndef __IMediaParamsCapture_FWD_DEFINED__
#define __IMediaParamsCapture_FWD_DEFINED__
typedef interface IMediaParamsCapture IMediaParamsCapture;
#endif /* __IMediaParamsCapture_FWD_DEFINED__ */
#ifndef __IMediaParamsUICallback_FWD_DEFINED__
#define __IMediaParamsUICallback_FWD_DEFINED__
typedef interface IMediaParamsUICallback IMediaParamsUICallback;
#endif /* __IMediaParamsUICallback_FWD_DEFINED__ */
#ifndef __IMediaParamsSetUICallback_FWD_DEFINED__
#define __IMediaParamsSetUICallback_FWD_DEFINED__
typedef interface IMediaParamsSetUICallback IMediaParamsSetUICallback;
#endif /* __IMediaParamsSetUICallback_FWD_DEFINED__ */
#ifndef __IMediaParamsCapture_FWD_DEFINED__
#define __IMediaParamsCapture_FWD_DEFINED__
typedef interface IMediaParamsCapture IMediaParamsCapture;
#endif /* __IMediaParamsCapture_FWD_DEFINED__ */
void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void __RPC_FAR * );
#ifndef __IMediaParamsUICallback_INTERFACE_DEFINED__
#define __IMediaParamsUICallback_INTERFACE_DEFINED__
/* interface IMediaParamsUICallback */
/* [version][uuid][local][object] */
EXTERN_C const IID IID_IMediaParamsUICallback;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("B8E0480A-E08D-4a5d-9228-248017032368")
IMediaParamsUICallback : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE ParamsBeginCapture(
/* [in] */ DWORD __RPC_FAR *aIndex,
/* [in] */ DWORD cPoints) = 0;
virtual HRESULT STDMETHODCALLTYPE ParamsChanged(
/* [in] */ DWORD __RPC_FAR *aIndex,
/* [in] */ DWORD cPoints,
/* [in] */ MP_DATA __RPC_FAR *paData) = 0;
virtual HRESULT STDMETHODCALLTYPE ParamsEndCapture(
/* [in] */ DWORD __RPC_FAR *aIndex,
/* [in] */ DWORD cPoints) = 0;
};
#else /* C style interface */
typedef struct IMediaParamsUICallbackVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IMediaParamsUICallback __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IMediaParamsUICallback __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
IMediaParamsUICallback __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ParamsBeginCapture )(
IMediaParamsUICallback __RPC_FAR * This,
/* [in] */ DWORD __RPC_FAR *aIndex,
/* [in] */ DWORD cPoints);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ParamsChanged )(
IMediaParamsUICallback __RPC_FAR * This,
/* [in] */ DWORD __RPC_FAR *aIndex,
/* [in] */ DWORD cPoints,
/* [in] */ MP_DATA __RPC_FAR *paData);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ParamsEndCapture )(
IMediaParamsUICallback __RPC_FAR * This,
/* [in] */ DWORD __RPC_FAR *aIndex,
/* [in] */ DWORD cPoints);
END_INTERFACE
} IMediaParamsUICallbackVtbl;
interface IMediaParamsUICallback
{
CONST_VTBL struct IMediaParamsUICallbackVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define IMediaParamsUICallback_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IMediaParamsUICallback_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IMediaParamsUICallback_Release(This) \
(This)->lpVtbl -> Release(This)
#define IMediaParamsUICallback_ParamsBeginCapture(This,aIndex,cPoints) \
(This)->lpVtbl -> ParamsBeginCapture(This,aIndex,cPoints)
#define IMediaParamsUICallback_ParamsChanged(This,aIndex,cPoints,paData) \
(This)->lpVtbl -> ParamsChanged(This,aIndex,cPoints,paData)
#define IMediaParamsUICallback_ParamsEndCapture(This,aIndex,cPoints) \
(This)->lpVtbl -> ParamsEndCapture(This,aIndex,cPoints)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE IMediaParamsUICallback_ParamsBeginCapture_Proxy(
IMediaParamsUICallback __RPC_FAR * This,
/* [in] */ DWORD __RPC_FAR *aIndex,
/* [in] */ DWORD cPoints);
void __RPC_STUB IMediaParamsUICallback_ParamsBeginCapture_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMediaParamsUICallback_ParamsChanged_Proxy(
IMediaParamsUICallback __RPC_FAR * This,
/* [in] */ DWORD __RPC_FAR *aIndex,
/* [in] */ DWORD cPoints,
/* [in] */ MP_DATA __RPC_FAR *paData);
void __RPC_STUB IMediaParamsUICallback_ParamsChanged_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMediaParamsUICallback_ParamsEndCapture_Proxy(
IMediaParamsUICallback __RPC_FAR * This,
/* [in] */ DWORD __RPC_FAR *aIndex,
/* [in] */ DWORD cPoints);
void __RPC_STUB IMediaParamsUICallback_ParamsEndCapture_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __IMediaParamsUICallback_INTERFACE_DEFINED__ */
#ifndef __IMediaParamsSetUICallback_INTERFACE_DEFINED__
#define __IMediaParamsSetUICallback_INTERFACE_DEFINED__
/* interface IMediaParamsSetUICallback */
/* [version][uuid][local][object] */
EXTERN_C const IID IID_IMediaParamsSetUICallback;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("F5011136-C416-48b9-8C35-E7C5F9AA6FDF")
IMediaParamsSetUICallback : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE SetUICallback(
/* [in] */ IMediaParamsUICallback __RPC_FAR *pICallback) = 0;
};
#else /* C style interface */
typedef struct IMediaParamsSetUICallbackVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IMediaParamsSetUICallback __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IMediaParamsSetUICallback __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
IMediaParamsSetUICallback __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetUICallback )(
IMediaParamsSetUICallback __RPC_FAR * This,
/* [in] */ IMediaParamsUICallback __RPC_FAR *pICallback);
END_INTERFACE
} IMediaParamsSetUICallbackVtbl;
interface IMediaParamsSetUICallback
{
CONST_VTBL struct IMediaParamsSetUICallbackVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define IMediaParamsSetUICallback_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IMediaParamsSetUICallback_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IMediaParamsSetUICallback_Release(This) \
(This)->lpVtbl -> Release(This)
#define IMediaParamsSetUICallback_SetUICallback(This,pICallback) \
(This)->lpVtbl -> SetUICallback(This,pICallback)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE IMediaParamsSetUICallback_SetUICallback_Proxy(
IMediaParamsSetUICallback __RPC_FAR * This,
/* [in] */ IMediaParamsUICallback __RPC_FAR *pICallback);
void __RPC_STUB IMediaParamsSetUICallback_SetUICallback_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __IMediaParamsSetUICallback_INTERFACE_DEFINED__ */
#ifndef __IMediaParamsCapture_INTERFACE_DEFINED__
#define __IMediaParamsCapture_INTERFACE_DEFINED__
/* interface IMediaParamsCapture */
/* [version][uuid][local][object] */
EXTERN_C const IID IID_IMediaParamsCapture;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("970FED79-6DEB-4ec4-A6EE-F72C6BA545CC")
IMediaParamsCapture : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE ParamCapture(
/* [in] */ DWORD dwIndex,
/* [in] */ REFERENCE_TIME refTimeCapture,
/* [in] */ MP_FLAGS flags) = 0;
virtual HRESULT STDMETHODCALLTYPE ParamRelease(
/* [in] */ DWORD dwIndex,
/* [in] */ REFERENCE_TIME refTimeRelease,
/* [in] */ MP_FLAGS flags) = 0;
};
#else /* C style interface */
typedef struct IMediaParamsCaptureVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IMediaParamsCapture __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IMediaParamsCapture __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
IMediaParamsCapture __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ParamCapture )(
IMediaParamsCapture __RPC_FAR * This,
/* [in] */ DWORD dwIndex,
/* [in] */ REFERENCE_TIME refTimeCapture,
/* [in] */ MP_FLAGS flags);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ParamRelease )(
IMediaParamsCapture __RPC_FAR * This,
/* [in] */ DWORD dwIndex,
/* [in] */ REFERENCE_TIME refTimeRelease,
/* [in] */ MP_FLAGS flags);
END_INTERFACE
} IMediaParamsCaptureVtbl;
interface IMediaParamsCapture
{
CONST_VTBL struct IMediaParamsCaptureVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define IMediaParamsCapture_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IMediaParamsCapture_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IMediaParamsCapture_Release(This) \
(This)->lpVtbl -> Release(This)
#define IMediaParamsCapture_ParamCapture(This,dwIndex,refTimeCapture,flags) \
(This)->lpVtbl -> ParamCapture(This,dwIndex,refTimeCapture,flags)
#define IMediaParamsCapture_ParamRelease(This,dwIndex,refTimeRelease,flags) \
(This)->lpVtbl -> ParamRelease(This,dwIndex,refTimeRelease,flags)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE IMediaParamsCapture_ParamCapture_Proxy(
IMediaParamsCapture __RPC_FAR * This,
/* [in] */ DWORD dwIndex,
/* [in] */ REFERENCE_TIME refTimeCapture,
/* [in] */ MP_FLAGS flags);
void __RPC_STUB IMediaParamsCapture_ParamCapture_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMediaParamsCapture_ParamRelease_Proxy(
IMediaParamsCapture __RPC_FAR * This,
/* [in] */ DWORD dwIndex,
/* [in] */ REFERENCE_TIME refTimeRelease,
/* [in] */ MP_FLAGS flags);
void __RPC_STUB IMediaParamsCapture_ParamRelease_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __IMediaParamsCapture_INTERFACE_DEFINED__ */
#ifndef __CakeMedParam_LIBRARY_DEFINED__
#define __CakeMedParam_LIBRARY_DEFINED__
/* library CakeMedParam */
/* [helpstring][version][uuid] */
EXTERN_C const IID LIBID_CakeMedParam;
#endif /* __CakeMedParam_LIBRARY_DEFINED__ */
/* Additional Prototypes for ALL interfaces */
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,53 @@
/* this file contains the actual definitions of */
/* the IIDs and CLSIDs */
/* link this file in with the server and any clients */
/* File created by MIDL compiler version 5.01.0164 */
/* at Fri May 03 10:13:47 2002
*/
/* Compiler settings for CakeMedParam.idl:
Os (OptLev=s), W1, Zp8, env=Win32, ms_ext, c_ext
error checks: allocation ref bounds_check enum stub_data
*/
//MIDL_FILE_HEADING( )
#ifdef __cplusplus
extern "C"{
#endif
#ifndef __IID_DEFINED__
#define __IID_DEFINED__
typedef struct _IID
{
unsigned long x;
unsigned short s1;
unsigned short s2;
unsigned char c[8];
} IID;
#endif // __IID_DEFINED__
#ifndef CLSID_DEFINED
#define CLSID_DEFINED
typedef IID CLSID;
#endif // CLSID_DEFINED
const IID IID_IMediaParamsUICallback = {0xB8E0480A,0xE08D,0x4a5d,{0x92,0x28,0x24,0x80,0x17,0x03,0x23,0x68}};
const IID IID_IMediaParamsSetUICallback = {0xF5011136,0xC416,0x48b9,{0x8C,0x35,0xE7,0xC5,0xF9,0xAA,0x6F,0xDF}};
const IID IID_IMediaParamsCapture = {0x970FED79,0x6DEB,0x4ec4,{0xA6,0xEE,0xF7,0x2C,0x6B,0xA5,0x45,0xCC}};
const IID LIBID_CakeMedParam = {0xA8F8EF3E,0x4E39,0x49e2,{0x89,0xE7,0x3C,0x91,0x94,0x2C,0xC5,0x7B}};
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,121 @@
#ifndef _DXI_H_
#define _DXI_H_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <DeferZeroFill.h>
// DirectX automation helper
#include "MediaParams.h"
////////////////////////////////////////////////////////////////////////////////
struct AudioBuffer
{
long cSamp; // number of samples in the buffer
long lOffset; // offset into the data to process
IMediaSample* pms; // the raw IMediaSample for this buffer
AudioBuffer() : cSamp(0), lOffset(0), pms(NULL) {}
//----------------------------------------------------------------------------
// Get a pointer to the audio samples, zero-filling if necesssary
float* GetPointer()
{
// Get the raw-pointer
BYTE* pb = NULL;
pms->GetPointer( &pb );
// We cannot defer the zero fill any longer!
if (bZero)
{
IDeferZeroFill* pdzf;
if (SUCCEEDED( pms->QueryInterface( IID_IDeferZeroFill, (void**)&pdzf ) ))
{
// IDeferZeroFill will have taken care of the zero-fill for us, by
// virtue of our calling IMediaSample::GetPointer. Nothing more to do.
pdzf->Release();
}
else
{
// No IDeferZeroFill is available. We must zero-fill the hard way.
memset( pb, 0, cSamp * sizeof(float) );
}
bZero = FALSE;
}
return reinterpret_cast<float*>( pb + lOffset );
}
//----------------------------------------------------------------------------
// Allow buffers to be tagged as being all zeroes, without actually filling
// any data until someone asks for the buffer pointer
BOOL GetZerofill() const { return bZero; }
void SetZerofill( BOOL bZerofill )
{
bZero = bZerofill;
IDeferZeroFill* pdzf;
if (SUCCEEDED( pms->QueryInterface( IID_IDeferZeroFill, (void**)&pdzf ) ))
{
pdzf->put_NeedsZerofill( bZero );
pdzf->Release();
}
}
private:
BOOL bZero;
};
////////////////////////////////////////////////////////////////////////////////
class CDXi : public CCritSec
{
public:
virtual HRESULT Initialize() = 0;
virtual HRESULT IsValidInputFormat( const WAVEFORMATEX* pwfx ) const = 0;
virtual HRESULT IsValidOutputFormat( const WAVEFORMATEX* pwfx ) const = 0;
virtual HRESULT IsValidTransform( const WAVEFORMATEX* pwfxIn, const WAVEFORMATEX* pwfxOut ) const = 0;
virtual HRESULT SuggestOutputFormat( WAVEFORMATEX* pwfx ) const = 0;
virtual const WAVEFORMATEX* GetInputFormat() const { return &m_wfxIn; }
virtual const WAVEFORMATEX* GetOutputFormat() const { return &m_wfxOut; }
virtual HRESULT Process( LONGLONG llSampAudioTimestamp,
AudioBuffer* pbufIn,
AudioBuffer* pbufOut ) = 0;
virtual HRESULT AllocateResources() = 0;
virtual HRESULT FreeResources() = 0;
virtual int PersistGetSize() const = 0;
virtual HRESULT PersistLoad( IStream* pStream ) = 0;
virtual HRESULT PersistSave( IStream* pStream ) = 0;
protected:
WAVEFORMATEX m_wfxIn;
WAVEFORMATEX m_wfxOut;
CMediaParams* m_pMediaParams;
float GetParamValue( DWORD dwParam ) const
{
return m_pMediaParams->GetParamEnvelope( dwParam ).GetCurrentValue();
}
HRESULT GetParamDeltas( DWORD dwParam, double* pdDelta1, double* pdDelta2 ) const
{
return m_pMediaParams->GetParamEnvelope( dwParam ).GetCurrentDeltas( pdDelta1, pdDelta2 );
}
};
////////////////////////////////////////////////////////////////////////////////
#endif //_DXI_H_

View File

@ -0,0 +1,33 @@
// IDeferZeroFill interface exposed a custom memory allocator and media sample.
//
// Copyright (C) 1997- Cakewalk Music Software. All rights reserved.
//
#ifndef _DEFERZEROFILL_H_
#define _DEFERZEROFILL_H_
/////////////////////////////////////////////////////////////////////////////
// Clients that wish to create real copies of the GUID must first include INITGUID.H
// {447DA113-4AC8-4833-849A-2BA285E1E52B}
DEFINE_GUID(IID_IDeferZeroFill,
0x447da113, 0x4ac8, 0x4833, 0x84, 0x9a, 0x2b, 0xa2, 0x85, 0xe1, 0xe5, 0x2b);
#undef INTERFACE
#define INTERFACE IDeferZeroFill
DECLARE_INTERFACE_( IDeferZeroFill, IUnknown )
{
// *** IUnknown methods ***
STDMETHOD_(HRESULT, QueryInterface)( THIS_ REFIID riid, LPVOID* ppvObj ) PURE;
STDMETHOD_(ULONG, AddRef)( THIS ) PURE;
STDMETHOD_(ULONG, Release)( THIS ) PURE;
// *** IDeferZeroFill methods ***
STDMETHOD_(BOOL, get_NeedsZerofill)( THIS ) PURE;
STDMETHOD_(void, put_NeedsZerofill)( THIS_ BOOL bZero ) PURE;
STDMETHOD_(HRESULT, GetRawPointer)( THIS_ BYTE** ppBuffer ) PURE;
};
#endif // _DEFERZEROFILL_H_