* Open mixer, get volume, fade to new_vol in secs seconds and
* close mixer
*/
-static int fade(int new_vol, unsigned int secs)
+static void fade(int new_vol, int fade_time)
{
- int vol, mixer_fd = -1, diff, incr, ret;
+ int vol, mixer_fd = -1, diff, incr;
+ unsigned secs;
struct timespec ts;
unsigned long long tmp, tmp2; /* Careful with that axe, Eugene! */
- PARA_NOTICE_LOG("fading to %d in %d seconds\n", new_vol, secs);
- ret = 0;
- if (!secs)
+ if (fade_time <= 0)
goto out;
+ secs = fade_time;
+ PARA_NOTICE_LOG("fading to %d in %d seconds\n", new_vol, secs);
mixer_fd = open_mixer();
if (mixer_fd < 0)
goto out;
diff = new_vol - vol;
if (!diff) {
sleep(secs);
- ret = 1;
goto out;
}
incr = diff > 0? 1: -1;
out:
if (mixer_fd >= 0)
close(mixer_fd);
- return 1;
}
static int client_cmd(const char *cmd,...)
static void snooze(void)
{
+ unsigned sleep_time;
+
+ if (args_info.snooze_time_arg <= 0)
+ return;
+ sleep_time = args_info.snooze_time_arg;
if (get_vol() < args_info.snooze_out_vol_arg)
set_vol(args_info.snooze_out_vol_arg);
else
fade(args_info.snooze_out_vol_arg, args_info.snooze_out_fade_arg);
client_cmd("pause");
PARA_NOTICE_LOG("%d seconds snooze time...\n", args_info.snooze_time_arg);
- sleep(args_info.snooze_time_arg);
+ sleep(sleep_time);
client_cmd("play");
fade(args_info.snooze_in_vol_arg, args_info.snooze_in_fade_arg);
}