summaryrefslogtreecommitdiffstats
path: root/camera/ICameraServiceListener.cpp
diff options
context:
space:
mode:
authorChien-Yu Chen <cychen@google.com>2015-02-09 13:29:57 -0800
committerChien-Yu Chen <cychen@google.com>2015-02-12 15:05:30 -0800
commit3068d73c6c7e1f44523b1466b903a9c82408b258 (patch)
tree197720671edfdcc2c75a7d05a13c60be2b17fb75 /camera/ICameraServiceListener.cpp
parent8f7b7fa417566e9a6a29ea9f0e220b3cd6d1a9e3 (diff)
downloadframeworks_av-3068d73c6c7e1f44523b1466b903a9c82408b258.zip
frameworks_av-3068d73c6c7e1f44523b1466b903a9c82408b258.tar.gz
frameworks_av-3068d73c6c7e1f44523b1466b903a9c82408b258.tar.bz2
camera: implement flashlight control
Implement flashlight API for module v2.4 by calling module APIs and by for hal v2 and v3 by using CameraDeviceBase. Bug: 2682206 Change-Id: Ib8b77f6fd462489d672f27e14fe37801d35b7544
Diffstat (limited to 'camera/ICameraServiceListener.cpp')
-rw-r--r--camera/ICameraServiceListener.cpp27
1 files changed, 25 insertions, 2 deletions
diff --git a/camera/ICameraServiceListener.cpp b/camera/ICameraServiceListener.cpp
index b2f1729..90a8bc2 100644
--- a/camera/ICameraServiceListener.cpp
+++ b/camera/ICameraServiceListener.cpp
@@ -29,6 +29,7 @@ namespace android {
namespace {
enum {
STATUS_CHANGED = IBinder::FIRST_CALL_TRANSACTION,
+ TORCH_STATUS_CHANGED,
};
}; // namespace anonymous
@@ -54,8 +55,21 @@ public:
data,
&reply,
IBinder::FLAG_ONEWAY);
+ }
- reply.readExceptionCode();
+ virtual void onTorchStatusChanged(TorchStatus status, const String16 &cameraId)
+ {
+ Parcel data, reply;
+ data.writeInterfaceToken(
+ ICameraServiceListener::getInterfaceDescriptor());
+
+ data.writeInt32(static_cast<int32_t>(status));
+ data.writeString16(cameraId);
+
+ remote()->transact(TORCH_STATUS_CHANGED,
+ data,
+ &reply,
+ IBinder::FLAG_ONEWAY);
}
};
@@ -75,7 +89,16 @@ status_t BnCameraServiceListener::onTransact(
int32_t cameraId = data.readInt32();
onStatusChanged(status, cameraId);
- reply->writeNoException();
+
+ return NO_ERROR;
+ } break;
+ case TORCH_STATUS_CHANGED: {
+ CHECK_INTERFACE(ICameraServiceListener, data, reply);
+
+ TorchStatus status = static_cast<TorchStatus>(data.readInt32());
+ String16 cameraId = data.readString16();
+
+ onTorchStatusChanged(status, cameraId);
return NO_ERROR;
} break;