From 59b1fbce36f831e37f33bb71b0b959d8f7b1d95d Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Thu, 7 Nov 2013 18:41:57 +0000 Subject: [PATCH] Add Creative ZEN simulator bitmap and button map Change-Id: I15fad76fe48d9736be9e4cdbc9ae8fdc96cc9ac3 --- firmware/target/hosted/sdl/sim-ui-defines.h | 7 ++ uisimulator/bitmaps/UI-creativezen.bmp | Bin 0 -> 530454 bytes uisimulator/buttonmap/SOURCES | 2 + uisimulator/buttonmap/creative-zen.c | 104 ++++++++++++++++++++ 4 files changed, 113 insertions(+) create mode 100644 uisimulator/bitmaps/UI-creativezen.bmp create mode 100644 uisimulator/buttonmap/creative-zen.c diff --git a/firmware/target/hosted/sdl/sim-ui-defines.h b/firmware/target/hosted/sdl/sim-ui-defines.h index b238520aac..7289329d21 100644 --- a/firmware/target/hosted/sdl/sim-ui-defines.h +++ b/firmware/target/hosted/sdl/sim-ui-defines.h @@ -480,6 +480,13 @@ #define UI_LCD_POSX 36 #define UI_LCD_POSY 37 +#elif defined(CREATIVE_ZEN) +#define UI_TITLE "Creative ZEN" +#define UI_WIDTH 520 /* width of GUI window */ +#define UI_HEIGHT 340 /* height of GUI window */ +#define UI_LCD_POSX 35 +#define UI_LCD_POSY 36 + #elif defined(SIMULATOR) #error no UI defines #endif diff --git a/uisimulator/bitmaps/UI-creativezen.bmp b/uisimulator/bitmaps/UI-creativezen.bmp new file mode 100644 index 0000000000000000000000000000000000000000..67119be258141ac98aefdaf58dfd033db7e895c4 GIT binary patch literal 530454 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 ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2013 by Amaury Pouly + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + + +#include +#include "button.h" +#include "buttonmap.h" + +int key_to_button(int keyboard_button) +{ + int new_btn = BUTTON_NONE; + switch (keyboard_button) + { + 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_KP9: + case SDLK_PAGEUP: + new_btn = BUTTON_MENU; + break; + case SDLK_KP1: + case SDLK_END: + new_btn = BUTTON_SHORTCUT; + break; + case SDLK_KP3: + case SDLK_PAGEDOWN: + new_btn = BUTTON_PLAYPAUSE; + break; + case SDLK_ESCAPE: + case SDLK_DELETE: + new_btn = BUTTON_POWER; + break; +#ifdef CREATIVE_ZENMOZAIC + case SDLK_KP_PLUS: + new_btn = BUTTON_VOL_UP; + break; + case SDLK_KP_MINUS: + new_btn = BUTTON_VOL_DOWN; + break; +#endif + case SDLK_KP7: + case SDLK_HOME: + case SDLK_BACKSPACE: + new_btn = BUTTON_BACK; + break; + case SDLK_KP_ENTER: + case SDLK_RETURN: + case SDLK_KP5: + new_btn = BUTTON_SELECT; + break; + } + return new_btn; +} + +#if defined(CREATIVE_ZEN) +struct button_map bm[] = { + { SDLK_LEFT, 388, 170, 14, "Left" }, + { SDLK_RIGHT, 481, 170, 14, "Right" }, + { SDLK_UP, 435, 123, 14, "Up" }, + { SDLK_DOWN, 435, 216, 14, "Down" }, + { SDLK_RETURN, 435, 170, 20, "Select" }, + { SDLK_HOME, 406, 61, 20, "Back" }, + { SDLK_PAGEUP, 462, 61, 20, "Menu" }, + { SDLK_DELETE, 519, 170, 20, "Power" }, + { SDLK_END, 406, 275, 20, "Shortcut" }, + { SDLK_PAGEDOWN, 462, 275, 20, "Play" }, + { 0, 0, 0, 0, "None" } +}; +#else +#error please define button map +#endif + +