• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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  * Description: supply stream player listener implement stub realization.
15  * Author: huangchanggui
16  * Create: 2023-01-12
17  */
18 
19 #include "stream_player_listener_impl_stub.h"
20 #include "cast_engine_common_helper.h"
21 #include "cast_stub_helper.h"
22 
23 namespace OHOS {
24 namespace CastEngine {
25 namespace CastEngineClient {
26 DEFINE_CAST_ENGINE_LABEL("Cast-Client-StreamPlayerListener");
27 
OnRemoteRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)28 int StreamPlayerListenerImplStub::OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply,
29     MessageOption &option)
30 {
31     RETRUEN_IF_WRONG_TASK(code, data, reply, option);
32     if (userListener_ == nullptr) {
33         CLOGE("userListener_ is null, code:%{public}d", code);
34         return ERR_NULL_OBJECT;
35     }
36     return EXECUTE_SINGLE_STUB_TASK(code, data, reply);
37 }
38 
StreamPlayerListenerImplStub(std::shared_ptr<IStreamPlayerListener> userListener)39 StreamPlayerListenerImplStub::StreamPlayerListenerImplStub(std::shared_ptr<IStreamPlayerListener> userListener)
40     : userListener_(userListener)
41 {
42     FILL_SINGLE_STUB_TASK(ON_PLAYER_STATUS_CHANGED, &StreamPlayerListenerImplStub::DoOnStateChangedTask);
43     FILL_SINGLE_STUB_TASK(ON_POSITION_CHANGED, &StreamPlayerListenerImplStub::DoOnPositionChangedTask);
44     FILL_SINGLE_STUB_TASK(ON_MEDIA_ITEM_CHANGED, &StreamPlayerListenerImplStub::DoOnMediaItemChangedTask);
45     FILL_SINGLE_STUB_TASK(ON_VOLUME_CHANGED, &StreamPlayerListenerImplStub::DoOnVolumeChangedTask);
46     FILL_SINGLE_STUB_TASK(ON_REPEAT_MODE_CHANGED, &StreamPlayerListenerImplStub::DoOnLoopModeChangedTask);
47     FILL_SINGLE_STUB_TASK(ON_PLAY_SPEED_CHANGED, &StreamPlayerListenerImplStub::DoOnPlaySpeedChangedTask);
48     FILL_SINGLE_STUB_TASK(ON_PLAYER_ERROR, &StreamPlayerListenerImplStub::DoOnPlayerErrorTask);
49     FILL_SINGLE_STUB_TASK(ON_VIDEO_SIZE_CHANGED, &StreamPlayerListenerImplStub::DoOnVideoSizeChangedTask);
50     FILL_SINGLE_STUB_TASK(ON_NEXT_REQUEST, &StreamPlayerListenerImplStub::DoOnNextRequestTask);
51     FILL_SINGLE_STUB_TASK(ON_PREVIOUS_REQUEST, &StreamPlayerListenerImplStub::DoOnPreviousRequestTask);
52     FILL_SINGLE_STUB_TASK(ON_SEEK_DONE, &StreamPlayerListenerImplStub::DoOnSeekDoneTask);
53     FILL_SINGLE_STUB_TASK(ON_END_OF_STREAM, &StreamPlayerListenerImplStub::DoOnEndOfStreamTask);
54     FILL_SINGLE_STUB_TASK(ON_PLAY_REQUEST, &StreamPlayerListenerImplStub::DoOnPlayRequestTask);
55     FILL_SINGLE_STUB_TASK(ON_IMAGE_CHANGED, &StreamPlayerListenerImplStub::DoOnImageChangedTask);
56     FILL_SINGLE_STUB_TASK(ON_ALBUM_COVER_CHANGED, &StreamPlayerListenerImplStub::DoOnAlbumCoverChangedTask);
57 }
58 
~StreamPlayerListenerImplStub()59 StreamPlayerListenerImplStub::~StreamPlayerListenerImplStub()
60 {
61     userListener_ = nullptr;
62     CLOGE("destructor in");
63 }
64 
DoOnStateChangedTask(MessageParcel & data,MessageParcel & reply)65 int32_t StreamPlayerListenerImplStub::DoOnStateChangedTask(MessageParcel &data, MessageParcel &reply)
66 {
67     static_cast<void>(reply);
68     int32_t state = data.ReadInt32();
69     bool isPlayWhenReady = data.ReadBool();
70     PlayerStates playbackState = static_cast<PlayerStates>(state);
71     userListener_->OnStateChanged(playbackState, isPlayWhenReady);
72 
73     return ERR_NONE;
74 }
75 
DoOnPositionChangedTask(MessageParcel & data,MessageParcel & reply)76 int32_t StreamPlayerListenerImplStub::DoOnPositionChangedTask(MessageParcel &data, MessageParcel &reply)
77 {
78     static_cast<void>(reply);
79     int32_t position = data.ReadInt32();
80     int32_t bufferPosition = data.ReadInt32();
81     int32_t duration = data.ReadInt32();
82     userListener_->OnPositionChanged(position, bufferPosition, duration);
83 
84     return ERR_NONE;
85 }
86 
DoOnMediaItemChangedTask(MessageParcel & data,MessageParcel & reply)87 int32_t StreamPlayerListenerImplStub::DoOnMediaItemChangedTask(MessageParcel &data, MessageParcel &reply)
88 {
89     static_cast<void>(reply);
90     auto mediaInfo = ReadMediaInfo(data);
91     if (mediaInfo == nullptr) {
92         CLOGE("DoOnMediaItemChangedTask,mediaInfo is null");
93         return ERR_NULL_OBJECT;
94     }
95     userListener_->OnMediaItemChanged(*mediaInfo);
96 
97     return ERR_NONE;
98 }
99 
DoOnVolumeChangedTask(MessageParcel & data,MessageParcel & reply)100 int32_t StreamPlayerListenerImplStub::DoOnVolumeChangedTask(MessageParcel &data, MessageParcel &reply)
101 {
102     static_cast<void>(reply);
103     int32_t volume = data.ReadInt32();
104     int32_t maxVolume = data.ReadInt32();
105     userListener_->OnVolumeChanged(volume, maxVolume);
106 
107     return ERR_NONE;
108 }
109 
DoOnLoopModeChangedTask(MessageParcel & data,MessageParcel & reply)110 int32_t StreamPlayerListenerImplStub::DoOnLoopModeChangedTask(MessageParcel &data, MessageParcel &reply)
111 {
112     static_cast<void>(reply);
113     int32_t mode = data.ReadInt32();
114     LoopMode loopMode = static_cast<LoopMode>(mode);
115     userListener_->OnLoopModeChanged(loopMode);
116 
117     return ERR_NONE;
118 }
119 
DoOnPlaySpeedChangedTask(MessageParcel & data,MessageParcel & reply)120 int32_t StreamPlayerListenerImplStub::DoOnPlaySpeedChangedTask(MessageParcel &data, MessageParcel &reply)
121 {
122     static_cast<void>(reply);
123     int32_t speed = data.ReadInt32();
124     PlaybackSpeed speedMode = static_cast<PlaybackSpeed>(speed);
125     userListener_->OnPlaySpeedChanged(speedMode);
126 
127     return ERR_NONE;
128 }
129 
DoOnPlayerErrorTask(MessageParcel & data,MessageParcel & reply)130 int32_t StreamPlayerListenerImplStub::DoOnPlayerErrorTask(MessageParcel &data, MessageParcel &reply)
131 {
132     static_cast<void>(reply);
133     int32_t errorCode = data.ReadInt32();
134     std::string errorMsg = data.ReadString();
135     userListener_->OnPlayerError(errorCode, errorMsg);
136 
137     return ERR_NONE;
138 }
DoOnVideoSizeChangedTask(MessageParcel & data,MessageParcel & reply)139 int32_t StreamPlayerListenerImplStub::DoOnVideoSizeChangedTask(MessageParcel &data, MessageParcel &reply)
140 {
141     static_cast<void>(reply);
142     int32_t width = data.ReadInt32();
143     int32_t height = data.ReadInt32();
144     userListener_->OnVideoSizeChanged(width, height);
145 
146     return ERR_NONE;
147 }
148 
DoOnNextRequestTask(MessageParcel & data,MessageParcel & reply)149 int32_t StreamPlayerListenerImplStub::DoOnNextRequestTask(MessageParcel &data, MessageParcel &reply)
150 {
151     static_cast<void>(data);
152     static_cast<void>(reply);
153     userListener_->OnNextRequest();
154 
155     return ERR_NONE;
156 }
157 
DoOnPreviousRequestTask(MessageParcel & data,MessageParcel & reply)158 int32_t StreamPlayerListenerImplStub::DoOnPreviousRequestTask(MessageParcel &data, MessageParcel &reply)
159 {
160     static_cast<void>(data);
161     static_cast<void>(reply);
162     userListener_->OnPreviousRequest();
163 
164     return ERR_NONE;
165 }
166 
DoOnSeekDoneTask(MessageParcel & data,MessageParcel & reply)167 int32_t StreamPlayerListenerImplStub::DoOnSeekDoneTask(MessageParcel &data, MessageParcel &reply)
168 {
169     static_cast<void>(reply);
170     int32_t position = data.ReadInt32();
171     userListener_->OnSeekDone(position);
172 
173     return ERR_NONE;
174 }
175 
DoOnEndOfStreamTask(MessageParcel & data,MessageParcel & reply)176 int32_t StreamPlayerListenerImplStub::DoOnEndOfStreamTask(MessageParcel &data, MessageParcel &reply)
177 {
178     static_cast<void>(reply);
179     int32_t isLooping = data.ReadInt32();
180     userListener_->OnEndOfStream(isLooping);
181 
182     return ERR_NONE;
183 }
184 
DoOnPlayRequestTask(MessageParcel & data,MessageParcel & reply)185 int32_t StreamPlayerListenerImplStub::DoOnPlayRequestTask(MessageParcel &data, MessageParcel &reply)
186 {
187     static_cast<void>(reply);
188     auto mediaInfo = ReadMediaInfo(data);
189     if (mediaInfo == nullptr) {
190         CLOGE("DoOnPlayRequestTask, mediaInfo is null");
191         return ERR_NULL_OBJECT;
192     }
193     userListener_->OnPlayRequest(*mediaInfo);
194 
195     return ERR_NONE;
196 }
197 
DoOnImageChangedTask(MessageParcel & data,MessageParcel & reply)198 int32_t StreamPlayerListenerImplStub::DoOnImageChangedTask(MessageParcel &data, MessageParcel &reply)
199 {
200     static_cast<void>(reply);
201     Media::PixelMap *pixelMap = Media::PixelMap::Unmarshalling(data);
202     if (pixelMap == nullptr) {
203         CLOGE("DoOnImageChangedTask, pixelMap is null");
204         return ERR_NULL_OBJECT;
205     }
206     std::shared_ptr<Media::PixelMap> pixelMapShared(pixelMap);
207     userListener_->OnImageChanged(pixelMapShared);
208 
209     return ERR_NONE;
210 }
211 
DoOnAlbumCoverChangedTask(MessageParcel & data,MessageParcel & reply)212 int32_t StreamPlayerListenerImplStub::DoOnAlbumCoverChangedTask(MessageParcel &data, MessageParcel &reply)
213 {
214     static_cast<void>(reply);
215     Media::PixelMap *pixelMap = Media::PixelMap::Unmarshalling(data);
216     if (pixelMap == nullptr) {
217         CLOGE("DoOnAlbumCoverChangedTask, pixelMap is null");
218         return ERR_NULL_OBJECT;
219     }
220     std::shared_ptr<Media::PixelMap> pixelMapShared(pixelMap);
221     userListener_->OnAlbumCoverChanged(pixelMapShared);
222 
223     return ERR_NONE;
224 }
225 
OnStateChanged(const PlayerStates playbackState,bool isPlayWhenReady)226 void StreamPlayerListenerImplStub::OnStateChanged(const PlayerStates playbackState, bool isPlayWhenReady)
227 {
228     static_cast<void>(playbackState);
229     static_cast<void>(isPlayWhenReady);
230 }
231 
OnPositionChanged(int position,int bufferPosition,int duration)232 void StreamPlayerListenerImplStub::OnPositionChanged(int position, int bufferPosition, int duration)
233 {
234     static_cast<void>(position);
235     static_cast<void>(bufferPosition);
236     static_cast<void>(duration);
237 }
238 
OnMediaItemChanged(const MediaInfo & mediaInfo)239 void StreamPlayerListenerImplStub::OnMediaItemChanged(const MediaInfo &mediaInfo)
240 {
241     static_cast<void>(mediaInfo);
242 }
243 
OnVolumeChanged(int volume,int maxVolume)244 void StreamPlayerListenerImplStub::OnVolumeChanged(int volume, int maxVolume)
245 {
246     static_cast<void>(volume);
247     static_cast<void>(maxVolume);
248 }
249 
OnLoopModeChanged(const LoopMode loopMode)250 void StreamPlayerListenerImplStub::OnLoopModeChanged(const LoopMode loopMode)
251 {
252     static_cast<void>(loopMode);
253 }
254 
OnPlaySpeedChanged(const PlaybackSpeed speed)255 void StreamPlayerListenerImplStub::OnPlaySpeedChanged(const PlaybackSpeed speed)
256 {
257     static_cast<void>(speed);
258 }
259 
OnPlayerError(int errorCode,const std::string & errorMsg)260 void StreamPlayerListenerImplStub::OnPlayerError(int errorCode, const std::string &errorMsg)
261 {
262     static_cast<void>(errorCode);
263     static_cast<void>(errorMsg);
264 }
265 
OnVideoSizeChanged(int width,int height)266 void StreamPlayerListenerImplStub::OnVideoSizeChanged(int width, int height)
267 {
268     static_cast<void>(width);
269     static_cast<void>(height);
270 }
271 
OnNextRequest()272 void StreamPlayerListenerImplStub::OnNextRequest()
273 {
274 }
275 
OnPreviousRequest()276 void StreamPlayerListenerImplStub::OnPreviousRequest()
277 {
278 }
279 
OnSeekDone(int position)280 void StreamPlayerListenerImplStub::OnSeekDone(int position)
281 {
282     static_cast<void>(position);
283 }
284 
OnEndOfStream(int isLooping)285 void StreamPlayerListenerImplStub::OnEndOfStream(int isLooping)
286 {
287     static_cast<void>(isLooping);
288 }
289 
OnPlayRequest(const MediaInfo & mediaInfo)290 void StreamPlayerListenerImplStub::OnPlayRequest(const MediaInfo &mediaInfo)
291 {
292     static_cast<void>(mediaInfo);
293 }
294 
OnImageChanged(std::shared_ptr<Media::PixelMap> pixelMap)295 void StreamPlayerListenerImplStub::OnImageChanged(std::shared_ptr<Media::PixelMap> pixelMap)
296 {
297     static_cast<void>(pixelMap);
298 }
299 
OnAlbumCoverChanged(std::shared_ptr<Media::PixelMap> pixelMap)300 void StreamPlayerListenerImplStub::OnAlbumCoverChanged(std::shared_ptr<Media::PixelMap> pixelMap)
301 {
302     static_cast<void>(pixelMap);
303 }
304 } // namespace CastEngineClient
305 } // namespace CastEngine
306 } // namespace OHOS
307