Implementation
factory Devices.fromIterable(Iterable<Device> devices) {
final camera = <Device>[];
final microphone = <Device>[];
final speaker = <Device>[];
for (final device in devices) {
switch (device.kind) {
case DeviceKind.videoInput:
camera.add(device);
break;
case DeviceKind.audioInput:
microphone.add(device);
break;
case DeviceKind.audioOutput:
speaker.add(device);
break;
}
}
return Devices(
camera: List.unmodifiable(camera),
microphone: List.unmodifiable(microphone),
speaker: List.unmodifiable(speaker),
);
}