2 * Copyright 2012 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.tizenopensource.org/license
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 /*==================================================================================================
19 *==================================================================================================*/
20 #include "msg-smil-types.h"
21 #include "msg-smil-player.h"
22 #include "msg-smil-util.h"
24 /*================================================================================================
25 * FUNCTION IMPLEMENTATIONS
26 *================================================================================================*/
27 MSG_SMIL_ERROR_E _msg_smil_create_smil_player(msg_struct_t msg_info_t, void *callBack, void *userData, void **instance)
29 MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
30 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, msg_info_t == NULL, MSG_ERR_SMIL_NULL_MESSAGE);
31 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, callBack == NULL, MSG_ERR_SMIL_INVALID_PARAMETER);
32 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, userData == NULL, MSG_ERR_SMIL_INVALID_PARAMETER);
33 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, instance == NULL, MSG_ERR_SMIL_INVALID_PARAMETER);
34 MSG_SMIL_ERROR_E err = MSG_ERR_SMIL_UNKNOWN;
35 SMIL_HANDLER_S *smilPlayerHndle = NULL;
37 /*Allocate memory for smilPlayerHandler*/
38 smilPlayerHndle = (SMIL_HANDLER_S *)calloc(1, sizeof(SMIL_HANDLER_S));
39 if (smilPlayerHndle == NULL) {
40 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "calloc is failed");
42 return MSG_ERR_SMIL_INVALID_STORAGE;
45 /*Create Content Manager Handler*/
46 err = _msg_smil_create_content_mgr(msg_info_t, &smilPlayerHndle->smilContMgrHndle);
47 if (err != MSG_SMIL_SUCCESS) {
48 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_create_content_mgr is failed");
49 if (smilPlayerHndle) {
50 free(smilPlayerHndle);
51 smilPlayerHndle = NULL;
57 /*Create Event Manager Handler*/
58 err = _msg_smil_create_event_mgr(callBack, userData, &smilPlayerHndle->smilEvntMgrHndle);
59 if (err != MSG_SMIL_SUCCESS) {
60 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_create_event_mgr is failed");
61 _msg_smil_destroy_content_mgr(smilPlayerHndle->smilContMgrHndle);
62 smilPlayerHndle->smilContMgrHndle = NULL;
64 if (smilPlayerHndle) {
65 free(smilPlayerHndle);
66 smilPlayerHndle = NULL;
71 smilPlayerHndle->smilEvntMgrHndle->smilhandle = smilPlayerHndle;
73 /*Create & Initialize Reder handle*/
74 err = _msg_smil_create_render(&smilPlayerHndle->smilRenderer);
75 if (err != MSG_SMIL_SUCCESS) {
76 _msg_smil_destroy_content_mgr(smilPlayerHndle->smilContMgrHndle);
77 smilPlayerHndle->smilContMgrHndle = NULL;
79 _msg_smil_destroy_event_mgr(smilPlayerHndle->smilEvntMgrHndle);
80 smilPlayerHndle->smilEvntMgrHndle = NULL;
82 if (smilPlayerHndle) {
83 free(smilPlayerHndle);
84 smilPlayerHndle = NULL;
89 _msg_smil_init_render(smilPlayerHndle->smilRenderer);
90 smilPlayerHndle->smilRenderer->msg_info_t = msg_info_t;
91 smilPlayerHndle->smilRenderer->smilhandle = smilPlayerHndle;
93 *instance = (void *)smilPlayerHndle;
95 MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
96 return MSG_SMIL_SUCCESS;
100 void _msg_smil_destroy_smil_player(void *smilhandle)
102 MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
103 SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)smilhandle;
104 MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, smilPlayerHndle == NULL);
106 _msg_smil_destroy_content_mgr(smilPlayerHndle->smilContMgrHndle);
107 smilPlayerHndle->smilContMgrHndle = NULL;
109 _msg_smil_destroy_event_mgr(smilPlayerHndle->smilEvntMgrHndle);
110 smilPlayerHndle->smilEvntMgrHndle = NULL;
112 _msg_smil_destroy_render(smilPlayerHndle->smilRenderer);
113 smilPlayerHndle->smilRenderer = NULL;
115 free(smilPlayerHndle);
117 MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
121 SMIL_CONTENT_MGR_HANDLE_S *_msg_smil_get_content_mgr(void *hSmilHandle)
123 MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
124 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, hSmilHandle == NULL, PLAYER_STATUS_NONE);
125 SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
127 return smilPlayerHndle->smilContMgrHndle;
131 SMIL_EVENT_MGR_HANDLE_S *_msg_smil_get_event_mgr(void *hSmilHandle)
133 MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
134 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, hSmilHandle == NULL, NULL);
135 SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
137 return smilPlayerHndle->smilEvntMgrHndle;
141 SMIL_RENDERER_DATA_S *_msg_smil_get_renderder(void *hSmilHandle)
143 MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
144 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, hSmilHandle == NULL, NULL);
145 SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
147 return smilPlayerHndle->smilRenderer;
151 int _msg_smil_get_current_slide_idx(void *hSmilHandle)
153 MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
154 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, hSmilHandle == NULL, MSG_MMS_SLIDE_INVALID);
155 SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
157 return _msg_smil_cont_mgr_get_cur_slide_idx(smilPlayerHndle->smilContMgrHndle);
161 SMIL_PLAYER_STATUS_E _msg_smil_get_current_slide_status(void *hSmilHandle)
163 MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
164 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, hSmilHandle == NULL, PLAYER_STATUS_NONE);
165 SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
167 return _msg_smil_cont_mgr_get_cur_slide_status(smilPlayerHndle->smilContMgrHndle);
171 SMIL_SLIDE_INFO_S *_msg_smil_get_current_slide_info(void *hSmilHandle)
173 MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
174 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, hSmilHandle == NULL, PLAYER_STATUS_NONE);
175 SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
177 return _msg_smil_cont_mgr_get_cur_slide(smilPlayerHndle->smilContMgrHndle);
181 MSG_SMIL_ERROR_E _msg_smil_player_on_slide_event_handler(void **hSmilHandle, SMIL_PLAYER_EVENT_E playerEvent)
183 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, playerEvent == PLAYER_EVENT_NONE, MSG_ERR_SMIL_EVENT_NONE);
184 SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)(*hSmilHandle);
185 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, smilPlayerHndle == NULL, MSG_ERR_SMIL_NULL_MESSAGE);
187 int mediaType = MMS_SMIL_MEDIA_INVALID;
188 MSG_SMIL_ERROR_E err = MSG_ERR_SMIL_UNKNOWN;
189 SMIL_TIMER_CALLBACK_DATA_S *slideTimerCbData = _msg_smil_event_mgr_get_timer_cb_data(smilPlayerHndle->smilEvntMgrHndle);
190 SMIL_SLIDE_EVENT_PARAM_S *curSlideParam = _msg_smil_event_mgr_get_slide_event_param_data(smilPlayerHndle->smilEvntMgrHndle);
192 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, slideTimerCbData == NULL, MSG_ERR_SMIL_NULL_MESSAGE);
193 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, curSlideParam == NULL, MSG_ERR_SMIL_NULL_MESSAGE);
194 MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "playerEvent = %d", playerEvent);
196 if (_msg_smil_event_mgr_is_slide_active(smilPlayerHndle->smilEvntMgrHndle)) {
197 SMIL_SLIDE_INFO_S *curSlide = _msg_smil_cont_mgr_get_cur_slide(smilPlayerHndle->smilContMgrHndle);
198 if (curSlide->pageInfo) {
199 // if page has audio or video, image and text is not needed to checked.
200 if (curSlide->pageInfo->hasAudio )
201 mediaType = MMS_SMIL_MEDIA_AUDIO;
202 else if (curSlide->pageInfo->hasVideo)
203 mediaType = MMS_SMIL_MEDIA_VIDEO;
204 else if (curSlide->pageInfo->hasImage)
205 mediaType = MMS_SMIL_MEDIA_IMG;
206 else if (curSlide->pageInfo->hasText)
207 mediaType = MMS_SMIL_MEDIA_TEXT;
209 MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "mediaType = %d", mediaType);
212 /* PREV/NEXT EVENT skip condition*/
213 if (playerEvent == PLAYER_EVENT_PREV_SLIDE) {
214 if (_msg_smil_event_mgr_is_slide_active(smilPlayerHndle->smilEvntMgrHndle)) {
215 int current_slide = _msg_smil_cont_mgr_get_cur_slide_idx(smilPlayerHndle->smilContMgrHndle);
216 int total_page_count = _msg_smil_cont_mgr_get_total_slide_count(smilPlayerHndle->smilContMgrHndle);
217 MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "current_slide = %d, total_page_count = %d", current_slide, total_page_count);
219 /*if first page or multipart.mixed message, then return err*/
220 if (current_slide == 0 || total_page_count == 0) {
221 return MSG_ERR_SMIL_INVALID_SLIDE;
224 } else if (playerEvent == PLAYER_EVENT_NEXT_SLIDE) {
225 if (_msg_smil_event_mgr_is_slide_active(smilPlayerHndle->smilEvntMgrHndle)) {
226 MSG_BOOL isLastSlide = curSlideParam->isLastSlide;
227 int total_page_count = _msg_smil_cont_mgr_get_total_slide_count(smilPlayerHndle->smilContMgrHndle);
228 MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "isLastSlide = %d, total_page_count = %d", isLastSlide, total_page_count);
230 /*if last page or multipart.mixed message, then return err*/
231 if (isLastSlide || total_page_count == 0) {
232 return MSG_ERR_SMIL_INVALID_SLIDE;
237 switch (playerEvent) {
238 case PLAYER_EVENT_ROTATE_WINDOW:
239 _msg_smil_render_rotate_video_window(smilPlayerHndle->smilRenderer);
240 err = MSG_SMIL_SUCCESS;
242 case PLAYER_EVENT_PLAY:
243 _msg_smil_event_mgr_set_video_endofstream(smilPlayerHndle->smilEvntMgrHndle, FALSE);
244 if (slideTimerCbData->timerHandle) {
245 err = _msg_smil_event_mgr_stop_slide(smilPlayerHndle->smilEvntMgrHndle);
246 if (err != MSG_SMIL_SUCCESS) {
247 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_stop_slide is failed: PLAYER_EVENT_PLAY_SLIDE");
251 _msg_smil_render_stop_playing_file(smilPlayerHndle->smilRenderer);
254 _msg_smil_event_mgr_set_current_slide(smilPlayerHndle->smilEvntMgrHndle, NULL);
255 _msg_smil_event_mgr_set_page_action_type(smilPlayerHndle->smilEvntMgrHndle, PAGE_EVENT_PLAY);
256 err = _msg_smil_event_mgr_play_slide(smilPlayerHndle->smilEvntMgrHndle, slideIdx);
257 if (err != MSG_SMIL_SUCCESS) {
258 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_play_slide is failed: PLAYER_EVENT_PLAY");
262 case PLAYER_EVENT_PREVIEW_PLAY:
263 _msg_smil_event_mgr_set_video_endofstream(smilPlayerHndle->smilEvntMgrHndle, FALSE);
264 if (slideTimerCbData->timerHandle) {
265 err = _msg_smil_event_mgr_stop_slide(smilPlayerHndle->smilEvntMgrHndle);
266 if (err != MSG_SMIL_SUCCESS) {
267 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_stop_slide is failed: PLAYER_EVENT_PLAY_SLIDE");
271 _msg_smil_render_stop_playing_file(smilPlayerHndle->smilRenderer);
274 _msg_smil_cont_mgr_delete_help_page(smilPlayerHndle->smilRenderer->msg_info_t, smilPlayerHndle->smilContMgrHndle); //delete help page
275 _msg_smil_event_mgr_set_current_slide(smilPlayerHndle->smilEvntMgrHndle, NULL);
276 _msg_smil_event_mgr_set_page_action_type(smilPlayerHndle->smilEvntMgrHndle, PAGE_EVENT_PLAY);
277 err = _msg_smil_event_mgr_play_slide(smilPlayerHndle->smilEvntMgrHndle, slideIdx);
278 if (err != MSG_SMIL_SUCCESS) {
279 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_play_slide is failed: PLAYER_EVENT_PREVIEW_PLAY");
283 case PLAYER_EVENT_PAUSE:
284 err = _msg_smil_event_mgr_pause_slide(smilPlayerHndle->smilEvntMgrHndle);
285 if (err != MSG_SMIL_SUCCESS) {
286 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_pause_slide is failed: PLAYER_EVENT_PAUSE");
287 if (slideTimerCbData->timerHandle == NULL) {
288 int pageIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilPlayerHndle->smilContMgrHndle);
289 _msg_smil_event_mgr_resume_slide(smilPlayerHndle->smilEvntMgrHndle, pageIdx);
295 if (_msg_smil_render_pause(smilPlayerHndle->smilRenderer, mediaType) == FALSE) {
296 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_render_pause is failed: PLAYER_EVENT_PAUSE");
297 int pageIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilPlayerHndle->smilContMgrHndle);
298 _msg_smil_event_mgr_resume_slide(smilPlayerHndle->smilEvntMgrHndle, pageIdx);
300 return MSG_ERR_SMIL_PAUSE_SLIDE_RENDER_FAILURE;
303 case PLAYER_EVENT_STOP:
304 /*reset event media info*/
305 _msg_smil_event_mgr_set_is_video_media(smilPlayerHndle->smilEvntMgrHndle, FALSE);
306 _msg_smil_event_mgr_set_unsupported_content(smilPlayerHndle->smilEvntMgrHndle, FALSE);
307 _msg_smil_event_mgr_set_invalid_video_ro(smilPlayerHndle->smilEvntMgrHndle, FALSE);
308 _msg_smil_event_mgr_set_video_endofstream(smilPlayerHndle->smilEvntMgrHndle, FALSE);
309 _msg_smil_event_mgr_set_last_slide(smilPlayerHndle->smilEvntMgrHndle, FALSE);
311 err = _msg_smil_event_mgr_stop_slide(smilPlayerHndle->smilEvntMgrHndle);
312 if (err != MSG_SMIL_SUCCESS) {
313 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_stop_slide is failed: PLAYER_EVENT_STOP");
316 _msg_smil_render_stop_playing_file(smilPlayerHndle->smilRenderer);
318 case PLAYER_EVENT_RESUME:
319 err = _msg_smil_event_mgr_resume_slide(smilPlayerHndle->smilEvntMgrHndle, _msg_smil_cont_mgr_get_cur_slide_idx(smilPlayerHndle->smilContMgrHndle));
320 if (err != MSG_SMIL_SUCCESS) {
321 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_resume_slide is failed; PLAYER_EVENT_RESUME");
325 if (_msg_smil_render_resume(smilPlayerHndle->smilRenderer, mediaType) == FALSE) {
326 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_render_resume is failed: PLAYER_EVENT_RESUME");
327 return MSG_ERR_SMIL_RESUME_SLIDE_RENDER_FAILURE;
330 case PLAYER_EVENT_NEXT_SLIDE:
331 MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "PLAYER_EVENT_NEXT_SLIDE");
332 err = _msg_smil_event_mgr_stop_slide(smilPlayerHndle->smilEvntMgrHndle);
333 if (err != MSG_SMIL_SUCCESS) {
334 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_stop_slide is failed: PLAYER_EVENT_NEXT_SLIDE");
337 _msg_smil_render_stop_playing_file(smilPlayerHndle->smilRenderer);
339 _msg_smil_event_mgr_set_is_video_media(smilPlayerHndle->smilEvntMgrHndle, FALSE);
340 _msg_smil_event_mgr_set_unsupported_content(smilPlayerHndle->smilEvntMgrHndle, FALSE);
341 _msg_smil_event_mgr_set_invalid_video_ro(smilPlayerHndle->smilEvntMgrHndle, FALSE);
342 _msg_smil_event_mgr_set_video_endofstream(smilPlayerHndle->smilEvntMgrHndle, FALSE);
343 _msg_smil_event_mgr_set_page_action_type(smilPlayerHndle->smilEvntMgrHndle, PAGE_EVENT_MOVE_TO_NEXT);
345 /*Incrementing the slide index in order to move to the next slide*/
346 slideIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilPlayerHndle->smilContMgrHndle);
347 slideIdx += MSG_MMS_SMIL_SLIDEIDX_INCREMENT;
348 _msg_smil_cont_mgr_set_cur_slide_idx(smilPlayerHndle->smilContMgrHndle, slideIdx);
350 err = _msg_smil_event_mgr_play_slide(smilPlayerHndle->smilEvntMgrHndle, slideIdx);
351 if (err != MSG_SMIL_SUCCESS) {
352 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_play_slide is failed : PLAYER_EVENT_NEXT_SLIDE");
353 slideIdx -= MSG_MMS_SMIL_SLIDEIDX_INCREMENT;
354 _msg_smil_cont_mgr_set_cur_slide_idx(smilPlayerHndle->smilContMgrHndle, slideIdx);
358 case PLAYER_EVENT_PREV_SLIDE:
359 MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "PLAYER_EVENT_PREV_SLIDE");
360 err = _msg_smil_event_mgr_stop_slide(smilPlayerHndle->smilEvntMgrHndle);
361 if (err != MSG_SMIL_SUCCESS) {
362 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_stop_slide is failed : PLAYER_EVENT_PREV_SLIDE");
365 _msg_smil_render_stop_playing_file(smilPlayerHndle->smilRenderer);
367 _msg_smil_event_mgr_set_is_video_media(smilPlayerHndle->smilEvntMgrHndle, FALSE);
368 _msg_smil_event_mgr_set_unsupported_content(smilPlayerHndle->smilEvntMgrHndle, FALSE);
369 _msg_smil_event_mgr_set_invalid_video_ro(smilPlayerHndle->smilEvntMgrHndle, FALSE);
370 _msg_smil_event_mgr_set_video_endofstream(smilPlayerHndle->smilEvntMgrHndle, FALSE);
371 _msg_smil_event_mgr_set_page_action_type(smilPlayerHndle->smilEvntMgrHndle, PAGE_EVENT_MOVE_TO_PREV);
373 /*Decrement the Slide Index for fetching the appropriate slide content.*/
374 slideIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilPlayerHndle->smilContMgrHndle);
375 slideIdx -= MSG_MMS_SMIL_SLIDEIDX_DECREMENT;
376 _msg_smil_cont_mgr_set_cur_slide_idx(smilPlayerHndle->smilContMgrHndle, slideIdx);
378 err = _msg_smil_event_mgr_play_slide(smilPlayerHndle->smilEvntMgrHndle, slideIdx);
379 if (err != MSG_SMIL_SUCCESS) {
380 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_play_slide is failed : PLAYER_EVENT_PREV_SLIDE");
381 slideIdx += MSG_MMS_SMIL_SLIDEIDX_DECREMENT;
382 _msg_smil_cont_mgr_set_cur_slide_idx(smilPlayerHndle->smilContMgrHndle, slideIdx);
386 case PLAYER_EVENT_DESTROY_SCREEN:
387 _msg_smil_event_mgr_set_render_event(smilPlayerHndle->smilEvntMgrHndle, SMIL_RENDER_EVENT_DESTROY_SCREEN);
388 err = _msg_smil_render_on_slide_render_handler(smilPlayerHndle->smilRenderer, curSlideParam);
389 if (err != MSG_SMIL_SUCCESS)
390 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_render_on_slide_render_handler failed err = %d", err);
392 case PLAYER_EVENT_MUTE:
393 MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "PLAYER_EVENT_MUTE");
394 _msg_smil_render_set_mute(smilPlayerHndle->smilRenderer, TRUE);
395 err = MSG_SMIL_SUCCESS;
398 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "In default");
399 err = MSG_ERR_SMIL_UNKNOWN;
403 if (err != MSG_SMIL_SUCCESS) {
404 MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_player_on_slide_event_handler is failed %d", err);
407 MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
408 return MSG_SMIL_SUCCESS;
412 MSG_BOOL _msg_smil_create_smil_player_layout(void *hSmilHandle, void *layout)
414 MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
415 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, hSmilHandle == NULL, FALSE);
416 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, layout == NULL, FALSE);
417 SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
419 return _msg_smil_render_create_layout(smilPlayerHndle->smilRenderer, (Evas_Object *)layout);
423 MSG_BOOL _msg_smil_set_smil_player_layout_size(void *hSmilHandle, SMIL_POSITION_S *left_top, SMIL_POSITION_S *right_bottom)
425 MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
426 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, hSmilHandle == NULL, FALSE);
427 SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
429 return _msg_smil_render_set_layout_size(smilPlayerHndle->smilRenderer, left_top, right_bottom);
432 MSG_BOOL _msg_smil_set_smil_player_help_page_cb(void *hSmilHandle, void *callBack, void *userData)
434 MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
435 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, hSmilHandle == NULL, FALSE);
436 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, callBack == NULL, FALSE);
437 SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
439 return _msg_smil_render_set_help_page_cb(smilPlayerHndle->smilRenderer, callBack, userData);
442 MSG_BOOL _msg_smil_get_slide_time(void *hSmilHandle, int slideIdx, MSG_BOOL bExcludeHp, double *slideTime)
444 MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
445 MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, hSmilHandle == NULL, PLAYER_STATUS_NONE);
446 SMIL_HANDLER_S *smilPlayerHndle = (SMIL_HANDLER_S *)hSmilHandle;
448 return _msg_smil_cont_mgr_get_slide_time(smilPlayerHndle->smilContMgrHndle, slideIdx, bExcludeHp, slideTime);