Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenbuffer.c
Go to the documentation of this file.
00001 /* IDirectMusicBuffer Implementation 00002 * 00003 * Copyright (C) 2003-2004 Rok Mandeljc 00004 * 00005 * This program is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU Lesser General Public 00007 * License as published by the Free Software Foundation; either 00008 * version 2.1 of the License, or (at your option) any later version. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Lesser General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Lesser General Public 00016 * License along with this program; if not, write to the Free Software 00017 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00018 */ 00019 00020 #include "dmusic_private.h" 00021 00022 WINE_DEFAULT_DEBUG_CHANNEL(dmusic); 00023 00024 /* IDirectMusicBufferImpl IUnknown part: */ 00025 static HRESULT WINAPI IDirectMusicBufferImpl_QueryInterface (LPDIRECTMUSICBUFFER iface, REFIID riid, LPVOID *ppobj) { 00026 IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface; 00027 TRACE("(%p, (%s, %p)\n",This,debugstr_dmguid(riid),ppobj); 00028 if (IsEqualIID (riid, &IID_IUnknown) 00029 || IsEqualIID (riid, &IID_IDirectMusicBuffer)) { 00030 IUnknown_AddRef(iface); 00031 *ppobj = This; 00032 return S_OK; 00033 } 00034 WARN("(%p, (%s, %p): not found\n",This,debugstr_dmguid(riid),ppobj); 00035 return E_NOINTERFACE; 00036 } 00037 00038 static ULONG WINAPI IDirectMusicBufferImpl_AddRef (LPDIRECTMUSICBUFFER iface) { 00039 IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface; 00040 ULONG refCount = InterlockedIncrement(&This->ref); 00041 00042 TRACE("(%p)->(ref before=%u)\n", This, refCount - 1); 00043 00044 DMUSIC_LockModule(); 00045 00046 return refCount; 00047 } 00048 00049 static ULONG WINAPI IDirectMusicBufferImpl_Release (LPDIRECTMUSICBUFFER iface) { 00050 IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface; 00051 ULONG refCount = InterlockedDecrement(&This->ref); 00052 00053 TRACE("(%p)->(ref before=%u)\n", This, refCount + 1); 00054 00055 if (!refCount) { 00056 HeapFree(GetProcessHeap(), 0, This); 00057 } 00058 00059 DMUSIC_UnlockModule(); 00060 00061 return refCount; 00062 } 00063 00064 /* IDirectMusicBufferImpl IDirectMusicBuffer part: */ 00065 static HRESULT WINAPI IDirectMusicBufferImpl_Flush (LPDIRECTMUSICBUFFER iface) { 00066 IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface; 00067 FIXME("(%p): stub\n", This); 00068 return S_OK; 00069 } 00070 00071 static HRESULT WINAPI IDirectMusicBufferImpl_TotalTime (LPDIRECTMUSICBUFFER iface, LPREFERENCE_TIME prtTime) { 00072 IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface; 00073 FIXME("(%p, %p): stub\n", This, prtTime); 00074 return S_OK; 00075 } 00076 00077 static HRESULT WINAPI IDirectMusicBufferImpl_PackStructured (LPDIRECTMUSICBUFFER iface, REFERENCE_TIME rt, DWORD dwChannelGroup, DWORD dwChannelMessage) { 00078 IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface; 00079 FIXME("(%p, 0x%s, %d, %d): stub\n", This, wine_dbgstr_longlong(rt), dwChannelGroup, dwChannelMessage); 00080 return S_OK; 00081 } 00082 00083 static HRESULT WINAPI IDirectMusicBufferImpl_PackUnstructured (LPDIRECTMUSICBUFFER iface, REFERENCE_TIME rt, DWORD dwChannelGroup, DWORD cb, LPBYTE lpb) { 00084 IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface; 00085 FIXME("(%p, 0x%s, %d, %d, %p): stub\n", This, wine_dbgstr_longlong(rt), dwChannelGroup, cb, lpb); 00086 return S_OK; 00087 } 00088 00089 static HRESULT WINAPI IDirectMusicBufferImpl_ResetReadPtr (LPDIRECTMUSICBUFFER iface) { 00090 IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface; 00091 FIXME("(%p): stub\n", This); 00092 return S_OK; 00093 } 00094 00095 static HRESULT WINAPI IDirectMusicBufferImpl_GetNextEvent (LPDIRECTMUSICBUFFER iface, LPREFERENCE_TIME prt, LPDWORD pdwChannelGroup, LPDWORD pdwLength, LPBYTE* ppData) { 00096 IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface; 00097 FIXME("(%p, %p, %p, %p, %p): stub\n", This, prt, pdwChannelGroup, pdwLength, ppData); 00098 return S_OK; 00099 } 00100 00101 static HRESULT WINAPI IDirectMusicBufferImpl_GetRawBufferPtr (LPDIRECTMUSICBUFFER iface, LPBYTE* ppData) { 00102 IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface; 00103 FIXME("(%p, %p): stub\n", This, ppData); 00104 return S_OK; 00105 } 00106 00107 static HRESULT WINAPI IDirectMusicBufferImpl_GetStartTime (LPDIRECTMUSICBUFFER iface, LPREFERENCE_TIME prt) { 00108 IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface; 00109 FIXME("(%p, %p): stub\n", This, prt); 00110 return S_OK; 00111 } 00112 00113 static HRESULT WINAPI IDirectMusicBufferImpl_GetUsedBytes (LPDIRECTMUSICBUFFER iface, LPDWORD pcb) { 00114 IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface; 00115 FIXME("(%p, %p): stub\n", This, pcb); 00116 return S_OK; 00117 } 00118 00119 static HRESULT WINAPI IDirectMusicBufferImpl_GetMaxBytes (LPDIRECTMUSICBUFFER iface, LPDWORD pcb) { 00120 IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface; 00121 FIXME("(%p, %p): stub\n", This, pcb); 00122 return S_OK; 00123 } 00124 00125 static HRESULT WINAPI IDirectMusicBufferImpl_GetBufferFormat (LPDIRECTMUSICBUFFER iface, LPGUID pGuidFormat) { 00126 IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface; 00127 FIXME("(%p, %p): stub\n", This, pGuidFormat); 00128 return S_OK; 00129 } 00130 00131 static HRESULT WINAPI IDirectMusicBufferImpl_SetStartTime (LPDIRECTMUSICBUFFER iface, REFERENCE_TIME rt) { 00132 IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface; 00133 FIXME("(%p, 0x%s): stub\n", This, wine_dbgstr_longlong(rt)); 00134 return S_OK; 00135 } 00136 00137 static HRESULT WINAPI IDirectMusicBufferImpl_SetUsedBytes (LPDIRECTMUSICBUFFER iface, DWORD cb) { 00138 IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface; 00139 FIXME("(%p, %d): stub\n", This, cb); 00140 return S_OK; 00141 } 00142 00143 static const IDirectMusicBufferVtbl DirectMusicBuffer_Vtbl = { 00144 IDirectMusicBufferImpl_QueryInterface, 00145 IDirectMusicBufferImpl_AddRef, 00146 IDirectMusicBufferImpl_Release, 00147 IDirectMusicBufferImpl_Flush, 00148 IDirectMusicBufferImpl_TotalTime, 00149 IDirectMusicBufferImpl_PackStructured, 00150 IDirectMusicBufferImpl_PackUnstructured, 00151 IDirectMusicBufferImpl_ResetReadPtr, 00152 IDirectMusicBufferImpl_GetNextEvent, 00153 IDirectMusicBufferImpl_GetRawBufferPtr, 00154 IDirectMusicBufferImpl_GetStartTime, 00155 IDirectMusicBufferImpl_GetUsedBytes, 00156 IDirectMusicBufferImpl_GetMaxBytes, 00157 IDirectMusicBufferImpl_GetBufferFormat, 00158 IDirectMusicBufferImpl_SetStartTime, 00159 IDirectMusicBufferImpl_SetUsedBytes 00160 }; 00161 00162 /* for ClassFactory */ 00163 HRESULT WINAPI DMUSIC_CreateDirectMusicBufferImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter) { 00164 IDirectMusicBufferImpl* dmbuff; 00165 00166 dmbuff = HeapAlloc (GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicBufferImpl)); 00167 if (NULL == dmbuff) { 00168 *ppobj = NULL; 00169 return E_OUTOFMEMORY; 00170 } 00171 dmbuff->lpVtbl = &DirectMusicBuffer_Vtbl; 00172 dmbuff->ref = 0; /* will be inited by QueryInterface */ 00173 00174 return IDirectMusicBufferImpl_QueryInterface ((LPDIRECTMUSICBUFFER)dmbuff, lpcGUID, ppobj); 00175 } Generated on Sat May 26 2012 04:20:05 for ReactOS by
1.7.6.1
|