/* * Copyright (C) 2019 The Hisilicon Technologies 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 vendor.huanglong.hardware.hwgraphics@1.2; import @1.0::CaptureType; import @1.0::HwRect; import @1.1::IGraphics; import @1.0::IGraphicsCallback; interface IGraphics extends @1.1::IGraphics { /** * captureScreen with speical rect */ CaptureScreenByVDP_1_2(CaptureType type, handle rawHandle, HwRect rect) generates (uint32_t ret); /** * create cast handle * * @param display display id * @param format output video format of cast handle * @param width output video width of cast handle * @param height output video height of cast handle * @return castHandle success: >=0 handle of created handle, error: < 0 */ InitCast(uint64_t display, uint32_t format, uint32_t width, uint32_t height) generates(int32_t castHandle); /** * fetch frame from cast handle and fill it into buffer handle * * @param castHandle handle of created cast * @param rawHandle handle of graphic buffer, which will be queued to media server later * @param fence assoaciated with graphic buffer * @return ret 0 success, other error * @return acquireFence reserved for hardware sync for cast frame */ CastFrame(int32_t castHandle, handle rawHandle, handle fence) generates(int32_t ret, handle acquireFence); /** * set black cast frame * * @param isBlack is need set black */ SetBlackCastFrame(bool isBlack); /** * close cast handle * * @param castHandle handle of created cast * @return 0 successful, other error */ CloseCast(int32_t castHandle) generates(int32_t ret); /** * set overlay z order * * @param int32_t the sequenece of related layer * @param uint32_t the z order of related layer * @return void */ SetOverlayZOrder(int32_t sequence, uint32_t zOrder) generates(int32_t ret); /** * query the window handle. * * @return window handle. */ GetWindowHandle() generates(uint32_t windowHandle); /** * surfaceFlinger death recipient function. * * @return status result of surfaceFlinger death recipient function. */ SfDeathRecipient(IGraphicsCallback callback) generates (uint32_t ret); /** * set overlay dataSpace * * @param int32_t the sequenece of related layer * @param int32_t the dataSpace of related layer * @return void */ SetOverlayDataSpace(int32_t sequence, int32_t dataSpace); };