/* * 作成日: 2009/03/27 */ package jp.ac.fit.asura.nao; /** * カメラのインターフェイス. * * TODO 複数のカメラは一つのCameraインスタンスではなく複数のCameraインスタンスで管理する. * * @author sey * * @version $Id: $ * */ public interface Camera { @Deprecated public enum CameraType { WEBOTS6, V4L2 } public enum CameraID { TOP, BOTTOM; } public enum CameraParam { AWB, AGC, AEC, Brightness, Exposure, Gain, Contrast, Saturation, Hue, RedChroma, BlueChroma, } public enum PixelFormat { RGB444, // Webotsで使用可能. YUYV, // NaoV3Rで使用可能. } public enum Resolution { VGA(640, 480), QVGA(320, 240), QQVGA(160, 120); private int w; private int h; private Resolution(int w, int h) { this.w = w; this.h = h; } public int getWidth() { return w; } public int getHeight() { return h; } } public Image createImage(); @Deprecated public CameraType getType(); public float getHorizontalFieldOfView(); public float getVerticalFieldOfView(); public int getFPS(); public int getParam(CameraID camera, CameraParam id); public Resolution getResolution(); public CameraID getSelectedId(); public boolean isSupported(CameraParam id); public boolean isSupported(Resolution id); public boolean isSupportedFPS(int fps); public void selectCamera(CameraID id); public void setFPS(int fps); public void setParam(CameraID camera, CameraParam id, int value); public void setResolution(Resolution res); public void updateImage(Image img); public void init(); public void before(); public void after(); }