/* * Copyright (c) 2022 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. */ import { AsyncCallback, Callback } from './basic'; /** * Interface of screen manager * @syscap SystemCapability.WindowManager.WindowManager.Core * @systemapi Hide this for inner system use. * @since 9 */ declare namespace screen { /** * Get all screen * @throws {BusinessError} 1400001 - Invalid display or screen. * @since 9 */ function getAllScreens(callback: AsyncCallback>): void; function getAllScreens(): Promise>; /** * Register the callback for screen changes. * @param eventType: type of callback * @throws {BusinessError} 401 - Parameter error. * @since 9 */ function on(eventType: 'connect' | 'disconnect' | 'change', callback: Callback): void; /** * Unregister the callback for screen changes. * @param eventType: type of callback * @throws {BusinessError} 401 - Parameter error. * @since 9 */ function off(eventType: 'connect' | 'disconnect' | 'change', callback?: Callback): void; /** * Make screens as expand-screen * @throws {BusinessError} 401 - Parameter error. * @throws {BusinessError} 1400001 - Invalid display or screen. * @since 9 */ function makeExpand(options:Array, callback: AsyncCallback): void; function makeExpand(options:Array): Promise; /** * Make screens as mirror-screen * @throws {BusinessError} 401 - Parameter error. * @throws {BusinessError} 1400001 - Invalid display or screen. * @since 9 */ function makeMirror(mainScreen:number, mirrorScreen:Array, callback: AsyncCallback): void; function makeMirror(mainScreen:number, mirrorScreen:Array): Promise; /** * Create virtual screen. if surfaceId is valid, this permission is necessary. * @param options Indicates the options of the virtual screen. * @permission ohos.permission.CAPTURE_SCREEN * @throws {BusinessError} 201 - Permission verification failed. * @throws {BusinessError} 401 - Parameter error. * @throws {BusinessError} 1400001 - Invalid display or screen. * @since 9 */ function createVirtualScreen(options:VirtualScreenOption, callback: AsyncCallback): void; function createVirtualScreen(options:VirtualScreenOption): Promise; /** * Destroy virtual screen. * @param screenId Indicates the screen id of the virtual screen. * @throws {BusinessError} 401 - Parameter error. * @throws {BusinessError} 1400002 - Unauthorized operation. * @since 9 */ function destroyVirtualScreen(screenId:number, callback: AsyncCallback): void; function destroyVirtualScreen(screenId:number): Promise; /** * Set surface for the virtual screen. * @param screenId Indicates the screen id of the virtual screen. * @param surfaceId Indicates the surface id. * @permission ohos.permission.CAPTURE_SCREEN * @throws {BusinessError} 201 - Permission verification failed. * @throws {BusinessError} 401 - Parameter error. * @throws {BusinessError} 1400001 - Invalid display or screen. * @since 9 */ function setVirtualScreenSurface(screenId:number, surfaceId: string, callback: AsyncCallback): void; function setVirtualScreenSurface(screenId:number, surfaceId: string): Promise; /** * Get screen rotation lock status. * @since 9 */ function isScreenRotationLocked(callback: AsyncCallback): void; function isScreenRotationLocked(): Promise; /** * Set screen rotation lock status. * @param isLocked Indicates whether the screen rotation switch is locked. * @throws {BusinessError} 401 - Parameter error. * @since 9 */ function setScreenRotationLocked(isLocked:boolean, callback: AsyncCallback): void; function setScreenRotationLocked(isLocked:boolean): Promise; /** * The parameter of making expand screen * @syscap SystemCapability.WindowManager.WindowManager.Core * @since 9 */ interface ExpandOption { /** * Screen id */ screenId: number; /** * The start coordinate X of the screen origin */ startX: number; /** * The start coordinate Y of the screen origin */ startY: number; } /** * The parameter for creating virtual screen. * @syscap SystemCapability.WindowManager.WindowManager.Core * @since 9 */ interface VirtualScreenOption { /** * Indicates the name of the virtual screen. */ name: string /** * Indicates the width of the virtual screen. */ width: number /** * Indicates the height of the virtual screen. */ height: number /** * Indicates the density of the virtual screen. */ density: number /** * Indicates the surface id of the virtual screen. */ surfaceId: string } /** * Interface for screen * @syscap SystemCapability.WindowManager.WindowManager.Core * @since 9 */ interface Screen { /** * Screen id */ readonly id: number; /** * Group id */ readonly parent: number; /** * Mode supported by the screen */ readonly supportedModeInfo: Array; /** * Currently active mode */ readonly activeModeIndex: number; /** * Orientation of the screen */ readonly orientation: Orientation; /** * Set the orientation of the screen * @throws {BusinessError} 401 - Parameter error. * @throws {BusinessError} 1400003 - This display manager service works abnormally. * @since 9 */ setOrientation(orientation: Orientation, callback: AsyncCallback): void; setOrientation(orientation: Orientation): Promise; /** * Active the mode * @throws {BusinessError} 401 - Parameter error. * @throws {BusinessError} 1400003 - This display manager service works abnormally. */ setScreenActiveMode(modeIndex: number, callback: AsyncCallback): void; setScreenActiveMode(modeIndex: number): Promise; /** * Set display density of the screen * @throws {BusinessError} 401 - Parameter error. * @throws {BusinessError} 1400003 - This display manager service works abnormally. */ setDensityDpi(densityDpi: number, callback: AsyncCallback): void; setDensityDpi(densityDpi: number): Promise; } /** * Screen orientation * @syscap SystemCapability.WindowManager.WindowManager.Core * @since 9 */ enum Orientation { UNSPECIFIED = 0, VERTICAL = 1, HORIZONTAL = 2, REVERSE_VERTICAL = 3, REVERSE_HORIZONTAL = 4, } /** * The information of the screen * @syscap SystemCapability.WindowManager.WindowManager.Core * @since 9 */ interface ScreenModeInfo { id: number; width: number; height: number; refreshRate: number; } } export default screen;