Support remote key control 38/35838/1
authorKim Tae Soo <taesoo46.kim@samsung.com>
Wed, 25 Feb 2015 08:50:16 +0000 (17:50 +0900)
committerKim Tae Soo <taesoo46.kim@samsung.com>
Wed, 25 Feb 2015 08:50:16 +0000 (17:50 +0900)
Change-Id: Ifffb0d9b51d5f1030eedecf3d4b7a4251ec1ae8f
Signed-off-by: Kim Tae Soo <taesoo46.kim@samsung.com>
include/common.h
src/views/album-layout.cpp
src/views/album-songs-layout.cpp
src/views/base-view.cpp
src/views/category-layout.cpp
src/views/context-view.cpp
src/views/entry-popup.cpp
src/views/folder-layout.cpp
src/views/playback-view.cpp
src/views/song-layout.cpp

index 1f09007..0594435 100644 (file)
@@ -155,6 +155,9 @@ struct SParcel {
 #define KEY_ENTER "Return"
 #define KEY_BACK "Escape"
 #define KEY_MENU "Super_L"
+#define KEY_ENTER_REMOTE "KP_Enter"
+#define KEY_BACK_REMOTE "XF86Close"
+#define KEY_MENU_REMOTE "XF86MenuKB"
 
 #define SORT_BY_ARTIST_AZ "SORT_BY_ARTIST_AZ"
 #define SORT_BY_ARTIST_ZA "SORT_BY_ARTIST_ZA"
index b6fff7e..867043f 100644 (file)
@@ -603,7 +603,8 @@ void CAlbumLayout::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_D
 {
        switch (id) {
        case ALBUM_LAYOUT:
-               if (!strcmp(ev->keyname, KEY_BACK)) {
+               if (!strcmp(ev->keyname, KEY_BACK) ||
+                       !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
                        SParcel parcel;
                        parcel.ctxtInfo = NULL;
                        parcel.updateType = E_FOCUS_UPDATE;
@@ -619,7 +620,8 @@ void CAlbumLayout::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_D
                        SContentInfo *ctxtinfo = NULL;
                        SAlbumItemInfo *itinfo = NULL;
 
-                       if (strcmp(ev->keyname, KEY_MENU))
+                       if (strcmp(ev->keyname, KEY_MENU) &&
+                               strcmp(ev->keyname, KEY_MENU_REMOTE))
                                return;
 
                        it = elm_object_focused_item_get(obj);
index c310f8d..414b27e 100644 (file)
@@ -597,7 +597,8 @@ void CAlbumSongsLayout::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_
        switch (id)
        {
        case ALBUM_SONGS_LAYOUT:
-               if (!strcmp(ev->keyname, KEY_BACK)) {
+               if (!strcmp(ev->keyname, KEY_BACK) ||
+                       !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
                        SParcel parcel;
                        parcel.ctxtInfo = NULL;
                        parcel.updateType = E_DEPTH_UPDATE;
@@ -613,7 +614,8 @@ void CAlbumSongsLayout::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_
                        SContentInfo *ctxtinfo = NULL;
                        SAlbumSongsItemInfo *itinfo = NULL;
 
-                       if (strcmp(ev->keyname, KEY_MENU))
+                       if (strcmp(ev->keyname, KEY_MENU) &&
+                               strcmp(ev->keyname, KEY_MENU_REMOTE))
                                return;
 
                        it = elm_object_focused_item_get(obj);
index 233636b..49e2a33 100644 (file)
@@ -914,7 +914,8 @@ void CMusicBaseView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key
                        m->mhandle->Stop();
                        elm_exit();
                }
-               else if (!strcmp(ev->keyname, KEY_ENTER)) {
+               else if (!strcmp(ev->keyname, KEY_ENTER) ||
+                       !strcmp(ev->keyname, KEY_ENTER_REMOTE)) {
                        if (elm_object_focus_get(m->c_grpbtn)) {
                                m_UpdateCurrentLayout(true);
                        }
@@ -941,7 +942,8 @@ void CMusicBaseView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key
        case BASE_VIEW_PLAY_BUTTON:
        case BASE_VIEW_SORT_BUTTON:
        case BASE_VIEW_SOURCE_BUTTON:
-               if (!strcmp(ev->keyname, KEY_BACK))
+               if (!strcmp(ev->keyname, KEY_BACK) ||
+                       !strcmp(ev->keyname, KEY_BACK_REMOTE))
                        elm_object_focus_set(m->c_grpbtn, EINA_TRUE);
                break;
 
@@ -951,7 +953,8 @@ void CMusicBaseView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key
        case BASE_VIEW_GROUP_GENRE:
        case BASE_VIEW_GROUP_FOLDER:
        case BASE_VIEW_GROUP_PLAYLIST:
-               if (!strcmp(ev->keyname, KEY_BACK)) {
+               if (!strcmp(ev->keyname, KEY_BACK) ||
+                       !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
                        m->mhandle->Stop();
                        elm_exit();
                }
index 9ecf1c9..2aa8a20 100644 (file)
@@ -1689,7 +1689,8 @@ void CCategoryLayout::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Ke
                        int count;
                        Eina_List *alist = NULL;
 
-                       if (!strcmp(ev->keyname, KEY_BACK)) {
+                       if (!strcmp(ev->keyname, KEY_BACK) ||
+                               !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
                                if (t.depth == E_DEPTH_CATEGORY) {
                                        SParcel parcel;
                                        parcel.ctxtInfo = NULL;
@@ -1734,9 +1735,10 @@ void CCategoryLayout::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Ke
                        if (!obj)
                                return;
 
-                       if (strcmp(ev->keyname, KEY_MENU) || t.depth ==
-                               E_DEPTH_SELECT_LIST || t.depth ==
-                               E_DEPTH_SHOW_LIST)
+                       if ((strcmp(ev->keyname, KEY_MENU) &&
+                               strcmp(ev->keyname, KEY_MENU_REMOTE)) ||
+                               t.depth == E_DEPTH_SELECT_LIST ||
+                               t.depth == E_DEPTH_SHOW_LIST)
                                return;
 
                        it = elm_object_focused_item_get(obj);
index 49b5f07..514a1c8 100644 (file)
@@ -185,7 +185,8 @@ void CContextView::m_OnPopUpKeyPressed(Evas *e, Evas_Object *obj, Evas_Event_Key
        if (!ev->keyname)
                return;
 
-       if (!strcmp(ev->keyname, KEY_BACK))
+       if (!strcmp(ev->keyname, KEY_BACK) ||
+               !strcmp(ev->keyname, KEY_BACK_REMOTE))
                m_DestroyPopup();
 }
 
@@ -1471,7 +1472,8 @@ void CContextView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_D
        switch (id) {
        case CONTEXT_VIEW:
                {
-                       if (!strcmp(ev->keyname, KEY_BACK)) {
+                       if (!strcmp(ev->keyname, KEY_BACK) ||
+                               !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
                                if (m->ctxtinfo && m->ctxtinfo->close)
                                        m->ctxtinfo->close(m->ctxtinfo->cbdata);
                        }
@@ -1503,7 +1505,8 @@ void CContextView::OnKeyUp(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Up
        case CONTEXT_VIEW_BUTTON_REMOVESONG:
        case CONTEXT_VIEW_BUTTON_DELETE:
                {
-                       if (strcmp(ev->keyname, KEY_ENTER))
+                       if (strcmp(ev->keyname, KEY_ENTER) &&
+                               strcmp(ev->keyname, KEY_ENTER_REMOTE))
                                return;
 
                        m_HandleBtnSelected(id);
@@ -1515,7 +1518,8 @@ void CContextView::OnKeyUp(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Up
                        if (!obj || !ev)
                                return;
 
-                       if (strcmp(ev->keyname, KEY_ENTER))
+                       if (strcmp(ev->keyname, KEY_ENTER) &&
+                               strcmp(ev->keyname, KEY_ENTER_REMOTE))
                                return;
 
                        m_HandleMoreinfoSelected(obj);
@@ -1527,7 +1531,8 @@ void CContextView::OnKeyUp(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Up
                        if (!obj || !ev)
                                return;
 
-                       if (strcmp(ev->keyname, KEY_ENTER))
+                       if (strcmp(ev->keyname, KEY_ENTER) &&
+                               strcmp(ev->keyname, KEY_ENTER_REMOTE))
                                return;
 
                        elm_object_signal_emit(obj, MUSIC_SIGNAL_CONTENT_CLICKED,
index e963760..17966c7 100644 (file)
@@ -25,9 +25,6 @@
 #include <InputHandler.h>
 #include "entry-popup.h"
 
-//#define KEY_SELECT "Select"
-#define KEY_POPUP_ENTER "Return"
-
 
 struct SEntryPopup {
        Evas_Object *layout;
@@ -144,10 +141,11 @@ void CEntryPopup::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Do
        if (!ev->keyname)
                return;
 
-       if (strcmp(ev->keyname, KEY_BACK) == 0)
+       if (!strcmp(ev->keyname, KEY_BACK) ||
+               !strcmp(ev->keyname, KEY_BACK_REMOTE))
                Destroy();
-       // Keyname should be checked!!!
-       else if (strcmp(ev->keyname, KEY_POPUP_ENTER/*KEY_SELECT*/) == 0) {
+       else if (!strcmp(ev->keyname, KEY_ENTER) ||
+               !strcmp(ev->keyname, KEY_ENTER_REMOTE)) {
                str = elm_entry_entry_get(obj);
                if (m->cbEntryName && str)
                        m->cbEntryName(m->data, str);
index 8249f74..cf818f7 100644 (file)
@@ -934,7 +934,8 @@ void CFolderLayout::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_
        switch (id) {
        case FOLDER_LAYOUT:
                {
-                       if (!strcmp(ev->keyname, KEY_BACK)) {
+                       if (!strcmp(ev->keyname, KEY_BACK) ||
+                               !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
                                if (m->depth == E_DEPTH_SONG) {
                                        m->depth = E_DEPTH_FOLDER;
                                        m_UpdateFolderGrid(false);
@@ -962,7 +963,8 @@ void CFolderLayout::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_
                        if (!obj)
                                return;
 
-                       if (strcmp(ev->keyname, KEY_MENU))
+                       if (strcmp(ev->keyname, KEY_MENU) &&
+                               strcmp(ev->keyname, KEY_MENU_REMOTE))
                                return;
 
                        it = elm_object_focused_item_get(obj);
index 5b9400b..f3cea5f 100644 (file)
@@ -1051,23 +1051,24 @@ void CPlaybackView::m_KeyPreviousUnpress(void)
 
 void CPlaybackView::m_HandleKeyPress(char *keyname)
 {
-       if (strcmp(keyname, (char*)KEY_EXIT) == 0)
+       if (!strcmp(keyname, (char *)KEY_EXIT))
                m_KeyExitPress();
-       else if (strcmp(keyname, (char*)KEY_BACK) == 0)
+       else if (!strcmp(keyname, (char *)KEY_BACK) ||
+               !strcmp(keyname, (char *)KEY_BACK_REMOTE))
                m_KeyBackPress();
-       else if (strcmp(keyname, (char*)KEY_PLAY) == 0)
+       else if (!strcmp(keyname, (char *)KEY_PLAY))
                m_KeyPlayPress();
-       else if (strcmp(keyname, (char*)KEY_PAUSE) == 0)
+       else if (!strcmp(keyname, (char *)KEY_PAUSE))
                m_KeyPausePress();
-       else if (strcmp(keyname, (char*)KEY_NEXT) == 0)
+       else if (!strcmp(keyname, (char *)KEY_NEXT))
                m_KeyNextPress();
-       else if (strcmp(keyname, (char*)KEY_PREVIOUS) == 0)
+       else if (!strcmp(keyname, (char *)KEY_PREVIOUS))
                m_KeyPreviousPress();
-       else if (strcmp(keyname, (char*)KEY_VOLUMEUP) == 0)
+       else if (!strcmp(keyname, (char *)KEY_VOLUMEUP))
                m->pHandleVolume->Up();
-       else if (strcmp(keyname, (char*)KEY_VOLUMEDOWN) == 0)
+       else if (!strcmp(keyname, (char *)KEY_VOLUMEDOWN))
                m->pHandleVolume->Down();
-       else if (strcmp(keyname, (char*)KEY_MUTE) == 0)
+       else if (!strcmp(keyname, (char *)KEY_MUTE))
                m->pHandleVolume->Mute();
 }
 
@@ -1837,7 +1838,8 @@ void CPlaybackView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_
                break;
 
        case EO_ERROR_POPUP_BUTTON:
-               if (!strcmp(ev->keyname, KEY_BACK)) {
+               if (!strcmp(ev->keyname, KEY_BACK) ||
+                       !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
                        m_DestroyErrorPopup();
                        elm_object_focus_set(m->eoBtnControl[BTN_PLAY], EINA_TRUE);
                }
@@ -1849,7 +1851,8 @@ void CPlaybackView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_
                        SContentInfo *ctxtinfo = NULL;
                        SItemInfo *itinfo = NULL;
 
-                       if (strcmp(ev->keyname, KEY_MENU))
+                       if (strcmp(ev->keyname, KEY_MENU) &&
+                               strcmp(ev->keyname, KEY_MENU_REMOTE))
                                return;
 
                        it = elm_object_focused_item_get(obj);
@@ -1895,7 +1898,8 @@ void CPlaybackView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_
                }
 
        case EO_BOX:
-               if (!strcmp(ev->keyname, KEY_BACK)) {
+               if (!strcmp(ev->keyname, KEY_BACK) ||
+                       !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
                        _ERR("eoCtxPopup BACK key pressed ");
                        m_DestroySettingsPopup();
                        elm_object_focus_set(m->eoBtnControl[BTN_SETTINGS], EINA_TRUE);
index f2a10c2..3af52ea 100644 (file)
@@ -623,7 +623,8 @@ void CSongLayout::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Do
        switch (id) {
        case SONG_LAYOUT:
                {
-                       if (!strcmp(ev->keyname, KEY_BACK)) {
+                       if (!strcmp(ev->keyname, KEY_BACK) ||
+                               !strcmp(ev->keyname, KEY_BACK_REMOTE)) {
                                SParcel parcel;
                                parcel.ctxtInfo = NULL;
                                parcel.updateType = E_FOCUS_UPDATE;
@@ -640,7 +641,8 @@ void CSongLayout::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Do
                        SContentInfo *ctxtinfo = NULL;
                        SSongItemInfo *itinfo = NULL;
 
-                       if (strcmp(ev->keyname, KEY_MENU))
+                       if (strcmp(ev->keyname, KEY_MENU) &&
+                               strcmp(ev->keyname, KEY_MENU_REMOTE))
                                return;
 
                        it = elm_object_focused_item_get(obj);