[subcommand sleep]
purpose = stream, fade out, sleep, fade in
[description]
- Set the initial volume and fade-out mood, then fade to the fade-out
- volume. Switch to the sleep mood and wait until wake time minus
- fade-in time. Finally, switch to the wake mood and fade in to the
- fade-in volume.
+ Set the initial volume and mood, start playing and sleep. Then switch
+ to the fade-out mood and fade to the fade-out volume. Next, switch to
+ the sleep mood and wait until wake time minus fade-in time. Finally,
+ switch to the wake mood and fade in to the fade-in volume.
[/description]
[option ivol]
summary = set initial volume
channel part may be omitted, in which case the default channel is
used. This option may be given multiple times.
[/help]
+ [option initial-mood]
+ summary = mood or playlist to start with
+ arg_info = required_arg
+ arg_type = string
+ typestr = mood_spec
+ [help]
+ This mood or playlist is selected right after setting the initial
+ volume and before fade-out starts. If unset, fade-out starts
+ immediately.
+ [/help]
+ [option initial-delay]
+ summary = time before fade-out starts.
+ arg_info = required_arg
+ arg_type = uint32
+ typestr = seconds
+ default_val = 0
+ [help]
+ If left at the default, no initial delay occurs even if an initial
+ mood is given.
+ [/help]
[option fo-mood]
summary = mood or playlist for fade-out
arg_info = required_arg
struct tm *tm;
int ret;
const char *wake_time = OPT_STRING_VAL(SLEEP, WAKE_TIME);
+ const char *initial_mood = OPT_STRING_VAL(SLEEP, INITIAL_MOOD);
const char *fo_mood = OPT_STRING_VAL(SLEEP, FO_MOOD);
const char *fi_mood = OPT_STRING_VAL(SLEEP, FI_MOOD);
const char *sleep_mood = OPT_STRING_VAL(SLEEP, SLEEP_MOOD);
ret = set_channel(m, h, OPT_STRING_VAL(PARA_MIXER, MIXER_CHANNEL));
if (ret < 0)
goto close_mixer;
+ delay = OPT_UINT32_VAL(SLEEP, INITIAL_DELAY);
+ if (delay > 0 && initial_mood && *initial_mood) {
+ change_afs_mode(initial_mood);
+ client_cmd("play");
+ sleep(delay);
+ client_cmd("stop");
+ }
if (fot && fo_mood && *fo_mood) {
change_afs_mode(fo_mood);
client_cmd("play");