summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinkyu Kang <mk7.kang@samsung.com>2015-12-16 16:45:31 +0900
committerMinkyu Kang <mk7.kang@samsung.com>2015-12-16 19:20:56 +0900
commit6f4317dab6807ba643e7b1d4b2404dc0d28fbf5e (patch)
tree9250eef0ad98b88cf2a86bf03626cb22083f1569
parent6133e71c78487ecd1b327d790e927db91236f367 (diff)
downloadair_mediahub-6f4317dab6807ba643e7b1d4b2404dc0d28fbf5e.tar.gz
air_mediahub-6f4317dab6807ba643e7b1d4b2404dc0d28fbf5e.tar.bz2
air_mediahub-6f4317dab6807ba643e7b1d4b2404dc0d28fbf5e.zip
viewer: pop the view if something went wrong while playing video
Change-Id: I03f53c94f9f6ce9dc274b1d9ccbe20b44f3de156 Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
-rw-r--r--src/view/viewer.c66
1 files changed, 52 insertions, 14 deletions
diff --git a/src/view/viewer.c b/src/view/viewer.c
index 4968fc4..2605716 100644
--- a/src/view/viewer.c
+++ b/src/view/viewer.c
@@ -41,6 +41,7 @@
#define VIEWER_TIMEOUT 3.0
#define VIEWER_SEPARATOR "/ "
#define SLIDE_SHOW_INTERVAL 3.0
+#define ERROR_MESSAGE "Something went wrong."
#define BTN_LOC_NONE -1
#define BTN_LOC_PREV 0
@@ -813,6 +814,14 @@ static void _pop_view(struct _priv *priv)
viewmgr_pop_view();
}
+static void _error_exit(struct _priv *priv)
+{
+ _pop_view(priv);
+
+ util_add_notify(priv->win, STYLE_TOAST, STYLE_TOAST,
+ ERROR_MESSAGE, VIEWER_TIMEOUT);
+}
+
static int _player_get_position(void *data)
{
struct _priv *priv;
@@ -828,6 +837,7 @@ static int _player_get_position(void *data)
static void _player_set_position(struct _priv *priv, int position)
{
int ms;
+ bool r;
ms = position;
@@ -835,7 +845,9 @@ static void _player_set_position(struct _priv *priv, int position)
if (position == -1)
ms = playermgr_get_duration(priv->player) - 100;
- playermgr_set_position(priv->player, ms, NULL, NULL);
+ r = playermgr_set_position(priv->player, ms, NULL, NULL);
+ if (!r)
+ _error_exit(priv);
}
static void _player_play_pause(struct _priv *priv)
@@ -849,11 +861,19 @@ static void _player_play_pause(struct _priv *priv)
switch (state) {
case PLAYER_STATE_PAUSED:
progressbar_resume(priv->progress);
- playermgr_resume(priv->player);
+ r = playermgr_resume(priv->player);
+ if (!r) {
+ _error_exit(priv);
+ return;
+ }
break;
case PLAYER_STATE_PLAYING:
progressbar_pause(priv->progress);
- playermgr_pause(priv->player);
+ r = playermgr_pause(priv->player);
+ if (!r) {
+ _error_exit(priv);
+ return;
+ }
break;
case PLAYER_STATE_IDLE:
case PLAYER_STATE_READY:
@@ -868,15 +888,19 @@ static void _player_play_pause(struct _priv *priv)
r = playermgr_play(priv->player, mi->file_path,
mi->video->position);
- if (r) {
- progressbar_start(priv->progress);
- _update_info(priv, mi);
+ if (!r) {
+ _error_exit(priv);
+ return;
}
+ progressbar_start(priv->progress);
+ _update_info(priv, mi);
+
break;
default:
_ERR("player was not created");
- break;
+ _error_exit(priv);
+ return;
}
}
@@ -892,7 +916,11 @@ static void _player_play(struct _priv *priv)
switch (state) {
case PLAYER_STATE_PAUSED:
progressbar_resume(priv->progress);
- playermgr_resume(priv->player);
+ r = playermgr_resume(priv->player);
+ if (!r) {
+ _error_exit(priv);
+ return;
+ }
break;
case PLAYER_STATE_PLAYING:
break;
@@ -909,15 +937,19 @@ static void _player_play(struct _priv *priv)
r = playermgr_play(priv->player, mi->file_path,
mi->video->position);
- if (r) {
- progressbar_start(priv->progress);
- _update_info(priv, mi);
+ if (!r) {
+ _error_exit(priv);
+ return;
}
+ progressbar_start(priv->progress);
+ _update_info(priv, mi);
+
break;
default:
_ERR("player was not created");
- break;
+ _error_exit(priv);
+ return;
}
ctl = priv->viewer.ctl[priv->viewer.cur];
@@ -929,13 +961,18 @@ static void _player_pause(struct _priv *priv)
{
player_state_e state;
struct controller *ctl;
+ bool r;
playermgr_get_state(priv->player, &state);
switch (state) {
case PLAYER_STATE_PLAYING:
progressbar_pause(priv->progress);
- playermgr_pause(priv->player);
+ r = playermgr_pause(priv->player);
+ if (!r) {
+ _error_exit(priv);
+ return;
+ }
break;
case PLAYER_STATE_PAUSED:
case PLAYER_STATE_IDLE:
@@ -943,7 +980,8 @@ static void _player_pause(struct _priv *priv)
break;
default:
_ERR("player was not created");
- break;
+ _error_exit(priv);
+ return;
}
ctl = priv->viewer.ctl[priv->viewer.cur];