ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

dmusics.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.