summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2017-09-16 23:29:50 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2017-09-17 00:03:45 +0200
commita0fca0c7bf3bd1c121667a1e66614646a6b96752 (patch)
treee5e53563357dd75a057531cad5f293f99c26fa57
parentac57f96838b53e574477d13bf41bc54711a70c21 (diff)
downloadrockbox-a0fca0c7bf3bd1c121667a1e66614646a6b96752.tar.gz
rockbox-a0fca0c7bf3bd1c121667a1e66614646a6b96752.zip
Add simulator support for the A860
This requires a few changes unrelated to the A860 because configure unsets APPLICATION but the NWZ is an application! Change-Id: Id91aa23193383ac95886b281653da5286edd9caf
-rw-r--r--apps/debug_menu.c2
-rw-r--r--firmware/SOURCES4
-rw-r--r--firmware/export/config/sonynwzlinux.h12
-rw-r--r--firmware/export/hostfs.h3
-rw-r--r--firmware/target/hosted/sdl/sim-ui-defines.h7
-rw-r--r--uisimulator/bitmaps/UI-sonynwza860.bmpbin0 -> 808734 bytes
-rw-r--r--uisimulator/buttonmap/SOURCES2
-rw-r--r--uisimulator/buttonmap/sony-nwza860.c65
8 files changed, 89 insertions, 6 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index 55454e0b94..5224dbe267 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -2594,7 +2594,7 @@ static const struct {
2594#endif 2594#endif
2595 { "Skin Engine RAM usage", dbg_skin_engine }, 2595 { "Skin Engine RAM usage", dbg_skin_engine },
2596#endif 2596#endif
2597#if (CONFIG_PLATFORM & PLATFORM_NATIVE) || defined(SONY_NWZ_LINUX) 2597#if (CONFIG_PLATFORM & PLATFORM_NATIVE) || (defined(SONY_NWZ_LINUX) && !defined(SIMULATOR))
2598 { "View HW info", dbg_hw_info }, 2598 { "View HW info", dbg_hw_info },
2599#endif 2599#endif
2600#if (CONFIG_PLATFORM & PLATFORM_NATIVE) 2600#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
diff --git a/firmware/SOURCES b/firmware/SOURCES
index 8ec17f7ec6..c29b5318d5 100644
--- a/firmware/SOURCES
+++ b/firmware/SOURCES
@@ -95,12 +95,11 @@ target/hosted/samsungypr/radio-ypr.c
95#endif 95#endif
96#endif 96#endif
97 97
98#ifdef SONY_NWZ_LINUX 98#if defined(SONY_NWZ_LINUX) && !defined(SIMULATOR)
99target/hosted/backtrace-glibc.c 99target/hosted/backtrace-glibc.c
100target/hosted/kernel-unix.c 100target/hosted/kernel-unix.c
101target/hosted/filesystem-unix.c 101target/hosted/filesystem-unix.c
102target/hosted/lc-unix.c 102target/hosted/lc-unix.c
103target/hosted/pcm-alsa.c
104target/hosted/sonynwz/lcd-nwz.c 103target/hosted/sonynwz/lcd-nwz.c
105target/hosted/sonynwz/button-nwz.c 104target/hosted/sonynwz/button-nwz.c
106target/hosted/sonynwz/system-nwz.c 105target/hosted/sonynwz/system-nwz.c
@@ -467,6 +466,7 @@ target/hosted/pcm-alsa.c
467#elif defined(HAVE_NWZ_LINUX_CODEC) 466#elif defined(HAVE_NWZ_LINUX_CODEC)
468drivers/audio/nwzlinux-codec.c 467drivers/audio/nwzlinux-codec.c
469target/hosted/alsa-controls.c 468target/hosted/alsa-controls.c
469target/hosted/pcm-alsa.c
470#elif defined(HAVE_SDL_AUDIO) 470#elif defined(HAVE_SDL_AUDIO)
471drivers/audio/sdl.c 471drivers/audio/sdl.c
472#if CONFIG_CODEC == SWCODEC 472#if CONFIG_CODEC == SWCODEC
diff --git a/firmware/export/config/sonynwzlinux.h b/firmware/export/config/sonynwzlinux.h
index 4c66651e6b..4d95ef9cdd 100644
--- a/firmware/export/config/sonynwzlinux.h
+++ b/firmware/export/config/sonynwzlinux.h
@@ -2,7 +2,9 @@
2 * This config file is for the Sony NWZ Linux based targets 2 * This config file is for the Sony NWZ Linux based targets
3 */ 3 */
4 4
5#ifndef SIMULATOR
5#define CONFIG_PLATFORM (PLATFORM_HOSTED) 6#define CONFIG_PLATFORM (PLATFORM_HOSTED)
7#endif
6 8
7/* define this if you have a bitmap LCD display */ 9/* define this if you have a bitmap LCD display */
8#define HAVE_LCD_BITMAP 10#define HAVE_LCD_BITMAP
@@ -64,10 +66,17 @@
64#define CONFIG_KEYPAD SONY_NWZ_PAD 66#define CONFIG_KEYPAD SONY_NWZ_PAD
65#define HAS_BUTTON_HOLD 67#define HAS_BUTTON_HOLD
66 68
69/** Non-simulator section **/
70#ifndef SIMULATOR
67/* We have usb power and can detect usb but it is handled by Linux */ 71/* We have usb power and can detect usb but it is handled by Linux */
68#define HAVE_USB_POWER 72#define HAVE_USB_POWER
69#define USB_NONE 73#define USB_NONE
70 74
75/* Audio codec */
76#define HAVE_NWZ_LINUX_CODEC
77
78#endif /* SIMULATOR */
79
71#define CONFIG_BATTERY_MEASURE VOLTAGE_MEASURE 80#define CONFIG_BATTERY_MEASURE VOLTAGE_MEASURE
72 81
73/* Linux controlls charging, we can monitor */ 82/* Linux controlls charging, we can monitor */
@@ -92,9 +101,6 @@
92/* Battery */ 101/* Battery */
93#define BATTERY_TYPES_COUNT 1 102#define BATTERY_TYPES_COUNT 1
94 103
95/* Audio codec */
96#define HAVE_NWZ_LINUX_CODEC
97
98/* special define to be use in various places */ 104/* special define to be use in various places */
99#define SONY_NWZ_LINUX 105#define SONY_NWZ_LINUX
100 106
diff --git a/firmware/export/hostfs.h b/firmware/export/hostfs.h
index a24d009ca9..fa916870f3 100644
--- a/firmware/export/hostfs.h
+++ b/firmware/export/hostfs.h
@@ -60,6 +60,9 @@ extern int hostfs_driver_type(int drive);
60# define hostfs_driver_type(drive) (STORAGE_NAND_NUM) 60# define hostfs_driver_type(drive) (STORAGE_NAND_NUM)
61# elif (CONFIG_STORAGE & STORAGE_RAMDISK) 61# elif (CONFIG_STORAGE & STORAGE_RAMDISK)
62# define hostfs_driver_type(drive) (STORAGE_RAMDISK_NUM) 62# define hostfs_driver_type(drive) (STORAGE_RAMDISK_NUM)
63/* we may have hostfs without application when building sims for applications! */
64# elif (CONFIG_STORAGE & STORAGE_HOSTFS)
65# define hostfs_driver_type(drive) (STORAGE_HOSTFS_NUM)
63# else 66# else
64# error Unknown storage driver 67# error Unknown storage driver
65# endif /* CONFIG_STORAGE */ 68# endif /* CONFIG_STORAGE */
diff --git a/firmware/target/hosted/sdl/sim-ui-defines.h b/firmware/target/hosted/sdl/sim-ui-defines.h
index 8f2a112cf9..d14f70bf99 100644
--- a/firmware/target/hosted/sdl/sim-ui-defines.h
+++ b/firmware/target/hosted/sdl/sim-ui-defines.h
@@ -508,6 +508,13 @@
508#define UI_LCD_POSX 46 508#define UI_LCD_POSX 46
509#define UI_LCD_POSY 40 509#define UI_LCD_POSY 40
510 510
511#elif defined(SONY_NWZA860)
512#define UI_TITLE "Sony NWZ-A860 Series"
513#define UI_WIDTH 390 /* width of GUI window */
514#define UI_HEIGHT 690/* height of GUI window */
515#define UI_LCD_POSX 78
516#define UI_LCD_POSY 92
517
511#elif defined(SIMULATOR) 518#elif defined(SIMULATOR)
512#error no UI defines 519#error no UI defines
513#endif 520#endif
diff --git a/uisimulator/bitmaps/UI-sonynwza860.bmp b/uisimulator/bitmaps/UI-sonynwza860.bmp
new file mode 100644
index 0000000000..c8b9b6335c
--- /dev/null
+++ b/uisimulator/bitmaps/UI-sonynwza860.bmp
Binary files differ
diff --git a/uisimulator/buttonmap/SOURCES b/uisimulator/buttonmap/SOURCES
index 7f361959f4..6acbd94624 100644
--- a/uisimulator/buttonmap/SOURCES
+++ b/uisimulator/buttonmap/SOURCES
@@ -81,5 +81,7 @@ sony-nwz.c
81samsung-ypr0.c 81samsung-ypr0.c
82#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD 82#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
83creative-zen.c 83creative-zen.c
84#elif CONFIG_KEYPAD == SONY_NWZA860_PAD
85sony-nwza860.c
84#endif 86#endif
85#endif /* SIMULATOR */ 87#endif /* SIMULATOR */
diff --git a/uisimulator/buttonmap/sony-nwza860.c b/uisimulator/buttonmap/sony-nwza860.c
new file mode 100644
index 0000000000..c117c0afb0
--- /dev/null
+++ b/uisimulator/buttonmap/sony-nwza860.c
@@ -0,0 +1,65 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2017 by Amaury Pouly
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ****************************************************************************/
21
22
23#include <SDL.h>
24#include "button.h"
25#include "buttonmap.h"
26
27int key_to_button(int keyboard_button)
28{
29 int new_btn = BUTTON_NONE;
30 switch (keyboard_button)
31 {
32 case SDLK_F1:
33 new_btn = BUTTON_REW;
34 break;
35 case SDLK_F2:
36 new_btn = BUTTON_FF;
37 break;
38 case SDLK_KP_PLUS:
39 new_btn = BUTTON_VOL_UP;
40 break;
41 case SDLK_KP_MINUS:
42 new_btn = BUTTON_VOL_DOWN;
43 break;
44 case SDLK_KP1:
45 case SDLK_HOME:
46 case SDLK_BACKSPACE:
47 new_btn = BUTTON_BACK;
48 break;
49 case SDLK_F3:
50 new_btn = BUTTON_PLAY;
51 break;
52 }
53 printf("btn: %d -> %x\n", keyboard_button, new_btn);
54 return new_btn;
55}
56
57struct button_map bm[] = {
58 { SDLK_F1, 368, 490, 30, "Rewind" },
59 { SDLK_F2, 368, 384, 30, "Fast Forward" },
60 { SDLK_BACKSPACE, 197, 651, 50, "Home" },
61 { SDLK_F3, 368, 435, 30, "Play" },
62 { SDLK_KP_MINUS, 368, 166, 30, "Volume -" },
63 { SDLK_KP_PLUS, 368, 226, 30, "Volume +" },
64 { 0, 0, 0, 0, "None" }
65};