package com.github.sarxos.webcam; import java.util.ArrayList; import java.util.List; public class WebcamCompositeDriver implements WebcamDriver { private List<WebcamDriver> drivers = new ArrayList<WebcamDriver>(); public WebcamCompositeDriver(WebcamDriver... drivers) { for (WebcamDriver driver : drivers) { this.drivers.add(driver); } } public void add(WebcamDriver driver) { drivers.add(driver); } public List<WebcamDriver> getDrivers() { return drivers; } @Override public List<WebcamDevice> getDevices() { List<WebcamDevice> all = new ArrayList<WebcamDevice>(); for (WebcamDriver driver : drivers) { all.addAll(driver.getDevices()); } return all; } @Override public boolean isThreadSafe() { boolean safe = true; for (WebcamDriver driver : drivers) { safe &= driver.isThreadSafe(); if (!safe) { break; } } return safe; } }