From b2119af7f4ced0ecfefd4c7388f86b4e3a3ea7d8 Mon Sep 17 00:00:00 2001 From: Ruben Brunk Date: Fri, 9 May 2014 19:57:56 -0700 Subject: camera2: Update CameraService for HAL1 shim. Updates the camera service to handle shim connections. Changes include: - Adds begin/end configure binder calls. - Adds cache for shim client static camera metadata. - Implements basic getCameraCharacteristic functionality for shim clients. Bug: 15116722 Bug: 15117269 Change-Id: I510c5888ca15f8e7d3b8ed1680ff1c7f8f514744 --- include/camera/CameraParameters.h | 13 +++++++++++++ include/camera/camera2/ICameraDeviceUser.h | 21 +++++++++++++++++++++ 2 files changed, 34 insertions(+) (limited to 'include/camera') diff --git a/include/camera/CameraParameters.h b/include/camera/CameraParameters.h index d521543..c6074fc 100644 --- a/include/camera/CameraParameters.h +++ b/include/camera/CameraParameters.h @@ -102,6 +102,12 @@ public: void dump() const; status_t dump(int fd, const Vector& args) const; + /** + * Returns a Vector containing the supported preview formats + * as enums given in graphics.h. + */ + void getSupportedPreviewFormats(Vector& formats) const; + // Parameter keys to communicate between camera application and driver. // The access (read/write, read only, or write only) is viewed from the // perspective of applications, not driver. @@ -674,6 +680,13 @@ public: // High-dynamic range mode static const char LIGHTFX_HDR[]; + /** + * Returns the the supported preview formats as an enum given in graphics.h + * corrsponding to the format given in the input string or -1 if no such + * conversion exists. + */ + static int previewFormatToEnum(const char* format); + private: DefaultKeyedVector mMap; }; diff --git a/include/camera/camera2/ICameraDeviceUser.h b/include/camera/camera2/ICameraDeviceUser.h index 913696f..35488bb 100644 --- a/include/camera/camera2/ICameraDeviceUser.h +++ b/include/camera/camera2/ICameraDeviceUser.h @@ -78,6 +78,27 @@ public: /*out*/ int64_t* lastFrameNumber = NULL) = 0; + /** + * Begin the device configuration. + * + *

+ * beginConfigure must be called before any call to deleteStream, createStream, + * or endConfigure. It is not valid to call this when the device is not idle. + *

+ */ + virtual status_t beginConfigure() = 0; + + /** + * End the device configuration. + * + *

+ * endConfigure must be called after stream configuration is complete (i.e. after + * a call to beginConfigure and subsequent createStream/deleteStream calls). This + * must be called before any requests can be submitted. + *

+ */ + virtual status_t endConfigure() = 0; + virtual status_t deleteStream(int streamId) = 0; virtual status_t createStream( int width, int height, int format, -- cgit v1.1