diff options
Diffstat (limited to 'include/camera/CameraParameters.h')
| -rw-r--r-- | include/camera/CameraParameters.h | 105 | 
1 files changed, 91 insertions, 14 deletions
| diff --git a/include/camera/CameraParameters.h b/include/camera/CameraParameters.h index 5ea83a5a020f..7c5371aafe0c 100644 --- a/include/camera/CameraParameters.h +++ b/include/camera/CameraParameters.h @@ -22,6 +22,21 @@  namespace android { +struct Size { +    int width; +    int height; + +    Size() { +        width = 0; +        height = 0; +    } + +    Size(int w, int h) { +        width = w; +        height = h; +    } +}; +  class CameraParameters  {  public: @@ -43,12 +58,15 @@ public:      void setPreviewSize(int width, int height);      void getPreviewSize(int *width, int *height) const; +    void getSupportedPreviewSizes(Vector<Size> &sizes) const;      void setPreviewFrameRate(int fps);      int getPreviewFrameRate() const; +    void getPreviewFpsRange(int *min_fps, int *max_fps) const;      void setPreviewFormat(const char *format);      const char *getPreviewFormat() const;      void setPictureSize(int width, int height);      void getPictureSize(int *width, int *height) const; +    void getSupportedPictureSizes(Vector<Size> &sizes) const;      void setPictureFormat(const char *format);      const char *getPictureFormat() const; @@ -65,13 +83,29 @@ public:      // Supported preview frame sizes in pixels.      // Example value: "800x600,480x320". Read only.      static const char KEY_SUPPORTED_PREVIEW_SIZES[]; -    // The image format for preview frames. +    // The current minimum and maximum preview fps. This controls the rate of +    // preview frames received (CAMERA_MSG_PREVIEW_FRAME). The minimum and +    // maximum fps must be one of the elements from +    // KEY_SUPPORTED_PREVIEW_FPS_RANGE parameter. +    // Example value: "10500,26623" +    static const char KEY_PREVIEW_FPS_RANGE[]; +    // The supported preview fps (frame-per-second) ranges. Each range contains +    // a minimum fps and maximum fps. If minimum fps equals to maximum fps, the +    // camera outputs frames in fixed frame rate. If not, the camera outputs +    // frames in auto frame rate. The actual frame rate fluctuates between the +    // minimum and the maximum. The list has at least one element. The list is +    // sorted from small to large (first by maximum fps and then minimum fps). +    // Example value: "(10500,26623),(15000,26623),(30000,30000)" +    static const char KEY_SUPPORTED_PREVIEW_FPS_RANGE[]; +    // The image format for preview frames. See CAMERA_MSG_PREVIEW_FRAME in +    // frameworks/base/include/camera/Camera.h.      // Example value: "yuv420sp" or PIXEL_FORMAT_XXX constants. Read/write.      static const char KEY_PREVIEW_FORMAT[];      // Supported image formats for preview frames.      // Example value: "yuv420sp,yuv422i-yuyv". Read only.      static const char KEY_SUPPORTED_PREVIEW_FORMATS[]; -    // Number of preview frames per second. +    // Number of preview frames per second. This is the target frame rate. The +    // actual frame rate depends on the driver.      // Example value: "15". Read/write.      static const char KEY_PREVIEW_FRAME_RATE[];      // Supported number of preview frames per second. @@ -83,7 +117,8 @@ public:      // Supported dimensions for captured pictures in pixels.      // Example value: "2048x1536,1024x768". Read only.      static const char KEY_SUPPORTED_PICTURE_SIZES[]; -    // The image format for captured pictures. +    // The image format for captured pictures. See CAMERA_MSG_COMPRESSED_IMAGE +    // in frameworks/base/include/camera/Camera.h.      // Example value: "jpeg" or PIXEL_FORMAT_XXX constants. Read/write.      static const char KEY_PICTURE_FORMAT[];      // Supported image formats for captured pictures. @@ -119,14 +154,17 @@ public:      // should not set default value for this parameter.      // Example value: "0" or "90" or "180" or "270". Write only.      static const char KEY_ROTATION[]; -    // GPS latitude coordinate. This will be stored in JPEG EXIF header. -    // Example value: "25.032146". Write only. +    // GPS latitude coordinate. GPSLatitude and GPSLatitudeRef will be stored in +    // JPEG EXIF header. +    // Example value: "25.032146" or "-33.462809". Write only.      static const char KEY_GPS_LATITUDE[]; -    // GPS longitude coordinate. This will be stored in JPEG EXIF header. -    // Example value: "121.564448". Write only. +    // GPS longitude coordinate. GPSLongitude and GPSLongitudeRef will be stored +    // in JPEG EXIF header. +    // Example value: "121.564448" or "-70.660286". Write only.      static const char KEY_GPS_LONGITUDE[]; -    // GPS altitude. This will be stored in JPEG EXIF header. -    // Example value: "21.0". Write only. +    // GPS altitude. GPSAltitude and GPSAltitudeRef will be stored in JPEG EXIF +    // header. +    // Example value: "21.0" or "-5". Write only.      static const char KEY_GPS_ALTITUDE[];      // GPS timestamp (UTC in seconds since January 1, 1970). This should be      // stored in JPEG EXIF header. @@ -165,10 +203,9 @@ public:      // Supported flash modes.      // Example value: "auto,on,off". Read only.      static const char KEY_SUPPORTED_FLASH_MODES[]; -    // Current focus mode. If the camera does not support auto-focus, the value -    // should be FOCUS_MODE_FIXED. If the focus mode is not FOCUS_MODE_FIXED or -    // or FOCUS_MODE_INFINITY, applications should call -    // CameraHardwareInterface.autoFocus to start the focus. +    // Current focus mode. This will not be empty. Applications should call +    // CameraHardwareInterface.autoFocus to start the focus if focus mode is +    // FOCUS_MODE_AUTO or FOCUS_MODE_MACRO.      // Example value: "auto" or FOCUS_MODE_XXX constants. Read/write.      static const char KEY_FOCUS_MODE[];      // Supported focus modes. @@ -221,9 +258,40 @@ public:      // Example value: "true". Read only.      static const char KEY_SMOOTH_ZOOM_SUPPORTED[]; +    // The distances (in meters) from the camera to where an object appears to +    // be in focus. The object is sharpest at the optimal focus distance. The +    // depth of field is the far focus distance minus near focus distance. +    // +    // Focus distances may change after starting auto focus, canceling auto +    // focus, or starting the preview. Applications can read this anytime to get +    // the latest focus distances. If the focus mode is FOCUS_MODE_CONTINUOUS, +    // focus distances may change from time to time. +    // +    // This is intended to estimate the distance between the camera and the +    // subject. After autofocus, the subject distance may be within near and far +    // focus distance. However, the precision depends on the camera hardware, +    // autofocus algorithm, the focus area, and the scene. The error can be +    // large and it should be only used as a reference. +    // +    // Far focus distance > optimal focus distance > near focus distance. If +    // the far focus distance is infinity, the value should be "Infinity" (case +    // sensitive). The format is three float values separated by commas. The +    // first is near focus distance. The second is optimal focus distance. The +    // third is far focus distance. +    // Example value: "0.95,1.9,Infinity" or "0.049,0.05,0.051". Read only. +    static const char KEY_FOCUS_DISTANCES[]; + +    // The image format for video frames. See CAMERA_MSG_VIDEO_FRAME in +    // frameworks/base/include/camera/Camera.h. +    // Example value: "yuv420sp" or PIXEL_FORMAT_XXX constants. Read only. +    static const char KEY_VIDEO_FRAME_FORMAT[]; +      // Value for KEY_ZOOM_SUPPORTED or KEY_SMOOTH_ZOOM_SUPPORTED.      static const char TRUE[]; +    // Value for KEY_FOCUS_DISTANCES. +    static const char FOCUS_DISTANCE_INFINITY[]; +      // Values for white balance settings.      static const char WHITE_BALANCE_AUTO[];      static const char WHITE_BALANCE_INCANDESCENT[]; @@ -294,11 +362,14 @@ public:      static const char PIXEL_FORMAT_JPEG[];      // Values for focus mode settings. -    // Auto-focus mode. +    // Auto-focus mode. Applications should call +    // CameraHardwareInterface.autoFocus to start the focus in this mode.      static const char FOCUS_MODE_AUTO[];      // Focus is set at infinity. Applications should not call      // CameraHardwareInterface.autoFocus in this mode.      static const char FOCUS_MODE_INFINITY[]; +    // Macro (close-up) focus mode. Applications should call +    // CameraHardwareInterface.autoFocus to start the focus in this mode.      static const char FOCUS_MODE_MACRO[];      // Focus is fixed. The camera is always in this mode if the focus is not      // adjustable. If the camera has auto-focus, this mode can fix the @@ -309,6 +380,12 @@ public:      // continuously. Applications should not call      // CameraHardwareInterface.autoFocus in this mode.      static const char FOCUS_MODE_EDOF[]; +    // Continuous auto focus mode. The camera continuously tries to focus. This +    // is ideal for shooting video or shooting photo of moving object. Auto +    // focus starts when the parameter is set. Applications should not call +    // CameraHardwareInterface.autoFocus in this mode.  To stop continuous +    // focus, applications should change the focus mode to other modes. +    static const char FOCUS_MODE_CONTINUOUS[];  private:      DefaultKeyedVector<String8,String8>    mMap; | 
