001package com.github.sarxos.webcam; 002 003import java.util.ArrayList; 004import java.util.List; 005 006 007public 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}