- random/playlist selector: improved info strings
- new audiod commands: tasks, kill
- update to libortp-0.10.0
+ - para_fade: wake time defaults to 8 hours from now
------------------------------------------
time_t t1, wake_time_epoch;
unsigned int delay;
struct tm *tm;
- int hour = args_info.wake_hour_arg;
int min = args_info.wake_min_arg;
char *fa_stream = args_info.fa_stream_arg;
char *wake_stream = args_info.wake_stream_arg;
char *cmd, *sleep_stream = args_info.sleep_stream_given?
args_info.sleep_stream_arg : NULL;
+ /* calculate wake time */
+ time(&t1);
+ if (args_info.wake_hour_given) {
+ int hour = args_info.wake_hour_arg;
+ tm = localtime(&t1);
+ if (tm->tm_hour > hour || (tm->tm_hour == hour && tm->tm_min> min)) {
+ t1 += 86400; /* wake time is tomorrow */
+ tm = localtime(&t1);
+ }
+ tm->tm_hour = hour;
+ tm->tm_min = min;
+ tm->tm_sec = 0;
+ } else {
+ t1 += 8 * 60 * 60;
+ PARA_INFO_LOG("default wake time: %lu\n", t1);
+ tm = localtime(&t1);
+ }
+ wake_time_epoch = mktime(tm);
+ PARA_INFO_LOG("waketime: %s", asctime(tm));
if (sf) {
PARA_INFO_LOG("initial volume: %d\n", iv);
set_vol(iv);
client_cmd("stop");
if (!wf)
return;
- /* calculate wake time */
- time(&t1);
- tm = localtime(&t1);
- if (tm->tm_hour > hour || (tm->tm_hour == hour && tm->tm_min> min)) {
- /* wake time is tomorrow */
- t1 += 86400;
- tm = localtime(&t1);
- t1 -= 86400;
- }
- tm->tm_hour = hour;
- tm->tm_min = min;
- tm->tm_sec = 0;
- wake_time_epoch = mktime(tm);
- PARA_INFO_LOG("waketime: %s", asctime(tm));
- while (wake_time_epoch > t1 + wf) {
+ for (;;) {
+ time(&t1);
+ if (wake_time_epoch <= t1 + wf)
+ break;
delay = wake_time_epoch - t1 - wf;
PARA_INFO_LOG("sleeping %u seconds (%u:%02u)\n",
delay, delay / 3600,
(delay % 3600) / 60);
sleep(delay);
- time(&t1);
}
cmd = make_message("csp %s\n", wake_stream);
client_cmd(cmd);