summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinkyu Kang <mk7.kang@samsung.com>2015-10-05 17:14:48 +0900
committerMinkyu Kang <mk7.kang@samsung.com>2015-10-05 17:14:48 +0900
commit4d90d38361111ce230f3443358da1b7f6a5d941b (patch)
tree7b184d16b9f7de9b64b58a931b259be72a4c253d
parenta309fb1eaa582c41d833602b54b4833c1017b7c5 (diff)
downloadair_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.h6
-rw-r--r--src/view/base.c6
-rw-r--r--src/view/mplayer.c46
-rw-r--r--src/view/viewer.c6
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)