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}