UniversityRadioYork/ury-playd — pull request #77 by CaptainHayashi (2014-12-27 16:20:16+00:00)
Title: Audio reform, general cleanups, and config.sh

**DON'T MERGE THIS JUST YET.** This is a large PRQ, so there's a fairly hefty set of conditions on merging, and help with them would be much appreciated:

* [ ] Test build on/fix build on:
* [ ] Travis
* [ ] Windows VS2013
* [ ] Windows mingw32
* [ ] Debian
* [ ] FreeBSD
* [ ] Make sure the following work:
* [ ] FLAC
* [ ] Playback
* [ ] Seeking
* [ ] Seeking to EOF
* [ ] MP3
* [ ] Playback
* [ ] Seeking
* [ ] Seeking to EOF
* [ ] libsndfile
* [ ] Playback
* [ ] Seeking
* [ ] Seeking to EOF
* [ ] Questions/decisions
* [ ] Do we need libflac++?
* [ ] Build system - keep config.sh or try something else?
* [ ] Should we have a more sophisticated library selection scheme?

**What does this PRQ do?** The main change is that it _replaces libsox with three smaller libraries_: [libsndfile] (Ogg Vorbis, Wave files, etc.), [libmpg123] (MP3), and [libflac++] (FLAC).

Why? Because:
* SoX is difficult to compile, partly because it includes a vast array of dependency libraries that we don't need (speex? GSM!?), and we can easily just use the dependency libraries we _do_ use directly.
* SoX is buggy, and I think it'll be quicker and easier just to move away from it in the short-term.
* The libraries we're using here have perfectly sensible APIs, so we're not losing much in the way of understandability.
* Having a framework for multiple different output drivers will make it easier to add, say, AAC support later.

In addition, because I couldn't help myself, there are a few random cleanups and changes, some of which may be contentious. One of them involves using `make_unique`, which has _bumped the C++ version to C++14_ (but VS2013 supports this one concession to modern C++).

I expect a lot of comment below. Don't fail me now!

[libsndfile]: http://www.mega-nerd.com/libsndfile/ "Home page for libsndfile."
[libmpg123]: http://mpg123.de/ "Home page for libmpg123."
[libflac++]: https://xiph.org/flac "Home page for FLAC."