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}