import java.net.Socket;
import java.net.SocketTimeoutException;
+import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.denonmarantz.internal.config.DenonMarantzConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private OutputStreamWriter out;
- private BufferedReader in;
+ private @Nullable BufferedReader in;
public DenonMarantzTelnetClientThread(DenonMarantzConfiguration config, DenonMarantzTelnetListener listener) {
logger.debug("Denon listener created");
do {
try {
- String line = in.readLine();
+ String line = null;
+ BufferedReader in = this.in;
+ if (in != null) {
+ line = in.readLine();
+ }
if (line == null) {
logger.debug("No more data read from client. Disconnecting..");
listener.telnetClientConnected(false);
state.setInput(value);
break;
case "PW": // Power
- if (value.equals("ON") || value.equals("STANDBY")) {
- state.setPower(value.equals("ON"));
+ if ("ON".equals(value) || "STANDBY".equals(value)) {
+ state.setPower("ON".equals(value));
}
break;
case "MS": // Main zone surround program
}
break;
case "MU": // Main zone mute
- if (value.equals("ON") || value.equals("OFF")) {
- state.setMute(value.equals("ON"));
+ if ("ON".equals(value) || "OFF".equals(value)) {
+ state.setMute("ON".equals(value));
}
break;
case "NS": // Now playing information
processTitleCommand(value);
break;
case "Z2": // Zone 2
- if (value.equals("ON") || value.equals("OFF")) {
- state.setZone2Power(value.equals("ON"));
- } else if (value.equals("MUON") || value.equals("MUOFF")) {
- state.setZone2Mute(value.equals("MUON"));
+ if ("ON".equals(value) || "OFF".equals(value)) {
+ state.setZone2Power("ON".equals(value));
+ } else if ("MUON".equals(value) || "MUOFF".equals(value)) {
+ state.setZone2Mute("MUON".equals(value));
} else if (value.chars().allMatch(Character::isDigit)) {
state.setZone2Volume(fromDenonValue(value));
} else {
}
break;
case "Z3": // Zone 3
- if (value.equals("ON") || value.equals("OFF")) {
- state.setZone3Power(value.equals("ON"));
- } else if (value.equals("MUON") || value.equals("MUOFF")) {
- state.setZone3Mute(value.equals("MUON"));
+ if ("ON".equals(value) || "OFF".equals(value)) {
+ state.setZone3Power("ON".equals(value));
+ } else if ("MUON".equals(value) || "MUOFF".equals(value)) {
+ state.setZone3Mute("MUON".equals(value));
} else if (value.chars().allMatch(Character::isDigit)) {
state.setZone3Volume(fromDenonValue(value));
} else {
}
break;
case "Z4": // Zone 4
- if (value.equals("ON") || value.equals("OFF")) {
- state.setZone4Power(value.equals("ON"));
- } else if (value.equals("MUON") || value.equals("MUOFF")) {
- state.setZone4Mute(value.equals("MUON"));
+ if ("ON".equals(value) || "OFF".equals(value)) {
+ state.setZone4Power("ON".equals(value));
+ } else if ("MUON".equals(value) || "MUOFF".equals(value)) {
+ state.setZone4Mute("MUON".equals(value));
} else if (value.chars().allMatch(Character::isDigit)) {
state.setZone4Volume(fromDenonValue(value));
} else {
}
break;
case "ZM": // Main zone
- if (value.equals("ON") || value.equals("OFF")) {
- state.setMainZonePower(value.equals("ON"));
+ if ("ON".equals(value) || "OFF".equals(value)) {
+ state.setMainZonePower("ON".equals(value));
}
break;
}