mirror of
https://github.com/badaix/snapcast.git
synced 2025-07-08 04:07:45 +02:00
Update API docs
This commit is contained in:
parent
2983145b6c
commit
e1eef690b4
3 changed files with 62 additions and 26 deletions
|
@ -16,7 +16,7 @@ Used to control the player
|
|||
{"id": 1, "jsonrpc": "2.0", "method": "Plugin.Stream.Player.Control", "params": {"command": "<command>", "params": { "<param 1>": <value 1>, "<param 2>": <value 2>}}}
|
||||
```
|
||||
|
||||
Supported `command`s:
|
||||
#### Supported `command`s:
|
||||
|
||||
- `Play`: Start playback
|
||||
- `params`: none
|
||||
|
@ -101,6 +101,8 @@ Success:
|
|||
|
||||
```json
|
||||
{"id": 1, "jsonrpc": "2.0", "result": {"canControl":true,"canGoNext":true,"canGoPrevious":true,"canPause":true,"canPlay":true,"canSeek":false,"loopStatus":"none","playbackStatus":"playing","position":593.394,"shuffle":false,"volume":86}}
|
||||
|
||||
{"id": 1, "jsonrpc": "2.0", "result": {"canControl":true,"canGoNext":true,"canGoPrevious":true,"canPause":true,"canPlay":true,"canSeek":true,"loopStatus":"none","metadata":{"album":"Doldinger","albumArtist":["Klaus Doldinger's Passport"],"artUrl":"http://coverartarchive.org/release/0d4ff56b-2a2b-43b5-bf99-063cac1599e5/16940576164-250.jpg","artist":["Klaus Doldinger's Passport feat. Nils Landgren"],"contentCreated":"2016","duration":305.2929992675781,"genre":["Jazz"],"musicbrainzAlbumId":"0d4ff56b-2a2b-43b5-bf99-063cac1599e5","title":"Soul Town","trackId":"7","trackNumber":6,"url":"Klaus Doldinger's Passport - Doldinger (2016)/06 - Soul Town.mp3"},"playbackStatus":"playing","position":72.79499816894531,"shuffle":false,"volume":97}}
|
||||
```
|
||||
|
||||
#### Supported `property`s
|
||||
|
@ -130,22 +132,6 @@ Error:
|
|||
todo
|
||||
```
|
||||
|
||||
### Plugin.Stream.Player.GetMetadata
|
||||
|
||||
TODO: Metadata are part of the properties
|
||||
|
||||
```json
|
||||
{"id": 1, "jsonrpc": "2.0", "method": "Plugin.Stream.Player.GetMetadata"}
|
||||
```
|
||||
|
||||
#### Expected response
|
||||
|
||||
Success:
|
||||
|
||||
```json
|
||||
{"id": 1, "jsonrpc": "2.0", "result": {"artist":["Travis Scott & HVME"],"file":"http://wdr-1live-live.icecast.wdr.de/wdr/1live/live/mp3/128/stream.mp3","name":"1Live, Westdeutscher Rundfunk Koeln","title":"Goosebumps (Remix)","trackId":"3"}}
|
||||
```
|
||||
|
||||
## Notifications
|
||||
|
||||
### Plugin.Stream.Player.Metadata
|
||||
|
|
|
@ -157,7 +157,8 @@ The Server JSON object contains a list of Groups and Streams. Every Group holds
|
|||
* Stream
|
||||
* [Stream.AddStream](#streamaddstream)
|
||||
* [Stream.RemoveStream](#streamremovestream)
|
||||
* [Stream.SetMeta](#streamaddmeta)
|
||||
* [Stream.Control](#streamcontrol)
|
||||
* [Stream.SetProperty](#streamsetproperty)
|
||||
|
||||
### Notifications
|
||||
* Client
|
||||
|
@ -171,7 +172,7 @@ The Server JSON object contains a list of Groups and Streams. Every Group holds
|
|||
* [Group.OnStreamChanged](#grouponstreamchanged)
|
||||
* [Group.OnNameChanged](#grouponnamechanged)
|
||||
* Stream
|
||||
* [Stream.OnMetadata](#streamonmetadata)
|
||||
* [Stream.OnProperties](#streamonproperties)
|
||||
* [Stream.OnUpdate](#streamonupdate)
|
||||
* Server
|
||||
* [Server.OnUpdate](#serveronupdate)
|
||||
|
@ -380,15 +381,62 @@ The Server JSON object contains a list of Groups and Streams. Every Group holds
|
|||
```
|
||||
|
||||
|
||||
### Stream.SetMeta
|
||||
### Stream.Control
|
||||
#### Request
|
||||
```json
|
||||
{"id":4,"jsonrpc":"2.0","method":"Stream.SetMeta","params":{"id":"Spotify", "metadata": {"album": "some album", "artist": "some artist", "track": "some track"...}}}
|
||||
{"id": 1, "jsonrpc": "2.0", "method": "Stream.Control", "params": {"command": "<command>", "params": { "<param 1>": <value 1>, "<param 2>": <value 2>}}}
|
||||
{"id":4,"jsonrpc":"2.0","method":"Stream.Control","params":{"id":"Spotify", "command": "next", params: {}}}
|
||||
{"id":4,"jsonrpc":"2.0","method":"Stream.Control","params":{"id":"Spotify", "command": "seek", "param": "60"}}
|
||||
```
|
||||
|
||||
#### Supported `command`s:
|
||||
|
||||
- `Play`: Start playback
|
||||
- `params`: none
|
||||
- `Pause`: Stop playback
|
||||
- `params`: none
|
||||
- `PlayPause`: Toggle play/pause
|
||||
- `params`: none
|
||||
- `Stop`: Stop playback
|
||||
- `params`: none
|
||||
- `Next`: Skip to next track
|
||||
- `params`: none
|
||||
- `Previous`: Skip to previous track
|
||||
- `params`: none
|
||||
- `Seek`: Seek forward or backward in the current track
|
||||
- `params`:
|
||||
- `Offset`: [float] seek offset in seconds
|
||||
- `SetPosition`: Set the current track position in seconds
|
||||
- `params`:
|
||||
- `Position`: [float] the new track position
|
||||
- `TrackId`: [string] the optional currently playing track's identifier
|
||||
|
||||
#### Response
|
||||
```json
|
||||
{"id":4,"jsonrpc":"2.0","result":{"id":"Spotify"}}
|
||||
TODO
|
||||
```
|
||||
|
||||
### Stream.SetProperty
|
||||
#### Request
|
||||
```json
|
||||
{"id": 1, "jsonrpc": "2.0", "method": "Stream.SetProperty", "params": {"id": "Pipe", "property": property, "value": value}}
|
||||
{"id":4,"jsonrpc":"2.0","method":"Stream.Control","params":{"id":"Spotify", "command": "next", params: {}}}
|
||||
{"id":4,"jsonrpc":"2.0","method":"Stream.Control","params":{"id":"Spotify", "command": "seek", "param": "60000"}}
|
||||
```
|
||||
|
||||
#### Supported `property`s
|
||||
|
||||
- `loopStatus`: [string] the current repeat status, one of:
|
||||
- `none`: the playback will stop when there are no more tracks to play
|
||||
- `track`: the current track will start again from the begining once it has finished playing
|
||||
- `playlist`: the playback loops through a list of tracks
|
||||
- `shuffle`: [bool] play playlist in random order
|
||||
- `volume`: [int] voume in percent, valid range [0..100]
|
||||
- `rate`: [float] The current playback rate, valid range (0..)
|
||||
|
||||
#### Response
|
||||
```json
|
||||
TODO
|
||||
```
|
||||
|
||||
## Notifications
|
||||
|
@ -437,9 +485,11 @@ The Server JSON object contains a list of Groups and Streams. Every Group holds
|
|||
{"jsonrpc":"2.0","method":"Stream.OnUpdate","params":{"id":"stream 1","stream":{"id":"stream 1","status":"idle","uri":{"fragment":"","host":"","path":"/tmp/snapfifo","query":{"chunk_ms":"20","codec":"flac","name":"stream 1","sampleformat":"48000:16:2"},"raw":"pipe:///tmp/snapfifo?name=stream 1","scheme":"pipe"}}}}
|
||||
```
|
||||
|
||||
### Stream.OnMetadata
|
||||
### Stream.OnProperties
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Stream.OnMetadata","params":{"id":"stream 1", "metadata": {"album": "some album", "artist": "some artist", "track": "some track"...}}}
|
||||
{"jsonrpc":"2.0","method":"Stream.OnProperties","params":{"id":"stream 1", "metadata": {"album": "some album", "artist": "some artist", "track": "some track"...}}}
|
||||
|
||||
{"jsonrpc":"2.0","method":"Stream.OnProperties","params":{"id":"Meta","properties":{"canControl":true,"canGoNext":true,"canGoPrevious":true,"canPause":true,"canPlay":true,"canSeek":true,"loopStatus":"none","metadata":{"album":"Doldinger","albumArtist":["Klaus Doldinger's Passport"],"artUrl":"http://coverartarchive.org/release/0d4ff56b-2a2b-43b5-bf99-063cac1599e5/16940576164-250.jpg","artist":["Klaus Doldinger's Passport feat. Nils Landgren"],"contentCreated":"2016","duration":305.2929992675781,"genre":["Jazz"],"title":"Soul Town","trackId":"7","trackNumber":6,"url":"Klaus Doldinger's Passport - Doldinger (2016)/06 - Soul Town.mp3"},"playbackStatus":"playing","position":221.82400512695313,"shuffle":false,"volume":97}}}
|
||||
```
|
||||
|
||||
### Server.OnUpdate
|
||||
|
|
|
@ -53,7 +53,7 @@ void Server::onPropertiesChanged(const PcmStream* pcmStream, const Properties& p
|
|||
{
|
||||
LOG(DEBUG, LOG_TAG) << "Properties changed, stream: " << pcmStream->getName() << ", properties: " << properties.toJson().dump(3) << "\n";
|
||||
|
||||
// Send propeties to all connected control clients
|
||||
// Send properties to all connected control clients
|
||||
json notification =
|
||||
jsonrpcpp::Notification("Stream.OnProperties", jsonrpcpp::Parameter("id", pcmStream->getId(), "properties", properties.toJson())).to_json();
|
||||
controlServer_->send(notification.dump(), nullptr);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue