001 package com.github.sarxos.webcam;
002
003 import java.util.ArrayList;
004 import java.util.List;
005
006
007 public class WebcamCompositeDriver implements WebcamDriver {
008
009 private List<WebcamDriver> drivers = new ArrayList<WebcamDriver>();
010
011 public WebcamCompositeDriver(WebcamDriver... drivers) {
012 for (WebcamDriver driver : drivers) {
013 this.drivers.add(driver);
014 }
015 }
016
017 public void add(WebcamDriver driver) {
018 drivers.add(driver);
019 }
020
021 public List<WebcamDriver> getDrivers() {
022 return drivers;
023 }
024
025 @Override
026 public List<WebcamDevice> getDevices() {
027 List<WebcamDevice> all = new ArrayList<WebcamDevice>();
028 for (WebcamDriver driver : drivers) {
029 all.addAll(driver.getDevices());
030 }
031 return all;
032 }
033
034 @Override
035 public boolean isThreadSafe() {
036 boolean safe = true;
037 for (WebcamDriver driver : drivers) {
038 safe &= driver.isThreadSafe();
039 if (!safe) {
040 break;
041 }
042 }
043 return safe;
044 }
045 }