diff options
Diffstat (limited to 'camera/camera2/ICameraDeviceUser.cpp')
-rw-r--r-- | camera/camera2/ICameraDeviceUser.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/camera/camera2/ICameraDeviceUser.cpp b/camera/camera2/ICameraDeviceUser.cpp index ffe974b..d2dc200 100644 --- a/camera/camera2/ICameraDeviceUser.cpp +++ b/camera/camera2/ICameraDeviceUser.cpp @@ -48,7 +48,8 @@ enum { GET_CAMERA_INFO, WAIT_UNTIL_IDLE, FLUSH, - PREPARE + PREPARE, + TEAR_DOWN }; namespace { @@ -365,6 +366,20 @@ public: return reply.readInt32(); } + virtual status_t tearDown(int streamId) + { + ALOGV("tearDown"); + Parcel data, reply; + + data.writeInterfaceToken(ICameraDeviceUser::getInterfaceDescriptor()); + data.writeInt32(streamId); + + remote()->transact(TEAR_DOWN, data, &reply); + + reply.readExceptionCode(); + return reply.readInt32(); + } + private: @@ -570,6 +585,13 @@ status_t BnCameraDeviceUser::onTransact( reply->writeInt32(prepare(streamId)); return NO_ERROR; } break; + case TEAR_DOWN: { + CHECK_INTERFACE(ICameraDeviceUser, data, reply); + int streamId = data.readInt32(); + reply->writeNoException(); + reply->writeInt32(tearDown(streamId)); + return NO_ERROR; + } break; default: return BBinder::onTransact(code, data, reply, flags); |