winealsa: Minor fixes to ds output

Maarten Lankhorst m.b.lankhorst at gmail.com
Thu Jul 26 18:08:19 CDT 2007


-------------- next part --------------
>From 3cce715d0dc50fa98eb6f183fe26914d84fd65ef Mon Sep 17 00:00:00 2001
From: Maarten Lankhorst <m.b.lankhorst at gmail.com>
Date: Thu, 19 Jul 2007 00:58:23 +0200
Subject: [PATCH] winealsa: Minor tweaks to dsoutput

---
 dlls/winealsa.drv/dsoutput.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/dlls/winealsa.drv/dsoutput.c b/dlls/winealsa.drv/dsoutput.c
index 7990a0f..dbac200 100644
--- a/dlls/winealsa.drv/dsoutput.c
+++ b/dlls/winealsa.drv/dsoutput.c
@@ -157,7 +157,7 @@ static void CheckXRUN(IDsDriverBufferImpl* This)
                 ERR("recovery from suspend failed, prepare failed: %s\n", snd_strerror(err));
         }
     } else if ( state != SND_PCM_STATE_RUNNING ) {
-        WARN("Unhandled state: %d\n", state);
+        FIXME("Unhandled state: %d\n", state);
     }
 }
 
@@ -490,9 +490,12 @@ static HRESULT WINAPI IDsDriverBufferImpl_GetPosition(PIDSDRIVERBUFFER iface,
 
     state = snd_pcm_state(This->pcm);
 
-    if (state != SND_PCM_STATE_RUNNING)
+    if (state != SND_PCM_STATE_PREPARED && state != SND_PCM_STATE_RUNNING)
+    {
         CheckXRUN(This);
-    else
+        state = snd_pcm_state(This->pcm);
+    }
+    if (state == SND_PCM_STATE_RUNNING)
     {
         snd_pcm_uframes_t used = CommitAll(This);
 
-- 
1.4.4.2



More information about the wine-patches mailing list