From c8dfe0508e176b87594f12a67467d51715f53a54 Mon Sep 17 00:00:00 2001 From: Szymon Dziok Date: Thu, 21 Oct 2010 22:20:16 +0000 Subject: [PATCH] HDD6330: add the simulator. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28323 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/hosted/sdl/sim-ui-defines.h | 7 ++ uisimulator/bitmaps/UI-gogearhdd6330.bmp | Bin 0 -> 736854 bytes uisimulator/buttonmap/SOURCES | 2 + uisimulator/buttonmap/gogear-hdd6330.c | 79 ++++++++++++++++++++ 4 files changed, 88 insertions(+) create mode 100644 uisimulator/bitmaps/UI-gogearhdd6330.bmp create mode 100644 uisimulator/buttonmap/gogear-hdd6330.c diff --git a/firmware/target/hosted/sdl/sim-ui-defines.h b/firmware/target/hosted/sdl/sim-ui-defines.h index 926356dd9f..c44fea54b7 100644 --- a/firmware/target/hosted/sdl/sim-ui-defines.h +++ b/firmware/target/hosted/sdl/sim-ui-defines.h @@ -333,6 +333,13 @@ #define UI_LCD_POSX 143 /* x position of lcd */ #define UI_LCD_POSY 27 /* y position of lcd */ +#elif defined(PHILIPS_HDD6330) +#define UI_TITLE "Philips GoGear HDD63X0" +#define UI_WIDTH 400 /* width of GUI window */ +#define UI_HEIGHT 614 /* height of GUI window */ +#define UI_LCD_POSX 89 /* x position of lcd */ +#define UI_LCD_POSY 113 /* y position of lcd */ + #elif defined(SANSA_M200V4) #define UI_TITLE "sansa m200v4" #define UI_WIDTH 350 /* width of GUI window */ diff --git a/uisimulator/bitmaps/UI-gogearhdd6330.bmp b/uisimulator/bitmaps/UI-gogearhdd6330.bmp new file mode 100644 index 0000000000000000000000000000000000000000..92ea0a2166c66f5605eaddee03eda03751a098a0 GIT binary patch literal 736854 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 l*wfYXKQC|c_4ePjbC ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 Szymon Dziok + * + * 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_KP5: + case SDLK_SPACE: + new_btn = BUTTON_PLAY; + break; + case SDLK_KP7: + new_btn = BUTTON_PREV; + break; + case SDLK_KP9: + new_btn = BUTTON_NEXT; + break; + case SDLK_KP1: + new_btn = BUTTON_MENU; + break; + case SDLK_KP3: + new_btn = BUTTON_VIEW; + break; + case SDLK_KP_MULTIPLY: + new_btn = BUTTON_POWER; + break; + case SDLK_KP_PLUS: + new_btn = BUTTON_VOL_UP; + break; + case SDLK_KP_MINUS: + new_btn = BUTTON_VOL_DOWN; + break; + } + return new_btn; +} + +struct button_map bm[] = { + { 0, 0, 0, 0, "None" } +};