1 /* 2 * Copyright (c) 2023-2023 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 #ifndef OHOS_PICTURE_IN_PICTURE_INTERFACE_H 17 #define OHOS_PICTURE_IN_PICTURE_INTERFACE_H 18 19 #include "napi/native_api.h" 20 #include "wm_common.h" 21 22 namespace OHOS { 23 namespace Rosen { 24 /** 25 * @class IPiPLifeCycle 26 * 27 * @brief Pip lifecycle listener. 28 */ 29 class IPiPLifeCycle : virtual public RefBase { 30 public: OnPreparePictureInPictureStart()31 virtual void OnPreparePictureInPictureStart() {} OnPictureInPictureStart()32 virtual void OnPictureInPictureStart() {} OnPreparePictureInPictureStop()33 virtual void OnPreparePictureInPictureStop() {} OnPictureInPictureStop()34 virtual void OnPictureInPictureStop() {} OnPictureInPictureOperationError(int32_t errorCode)35 virtual void OnPictureInPictureOperationError(int32_t errorCode) {} OnRestoreUserInterface()36 virtual void OnRestoreUserInterface() {} 37 38 // native callback OnPreparePictureInPictureStart(uint32_t controllerId)39 virtual void OnPreparePictureInPictureStart(uint32_t controllerId) {} OnPictureInPictureStart(uint32_t controllerId)40 virtual void OnPictureInPictureStart(uint32_t controllerId) {} OnPreparePictureInPictureStop(uint32_t controllerId)41 virtual void OnPreparePictureInPictureStop(uint32_t controllerId) {} OnPictureInPictureStop(uint32_t controllerId)42 virtual void OnPictureInPictureStop(uint32_t controllerId) {} OnPictureInPictureOperationError(uint32_t controllerId,int32_t errorCode)43 virtual void OnPictureInPictureOperationError(uint32_t controllerId, int32_t errorCode) {} OnRestoreUserInterface(uint32_t controllerId)44 virtual void OnRestoreUserInterface(uint32_t controllerId) {} 45 }; 46 47 /** 48 * @class IPiPActionObserver 49 * 50 * @brief Pip action observer. 51 */ 52 class IPiPActionObserver : virtual public RefBase { 53 public: OnActionEvent(const std::string & name,int32_t status)54 virtual void OnActionEvent(const std::string& name, int32_t status) {} 55 }; 56 57 /** 58 * @class IPiPControlObserver 59 * 60 * @brief Pip control observer. 61 */ 62 class IPiPControlObserver : virtual public RefBase { 63 public: OnControlEvent(PiPControlType controlType,PiPControlStatus status)64 virtual void OnControlEvent(PiPControlType controlType, PiPControlStatus status) {} 65 66 // native callback OnControlEvent(uint32_t controllerId,PiPControlType controlType,PiPControlStatus status)67 virtual void OnControlEvent(uint32_t controllerId, PiPControlType controlType, PiPControlStatus status) {} 68 }; 69 70 /** 71 * @class IPiPControlObserver 72 * 73 * @brief Pip control observer. 74 */ 75 class IPiPWindowSize : virtual public RefBase { 76 public: OnPipSizeChange(const PiPWindowSize & size)77 virtual void OnPipSizeChange(const PiPWindowSize& size) {} 78 79 // native callback OnPipSizeChange(uint32_t controllerId,const PiPWindowSize & size)80 virtual void OnPipSizeChange(uint32_t controllerId, const PiPWindowSize& size) {} 81 }; 82 83 /** 84 * @class IPiPTypeNodeObserver 85 * 86 * @brief Pip typeNode observer. 87 */ 88 class IPiPTypeNodeObserver : virtual public RefBase { 89 public: OnPipTypeNodeChange(const napi_ref nodeRef)90 virtual void OnPipTypeNodeChange(const napi_ref nodeRef) {} 91 }; 92 93 class IPiPStartObserver : virtual public RefBase { 94 public: 95 // native callback OnPipStart(uint32_t controllerId,uint8_t requestId,uint64_t surfaceId)96 virtual void OnPipStart(uint32_t controllerId, uint8_t requestId, uint64_t surfaceId) {} 97 }; 98 } // namespace Rosen 99 } // namespace OHOS 100 #endif //OHOS_PICTURE_IN_PICTURE_INTERFACE_H 101