[squeezebox] Fix NumberFormatException when parsing status message (#13010)
* Fix NumberFormatException when parsing status message Signed-off-by: Mark Hilbush <mark@hilbush.com>
This commit is contained in:
parent
1a557fe17c
commit
7e151e8fce
|
@ -680,88 +680,93 @@ public class SqueezeBoxServerHandler extends BaseBridgeHandler {
|
||||||
String artworkUrl = null;
|
String artworkUrl = null;
|
||||||
|
|
||||||
for (KeyValue entry : decodeKeyValueResponse(messageParts)) {
|
for (KeyValue entry : decodeKeyValueResponse(messageParts)) {
|
||||||
// Parameter Power
|
try {
|
||||||
if ("power".equals(entry.key)) {
|
// Parameter Power
|
||||||
final boolean power = "1".equals(entry.value);
|
if ("power".equals(entry.key)) {
|
||||||
updatePlayer(listener -> listener.powerChangeEvent(mac, power));
|
final boolean power = "1".equals(entry.value);
|
||||||
}
|
updatePlayer(listener -> listener.powerChangeEvent(mac, power));
|
||||||
// Parameter Volume
|
}
|
||||||
else if ("mixer volume".equals(entry.key)) {
|
// Parameter Volume
|
||||||
final int volume = (int) Double.parseDouble(entry.value);
|
else if ("mixer volume".equals(entry.key)) {
|
||||||
updatePlayer(listener -> listener.absoluteVolumeChangeEvent(mac, volume));
|
final int volume = (int) Double.parseDouble(entry.value);
|
||||||
}
|
updatePlayer(listener -> listener.absoluteVolumeChangeEvent(mac, volume));
|
||||||
// Parameter Mode
|
}
|
||||||
else if ("mode".equals(entry.key)) {
|
// Parameter Mode
|
||||||
updatePlayer(listener -> listener.modeChangeEvent(mac, entry.value));
|
else if ("mode".equals(entry.key)) {
|
||||||
}
|
updatePlayer(listener -> listener.modeChangeEvent(mac, entry.value));
|
||||||
// Parameter Playing Time
|
}
|
||||||
else if ("time".equals(entry.key)) {
|
// Parameter Playing Time
|
||||||
final int time = (int) Double.parseDouble(entry.value);
|
else if ("time".equals(entry.key) && !"N/A".equals(entry.value)) {
|
||||||
updatePlayer(listener -> listener.currentPlayingTimeEvent(mac, time));
|
final int time = (int) Double.parseDouble(entry.value);
|
||||||
}
|
updatePlayer(listener -> listener.currentPlayingTimeEvent(mac, time));
|
||||||
// Parameter duration
|
}
|
||||||
else if ("duration".equals(entry.key)) {
|
// Parameter duration
|
||||||
final int duration = (int) Double.parseDouble(entry.value);
|
else if ("duration".equals(entry.key)) {
|
||||||
updatePlayer(listener -> listener.durationEvent(mac, duration));
|
final int duration = (int) Double.parseDouble(entry.value);
|
||||||
}
|
updatePlayer(listener -> listener.durationEvent(mac, duration));
|
||||||
// Parameter Playing Playlist Index
|
}
|
||||||
else if ("playlist_cur_index".equals(entry.key)) {
|
// Parameter Playing Playlist Index
|
||||||
final int index = (int) Double.parseDouble(entry.value);
|
else if ("playlist_cur_index".equals(entry.key)) {
|
||||||
updatePlayer(listener -> listener.currentPlaylistIndexEvent(mac, index));
|
final int index = (int) Double.parseDouble(entry.value);
|
||||||
}
|
updatePlayer(listener -> listener.currentPlaylistIndexEvent(mac, index));
|
||||||
// Parameter Playlist Number Tracks
|
}
|
||||||
else if ("playlist_tracks".equals(entry.key)) {
|
// Parameter Playlist Number Tracks
|
||||||
final int track = (int) Double.parseDouble(entry.value);
|
else if ("playlist_tracks".equals(entry.key)) {
|
||||||
updatePlayer(listener -> listener.numberPlaylistTracksEvent(mac, track));
|
final int track = (int) Double.parseDouble(entry.value);
|
||||||
}
|
updatePlayer(listener -> listener.numberPlaylistTracksEvent(mac, track));
|
||||||
// Parameter Playlist Repeat Mode
|
}
|
||||||
else if ("playlist repeat".equals(entry.key)) {
|
// Parameter Playlist Repeat Mode
|
||||||
final int repeat = (int) Double.parseDouble(entry.value);
|
else if ("playlist repeat".equals(entry.key)) {
|
||||||
updatePlayer(listener -> listener.currentPlaylistRepeatEvent(mac, repeat));
|
final int repeat = (int) Double.parseDouble(entry.value);
|
||||||
}
|
updatePlayer(listener -> listener.currentPlaylistRepeatEvent(mac, repeat));
|
||||||
// Parameter Playlist Shuffle Mode
|
}
|
||||||
else if ("playlist shuffle".equals(entry.key)) {
|
// Parameter Playlist Shuffle Mode
|
||||||
final int shuffle = (int) Double.parseDouble(entry.value);
|
else if ("playlist shuffle".equals(entry.key)) {
|
||||||
updatePlayer(listener -> listener.currentPlaylistShuffleEvent(mac, shuffle));
|
final int shuffle = (int) Double.parseDouble(entry.value);
|
||||||
}
|
updatePlayer(listener -> listener.currentPlaylistShuffleEvent(mac, shuffle));
|
||||||
// Parameter Title
|
}
|
||||||
else if ("title".equals(entry.key)) {
|
// Parameter Title
|
||||||
updatePlayer(listener -> listener.titleChangeEvent(mac, entry.value));
|
else if ("title".equals(entry.key)) {
|
||||||
}
|
updatePlayer(listener -> listener.titleChangeEvent(mac, entry.value));
|
||||||
// Parameter Remote Title (radio)
|
}
|
||||||
else if ("remote_title".equals(entry.key)) {
|
// Parameter Remote Title (radio)
|
||||||
remoteTitle = entry.value;
|
else if ("remote_title".equals(entry.key)) {
|
||||||
}
|
remoteTitle = entry.value;
|
||||||
// Parameter Artist
|
}
|
||||||
else if ("artist".equals(entry.key)) {
|
// Parameter Artist
|
||||||
artist = entry.value;
|
else if ("artist".equals(entry.key)) {
|
||||||
}
|
artist = entry.value;
|
||||||
// Parameter Album
|
}
|
||||||
else if ("album".equals(entry.key)) {
|
// Parameter Album
|
||||||
album = entry.value;
|
else if ("album".equals(entry.key)) {
|
||||||
}
|
album = entry.value;
|
||||||
// Parameter Genre
|
}
|
||||||
else if ("genre".equals(entry.key)) {
|
// Parameter Genre
|
||||||
genre = entry.value;
|
else if ("genre".equals(entry.key)) {
|
||||||
}
|
genre = entry.value;
|
||||||
// Parameter Year
|
}
|
||||||
else if ("year".equals(entry.key)) {
|
// Parameter Year
|
||||||
year = entry.value;
|
else if ("year".equals(entry.key)) {
|
||||||
}
|
year = entry.value;
|
||||||
// Parameter artwork_url contains url to cover art
|
}
|
||||||
else if ("artwork_url".equals(entry.key)) {
|
// Parameter artwork_url contains url to cover art
|
||||||
artworkUrl = entry.value;
|
else if ("artwork_url".equals(entry.key)) {
|
||||||
}
|
artworkUrl = entry.value;
|
||||||
// When coverart is "1" coverid will contain a unique coverart id
|
}
|
||||||
else if ("coverart".equals(entry.key)) {
|
// When coverart is "1" coverid will contain a unique coverart id
|
||||||
coverart = "1".equals(entry.value);
|
else if ("coverart".equals(entry.key)) {
|
||||||
}
|
coverart = "1".equals(entry.value);
|
||||||
// Id for covert art (only valid when coverart is "1")
|
}
|
||||||
else if ("coverid".equals(entry.key)) {
|
// Id for covert art (only valid when coverart is "1")
|
||||||
coverid = entry.value;
|
else if ("coverid".equals(entry.key)) {
|
||||||
} else {
|
coverid = entry.value;
|
||||||
// Added to be able to see additional status message types
|
} else {
|
||||||
logger.trace("Unhandled status message type '{}' (value '{}')", entry.key, entry.value);
|
// Added to be able to see additional status message types
|
||||||
|
logger.trace("Unhandled status message type '{}' (value '{}')", entry.key, entry.value);
|
||||||
|
}
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
// Skip this key/value
|
||||||
|
logger.debug("Cannot parse number in status message: key '{}', value '{}'", entry.key, entry.value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue