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

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

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