D2 simulator build (plugins not built yet)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16146 a1c6a512-1295-4272-9138-f99709370657
diff --git a/apps/keymaps/keymap-cowond2.c b/apps/keymaps/keymap-cowond2.c
index ab4216e..bf9b21b 100644
--- a/apps/keymaps/keymap-cowond2.c
+++ b/apps/keymaps/keymap-cowond2.c
@@ -18,7 +18,7 @@
  ****************************************************************************/
 
 /* Button Code Definitions for the Cowon D2 target */
-/* Some of these mappings are rather 'creative', given it only has 3 buttons! */
+/* NB: Up/Down/Left/Right are not physical buttons - touchscreen emulation */
 
 #include <stdio.h>
 #include <string.h>
@@ -37,21 +37,25 @@
  */
 
 static const struct button_mapping button_context_standard[]  = {
+    { ACTION_STD_PREV,        BUTTON_UP,                  BUTTON_NONE },
     { ACTION_STD_PREV,        BUTTON_MINUS,               BUTTON_NONE },
+    { ACTION_STD_PREVREPEAT,  BUTTON_UP|BUTTON_REPEAT,    BUTTON_NONE },
     { ACTION_STD_PREVREPEAT,  BUTTON_MINUS|BUTTON_REPEAT, BUTTON_NONE },
+    { ACTION_STD_NEXT,        BUTTON_DOWN,                BUTTON_NONE },
     { ACTION_STD_NEXT,        BUTTON_PLUS,                BUTTON_NONE },
+    { ACTION_STD_NEXTREPEAT,  BUTTON_DOWN|BUTTON_REPEAT,  BUTTON_NONE },
     { ACTION_STD_NEXTREPEAT,  BUTTON_PLUS|BUTTON_REPEAT,  BUTTON_NONE },
 
     { ACTION_STD_OK,          BUTTON_MENU|BUTTON_REL,     BUTTON_NONE },
-    //{ ACTION_STD_OK,          BUTTON_RIGHT,               BUTTON_NONE },
-    //{ ACTION_STD_OK,          BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT },
+    { ACTION_STD_OK,          BUTTON_RIGHT|BUTTON_REL,    BUTTON_RIGHT },
 
     { ACTION_STD_MENU,        BUTTON_MENU|BUTTON_REPEAT,  BUTTON_NONE },
    // { ACTION_STD_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT,  BUTTON_NONE },
-    { ACTION_STD_CONTEXT,     BUTTON_MINUS|BUTTON_REPEAT, BUTTON_NONE },
+    { ACTION_STD_CONTEXT,     BUTTON_PLUS|BUTTON_REPEAT,  BUTTON_NONE },
+    { ACTION_STD_CONTEXT,     BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
     { ACTION_STD_CANCEL,      BUTTON_POWER,               BUTTON_NONE },
-//    { ACTION_STD_CANCEL,      BUTTON_LEFT,                BUTTON_NONE },
-//    { ACTION_STD_CANCEL,      BUTTON_LEFT|BUTTON_REPEAT,  BUTTON_NONE },
+    { ACTION_STD_CANCEL,      BUTTON_LEFT,                BUTTON_NONE },
+    { ACTION_STD_CANCEL,      BUTTON_LEFT|BUTTON_REPEAT,  BUTTON_NONE },
     LAST_ITEM_IN_LIST
 }; /* button_context_standard */
 
@@ -77,9 +81,13 @@
 };
 
 static const struct button_mapping button_context_settings[]  = {
+    { ACTION_SETTINGS_INC,          BUTTON_UP,                    BUTTON_NONE },
     { ACTION_SETTINGS_INC,          BUTTON_PLUS,                  BUTTON_NONE },
+    { ACTION_SETTINGS_INCREPEAT,    BUTTON_UP|BUTTON_REPEAT,      BUTTON_NONE },
     { ACTION_SETTINGS_INCREPEAT,    BUTTON_PLUS|BUTTON_REPEAT,    BUTTON_NONE },
+    { ACTION_SETTINGS_DEC,          BUTTON_DOWN,                  BUTTON_NONE },
     { ACTION_SETTINGS_DEC,          BUTTON_MINUS,                 BUTTON_NONE },
+    { ACTION_SETTINGS_DECREPEAT,    BUTTON_DOWN|BUTTON_REPEAT,    BUTTON_NONE },
     { ACTION_SETTINGS_DECREPEAT,    BUTTON_MINUS|BUTTON_REPEAT,   BUTTON_NONE },
     { ACTION_STD_OK,                BUTTON_MENU,                  BUTTON_NONE },
     { ACTION_STD_CANCEL,            BUTTON_POWER,                 BUTTON_NONE },
diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES
index 4444934..8ad7c3f 100644
--- a/apps/plugins/SOURCES
+++ b/apps/plugins/SOURCES
@@ -1,4 +1,4 @@
-#if !defined(OLYMPUS_MROBE_100)
+#if !defined(OLYMPUS_MROBE_100) && !defined(COWON_D2)
 
 /* plugins common to all models */
 battery_bench.c
diff --git a/apps/plugins/SUBDIRS b/apps/plugins/SUBDIRS
index 42e6331..4052d91 100644
--- a/apps/plugins/SUBDIRS
+++ b/apps/plugins/SUBDIRS
@@ -1,4 +1,4 @@
-#if !defined(IRIVER_IFP7XX_SERIES) && !defined(OLYMPUS_MROBE_100)
+#if !defined(IRIVER_IFP7XX_SERIES) && !defined(OLYMPUS_MROBE_100) && !defined(COWON_D2)
 
 /* For all targets */
 shortcuts
diff --git a/uisimulator/sdl/UI-cowond2.bmp b/uisimulator/sdl/UI-cowond2.bmp
new file mode 100644
index 0000000..e86221c
--- /dev/null
+++ b/uisimulator/sdl/UI-cowond2.bmp
Binary files differ
diff --git a/uisimulator/sdl/button.c b/uisimulator/sdl/button.c
index 4211ba3..3c825ea 100644
--- a/uisimulator/sdl/button.c
+++ b/uisimulator/sdl/button.c
@@ -632,6 +632,7 @@
     case SDLK_INSERT:
         new_btn = BUTTON_RC_MODE;
         break;
+
 #elif CONFIG_KEYPAD == MROBE100_PAD
     case SDLK_KP4:
     case SDLK_LEFT:
@@ -668,6 +669,41 @@
     case SDLK_SPACE:
         new_btn = BUTTON_PLAY;
         break;
+        
+#elif CONFIG_KEYPAD == COWOND2_PAD
+    case SDLK_KP4:
+    case SDLK_LEFT:
+        new_btn = BUTTON_LEFT;
+        break;
+    case SDLK_KP6:
+    case SDLK_RIGHT:
+        new_btn = BUTTON_RIGHT;
+        break;
+    case SDLK_KP8:
+    case SDLK_UP:
+        new_btn = BUTTON_UP;
+        break;
+    case SDLK_KP2:
+    case SDLK_DOWN:
+        new_btn = BUTTON_DOWN;
+        break;
+    case SDLK_KP3:
+        new_btn = BUTTON_POWER;
+        break;
+    case SDLK_KP5:
+    case SDLK_KP_ENTER:
+    case SDLK_RETURN:
+        new_btn = BUTTON_SELECT;
+        break;
+    case SDLK_KP_PLUS:
+        new_btn = BUTTON_PLUS;
+        break;
+    case SDLK_KP_MINUS:
+        new_btn = BUTTON_MINUS;
+        break;
+    case SDLK_KP9:
+        new_btn = BUTTON_MENU;
+        break;
 #else
 #error No keymap defined!
 #endif /* CONFIG_KEYPAD */
diff --git a/uisimulator/sdl/uisdl.h b/uisimulator/sdl/uisdl.h
index 7d11bfa..49556a9 100644
--- a/uisimulator/sdl/uisdl.h
+++ b/uisimulator/sdl/uisdl.h
@@ -321,6 +321,19 @@
 #define UI_LCD_POSY                 25 /* y position of lcd */
 #define UI_LCD_WIDTH                160
 #define UI_LCD_HEIGHT               128
+
+#elif defined(COWON_D2)
+#define UI_TITLE                    "Cowon D2"
+#define UI_WIDTH                    420 /* width of GUI window */
+#define UI_HEIGHT                   340 /* height of GUI window */
+#define UI_LCD_POSX                 50 /* x position of lcd */
+#define UI_LCD_POSY                 50 /* y position of lcd */
+#define UI_LCD_WIDTH                320
+#define UI_LCD_HEIGHT               240
+#define UI_LCD_BGCOLOR              32, 32, 32 /* bkgnd color of LCD (no backlight) */
+#define UI_LCD_BGCOLORLIGHT         192, 192, 192 /* bkgnd color of LCD (backlight) */
+#define UI_LCD_BLACK                0, 0, 0 /* black */
+
 #endif
 extern SDL_Surface *gui_surface;
 extern bool background;  /* True if the background image is enabled */