1 /*
2  * Copyright (c) 2024 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 #include "ohos_nweb/bridge/ark_web_native_media_player_handler_wrapper.h"
17 
18 #include "base/bridge/ark_web_bridge_macros.h"
19 
20 namespace OHOS::ArkWeb {
21 
ArkWebNativeMediaPlayerHandlerWrapper(ArkWebRefPtr<ArkWebNativeMediaPlayerHandler> ark_web_native_media_player_handler)22 ArkWebNativeMediaPlayerHandlerWrapper::ArkWebNativeMediaPlayerHandlerWrapper(
23     ArkWebRefPtr<ArkWebNativeMediaPlayerHandler> ark_web_native_media_player_handler)
24     : ark_web_native_media_player_handler_(ark_web_native_media_player_handler)
25 {}
26 
HandleStatusChanged(ArkWebPlaybackStatus status)27 void ArkWebNativeMediaPlayerHandlerWrapper::HandleStatusChanged(ArkWebPlaybackStatus status)
28 {
29     ark_web_native_media_player_handler_->HandleStatusChanged(static_cast<int>(status));
30 }
31 
HandleVolumeChanged(double volume)32 void ArkWebNativeMediaPlayerHandlerWrapper::HandleVolumeChanged(double volume)
33 {
34     ark_web_native_media_player_handler_->HandleVolumeChanged(volume);
35 }
36 
HandleMutedChanged(bool isMuted)37 void ArkWebNativeMediaPlayerHandlerWrapper::HandleMutedChanged(bool isMuted)
38 {
39     ark_web_native_media_player_handler_->HandleMutedChanged(isMuted);
40 }
41 
HandlePlaybackRateChanged(double playbackRate)42 void ArkWebNativeMediaPlayerHandlerWrapper::HandlePlaybackRateChanged(double playbackRate)
43 {
44     ark_web_native_media_player_handler_->HandlePlaybackRateChanged(playbackRate);
45 }
46 
HandleDurationChanged(double duration)47 void ArkWebNativeMediaPlayerHandlerWrapper::HandleDurationChanged(double duration)
48 {
49     ark_web_native_media_player_handler_->HandleDurationChanged(duration);
50 }
51 
HandleTimeUpdate(double playTime)52 void ArkWebNativeMediaPlayerHandlerWrapper::HandleTimeUpdate(double playTime)
53 {
54     ark_web_native_media_player_handler_->HandleTimeUpdate(playTime);
55 }
56 
HandleBufferedEndTimeChanged(double bufferedEndTime)57 void ArkWebNativeMediaPlayerHandlerWrapper::HandleBufferedEndTimeChanged(double bufferedEndTime)
58 {
59     ark_web_native_media_player_handler_->HandleBufferedEndTimeChanged(bufferedEndTime);
60 }
61 
HandleEnded()62 void ArkWebNativeMediaPlayerHandlerWrapper::HandleEnded()
63 {
64     ark_web_native_media_player_handler_->HandleEnded();
65 }
66 
HandleNetworkStateChanged(ArkWebNetworkState state)67 void ArkWebNativeMediaPlayerHandlerWrapper::HandleNetworkStateChanged(ArkWebNetworkState state)
68 {
69     ark_web_native_media_player_handler_->HandleNetworkStateChanged(static_cast<int>(state));
70 }
71 
HandleReadyStateChanged(ArkWebReadyState state)72 void ArkWebNativeMediaPlayerHandlerWrapper::HandleReadyStateChanged(ArkWebReadyState state)
73 {
74     ark_web_native_media_player_handler_->HandleReadyStateChanged(static_cast<int>(state));
75 }
76 
HandleFullScreenChanged(bool isFullScreen)77 void ArkWebNativeMediaPlayerHandlerWrapper::HandleFullScreenChanged(bool isFullScreen)
78 {
79     ark_web_native_media_player_handler_->HandleFullScreenChanged(isFullScreen);
80 }
81 
HandleSeeking()82 void ArkWebNativeMediaPlayerHandlerWrapper::HandleSeeking()
83 {
84     ark_web_native_media_player_handler_->HandleSeeking();
85 }
86 
HandleSeekFinished()87 void ArkWebNativeMediaPlayerHandlerWrapper::HandleSeekFinished()
88 {
89     ark_web_native_media_player_handler_->HandleSeekFinished();
90 }
91 
HandleError(ArkWebMediaError error,const std::string & message)92 void ArkWebNativeMediaPlayerHandlerWrapper::HandleError(ArkWebMediaError error, const std::string& message)
93 {
94     ArkWebString stMessage = ArkWebStringClassToStruct(message);
95 
96     ark_web_native_media_player_handler_->HandleError(static_cast<int>(error), stMessage);
97 
98     ArkWebStringStructRelease(stMessage);
99 }
100 
HandleVideoSizeChanged(double width,double height)101 void ArkWebNativeMediaPlayerHandlerWrapper::HandleVideoSizeChanged(double width, double height)
102 {
103     ark_web_native_media_player_handler_->HandleVideoSizeChanged(width, height);
104 }
105 
106 } // namespace OHOS::ArkWeb
107