Merge pull request #359 from pizzaboy75/master

Add volume parameter to Librespot integration
This commit is contained in:
Johannes Pohl 2018-03-04 15:23:33 +01:00 committed by GitHub
commit 077e9dd9fb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 2 deletions

View file

@ -133,7 +133,7 @@ Snapserver supports [shairport-sync](https://github.com/mikebrady/shairport-sync
### Spotify
Snapserver supports [librespot](https://github.com/plietar/librespot) with `pipe` backend.
1. Build and copy the `librespot` binary somewhere to your `PATH`, e.g. `/usr/local/bin/`
2. Configure snapserver with `-s "spotify:///librespot?name=Spotify[&username=<my username>&password=<my password>][&devicename=Snapcast][&bitrate=320][&onstart=<start command>][&onstop=<stop command>][&cache=<cache dir>]"`
2. Configure snapserver with `-s "spotify:///librespot?name=Spotify[&username=<my username>&password=<my password>][&devicename=Snapcast][&bitrate=320][&onstart=<start command>][&onstop=<stop command>][&volume=<volume in percent>][&cache=<cache dir>]"`
* Valid bitrates are 96, 160, 320
* `start command` and `stop command` are executed by Librespot at start/stop
* For example: `onstart=/usr/bin/logger -t Snapcast Starting spotify...`

View file

@ -37,6 +37,7 @@ SpotifyStream::SpotifyStream(PcmListener* pcmListener, const StreamUri& uri) : P
string username = uri_.getQuery("username", "");
string password = uri_.getQuery("password", "");
string cache = uri_.getQuery("cache", "");
string volume = uri_.getQuery("volume", "");
string bitrate = uri_.getQuery("bitrate", "320");
string devicename = uri_.getQuery("devicename", "Snapcast");
string onstart = uri_.getQuery("onstart", "");
@ -51,6 +52,8 @@ SpotifyStream::SpotifyStream(PcmListener* pcmListener, const StreamUri& uri) : P
params_ += " --bitrate " + bitrate + " --backend pipe";
if (!cache.empty())
params_ += " --cache \"" + cache + "\"";
if (!volume.empty())
params_ += " --initial-volume \"" + volume + "\"";
if (!onstart.empty())
params_ += " --onstart \"" + onstart + "\"";
if (!onstop.empty())

View file

@ -28,7 +28,7 @@
* Implements EncoderListener to get the encoded data.
* Data is passed to the PcmListener
* usage:
* snapserver -s "spotify:///librespot?name=Spotify&username=<my username>&password=<my password>[&devicename=Snapcast][&bitrate=320][&cache=<cache dir>]"
* snapserver -s "spotify:///librespot?name=Spotify&username=<my username>&password=<my password>[&devicename=Snapcast][&bitrate=320][&volume=<volume in percent>][&cache=<cache dir>]"
*/
class SpotifyStream : public ProcessStream, WatchdogListener
{