From 634a51509ee50475f3e9f8ccf897e90fc72ded31 Mon Sep 17 00:00:00 2001 From: Igor Murashkin Date: Wed, 20 Feb 2013 17:15:11 -0800 Subject: Camera: Add ProCamera private binder interface for an API2-light functionality Change-Id: I2af7a807c99df75ea659e6e6acc9c4fca6a56274 --- include/camera/IProCameraCallbacks.h | 57 ++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 include/camera/IProCameraCallbacks.h (limited to 'include/camera/IProCameraCallbacks.h') diff --git a/include/camera/IProCameraCallbacks.h b/include/camera/IProCameraCallbacks.h new file mode 100644 index 0000000..ac1d5eb --- /dev/null +++ b/include/camera/IProCameraCallbacks.h @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ANDROID_HARDWARE_IPROCAMERA_CALLBACKS_H +#define ANDROID_HARDWARE_IPROCAMERA_CALLBACKS_H + +#include +#include +#include +#include +#include +#include + +namespace android { + +class IProCameraCallbacks: public IInterface +{ +public: + DECLARE_META_INTERFACE(ProCameraCallbacks); + + virtual void notifyCallback(int32_t msgType, int32_t ext1, + int32_t ext2) = 0; + virtual void dataCallback(int32_t msgType, + const sp& data, + camera_frame_metadata_t *metadata) = 0; + virtual void dataCallbackTimestamp(nsecs_t timestamp, + int32_t msgType, + const sp& data) = 0; +}; + +// ---------------------------------------------------------------------------- + +class BnProCameraCallbacks: public BnInterface +{ +public: + virtual status_t onTransact( uint32_t code, + const Parcel& data, + Parcel* reply, + uint32_t flags = 0); +}; + +}; // namespace android + +#endif -- cgit v1.1 From 5376573eff55f370f041889618c9a7a9e1894615 Mon Sep 17 00:00:00 2001 From: Igor Murashkin Date: Wed, 20 Feb 2013 17:41:57 -0800 Subject: Camera: ProClient add asynchronous locks and such Change-Id: I551e5e5e76d9be733fab5224beaa7309268c0f38 --- include/camera/IProCameraCallbacks.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'include/camera/IProCameraCallbacks.h') diff --git a/include/camera/IProCameraCallbacks.h b/include/camera/IProCameraCallbacks.h index ac1d5eb..e5be099 100644 --- a/include/camera/IProCameraCallbacks.h +++ b/include/camera/IProCameraCallbacks.h @@ -39,6 +39,14 @@ public: virtual void dataCallbackTimestamp(nsecs_t timestamp, int32_t msgType, const sp& data) = 0; + + enum LockStatus { + LOCK_ACQUIRED, + LOCK_RELEASED, + LOCK_STOLEN, + }; + + virtual void onLockStatusChanged(LockStatus newLockStatus) = 0; }; // ---------------------------------------------------------------------------- -- cgit v1.1 From a91537e268f2b35f9f0dfdc0c4f84655c93285ae Mon Sep 17 00:00:00 2001 From: Igor Murashkin Date: Thu, 21 Feb 2013 12:02:29 -0800 Subject: Camera: ProCamera - implement onResultReceived callback for metadata callbacks Change-Id: I46775402b007244bc383d6343a620eebbd492aad --- include/camera/IProCameraCallbacks.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'include/camera/IProCameraCallbacks.h') diff --git a/include/camera/IProCameraCallbacks.h b/include/camera/IProCameraCallbacks.h index e5be099..fc24026 100644 --- a/include/camera/IProCameraCallbacks.h +++ b/include/camera/IProCameraCallbacks.h @@ -24,6 +24,8 @@ #include #include +struct camera_metadata; + namespace android { class IProCameraCallbacks: public IInterface @@ -47,6 +49,11 @@ public: }; virtual void onLockStatusChanged(LockStatus newLockStatus) = 0; + + /** Missing by design: implementation is client-side in ProCamera.cpp **/ + // virtual void onBufferReceived(int streamId, + // const CpuConsumer::LockedBufer& buf); + virtual void onResultReceived(int32_t frameId, camera_metadata* result) = 0; }; // ---------------------------------------------------------------------------- -- cgit v1.1 From fa4cf9d310685b4c25877cba772ff7da84caf517 Mon Sep 17 00:00:00 2001 From: Igor Murashkin Date: Mon, 4 Mar 2013 16:14:23 -0800 Subject: (Camera)ProCamera: Remove unused functions from binder interface Change-Id: I0582268cef6e84b630bc87c8a03dcd69d54c440d --- include/camera/IProCameraCallbacks.h | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'include/camera/IProCameraCallbacks.h') diff --git a/include/camera/IProCameraCallbacks.h b/include/camera/IProCameraCallbacks.h index fc24026..563ec17 100644 --- a/include/camera/IProCameraCallbacks.h +++ b/include/camera/IProCameraCallbacks.h @@ -28,19 +28,14 @@ struct camera_metadata; namespace android { -class IProCameraCallbacks: public IInterface +class IProCameraCallbacks : public IInterface { public: DECLARE_META_INTERFACE(ProCameraCallbacks); - virtual void notifyCallback(int32_t msgType, int32_t ext1, - int32_t ext2) = 0; - virtual void dataCallback(int32_t msgType, - const sp& data, - camera_frame_metadata_t *metadata) = 0; - virtual void dataCallbackTimestamp(nsecs_t timestamp, - int32_t msgType, - const sp& data) = 0; + virtual void notifyCallback(int32_t msgType, + int32_t ext1, + int32_t ext2) = 0; enum LockStatus { LOCK_ACQUIRED, @@ -53,12 +48,13 @@ public: /** Missing by design: implementation is client-side in ProCamera.cpp **/ // virtual void onBufferReceived(int streamId, // const CpuConsumer::LockedBufer& buf); - virtual void onResultReceived(int32_t frameId, camera_metadata* result) = 0; + virtual void onResultReceived(int32_t frameId, + camera_metadata* result) = 0; }; // ---------------------------------------------------------------------------- -class BnProCameraCallbacks: public BnInterface +class BnProCameraCallbacks : public BnInterface { public: virtual status_t onTransact( uint32_t code, -- cgit v1.1 From bef3f23f16f2fc575b3f425febcfcc436a7db70f Mon Sep 17 00:00:00 2001 From: Igor Murashkin Date: Thu, 30 May 2013 17:47:38 -0700 Subject: camera: Make some binder interfaces compatible with AIDL Done: * ICameraService * ICameraServiceListener Partial: * ICamera (disconnect only) * IProCameraUser (disconnect only) Bug: 9213377 Change-Id: I8e2e6e05cfd02ec36be1d5b2c551f10ffb43b5b4 --- include/camera/IProCameraCallbacks.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'include/camera/IProCameraCallbacks.h') diff --git a/include/camera/IProCameraCallbacks.h b/include/camera/IProCameraCallbacks.h index 563ec17..c774698 100644 --- a/include/camera/IProCameraCallbacks.h +++ b/include/camera/IProCameraCallbacks.h @@ -30,6 +30,9 @@ namespace android { class IProCameraCallbacks : public IInterface { + /** + * Keep up-to-date with IProCameraCallbacks.aidl in frameworks/base + */ public: DECLARE_META_INTERFACE(ProCameraCallbacks); -- cgit v1.1 From f1e98d857ec377f2c9b916073d40732e6ebb7ced Mon Sep 17 00:00:00 2001 From: Eino-Ville Talvala Date: Fri, 6 Sep 2013 09:32:43 -0700 Subject: Camera API 2, Device 2/3: Implement idle and shutter callbacks - Update callback Binder interface - Rename frameId to be requestId to be consistent and disambiguate from frameNumber. - Implement shutter callback from HAL2/3 notify() - Add in-flight tracking to HAL2 - Add requestId to in-flight tracking - Report requestId from shutter callback - Implement idle callback from HAL3 process_capture_result - Add new idle tracker thread - Update all idle waiting to use the tracker - Add reporting from request thread, all streams to tracker - Remove existing idle waiting infrastructure Bug: 10549462 Change-Id: I867bfc248e3848c50e71527e3561fe92dc037958 --- include/camera/IProCameraCallbacks.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/camera/IProCameraCallbacks.h') diff --git a/include/camera/IProCameraCallbacks.h b/include/camera/IProCameraCallbacks.h index c774698..e8abb89 100644 --- a/include/camera/IProCameraCallbacks.h +++ b/include/camera/IProCameraCallbacks.h @@ -51,7 +51,7 @@ public: /** Missing by design: implementation is client-side in ProCamera.cpp **/ // virtual void onBufferReceived(int streamId, // const CpuConsumer::LockedBufer& buf); - virtual void onResultReceived(int32_t frameId, + virtual void onResultReceived(int32_t requestId, camera_metadata* result) = 0; }; -- cgit v1.1