mplayer: adds support the remote controller 15/46515/1 accepted/tizen/tv/20150821.130441 submit/tizen/20150821.101452
authorMinkyu Kang <mk7.kang@samsung.com>
Fri, 21 Aug 2015 08:33:44 +0000 (17:33 +0900)
committerMinkyu Kang <mk7.kang@samsung.com>
Fri, 21 Aug 2015 08:33:44 +0000 (17:33 +0900)
Change-Id: Ie03a18c1fb1f59f5f414491cbfe4ad9ff17faae7
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
src/view/mplayer.c

index c1cafd0..5109d7c 100644 (file)
@@ -469,6 +469,31 @@ static void _player_next(struct _priv *priv)
        }
 }
 
+static void _player_pause(struct _priv *priv)
+{
+       player_state_e state;
+       struct controller *ctl;
+
+       playermgr_get_state(priv->player, &state);
+
+       switch (state) {
+       case PLAYER_STATE_PLAYING:
+               progressbar_pause(priv->progress);
+               playermgr_pause(priv->player);
+               break;
+       case PLAYER_STATE_PAUSED:
+       case PLAYER_STATE_IDLE:
+       case PLAYER_STATE_READY:
+               break;
+       default:
+               _ERR("player was not created");
+               break;
+       }
+
+       ctl = priv->ctl;
+       ctl->ops->signal(ctl->handle, PLAY_BTN_LOC, SIG_SET_PLAY);
+}
+
 static void _player_play(struct _priv *priv)
 {
        app_media_info *mi;
@@ -569,6 +594,7 @@ static void _key_down(int id, void *data, Evas *e, Evas_Object *obj,
                        Evas_Event_Key_Down *ev)
 {
        struct _priv *priv;
+       bool r;
 
        if (!data || !ev)
                return;
@@ -576,8 +602,24 @@ static void _key_down(int id, void *data, Evas *e, Evas_Object *obj,
        priv = data;
 
        if (!strcmp(ev->keyname, KEY_BACK) ||
-                       !strcmp(ev->keyname, KEY_BACK_REMOTE))
+                       !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
                _pop_view(priv);
+       } else if (!strcmp(ev->keyname, KEY_PLAY)) {
+               _player_play(priv);
+       } else if (!strcmp(ev->keyname, KEY_PAUSE)) {
+               _player_pause(priv);
+       } else if (!strcmp(ev->keyname, KEY_STOP)) {
+               _player_stop(priv);
+       } else if (!strcmp(ev->keyname, KEY_NEXT)) {
+               r = _mplayer_next(priv);
+               if (r)
+                       _player_next(priv);
+               else
+                       _player_stop(priv);
+       } else if (!strcmp(ev->keyname, KEY_PREVIOUS)) {
+               _mplayer_prev(priv);
+               _player_next(priv);
+       }
 }
 
 static void _list_set_focus(struct _priv *priv)