1 /*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "hstream_capture_photo_callback_stub.h"
17 #include "camera_log.h"
18
19 namespace OHOS {
20 namespace CameraStandard {
21 // LCOV_EXCL_START
OnRemoteRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)22 int HStreamCapturePhotoCallbackStub::OnRemoteRequest(
23 uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option)
24 {
25 int errCode = -1;
26 CHECK_RETURN_RET(data.ReadInterfaceToken() != GetDescriptor(), errCode);
27 switch (code) {
28 case static_cast<uint32_t>(StreamCapturePhotoCallbackInterfaceCode::CAMERA_STREAM_CAPTURE_ON_PHOTO_AVAILABLE):
29 errCode = HandleOnPhotoAvailable(data);
30 break;
31 default:
32 MEDIA_ERR_LOG("HStreamCaptureCallbackStub request code %{public}u not handled", code);
33 errCode = IPCObjectStub::OnRemoteRequest(code, data, reply, option);
34 break;
35 }
36 return errCode;
37 }
38
HandleOnPhotoAvailable(MessageParcel & data)39 int HStreamCapturePhotoCallbackStub::HandleOnPhotoAvailable(MessageParcel& data)
40 {
41 MEDIA_INFO_LOG("HStreamCapturePhotoCallbackStub::OnPhotoAvailable is called!");
42 sptr<SurfaceBuffer> surfaceBuffer = SurfaceBuffer::Create();
43 surfaceBuffer->ReadFromMessageParcel(data);
44 sptr<BufferExtraData> bufferExtraData = surfaceBuffer->GetExtraData();
45 bufferExtraData->ReadFromParcel(data);
46 surfaceBuffer->SetExtraData(bufferExtraData);
47 int64_t timestamp = data.ReadInt64();
48 bool isRaw = data.ReadBool();
49 return OnPhotoAvailable(surfaceBuffer, timestamp, isRaw);
50 }
51 // LCOV_EXCL_STOP
52 } // namespace CameraStandard
53 } // namespace OHOS
54