package com.github.sarxos.webcam.ds.test;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.util.concurrent.atomic.AtomicInteger;
import com.github.sarxos.webcam.WebcamDevice;
import com.github.sarxos.webcam.WebcamException;
public class DummyDevice implements WebcamDevice {
private static final AtomicInteger INSTANCE_NUM = new AtomicInteger(0);
private static final Dimension[] DIMENSIONS = new Dimension[] {
new Dimension(300, 200),
new Dimension(400, 300),
};
private String name = DummyDevice.class.getSimpleName() + "-" + INSTANCE_NUM.incrementAndGet();
private Dimension size = DIMENSIONS[0];
private boolean open = false;
@Override
public String getName() {
return name;
}
@Override
public Dimension[] getResolutions() {
return DIMENSIONS;
}
@Override
public Dimension getResolution() {
return size;
}
@Override
public void setResolution(Dimension size) {
this.size = size;
}
@Override
public BufferedImage getImage() {
if (!open) {
throw new WebcamException("Not open");
}
BufferedImage bi = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bi.createGraphics();
g2.setColor(Color.RED);
g2.fillRect(0, 0, size.width, size.height);
g2.drawString(getName(), 20, 20);
g2.dispose();
bi.flush();
return bi;
}
@Override
public void open() {
open = true;
}
@Override
public void close() {
open = false;
}
public boolean isOpen() {
return open;
}
@Override
public void dispose() {
// do nothing
}
}