OSDN Git Service

Added missing sync_ptr() call to pcm_status() function
authorJaroslav Kysela <perex@perex.cz>
Sat, 19 Apr 2003 13:12:59 +0000 (13:12 +0000)
committerJaroslav Kysela <perex@perex.cz>
Sat, 19 Apr 2003 13:12:59 +0000 (13:12 +0000)
src/pcm/pcm_dmix.c
src/pcm/pcm_dshare.c
src/pcm/pcm_dsnoop.c

index 2188659..3d381e2 100644 (file)
@@ -545,6 +545,14 @@ static int snd_pcm_dmix_status(snd_pcm_t *pcm, snd_pcm_status_t * status)
 {
        snd_pcm_direct_t *dmix = pcm->private_data;
 
+       switch (dmix->state) {
+       case SNDRV_PCM_STATE_DRAINING:
+       case SNDRV_PCM_STATE_RUNNING:
+               snd_pcm_dmix_sync_ptr(pcm);
+               break;
+       default:
+               break;
+       }
        memset(status, 0, sizeof(*status));
        status->state = dmix->state;
        status->trigger_tstamp = dmix->trigger_tstamp;
index 0dfa303..54752ce 100644 (file)
@@ -339,6 +339,14 @@ static int snd_pcm_dshare_status(snd_pcm_t *pcm, snd_pcm_status_t * status)
 {
        snd_pcm_direct_t *dshare = pcm->private_data;
 
+       switch (dshare->state) {
+       case SNDRV_PCM_STATE_DRAINING:
+       case SNDRV_PCM_STATE_RUNNING:
+               snd_pcm_dshare_sync_ptr(pcm);
+               break;
+       default:
+               break;
+       }
        memset(status, 0, sizeof(*status));
        status->state = dshare->state;
        status->trigger_tstamp = dshare->trigger_tstamp;
@@ -360,7 +368,7 @@ static int snd_pcm_dshare_delay(snd_pcm_t *pcm, snd_pcm_sframes_t *delayp)
        snd_pcm_direct_t *dshare = pcm->private_data;
        int err;
        
-       switch(dshare->state) {
+       switch (dshare->state) {
        case SNDRV_PCM_STATE_DRAINING:
        case SNDRV_PCM_STATE_RUNNING:
                err = snd_pcm_dshare_sync_ptr(pcm);
index 22590f2..cc4403f 100644 (file)
@@ -322,6 +322,14 @@ static int snd_pcm_dsnoop_status(snd_pcm_t *pcm, snd_pcm_status_t * status)
 {
        snd_pcm_direct_t *dsnoop = pcm->private_data;
 
+       switch(dsnoop->state) {
+       case SNDRV_PCM_STATE_DRAINING:
+       case SNDRV_PCM_STATE_RUNNING:
+               snd_pcm_dsnoop_sync_ptr(pcm);
+               break;
+       default:
+               break;
+       }
        memset(status, 0, sizeof(*status));
        status->state = dsnoop->state;
        status->trigger_tstamp = dsnoop->trigger_tstamp;