/* DS */ #include #include "windows.h" #include "interfaces.h" #include "mmsystem.h" #include "dsound.h" HRESULT WINAPI DirectSoundEnumerate32A(LPDSENUMCALLBACK32A enumcb,LPVOID context) { return 0; } static HRESULT WINAPI IDirectSoundBuffer_SetFormat( LPDIRECTSOUNDBUFFER this,LPWAVEFORMATEX wfex ) { fprintf(stderr,"IDirectSoundBuffer(%p)->SetFormat(%p),stub!\n",this,wfex); return 0; } static HRESULT WINAPI IDirectSoundBuffer_SetVolume( LPDIRECTSOUNDBUFFER this,LONG vol ) { fprintf(stderr,"IDirectSoundBuffer(%p)->SetVolume(%08lx),stub!\n",this,vol); return 0; } static HRESULT WINAPI IDirectSoundBuffer_GetVolume( LPDIRECTSOUNDBUFFER this,LPLONG vol ) { fprintf(stderr,"IDirectSoundBuffer(%p)->GetVolume(%p),stub!\n",this,vol); *vol = 100; return 0; } static HRESULT WINAPI IDirectSoundBuffer_SetFrequency( LPDIRECTSOUNDBUFFER this,DWORD freq ) { fprintf(stderr,"IDirectSoundBuffer(%p)->SetFrequency(%08lx),stub!\n",this,freq); return 0; } static HRESULT WINAPI IDirectSoundBuffer_Play( LPDIRECTSOUNDBUFFER this,DWORD x,DWORD y,DWORD z ) { fprintf(stderr,"IDirectSoundBuffer(%p)->Play(%08lx,%08lx,%08lx),stub!\n", this,x,y,z ); return 0; } static HRESULT WINAPI IDirectSoundBuffer_Stop(LPDIRECTSOUNDBUFFER this) { fprintf(stderr,"IDirectSoundBuffer(%p)->Stop()\n",this); return 0; } static DWORD WINAPI IDirectSoundBuffer_AddRef(LPDIRECTSOUNDBUFFER this) { fprintf(stderr,"IDirectSoundBuffer(%p)->AddRef()\n",this); return ++(this->ref); } static DWORD WINAPI IDirectSoundBuffer_Release(LPDIRECTSOUNDBUFFER this) { fprintf(stderr,"IDirectSoundBuffer(%p)->Release(),stub!\n",this); if (--this->ref) return this->ref; fprintf(stderr," -> IDirectSoundBuffer(%p) freed.\n",this); HeapFree(GetProcessHeap(),0,this); return 0; } static HRESULT WINAPI IDirectSoundBuffer_GetCurrentPosition( LPDIRECTSOUNDBUFFER this,LPDWORD playpos,LPDWORD writepos ) { fprintf(stderr,"IDirectSoundBuffer(%p)->GetCurrentPosition(%p,%p),stub!\n",this,playpos,writepos); return 0; } static HRESULT WINAPI IDirectSoundBuffer_GetStatus( LPDIRECTSOUNDBUFFER this,LPDWORD status ) { fprintf(stderr,"IDirectSoundBuffer(%p)->GetStatus(%p),stub!\n",this,status); *status = 0; /* hmm. set playing? or not ? */ return 0; } static HRESULT WINAPI IDirectSoundBuffer_Lock( LPDIRECTSOUNDBUFFER this,DWORD x1,DWORD x2,LPVOID p1,LPDWORD x3,LPVOID p2,LPDWORD x4,DWORD x5 ) { fprintf(stderr,"IDirectSoundBuffer(%p)->Lock(0x%08lx,0x%08lx,%p,%p,%p,%p,0x%08lx,),stub!\n",this,x1,x2,p1,x3,p2,x4,x5); return 0x80000000; } static struct tagLPDIRECTSOUNDBUFFER_VTABLE dsbvt = { (void *)1, IDirectSoundBuffer_AddRef, IDirectSoundBuffer_Release, (void *)4, IDirectSoundBuffer_GetCurrentPosition, (void *)6, IDirectSoundBuffer_GetVolume, (void *)8, (void *)9, IDirectSoundBuffer_GetStatus, (void *)11, IDirectSoundBuffer_Lock, IDirectSoundBuffer_Play, (void *)14, IDirectSoundBuffer_SetFormat, IDirectSoundBuffer_SetVolume, (void *)17, IDirectSoundBuffer_SetFrequency, IDirectSoundBuffer_Stop, (void *)20 }; static HRESULT WINAPI IDirectSound_SetCooperativeLevel( LPDIRECTSOUND this,HWND32 hwnd,DWORD level ) { fprintf(stderr,"IDirectSound(%p)->SetCooperativeLevel(%08lx,%ld),stub!\n", this,(DWORD)hwnd,level ); return 0; } static HRESULT WINAPI IDirectSound_CreateSoundBuffer( LPDIRECTSOUND this,LPDSBUFFERDESC dsbd,LPLPDIRECTSOUNDBUFFER ppdsb,LPUNKNOWN lpunk ) { fprintf(stderr,"IDirectSound(%p)->CreateBuffer(%p,%p,%p),stub!\n",this,dsbd,ppdsb,lpunk); *ppdsb = (LPDIRECTSOUNDBUFFER)HeapAlloc(GetProcessHeap(),0,sizeof(IDirectSoundBuffer)); (*ppdsb)->ref =1; (*ppdsb)->lpvtbl = &dsbvt; return 0; } static HRESULT WINAPI IDirectSound_GetCaps(LPDIRECTSOUND this,LPDSCAPS dscaps) { fprintf(stderr,"IDirectSound(%p)->GetCaps(%p),stub!\n",this,dscaps); return 0; } static ULONG WINAPI IDirectSound_AddRef(LPDIRECTSOUND this) { fprintf(stderr,"IDirectSound(%p)->AddRef()\n",this); return ++(this->ref); } static ULONG WINAPI IDirectSound_Release(LPDIRECTSOUND this) { fprintf(stderr,"IDirectSound(%p)->Release()\n",this); if (!--(this->ref)) { HeapFree(GetProcessHeap(),0,this); return 0; } return this->ref; } static struct tagLPDIRECTSOUND_VTABLE dsvt = { (void *)1, IDirectSound_AddRef, IDirectSound_Release, IDirectSound_CreateSoundBuffer, IDirectSound_GetCaps, (void *)6, IDirectSound_SetCooperativeLevel, (void *)8, (void *)9, (void *)10, (void *)11 }; HRESULT WINAPI DirectSoundCreate(LPGUID lpGUID,LPDIRECTSOUND *ppDS,IUnknown *pUnkOuter ) { fprintf(stderr,"DirectSoundCreate(%p,%p,%p)\n",lpGUID,ppDS,pUnkOuter); *ppDS = (LPDIRECTSOUND)HeapAlloc(GetProcessHeap(),0,sizeof(IDirectSound)); (*ppDS)->ref = 1; (*ppDS)->lpvtbl = &dsvt; return 0; }