Fixes an error whereby the 'pvol' volume metadata was no longer sent if Shairport Sync was configured to ignore volume control information coming from the audio source. Addresses issue #903.
Fixes a compilation error if including the MQTT client.
Fix Issue #890 -- https://github.com/mikebrady/shairport-sync/issues/890
Recognise situation where a track has no artwork properly.
Less likely to drop the 'availabile' property.
Always output the full metadata whenever any part of it has changed.
Metadata coming from dacp is now incorporated,
Check for the help and version arguments makes sure that it's
always possible to get the version and usage even if there are
issues in other parts of the code.
Previously I have made spelling changes as caught by Debian's lintian
tool, which has a short list of common misspellings that it tests for.
This time I decided to run codespell against the source and fix all the
obvious problems it came up with. It also uses a list of misspellings
but it's much larger than lintian's, but also has some false positives
so I went over the list by hand.
The command I used to do check the source was:
git ls-tree -rz --name-only HEAD | xargs -0 codespell -L minimise,errorstring
1. Fix a bug that sometimes caused a crash when a service name was specified in the configuration file.
The fix was to be more systematic in allocating and deallocating memory for temporary strings.
Thanks to Chris Boot, Ari Sovijarvi and Jeroen Massar for the bug report. Fixes Debian Bug report #925577.
2. Allow the rtsp_listen_loop to exit if the RTSP port (usually port 5000) is not available. This allows the system to exit cleanly rather than abort.
3. Expose some of the settings used in the disable_standby_mode.
The first setting the "disable_standby_mode_silence_threshold", which is the
amount of audio in the output device's hardware buffer.
It should normally be close to the value given in the “audio_backend_buffer_desired_length_in_seconds” setting.
If it drops to this value, silence is added to the buffer to prevent the output device from becoming idle.
The second new setting is the "disable_standby_mode_silence_scan_interval" which is the time between checks of the output device's hardware buffer.
4. The code for generating frames of silence, which may be dithered, has been simplified.
5. Pretty-print source files using:
find . \( -name \*.cpp -or -name \*.h -or -name \*.c \) -exec clang-format -i -style='{BasedOnStyle: llvm, IndentWidth: 2, ColumnLimit: 100}' '{}' \;
6. Change comments for use_precision_timing.