X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=mixer.c;h=52af25f9c22ae5397f03c5bf61daaae0f1bb67bd;hp=00af08a4e428b637dcb24ebc68545edb478ff61d;hb=bb1996d4ef04bf33e735f2ce49e9edeeb5a66e80;hpb=767a4a54c967bc4b80bd14d02e89fe91acd848dd diff --git a/mixer.c b/mixer.c index 00af08a4..52af25f9 100644 --- a/mixer.c +++ b/mixer.c @@ -192,9 +192,6 @@ static void change_afs_mode(const char *afs_mode) { char *cmd; - client_cmd("stop"); - if (!afs_mode) - return; cmd = make_message("select %s", afs_mode); client_cmd(cmd); free(cmd); @@ -290,7 +287,7 @@ static int com_sleep(const struct mixer *m, struct mixer_handle *h) PARA_INFO_LOG("waketime: %d:%02d\n", tm->tm_hour, tm->tm_min); client_cmd("stop"); sleep(1); - if (fot) { + if (fot && fo_mood) { ret = set_initial_volume(m, h); if (ret < 0) return ret; @@ -307,12 +304,13 @@ static int com_sleep(const struct mixer *m, struct mixer_handle *h) if (ret < 0) return ret; } - if (OPT_GIVEN(SLEEP, SLEEP_MOOD)) { + if (sleep_mood) { change_afs_mode(sleep_mood); - client_cmd("play"); - } else + if (!fot || !fo_mood) /* currently stopped */ + client_cmd("play"); + } else if (fot && fo_mood) /* currently playing */ client_cmd("stop"); - if (!fit) + if (!fit || !fi_mood) /* nothing to do */ return 1; change_afs_mode(fi_mood); for (;;) {