diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/SOURCES | 6 | ||||
-rw-r--r-- | firmware/export/audiohw.h | 4 | ||||
-rw-r--r-- | firmware/export/config.h | 3 | ||||
-rw-r--r-- | firmware/export/config/application.h | 94 | ||||
-rw-r--r-- | firmware/target/hosted/sdl/app/adc-target.h | 25 | ||||
-rw-r--r-- | firmware/target/hosted/sdl/app/backlight-target.h | 25 | ||||
-rw-r--r-- | firmware/target/hosted/sdl/app/button-application.c | 29 | ||||
-rw-r--r-- | firmware/target/hosted/sdl/app/button-target.h | 68 | ||||
-rw-r--r-- | firmware/target/hosted/sdl/app/i2c-target.h | 25 | ||||
-rw-r--r-- | firmware/target/hosted/sdl/app/usb-target.h | 25 | ||||
-rw-r--r-- | firmware/target/hosted/sdl/button-sdl.c | 4 | ||||
-rw-r--r-- | firmware/target/hosted/sdl/buttonmap.h | 43 | ||||
-rw-r--r-- | firmware/target/hosted/sdl/key_to_touch-sdl.c | 96 | ||||
-rw-r--r-- | firmware/target/hosted/sdl/sim-ui-defines.h | 7 | ||||
-rw-r--r-- | firmware/target/hosted/sdl/system-target.h | 1 |
15 files changed, 453 insertions, 2 deletions
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 <SDL_audio.h> 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 <stdbool.h> +#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 <stdio.h> +#include <SDL.h> +#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" |