// Path: src/main/java/x/mvmn/gp2srv/camera/CameraProvider.java
// public interface CameraProvider {
// 
// 	public GP2Camera getCamera();
// 
// 	public boolean hasCamera();
// 
// 	public void setCamera(GP2Camera camera);
// }
// 
// Path: src/main/java/x/mvmn/gp2srv/camera/CameraService.java
// public interface CameraService {
// 	public void close();
// 
// 	public byte[] capturePreview();
// 
// 	public CameraService releaseCamera();
// 
// 	public CameraFileSystemEntryBean capture();
// 
// 	public CameraFileSystemEntryBean capture(GP2CameraCaptureType captureType);
// 
// 	public String getSummary();
// 
// 	public GP2CameraEventType waitForSpecificEvent(int timeout, GP2CameraEventType expectedEventType);
// 
// 	public GP2CameraEventType waitForEvent(int timeout);
// 
// 	public List<CameraConfigEntryBean> getConfig();
// 
// 	public Map<String, CameraConfigEntryBean> getConfigAsMap();
// 
// 	public CameraService setConfig(CameraConfigEntryBean configEntry);
// 
// 	public List<CameraFileSystemEntryBean> filesList(final String path, boolean includeFiles, boolean includeFolders, boolean recursive);
// 
// 	public CameraService fileDelete(final String filePath, final String fileName);
// 
// 	public byte[] fileGetContents(final String filePath, final String fileName);
// 
// 	public byte[] fileGetThumb(final String filePath, final String fileName);
// 
// 	public String downloadFile(final String cameraFilePath, final String cameraFileName, final File downloadFolder);
// 
// 	public CameraProvider getCameraProvider();
// }


import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import javax.imageio.ImageIO;
import org.apache.commons.io.IOUtils;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import x.mvmn.gp2srv.camera.CameraProvider;
import x.mvmn.gp2srv.camera.CameraService;
import x.mvmn.gphoto2.jna.Gphoto2Library;
import x.mvmn.jlibgphoto2.api.CameraConfigEntryBean;
import x.mvmn.jlibgphoto2.api.CameraFileSystemEntryBean;
import x.mvmn.jlibgphoto2.api.GP2Camera;
import x.mvmn.jlibgphoto2.api.GP2Camera.GP2CameraCaptureType;
import x.mvmn.jlibgphoto2.api.GP2Camera.GP2CameraEventType;
import x.mvmn.jlibgphoto2.exception.GP2Exception;
package x.mvmn.gp2srv.mock.service.impl;






public class MockCameraServiceImpl implements CameraService {

	protected volatile boolean closed = false;
	protected final Map<String, CameraConfigEntryBean> initialConfig;
	protected final Map<String, CameraConfigEntryBean> config = new ConcurrentHashMap<String, CameraConfigEntryBean>();
	protected final Map<String, CameraFileSystemEntryBean> fsEntries = new ConcurrentHashMap<String, CameraFileSystemEntryBean>();
	protected final AtomicInteger counter = new AtomicInteger(0);
	protected final byte[] mockPicture;
// Path: src/main/java/x/mvmn/gp2srv/camera/CameraProvider.java
// public interface CameraProvider {
// 
// 	public GP2Camera getCamera();
// 
// 	public boolean hasCamera();
// 
// 	public void setCamera(GP2Camera camera);
// }
// 
// Path: src/main/java/x/mvmn/gp2srv/camera/CameraService.java
// public interface CameraService {
// 	public void close();
// 
// 	public byte[] capturePreview();
// 
// 	public CameraService releaseCamera();
// 
// 	public CameraFileSystemEntryBean capture();
// 
// 	public CameraFileSystemEntryBean capture(GP2CameraCaptureType captureType);
// 
// 	public String getSummary();
// 
// 	public GP2CameraEventType waitForSpecificEvent(int timeout, GP2CameraEventType expectedEventType);
// 
// 	public GP2CameraEventType waitForEvent(int timeout);
// 
// 	public List<CameraConfigEntryBean> getConfig();
// 
// 	public Map<String, CameraConfigEntryBean> getConfigAsMap();
// 
// 	public CameraService setConfig(CameraConfigEntryBean configEntry);
// 
// 	public List<CameraFileSystemEntryBean> filesList(final String path, boolean includeFiles, boolean includeFolders, boolean recursive);
// 
// 	public CameraService fileDelete(final String filePath, final String fileName);
// 
// 	public byte[] fileGetContents(final String filePath, final String fileName);
// 
// 	public byte[] fileGetThumb(final String filePath, final String fileName);
// 
// 	public String downloadFile(final String cameraFilePath, final String cameraFileName, final File downloadFolder);
// 
// 	public CameraProvider getCameraProvider();
// }


// Path: src/main/java/x/mvmn/gp2srv/mock/service/impl/MockCameraServiceImpl.java
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import javax.imageio.ImageIO;
import org.apache.commons.io.IOUtils;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import x.mvmn.gp2srv.camera.CameraProvider;
import x.mvmn.gp2srv.camera.CameraService;
import x.mvmn.gphoto2.jna.Gphoto2Library;
import x.mvmn.jlibgphoto2.api.CameraConfigEntryBean;
import x.mvmn.jlibgphoto2.api.CameraFileSystemEntryBean;
import x.mvmn.jlibgphoto2.api.GP2Camera;
import x.mvmn.jlibgphoto2.api.GP2Camera.GP2CameraCaptureType;
import x.mvmn.jlibgphoto2.api.GP2Camera.GP2CameraEventType;
import x.mvmn.jlibgphoto2.exception.GP2Exception;

package x.mvmn.gp2srv.mock.service.impl;






public class MockCameraServiceImpl implements CameraService {

	protected volatile boolean closed = false;
	protected final Map<String, CameraConfigEntryBean> initialConfig;
	protected final Map<String, CameraConfigEntryBean> config = new ConcurrentHashMap<String, CameraConfigEntryBean>();
	protected final Map<String, CameraFileSystemEntryBean> fsEntries = new ConcurrentHashMap<String, CameraFileSystemEntryBean>();
	protected final AtomicInteger counter = new AtomicInteger(0);
	protected final byte[] mockPicture;
	protected final CameraProvider cameraProviderMock;