Client.SetVolume expects "volume" json object

This commit is contained in:
badaix 2016-12-26 15:58:27 +01:00
parent 37ccdb92fb
commit a133c60661
5 changed files with 19 additions and 43 deletions

View file

@ -90,9 +90,9 @@ public class ClientItem extends LinearLayout implements SeekBar.OnSeekBarChangeL
@Override @Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (fromUser && (listener != null)) { if (fromUser && (listener != null)) {
Volume volume = new Volume(progress, false); Volume volume = client.getConfig().getVolume();
client.setVolume(volume); volume.setPercent(progress);
listener.onVolumeChanged(this, volume.getPercent()); 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 volume = client.getConfig().getVolume();
volume.setMuted(!volume.isMuted()); volume.setMuted(!volume.isMuted());
update(); update();
listener.onMute(this, volume.isMuted()); listener.onVolumeChanged(this, volume.getPercent(), volume.isMuted());
} else if (v == ibOverflow) { } else if (v == ibOverflow) {
PopupMenu popup = new PopupMenu(v.getContext(), v); PopupMenu popup = new PopupMenu(v.getContext(), v);
popup.getMenu().add(Menu.NONE, R.id.menu_details, 0, R.string.menu_details); 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 { public interface ClientItemListener {
void onVolumeChanged(ClientItem clientItem, int percent); void onVolumeChanged(ClientItem clientItem, int percent, boolean mute);
void onMute(ClientItem clientItem, boolean mute);
void onDeleteClicked(ClientItem clientItem); void onDeleteClicked(ClientItem clientItem);

View file

@ -148,15 +148,9 @@ public class GroupItem extends LinearLayout implements SeekBar.OnSeekBarChangeLi
} }
@Override @Override
public void onVolumeChanged(ClientItem clientItem, int percent) { public void onVolumeChanged(ClientItem clientItem, int percent, boolean mute) {
if (listener != null) if (listener != null)
listener.onVolumeChanged(this, clientItem, percent); listener.onVolumeChanged(this, clientItem, percent, mute);
}
@Override
public void onMute(ClientItem clientItem, boolean mute) {
if (listener != null)
listener.onMute(this, clientItem, mute);
} }
@Override @Override
@ -173,9 +167,7 @@ public class GroupItem extends LinearLayout implements SeekBar.OnSeekBarChangeLi
public interface GroupItemListener { public interface GroupItemListener {
void onVolumeChanged(GroupItem group, ClientItem clientItem, int percent); void onVolumeChanged(GroupItem group, ClientItem clientItem, int percent, boolean mute);
void onMute(GroupItem group, ClientItem clientItem, boolean mute);
void onDeleteClicked(GroupItem group, ClientItem clientItem); void onDeleteClicked(GroupItem group, ClientItem clientItem);

View file

@ -545,13 +545,8 @@ public class MainActivity extends AppCompatActivity implements GroupItem.GroupIt
@Override @Override
public void onVolumeChanged(GroupItem groupItem, ClientItem clientItem, int percent) { public void onVolumeChanged(GroupItem groupItem, ClientItem clientItem, int percent, boolean mute) {
remoteControl.setVolume(clientItem.getClient(), percent); remoteControl.setVolume(clientItem.getClient(), percent, mute);
}
@Override
public void onMute(GroupItem groupItem, ClientItem clientItem, boolean mute) {
remoteControl.setMute(clientItem.getClient(), mute);
} }
@Override @Override

View file

@ -32,6 +32,7 @@ import de.badaix.snapcast.control.json.Client;
import de.badaix.snapcast.control.json.Group; import de.badaix.snapcast.control.json.Group;
import de.badaix.snapcast.control.json.ServerStatus; import de.badaix.snapcast.control.json.ServerStatus;
import de.badaix.snapcast.control.json.Stream; import de.badaix.snapcast.control.json.Stream;
import de.badaix.snapcast.control.json.Volume;
/** /**
* Created by johannes on 13.01.16. * 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 { try {
JSONObject request = jsonRequest("Client.SetVolume", new JSONObject("{\"client\": \"" + client.getId() + "\", \"volume\": " + percent + "}")); Volume volume = new Volume(percent, mute);
tcpClient.sendMessage(request.toString()); JSONObject body = new JSONObject();
} catch (JSONException e) { body.put("client", client.getId());
e.printStackTrace(); body.put("volume", volume.toJson());
} JSONObject request = jsonRequest("Client.SetVolume", body);
}
public void setMute(Client client, boolean mute) {
try {
JSONObject request = jsonRequest("Client.SetMute", new JSONObject("{\"client\": \"" + client.getId() + "\", \"mute\": " + mute + "}"));
tcpClient.sendMessage(request.toString()); tcpClient.sendMessage(request.toString());
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); e.printStackTrace();

View file

@ -155,13 +155,8 @@ void StreamServer::onMessageReceived(ControlSession* controlSession, const std::
} }
else if (request.method == "Client.SetVolume") else if (request.method == "Client.SetVolume")
{ {
clientInfo->config.volume.percent = request.getParam<uint16_t>("volume", 0, 100); clientInfo->config.volume.fromJson(request.getParam("volume"));
response = clientInfo->config.volume.percent; response = clientInfo->config.volume.toJson();
}
else if (request.method == "Client.SetMute")
{
clientInfo->config.volume.muted = request.getParam<bool>("mute", false, true);
response = clientInfo->config.volume.muted;
} }
else if (request.method == "Group.SetStream") else if (request.method == "Group.SetStream")
{ {