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
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);

View file

@ -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);

View file

@ -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

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.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();

View file

@ -155,13 +155,8 @@ void StreamServer::onMessageReceived(ControlSession* controlSession, const std::
}
else if (request.method == "Client.SetVolume")
{
clientInfo->config.volume.percent = request.getParam<uint16_t>("volume", 0, 100);
response = clientInfo->config.volume.percent;
}
else if (request.method == "Client.SetMute")
{
clientInfo->config.volume.muted = request.getParam<bool>("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")
{