/*
* Copyright (c) 2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package OHOS.CameraStandard;
import CameraTypes;
import IStreamCaptureCallback;
import IStreamCapturePhotoAssetCallback;
interface IStreamCommon;
interface OHOS.IBufferProducer;
interface OHOS.CameraStandard.IStreamCapturePhotoCallback;
interface OHOS.CameraStandard.IStreamCaptureThumbnailCallback;
sequenceable CameraMetadataInfo..OHOS.Camera.CameraMetadata;
sequenceable CameraPhotoProxy..OHOS.CameraStandard.CameraPhotoProxy;
sequenceable PictureInterface..OHOS.CameraStandard.PictureIntf;
option_stub_hooks on;
interface IStreamCapture extends IStreamCommon {
[ipccode 0] void Capture([in] sharedptr<CameraMetadata> captureSettings);
[ipccode 1] void CancelCapture();
[ipccode 2] void SetCallback([in] IStreamCaptureCallback callbackFunc);
[ipccode 3] void Release();
[ipccode 4] void SetThumbnail([in] boolean isEnabled);
[ipccode 5] void ConfirmCapture();
[ipccode 6] void DeferImageDeliveryFor([in] int type);
[ipccode 7] void IsDeferredPhotoEnabled();
[ipccode 8] void IsDeferredVideoEnabled();
[ipccode 9] void SetBufferProducerInfo([in] String bufName, [in] IBufferProducer producer);
[ipccode 10] void SetMovingPhotoVideoCodecType([in] int videoCodecType);
[ipccode 11] void EnableRawDelivery([in] boolean enabled);
[ipccode 12] void SetCameraPhotoRotation([in] boolean isEnable);
[ipccode 13] void EnableMovingPhoto([in] boolean enabled);
[ipccode 16] void UnSetCallback();
[ipccode 17] void EnableOfflinePhoto([in] boolean isEnable);
[ipccode 18] void SetPhotoAvailableCallback([in] IStreamCapturePhotoCallback callbackFunc);
[ipccode 19] void SetPhotoAssetAvailableCallback([in] IStreamCapturePhotoAssetCallback callbackFunc);
[ipccode 20] void SetThumbnailCallback([in] IStreamCaptureThumbnailCallback callbackFunc);
[ipccode 21] void UnSetPhotoAvailableCallback();
[ipccode 22] void UnSetPhotoAssetAvailableCallback();
[ipccode 23] void UnSetThumbnailCallback();
[ipccode 24] void CreateMediaLibrary([in] sptr<CameraPhotoProxy> photoProxy, [out] String uri, [out] int cameraShotType, [out] String burstKey, [in] long timestamp);
}