NEWS
====
+----------------------------------------------
+0.6.3 (to be announced) "generalized activity"
+----------------------------------------------
+
+- The ff command now accepts a negative argument to instruct the
+ virtual streaming system to jump backwards in the current audio
+ stream. The old syntax (e.g., "ff 30-") is still supported but it
+ is deprecated and no longer documented. The compatibility code is
+ sheduled for removal after 0.7.0.
+- para_afh: New option: --preserve to reset the modification time to
+ the value of the original file after meta data modification.
+- Overhaul of the compress filter code. The refined algorithm should
+ reduce clipping. The meaning of --aggressiveness has changed, see the
+ updated and extended documentation of the compress filter for details.
+- Cleanup of the audio format handler code.
+- We now build the tree using the .ONESHELL feature of GNU make,
+ which results in a significant speedup.
+- Two robustness fixes for FreeBSD.
+- para_client now supports RFC4716 private keys as generated with
+ ssh-keygen -m RFC4716. In fact, this key format has been made the
+ default, and the former PEM keys will be depreciated at some point.
+- The ogg audio format handlers learned to detect holes and now report
+ the correct duration also if ogg pages are missing in the file. This
+ affects ogg/vorbis ogg/speex and ogg/opus.
++- Robustness improvements for para_mixer.
+
--------------------------------------
0.6.2 (2018-06-30) "elastic diversity"
--------------------------------------
PARA_INFO_LOG("waketime: %d:%02d\n", tm->tm_hour, tm->tm_min);
client_cmd("stop");
sleep(1);
- if (fot && fo_mood) {
+ if (fot && fo_mood && *fo_mood) {
ret = set_initial_volume(m, h);
if (ret < 0)
- return ret;
+ goto close_mixer;
change_afs_mode(fo_mood);
client_cmd("play");
ret = set_channel(m, h, OPT_STRING_VAL(PARA_MIXER, MIXER_CHANNEL));
} else {
ret = m->set(h, fov);
if (ret < 0)
- return ret;
+ goto close_mixer;
}
- if (sleep_mood) {
+ if (sleep_mood && *sleep_mood) {
change_afs_mode(sleep_mood);
if (!fot || !fo_mood) /* currently stopped */
client_cmd("play");
- } else if (fot && fo_mood) /* currently playing */
+ } else if (fot && fo_mood && *fo_mood) /* currently playing */
client_cmd("stop");
- if (!fit || !fi_mood) /* nothing to do */
+ m->close(&h);
+ if (!fit || !fi_mood || !*fi_mood) /* nothing to do */
return 1;
for (;;) {
time(&t1);