From: Minkyu Kang Date: Tue, 28 Jul 2015 08:54:46 +0000 (+0900) Subject: support pause/resume the application X-Git-Tag: accepted/tizen/tv/20150730.014411~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7b48a0b1f88222530d9a746cf2c87566cffbe1dd;p=profile%2Ftv%2Fapps%2Fnative%2Fair_mediahub.git support pause/resume the application Change-Id: I4ff3613332fd5c5494529f4194487ef5a96a04a8 Signed-off-by: Minkyu Kang --- diff --git a/include/view.h b/include/view.h index c6e85a1..ad62dd6 100644 --- a/include/view.h +++ b/include/view.h @@ -37,7 +37,8 @@ enum update_type { UPDATE_CONTENT = 0, UPDATE_FOCUS, UPDATE_PLAY_INFO, - UPDATE_PLAYER + UPDATE_PLAYER, + UPDATE_RESUME, }; #endif /* __AIR_MEDIAHUB_VIEW_H__ */ diff --git a/src/layout/gallery.c b/src/layout/gallery.c index edd7268..d1855a2 100644 --- a/src/layout/gallery.c +++ b/src/layout/gallery.c @@ -429,6 +429,10 @@ static void _update(void *layout_data, int update_type, void *data) listmgr_focus_content_list(priv->listmgr, vdata->index, update); break; + case UPDATE_RESUME: + listmgr_focus_content_list(priv->listmgr, + priv->cur_index, false); + break; default: break; } diff --git a/src/layout/movie.c b/src/layout/movie.c index 71a04b9..49c30fd 100644 --- a/src/layout/movie.c +++ b/src/layout/movie.c @@ -605,6 +605,10 @@ static void _update(void *layout_data, int update_type, void *data) listmgr_focus_play_info(priv->listmgr); _update_recent_item(priv, vdata->index); break; + case UPDATE_RESUME: + listmgr_focus_content_list(priv->listmgr, + priv->cur_index, false); + break; default: break; } diff --git a/src/layout/music.c b/src/layout/music.c index 98c7571..49db424 100644 --- a/src/layout/music.c +++ b/src/layout/music.c @@ -571,6 +571,10 @@ static void _update(void *layout_data, int update_type, void *data) case UPDATE_FOCUS: listmgr_focus_play_info(priv->listmgr); break; + case UPDATE_RESUME: + listmgr_focus_content_list(priv->listmgr, + priv->cur_index, false); + break; default: break; } diff --git a/src/main.c b/src/main.c index 7140ece..fd898d2 100644 --- a/src/main.c +++ b/src/main.c @@ -131,12 +131,12 @@ static void _app_control(app_control_h app_control, void *data) static void _pause(void *data) { - + viewmgr_pause(); } static void _resume(void *data) { - + viewmgr_resume(); } int main(int argc, char **argv) diff --git a/src/util/progressbar.c b/src/util/progressbar.c index 3623016..ec1512c 100644 --- a/src/util/progressbar.c +++ b/src/util/progressbar.c @@ -129,6 +129,9 @@ void progressbar_stop(struct progressbar *m) ecore_timer_del(m->timer); m->timer = NULL; + + elm_slider_value_set(m->slider, 0); + _update_progress_info(m, 0); } void progressbar_pause(struct progressbar *m) diff --git a/src/view/base.c b/src/view/base.c index 9e50dd9..cdd62b8 100644 --- a/src/view/base.c +++ b/src/view/base.c @@ -39,6 +39,7 @@ struct _priv { layoutmgr *lmgr; int current_layout; + bool showed; }; struct _menu_item { @@ -239,6 +240,7 @@ static Evas_Object *_create(Evas_Object *win, void *data) priv->win = win; priv->base = base; + priv->showed = false; if (!_draw_items(priv)) { _ERR("failed to draw items"); @@ -272,6 +274,7 @@ static void _show(void *view_data) priv = view_data; evas_object_show(priv->base); + priv->showed = true; } static void _hide(void *view_data) @@ -286,6 +289,7 @@ static void _hide(void *view_data) priv = view_data; evas_object_hide(priv->base); + priv->showed = false; } static void _update(void *view_data, int update_type, void *data) @@ -311,6 +315,30 @@ static void _update(void *view_data, int update_type, void *data) update_type, vdata); } +static void _pause(void *view_data) +{ + viewmgr_update_view(VIEW_MPLAYER, UPDATE_PLAYER, NULL); +} + +static void _resume(void *view_data) +{ + struct _priv *priv; + + if (!view_data) { + _ERR("failed to get view data"); + return; + } + + priv = view_data; + + if (!priv->showed) + return; + + layoutmgr_update_layout(priv->lmgr, + g_menu_item[priv->current_layout].layout_id, + UPDATE_RESUME, NULL); +} + static void _destroy(void *view_data) { struct _priv *priv; @@ -343,6 +371,8 @@ static view_class _vclass = { .show = _show, .hide = _hide, .update = _update, + .pause = _pause, + .resume = _resume, .destroy = _destroy, }; diff --git a/src/view/mplayer.c b/src/view/mplayer.c index a981523..24f129d 100644 --- a/src/view/mplayer.c +++ b/src/view/mplayer.c @@ -536,10 +536,10 @@ static void _list_selected(int id, void *data, priv = data; index = elm_genlist_item_index_get(it) - 1; - if (priv->playlist.cur != index) { + if (priv->playlist.cur != index) _mplayer_set_current(priv, index); - _player_play(priv); - } + + _player_play(priv); } static void _list_realized(int id, void *data, @@ -837,6 +837,20 @@ static void _update(void *view_data, int update_type, void *data) } } +static void _pause(void *view_data) +{ + struct _priv *priv; + + if (!view_data) { + _ERR("failed to get view data"); + return; + } + + priv = view_data; + + _player_stop(priv); +} + static void _destroy(void *view_data) { struct _priv *priv; @@ -879,6 +893,7 @@ static view_class _vclass = { .show = _show, .hide = _hide, .update = _update, + .pause = _pause, .destroy = _destroy, }; diff --git a/src/view/viewer.c b/src/view/viewer.c index f913e09..351b82b 100644 --- a/src/view/viewer.c +++ b/src/view/viewer.c @@ -972,17 +972,35 @@ static void _update(void *view_data, int update_type, void *data) return; } - if (!data) { - _ERR("invalid parameter"); + priv = view_data; + vdata = data; + + switch (update_type) { + case UPDATE_CONTENT: + if (!vdata) + break; + + priv->playlist.list = vdata->list; + priv->playlist.cur = vdata->index; + priv->playlist.dir = DIR_NONE; + break; + default: + break; + } +} + +static void _pause(void *view_data) +{ + struct _priv *priv; + + if (!view_data) { + _ERR("failed to get view data"); return; } priv = view_data; - vdata = data; - priv->playlist.list = vdata->list; - priv->playlist.cur = vdata->index; - priv->playlist.dir = DIR_NONE; + _pop_view(priv); } static void _destroy(void *view_data) @@ -1013,6 +1031,7 @@ static view_class _vclass = { .show = _show, .hide = _hide, .update = _update, + .pause = _pause, .destroy = _destroy, };