diff options
author | Minkyu Kang <mk7.kang@samsung.com> | 2015-10-05 17:14:48 +0900 |
---|---|---|
committer | Minkyu Kang <mk7.kang@samsung.com> | 2015-10-05 17:14:48 +0900 |
commit | 4d90d38361111ce230f3443358da1b7f6a5d941b (patch) | |
tree | 7b184d16b9f7de9b64b58a931b259be72a4c253d | |
parent | a309fb1eaa582c41d833602b54b4833c1017b7c5 (diff) | |
download | air_mediahub-4d90d38361111ce230f3443358da1b7f6a5d941b.tar.gz air_mediahub-4d90d38361111ce230f3443358da1b7f6a5d941b.tar.bz2 air_mediahub-4d90d38361111ce230f3443358da1b7f6a5d941b.zip |
informs the status of player to base view and detail view
Change-Id: I9b8fe009c8a77c4c81d933c4edb25f5cf9c911c7
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
-rw-r--r-- | include/view.h | 6 | ||||
-rw-r--r-- | src/view/base.c | 6 | ||||
-rw-r--r-- | src/view/mplayer.c | 46 | ||||
-rw-r--r-- | src/view/viewer.c | 6 |
4 files changed, 57 insertions, 7 deletions
diff --git a/include/view.h b/include/view.h index 2111f0e..78c2ed5 100644 --- a/include/view.h +++ b/include/view.h @@ -72,4 +72,10 @@ enum toast_status { E_TOAST_HIDE }; +enum player_status { + E_PLAYER_STOP = 0, + E_PLAYER_PLAY, + E_PLAYER_PAUSE +}; + #endif /* __AIR_MEDIAHUB_VIEW_H__ */ diff --git a/src/view/base.c b/src/view/base.c index c1ba4e4..fab2f2e 100644 --- a/src/view/base.c +++ b/src/view/base.c @@ -837,7 +837,11 @@ err: static void _pause(void *view_data) { - viewmgr_update_view(VIEW_MPLAYER, UPDATE_PLAYER, NULL); + struct view_update_data vdata; + + vdata.status = E_PLAYER_STOP; + + viewmgr_update_view(VIEW_MPLAYER, UPDATE_PLAYER, &vdata); } static void _destroy(void *view_data) diff --git a/src/view/mplayer.c b/src/view/mplayer.c index 9144827..c8a7bd6 100644 --- a/src/view/mplayer.c +++ b/src/view/mplayer.c @@ -267,11 +267,38 @@ static void _update_info(struct _priv *priv, app_media_info *mi) priv->playlist.list, priv->playlist.cur); vdata.id = _playlist_get_current_media_id(priv); viewmgr_update_view(VIEW_BASE, UPDATE_PLAY_INFO, &vdata); + viewmgr_update_view(VIEW_DETAIL, UPDATE_PLAY_INFO, &vdata); /* update history */ util_add_to_recent(priv->playlist.list, priv->playlist.cur); } +static void _update_player(struct _priv *priv) +{ + struct view_update_data vdata; + player_state_e state; + + playermgr_get_state(priv->player, &state); + + switch (state) { + case PLAYER_STATE_PAUSED: + vdata.status = E_PLAYER_PAUSE; + break; + case PLAYER_STATE_PLAYING: + vdata.status = E_PLAYER_PLAY; + break; + case PLAYER_STATE_IDLE: + case PLAYER_STATE_READY: + default: + vdata.status = E_PLAYER_STOP; + break; + } + + /* update player */ + viewmgr_update_view(VIEW_BASE, UPDATE_PLAYER, &vdata); + viewmgr_update_view(VIEW_DETAIL, UPDATE_PLAYER, &vdata); +} + static void _mplayer_show(struct _priv *priv) { struct controller *ctl; @@ -432,6 +459,8 @@ static void _player_play_pause(struct _priv *priv) _ERR("player was not created"); break; } + + _update_player(priv); } static void _player_next(struct _priv *priv) @@ -462,6 +491,8 @@ static void _player_next(struct _priv *priv) _ERR("player was not created"); break; } + + _update_player(priv); } static void _player_pause(struct _priv *priv) @@ -487,6 +518,8 @@ static void _player_pause(struct _priv *priv) ctl = priv->ctl; ctl->ops->signal(ctl->handle, BTN_LOC_PLAY, SIG_SET_PLAY); + + _update_player(priv); } static void _player_play(struct _priv *priv) @@ -534,6 +567,8 @@ static void _player_play(struct _priv *priv) ctl = priv->ctl; ctl->ops->signal(ctl->handle, BTN_LOC_PLAY, SIG_SET_PAUSE); + + _update_player(priv); } static void _player_stop(struct _priv *priv) @@ -545,6 +580,8 @@ static void _player_stop(struct _priv *priv) ctl = priv->ctl; ctl->ops->signal(ctl->handle, BTN_LOC_PLAY, SIG_SET_PLAY); + + _update_player(priv); } static void _player_complete_cb(void *data) @@ -1065,7 +1102,7 @@ static void _update(void *view_data, int update_type, void *data) struct _priv *priv; struct view_update_data *vdata; - if (!view_data) { + if (!view_data || !data) { _ERR("failed to get view data"); return; } @@ -1075,9 +1112,6 @@ static void _update(void *view_data, int update_type, void *data) switch (update_type) { case UPDATE_CONTENT: - if (!vdata) - break; - if (priv->playlist.list_org != vdata->list) { priv->playlist.list_org = vdata->list; priv->playlist.list = eina_list_clone(vdata->list); @@ -1095,7 +1129,9 @@ static void _update(void *view_data, int update_type, void *data) _add_playlist_item(priv); break; case UPDATE_PLAYER: - _player_stop(priv); + if (vdata->status == E_PLAYER_STOP) + _player_stop(priv); + /* NOTE: if need, adds play/pause */ break; default: break; diff --git a/src/view/viewer.c b/src/view/viewer.c index 51420de..e7160a7 100644 --- a/src/view/viewer.c +++ b/src/view/viewer.c @@ -518,7 +518,11 @@ static void _set_image_zoom(struct _priv *priv) static void _update_to_player(struct _priv *priv) { - viewmgr_update_view(VIEW_MPLAYER, UPDATE_PLAYER, NULL); + struct view_update_data vdata; + + vdata.status = E_PLAYER_STOP; + + viewmgr_update_view(VIEW_MPLAYER, UPDATE_PLAYER, &vdata); } static bool _viewer_show(struct _priv *priv) |