mirror of
https://github.com/badaix/snapcast.git
synced 2025-05-12 08:36:43 +02:00
Send control command as parameter
This commit is contained in:
parent
4064766818
commit
de9e3496df
2 changed files with 37 additions and 30 deletions
|
@ -366,30 +366,33 @@ class MPDWrapper(object):
|
|||
id = request['id']
|
||||
[interface, cmd] = request['method'].split('.', 1)
|
||||
if interface == 'Player':
|
||||
if cmd == 'Control':
|
||||
success = True
|
||||
if cmd == 'Next':
|
||||
command = request['params']['command']
|
||||
params = request['params'].get('params', {})
|
||||
if command == 'Next':
|
||||
self.next()
|
||||
elif cmd == 'Previous':
|
||||
elif command == 'Previous':
|
||||
self.previous()
|
||||
elif cmd == 'Play':
|
||||
elif command == 'Play':
|
||||
self.play()
|
||||
elif cmd == 'Pause':
|
||||
elif command == 'Pause':
|
||||
self.pause(1)
|
||||
elif cmd == 'PlayPause':
|
||||
elif command == 'PlayPause':
|
||||
if self.status()['state'] == 'play':
|
||||
self.pause(1)
|
||||
else:
|
||||
self.play()
|
||||
elif cmd == 'Stop':
|
||||
elif command == 'Stop':
|
||||
self.stop()
|
||||
elif cmd == 'SetPosition':
|
||||
trackid = request['params']['TrackId']
|
||||
elif command == 'SetPosition':
|
||||
trackid = params['TrackId']
|
||||
trackid = trackid.rsplit('/', 1)[1]
|
||||
position = request['params']['Position']
|
||||
position = params['Position']
|
||||
position = int(position) / 1000000
|
||||
self.seekid(int(trackid), position)
|
||||
elif cmd == 'Seek':
|
||||
offset = request['params']['Offset']
|
||||
elif command == 'Seek':
|
||||
offset = params['Offset']
|
||||
offset = int(offset) / 1000000
|
||||
strOffset = str(offset)
|
||||
if offset >= 0:
|
||||
|
|
|
@ -83,6 +83,7 @@ void CtrlScript::send(const jsonrpcpp::Request& request, const OnResponse& respo
|
|||
request_callbacks_[request.id()] = response_handler;
|
||||
|
||||
std::string msg = request.to_json().dump() + "\n";
|
||||
LOG(INFO, SCRIPT_LOG_TAG) << "Sending request: " << msg;
|
||||
in_.write(msg.data(), msg.size());
|
||||
in_.flush();
|
||||
}
|
||||
|
@ -485,7 +486,10 @@ void PcmStream::control(const jsonrpcpp::Request& request, const CtrlScript::OnR
|
|||
LOG(INFO, LOG_TAG) << "Stream '" << getId() << "' received command: '" << command << "', params: '" << request.params().to_json() << "'\n";
|
||||
if (ctrl_script_)
|
||||
{
|
||||
jsonrpcpp::Request req(++req_id_, "Player." + command, request.params().has("params") ? request.params().get("params") : json{});
|
||||
jsonrpcpp::Parameter params{"command", command};
|
||||
if (request.params().has("params"))
|
||||
params.add("params", request.params().get("params"));
|
||||
jsonrpcpp::Request req(++req_id_, "Player.Control", params);
|
||||
ctrl_script_->send(req, response_handler);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue