Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygendmusics.h
Go to the documentation of this file.
00001 00002 #ifndef _DMUSICS_ 00003 #define _DMUSICS_ 00004 00005 #include "dmusicc.h" 00006 00007 #define REGSTR_PATH_SOFTWARESYNTHS "Software\\Microsoft\\DirectMusic\\SoftwareSynths" 00008 00009 interface IDirectMusicSynth; 00010 interface IDirectMusicSynthSink; 00011 00012 #ifndef _DMUS_VOICE_STATE_DEFINED 00013 #define _DMUS_VOICE_STATE_DEFINED 00014 00015 00016 DEFINE_GUID(IID_IDirectMusicSynth, 0x9823661, 0x5C85, 0x11D2, 0xAF, 0xA6, 0x00, 0xAA, 0x00, 0x24, 0xD8, 0xB6); 00017 DEFINE_GUID(IID_IDirectMusicSynth8, 0x53CAB625, 0x2711, 0x4C9F, 0x9D, 0xE7, 0x1B, 0x7F, 0x92, 0x5F, 0x6F, 0xC8); 00018 DEFINE_GUID(IID_IDirectMusicSynthSink, 0x09823663, 0x5C85, 0x11D2, 0xAF, 0xA6, 0x00, 0xAA, 0x00, 0x24, 0xD8, 0xB6); 00019 DEFINE_GUID(GUID_DMUS_PROP_SetSynthSink, 0x0A3A5BA5, 0x37B6, 0x11D2, 0xB9, 0xF9, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12); 00020 DEFINE_GUID(GUID_DMUS_PROP_SinkUsesDSound, 0xBE208857, 0x8952, 0x11D2, 0xBA, 0x1C, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12); 00021 00022 #define REFRESH_F_LASTBUFFER 0x00000001 00023 00024 typedef struct _DMUS_VOICE_STATE 00025 { 00026 BOOL bExists; 00027 SAMPLE_POSITION spPosition; 00028 } DMUS_VOICE_STATE; 00029 00030 #endif 00031 00032 #undef INTERFACE 00033 #define INTERFACE IDirectMusicSynth 00034 DECLARE_INTERFACE_(IDirectMusicSynth, IUnknown) 00035 { 00036 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; 00037 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 00038 STDMETHOD_(ULONG,Release) (THIS) PURE; 00039 STDMETHOD(Open) (THIS_ LPDMUS_PORTPARAMS pPortParams) PURE; 00040 STDMETHOD(Close) (THIS) PURE; 00041 STDMETHOD(SetNumChannelGroups) (THIS_ DWORD dwGroups) PURE; 00042 STDMETHOD(Download) (THIS_ LPHANDLE phDownload, LPVOID pvData, LPBOOL pbFree ) PURE; 00043 STDMETHOD(Unload) (THIS_ HANDLE hDownload, HRESULT ( CALLBACK *lpFreeHandle)(HANDLE,HANDLE), HANDLE hUserData ) PURE; 00044 STDMETHOD(PlayBuffer) (THIS_ REFERENCE_TIME rt,LPBYTE pbBuffer, DWORD cbBuffer) PURE; 00045 STDMETHOD(GetRunningStats) (THIS_ LPDMUS_SYNTHSTATS pStats) PURE; 00046 STDMETHOD(GetPortCaps) (THIS_ LPDMUS_PORTCAPS pCaps) PURE; 00047 STDMETHOD(SetMasterClock) (THIS_ IReferenceClock *pClock) PURE; 00048 STDMETHOD(GetLatencyClock) (THIS_ IReferenceClock **ppClock) PURE; 00049 STDMETHOD(Activate) (THIS_ BOOL fEnable) PURE; 00050 STDMETHOD(SetSynthSink) (THIS_ struct IDirectMusicSynthSink *pSynthSink) PURE; 00051 STDMETHOD(Render) (THIS_ short *pBuffer, DWORD dwLength, LONGLONG llPosition) PURE; 00052 STDMETHOD(SetChannelPriority) (THIS_ DWORD dwChannelGroup, DWORD dwChannel, DWORD dwPriority) PURE; 00053 STDMETHOD(GetChannelPriority) (THIS_ DWORD dwChannelGroup, DWORD dwChannel, LPDWORD pdwPriority) PURE; 00054 STDMETHOD(GetFormat) (THIS_ LPWAVEFORMATEX pWaveFormatEx, LPDWORD pdwWaveFormatExSize) PURE; 00055 STDMETHOD(GetAppend) (THIS_ DWORD* pdwAppend) PURE; 00056 }; 00057 #undef INTERFACE 00058 00059 #if !defined(__cplusplus) || defined(CINTERFACE) 00060 #define IDirectMusicSynth_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) 00061 #define IDirectMusicSynth_AddRef(p) (p)->lpVtbl->AddRef(p) 00062 #define IDirectMusicSynth_Release(p) (p)->lpVtbl->Release(p) 00063 #define IDirectMusicSynth_Open(p, a) (p)->lpVtbl->Open(p, a) 00064 #define IDirectMusicSynth_Close(p) (p)->lpVtbl->Close(p) 00065 #define IDirectMusicSynth_SetNumChannelGroups(p, a) (p)->lpVtbl->SetNumChannelGroups(p, a) 00066 #define IDirectMusicSynth_Download(p, a, b, c) (p)->lpVtbl->Download(p, a, b, c) 00067 #define IDirectMusicSynth_Unload(p, a, b, c) (p)->lpVtbl->Unload(p, a, b, c) 00068 #define IDirectMusicSynth_PlayBuffer(p, a, b, c) (p)->lpVtbl->PlayBuffer(p, a, b, c) 00069 #define IDirectMusicSynth_GetRunningStats(p, a) (p)->lpVtbl->GetRunningStats(p, a) 00070 #define IDirectMusicSynth_GetPortCaps(p, a) (p)->lpVtbl->GetPortCaps(p, a) 00071 #define IDirectMusicSynth_SetMasterClock(p, a) (p)->lpVtbl->SetMasterClock((p, a) 00072 #define IDirectMusicSynth_GetLatencyClock(p, a) (p)->lpVtbl->GetLatencyClock(p, a) 00073 #define IDirectMusicSynth_Activate(p, a) (p)->lpVtbl->Activate((p, a) 00074 #define IDirectMusicSynth_SetSynthSink(p, a) (p)->lpVtbl->SetSynthSink(p, a) 00075 #define IDirectMusicSynth_Render(p, a, b, c) (p)->lpVtbl->Render(p, a, b, c) 00076 #define IDirectMusicSynth_SetChannelPriority(p, a, b, c) (p)->lpVtbl->SetChannelPriority(p, a, b, c) 00077 #define IDirectMusicSynth_GetChannelPriority(p, a, b, c) (p)->lpVtbl->GetChannelPriority(p, a, b, c) 00078 #define IDirectMusicSynth_GetFormat(p, a, b) (p)->lpVtbl->GetFormat(p, a, b) 00079 #define IDirectMusicSynth_GetAppend(p, a) (p)->lpVtbl->GetAppend(p, a) 00080 #endif 00081 00082 #define INTERFACE IDirectMusicSynth8 00083 DECLARE_INTERFACE_(IDirectMusicSynth8, IDirectMusicSynth) 00084 { 00085 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; 00086 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 00087 STDMETHOD_(ULONG,Release) (THIS) PURE; 00088 STDMETHOD(Open) (THIS_ LPDMUS_PORTPARAMS pPortParams) PURE; 00089 STDMETHOD(Close) (THIS) PURE; 00090 STDMETHOD(SetNumChannelGroups) (THIS_ DWORD dwGroups) PURE; 00091 STDMETHOD(Download) (THIS_ LPHANDLE phDownload, LPVOID pvData, LPBOOL pbFree ) PURE; 00092 STDMETHOD(Unload) (THIS_ HANDLE hDownload, HRESULT ( CALLBACK *lpFreeHandle)(HANDLE,HANDLE), HANDLE hUserData ) PURE; 00093 STDMETHOD(PlayBuffer) (THIS_ REFERENCE_TIME rt, LPBYTE pbBuffer, DWORD cbBuffer) PURE; 00094 STDMETHOD(GetRunningStats) (THIS_ LPDMUS_SYNTHSTATS pStats) PURE; 00095 STDMETHOD(GetPortCaps) (THIS_ LPDMUS_PORTCAPS pCaps) PURE; 00096 STDMETHOD(SetMasterClock) (THIS_ IReferenceClock *pClock) PURE; 00097 STDMETHOD(GetLatencyClock) (THIS_ IReferenceClock **ppClock) PURE; 00098 STDMETHOD(Activate) (THIS_ BOOL fEnable) PURE; 00099 STDMETHOD(SetSynthSink) (THIS_ struct IDirectMusicSynthSink *pSynthSink) PURE; 00100 STDMETHOD(Render) (THIS_ short *pBuffer, DWORD dwLength, LONGLONG llPosition) PURE; 00101 STDMETHOD(SetChannelPriority) (THIS_ DWORD dwChannelGroup, DWORD dwChannel, DWORD dwPriority) PURE; 00102 STDMETHOD(GetChannelPriority) (THIS_ DWORD dwChannelGroup, DWORD dwChannel, LPDWORD pdwPriority) PURE; 00103 STDMETHOD(GetFormat) (THIS_ LPWAVEFORMATEX pWaveFormatEx, LPDWORD pdwWaveFormatExSize) PURE; 00104 STDMETHOD(GetAppend) (THIS_ DWORD* pdwAppend) PURE; 00105 STDMETHOD(PlayVoice) (THIS_ REFERENCE_TIME rt, DWORD dwVoiceId, DWORD dwChannelGroup, DWORD dwChannel, DWORD dwDLId, long prPitch, long vrVolume, SAMPLE_TIME stVoiceStart, SAMPLE_TIME stLoopStart, SAMPLE_TIME stLoopEnd) PURE; 00106 STDMETHOD(StopVoice) (THIS_ REFERENCE_TIME rt, DWORD dwVoiceId ) PURE; 00107 STDMETHOD(GetVoiceState) (THIS_ DWORD dwVoice[], DWORD cbVoice, DMUS_VOICE_STATE dwVoiceState[] ) PURE; 00108 STDMETHOD(Refresh) (THIS_ DWORD dwDownloadID, DWORD dwFlags) PURE; 00109 STDMETHOD(AssignChannelToBuses) (THIS_ DWORD dwChannelGroup, DWORD dwChannel, LPDWORD pdwBuses, DWORD cBuses) PURE; 00110 }; 00111 #undef INTERFACE 00112 00113 #if !defined(__cplusplus) || defined(CINTERFACE) 00114 #define IDirectMusicSynth8_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) 00115 #define IDirectMusicSynth8_AddRef(p) (p)->lpVtbl->AddRef(p) 00116 #define IDirectMusicSynth8_Release(p) (p)->lpVtbl->Release(p) 00117 #define IDirectMusicSynth8_Open(p, a) (p)->lpVtbl->Open(p, a) 00118 #define IDirectMusicSynth8_Close(p) (p)->lpVtbl->Close(p) 00119 #define IDirectMusicSynth8_SetNumChannelGroups(p, a) (p)->lpVtbl->SetNumChannelGroups(p, a) 00120 #define IDirectMusicSynth8_Download(p, a, b, c) (p)->lpVtbl->Download(p, a, b, c) 00121 #define IDirectMusicSynth8_Unload(p, a, b, c) (p)->lpVtbl->Unload(p, a, b, c) 00122 #define IDirectMusicSynth8_PlayBuffer(p, a, b, c) (p)->lpVtbl->PlayBuffer(p, a, b, c) 00123 #define IDirectMusicSynth8_GetRunningStats(p, a) (p)->lpVtbl->GetRunningStats(p, a) 00124 #define IDirectMusicSynth8_GetPortCaps(p, a) (p)->lpVtbl->GetPortCaps(p, a) 00125 #define IDirectMusicSynth8_SetMasterClock(p, a) (p)->lpVtbl->SetMasterClock((p, a) 00126 #define IDirectMusicSynth8_GetLatencyClock(p, a) (p)->lpVtbl->GetLatencyClock(p, a) 00127 #define IDirectMusicSynth8_Activate(p, a) (p)->lpVtbl->Activate((p, a) 00128 #define IDirectMusicSynth8_SetSynthSink(p, a) (p)->lpVtbl->SetSynthSink(p, a) 00129 #define IDirectMusicSynth8_Render(p, a, b, c) (p)->lpVtbl->Render(p, a, b, c) 00130 #define IDirectMusicSynth8_SetChannelPriority(p, a, b, c) (p)->lpVtbl->SetChannelPriority(p, a, b, c) 00131 #define IDirectMusicSynth8_GetChannelPriority(p, a, b, c) (p)->lpVtbl->GetChannelPriority(p, a, b, c) 00132 #define IDirectMusicSynth8_GetFormat(p, a, b) (p)->lpVtbl->GetFormat(p, a, b) 00133 #define IDirectMusicSynth8_GetAppend(p, a) (p)->lpVtbl->GetAppend(p, a) 00134 #define IDirectMusicSynth8_PlayVoice(p, a, b, c, d, e, f, g, h, i, j) (p)->lpVtbl->PlayVoice(p, a, b, c, d, e, f, g, h, i, j) 00135 #define IDirectMusicSynth8_StopVoice(p, a, b) (p)->lpVtbl->StopVoice(p, a, b) 00136 #define IDirectMusicSynth8_GetVoiceState(p, a, b, c) (p)->lpVtbl->GetVoiceState(p, a, b, c) 00137 #define IDirectMusicSynth8_Refresh(p, a, b) (p)->lpVtbl->Refresh(p, a, b) 00138 #define IDirectMusicSynth8_AssignChannelToBuses(p, a, b, c, d) (p)->lpVtbl->AssignChannelToBuses(p, a, b, c, d) 00139 #endif 00140 00141 #define INTERFACE IDirectMusicSynthSink 00142 DECLARE_INTERFACE_(IDirectMusicSynthSink, IUnknown) 00143 { 00144 STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE; 00145 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 00146 STDMETHOD_(ULONG,Release) (THIS) PURE; 00147 STDMETHOD(Init) (THIS_ IDirectMusicSynth *pSynth) PURE; 00148 STDMETHOD(SetMasterClock) (THIS_ IReferenceClock *pClock) PURE; 00149 STDMETHOD(GetLatencyClock) (THIS_ IReferenceClock **ppClock) PURE; 00150 STDMETHOD(Activate) (THIS_ BOOL fEnable) PURE; 00151 STDMETHOD(SampleToRefTime) (THIS_ LONGLONG llSampleTime, REFERENCE_TIME *prfTime) PURE; 00152 STDMETHOD(RefTimeToSample) (THIS_ REFERENCE_TIME rfTime, LONGLONG *pllSampleTime) PURE; 00153 STDMETHOD(SetDirectSound) (THIS_ LPDIRECTSOUND pDirectSound, LPDIRECTSOUNDBUFFER pDirectSoundBuffer) PURE; 00154 STDMETHOD(GetDesiredBufferSize) (THIS_ LPDWORD pdwBufferSizeInSamples) PURE; 00155 }; 00156 00157 #endif Generated on Sat May 26 2012 04:29:21 for ReactOS by
1.7.6.1
|