package com.github.sarxos.webcam.ds.jmf;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
import javax.media.CaptureDeviceInfo;
import javax.media.CaptureDeviceManager;
import javax.media.Format;
import com.github.sarxos.webcam.WebcamDevice;
import com.github.sarxos.webcam.WebcamDriver;
public class JmfDriver implements WebcamDriver {
private static List<WebcamDevice> devices = null;
@Override
public List<WebcamDevice> getDevices() {
if (devices == null) {
devices = new ArrayList<WebcamDevice>();
@SuppressWarnings("unchecked")
Vector<Object> cdis = CaptureDeviceManager.getDeviceList(new Format("RGB"));
Iterator<Object> di = cdis.iterator();
while (di.hasNext()) {
CaptureDeviceInfo cdi = (CaptureDeviceInfo) di.next();
devices.add(new JmfDevice(cdi));
}
}
return devices;
}
@Override
public boolean isThreadSafe() {
return false;
}
@Override
public String toString() {
return getClass().getSimpleName();
}
}