summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/debug_menu.c2
-rw-r--r--firmware/SOURCES6
-rw-r--r--firmware/export/audiohw.h4
-rw-r--r--firmware/export/config.h3
-rw-r--r--firmware/export/config/application.h94
-rw-r--r--firmware/target/hosted/sdl/app/adc-target.h25
-rw-r--r--firmware/target/hosted/sdl/app/backlight-target.h25
-rw-r--r--firmware/target/hosted/sdl/app/button-application.c29
-rw-r--r--firmware/target/hosted/sdl/app/button-target.h68
-rw-r--r--firmware/target/hosted/sdl/app/i2c-target.h25
-rw-r--r--firmware/target/hosted/sdl/app/usb-target.h25
-rw-r--r--firmware/target/hosted/sdl/button-sdl.c4
-rw-r--r--firmware/target/hosted/sdl/buttonmap.h (renamed from uisimulator/buttonmap/buttonmap.h)1
-rw-r--r--firmware/target/hosted/sdl/key_to_touch-sdl.c (renamed from uisimulator/buttonmap/touchscreen.c)0
-rw-r--r--firmware/target/hosted/sdl/sim-ui-defines.h7
-rw-r--r--firmware/target/hosted/sdl/system-target.h1
-rwxr-xr-xtools/buildzip.pl9
-rwxr-xr-xtools/configure27
-rw-r--r--uisimulator/buttonmap/SOURCES3
-rw-r--r--uisimulator/common/SOURCES13
-rw-r--r--uisimulator/uisimulator.make6
21 files changed, 361 insertions, 16 deletions
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 <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/uisimulator/buttonmap/buttonmap.h b/firmware/target/hosted/sdl/buttonmap.h
index 2f14cea9c4..e90b8a40d4 100644
--- a/uisimulator/buttonmap/buttonmap.h
+++ b/firmware/target/hosted/sdl/buttonmap.h
@@ -34,6 +34,7 @@ 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);
diff --git a/uisimulator/buttonmap/touchscreen.c b/firmware/target/hosted/sdl/key_to_touch-sdl.c
index 90518c7c7e..90518c7c7e 100644
--- a/uisimulator/buttonmap/touchscreen.c
+++ b/firmware/target/hosted/sdl/key_to_touch-sdl.c
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 <<EOF
142) YH-925 ==Packard Bell== 130) Lyre proto 1
143) YP-S3 160) Vibe 500 131) Mini2440
- ==MPIO==
- 170) HD200
+ ==MPIO== == Application ==
+ 170) HD200 200) SDL 320x240
+
EOF
buildfor=`input`;
@@ -2600,6 +2601,28 @@ fi
t_model="hd200"
;;
+ 200|app*)
+ target_id=100
+ modelname="application"
+ target="-DAPPLICATION"
+ memory=32
+ uname=`uname`
+ simcc "sdl"
+ tool="cp "
+ boottool="cp "
+ bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
+ bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
+ output="rockbox"
+ bootoutput="bootloader-cowond2.bin"
+ appextra="recorder:gui:radio"
+ plugins=""
+ swcodec="yes"
+ # architecture, manufacturer and model for the target-tree build
+ t_cpu="hosted"
+ t_manufacturer="sdl"
+ t_model="app"
+ ;;
+
*)
echo "Please select a supported target platform!"
exit 7
diff --git a/uisimulator/buttonmap/SOURCES b/uisimulator/buttonmap/SOURCES
index f5a409b156..0fc9d16097 100644
--- a/uisimulator/buttonmap/SOURCES
+++ b/uisimulator/buttonmap/SOURCES
@@ -1,8 +1,5 @@
#ifdef SIMULATOR
buttonmaps.c
-#ifdef HAVE_TOUCHSCREEN
-touchscreen.c
-#endif
#if CONFIG_KEYPAD == GIGABEAT_PAD
gigabeat.c
#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
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