diff --git a/arkui/window_manager/libwm.ndk.json b/arkui/window_manager/libwm.ndk.json index 2b377c4799df9333cbb43ed87765db84d067e1d4..29e1de339e6436abb34bfeb9c0159a7b68b6cd55 100644 --- a/arkui/window_manager/libwm.ndk.json +++ b/arkui/window_manager/libwm.ndk.json @@ -89,7 +89,11 @@ }, { "first_instroduced":"20", - "name":"OH_PictureInPicture_CreatePip" + "name":"OH_PictureInPicture_CreatePipConfig" + }, + { + "first_instroduced":"20", + "name":"OH_PictureInPicture_DestroyPipConfig" }, { "first_instroduced":"20", @@ -111,6 +115,10 @@ "first_instroduced":"20", "name":"OH_PictureInPicture_SetPipNapiEnv" }, + { + "first_instroduced":"20", + "name":"OH_PictureInPicture_CreatePip" + }, { "first_instroduced":"20", "name":"OH_PictureInPicture_DeletePip" @@ -123,6 +131,10 @@ "first_instroduced":"20", "name":"OH_PictureInPicture_StopPip" }, + { + "first_instroduced":"20", + "name":"OH_PictureInPicture_UpdatePipContentSize" + }, { "first_instroduced":"20", "name":"OH_PictureInPicture_UpdatePipControlStatus" @@ -145,15 +157,15 @@ }, { "first_instroduced":"20", - "name":"OH_PictureInPicture_RegisterLifeCycleListener" + "name":"OH_PictureInPicture_RegisterLifecycleListener" }, { "first_instroduced":"20", - "name":"OH_PictureInPicture_UnregisterLifeCycleListener" + "name":"OH_PictureInPicture_UnregisterLifecycleListener" }, { "first_instroduced":"20", - "name":"OH_PictureInPicture_UnregisterAllLifeCycleListeners" + "name":"OH_PictureInPicture_UnregisterAllLifecycleListeners" }, { "first_instroduced":"20", diff --git a/arkui/window_manager/oh_window_pip.h b/arkui/window_manager/oh_window_pip.h index 15260f9ea2077cfcd64ea6a13f56e8839c90f779..d4e9de86f88fcd74b2710e4063a9375f99c10f6d 100644 --- a/arkui/window_manager/oh_window_pip.h +++ b/arkui/window_manager/oh_window_pip.h @@ -36,6 +36,12 @@ extern "C" { #endif +/** + * @brief Picture in picture config. + * @since 20 + */ +typedef void* PictureInPicture_PipConfig; + /** * @brief Enumerates picture in picture template type. * @since 20 @@ -105,8 +111,6 @@ typedef enum { CAMERA_SWITCH = 7, /** mute switch. */ MUTE_SWITCH = 8, - /** end. */ - END, } PictureInPicture_PipControlType; /** @@ -159,7 +163,7 @@ typedef void (*WebPipStartPipCallback)(uint32_t controllerId, uint8_t requestId, * @param errcode The picture-in-picture error code * @since 20 */ -typedef void (*WebPipLifeCycleCallback)(uint32_t controllerId, PictureInPicture_PipState state, int32_t errcode); +typedef void (*WebPipLifecycleCallback)(uint32_t controllerId, PictureInPicture_PipState state, int32_t errcode); /** * @brief The picture-in-picture control event callback @@ -182,21 +186,29 @@ typedef void (*WebPipControlEventCallback)(uint32_t controllerId, PictureInPictu typedef void (*WebPipResizeCallback)(uint32_t controllerId, uint32_t width, uint32_t height, double scale); /** - * @brief Create picture-in-picture controller. - * @param controllerId The picture-in-picture controller ID + * @brief Create picture-in-picture config. + * @param pipConfig The picture-in-picture config * @return Return the result code. * {@link OK} the function call is successful. * {@link WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM} parameter error. - * {@link WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED} capability not supported. - * {@link WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR} pip internal error. * @since 20 */ -int32_t OH_PictureInPicture_CreatePip(uint32_t* controllerId); +int32_t OH_PictureInPicture_CreatePipConfig(PictureInPicture_PipConfig* pipConfig); + +/** + * @brief Destroy picture-in-picture config. + * @param pipConfig The picture-in-picture config + * @return Return the result code. + * {@link OK} the function call is successful. + * {@link WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM} parameter error. + * @since 20 + */ +int32_t OH_PictureInPicture_DestroyPipConfig(PictureInPicture_PipConfig* pipConfig); /** * @brief Set picture-in-picture mainWindowId. * - * @param controllerId The picture-in-picture controller ID + * @param pipConfig The picture-in-picture config * @param mainWindowId WindowId of corresponding mainWindow * @return Return the result code. * {@link OK} the function call is successful. @@ -204,12 +216,12 @@ int32_t OH_PictureInPicture_CreatePip(uint32_t* controllerId); * {@link WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED} capability not supported. * @since 20 */ -int32_t OH_PictureInPicture_SetPipMainWindowId(uint32_t controllerId, uint32_t mainWindowId); +int32_t OH_PictureInPicture_SetPipMainWindowId(PictureInPicture_PipConfig pipConfig, uint32_t mainWindowId); /** * @brief Set picture-in-picture templateType. * - * @param controllerId The picture-in-picture controller ID + * @param pipConfig The picture-in-picture config * @param pipTemplateType The picture-in-picture template type * @return Return the result code. * {@link OK} the function call is successful. @@ -217,12 +229,13 @@ int32_t OH_PictureInPicture_SetPipMainWindowId(uint32_t controllerId, uint32_t m * {@link WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED} capability not supported. * @since 20 */ -int32_t OH_PictureInPicture_SetPipTemplateType(uint32_t controllerId, PictureInPicture_PipTemplateType pipTemplateType); +int32_t OH_PictureInPicture_SetPipTemplateType(PictureInPicture_PipConfig pipConfig, + PictureInPicture_PipTemplateType pipTemplateType); /** * @brief Set picture-in-picture rect. * - * @param controllerId The picture-in-picture controller ID + * @param pipConfig The picture-in-picture config * @param width The picture-in-picture window width * @param height The picture-in-picture window height * @return Return the result code. @@ -231,12 +244,12 @@ int32_t OH_PictureInPicture_SetPipTemplateType(uint32_t controllerId, PictureInP * {@link WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED} capability not supported. * @since 20 */ -int32_t OH_PictureInPicture_SetPipRect(uint32_t controllerId, uint32_t width, uint32_t height); +int32_t OH_PictureInPicture_SetPipRect(PictureInPicture_PipConfig pipConfig, uint32_t width, uint32_t height); /** * @brief Set picture-in-picture control group. * - * @param controllerId The picture-in-picture controller ID + * @param pipConfig The picture-in-picture config * @param controlGroup The picture-in-picture control group * @param controlGroupLength The length of picture-in-picture control group * @return Return the result code. @@ -245,13 +258,13 @@ int32_t OH_PictureInPicture_SetPipRect(uint32_t controllerId, uint32_t width, ui * {@link WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED} capability not supported. * @since 20 */ -int32_t OH_PictureInPicture_SetPipControlGroup(uint32_t controllerId, PictureInPicture_PipControlGroup* controlGroup, - uint8_t controlGroupLength); +int32_t OH_PictureInPicture_SetPipControlGroup(PictureInPicture_PipConfig pipConfig, + PictureInPicture_PipControlGroup* controlGroup, uint8_t controlGroupLength); /** * @brief Set picture-in-picture napi env. * - * @param controllerId The picture-in-picture controller ID + * @param pipConfig The picture-in-picture config * @param env The picture-in-picture napi env * @return Return the result code. * {@link OK} the function call is successful. @@ -259,7 +272,20 @@ int32_t OH_PictureInPicture_SetPipControlGroup(uint32_t controllerId, PictureInP * {@link WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED} capability not supported. * @since 20 */ -int32_t OH_PictureInPicture_SetPipNapiEnv(uint32_t controllerId, void* env); +int32_t OH_PictureInPicture_SetPipNapiEnv(PictureInPicture_PipConfig pipConfig, void* env); + +/** + * @brief Create picture-in-picture controller. + * @param pipConfig The picture-in-picture config + * @param controllerId The picture-in-picture controller ID + * @return Return the result code. + * {@link OK} the function call is successful. + * {@link WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM} parameter error. + * {@link WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED} capability not supported. + * {@link WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR} pip internal error. + * @since 20 + */ +int32_t OH_PictureInPicture_CreatePip(PictureInPicture_PipConfig pipConfig, uint32_t* controllerId); /** * @brief Delete picture-in-picture controller. @@ -282,6 +308,7 @@ int32_t OH_PictureInPicture_DeletePip(uint32_t controllerId); * {@link WINDOW_MANAGER_ERRORCODE_PIP_CREATE_FAILED} failed to create the PiP window. * {@link WINDOW_MANAGER_ERRORCODE_ERRORCODE_PIP_INTERNAL_ERROR} pip internal error. * {@link WINDOW_MANAGER_ERRORCODE_PIP_REPEATED_OPERATION} repeated PiP operation. + * {@link WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM} parameter error. * @since 20 */ int32_t OH_PictureInPicture_StartPip(uint32_t controllerId); @@ -296,6 +323,7 @@ int32_t OH_PictureInPicture_StartPip(uint32_t controllerId); * {@link WINDOW_MANAGER_ERRORCODE_PIP_STATE_ABNORMAL} the PiP window state is abnormal. * {@link WINDOW_MANAGER_ERRORCODE_ERRORCODE_PIP_INTERNAL_ERROR} pip internal error. * {@link WINDOW_MANAGER_ERRORCODE_PIP_REPEATED_OPERATION} repeated PiP operation. + * {@link WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM} parameter error. * @since 20 */ int32_t OH_PictureInPicture_StopPip(uint32_t controllerId); @@ -306,9 +334,13 @@ int32_t OH_PictureInPicture_StopPip(uint32_t controllerId); * @param controllerId The picture-in-picture controller ID * @param width The picture-in-picture content width * @param height The picture-in-picture content height + * @return Return the result code. + * {@link OK} the function call is successful. + * {@link WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM} parameter error. + * {@link WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR} pip internal error. * @since 20 */ -void OH_PictureInPicture_UpdatePipContentSize(uint32_t controllerId, uint32_t width, uint32_t height); +int32_t OH_PictureInPicture_UpdatePipContentSize(uint32_t controllerId, uint32_t width, uint32_t height); /** * @brief Update picture-in-picture control status. @@ -316,9 +348,13 @@ void OH_PictureInPicture_UpdatePipContentSize(uint32_t controllerId, uint32_t wi * @param controllerId The picture-in-picture controller ID * @param controlType The picture-in-picture control type. * @param status The picture-in-picture control status. - * @since 20 + * @return Return the result code. + * {@link OK} the function call is successful. + * {@link WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM} parameter error. + * {@link WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR} pip internal error. + * @since 20 */ -void OH_PictureInPicture_UpdatePipControlStatus(uint32_t controllerId, PictureInPicture_PipControlType controlType, +int32_t OH_PictureInPicture_UpdatePipControlStatus(uint32_t controllerId, PictureInPicture_PipControlType controlType, PictureInPicture_PipControlStatus status); /** @@ -327,9 +363,13 @@ void OH_PictureInPicture_UpdatePipControlStatus(uint32_t controllerId, PictureIn * @param controllerId The picture-in-picture controller ID * @param controlType The picture-in-picture control type. * @param enabled Indicate the picture-in-picture control is enabled. + * @return Return the result code. + * {@link OK} the function call is successful. + * {@link WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM} parameter error. + * {@link WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR} pip internal error. * @since 20 */ -void OH_PictureInPicture_SetPipControlEnabled(uint32_t controllerId, PictureInPicture_PipControlType controlType, +int32_t OH_PictureInPicture_SetPipControlEnabled(uint32_t controllerId, PictureInPicture_PipControlType controlType, bool enabled); /** @@ -374,7 +414,7 @@ int32_t OH_PictureInPicture_UnregisterStartPipCallback(uint32_t controllerId, We int32_t OH_PictureInPicture_UnregisterAllStartPipCallbacks(uint32_t controllerId); /** - * @brief Register picture-in-picture life cycle listener callback. + * @brief Register picture-in-picture lifecycle listener callback. * * @param controllerId The picture-in-picture controller ID * @param callback The picture-in-picture lifecycle callback. @@ -385,10 +425,10 @@ int32_t OH_PictureInPicture_UnregisterAllStartPipCallbacks(uint32_t controllerId * {@link WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR} pip internal error. * @since 20 */ -int32_t OH_PictureInPicture_RegisterLifeCycleListener(uint32_t controllerId, WebPipLifeCycleCallback callback); +int32_t OH_PictureInPicture_RegisterLifecycleListener(uint32_t controllerId, WebPipLifecycleCallback callback); /** - * @brief Unregister picture-in-picture life cycle listener callback. + * @brief Unregister picture-in-picture lifecycle listener callback. * * @param controllerId The picture-in-picture controller ID * @param callback The picture-in-picture lifecycle callback. @@ -399,10 +439,10 @@ int32_t OH_PictureInPicture_RegisterLifeCycleListener(uint32_t controllerId, Web * {@link WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR} pip internal error. * @since 20 */ -int32_t OH_PictureInPicture_UnregisterLifeCycleListener(uint32_t controllerId, WebPipLifeCycleCallback callback); +int32_t OH_PictureInPicture_UnregisterLifecycleListener(uint32_t controllerId, WebPipLifecycleCallback callback); /** - * @brief Unregister all picture-in-picture life cycle listener callbacks. + * @brief Unregister all picture-in-picture lifecycle listener callbacks. * * @param controllerId The picture-in-picture controller ID * @return Return the result code. @@ -412,7 +452,7 @@ int32_t OH_PictureInPicture_UnregisterLifeCycleListener(uint32_t controllerId, W * {@link WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR} pip internal error. * @since 20 */ -int32_t OH_PictureInPicture_UnregisterAllLifeCycleListeners(uint32_t controllerId); +int32_t OH_PictureInPicture_UnregisterAllLifecycleListeners(uint32_t controllerId); /** * @brief Register picture-in-picture control event listener callback.