]> git.alsa-project.org Git - alsa-lib.git/commitdiff
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 2188659dca5da37fe9665d73f9b73c8329323ff1..3d381e2fa0fd2a47c4f2687b12eb739182183fe3 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 0dfa3034b63f130548fa8309a8a69fd1f123eaf1..54752cee36a8ebda7855b7307f9c2f1c29b1c865 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 22590f2fc3e57e1319c7530710e0e8a3d60061b4..cc4403ffd8bd19cf820bf29a0571a2c3cdd886d4 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;