]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - alsa_write.c
writers: Unify ->pre_select().
[paraslash.git] / alsa_write.c
index aa772daaae48bbd135d222b0eca3d70543d3060c..3428def83076b9f8b89fc4c1e41bd0c921e54fbb 100644 (file)
@@ -143,10 +143,9 @@ static int alsa_init(struct private_alsa_write_data *pad,
 }
 
 /* Open an instance of the alsa writer. */
-static int alsa_open(struct writer_node *wn)
+static void alsa_open(struct writer_node *wn)
 {
        wn->private_data = para_calloc(sizeof(struct private_alsa_write_data));
-       return 1;
 }
 
 static void alsa_write_pre_select(struct sched *s, struct task *t)
@@ -155,15 +154,12 @@ static void alsa_write_pre_select(struct sched *s, struct task *t)
        struct private_alsa_write_data *pad = wn->private_data;
        struct timeval tv;
        snd_pcm_sframes_t avail, underrun;
-       int ret;
+       int ret = btr_node_status(wn->btrn, wn->min_iqs, BTR_NT_LEAF);
 
-       if (!pad->handle)
-               return;
-       ret = btr_node_status(wn->btrn, wn->min_iqs, BTR_NT_LEAF);
-       if (ret < 0)
-               sched_request_timeout_ms(20, s);
-       if (ret <= 0)
+       if (ret == 0)
                return;
+       if (ret < 0 || !pad->handle)
+               return sched_min_delay(s);
        /*
         * Data is available to be written to the alsa handle.  Compute number
         * of milliseconds until next buffer underrun would occur.