summaryrefslogtreecommitdiffstats
path: root/include/camera/ICameraService.h
diff options
context:
space:
mode:
authorIgor Murashkin <iam@google.com>2013-02-27 12:55:20 -0800
committerIgor Murashkin <iam@google.com>2013-02-28 15:55:15 -0800
commitbfc9915f482520eb9676c6d2dbf7f1ac078d937d (patch)
tree1353c3f2f63777397770edfd1f146c691e5684e2 /include/camera/ICameraService.h
parent3fa4891f54bbfdbe8ee652930d22c96639964eff (diff)
downloadframeworks_av-bfc9915f482520eb9676c6d2dbf7f1ac078d937d.zip
frameworks_av-bfc9915f482520eb9676c6d2dbf7f1ac078d937d.tar.gz
frameworks_av-bfc9915f482520eb9676c6d2dbf7f1ac078d937d.tar.bz2
Camera: Drop ProCamera connections when a Camera connection happens
* Also adds an ICameraServiceListener with available/not available statuses Bug: 8291653 Change-Id: I24680f1a2dc109510caf451cf7c7bd180b670d84
Diffstat (limited to 'include/camera/ICameraService.h')
-rw-r--r--include/camera/ICameraService.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/include/camera/ICameraService.h b/include/camera/ICameraService.h
index ef2b685..aaf6eb3 100644
--- a/include/camera/ICameraService.h
+++ b/include/camera/ICameraService.h
@@ -27,6 +27,7 @@ class ICamera;
class ICameraClient;
class IProCameraUser;
class IProCameraCallbacks;
+class ICameraServiceListener;
class ICameraService : public IInterface
{
@@ -35,7 +36,9 @@ public:
GET_NUMBER_OF_CAMERAS = IBinder::FIRST_CALL_TRANSACTION,
GET_CAMERA_INFO,
CONNECT,
- CONNECT_PRO
+ CONNECT_PRO,
+ ADD_LISTENER,
+ REMOVE_LISTENER,
};
enum {
@@ -45,9 +48,18 @@ public:
public:
DECLARE_META_INTERFACE(CameraService);
- virtual int32_t getNumberOfCameras() = 0;
- virtual status_t getCameraInfo(int cameraId,
+ virtual int32_t getNumberOfCameras() = 0;
+ virtual status_t getCameraInfo(int cameraId,
struct CameraInfo* cameraInfo) = 0;
+
+ // Returns 'OK' if operation succeeded
+ // - Errors: ALREADY_EXISTS if the listener was already added
+ virtual status_t addListener(const sp<ICameraServiceListener>& listener)
+ = 0;
+ // Returns 'OK' if operation succeeded
+ // - Errors: BAD_VALUE if specified listener was not in the listener list
+ virtual status_t removeListener(const sp<ICameraServiceListener>& listener)
+ = 0;
/**
* clientPackageName and clientUid are used for permissions checking. if
* clientUid == USE_CALLING_UID, then the calling UID is used instead. Only