Andrew Eikum : winecoreaudio.drv: Move IAudioClock closer to its related interfaces.
Alexandre Julliard
julliard at winehq.org
Mon May 9 13:34:45 CDT 2011
Module: wine
Branch: master
Commit: 5f4081e1f203154a013fa124e729a4c4bec6b423
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5f4081e1f203154a013fa124e729a4c4bec6b423
Author: Andrew Eikum <aeikum at codeweavers.com>
Date: Fri May 6 10:34:29 2011 -0500
winecoreaudio.drv: Move IAudioClock closer to its related interfaces.
---
dlls/winecoreaudio.drv/mmdevdrv.c | 326 ++++++++++++++++++------------------
1 files changed, 163 insertions(+), 163 deletions(-)
diff --git a/dlls/winecoreaudio.drv/mmdevdrv.c b/dlls/winecoreaudio.drv/mmdevdrv.c
index fa4d107..503b983 100644
--- a/dlls/winecoreaudio.drv/mmdevdrv.c
+++ b/dlls/winecoreaudio.drv/mmdevdrv.c
@@ -1756,6 +1756,169 @@ static const IAudioCaptureClientVtbl AudioCaptureClient_Vtbl =
AudioCaptureClient_GetNextPacketSize
};
+static HRESULT WINAPI AudioClock_QueryInterface(IAudioClock *iface,
+ REFIID riid, void **ppv)
+{
+ ACImpl *This = impl_from_IAudioClock(iface);
+
+ TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv);
+
+ if(!ppv)
+ return E_POINTER;
+ *ppv = NULL;
+
+ if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAudioClock))
+ *ppv = iface;
+ else if(IsEqualIID(riid, &IID_IAudioClock2))
+ *ppv = &This->IAudioClock2_iface;
+ if(*ppv){
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
+ }
+
+ WARN("Unknown interface %s\n", debugstr_guid(riid));
+ return E_NOINTERFACE;
+}
+
+static ULONG WINAPI AudioClock_AddRef(IAudioClock *iface)
+{
+ ACImpl *This = impl_from_IAudioClock(iface);
+ return IAudioClient_AddRef(&This->IAudioClient_iface);
+}
+
+static ULONG WINAPI AudioClock_Release(IAudioClock *iface)
+{
+ ACImpl *This = impl_from_IAudioClock(iface);
+ return IAudioClient_Release(&This->IAudioClient_iface);
+}
+
+static HRESULT WINAPI AudioClock_GetFrequency(IAudioClock *iface, UINT64 *freq)
+{
+ ACImpl *This = impl_from_IAudioClock(iface);
+
+ TRACE("(%p)->(%p)\n", This, freq);
+
+ *freq = This->fmt->nSamplesPerSec;
+
+ return S_OK;
+}
+
+static HRESULT AudioClock_GetPosition_nolock(ACImpl *This,
+ UINT64 *pos, UINT64 *qpctime, BOOL raw)
+{
+ AudioTimeStamp time;
+ OSStatus sc;
+
+ sc = AudioQueueGetCurrentTime(This->aqueue, NULL, &time, NULL);
+ if(sc == kAudioQueueErr_InvalidRunState){
+ *pos = 0;
+ }else if(sc == noErr){
+ if(!(time.mFlags & kAudioTimeStampSampleTimeValid)){
+ FIXME("Sample time not valid, should calculate from something else\n");
+ return E_FAIL;
+ }
+
+ if(raw)
+ *pos = time.mSampleTime;
+ else
+ *pos = time.mSampleTime - This->last_time;
+ }else{
+ WARN("Unable to get current time: %lx\n", sc);
+ return E_FAIL;
+ }
+
+ if(qpctime){
+ LARGE_INTEGER stamp, freq;
+ QueryPerformanceCounter(&stamp);
+ QueryPerformanceFrequency(&freq);
+ *qpctime = (stamp.QuadPart * (INT64)10000000) / freq.QuadPart;
+ }
+
+ return S_OK;
+}
+
+static HRESULT WINAPI AudioClock_GetPosition(IAudioClock *iface, UINT64 *pos,
+ UINT64 *qpctime)
+{
+ ACImpl *This = impl_from_IAudioClock(iface);
+ HRESULT hr;
+
+ TRACE("(%p)->(%p, %p)\n", This, pos, qpctime);
+
+ if(!pos)
+ return E_POINTER;
+
+ OSSpinLockLock(&This->lock);
+
+ hr = AudioClock_GetPosition_nolock(This, pos, qpctime, FALSE);
+
+ OSSpinLockUnlock(&This->lock);
+
+ return hr;
+}
+
+static HRESULT WINAPI AudioClock_GetCharacteristics(IAudioClock *iface,
+ DWORD *chars)
+{
+ ACImpl *This = impl_from_IAudioClock(iface);
+
+ TRACE("(%p)->(%p)\n", This, chars);
+
+ if(!chars)
+ return E_POINTER;
+
+ *chars = AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ;
+
+ return S_OK;
+}
+
+static const IAudioClockVtbl AudioClock_Vtbl =
+{
+ AudioClock_QueryInterface,
+ AudioClock_AddRef,
+ AudioClock_Release,
+ AudioClock_GetFrequency,
+ AudioClock_GetPosition,
+ AudioClock_GetCharacteristics
+};
+
+static HRESULT WINAPI AudioClock2_QueryInterface(IAudioClock2 *iface,
+ REFIID riid, void **ppv)
+{
+ ACImpl *This = impl_from_IAudioClock2(iface);
+ return IAudioClock_QueryInterface(&This->IAudioClock_iface, riid, ppv);
+}
+
+static ULONG WINAPI AudioClock2_AddRef(IAudioClock2 *iface)
+{
+ ACImpl *This = impl_from_IAudioClock2(iface);
+ return IAudioClient_AddRef(&This->IAudioClient_iface);
+}
+
+static ULONG WINAPI AudioClock2_Release(IAudioClock2 *iface)
+{
+ ACImpl *This = impl_from_IAudioClock2(iface);
+ return IAudioClient_Release(&This->IAudioClient_iface);
+}
+
+static HRESULT WINAPI AudioClock2_GetDevicePosition(IAudioClock2 *iface,
+ UINT64 *pos, UINT64 *qpctime)
+{
+ ACImpl *This = impl_from_IAudioClock2(iface);
+
+ FIXME("(%p)->(%p, %p)\n", This, pos, qpctime);
+
+ return E_NOTIMPL;
+}
+
+static const IAudioClock2Vtbl AudioClock2_Vtbl =
+{
+ AudioClock2_QueryInterface,
+ AudioClock2_AddRef,
+ AudioClock2_Release,
+ AudioClock2_GetDevicePosition
+};
+
static AudioSessionWrapper *AudioSessionWrapper_Create(ACImpl *client)
{
AudioSessionWrapper *ret;
@@ -2099,166 +2262,3 @@ static const ISimpleAudioVolumeVtbl SimpleAudioVolume_Vtbl =
SimpleAudioVolume_SetMute,
SimpleAudioVolume_GetMute
};
-
-static HRESULT WINAPI AudioClock_QueryInterface(IAudioClock *iface,
- REFIID riid, void **ppv)
-{
- ACImpl *This = impl_from_IAudioClock(iface);
-
- TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv);
-
- if(!ppv)
- return E_POINTER;
- *ppv = NULL;
-
- if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAudioClock))
- *ppv = iface;
- else if(IsEqualIID(riid, &IID_IAudioClock2))
- *ppv = &This->IAudioClock2_iface;
- if(*ppv){
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
- }
-
- WARN("Unknown interface %s\n", debugstr_guid(riid));
- return E_NOINTERFACE;
-}
-
-static ULONG WINAPI AudioClock_AddRef(IAudioClock *iface)
-{
- ACImpl *This = impl_from_IAudioClock(iface);
- return IAudioClient_AddRef(&This->IAudioClient_iface);
-}
-
-static ULONG WINAPI AudioClock_Release(IAudioClock *iface)
-{
- ACImpl *This = impl_from_IAudioClock(iface);
- return IAudioClient_Release(&This->IAudioClient_iface);
-}
-
-static HRESULT WINAPI AudioClock_GetFrequency(IAudioClock *iface, UINT64 *freq)
-{
- ACImpl *This = impl_from_IAudioClock(iface);
-
- TRACE("(%p)->(%p)\n", This, freq);
-
- *freq = This->fmt->nSamplesPerSec;
-
- return S_OK;
-}
-
-static HRESULT AudioClock_GetPosition_nolock(ACImpl *This,
- UINT64 *pos, UINT64 *qpctime, BOOL raw)
-{
- AudioTimeStamp time;
- OSStatus sc;
-
- sc = AudioQueueGetCurrentTime(This->aqueue, NULL, &time, NULL);
- if(sc == kAudioQueueErr_InvalidRunState){
- *pos = 0;
- }else if(sc == noErr){
- if(!(time.mFlags & kAudioTimeStampSampleTimeValid)){
- FIXME("Sample time not valid, should calculate from something else\n");
- return E_FAIL;
- }
-
- if(raw)
- *pos = time.mSampleTime;
- else
- *pos = time.mSampleTime - This->last_time;
- }else{
- WARN("Unable to get current time: %lx\n", sc);
- return E_FAIL;
- }
-
- if(qpctime){
- LARGE_INTEGER stamp, freq;
- QueryPerformanceCounter(&stamp);
- QueryPerformanceFrequency(&freq);
- *qpctime = (stamp.QuadPart * (INT64)10000000) / freq.QuadPart;
- }
-
- return S_OK;
-}
-
-static HRESULT WINAPI AudioClock_GetPosition(IAudioClock *iface, UINT64 *pos,
- UINT64 *qpctime)
-{
- ACImpl *This = impl_from_IAudioClock(iface);
- HRESULT hr;
-
- TRACE("(%p)->(%p, %p)\n", This, pos, qpctime);
-
- if(!pos)
- return E_POINTER;
-
- OSSpinLockLock(&This->lock);
-
- hr = AudioClock_GetPosition_nolock(This, pos, qpctime, FALSE);
-
- OSSpinLockUnlock(&This->lock);
-
- return hr;
-}
-
-static HRESULT WINAPI AudioClock_GetCharacteristics(IAudioClock *iface,
- DWORD *chars)
-{
- ACImpl *This = impl_from_IAudioClock(iface);
-
- TRACE("(%p)->(%p)\n", This, chars);
-
- if(!chars)
- return E_POINTER;
-
- *chars = AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ;
-
- return S_OK;
-}
-
-static const IAudioClockVtbl AudioClock_Vtbl =
-{
- AudioClock_QueryInterface,
- AudioClock_AddRef,
- AudioClock_Release,
- AudioClock_GetFrequency,
- AudioClock_GetPosition,
- AudioClock_GetCharacteristics
-};
-
-static HRESULT WINAPI AudioClock2_QueryInterface(IAudioClock2 *iface,
- REFIID riid, void **ppv)
-{
- ACImpl *This = impl_from_IAudioClock2(iface);
- return IAudioClock_QueryInterface(&This->IAudioClock_iface, riid, ppv);
-}
-
-static ULONG WINAPI AudioClock2_AddRef(IAudioClock2 *iface)
-{
- ACImpl *This = impl_from_IAudioClock2(iface);
- return IAudioClient_AddRef(&This->IAudioClient_iface);
-}
-
-static ULONG WINAPI AudioClock2_Release(IAudioClock2 *iface)
-{
- ACImpl *This = impl_from_IAudioClock2(iface);
- return IAudioClient_Release(&This->IAudioClient_iface);
-}
-
-static HRESULT WINAPI AudioClock2_GetDevicePosition(IAudioClock2 *iface,
- UINT64 *pos, UINT64 *qpctime)
-{
- ACImpl *This = impl_from_IAudioClock2(iface);
-
- FIXME("(%p)->(%p, %p)\n", This, pos, qpctime);
-
- return E_NOTIMPL;
-}
-
-static const IAudioClock2Vtbl AudioClock2_Vtbl =
-{
- AudioClock2_QueryInterface,
- AudioClock2_AddRef,
- AudioClock2_Release,
- AudioClock2_GetDevicePosition
-};
More information about the wine-cvs
mailing list