#include "string.h"
-struct gengetopt_args_info args_info;
+struct fade_args_info args_info;
void para_log(__a_unused int ll, const char *fmt,...)
{
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);
{
int ret;
- if (cmdline_parser(argc, argv, &args_info))
+ if (fade_cmdline_parser(argc, argv, &args_info))
exit(EXIT_FAILURE);
ret = configfile_exists();
if (!ret && args_info.config_file_given) {
exit(EXIT_FAILURE);
}
if (ret)
- cmdline_parser_configfile(args_info.config_file_arg,
+ fade_cmdline_parser_configfile(args_info.config_file_arg,
&args_info, 0, 0, 0);
if ((ret = open_mixer()) < 0) {
PARA_EMERG_LOG("can not open mixer device %s.",