mirror of
https://github.com/badaix/snapcast.git
synced 2025-05-20 20:46:16 +02:00
fIX linter errors
This commit is contained in:
parent
3eb63313ea
commit
170e6cc85b
1 changed files with 111 additions and 47 deletions
|
@ -1,5 +1,4 @@
|
|||
Snapcast JSON RPC Control API
|
||||
=============================
|
||||
# Snapcast JSON RPC Control API
|
||||
|
||||
## Raw TCP sockets
|
||||
|
||||
|
@ -103,42 +102,47 @@ Commands can be sent in a [Batch](http://www.jsonrpc.org/specification#batch). T
|
|||
|
||||
Each JSON RPC request and response contains an identifier in the `id` field, which can be used to link responses to the request that caused them, as defined in the JSON RPC specification:
|
||||
|
||||
An identifier established by the Client that MUST contain a String, Number, or NULL value if included.
|
||||
If it is not included it is assumed to be a notification. The value SHOULD normally not be Null [1] and Numbers SHOULD NOT contain fractional parts [2]
|
||||
> An identifier established by the Client that MUST contain a String, Number, or NULL value if included.
|
||||
> If it is not included it is assumed to be a notification. The value SHOULD normally not be Null [1] and Numbers SHOULD NOT contain fractional parts [2]
|
||||
|
||||
Clients should call `Server.GetStatus` to get the complete picture.
|
||||
|
||||
The Server JSON object contains a list of Groups and Streams. Every Group holds a list of Clients and a reference to a Stream. Clients, Groups and Streams are referenced in the "Set" commands by their `id`.
|
||||
|
||||
### Example JSON objects
|
||||
|
||||
#### Client
|
||||
|
||||
```json
|
||||
{"config":{"instance":1,"latency":0,"name":"","volume":{"muted":false,"percent":74}},"connected":true,"host":{"arch":"x86_64","ip":"127.0.0.1","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc","lastSeen":{"sec":1488026416,"usec":135973},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}}
|
||||
```
|
||||
|
||||
#### Volume
|
||||
|
||||
```json
|
||||
{"muted":false,"percent":74}
|
||||
```
|
||||
|
||||
#### Group
|
||||
|
||||
```json
|
||||
{"clients":[{"config":{"instance":2,"latency":10,"name":"Laptop","volume":{"muted":false,"percent":48}},"connected":true,"host":{"arch":"x86_64","ip":"127.0.0.1","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc#2","lastSeen":{"sec":1488026485,"usec":644997},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}},{"config":{"instance":1,"latency":0,"name":"","volume":{"muted":false,"percent":74}},"connected":true,"host":{"arch":"x86_64","ip":"127.0.0.1","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc","lastSeen":{"sec":1488026481,"usec":223747},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}}],"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","muted":true,"name":"","stream_id":"stream 1"}
|
||||
```
|
||||
|
||||
#### Stream
|
||||
|
||||
```json
|
||||
{"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"}}
|
||||
```
|
||||
|
||||
#### Server
|
||||
|
||||
```json
|
||||
{"groups":[{"clients":[{"config":{"instance":2,"latency":6,"name":"123 456","volume":{"muted":false,"percent":48}},"connected":true,"host":{"arch":"x86_64","ip":"127.0.0.1","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc#2","lastSeen":{"sec":1488025751,"usec":654777},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}}],"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","muted":false,"name":"","stream_id":"stream 2"}],"server":{"host":{"arch":"x86_64","ip":"","mac":"","name":"T400","os":"Linux Mint 17.3 Rosa"},"snapserver":{"controlProtocolVersion":1,"name":"Snapserver","protocolVersion":1,"version":"0.10.0"}},"streams":[{"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"}},{"id":"stream 2","status":"idle","uri":{"fragment":"","host":"","path":"/tmp/snapfifo","query":{"chunk_ms":"20","codec":"flac","name":"stream 2","sampleformat":"48000:16:2"},"raw":"pipe:///tmp/snapfifo?name=stream 2","scheme":"pipe"}}]}
|
||||
```
|
||||
|
||||
|
||||
|
||||
### Requests
|
||||
|
||||
* Client
|
||||
* [Client.GetStatus](#clientgetstatus)
|
||||
* [Client.SetVolume](#clientsetvolume)
|
||||
|
@ -161,6 +165,7 @@ The Server JSON object contains a list of Groups and Streams. Every Group holds
|
|||
* [Stream.SetProperty](#streamsetproperty)
|
||||
|
||||
### Notifications
|
||||
|
||||
* Client
|
||||
* [Client.OnConnect](#clientonconnect)
|
||||
* [Client.OnDisconnect](#clientondisconnect)
|
||||
|
@ -177,247 +182,294 @@ The Server JSON object contains a list of Groups and Streams. Every Group holds
|
|||
* Server
|
||||
* [Server.OnUpdate](#serveronupdate)
|
||||
|
||||
|
||||
## Requests
|
||||
|
||||
### Client.GetStatus
|
||||
|
||||
#### Request
|
||||
|
||||
```json
|
||||
{"id":8,"jsonrpc":"2.0","method":"Client.GetStatus","params":{"id":"00:21:6a:7d:74:fc"}}
|
||||
```
|
||||
|
||||
#### Response
|
||||
|
||||
```json
|
||||
{"id":8,"jsonrpc":"2.0","result":{"client":{"config":{"instance":1,"latency":0,"name":"","volume":{"muted":false,"percent":74}},"connected":true,"host":{"arch":"x86_64","ip":"127.0.0.1","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc","lastSeen":{"sec":1488026416,"usec":135973},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}}}}
|
||||
```
|
||||
|
||||
### Client.SetVolume
|
||||
|
||||
#### Request
|
||||
|
||||
```json
|
||||
{"id":"8","jsonrpc":"2.0","method":"Client.SetVolume","params":{"id":"00:21:6a:7d:74:fc","volume":{"muted":false,"percent":74}}}
|
||||
```
|
||||
|
||||
#### Response
|
||||
|
||||
```json
|
||||
{"id":"8","jsonrpc":"2.0","result":{"volume":{"muted":false,"percent":74}}}
|
||||
```
|
||||
|
||||
#### Notification
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Client.OnVolumeChanged","params":{"id":"00:21:6a:7d:74:fc","volume":{"muted":false,"percent":74}}}
|
||||
```
|
||||
|
||||
### Client.SetLatency
|
||||
|
||||
#### Request
|
||||
|
||||
```json
|
||||
{"id":7,"jsonrpc":"2.0","method":"Client.SetLatency","params":{"id":"00:21:6a:7d:74:fc#2","latency":10}}
|
||||
```
|
||||
|
||||
#### Response
|
||||
|
||||
```json
|
||||
{"id":7,"jsonrpc":"2.0","result":{"latency":10}}
|
||||
```
|
||||
|
||||
#### Notification
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Client.OnLatencyChanged","params":{"id":"00:21:6a:7d:74:fc#2","latency":10}}
|
||||
```
|
||||
|
||||
### Client.SetName
|
||||
|
||||
#### Request
|
||||
|
||||
```json
|
||||
{"id":6,"jsonrpc":"2.0","method":"Client.SetName","params":{"id":"00:21:6a:7d:74:fc#2","name":"Laptop"}}
|
||||
```
|
||||
|
||||
#### Response
|
||||
|
||||
```json
|
||||
{"id":6,"jsonrpc":"2.0","result":{"name":"Laptop"}}
|
||||
```
|
||||
|
||||
#### Notification
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Client.OnNameChanged","params":{"id":"00:21:6a:7d:74:fc#2","name":"Laptop"}}
|
||||
```
|
||||
|
||||
|
||||
### Group.GetStatus
|
||||
|
||||
#### Request
|
||||
|
||||
```json
|
||||
{"id":5,"jsonrpc":"2.0","method":"Group.GetStatus","params":{"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1"}}
|
||||
```
|
||||
|
||||
#### Response
|
||||
|
||||
```json
|
||||
{"id":5,"jsonrpc":"2.0","result":{"group":{"clients":[{"config":{"instance":2,"latency":10,"name":"Laptop","volume":{"muted":false,"percent":48}},"connected":true,"host":{"arch":"x86_64","ip":"127.0.0.1","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc#2","lastSeen":{"sec":1488026485,"usec":644997},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}},{"config":{"instance":1,"latency":0,"name":"","volume":{"muted":false,"percent":74}},"connected":true,"host":{"arch":"x86_64","ip":"127.0.0.1","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc","lastSeen":{"sec":1488026481,"usec":223747},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}}],"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","muted":true,"name":"","stream_id":"stream 1"}}}
|
||||
```
|
||||
|
||||
### Group.SetMute
|
||||
|
||||
#### Request
|
||||
|
||||
```json
|
||||
{"id":5,"jsonrpc":"2.0","method":"Group.SetMute","params":{"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","mute":true}}
|
||||
```
|
||||
|
||||
#### Response
|
||||
|
||||
```json
|
||||
{"id":5,"jsonrpc":"2.0","result":{"mute":true}}
|
||||
```
|
||||
|
||||
#### Notification
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Group.OnMute","params":{"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","mute":true}}
|
||||
```
|
||||
|
||||
### Group.SetStream
|
||||
|
||||
#### Request
|
||||
|
||||
```json
|
||||
{"id":4,"jsonrpc":"2.0","method":"Group.SetStream","params":{"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","stream_id":"stream 1"}}
|
||||
```
|
||||
|
||||
#### Response
|
||||
|
||||
```json
|
||||
{"id":4,"jsonrpc":"2.0","result":{"stream_id":"stream 1"}}
|
||||
```
|
||||
|
||||
#### Notification
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Group.OnStreamChanged","params":{"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","stream_id":"stream 1"}}
|
||||
```
|
||||
|
||||
|
||||
### Group.SetClients
|
||||
|
||||
#### Request
|
||||
|
||||
```json
|
||||
{"id":3,"jsonrpc":"2.0","method":"Group.SetClients","params":{"clients":["00:21:6a:7d:74:fc#2","00:21:6a:7d:74:fc"],"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1"}}
|
||||
```
|
||||
|
||||
#### Response
|
||||
|
||||
```json
|
||||
{"id":3,"jsonrpc":"2.0","result":{"server":{"groups":[{"clients":[{"config":{"instance":2,"latency":6,"name":"123 456","volume":{"muted":false,"percent":48}},"connected":true,"host":{"arch":"x86_64","ip":"127.0.0.1","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc#2","lastSeen":{"sec":1488025901,"usec":864472},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}},{"config":{"instance":1,"latency":0,"name":"","volume":{"muted":false,"percent":100}},"connected":true,"host":{"arch":"x86_64","ip":"127.0.0.1","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc","lastSeen":{"sec":1488025905,"usec":45238},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}}],"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","muted":false,"name":"","stream_id":"stream 2"}],"server":{"host":{"arch":"x86_64","ip":"","mac":"","name":"T400","os":"Linux Mint 17.3 Rosa"},"snapserver":{"controlProtocolVersion":1,"name":"Snapserver","protocolVersion":1,"version":"0.10.0"}},"streams":[{"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"}},{"id":"stream 2","status":"idle","uri":{"fragment":"","host":"","path":"/tmp/snapfifo","query":{"chunk_ms":"20","codec":"flac","name":"stream 2","sampleformat":"48000:16:2"},"raw":"pipe:///tmp/snapfifo?name=stream 2","scheme":"pipe"}}]}}}
|
||||
```
|
||||
|
||||
#### Notification
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Server.OnUpdate","params":{"server":{"groups":[{"clients":[{"config":{"instance":2,"latency":6,"name":"123 456","volume":{"muted":false,"percent":48}},"connected":true,"host":{"arch":"x86_64","ip":"127.0.0.1","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc#2","lastSeen":{"sec":1488025901,"usec":864472},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}},{"config":{"instance":1,"latency":0,"name":"","volume":{"muted":false,"percent":100}},"connected":true,"host":{"arch":"x86_64","ip":"127.0.0.1","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc","lastSeen":{"sec":1488025905,"usec":45238},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}}],"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","muted":false,"name":"","stream_id":"stream 2"}],"server":{"host":{"arch":"x86_64","ip":"","mac":"","name":"T400","os":"Linux Mint 17.3 Rosa"},"snapserver":{"controlProtocolVersion":1,"name":"Snapserver","protocolVersion":1,"version":"0.10.0"}},"streams":[{"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"}},{"id":"stream 2","status":"idle","uri":{"fragment":"","host":"","path":"/tmp/snapfifo","query":{"chunk_ms":"20","codec":"flac","name":"stream 2","sampleformat":"48000:16:2"},"raw":"pipe:///tmp/snapfifo?name=stream 2","scheme":"pipe"}}]}}}
|
||||
```
|
||||
|
||||
### Group.SetName
|
||||
|
||||
#### Request
|
||||
|
||||
```json
|
||||
{"id":7,"jsonrpc":"2.0","method":"Group.SetName","params":{"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","name":"GroundFloor"}}
|
||||
```
|
||||
|
||||
#### Response
|
||||
|
||||
```json
|
||||
{"id":7,"jsonrpc":"2.0","result":{"name":"GroundFloor"}}
|
||||
```
|
||||
|
||||
#### Notification
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Group.OnNameChanged","params":{"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","name":"GroundFloor"}}
|
||||
```
|
||||
|
||||
|
||||
|
||||
### Server.GetRPCVersion
|
||||
|
||||
#### Request
|
||||
|
||||
```json
|
||||
{"id":8,"jsonrpc":"2.0","method":"Server.GetRPCVersion"}
|
||||
```
|
||||
|
||||
#### Response
|
||||
|
||||
```json
|
||||
{"id":8,"jsonrpc":"2.0","result":{"major":2,"minor":0,"patch":0}}
|
||||
```
|
||||
|
||||
|
||||
### Server.GetStatus
|
||||
|
||||
#### Request
|
||||
|
||||
```json
|
||||
{"id":1,"jsonrpc":"2.0","method":"Server.GetStatus"}
|
||||
```
|
||||
|
||||
#### Response
|
||||
|
||||
```json
|
||||
{"id":1,"jsonrpc":"2.0","result":{"server":{"groups":[{"clients":[{"config":{"instance":2,"latency":6,"name":"123 456","volume":{"muted":false,"percent":48}},"connected":true,"host":{"arch":"x86_64","ip":"127.0.0.1","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc#2","lastSeen":{"sec":1488025696,"usec":578142},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}},{"config":{"instance":1,"latency":0,"name":"","volume":{"muted":false,"percent":81}},"connected":true,"host":{"arch":"x86_64","ip":"192.168.0.54","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc","lastSeen":{"sec":1488025696,"usec":611255},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}}],"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","muted":false,"name":"","stream_id":"stream 2"}],"server":{"host":{"arch":"x86_64","ip":"","mac":"","name":"T400","os":"Linux Mint 17.3 Rosa"},"snapserver":{"controlProtocolVersion":1,"name":"Snapserver","protocolVersion":1,"version":"0.10.0"}},"streams":[{"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"}},{"id":"stream 2","status":"idle","uri":{"fragment":"","host":"","path":"/tmp/snapfifo","query":{"chunk_ms":"20","codec":"flac","name":"stream 2","sampleformat":"48000:16:2"},"raw":"pipe:///tmp/snapfifo?name=stream 2","scheme":"pipe"}}]}}}
|
||||
```
|
||||
|
||||
|
||||
### Server.DeleteClient
|
||||
|
||||
#### Request
|
||||
|
||||
```json
|
||||
{"id":2,"jsonrpc":"2.0","method":"Server.DeleteClient","params":{"id":"00:21:6a:7d:74:fc"}}
|
||||
```
|
||||
|
||||
#### Response
|
||||
|
||||
```json
|
||||
{"id":2,"jsonrpc":"2.0","result":{"server":{"groups":[{"clients":[{"config":{"instance":2,"latency":6,"name":"123 456","volume":{"muted":false,"percent":48}},"connected":true,"host":{"arch":"x86_64","ip":"127.0.0.1","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc#2","lastSeen":{"sec":1488025751,"usec":654777},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}}],"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","muted":false,"name":"","stream_id":"stream 2"}],"server":{"host":{"arch":"x86_64","ip":"","mac":"","name":"T400","os":"Linux Mint 17.3 Rosa"},"snapserver":{"controlProtocolVersion":1,"name":"Snapserver","protocolVersion":1,"version":"0.10.0"}},"streams":[{"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"}},{"id":"stream 2","status":"idle","uri":{"fragment":"","host":"","path":"/tmp/snapfifo","query":{"chunk_ms":"20","codec":"flac","name":"stream 2","sampleformat":"48000:16:2"},"raw":"pipe:///tmp/snapfifo?name=stream 2","scheme":"pipe"}}]}}}
|
||||
```
|
||||
|
||||
#### Notification
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Server.OnUpdate","params":{"server":{"groups":[{"clients":[{"config":{"instance":2,"latency":6,"name":"123 456","volume":{"muted":false,"percent":48}},"connected":true,"host":{"arch":"x86_64","ip":"127.0.0.1","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc#2","lastSeen":{"sec":1488025751,"usec":654777},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}}],"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","muted":false,"name":"","stream_id":"stream 2"}],"server":{"host":{"arch":"x86_64","ip":"","mac":"","name":"T400","os":"Linux Mint 17.3 Rosa"},"snapserver":{"controlProtocolVersion":1,"name":"Snapserver","protocolVersion":1,"version":"0.10.0"}},"streams":[{"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"}},{"id":"stream 2","status":"idle","uri":{"fragment":"","host":"","path":"/tmp/snapfifo","query":{"chunk_ms":"20","codec":"flac","name":"stream 2","sampleformat":"48000:16:2"},"raw":"pipe:///tmp/snapfifo?name=stream 2","scheme":"pipe"}}]}}}
|
||||
```
|
||||
|
||||
|
||||
### Stream.AddStream
|
||||
|
||||
#### Request
|
||||
|
||||
```json
|
||||
{"id":8,"jsonrpc":"2.0","method":"Stream.AddStream","params":{"streamUri":"pipe:///tmp/snapfifo?name=stream 2"}}
|
||||
```
|
||||
|
||||
#### Response
|
||||
|
||||
```json
|
||||
{"id":8,"jsonrpc":"2.0","result":{"stream_id":"stream 2"}}
|
||||
```
|
||||
|
||||
|
||||
### Stream.RemoveStream
|
||||
|
||||
#### Request
|
||||
|
||||
```json
|
||||
{"id":8,"jsonrpc":"2.0","method":"Stream.RemoveStream","params":{"id":"stream 2"}}
|
||||
```
|
||||
|
||||
#### Response
|
||||
|
||||
```json
|
||||
{"id":8,"jsonrpc":"2.0","result":{"stream_id":"stream 2"}}
|
||||
```
|
||||
|
||||
|
||||
### Stream.Control
|
||||
|
||||
#### Request
|
||||
|
||||
```json
|
||||
{"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:
|
||||
#### 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
|
||||
* `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
|
||||
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: {}}}
|
||||
|
@ -426,66 +478,78 @@ TODO
|
|||
|
||||
#### 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..)
|
||||
* `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
|
||||
|
||||
### Client.OnConnect
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Client.OnConnect","params":{"client":{"config":{"instance":1,"latency":0,"name":"","volume":{"muted":false,"percent":81}},"connected":true,"host":{"arch":"x86_64","ip":"192.168.0.54","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc","lastSeen":{"sec":1488025524,"usec":876332},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}},"id":"00:21:6a:7d:74:fc"}}
|
||||
```
|
||||
|
||||
### Client.OnDisconnect
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Client.OnDisconnect","params":{"client":{"config":{"instance":1,"latency":0,"name":"","volume":{"muted":false,"percent":81}},"connected":false,"host":{"arch":"x86_64","ip":"192.168.0.54","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc","lastSeen":{"sec":1488025523,"usec":814067},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}},"id":"00:21:6a:7d:74:fc"}}
|
||||
```
|
||||
|
||||
### Client.OnVolumeChanged
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Client.OnVolumeChanged","params":{"id":"00:21:6a:7d:74:fc","volume":{"muted":false,"percent":74}}}
|
||||
```
|
||||
|
||||
### Client.OnLatencyChanged
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Client.OnLatencyChanged","params":{"id":"00:21:6a:7d:74:fc#2","latency":10}}
|
||||
```
|
||||
|
||||
### Client.OnNameChanged
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Client.OnNameChanged","params":{"id":"00:21:6a:7d:74:fc#2","name":"Laptop"}}
|
||||
```
|
||||
|
||||
### Group.OnMute
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Group.OnMute","params":{"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","mute":true}}
|
||||
```
|
||||
|
||||
### Group.OnStreamChanged
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Group.OnStreamChanged","params":{"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","stream_id":"stream 1"}}
|
||||
```
|
||||
|
||||
### Group.OnNameChanged
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Group.OnNameChanged","params":{"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","name":"GroundFloor"}}
|
||||
```
|
||||
|
||||
### Stream.OnUpdate
|
||||
|
||||
```json
|
||||
{"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.OnProperties
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Stream.OnProperties","params":{"id":"stream 1", "metadata": {"album": "some album", "artist": "some artist", "track": "some track"...}}}
|
||||
|
||||
|
@ -493,7 +557,7 @@ TODO
|
|||
```
|
||||
|
||||
### Server.OnUpdate
|
||||
|
||||
```json
|
||||
{"jsonrpc":"2.0","method":"Server.OnUpdate","params":{"server":{"groups":[{"clients":[{"config":{"instance":2,"latency":6,"name":"123 456","volume":{"muted":false,"percent":48}},"connected":true,"host":{"arch":"x86_64","ip":"127.0.0.1","mac":"00:21:6a:7d:74:fc","name":"T400","os":"Linux Mint 17.3 Rosa"},"id":"00:21:6a:7d:74:fc#2","lastSeen":{"sec":1488025751,"usec":654777},"snapclient":{"name":"Snapclient","protocolVersion":2,"version":"0.10.0"}}],"id":"4dcc4e3b-c699-a04b-7f0c-8260d23c43e1","muted":false,"name":"","stream_id":"stream 2"}],"server":{"host":{"arch":"x86_64","ip":"","mac":"","name":"T400","os":"Linux Mint 17.3 Rosa"},"snapserver":{"controlProtocolVersion":1,"name":"Snapserver","protocolVersion":1,"version":"0.10.0"}},"streams":[{"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"}},{"id":"stream 2","status":"idle","uri":{"fragment":"","host":"","path":"/tmp/snapfifo","query":{"chunk_ms":"20","codec":"flac","name":"stream 2","sampleformat":"48000:16:2"},"raw":"pipe:///tmp/snapfifo?name=stream 2","scheme":"pipe"}}]}}}
|
||||
```
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue