forked from len0rd/rockbox
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
This commit is contained in:
parent
9da707955d
commit
31b5c471ae
21 changed files with 361 additions and 16 deletions
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
94
firmware/export/config/application.h
Normal file
94
firmware/export/config/application.h
Normal file
|
@ -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
|
25
firmware/target/hosted/sdl/app/adc-target.h
Normal file
25
firmware/target/hosted/sdl/app/adc-target.h
Normal file
|
@ -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__ */
|
25
firmware/target/hosted/sdl/app/backlight-target.h
Normal file
25
firmware/target/hosted/sdl/app/backlight-target.h
Normal file
|
@ -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__ */
|
29
firmware/target/hosted/sdl/app/button-application.c
Normal file
29
firmware/target/hosted/sdl/app/button-application.c
Normal file
|
@ -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;
|
||||
}
|
68
firmware/target/hosted/sdl/app/button-target.h
Normal file
68
firmware/target/hosted/sdl/app/button-target.h
Normal file
|
@ -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_ */
|
25
firmware/target/hosted/sdl/app/i2c-target.h
Normal file
25
firmware/target/hosted/sdl/app/i2c-target.h
Normal file
|
@ -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__ */
|
25
firmware/target/hosted/sdl/app/usb-target.h
Normal file
25
firmware/target/hosted/sdl/app/usb-target.h
Normal file
|
@ -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__ */
|
|
@ -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
|
||||
|
|
|
@ -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);
|
|
@ -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
|
||||
|
|
1
firmware/target/hosted/sdl/system-target.h
Normal file
1
firmware/target/hosted/sdl/system-target.h
Normal file
|
@ -0,0 +1 @@
|
|||
#include "system-sdl.h"
|
|
@ -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"
|
||||
}
|
||||
if (!$samedir) {
|
||||
system("cp -r $rbdir \"$install\" >/dev/null");
|
||||
}
|
||||
}
|
||||
else {
|
||||
system("$ziptool $output $rbdir $target >/dev/null");
|
||||
}
|
||||
|
||||
# remove the $rbdir afterwards
|
||||
if (!$samedir) {
|
||||
rmtree($rbdir);
|
||||
}
|
||||
};
|
||||
|
||||
if(!$exe) {
|
||||
|
|
27
tools/configure
vendored
27
tools/configure
vendored
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
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
|
||||
powermgmt-sim.c
|
||||
backlight-sim.c
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue