From f72cb4d065fde2439e4c3570a3edb4960c79b6b0 Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Fri, 21 Aug 2015 17:33:44 +0900 Subject: [PATCH] mplayer: adds support the remote controller Change-Id: Ie03a18c1fb1f59f5f414491cbfe4ad9ff17faae7 Signed-off-by: Minkyu Kang --- src/view/mplayer.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/src/view/mplayer.c b/src/view/mplayer.c index c1cafd0..5109d7c 100644 --- a/src/view/mplayer.c +++ b/src/view/mplayer.c @@ -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) -- 2.7.4