From 31b5c471aeec6040ca69e3bea59c0825e2a6fc9d Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Tue, 6 Jul 2010 15:11:56 +0000 Subject: Rockbox as an application: Add an 320x240 SDL application target. It still works mostly like the simulator. There's also some minor left overs from the sim, but it does not define SIMULATOR. It installs into the current (build) dir, and you need to run it with '--root .' (because it looks for ./.rockbox and not ./simdisk/rockbox) as options. That's one of the few kludges left that should be resolved soon'ish. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27310 a1c6a512-1295-4272-9138-f99709370657 --- apps/debug_menu.c | 2 +- firmware/SOURCES | 6 ++ firmware/export/audiohw.h | 4 + firmware/export/config.h | 3 + firmware/export/config/application.h | 94 +++++++++++++++++++++ firmware/target/hosted/sdl/app/adc-target.h | 25 ++++++ firmware/target/hosted/sdl/app/backlight-target.h | 25 ++++++ .../target/hosted/sdl/app/button-application.c | 29 +++++++ firmware/target/hosted/sdl/app/button-target.h | 68 +++++++++++++++ firmware/target/hosted/sdl/app/i2c-target.h | 25 ++++++ firmware/target/hosted/sdl/app/usb-target.h | 25 ++++++ firmware/target/hosted/sdl/button-sdl.c | 4 +- firmware/target/hosted/sdl/buttonmap.h | 43 ++++++++++ firmware/target/hosted/sdl/key_to_touch-sdl.c | 96 ++++++++++++++++++++++ firmware/target/hosted/sdl/sim-ui-defines.h | 7 ++ firmware/target/hosted/sdl/system-target.h | 1 + tools/buildzip.pl | 9 +- tools/configure | 27 +++++- uisimulator/buttonmap/SOURCES | 3 - uisimulator/buttonmap/buttonmap.h | 42 ---------- uisimulator/buttonmap/touchscreen.c | 96 ---------------------- uisimulator/common/SOURCES | 13 +-- uisimulator/uisimulator.make | 6 +- 23 files changed, 499 insertions(+), 154 deletions(-) create mode 100644 firmware/export/config/application.h create mode 100644 firmware/target/hosted/sdl/app/adc-target.h create mode 100644 firmware/target/hosted/sdl/app/backlight-target.h create mode 100644 firmware/target/hosted/sdl/app/button-application.c create mode 100644 firmware/target/hosted/sdl/app/button-target.h create mode 100644 firmware/target/hosted/sdl/app/i2c-target.h create mode 100644 firmware/target/hosted/sdl/app/usb-target.h create mode 100644 firmware/target/hosted/sdl/buttonmap.h create mode 100644 firmware/target/hosted/sdl/key_to_touch-sdl.c create mode 100644 firmware/target/hosted/sdl/system-target.h delete mode 100644 uisimulator/buttonmap/buttonmap.h delete mode 100644 uisimulator/buttonmap/touchscreen.c diff --git a/apps/debug_menu.c b/apps/debug_menu.c index bd969df0c0..a574896d63 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c @@ -663,7 +663,7 @@ static bool dbg_hw_info(void) while (!(action_userabort(TIMEOUT_BLOCK))); -#else +#elif (CONFIG_PLATFORM & PLATFORM_NATIVE) /* Define this function in your target tree */ return __dbg_hw_info(); #endif /* CONFIG_CPU */ diff --git a/firmware/SOURCES b/firmware/SOURCES index 57f7258282..926891eeea 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES @@ -35,6 +35,12 @@ target/hosted/sdl/lcd-sdl.c target/hosted/sdl/system-sdl.c target/hosted/sdl/thread-sdl.c target/hosted/sdl/timer-sdl.c +#ifdef HAVE_TOUCHSCREEN +target/hosted/sdl/key_to_touch-sdl.c +#endif +#ifdef APPLICATION +target/hosted/sdl/app/button-application.c +#endif #endif panic.c debug.c diff --git a/firmware/export/audiohw.h b/firmware/export/audiohw.h index b8214e67b9..05fdb67e1e 100644 --- a/firmware/export/audiohw.h +++ b/firmware/export/audiohw.h @@ -69,6 +69,10 @@ #if defined(HAVE_SDL_AUDIO) /* #include gives errors in other code areas, * we don't really need it here, so don't. but it should maybe be fixed */ +#ifndef SIMULATOR /* simulator gets values from the target .h files */ +#define VOLUME_MIN -990 +#define VOLUME_MAX 0 +#endif #endif diff --git a/firmware/export/config.h b/firmware/export/config.h index 29d68cd100..e0581507b5 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -424,6 +424,9 @@ Lyre prototype 1 */ #include "config/vibe500.h" #elif defined(MPIO_HD200) #include "config/mpiohd200.h" + +#elif defined(APPLICATION) +#include "config/application.h" #else /* no known platform */ #endif diff --git a/firmware/export/config/application.h b/firmware/export/config/application.h new file mode 100644 index 0000000000..48c384d1a6 --- /dev/null +++ b/firmware/export/config/application.h @@ -0,0 +1,94 @@ +/* + * This config file is for Rockbox as an application! + */ +#define TARGET_TREE /* this target is using the target tree system */ + +/* We don't run on hardware directly */ +#define CONFIG_PLATFORM PLATFORM_HOSTED +/* For Rolo and boot loader */ +/* +#define MODEL_NUMBER 24 +*/ + +#define MODEL_NAME "Rockbox" + +#define USB_NONE + +/* define this if you have a bitmap LCD display */ +#define HAVE_LCD_BITMAP + +/* define this if you have a colour LCD */ +#define HAVE_LCD_COLOR + +/* define this if you want album art for this target */ +#define HAVE_ALBUMART + +/* define this to enable bitmap scaling */ +#define HAVE_BMP_SCALING + +/* define this to enable JPEG decoding */ +#define HAVE_JPEG + +/* define this if you have access to the quickscreen */ +#define HAVE_QUICKSCREEN +/* define this if you have access to the pitchscreen */ +#define HAVE_PITCHSCREEN + +/* define this if you would like tagcache to build on this target */ +#define HAVE_TAGCACHE + +/* LCD dimensions */ +#define LCD_WIDTH 320 +#define LCD_HEIGHT 240 +#define LCD_DEPTH 16 +#define LCD_PIXELFORMAT 565 + +/* define this to indicate your device's keypad */ +#define HAVE_TOUCHSCREEN +#define HAVE_BUTTON_DATA + +/* define this if you have RTC RAM available for settings */ +//#define HAVE_RTC_RAM + +/* The number of bytes reserved for loadable codecs */ +#define CODEC_SIZE 0x100000 + +/* The number of bytes reserved for loadable plugins */ +#define PLUGIN_BUFFER_SIZE 0x80000 + +#define AB_REPEAT_ENABLE 1 + +/* Define this if you do software codec */ +#define CONFIG_CODEC SWCODEC + +#define CONFIG_KEYPAD COWON_D2_PAD +/* Use SDL audio/pcm in a SDL app build */ +#define HAVE_SDL + +#ifdef HAVE_SDL +#define HAVE_SDL_AUDIO +#endif + +/* Use WM8985 EQ1 & EQ5 as hardware tone controls */ +/* #define HAVE_SW_TONE_CONTROLS */ + +/* Define current usage levels. */ +#define CURRENT_NORMAL 88 /* 18 hours from a 1600 mAh battery */ +#define CURRENT_BACKLIGHT 30 /* TBD */ +#define CURRENT_RECORD 0 /* no recording yet */ + +/* Define this to the CPU frequency */ +/* +#define CPU_FREQ 48000000 +*/ + +/* Offset ( in the firmware file's header ) to the file CRC */ +#define FIRMWARE_OFFSET_FILE_CRC 0 + +/* Offset ( in the firmware file's header ) to the real data */ +#define FIRMWARE_OFFSET_FILE_DATA 8 + +#define CONFIG_LCD LCD_COWOND2 + +/* Define this if a programmable hotkey is mapped */ +//#define HAVE_HOTKEY diff --git a/firmware/target/hosted/sdl/app/adc-target.h b/firmware/target/hosted/sdl/app/adc-target.h new file mode 100644 index 0000000000..f8069be6f5 --- /dev/null +++ b/firmware/target/hosted/sdl/app/adc-target.h @@ -0,0 +1,25 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 by Thomas Martitz + * + * 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. + * + ****************************************************************************/ + +#ifndef __ADC_TARGET_H__ +#define __ADC_TARGET_H__ + +#endif /* __ADC_TARGET_H__ */ diff --git a/firmware/target/hosted/sdl/app/backlight-target.h b/firmware/target/hosted/sdl/app/backlight-target.h new file mode 100644 index 0000000000..f753e7c1dd --- /dev/null +++ b/firmware/target/hosted/sdl/app/backlight-target.h @@ -0,0 +1,25 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 by Thomas Martitz + * + * 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. + * + ****************************************************************************/ + +#ifndef __BACKLIGHT_TARGET_H__ +#define __BACKLIGHT_TARGET_H__ + +#endif /* __BACKLIGHT_TARGET_H__ */ diff --git a/firmware/target/hosted/sdl/app/button-application.c b/firmware/target/hosted/sdl/app/button-application.c new file mode 100644 index 0000000000..a27f769718 --- /dev/null +++ b/firmware/target/hosted/sdl/app/button-application.c @@ -0,0 +1,29 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 Thomas Martitz + * + * 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. + * + ***************************************************9*************************/ + + +#include "button.h" + +int key_to_button(int keyboard_key) +{ + (void)keyboard_key; + return BUTTON_NONE; +} diff --git a/firmware/target/hosted/sdl/app/button-target.h b/firmware/target/hosted/sdl/app/button-target.h new file mode 100644 index 0000000000..54ae3a2fae --- /dev/null +++ b/firmware/target/hosted/sdl/app/button-target.h @@ -0,0 +1,68 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2007 by Rob Purchase + * + * 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. + * + ****************************************************************************/ + +#ifndef _BUTTON_TARGET_H_ +#define _BUTTON_TARGET_H_ + +#include +#include "config.h" +/* + +#define HAS_BUTTON_HOLD + +bool button_hold(void); +*/ +void button_init_device(void); +int button_read_device(int *data); + +/* Main unit's buttons */ +#define BUTTON_POWER 0x00000001 +#define BUTTON_PLUS 0x00000002 +#define BUTTON_MINUS 0x00000004 +#define BUTTON_MENU 0x00000008 + +/* Compatibility hacks for flipping. Needs a somewhat better fix. */ +#define BUTTON_LEFT BUTTON_MIDLEFT +#define BUTTON_RIGHT BUTTON_MIDRIGHT +#define BUTTON_UP BUTTON_TOPMIDDLE +#define BUTTON_DOWN BUTTON_BOTTOMMIDDLE + +/* Touch Screen Area Buttons */ +#define BUTTON_TOPLEFT 0x00000010 +#define BUTTON_TOPMIDDLE 0x00000020 +#define BUTTON_TOPRIGHT 0x00000040 +#define BUTTON_MIDLEFT 0x00000080 +#define BUTTON_CENTER 0x00000100 +#define BUTTON_MIDRIGHT 0x00000200 +#define BUTTON_BOTTOMLEFT 0x00000400 +#define BUTTON_BOTTOMMIDDLE 0x00000800 +#define BUTTON_BOTTOMRIGHT 0x00001000 + +#define BUTTON_MAIN 0x1FFF + +/* No remote */ +#define BUTTON_REMOTE 0 + +/* Software power-off */ +#define POWEROFF_BUTTON BUTTON_POWER +#define POWEROFF_COUNT 10 + +#endif /* _BUTTON_TARGET_H_ */ diff --git a/firmware/target/hosted/sdl/app/i2c-target.h b/firmware/target/hosted/sdl/app/i2c-target.h new file mode 100644 index 0000000000..89f0436b9e --- /dev/null +++ b/firmware/target/hosted/sdl/app/i2c-target.h @@ -0,0 +1,25 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 by Thomas Martitz + * + * 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. + * + ****************************************************************************/ + +#ifndef __I2C_TARGET_H__ +#define __I2C_TARGET_H__ + +#endif /* __I2C_TARGET_H__ */ diff --git a/firmware/target/hosted/sdl/app/usb-target.h b/firmware/target/hosted/sdl/app/usb-target.h new file mode 100644 index 0000000000..10e04677f9 --- /dev/null +++ b/firmware/target/hosted/sdl/app/usb-target.h @@ -0,0 +1,25 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 by Thomas Martitz + * + * 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. + * + ****************************************************************************/ + +#ifndef __USB_TARGET_H__ +#define __USB_TARGET_H__ + +#endif /* __USB_TARGET_H__ */ diff --git a/firmware/target/hosted/sdl/button-sdl.c b/firmware/target/hosted/sdl/button-sdl.c index 8b236c19f1..837c16c2ea 100644 --- a/firmware/target/hosted/sdl/button-sdl.c +++ b/firmware/target/hosted/sdl/button-sdl.c @@ -31,10 +31,8 @@ #include "misc.h" #include "button-sdl.h" #include "backlight.h" -#ifdef SIMULATOR #include "sim_tasks.h" #include "buttonmap.h" -#endif #include "debug.h" #ifdef HAVE_TOUCHSCREEN @@ -139,6 +137,7 @@ bool gui_message_loop(void) x = event.button.x; y = event.button.y; } +#ifdef SIMULATOR if ( background ) { xybutton = xy2button( event.button.x, event.button.y ); if( xybutton ) { @@ -146,6 +145,7 @@ bool gui_message_loop(void) break; } } +#endif #ifdef HAVE_TOUCHSCREEN touchscreen_event(event.button.x, event.button.y); #endif diff --git a/firmware/target/hosted/sdl/buttonmap.h b/firmware/target/hosted/sdl/buttonmap.h new file mode 100644 index 0000000000..e90b8a40d4 --- /dev/null +++ b/firmware/target/hosted/sdl/buttonmap.h @@ -0,0 +1,43 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 by Fred Bauer + * + * 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. + * + ****************************************************************************/ + +#ifndef __BUTTONMAP_H__ +#define __BUTTONMAP_H__ +/* Button maps: simulated key, x, y, radius, name */ +/* Run sim with --mapping to get coordinates */ +/* or --debugbuttons to check */ +/* The First matching button is returned */ +struct button_map { + int button, x, y, radius; + char *description; +}; + +extern struct button_map bm[]; + +int xy2button( int x, int y); + +/* for the sim, these function is implemented in uisimulator/buttonmap/ *.c */ +int key_to_button(int keyboard_button); +#ifdef HAVE_TOUCHSCREEN +int key_to_touch(int keyboard_button, unsigned int mouse_coords); +#endif + +#endif /* __BUTTONMAP_H__ */ diff --git a/firmware/target/hosted/sdl/key_to_touch-sdl.c b/firmware/target/hosted/sdl/key_to_touch-sdl.c new file mode 100644 index 0000000000..90518c7c7e --- /dev/null +++ b/firmware/target/hosted/sdl/key_to_touch-sdl.c @@ -0,0 +1,96 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2008 Jonathan Gordon + * + * 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 +#include "button.h" +#include "buttonmap.h" +#include "touchscreen.h" + +int key_to_touch(int keyboard_button, unsigned int mouse_coords) +{ + int new_btn = BUTTON_NONE; + switch (keyboard_button) + { + case BUTTON_TOUCHSCREEN: + switch (touchscreen_get_mode()) + { + case TOUCHSCREEN_POINT: + new_btn = BUTTON_TOUCHSCREEN; + break; + case TOUCHSCREEN_BUTTON: + { + static const int touchscreen_buttons[3][3] = { + {BUTTON_TOPLEFT, BUTTON_TOPMIDDLE, BUTTON_TOPRIGHT}, + {BUTTON_MIDLEFT, BUTTON_CENTER, BUTTON_MIDRIGHT}, + {BUTTON_BOTTOMLEFT, BUTTON_BOTTOMMIDDLE, BUTTON_BOTTOMRIGHT}, + }; + int px_x = ((mouse_coords&0xffff0000)>>16); + int px_y = ((mouse_coords&0x0000ffff)); + new_btn = touchscreen_buttons[px_y/(LCD_HEIGHT/3)][px_x/(LCD_WIDTH/3)]; + break; + } + } + break; + case SDLK_KP7: + case SDLK_7: + new_btn = BUTTON_TOPLEFT; + break; + case SDLK_KP8: + case SDLK_8: + case SDLK_UP: + new_btn = BUTTON_TOPMIDDLE; + break; + case SDLK_KP9: + case SDLK_9: + new_btn = BUTTON_TOPRIGHT; + break; + case SDLK_KP4: + case SDLK_u: + case SDLK_LEFT: + new_btn = BUTTON_MIDLEFT; + break; + case SDLK_KP5: + case SDLK_i: + new_btn = BUTTON_CENTER; + break; + case SDLK_KP6: + case SDLK_o: + case SDLK_RIGHT: + new_btn = BUTTON_MIDRIGHT; + break; + case SDLK_KP1: + case SDLK_j: + new_btn = BUTTON_BOTTOMLEFT; + break; + case SDLK_KP2: + case SDLK_k: + case SDLK_DOWN: + new_btn = BUTTON_BOTTOMMIDDLE; + break; + case SDLK_KP3: + case SDLK_l: + new_btn = BUTTON_BOTTOMRIGHT; + break; + } + return new_btn; +} diff --git a/firmware/target/hosted/sdl/sim-ui-defines.h b/firmware/target/hosted/sdl/sim-ui-defines.h index 567a618fc3..926356dd9f 100644 --- a/firmware/target/hosted/sdl/sim-ui-defines.h +++ b/firmware/target/hosted/sdl/sim-ui-defines.h @@ -397,6 +397,13 @@ #define UI_LCD_POSX 101 #define UI_LCD_POSY 195 +#elif defined(APPLICATION) +#define UI_TITLE "Rockbox" +#define UI_LCD_POSX 0 +#define UI_LCD_POSY 0 +#define UI_WIDTH LCD_WIDTH +#define UI_HEIGHT LCD_HEIGHT + #elif defined(SIMULATOR) #error no UI defines #endif diff --git a/firmware/target/hosted/sdl/system-target.h b/firmware/target/hosted/sdl/system-target.h new file mode 100644 index 0000000000..31194fc33a --- /dev/null +++ b/firmware/target/hosted/sdl/system-target.h @@ -0,0 +1 @@ +#include "system-sdl.h" diff --git a/tools/buildzip.pl b/tools/buildzip.pl index aa25e26b13..f0a2c6a030 100755 --- a/tools/buildzip.pl +++ b/tools/buildzip.pl @@ -474,6 +474,7 @@ $year+=1900; # made once for all targets sub runone { my ($target, $fonts)=@_; + my $samedir = abs_path($install) == abs_path($rbdir); # build a full install .rockbox ($rbdir) directory buildzip($target, $fonts); @@ -498,14 +499,18 @@ sub runone { if ($install =~ /\/dev\/null/) { die "ERROR: No PREFIX given\n" } - system("cp -r $rbdir \"$install\" >/dev/null"); + if (!$samedir) { + system("cp -r $rbdir \"$install\" >/dev/null"); + } } else { system("$ziptool $output $rbdir $target >/dev/null"); } # remove the $rbdir afterwards - rmtree($rbdir); + if (!$samedir) { + rmtree($rbdir); + } }; if(!$exe) { diff --git a/tools/configure b/tools/configure index 79032c006e..1b88c30a6f 100755 --- a/tools/configure +++ b/tools/configure @@ -971,8 +971,9 @@ cat < ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2010 by Fred Bauer - * - * 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. - * - ****************************************************************************/ - -#ifndef __BUTTONMAP_H__ -#define __BUTTONMAP_H__ -/* Button maps: simulated key, x, y, radius, name */ -/* Run sim with --mapping to get coordinates */ -/* or --debugbuttons to check */ -/* The First matching button is returned */ -struct button_map { - int button, x, y, radius; - char *description; -}; - -extern struct button_map bm[]; - -int xy2button( int x, int y); - -int key_to_button(int keyboard_button); -#ifdef HAVE_TOUCHSCREEN -int key_to_touch(int keyboard_button, unsigned int mouse_coords); -#endif - -#endif /* __BUTTONMAP_H__ */ diff --git a/uisimulator/buttonmap/touchscreen.c b/uisimulator/buttonmap/touchscreen.c deleted file mode 100644 index 90518c7c7e..0000000000 --- a/uisimulator/buttonmap/touchscreen.c +++ /dev/null @@ -1,96 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2008 Jonathan Gordon - * - * 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 -#include "button.h" -#include "buttonmap.h" -#include "touchscreen.h" - -int key_to_touch(int keyboard_button, unsigned int mouse_coords) -{ - int new_btn = BUTTON_NONE; - switch (keyboard_button) - { - case BUTTON_TOUCHSCREEN: - switch (touchscreen_get_mode()) - { - case TOUCHSCREEN_POINT: - new_btn = BUTTON_TOUCHSCREEN; - break; - case TOUCHSCREEN_BUTTON: - { - static const int touchscreen_buttons[3][3] = { - {BUTTON_TOPLEFT, BUTTON_TOPMIDDLE, BUTTON_TOPRIGHT}, - {BUTTON_MIDLEFT, BUTTON_CENTER, BUTTON_MIDRIGHT}, - {BUTTON_BOTTOMLEFT, BUTTON_BOTTOMMIDDLE, BUTTON_BOTTOMRIGHT}, - }; - int px_x = ((mouse_coords&0xffff0000)>>16); - int px_y = ((mouse_coords&0x0000ffff)); - new_btn = touchscreen_buttons[px_y/(LCD_HEIGHT/3)][px_x/(LCD_WIDTH/3)]; - break; - } - } - break; - case SDLK_KP7: - case SDLK_7: - new_btn = BUTTON_TOPLEFT; - break; - case SDLK_KP8: - case SDLK_8: - case SDLK_UP: - new_btn = BUTTON_TOPMIDDLE; - break; - case SDLK_KP9: - case SDLK_9: - new_btn = BUTTON_TOPRIGHT; - break; - case SDLK_KP4: - case SDLK_u: - case SDLK_LEFT: - new_btn = BUTTON_MIDLEFT; - break; - case SDLK_KP5: - case SDLK_i: - new_btn = BUTTON_CENTER; - break; - case SDLK_KP6: - case SDLK_o: - case SDLK_RIGHT: - new_btn = BUTTON_MIDRIGHT; - break; - case SDLK_KP1: - case SDLK_j: - new_btn = BUTTON_BOTTOMLEFT; - break; - case SDLK_KP2: - case SDLK_k: - case SDLK_DOWN: - new_btn = BUTTON_BOTTOMMIDDLE; - break; - case SDLK_KP3: - case SDLK_l: - new_btn = BUTTON_BOTTOMRIGHT; - break; - } - return new_btn; -} diff --git a/uisimulator/common/SOURCES b/uisimulator/common/SOURCES index 4d7165a719..a30b5abeb2 100644 --- a/uisimulator/common/SOURCES +++ b/uisimulator/common/SOURCES @@ -1,13 +1,16 @@ -fmradio.c -io.c +#ifndef APPLICATION lcd-common.c #ifdef HAVE_LCD_CHARCELLS font-player.c lcd-playersim.c sim_icons.c #endif -sim_tasks.c -stubs.c -powermgmt-sim.c +fmradio.c backlight-sim.c +#endif +/* this is still needed for application since it has some stubs */ +powermgmt-sim.c +io.c +sim_tasks.c +stubs.c diff --git a/uisimulator/uisimulator.make b/uisimulator/uisimulator.make index 7efffe9b6c..b06b48c0d2 100644 --- a/uisimulator/uisimulator.make +++ b/uisimulator/uisimulator.make @@ -18,7 +18,11 @@ SIMOBJ = $(call c2obj,$(SIMSRC)) OTHER_SRC += $(SIMSRC) SIMLIB = $(BUILDDIR)/uisimulator/libuisimulator.a -UIBMP = $(BUILDDIR)/UI256.bmp +ifeq ($(MODELNAME), application) +UIBMP= +else +UIBMP=$(BUILDDIR)/UI256.bmp +endif .SECONDEXPANSION: # $$(OBJ) is not populated until after this -- cgit v1.2.3