From a133c606619ea52651e6af977d9a1271a5762c2d Mon Sep 17 00:00:00 2001 From: badaix Date: Mon, 26 Dec 2016 15:58:27 +0100 Subject: [PATCH] Client.SetVolume expects "volume" json object --- .../java/de/badaix/snapcast/ClientItem.java | 12 +++++------- .../java/de/badaix/snapcast/GroupItem.java | 14 +++----------- .../java/de/badaix/snapcast/MainActivity.java | 9 ++------- .../badaix/snapcast/control/RemoteControl.java | 18 +++++++----------- server/streamServer.cpp | 9 ++------- 5 files changed, 19 insertions(+), 43 deletions(-) diff --git a/android/Snapcast/src/main/java/de/badaix/snapcast/ClientItem.java b/android/Snapcast/src/main/java/de/badaix/snapcast/ClientItem.java index fdc305cf..13fe7ee5 100644 --- a/android/Snapcast/src/main/java/de/badaix/snapcast/ClientItem.java +++ b/android/Snapcast/src/main/java/de/badaix/snapcast/ClientItem.java @@ -90,9 +90,9 @@ public class ClientItem extends LinearLayout implements SeekBar.OnSeekBarChangeL @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser && (listener != null)) { - Volume volume = new Volume(progress, false); - client.setVolume(volume); - listener.onVolumeChanged(this, volume.getPercent()); + Volume volume = client.getConfig().getVolume(); + volume.setPercent(progress); + listener.onVolumeChanged(this, volume.getPercent(), volume.isMuted()); } } @@ -102,7 +102,7 @@ public class ClientItem extends LinearLayout implements SeekBar.OnSeekBarChangeL Volume volume = client.getConfig().getVolume(); volume.setMuted(!volume.isMuted()); update(); - listener.onMute(this, volume.isMuted()); + listener.onVolumeChanged(this, volume.getPercent(), volume.isMuted()); } else if (v == ibOverflow) { PopupMenu popup = new PopupMenu(v.getContext(), v); popup.getMenu().add(Menu.NONE, R.id.menu_details, 0, R.string.menu_details); @@ -138,9 +138,7 @@ public class ClientItem extends LinearLayout implements SeekBar.OnSeekBarChangeL } public interface ClientItemListener { - void onVolumeChanged(ClientItem clientItem, int percent); - - void onMute(ClientItem clientItem, boolean mute); + void onVolumeChanged(ClientItem clientItem, int percent, boolean mute); void onDeleteClicked(ClientItem clientItem); diff --git a/android/Snapcast/src/main/java/de/badaix/snapcast/GroupItem.java b/android/Snapcast/src/main/java/de/badaix/snapcast/GroupItem.java index 299ce9ea..353f86db 100644 --- a/android/Snapcast/src/main/java/de/badaix/snapcast/GroupItem.java +++ b/android/Snapcast/src/main/java/de/badaix/snapcast/GroupItem.java @@ -148,15 +148,9 @@ public class GroupItem extends LinearLayout implements SeekBar.OnSeekBarChangeLi } @Override - public void onVolumeChanged(ClientItem clientItem, int percent) { + public void onVolumeChanged(ClientItem clientItem, int percent, boolean mute) { if (listener != null) - listener.onVolumeChanged(this, clientItem, percent); - } - - @Override - public void onMute(ClientItem clientItem, boolean mute) { - if (listener != null) - listener.onMute(this, clientItem, mute); + listener.onVolumeChanged(this, clientItem, percent, mute); } @Override @@ -173,9 +167,7 @@ public class GroupItem extends LinearLayout implements SeekBar.OnSeekBarChangeLi public interface GroupItemListener { - void onVolumeChanged(GroupItem group, ClientItem clientItem, int percent); - - void onMute(GroupItem group, ClientItem clientItem, boolean mute); + void onVolumeChanged(GroupItem group, ClientItem clientItem, int percent, boolean mute); void onDeleteClicked(GroupItem group, ClientItem clientItem); diff --git a/android/Snapcast/src/main/java/de/badaix/snapcast/MainActivity.java b/android/Snapcast/src/main/java/de/badaix/snapcast/MainActivity.java index 6ec15fee..21c98729 100644 --- a/android/Snapcast/src/main/java/de/badaix/snapcast/MainActivity.java +++ b/android/Snapcast/src/main/java/de/badaix/snapcast/MainActivity.java @@ -545,13 +545,8 @@ public class MainActivity extends AppCompatActivity implements GroupItem.GroupIt @Override - public void onVolumeChanged(GroupItem groupItem, ClientItem clientItem, int percent) { - remoteControl.setVolume(clientItem.getClient(), percent); - } - - @Override - public void onMute(GroupItem groupItem, ClientItem clientItem, boolean mute) { - remoteControl.setMute(clientItem.getClient(), mute); + public void onVolumeChanged(GroupItem groupItem, ClientItem clientItem, int percent, boolean mute) { + remoteControl.setVolume(clientItem.getClient(), percent, mute); } @Override diff --git a/android/Snapcast/src/main/java/de/badaix/snapcast/control/RemoteControl.java b/android/Snapcast/src/main/java/de/badaix/snapcast/control/RemoteControl.java index 1c7470bd..4bca1f41 100644 --- a/android/Snapcast/src/main/java/de/badaix/snapcast/control/RemoteControl.java +++ b/android/Snapcast/src/main/java/de/badaix/snapcast/control/RemoteControl.java @@ -32,6 +32,7 @@ import de.badaix.snapcast.control.json.Client; import de.badaix.snapcast.control.json.Group; import de.badaix.snapcast.control.json.ServerStatus; import de.badaix.snapcast.control.json.Stream; +import de.badaix.snapcast.control.json.Volume; /** * Created by johannes on 13.01.16. @@ -238,18 +239,13 @@ public class RemoteControl implements TcpClient.TcpClientListener { } } - public void setVolume(Client client, int percent) { + public void setVolume(Client client, int percent, boolean mute) { try { - JSONObject request = jsonRequest("Client.SetVolume", new JSONObject("{\"client\": \"" + client.getId() + "\", \"volume\": " + percent + "}")); - tcpClient.sendMessage(request.toString()); - } catch (JSONException e) { - e.printStackTrace(); - } - } - - public void setMute(Client client, boolean mute) { - try { - JSONObject request = jsonRequest("Client.SetMute", new JSONObject("{\"client\": \"" + client.getId() + "\", \"mute\": " + mute + "}")); + Volume volume = new Volume(percent, mute); + JSONObject body = new JSONObject(); + body.put("client", client.getId()); + body.put("volume", volume.toJson()); + JSONObject request = jsonRequest("Client.SetVolume", body); tcpClient.sendMessage(request.toString()); } catch (JSONException e) { e.printStackTrace(); diff --git a/server/streamServer.cpp b/server/streamServer.cpp index bee756ab..5aaee1a9 100644 --- a/server/streamServer.cpp +++ b/server/streamServer.cpp @@ -155,13 +155,8 @@ void StreamServer::onMessageReceived(ControlSession* controlSession, const std:: } else if (request.method == "Client.SetVolume") { - clientInfo->config.volume.percent = request.getParam("volume", 0, 100); - response = clientInfo->config.volume.percent; - } - else if (request.method == "Client.SetMute") - { - clientInfo->config.volume.muted = request.getParam("mute", false, true); - response = clientInfo->config.volume.muted; + clientInfo->config.volume.fromJson(request.getParam("volume")); + response = clientInfo->config.volume.toJson(); } else if (request.method == "Group.SetStream") {