001package com.github.sarxos.webcam.ds.fswebcam;
002
003import java.io.File;
004import java.util.ArrayList;
005import java.util.List;
006
007import org.slf4j.Logger;
008import org.slf4j.LoggerFactory;
009
010import com.github.sarxos.webcam.WebcamDevice;
011import com.github.sarxos.webcam.WebcamDiscoverySupport;
012import com.github.sarxos.webcam.WebcamDriver;
013import com.github.sarxos.webcam.ds.fswebcam.impl.VideoDeviceFilenameFilter;
014
015
016public class FsWebcamDriver implements WebcamDriver, WebcamDiscoverySupport {
017
018        private static final Logger LOG = LoggerFactory.getLogger(FsWebcamDriver.class);
019
020        private static final VideoDeviceFilenameFilter VFFILTER = new VideoDeviceFilenameFilter();
021
022        @Override
023        public List<WebcamDevice> getDevices() {
024
025                List<WebcamDevice> devices = new ArrayList<WebcamDevice>();
026
027                for (File vfile : VFFILTER.getVideoFiles()) {
028                        LOG.info("Found video file {}", vfile);
029                        devices.add(new FsWebcamDevice(vfile));
030                }
031
032                return devices;
033        }
034
035        @Override
036        public boolean isThreadSafe() {
037                return false;
038        }
039
040        @Override
041        public long getScanInterval() {
042                return 10000;
043        }
044
045        @Override
046        public boolean isScanPossible() {
047                return true;
048        }
049
050        @Override
051        public String toString() {
052                return getClass().getSimpleName();
053        }
054}