diff options
author | Ruben Brunk <rubenbrunk@google.com> | 2013-08-17 00:29:13 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-08-17 00:29:13 +0000 |
commit | e9f3a3141c2eaafa3a5a3417d1e5682a909c5b31 (patch) | |
tree | bc27152b22072be2e18ab9c01bf86c852d0b902e /include | |
parent | 1cb4e1661e4144cb188c2c79b89804fcb902fd19 (diff) | |
parent | 0f61d8f14aa368c9cd7076528e8096e10ed100a0 (diff) | |
download | frameworks_av-e9f3a3141c2eaafa3a5a3417d1e5682a909c5b31.zip frameworks_av-e9f3a3141c2eaafa3a5a3417d1e5682a909c5b31.tar.gz frameworks_av-e9f3a3141c2eaafa3a5a3417d1e5682a909c5b31.tar.bz2 |
Merge "Refactor CameraService to handle errors properly." into klp-dev
Diffstat (limited to 'include')
-rw-r--r-- | include/camera/Camera.h | 6 | ||||
-rw-r--r-- | include/camera/CameraBase.h | 7 | ||||
-rw-r--r-- | include/camera/ICameraService.h | 18 | ||||
-rw-r--r-- | include/camera/ProCamera.h | 7 |
4 files changed, 29 insertions, 9 deletions
diff --git a/include/camera/Camera.h b/include/camera/Camera.h index c34b3ea..81848b3 100644 --- a/include/camera/Camera.h +++ b/include/camera/Camera.h @@ -51,8 +51,14 @@ struct CameraTraits<Camera> typedef CameraListener TCamListener; typedef ICamera TCamUser; typedef ICameraClient TCamCallbacks; + typedef status_t (ICameraService::*TCamConnectService)(const sp<ICameraClient>&, + int, const String16&, int, + /*out*/ + sp<ICamera>&); + static TCamConnectService fnConnectService; }; + class Camera : public CameraBase<Camera>, public BnCameraClient diff --git a/include/camera/CameraBase.h b/include/camera/CameraBase.h index 9b08c0f..1b93157 100644 --- a/include/camera/CameraBase.h +++ b/include/camera/CameraBase.h @@ -54,9 +54,10 @@ template <typename TCam, typename TCamTraits = CameraTraits<TCam> > class CameraBase : public IBinder::DeathRecipient { public: - typedef typename TCamTraits::TCamListener TCamListener; - typedef typename TCamTraits::TCamUser TCamUser; - typedef typename TCamTraits::TCamCallbacks TCamCallbacks; + typedef typename TCamTraits::TCamListener TCamListener; + typedef typename TCamTraits::TCamUser TCamUser; + typedef typename TCamTraits::TCamCallbacks TCamCallbacks; + typedef typename TCamTraits::TCamConnectService TCamConnectService; static sp<TCam> connect(int cameraId, const String16& clientPackageName, diff --git a/include/camera/ICameraService.h b/include/camera/ICameraService.h index fa715b7..0e10699 100644 --- a/include/camera/ICameraService.h +++ b/include/camera/ICameraService.h @@ -71,21 +71,27 @@ public: * clientUid == USE_CALLING_UID, then the calling UID is used instead. Only * trusted callers can set a clientUid other than USE_CALLING_UID. */ - virtual sp<ICamera> connect(const sp<ICameraClient>& cameraClient, + virtual status_t connect(const sp<ICameraClient>& cameraClient, int cameraId, const String16& clientPackageName, - int clientUid) = 0; + int clientUid, + /*out*/ + sp<ICamera>& device) = 0; - virtual sp<IProCameraUser> connect(const sp<IProCameraCallbacks>& cameraCb, + virtual status_t connectPro(const sp<IProCameraCallbacks>& cameraCb, int cameraId, const String16& clientPackageName, - int clientUid) = 0; + int clientUid, + /*out*/ + sp<IProCameraUser>& device) = 0; - virtual sp<ICameraDeviceUser> connect( + virtual status_t connectDevice( const sp<ICameraDeviceCallbacks>& cameraCb, int cameraId, const String16& clientPackageName, - int clientUid) = 0; + int clientUid, + /*out*/ + sp<ICameraDeviceUser>& device) = 0; }; // ---------------------------------------------------------------------------- diff --git a/include/camera/ProCamera.h b/include/camera/ProCamera.h index 3d1652f..d9ee662 100644 --- a/include/camera/ProCamera.h +++ b/include/camera/ProCamera.h @@ -25,6 +25,7 @@ #include <camera/IProCameraUser.h> #include <camera/Camera.h> #include <camera/CameraMetadata.h> +#include <camera/ICameraService.h> #include <gui/CpuConsumer.h> #include <gui/Surface.h> @@ -87,8 +88,14 @@ struct CameraTraits<ProCamera> typedef ProCameraListener TCamListener; typedef IProCameraUser TCamUser; typedef IProCameraCallbacks TCamCallbacks; + typedef status_t (ICameraService::*TCamConnectService)(const sp<IProCameraCallbacks>&, + int, const String16&, int, + /*out*/ + sp<IProCameraUser>&); + static TCamConnectService fnConnectService; }; + class ProCamera : public CameraBase<ProCamera>, public BnProCameraCallbacks |