161847f8eSopenharmony_ci/* 261847f8eSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 461847f8eSopenharmony_ci * you may not use this file except in compliance with the License. 561847f8eSopenharmony_ci * You may obtain a copy of the License at 661847f8eSopenharmony_ci * 761847f8eSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 861847f8eSopenharmony_ci * 961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and 1361847f8eSopenharmony_ci * limitations under the License. 1461847f8eSopenharmony_ci */ 1561847f8eSopenharmony_ci 1661847f8eSopenharmony_ci/** 1761847f8eSopenharmony_ci * @file 1861847f8eSopenharmony_ci * @kit ArkUI 1961847f8eSopenharmony_ci */ 2061847f8eSopenharmony_ci 2161847f8eSopenharmony_ciimport type BaseContext from './application/BaseContext'; 2261847f8eSopenharmony_ciimport type { Callback } from './@ohos.base'; 2361847f8eSopenharmony_ciimport { NodeController } from './arkui/NodeController'; 2461847f8eSopenharmony_ciimport { typeNode } from './arkui/FrameNode'; 2561847f8eSopenharmony_ci 2661847f8eSopenharmony_ci/** 2761847f8eSopenharmony_ci * Picture In Picture Window Manager 2861847f8eSopenharmony_ci * 2961847f8eSopenharmony_ci * @namespace PiPWindow 3061847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 3161847f8eSopenharmony_ci * @since 11 3261847f8eSopenharmony_ci */ 3361847f8eSopenharmony_ci/** 3461847f8eSopenharmony_ci * Picture In Picture Window Manager 3561847f8eSopenharmony_ci * 3661847f8eSopenharmony_ci * @namespace PiPWindow 3761847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 3861847f8eSopenharmony_ci * @atomicservice 3961847f8eSopenharmony_ci * @since 12 4061847f8eSopenharmony_ci */ 4161847f8eSopenharmony_cideclare namespace PiPWindow { 4261847f8eSopenharmony_ci /** 4361847f8eSopenharmony_ci * If picture-in-picture enabled in current OS. 4461847f8eSopenharmony_ci * 4561847f8eSopenharmony_ci * @returns { boolean } true if PictureInPicture enabled, otherwise false 4661847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 4761847f8eSopenharmony_ci * @since 11 4861847f8eSopenharmony_ci */ 4961847f8eSopenharmony_ci /** 5061847f8eSopenharmony_ci * If picture-in-picture enabled in current OS. 5161847f8eSopenharmony_ci * 5261847f8eSopenharmony_ci * @returns { boolean } true if PictureInPicture enabled, otherwise false 5361847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 5461847f8eSopenharmony_ci * @atomicservice 5561847f8eSopenharmony_ci * @since 12 5661847f8eSopenharmony_ci */ 5761847f8eSopenharmony_ci function isPiPEnabled(): boolean; 5861847f8eSopenharmony_ci 5961847f8eSopenharmony_ci /** 6061847f8eSopenharmony_ci * Create picture-in-picture controller 6161847f8eSopenharmony_ci * 6261847f8eSopenharmony_ci * @param { PiPConfiguration } config - Params for picture-in-picture controller creation. The config must be valid, 6361847f8eSopenharmony_ci * the context and componentController in config should not be null. If templateType is specified, make sure 6461847f8eSopenharmony_ci * it's type of PiPTemplateType. If controlGroups is specified, make sure it correspond to the templateType. 6561847f8eSopenharmony_ci * @returns { Promise<PiPController> } - The promise returned by the function 6661847f8eSopenharmony_ci * @throws { BusinessError } 401 - Params error. Possible causes: 1. Mandatory parameters are left unspecified. 6761847f8eSopenharmony_ci * 2. Incorrect parameter types. 6861847f8eSopenharmony_ci * 3. Parameter verification failed 6961847f8eSopenharmony_ci * @throws { BusinessError } 801 - Capability not supported. Failed to call the API due to limited device capabilities. 7061847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 7161847f8eSopenharmony_ci * @since 11 7261847f8eSopenharmony_ci */ 7361847f8eSopenharmony_ci /** 7461847f8eSopenharmony_ci * Create picture-in-picture controller 7561847f8eSopenharmony_ci * 7661847f8eSopenharmony_ci * @param { PiPConfiguration } config - Params for picture-in-picture controller creation. The config must be valid, 7761847f8eSopenharmony_ci * the context and componentController in config should not be null. If templateType is specified, make sure 7861847f8eSopenharmony_ci * it's type of PiPTemplateType. If controlGroups is specified, make sure it correspond to the templateType. 7961847f8eSopenharmony_ci * @returns { Promise<PiPController> } - The promise returned by the function 8061847f8eSopenharmony_ci * @throws { BusinessError } 401 - Params error. Possible causes: 1. Mandatory parameters are left unspecified. 8161847f8eSopenharmony_ci * 2. Incorrect parameter types. 8261847f8eSopenharmony_ci * 3. Parameter verification failed 8361847f8eSopenharmony_ci * @throws { BusinessError } 801 - Capability not supported. Failed to call the API due to limited device capabilities. 8461847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 8561847f8eSopenharmony_ci * @atomicservice 8661847f8eSopenharmony_ci * @since 12 8761847f8eSopenharmony_ci */ 8861847f8eSopenharmony_ci function create(config: PiPConfiguration): Promise<PiPController>; 8961847f8eSopenharmony_ci 9061847f8eSopenharmony_ci /** 9161847f8eSopenharmony_ci * Create picture-in-picture controller 9261847f8eSopenharmony_ci * 9361847f8eSopenharmony_ci * @param { PiPConfiguration } config - Params for picture-in-picture controller creation. The config must be valid, 9461847f8eSopenharmony_ci * the context and componentController in config should not be null. If templateType is specified, make sure 9561847f8eSopenharmony_ci * it's type of PiPTemplateType. If controlGroups is specified, make sure it correspond to the templateType. 9661847f8eSopenharmony_ci * @param { typeNode.XComponent } contentNode - Params for picture-in-picture controller creation. 9761847f8eSopenharmony_ci * Indicates the node which display the content of pip window. 9861847f8eSopenharmony_ci * @returns { Promise<PiPController> } - The promise returned by the function 9961847f8eSopenharmony_ci * @throws { BusinessError } 401 - Params error. Possible causes: 1. Mandatory parameters are left unspecified. 10061847f8eSopenharmony_ci * 2. Incorrect parameter types. 10161847f8eSopenharmony_ci * 3. Parameter verification failed. 10261847f8eSopenharmony_ci * @throws { BusinessError } 801 - Capability not supported. Failed to call the API due to limited device capabilities. 10361847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 10461847f8eSopenharmony_ci * @atomicservice 10561847f8eSopenharmony_ci * @since 12 10661847f8eSopenharmony_ci */ 10761847f8eSopenharmony_ci function create(config: PiPConfiguration, contentNode: typeNode.XComponent): Promise<PiPController>; 10861847f8eSopenharmony_ci 10961847f8eSopenharmony_ci /** 11061847f8eSopenharmony_ci * PiPConfiguration 11161847f8eSopenharmony_ci * 11261847f8eSopenharmony_ci * @interface PiPConfiguration 11361847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 11461847f8eSopenharmony_ci * @since 11 11561847f8eSopenharmony_ci */ 11661847f8eSopenharmony_ci /** 11761847f8eSopenharmony_ci * PiPConfiguration 11861847f8eSopenharmony_ci * 11961847f8eSopenharmony_ci * @interface PiPConfiguration 12061847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 12161847f8eSopenharmony_ci * @atomicservice 12261847f8eSopenharmony_ci * @since 12 12361847f8eSopenharmony_ci */ 12461847f8eSopenharmony_ci interface PiPConfiguration { 12561847f8eSopenharmony_ci /** 12661847f8eSopenharmony_ci * Indicates window context. 12761847f8eSopenharmony_ci * 12861847f8eSopenharmony_ci * @type { BaseContext } 12961847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 13061847f8eSopenharmony_ci * @since 11 13161847f8eSopenharmony_ci */ 13261847f8eSopenharmony_ci /** 13361847f8eSopenharmony_ci * Indicates window context. 13461847f8eSopenharmony_ci * 13561847f8eSopenharmony_ci * @type { BaseContext } 13661847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 13761847f8eSopenharmony_ci * @atomicservice 13861847f8eSopenharmony_ci * @since 12 13961847f8eSopenharmony_ci */ 14061847f8eSopenharmony_ci context: BaseContext; 14161847f8eSopenharmony_ci 14261847f8eSopenharmony_ci /** 14361847f8eSopenharmony_ci * Indicates the origin XComponentController. 14461847f8eSopenharmony_ci * 14561847f8eSopenharmony_ci * @type { XComponentController } 14661847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 14761847f8eSopenharmony_ci * @since 11 14861847f8eSopenharmony_ci */ 14961847f8eSopenharmony_ci /** 15061847f8eSopenharmony_ci * Indicates the origin XComponentController. 15161847f8eSopenharmony_ci * 15261847f8eSopenharmony_ci * @type { XComponentController } 15361847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 15461847f8eSopenharmony_ci * @atomicservice 15561847f8eSopenharmony_ci * @since 12 15661847f8eSopenharmony_ci */ 15761847f8eSopenharmony_ci componentController: XComponentController; 15861847f8eSopenharmony_ci 15961847f8eSopenharmony_ci /** 16061847f8eSopenharmony_ci * Indicates navigation ID. 16161847f8eSopenharmony_ci * 16261847f8eSopenharmony_ci * @type { ?string } 16361847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 16461847f8eSopenharmony_ci * @since 11 16561847f8eSopenharmony_ci */ 16661847f8eSopenharmony_ci /** 16761847f8eSopenharmony_ci * Indicates navigation ID. 16861847f8eSopenharmony_ci * 16961847f8eSopenharmony_ci * @type { ?string } 17061847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 17161847f8eSopenharmony_ci * @atomicservice 17261847f8eSopenharmony_ci * @since 12 17361847f8eSopenharmony_ci */ 17461847f8eSopenharmony_ci navigationId?: string; 17561847f8eSopenharmony_ci 17661847f8eSopenharmony_ci /** 17761847f8eSopenharmony_ci * Picture-in-picture template type. 17861847f8eSopenharmony_ci * 17961847f8eSopenharmony_ci * @type { ?PiPTemplateType } 18061847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 18161847f8eSopenharmony_ci * @since 11 18261847f8eSopenharmony_ci */ 18361847f8eSopenharmony_ci /** 18461847f8eSopenharmony_ci * Picture-in-picture template type. 18561847f8eSopenharmony_ci * 18661847f8eSopenharmony_ci * @type { ?PiPTemplateType } 18761847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 18861847f8eSopenharmony_ci * @atomicservice 18961847f8eSopenharmony_ci * @since 12 19061847f8eSopenharmony_ci */ 19161847f8eSopenharmony_ci templateType?: PiPTemplateType; 19261847f8eSopenharmony_ci 19361847f8eSopenharmony_ci /** 19461847f8eSopenharmony_ci * Describes the width of content to be displayed in PiP window. For adjusting PiP window aspect ratio. 19561847f8eSopenharmony_ci * 19661847f8eSopenharmony_ci * @type { ?number } 19761847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 19861847f8eSopenharmony_ci * @since 11 19961847f8eSopenharmony_ci */ 20061847f8eSopenharmony_ci /** 20161847f8eSopenharmony_ci * Describes the width of content to be displayed in PiP window. For adjusting PiP window aspect ratio. 20261847f8eSopenharmony_ci * 20361847f8eSopenharmony_ci * @type { ?number } 20461847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 20561847f8eSopenharmony_ci * @atomicservice 20661847f8eSopenharmony_ci * @since 12 20761847f8eSopenharmony_ci */ 20861847f8eSopenharmony_ci contentWidth?: number; 20961847f8eSopenharmony_ci 21061847f8eSopenharmony_ci /** 21161847f8eSopenharmony_ci * Describes the height of content to be displayed in PiP window. For adjusting PiP window aspect ratio. 21261847f8eSopenharmony_ci * 21361847f8eSopenharmony_ci * @type { ?number } 21461847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 21561847f8eSopenharmony_ci * @since 11 21661847f8eSopenharmony_ci */ 21761847f8eSopenharmony_ci /** 21861847f8eSopenharmony_ci * Describes the height of content to be displayed in PiP window. For adjusting PiP window aspect ratio. 21961847f8eSopenharmony_ci * 22061847f8eSopenharmony_ci * @type { ?number } 22161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 22261847f8eSopenharmony_ci * @atomicservice 22361847f8eSopenharmony_ci * @since 12 22461847f8eSopenharmony_ci */ 22561847f8eSopenharmony_ci contentHeight?: number; 22661847f8eSopenharmony_ci 22761847f8eSopenharmony_ci /** 22861847f8eSopenharmony_ci * Describes the custom controls to be displayed in PiP window control panel. If the parameter is empty, only mandatory controls are displayed. 22961847f8eSopenharmony_ci * 23061847f8eSopenharmony_ci * @type { ?Array<PiPControlGroup> } 23161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 23261847f8eSopenharmony_ci * @atomicservice 23361847f8eSopenharmony_ci * @since 12 23461847f8eSopenharmony_ci */ 23561847f8eSopenharmony_ci controlGroups?: Array<PiPControlGroup>; 23661847f8eSopenharmony_ci 23761847f8eSopenharmony_ci /** 23861847f8eSopenharmony_ci * Describes the customUIController by which we can display a custom layout above pip content. 23961847f8eSopenharmony_ci * 24061847f8eSopenharmony_ci * @type { ?NodeController } 24161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 24261847f8eSopenharmony_ci * @atomicservice 24361847f8eSopenharmony_ci * @since 12 24461847f8eSopenharmony_ci */ 24561847f8eSopenharmony_ci customUIController?: NodeController; 24661847f8eSopenharmony_ci } 24761847f8eSopenharmony_ci 24861847f8eSopenharmony_ci /** 24961847f8eSopenharmony_ci * Describe the type of picture-in-picture. 25061847f8eSopenharmony_ci * 25161847f8eSopenharmony_ci * @enum { number }. 25261847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 25361847f8eSopenharmony_ci * @since 11 25461847f8eSopenharmony_ci */ 25561847f8eSopenharmony_ci /** 25661847f8eSopenharmony_ci * Describe the type of picture-in-picture. 25761847f8eSopenharmony_ci * 25861847f8eSopenharmony_ci * @enum { number }. 25961847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 26061847f8eSopenharmony_ci * @atomicservice 26161847f8eSopenharmony_ci * @since 12 26261847f8eSopenharmony_ci */ 26361847f8eSopenharmony_ci enum PiPTemplateType { 26461847f8eSopenharmony_ci /** 26561847f8eSopenharmony_ci * Indicates the content to show in picture-in-picture window is video play 26661847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 26761847f8eSopenharmony_ci * @since 11 26861847f8eSopenharmony_ci */ 26961847f8eSopenharmony_ci /** 27061847f8eSopenharmony_ci * Indicates the content to show in picture-in-picture window is video play 27161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 27261847f8eSopenharmony_ci * @atomicservice 27361847f8eSopenharmony_ci * @since 12 27461847f8eSopenharmony_ci */ 27561847f8eSopenharmony_ci VIDEO_PLAY, 27661847f8eSopenharmony_ci 27761847f8eSopenharmony_ci /** 27861847f8eSopenharmony_ci * Indicates the content to show in picture-in-picture window is video call 27961847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 28061847f8eSopenharmony_ci * @since 11 28161847f8eSopenharmony_ci */ 28261847f8eSopenharmony_ci /** 28361847f8eSopenharmony_ci * Indicates the content to show in picture-in-picture window is video call 28461847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 28561847f8eSopenharmony_ci * @atomicservice 28661847f8eSopenharmony_ci * @since 12 28761847f8eSopenharmony_ci */ 28861847f8eSopenharmony_ci VIDEO_CALL, 28961847f8eSopenharmony_ci 29061847f8eSopenharmony_ci /** 29161847f8eSopenharmony_ci * Indicates the content to show in picture-in-picture window is video meeting 29261847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 29361847f8eSopenharmony_ci * @since 11 29461847f8eSopenharmony_ci */ 29561847f8eSopenharmony_ci /** 29661847f8eSopenharmony_ci * Indicates the content to show in picture-in-picture window is video meeting 29761847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 29861847f8eSopenharmony_ci * @atomicservice 29961847f8eSopenharmony_ci * @since 12 30061847f8eSopenharmony_ci */ 30161847f8eSopenharmony_ci VIDEO_MEETING, 30261847f8eSopenharmony_ci 30361847f8eSopenharmony_ci /** 30461847f8eSopenharmony_ci * Indicates the content to show in picture-in-picture window is video live 30561847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 30661847f8eSopenharmony_ci * @since 11 30761847f8eSopenharmony_ci */ 30861847f8eSopenharmony_ci /** 30961847f8eSopenharmony_ci * Indicates the content to show in picture-in-picture window is video live 31061847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 31161847f8eSopenharmony_ci * @atomicservice 31261847f8eSopenharmony_ci * @since 12 31361847f8eSopenharmony_ci */ 31461847f8eSopenharmony_ci VIDEO_LIVE, 31561847f8eSopenharmony_ci } 31661847f8eSopenharmony_ci 31761847f8eSopenharmony_ci /** 31861847f8eSopenharmony_ci * Enum for PiP window callback event type. 31961847f8eSopenharmony_ci * 32061847f8eSopenharmony_ci * @enum { number }. 32161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 32261847f8eSopenharmony_ci * @since 11 32361847f8eSopenharmony_ci */ 32461847f8eSopenharmony_ci /** 32561847f8eSopenharmony_ci * Enum for PiP window callback event type. 32661847f8eSopenharmony_ci * 32761847f8eSopenharmony_ci * @enum { number }. 32861847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 32961847f8eSopenharmony_ci * @atomicservice 33061847f8eSopenharmony_ci * @since 12 33161847f8eSopenharmony_ci */ 33261847f8eSopenharmony_ci enum PiPState { 33361847f8eSopenharmony_ci /** 33461847f8eSopenharmony_ci * PiP window is about to start. 33561847f8eSopenharmony_ci * 33661847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 33761847f8eSopenharmony_ci * @since 11 33861847f8eSopenharmony_ci */ 33961847f8eSopenharmony_ci /** 34061847f8eSopenharmony_ci * PiP window is about to start. 34161847f8eSopenharmony_ci * 34261847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 34361847f8eSopenharmony_ci * @atomicservice 34461847f8eSopenharmony_ci * @since 12 34561847f8eSopenharmony_ci */ 34661847f8eSopenharmony_ci ABOUT_TO_START = 1, 34761847f8eSopenharmony_ci 34861847f8eSopenharmony_ci /** 34961847f8eSopenharmony_ci * PiP window started. 35061847f8eSopenharmony_ci * 35161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 35261847f8eSopenharmony_ci * @since 11 35361847f8eSopenharmony_ci */ 35461847f8eSopenharmony_ci /** 35561847f8eSopenharmony_ci * PiP window started. 35661847f8eSopenharmony_ci * 35761847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 35861847f8eSopenharmony_ci * @atomicservice 35961847f8eSopenharmony_ci * @since 12 36061847f8eSopenharmony_ci */ 36161847f8eSopenharmony_ci STARTED = 2, 36261847f8eSopenharmony_ci 36361847f8eSopenharmony_ci /** 36461847f8eSopenharmony_ci * PiP window is about to stop. 36561847f8eSopenharmony_ci * 36661847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 36761847f8eSopenharmony_ci * @since 11 36861847f8eSopenharmony_ci */ 36961847f8eSopenharmony_ci /** 37061847f8eSopenharmony_ci * PiP window is about to stop. 37161847f8eSopenharmony_ci * 37261847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 37361847f8eSopenharmony_ci * @atomicservice 37461847f8eSopenharmony_ci * @since 12 37561847f8eSopenharmony_ci */ 37661847f8eSopenharmony_ci ABOUT_TO_STOP = 3, 37761847f8eSopenharmony_ci 37861847f8eSopenharmony_ci /** 37961847f8eSopenharmony_ci * PiP window stopped. 38061847f8eSopenharmony_ci * 38161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 38261847f8eSopenharmony_ci * @since 11 38361847f8eSopenharmony_ci */ 38461847f8eSopenharmony_ci /** 38561847f8eSopenharmony_ci * PiP window stopped. 38661847f8eSopenharmony_ci * 38761847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 38861847f8eSopenharmony_ci * @atomicservice 38961847f8eSopenharmony_ci * @since 12 39061847f8eSopenharmony_ci */ 39161847f8eSopenharmony_ci STOPPED = 4, 39261847f8eSopenharmony_ci 39361847f8eSopenharmony_ci /** 39461847f8eSopenharmony_ci * Restore the original page from PiP window 39561847f8eSopenharmony_ci * 39661847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 39761847f8eSopenharmony_ci * @since 11 39861847f8eSopenharmony_ci */ 39961847f8eSopenharmony_ci /** 40061847f8eSopenharmony_ci * Restore the original page from PiP window 40161847f8eSopenharmony_ci * 40261847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 40361847f8eSopenharmony_ci * @atomicservice 40461847f8eSopenharmony_ci * @since 12 40561847f8eSopenharmony_ci */ 40661847f8eSopenharmony_ci ABOUT_TO_RESTORE = 5, 40761847f8eSopenharmony_ci 40861847f8eSopenharmony_ci /** 40961847f8eSopenharmony_ci * Error message during start/stop. 41061847f8eSopenharmony_ci * 41161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 41261847f8eSopenharmony_ci * @since 11 41361847f8eSopenharmony_ci */ 41461847f8eSopenharmony_ci /** 41561847f8eSopenharmony_ci * Error message during start/stop. 41661847f8eSopenharmony_ci * 41761847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 41861847f8eSopenharmony_ci * @atomicservice 41961847f8eSopenharmony_ci * @since 12 42061847f8eSopenharmony_ci */ 42161847f8eSopenharmony_ci ERROR = 6, 42261847f8eSopenharmony_ci } 42361847f8eSopenharmony_ci 42461847f8eSopenharmony_ci /** 42561847f8eSopenharmony_ci * Describe PiP window custom controls. 42661847f8eSopenharmony_ci * 42761847f8eSopenharmony_ci * @typedef { VideoPlayControlGroup | VideoCallControlGroup | VideoMeetingControlGroup | VideoLiveControlGroup } 42861847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 42961847f8eSopenharmony_ci * @atomicservice 43061847f8eSopenharmony_ci * @since 12 43161847f8eSopenharmony_ci */ 43261847f8eSopenharmony_ci type PiPControlGroup = VideoPlayControlGroup | VideoCallControlGroup | VideoMeetingControlGroup | VideoLiveControlGroup; 43361847f8eSopenharmony_ci 43461847f8eSopenharmony_ci /** 43561847f8eSopenharmony_ci * Enum for video play PiP window custom controls. 43661847f8eSopenharmony_ci * 43761847f8eSopenharmony_ci * @enum { number }. 43861847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 43961847f8eSopenharmony_ci * @atomicservice 44061847f8eSopenharmony_ci * @since 12 44161847f8eSopenharmony_ci */ 44261847f8eSopenharmony_ci enum VideoPlayControlGroup { 44361847f8eSopenharmony_ci /** 44461847f8eSopenharmony_ci * Previous/Next for video. 44561847f8eSopenharmony_ci * 44661847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 44761847f8eSopenharmony_ci * @atomicservice 44861847f8eSopenharmony_ci * @since 12 44961847f8eSopenharmony_ci */ 45061847f8eSopenharmony_ci VIDEO_PREVIOUS_NEXT = 101, 45161847f8eSopenharmony_ci 45261847f8eSopenharmony_ci /** 45361847f8eSopenharmony_ci * Forward/Backward for video. 45461847f8eSopenharmony_ci * 45561847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 45661847f8eSopenharmony_ci * @atomicservice 45761847f8eSopenharmony_ci * @since 12 45861847f8eSopenharmony_ci */ 45961847f8eSopenharmony_ci FAST_FORWARD_BACKWARD = 102, 46061847f8eSopenharmony_ci } 46161847f8eSopenharmony_ci 46261847f8eSopenharmony_ci /** 46361847f8eSopenharmony_ci * Enum for video call PiP window custom controls. 46461847f8eSopenharmony_ci * 46561847f8eSopenharmony_ci * @enum { number }. 46661847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 46761847f8eSopenharmony_ci * @atomicservice 46861847f8eSopenharmony_ci * @since 12 46961847f8eSopenharmony_ci */ 47061847f8eSopenharmony_ci enum VideoCallControlGroup { 47161847f8eSopenharmony_ci /** 47261847f8eSopenharmony_ci * Turn on/off the microphone. 47361847f8eSopenharmony_ci * 47461847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 47561847f8eSopenharmony_ci * @atomicservice 47661847f8eSopenharmony_ci * @since 12 47761847f8eSopenharmony_ci */ 47861847f8eSopenharmony_ci MICROPHONE_SWITCH = 201, 47961847f8eSopenharmony_ci 48061847f8eSopenharmony_ci /** 48161847f8eSopenharmony_ci * Hang up. 48261847f8eSopenharmony_ci * 48361847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 48461847f8eSopenharmony_ci * @atomicservice 48561847f8eSopenharmony_ci * @since 12 48661847f8eSopenharmony_ci */ 48761847f8eSopenharmony_ci HANG_UP_BUTTON = 202, 48861847f8eSopenharmony_ci 48961847f8eSopenharmony_ci /** 49061847f8eSopenharmony_ci * Turn on/off the camera 49161847f8eSopenharmony_ci * 49261847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 49361847f8eSopenharmony_ci * @atomicservice 49461847f8eSopenharmony_ci * @since 12 49561847f8eSopenharmony_ci */ 49661847f8eSopenharmony_ci CAMERA_SWITCH = 203, 49761847f8eSopenharmony_ci 49861847f8eSopenharmony_ci /** 49961847f8eSopenharmony_ci * Mute switch. 50061847f8eSopenharmony_ci * 50161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 50261847f8eSopenharmony_ci * @atomicservice 50361847f8eSopenharmony_ci * @since 12 50461847f8eSopenharmony_ci */ 50561847f8eSopenharmony_ci MUTE_SWITCH = 204, 50661847f8eSopenharmony_ci } 50761847f8eSopenharmony_ci 50861847f8eSopenharmony_ci /** 50961847f8eSopenharmony_ci * Enum for video meeting PiP window custom controls. 51061847f8eSopenharmony_ci * 51161847f8eSopenharmony_ci * @enum { number }. 51261847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 51361847f8eSopenharmony_ci * @atomicservice 51461847f8eSopenharmony_ci * @since 12 51561847f8eSopenharmony_ci */ 51661847f8eSopenharmony_ci enum VideoMeetingControlGroup { 51761847f8eSopenharmony_ci /** 51861847f8eSopenharmony_ci * Hang up. 51961847f8eSopenharmony_ci * 52061847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 52161847f8eSopenharmony_ci * @atomicservice 52261847f8eSopenharmony_ci * @since 12 52361847f8eSopenharmony_ci */ 52461847f8eSopenharmony_ci HANG_UP_BUTTON = 301, 52561847f8eSopenharmony_ci 52661847f8eSopenharmony_ci /** 52761847f8eSopenharmony_ci * Turn on/off the camera 52861847f8eSopenharmony_ci * 52961847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 53061847f8eSopenharmony_ci * @atomicservice 53161847f8eSopenharmony_ci * @since 12 53261847f8eSopenharmony_ci */ 53361847f8eSopenharmony_ci CAMERA_SWITCH = 302, 53461847f8eSopenharmony_ci 53561847f8eSopenharmony_ci /** 53661847f8eSopenharmony_ci * Mute switch. 53761847f8eSopenharmony_ci * 53861847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 53961847f8eSopenharmony_ci * @atomicservice 54061847f8eSopenharmony_ci * @since 12 54161847f8eSopenharmony_ci */ 54261847f8eSopenharmony_ci MUTE_SWITCH = 303, 54361847f8eSopenharmony_ci 54461847f8eSopenharmony_ci /** 54561847f8eSopenharmony_ci * Turn on/off the microphone. 54661847f8eSopenharmony_ci * 54761847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 54861847f8eSopenharmony_ci * @atomicservice 54961847f8eSopenharmony_ci * @since 12 55061847f8eSopenharmony_ci */ 55161847f8eSopenharmony_ci MICROPHONE_SWITCH = 304, 55261847f8eSopenharmony_ci } 55361847f8eSopenharmony_ci 55461847f8eSopenharmony_ci /** 55561847f8eSopenharmony_ci * Enum for video Live PiP window custom controls. 55661847f8eSopenharmony_ci * 55761847f8eSopenharmony_ci * @enum { number }. 55861847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 55961847f8eSopenharmony_ci * @atomicservice 56061847f8eSopenharmony_ci * @since 12 56161847f8eSopenharmony_ci */ 56261847f8eSopenharmony_ci enum VideoLiveControlGroup { 56361847f8eSopenharmony_ci /** 56461847f8eSopenharmony_ci * Video play/pause control. 56561847f8eSopenharmony_ci * 56661847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 56761847f8eSopenharmony_ci * @atomicservice 56861847f8eSopenharmony_ci * @since 12 56961847f8eSopenharmony_ci */ 57061847f8eSopenharmony_ci VIDEO_PLAY_PAUSE = 401, 57161847f8eSopenharmony_ci 57261847f8eSopenharmony_ci /** 57361847f8eSopenharmony_ci * Mute switch. 57461847f8eSopenharmony_ci * 57561847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 57661847f8eSopenharmony_ci * @atomicservice 57761847f8eSopenharmony_ci * @since 12 57861847f8eSopenharmony_ci */ 57961847f8eSopenharmony_ci MUTE_SWITCH = 402, 58061847f8eSopenharmony_ci } 58161847f8eSopenharmony_ci 58261847f8eSopenharmony_ci /** 58361847f8eSopenharmony_ci * Enum for control status. 58461847f8eSopenharmony_ci * 58561847f8eSopenharmony_ci * @enum { number }. 58661847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 58761847f8eSopenharmony_ci * @atomicservice 58861847f8eSopenharmony_ci * @since 12 58961847f8eSopenharmony_ci */ 59061847f8eSopenharmony_ci enum PiPControlStatus { 59161847f8eSopenharmony_ci /** 59261847f8eSopenharmony_ci * The video is in play mode. 59361847f8eSopenharmony_ci * 59461847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 59561847f8eSopenharmony_ci * @atomicservice 59661847f8eSopenharmony_ci * @since 12 59761847f8eSopenharmony_ci */ 59861847f8eSopenharmony_ci PLAY = 1, 59961847f8eSopenharmony_ci 60061847f8eSopenharmony_ci /** 60161847f8eSopenharmony_ci * The video is in pause mode. 60261847f8eSopenharmony_ci * 60361847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 60461847f8eSopenharmony_ci * @atomicservice 60561847f8eSopenharmony_ci * @since 12 60661847f8eSopenharmony_ci */ 60761847f8eSopenharmony_ci PAUSE = 0, 60861847f8eSopenharmony_ci 60961847f8eSopenharmony_ci /** 61061847f8eSopenharmony_ci * A control with both open and closed states is in an open state. 61161847f8eSopenharmony_ci * 61261847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 61361847f8eSopenharmony_ci * @atomicservice 61461847f8eSopenharmony_ci * @since 12 61561847f8eSopenharmony_ci */ 61661847f8eSopenharmony_ci OPEN = 1, 61761847f8eSopenharmony_ci 61861847f8eSopenharmony_ci /** 61961847f8eSopenharmony_ci * A control with both open and closed states is in a close state. 62061847f8eSopenharmony_ci * 62161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 62261847f8eSopenharmony_ci * @atomicservice 62361847f8eSopenharmony_ci * @since 12 62461847f8eSopenharmony_ci */ 62561847f8eSopenharmony_ci CLOSE = 0, 62661847f8eSopenharmony_ci } 62761847f8eSopenharmony_ci 62861847f8eSopenharmony_ci /** 62961847f8eSopenharmony_ci * Enum for control type. 63061847f8eSopenharmony_ci * 63161847f8eSopenharmony_ci * @enum { number }. 63261847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 63361847f8eSopenharmony_ci * @atomicservice 63461847f8eSopenharmony_ci * @since 12 63561847f8eSopenharmony_ci */ 63661847f8eSopenharmony_ci enum PiPControlType { 63761847f8eSopenharmony_ci /** 63861847f8eSopenharmony_ci * Video play/pause control. 63961847f8eSopenharmony_ci * 64061847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 64161847f8eSopenharmony_ci * @atomicservice 64261847f8eSopenharmony_ci * @since 12 64361847f8eSopenharmony_ci */ 64461847f8eSopenharmony_ci VIDEO_PLAY_PAUSE = 0, 64561847f8eSopenharmony_ci 64661847f8eSopenharmony_ci /** 64761847f8eSopenharmony_ci * Previous video control. 64861847f8eSopenharmony_ci * 64961847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 65061847f8eSopenharmony_ci * @atomicservice 65161847f8eSopenharmony_ci * @since 12 65261847f8eSopenharmony_ci */ 65361847f8eSopenharmony_ci VIDEO_PREVIOUS = 1, 65461847f8eSopenharmony_ci 65561847f8eSopenharmony_ci /** 65661847f8eSopenharmony_ci * Next video control. 65761847f8eSopenharmony_ci * 65861847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 65961847f8eSopenharmony_ci * @atomicservice 66061847f8eSopenharmony_ci * @since 12 66161847f8eSopenharmony_ci */ 66261847f8eSopenharmony_ci VIDEO_NEXT = 2, 66361847f8eSopenharmony_ci 66461847f8eSopenharmony_ci /** 66561847f8eSopenharmony_ci * Fast-forward control. 66661847f8eSopenharmony_ci * 66761847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 66861847f8eSopenharmony_ci * @atomicservice 66961847f8eSopenharmony_ci * @since 12 67061847f8eSopenharmony_ci */ 67161847f8eSopenharmony_ci FAST_FORWARD = 3, 67261847f8eSopenharmony_ci 67361847f8eSopenharmony_ci /** 67461847f8eSopenharmony_ci * Fast-backward control. 67561847f8eSopenharmony_ci * 67661847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 67761847f8eSopenharmony_ci * @atomicservice 67861847f8eSopenharmony_ci * @since 12 67961847f8eSopenharmony_ci */ 68061847f8eSopenharmony_ci FAST_BACKWARD = 4, 68161847f8eSopenharmony_ci 68261847f8eSopenharmony_ci /** 68361847f8eSopenharmony_ci * Hang-up control. 68461847f8eSopenharmony_ci * 68561847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 68661847f8eSopenharmony_ci * @atomicservice 68761847f8eSopenharmony_ci * @since 12 68861847f8eSopenharmony_ci */ 68961847f8eSopenharmony_ci HANG_UP_BUTTON = 5, 69061847f8eSopenharmony_ci 69161847f8eSopenharmony_ci /** 69261847f8eSopenharmony_ci * Microphone state switching control. 69361847f8eSopenharmony_ci * 69461847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 69561847f8eSopenharmony_ci * @atomicservice 69661847f8eSopenharmony_ci * @since 12 69761847f8eSopenharmony_ci */ 69861847f8eSopenharmony_ci MICROPHONE_SWITCH = 6, 69961847f8eSopenharmony_ci 70061847f8eSopenharmony_ci /** 70161847f8eSopenharmony_ci * Camera state switching control. 70261847f8eSopenharmony_ci * 70361847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 70461847f8eSopenharmony_ci * @atomicservice 70561847f8eSopenharmony_ci * @since 12 70661847f8eSopenharmony_ci */ 70761847f8eSopenharmony_ci CAMERA_SWITCH = 7, 70861847f8eSopenharmony_ci 70961847f8eSopenharmony_ci /** 71061847f8eSopenharmony_ci * Mute state switching control. 71161847f8eSopenharmony_ci * 71261847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 71361847f8eSopenharmony_ci * @atomicservice 71461847f8eSopenharmony_ci * @since 12 71561847f8eSopenharmony_ci */ 71661847f8eSopenharmony_ci MUTE_SWITCH = 8, 71761847f8eSopenharmony_ci } 71861847f8eSopenharmony_ci 71961847f8eSopenharmony_ci 72061847f8eSopenharmony_ci /** 72161847f8eSopenharmony_ci * Describe picture-in-picture action event type. 72261847f8eSopenharmony_ci * 72361847f8eSopenharmony_ci * @typedef { PiPVideoActionEvent | PiPCallActionEvent | PiPMeetingActionEvent | PiPLiveActionEvent } 72461847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 72561847f8eSopenharmony_ci * @since 11 72661847f8eSopenharmony_ci */ 72761847f8eSopenharmony_ci /** 72861847f8eSopenharmony_ci * Describe picture-in-picture action event type. 72961847f8eSopenharmony_ci * 73061847f8eSopenharmony_ci * @typedef { PiPVideoActionEvent | PiPCallActionEvent | PiPMeetingActionEvent | PiPLiveActionEvent } 73161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 73261847f8eSopenharmony_ci * @atomicservice 73361847f8eSopenharmony_ci * @since 12 73461847f8eSopenharmony_ci */ 73561847f8eSopenharmony_ci type PiPActionEventType = PiPVideoActionEvent | PiPCallActionEvent | PiPMeetingActionEvent | PiPLiveActionEvent; 73661847f8eSopenharmony_ci 73761847f8eSopenharmony_ci /** 73861847f8eSopenharmony_ci * Describe picture-in-picture video template action event type. 73961847f8eSopenharmony_ci * 74061847f8eSopenharmony_ci * @typedef { 'playbackStateChanged' | 'nextVideo' | 'previousVideo' } 74161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 74261847f8eSopenharmony_ci * @since 11 74361847f8eSopenharmony_ci */ 74461847f8eSopenharmony_ci /** 74561847f8eSopenharmony_ci * Describe picture-in-picture video template action event type. 74661847f8eSopenharmony_ci * 74761847f8eSopenharmony_ci * @typedef { 'playbackStateChanged' | 'nextVideo' | 'previousVideo' | 'fastForward' | 'fastBackward' } 74861847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 74961847f8eSopenharmony_ci * @atomicservice 75061847f8eSopenharmony_ci * @since 12 75161847f8eSopenharmony_ci */ 75261847f8eSopenharmony_ci type PiPVideoActionEvent = 'playbackStateChanged' | 'nextVideo' | 'previousVideo' | 'fastForward' | 'fastBackward'; 75361847f8eSopenharmony_ci 75461847f8eSopenharmony_ci /** 75561847f8eSopenharmony_ci * Describe picture-in-picture call template action event type. 75661847f8eSopenharmony_ci * 75761847f8eSopenharmony_ci * @typedef { 'hangUp' | 'micStateChanged' | 'videoStateChanged' } 75861847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 75961847f8eSopenharmony_ci * @since 11 76061847f8eSopenharmony_ci */ 76161847f8eSopenharmony_ci /** 76261847f8eSopenharmony_ci * Describe picture-in-picture call template action event type. 76361847f8eSopenharmony_ci * 76461847f8eSopenharmony_ci * @typedef { 'hangUp' | 'micStateChanged' | 'videoStateChanged' | 'voiceStateChanged' } 76561847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 76661847f8eSopenharmony_ci * @atomicservice 76761847f8eSopenharmony_ci * @since 12 76861847f8eSopenharmony_ci */ 76961847f8eSopenharmony_ci type PiPCallActionEvent = 'hangUp' | 'micStateChanged' | 'videoStateChanged' | 'voiceStateChanged'; 77061847f8eSopenharmony_ci 77161847f8eSopenharmony_ci /** 77261847f8eSopenharmony_ci * Describe picture-in-picture meeting template action event type. 77361847f8eSopenharmony_ci * 77461847f8eSopenharmony_ci * @typedef { 'hangUp' | 'voiceStateChanged' | 'videoStateChanged' } 77561847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 77661847f8eSopenharmony_ci * @since 11 77761847f8eSopenharmony_ci */ 77861847f8eSopenharmony_ci /** 77961847f8eSopenharmony_ci * Describe picture-in-picture meeting template action event type. 78061847f8eSopenharmony_ci * 78161847f8eSopenharmony_ci * @typedef { 'hangUp' | 'voiceStateChanged' | 'videoStateChanged' | 'micStateChanged' } 78261847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 78361847f8eSopenharmony_ci * @atomicservice 78461847f8eSopenharmony_ci * @since 12 78561847f8eSopenharmony_ci */ 78661847f8eSopenharmony_ci type PiPMeetingActionEvent = 'hangUp' | 'voiceStateChanged' | 'videoStateChanged' | 'micStateChanged'; 78761847f8eSopenharmony_ci 78861847f8eSopenharmony_ci /** 78961847f8eSopenharmony_ci * Describe picture-in-picture live template action event type. 79061847f8eSopenharmony_ci * 79161847f8eSopenharmony_ci * @typedef { 'playbackStateChanged' } 79261847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 79361847f8eSopenharmony_ci * @since 11 79461847f8eSopenharmony_ci */ 79561847f8eSopenharmony_ci /** 79661847f8eSopenharmony_ci * Describe picture-in-picture live template action event type. 79761847f8eSopenharmony_ci * 79861847f8eSopenharmony_ci * @typedef { 'playbackStateChanged' | 'voiceStateChanged' } 79961847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 80061847f8eSopenharmony_ci * @atomicservice 80161847f8eSopenharmony_ci * @since 12 80261847f8eSopenharmony_ci */ 80361847f8eSopenharmony_ci type PiPLiveActionEvent = 'playbackStateChanged' | 'voiceStateChanged'; 80461847f8eSopenharmony_ci 80561847f8eSopenharmony_ci /** 80661847f8eSopenharmony_ci * Describe picture-in-picture control panel action event callback. 80761847f8eSopenharmony_ci * 80861847f8eSopenharmony_ci * @typedef { function } ControlPanelActionEventCallback 80961847f8eSopenharmony_ci * @param { PiPActionEventType } event - the event from controlPanel 81061847f8eSopenharmony_ci * @param { number } [status] - the status of control button 81161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 81261847f8eSopenharmony_ci * @atomicservice 81361847f8eSopenharmony_ci * @since 12 81461847f8eSopenharmony_ci */ 81561847f8eSopenharmony_ci type ControlPanelActionEventCallback = (event: PiPActionEventType, status?: number) => void; 81661847f8eSopenharmony_ci 81761847f8eSopenharmony_ci /** 81861847f8eSopenharmony_ci * Describe picture-in-picture control event callback. 81961847f8eSopenharmony_ci * 82061847f8eSopenharmony_ci * @interface ControlEventParam 82161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 82261847f8eSopenharmony_ci * @atomicservice 82361847f8eSopenharmony_ci * @since 12 82461847f8eSopenharmony_ci */ 82561847f8eSopenharmony_ci interface ControlEventParam { 82661847f8eSopenharmony_ci /** 82761847f8eSopenharmony_ci * The type of control. 82861847f8eSopenharmony_ci * 82961847f8eSopenharmony_ci * @type { PiPControlType } 83061847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 83161847f8eSopenharmony_ci * @atomicservice 83261847f8eSopenharmony_ci * @since 12 83361847f8eSopenharmony_ci */ 83461847f8eSopenharmony_ci controlType: PiPControlType; 83561847f8eSopenharmony_ci 83661847f8eSopenharmony_ci /** 83761847f8eSopenharmony_ci * The status of control. 83861847f8eSopenharmony_ci * 83961847f8eSopenharmony_ci * @type { ?PiPControlStatus } 84061847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 84161847f8eSopenharmony_ci * @atomicservice 84261847f8eSopenharmony_ci * @since 12 84361847f8eSopenharmony_ci */ 84461847f8eSopenharmony_ci status?: PiPControlStatus; 84561847f8eSopenharmony_ci } 84661847f8eSopenharmony_ci 84761847f8eSopenharmony_ci /** 84861847f8eSopenharmony_ci * PiPController 84961847f8eSopenharmony_ci * 85061847f8eSopenharmony_ci * @interface PiPController 85161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 85261847f8eSopenharmony_ci * @since 11 85361847f8eSopenharmony_ci */ 85461847f8eSopenharmony_ci /** 85561847f8eSopenharmony_ci * PiPController 85661847f8eSopenharmony_ci * 85761847f8eSopenharmony_ci * @interface PiPController 85861847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 85961847f8eSopenharmony_ci * @atomicservice 86061847f8eSopenharmony_ci * @since 12 86161847f8eSopenharmony_ci */ 86261847f8eSopenharmony_ci interface PiPController { 86361847f8eSopenharmony_ci 86461847f8eSopenharmony_ci /** 86561847f8eSopenharmony_ci * Start picture-in-picture 86661847f8eSopenharmony_ci * @returns { Promise<void> } - The promise returned by the function 86761847f8eSopenharmony_ci * @throws { BusinessError } 1300012 - The PiP window state is abnormal. 86861847f8eSopenharmony_ci * @throws { BusinessError } 1300013 - Failed to create the PiP window. 86961847f8eSopenharmony_ci * @throws { BusinessError } 1300014 - PiP internal error. 87061847f8eSopenharmony_ci * @throws { BusinessError } 1300015 - Repeated PiP operation. 87161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 87261847f8eSopenharmony_ci * @since 11 87361847f8eSopenharmony_ci */ 87461847f8eSopenharmony_ci /** 87561847f8eSopenharmony_ci * Start picture-in-picture 87661847f8eSopenharmony_ci * @returns { Promise<void> } - The promise returned by the function 87761847f8eSopenharmony_ci * @throws { BusinessError } 1300012 - The PiP window state is abnormal. 87861847f8eSopenharmony_ci * @throws { BusinessError } 1300013 - Failed to create the PiP window. 87961847f8eSopenharmony_ci * @throws { BusinessError } 1300014 - PiP internal error. 88061847f8eSopenharmony_ci * @throws { BusinessError } 1300015 - Repeated PiP operation. 88161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 88261847f8eSopenharmony_ci * @atomicservice 88361847f8eSopenharmony_ci * @since 12 88461847f8eSopenharmony_ci */ 88561847f8eSopenharmony_ci startPiP(): Promise<void>; 88661847f8eSopenharmony_ci 88761847f8eSopenharmony_ci /** 88861847f8eSopenharmony_ci * Stop picture-in-picture. 88961847f8eSopenharmony_ci * @returns { Promise<void> } - The promise returned by the function. 89061847f8eSopenharmony_ci * @throws { BusinessError } 1300011 - Failed to destroy the PiP window. 89161847f8eSopenharmony_ci * @throws { BusinessError } 1300012 - The PiP window state is abnormal. 89261847f8eSopenharmony_ci * @throws { BusinessError } 1300015 - Repeated PiP operation. 89361847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 89461847f8eSopenharmony_ci * @since 11 89561847f8eSopenharmony_ci */ 89661847f8eSopenharmony_ci /** 89761847f8eSopenharmony_ci * Stop picture-in-picture. 89861847f8eSopenharmony_ci * @returns { Promise<void> } - The promise returned by the function. 89961847f8eSopenharmony_ci * @throws { BusinessError } 1300011 - Failed to destroy the PiP window. 90061847f8eSopenharmony_ci * @throws { BusinessError } 1300012 - The PiP window state is abnormal. 90161847f8eSopenharmony_ci * @throws { BusinessError } 1300015 - Repeated PiP operation. 90261847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 90361847f8eSopenharmony_ci * @atomicservice 90461847f8eSopenharmony_ci * @since 12 90561847f8eSopenharmony_ci */ 90661847f8eSopenharmony_ci stopPiP(): Promise<void>; 90761847f8eSopenharmony_ci 90861847f8eSopenharmony_ci /** 90961847f8eSopenharmony_ci * Set if auto start picture-in-picture when back home 91061847f8eSopenharmony_ci * @param { boolean } enable - Enable auto start picture-in-picture when back home 91161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 91261847f8eSopenharmony_ci * @since 11 91361847f8eSopenharmony_ci */ 91461847f8eSopenharmony_ci /** 91561847f8eSopenharmony_ci * Set if auto start picture-in-picture when back home 91661847f8eSopenharmony_ci * @param { boolean } enable - Enable auto start picture-in-picture when back home 91761847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 91861847f8eSopenharmony_ci * @atomicservice 91961847f8eSopenharmony_ci * @since 12 92061847f8eSopenharmony_ci */ 92161847f8eSopenharmony_ci setAutoStartEnabled(enable: boolean): void; 92261847f8eSopenharmony_ci 92361847f8eSopenharmony_ci /** 92461847f8eSopenharmony_ci * Update source content size to adjust PiP window aspect ratio. 92561847f8eSopenharmony_ci * @param { number } width - Indicate the width of the content. The width can consist of only digits and above 0. 92661847f8eSopenharmony_ci * @param { number } height - Indicate the height of the content. The height can consist of only digits and above 0. 92761847f8eSopenharmony_ci * @throws { BusinessError } 401 - Params error. Possible causes: 1. Mandatory parameters are left unspecified. 92861847f8eSopenharmony_ci * 2. Incorrect parameter types. 92961847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 93061847f8eSopenharmony_ci * @since 11 93161847f8eSopenharmony_ci */ 93261847f8eSopenharmony_ci /** 93361847f8eSopenharmony_ci * Update source content size to adjust PiP window aspect ratio. 93461847f8eSopenharmony_ci * @param { number } width - Indicate the width of the content. The width can consist of only digits and above 0. 93561847f8eSopenharmony_ci * @param { number } height - Indicate the height of the content. The height can consist of only digits and above 0. 93661847f8eSopenharmony_ci * @throws { BusinessError } 401 - Params error. Possible causes: 1. Mandatory parameters are left unspecified. 93761847f8eSopenharmony_ci * 2. Incorrect parameter types. 93861847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 93961847f8eSopenharmony_ci * @atomicservice 94061847f8eSopenharmony_ci * @since 12 94161847f8eSopenharmony_ci */ 94261847f8eSopenharmony_ci updateContentSize(width: number, height: number): void; 94361847f8eSopenharmony_ci 94461847f8eSopenharmony_ci /** 94561847f8eSopenharmony_ci * Set dashboard control status. 94661847f8eSopenharmony_ci * @param { PiPControlType } controlType - Describe picture-in-picture control type. 94761847f8eSopenharmony_ci * @param { PiPControlStatus } status - Describe picture-in-picture control Status. 94861847f8eSopenharmony_ci * @throws { BusinessError } 401 - Params error. Possible causes: 1. Mandatory parameters are left unspecified. 94961847f8eSopenharmony_ci * 2. Incorrect parameter types. 95061847f8eSopenharmony_ci * 3. Parameter verification failed 95161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 95261847f8eSopenharmony_ci * @atomicservice 95361847f8eSopenharmony_ci * @since 12 95461847f8eSopenharmony_ci */ 95561847f8eSopenharmony_ci updatePiPControlStatus(controlType: PiPControlType, status: PiPControlStatus): void; 95661847f8eSopenharmony_ci 95761847f8eSopenharmony_ci /** 95861847f8eSopenharmony_ci * Set Dashboard control enable status. 95961847f8eSopenharmony_ci * @param { PiPControlType } controlType - Describe picture-in-picture control type. 96061847f8eSopenharmony_ci * @param { boolean } enabled - Describe picture-in-picture control enable Status. 96161847f8eSopenharmony_ci * @throws { BusinessError } 401 - Params error. Possible causes: 1. Mandatory parameters are left unspecified. 96261847f8eSopenharmony_ci * 2. Incorrect parameter types. 96361847f8eSopenharmony_ci * 3. Parameter verification failed 96461847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 96561847f8eSopenharmony_ci * @atomicservice 96661847f8eSopenharmony_ci * @since 12 96761847f8eSopenharmony_ci */ 96861847f8eSopenharmony_ci setPiPControlEnabled(controlType: PiPControlType, enabled: boolean): void; 96961847f8eSopenharmony_ci 97061847f8eSopenharmony_ci /** 97161847f8eSopenharmony_ci * Register picture-in-picture control event listener. 97261847f8eSopenharmony_ci * @param { 'stateChange' } type - Registration type, PiP lifecycle state change, 'stateChange' 97361847f8eSopenharmony_ci * @param { function } callback - Used to handle {'stateChange'} command 97461847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 97561847f8eSopenharmony_ci * @since 11 97661847f8eSopenharmony_ci */ 97761847f8eSopenharmony_ci /** 97861847f8eSopenharmony_ci * Register picture-in-picture control event listener. 97961847f8eSopenharmony_ci * @param { 'stateChange' } type - Registration type, PiP lifecycle state change, 'stateChange' 98061847f8eSopenharmony_ci * @param { function } callback - Used to handle {'stateChange'} command 98161847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 98261847f8eSopenharmony_ci * @atomicservice 98361847f8eSopenharmony_ci * @since 12 98461847f8eSopenharmony_ci */ 98561847f8eSopenharmony_ci on(type: 'stateChange', callback: (state: PiPState, reason: string) => void): void; 98661847f8eSopenharmony_ci 98761847f8eSopenharmony_ci /** 98861847f8eSopenharmony_ci * Unregister picture-in-picture lifecycle event listener. 98961847f8eSopenharmony_ci * @param { 'stateChange' } type - Used to unregister listener for {'stateChange'} command 99061847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 99161847f8eSopenharmony_ci * @since 11 99261847f8eSopenharmony_ci */ 99361847f8eSopenharmony_ci /** 99461847f8eSopenharmony_ci * Unregister picture-in-picture lifecycle event listener. 99561847f8eSopenharmony_ci * @param { 'stateChange' } type - Used to unregister listener for {'stateChange'} command 99661847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 99761847f8eSopenharmony_ci * @atomicservice 99861847f8eSopenharmony_ci * @since 12 99961847f8eSopenharmony_ci */ 100061847f8eSopenharmony_ci off(type: 'stateChange'): void; 100161847f8eSopenharmony_ci 100261847f8eSopenharmony_ci /** 100361847f8eSopenharmony_ci * Register picture-in-picture control event listener. 100461847f8eSopenharmony_ci * @param { 'controlPanelActionEvent' } type - Registration type, user action event, 'controlPanelActionEvent' 100561847f8eSopenharmony_ci * @param { function } callback - Used to handle {'controlPanelActionEvent'} command 100661847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 100761847f8eSopenharmony_ci * @since 11 100861847f8eSopenharmony_ci */ 100961847f8eSopenharmony_ci /** 101061847f8eSopenharmony_ci * Register picture-in-picture control event listener. 101161847f8eSopenharmony_ci * 101261847f8eSopenharmony_ci * @param { 'controlPanelActionEvent' } type - Registration type, user action event, 'controlPanelActionEvent' 101361847f8eSopenharmony_ci * @param { ControlPanelActionEventCallback } callback - Used to handle {'controlPanelActionEvent'} command. 101461847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 101561847f8eSopenharmony_ci * @atomicservice 101661847f8eSopenharmony_ci * @since 12 101761847f8eSopenharmony_ci */ 101861847f8eSopenharmony_ci on(type: 'controlPanelActionEvent', callback: ControlPanelActionEventCallback): void; 101961847f8eSopenharmony_ci 102061847f8eSopenharmony_ci /** 102161847f8eSopenharmony_ci * Unregister picture-in-picture lifecycle event listener 102261847f8eSopenharmony_ci * @param { 'controlPanelActionEvent' } type - Used to unregister listener for {'controlPanelActionEvent'} command 102361847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 102461847f8eSopenharmony_ci * @since 11 102561847f8eSopenharmony_ci */ 102661847f8eSopenharmony_ci /** 102761847f8eSopenharmony_ci * Unregister picture-in-picture lifecycle event listener 102861847f8eSopenharmony_ci * @param { 'controlPanelActionEvent' } type - Used to unregister listener for {'controlPanelActionEvent'} command 102961847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 103061847f8eSopenharmony_ci * @atomicservice 103161847f8eSopenharmony_ci * @since 12 103261847f8eSopenharmony_ci */ 103361847f8eSopenharmony_ci off(type: 'controlPanelActionEvent'): void; 103461847f8eSopenharmony_ci 103561847f8eSopenharmony_ci /** 103661847f8eSopenharmony_ci * Register picture-in-picture control event listener. 103761847f8eSopenharmony_ci * 103861847f8eSopenharmony_ci * @param { 'controlEvent' } type - Registration type, user action event, 'controlEvent' 103961847f8eSopenharmony_ci * @param { Callback<ControlEventParam> } callback - Used to handle {'controlEvent'} command. 104061847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 104161847f8eSopenharmony_ci * @atomicservice 104261847f8eSopenharmony_ci * @since 12 104361847f8eSopenharmony_ci */ 104461847f8eSopenharmony_ci on(type: 'controlEvent', callback: Callback<ControlEventParam>): void; 104561847f8eSopenharmony_ci 104661847f8eSopenharmony_ci /** 104761847f8eSopenharmony_ci * Unregister picture-in-picture control event listener 104861847f8eSopenharmony_ci * @param { 'controlEvent' } type - Used to unregister listener for {'controlEvent'} command 104961847f8eSopenharmony_ci * @param { Callback<ControlEventParam> } callback - Used to handle {'controlEvent'} command. 105061847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager 105161847f8eSopenharmony_ci * @atomicservice 105261847f8eSopenharmony_ci * @since 12 105361847f8eSopenharmony_ci */ 105461847f8eSopenharmony_ci off(type: 'controlEvent', callback?: Callback<ControlEventParam>): void; 105561847f8eSopenharmony_ci } 105661847f8eSopenharmony_ci} 105761847f8eSopenharmony_ci 105861847f8eSopenharmony_ciexport default PiPWindow; 1059