|
| static Map< String, Integer > | levels (Collection< YxcDeviceSnapshot > members) |
| |
| static Map< String, Integer > | readLevels (Collection< String > udns, Reader reader, ExecutorService executor, long timeoutMillis) |
| | Reads the members' volumes in parallel, so a member that does not answer holds nobody else up; a member that is not answered within the time is left out.
|
| |
| static int | average (Map< String, Integer > levels) |
| |
| static Map< String, Integer > | apply (Map< String, Integer > start, int delta) |
| |
The group volume of a server and its clients.
The devices do not pass the volume on by themselves (measured on real devices), so the app does: the slider shows the average of the members' volumes (in percent of each device's own scale), and while it is dragged every member is moved by the same number of percentage points from where it was when the drag began, clamped to 0..100 for each device. Moving from the start values (not from the last step) means dragging back restores every member's own level, also after a member was clamped. Pure.