diff options
author | Simon Rothen <rothen@gmx.net> | 2014-08-30 13:15:53 +0200 |
---|---|---|
committer | Michael Giacomelli <giac2000@hotmail.com> | 2014-09-18 18:19:01 +0200 |
commit | 0b5ad60c26f30dc5363c21e436b73292c09ac567 (patch) | |
tree | 2d7cee2b2133218d59e0f462c9dbdbec8e88b2e2 /firmware/export | |
parent | 1f0fa0546647a191c52784a4a225982ffbd1af11 (diff) | |
download | rockbox-0b5ad60c26f30dc5363c21e436b73292c09ac567.tar.gz rockbox-0b5ad60c26f30dc5363c21e436b73292c09ac567.zip |
Introducing Targets iBasso DX50 & iBasso DX90
The port to for this two targets has been entirely developped by Ilia Sergachev (alias Il or xzcc). His source
can be found at https://bitbucket.org/isergachev/rockbox . The few necesary modifications for the DX90 port
was done by headwhacker form head-fi.org. Unfortunately i could not try out the final state of the DX90 port.
The port is hosted on android (without java) as standalone app. The official Firmware is required to run this port.
Ilia did modify the source files for the "android" target in the rockbox source to make the DX port work. The work I did
was to separate the code for DX50 (&DX90) from the android target.
On this Target Ilia used source from tinyalsa from AOSP. I did not touch that part of the code because I do not understand it.
What else I changed from Ilias sources besides the separation from the target "android":
* removed a dirty hack to keep backlight off
* changed value battery meter to voltage battery meter
* made all plugins compile (named target as "standalone") and added keymaps
* i added the graphics for the manual but did not do anything else for the manual yet
* minor optimizations
known bugs:
* timers are slowed donw when playback is active (tinyalsa related?)
* some minor bugs
Things to do:
* The main prolem will be how to install the app correctly. A guy called DOC2008 added a CWM (by androtab.info) to the
official firmware and Ilia made a CWM installation script and a dualboot selector (rbutils/ibassoboot, build with
ndk-build). We will have to find a way to install rockbox in a proper way without breaking any copyrights.
Maybe ADB is an option but it is not enable with OF by default. Patching the OF is probably the way to go.
* All the wiki and manual
to build:
needed: android ndk installed, android sdk installed with additional build-tools 19.1.0 installed
./tools/configure
select iBasso DX50 or iBasso DX90
make -j apk
the content of rockbox.zip/.rockbox needs to be copied to /system/rockbox/app_rockbox/rockbox/ (rockbox app not needed)
the content of libs/armeabi to /system/rockbox/lib/ (rockbox app needed)
The boot selector is needed as /system/bin/MangoPlayer and the iBasso app as /system/bin/MangoPlayer_original. There
is also the "vold" file. The one from OF does not work with DX50 rockbox (DX90 works!?), the one from Ilia is necessary.
Until we have found a proper way to install it, it can only be installed following the instructions of Ilia on his
bitbucket page, using the CWM-OF and his installation script package.
Change-Id: Ic4faaf84824c162aabcc08e492cee6e0068719d0
Reviewed-on: http://gerrit.rockbox.org/941
Tested: Chiwen Chang <rock1104.tw@yahoo.com.tw>
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
Diffstat (limited to 'firmware/export')
-rw-r--r-- | firmware/export/config.h | 5 | ||||
-rw-r--r-- | firmware/export/config/ibassodx50.h | 136 | ||||
-rw-r--r-- | firmware/export/config/ibassodx90.h | 136 | ||||
-rw-r--r-- | firmware/export/hosted_codec.h | 4 |
4 files changed, 280 insertions, 1 deletions
diff --git a/firmware/export/config.h b/firmware/export/config.h index a56dd32303..bf95dc4c09 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h | |||
@@ -164,6 +164,7 @@ | |||
164 | #define IHIFI_PAD 60 | 164 | #define IHIFI_PAD 60 |
165 | #define SAMSUNG_YPR1_PAD 61 | 165 | #define SAMSUNG_YPR1_PAD 61 |
166 | #define SAMSUNG_YH920_PAD 62 | 166 | #define SAMSUNG_YH920_PAD 62 |
167 | #define DX50_PAD 63 | ||
167 | 168 | ||
168 | /* CONFIG_REMOTE_KEYPAD */ | 169 | /* CONFIG_REMOTE_KEYPAD */ |
169 | #define H100_REMOTE 1 | 170 | #define H100_REMOTE 1 |
@@ -575,6 +576,10 @@ Lyre prototype 1 */ | |||
575 | #include "config/creativezenxfistyle.h" | 576 | #include "config/creativezenxfistyle.h" |
576 | #elif defined(SAMSUNG_YPR1) | 577 | #elif defined(SAMSUNG_YPR1) |
577 | #include "config/samsungypr1.h" | 578 | #include "config/samsungypr1.h" |
579 | #elif defined(DX50) | ||
580 | #include "config/ibassodx50.h" | ||
581 | #elif defined(DX90) | ||
582 | #include "config/ibassodx90.h" | ||
578 | #else | 583 | #else |
579 | /* no known platform */ | 584 | /* no known platform */ |
580 | #endif | 585 | #endif |
diff --git a/firmware/export/config/ibassodx50.h b/firmware/export/config/ibassodx50.h new file mode 100644 index 0000000000..652377cc6c --- /dev/null +++ b/firmware/export/config/ibassodx50.h | |||
@@ -0,0 +1,136 @@ | |||
1 | /* | ||
2 | * This config file is for Rockbox as an application on Android | ||
3 | */ | ||
4 | |||
5 | /* We don't run on hardware directly */ | ||
6 | #define CONFIG_PLATFORM (PLATFORM_HOSTED|PLATFORM_ANDROID) | ||
7 | |||
8 | /* For Rolo and boot loader */ | ||
9 | #define MODEL_NUMBER 94 | ||
10 | |||
11 | #define MODEL_NAME "iBasso DX50" | ||
12 | |||
13 | #define USB_NONE | ||
14 | |||
15 | /* define this if you have a bitmap LCD display */ | ||
16 | #define HAVE_LCD_BITMAP | ||
17 | |||
18 | /* define this if you have a colour LCD */ | ||
19 | #define HAVE_LCD_COLOR | ||
20 | |||
21 | /* define this if you want album art for this target */ | ||
22 | #define HAVE_ALBUMART | ||
23 | |||
24 | /* define this to enable bitmap scaling */ | ||
25 | #define HAVE_BMP_SCALING | ||
26 | |||
27 | /* define this to enable JPEG decoding */ | ||
28 | #define HAVE_JPEG | ||
29 | |||
30 | /* define this if you have access to the quickscreen */ | ||
31 | #define HAVE_QUICKSCREEN | ||
32 | |||
33 | /* define this if you would like tagcache to build on this target */ | ||
34 | #define HAVE_TAGCACHE | ||
35 | |||
36 | /* LCD dimensions */ | ||
37 | #define LCD_WIDTH 320 | ||
38 | #define LCD_HEIGHT 240 | ||
39 | #define LCD_DPI 166 | ||
40 | #define LCD_DEPTH 16 | ||
41 | #define LCD_PIXELFORMAT RGB565 | ||
42 | |||
43 | #define HAVE_LCD_ENABLE | ||
44 | |||
45 | /* define this to indicate your device's keypad */ | ||
46 | #define HAVE_TOUCHSCREEN | ||
47 | #define HAVE_BUTTON_DATA | ||
48 | |||
49 | /* define this if you have RTC RAM available for settings */ | ||
50 | //#define HAVE_RTC_RAM | ||
51 | |||
52 | /* define this if you have a real-time clock */ | ||
53 | //#define CONFIG_RTC APPLICATION | ||
54 | |||
55 | /* Define this if you have a software controlled poweroff */ | ||
56 | #define HAVE_SW_POWEROFF | ||
57 | |||
58 | /* The number of bytes reserved for loadable codecs */ | ||
59 | #define CODEC_SIZE 0x100000 | ||
60 | |||
61 | /* The number of bytes reserved for loadable plugins */ | ||
62 | #define PLUGIN_BUFFER_SIZE 0x160000 | ||
63 | |||
64 | #define AB_REPEAT_ENABLE | ||
65 | |||
66 | /* Define this for LCD backlight available */ | ||
67 | #define HAVE_BACKLIGHT | ||
68 | #define HAVE_BACKLIGHT_BRIGHTNESS | ||
69 | |||
70 | /* Main LCD backlight brightness range and defaults */ | ||
71 | #define MIN_BRIGHTNESS_SETTING 4 | ||
72 | #define MAX_BRIGHTNESS_SETTING 255 | ||
73 | #define DEFAULT_BRIGHTNESS_SETTING 255 | ||
74 | |||
75 | /* Which backlight fading type? */ | ||
76 | #define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING | ||
77 | |||
78 | /* Define this if you do software codec */ | ||
79 | #define CONFIG_CODEC SWCODEC | ||
80 | |||
81 | //#define HAVE_MULTIMEDIA_KEYS | ||
82 | #define CONFIG_KEYPAD DX50_PAD | ||
83 | |||
84 | /* define this if the target has volume keys which can be used in the lists */ | ||
85 | #define HAVE_VOLUME_IN_LIST | ||
86 | |||
87 | /* define this if the host platform can change volume outside of rockbox */ | ||
88 | //#define PLATFORM_HAS_VOLUME_CHANGE | ||
89 | |||
90 | #define HAVE_SW_TONE_CONTROLS | ||
91 | |||
92 | #define HAVE_SW_VOLUME_CONTROL | ||
93 | |||
94 | #define BATTERY_CAPACITY_DEFAULT 2100 /* default battery capacity */ | ||
95 | #define BATTERY_CAPACITY_MIN 1700 /* min. capacity selectable */ | ||
96 | #define BATTERY_CAPACITY_MAX 3200 /* max. capacity selectable */ | ||
97 | #define BATTERY_CAPACITY_INC 50 /* capacity increment */ | ||
98 | #define BATTERY_TYPES_COUNT 1 /* only one type */ | ||
99 | |||
100 | #define CONFIG_BATTERY_MEASURE VOLTAGE_MEASURE | ||
101 | |||
102 | #define CONFIG_CHARGING CHARGING_SIMPLE | ||
103 | |||
104 | #define NO_LOW_BATTERY_SHUTDOWN | ||
105 | |||
106 | /* Define current usage levels. */ | ||
107 | #define CURRENT_NORMAL 210 /* 10 hours from a 2100 mAh battery */ | ||
108 | #define CURRENT_BACKLIGHT 30 /* TBD */ | ||
109 | #define CURRENT_RECORD 0 /* no recording */ | ||
110 | |||
111 | /* Define this to the CPU frequency */ | ||
112 | /* | ||
113 | #define CPU_FREQ 48000000 | ||
114 | */ | ||
115 | |||
116 | /* define this if the hardware can be powered off while charging */ | ||
117 | #define HAVE_POWEROFF_WHILE_CHARGING | ||
118 | |||
119 | |||
120 | /* Offset ( in the firmware file's header ) to the file CRC */ | ||
121 | #define FIRMWARE_OFFSET_FILE_CRC 0 | ||
122 | |||
123 | /* Offset ( in the firmware file's header ) to the real data */ | ||
124 | #define FIRMWARE_OFFSET_FILE_DATA 8 | ||
125 | |||
126 | #define CONFIG_LCD LCD_COWOND2 | ||
127 | |||
128 | /* Define this if a programmable hotkey is mapped */ | ||
129 | #define HAVE_HOTKEY | ||
130 | |||
131 | #define BOOTDIR "/.rockbox" | ||
132 | |||
133 | /* No special storage */ | ||
134 | #define CONFIG_STORAGE STORAGE_HOSTFS | ||
135 | #define HAVE_STORAGE_FLUSH | ||
136 | |||
diff --git a/firmware/export/config/ibassodx90.h b/firmware/export/config/ibassodx90.h new file mode 100644 index 0000000000..d560f3e10b --- /dev/null +++ b/firmware/export/config/ibassodx90.h | |||
@@ -0,0 +1,136 @@ | |||
1 | /* | ||
2 | * This config file is for Rockbox as an application on Android | ||
3 | */ | ||
4 | |||
5 | /* We don't run on hardware directly */ | ||
6 | #define CONFIG_PLATFORM (PLATFORM_HOSTED|PLATFORM_ANDROID) | ||
7 | |||
8 | /* For Rolo and boot loader */ | ||
9 | #define MODEL_NUMBER 95 | ||
10 | |||
11 | #define MODEL_NAME "iBasso DX90" | ||
12 | |||
13 | #define USB_NONE | ||
14 | |||
15 | /* define this if you have a bitmap LCD display */ | ||
16 | #define HAVE_LCD_BITMAP | ||
17 | |||
18 | /* define this if you have a colour LCD */ | ||
19 | #define HAVE_LCD_COLOR | ||
20 | |||
21 | /* define this if you want album art for this target */ | ||
22 | #define HAVE_ALBUMART | ||
23 | |||
24 | /* define this to enable bitmap scaling */ | ||
25 | #define HAVE_BMP_SCALING | ||
26 | |||
27 | /* define this to enable JPEG decoding */ | ||
28 | #define HAVE_JPEG | ||
29 | |||
30 | /* define this if you have access to the quickscreen */ | ||
31 | #define HAVE_QUICKSCREEN | ||
32 | |||
33 | /* define this if you would like tagcache to build on this target */ | ||
34 | #define HAVE_TAGCACHE | ||
35 | |||
36 | /* LCD dimensions */ | ||
37 | #define LCD_WIDTH 320 | ||
38 | #define LCD_HEIGHT 240 | ||
39 | #define LCD_DPI 166 | ||
40 | #define LCD_DEPTH 16 | ||
41 | #define LCD_PIXELFORMAT RGB565 | ||
42 | |||
43 | #define HAVE_LCD_ENABLE | ||
44 | |||
45 | /* define this to indicate your device's keypad */ | ||
46 | #define HAVE_TOUCHSCREEN | ||
47 | #define HAVE_BUTTON_DATA | ||
48 | |||
49 | /* define this if you have RTC RAM available for settings */ | ||
50 | //#define HAVE_RTC_RAM | ||
51 | |||
52 | /* define this if you have a real-time clock */ | ||
53 | //#define CONFIG_RTC APPLICATION | ||
54 | |||
55 | /* Define this if you have a software controlled poweroff */ | ||
56 | #define HAVE_SW_POWEROFF | ||
57 | |||
58 | /* The number of bytes reserved for loadable codecs */ | ||
59 | #define CODEC_SIZE 0x100000 | ||
60 | |||
61 | /* The number of bytes reserved for loadable plugins */ | ||
62 | #define PLUGIN_BUFFER_SIZE 0x160000 | ||
63 | |||
64 | #define AB_REPEAT_ENABLE | ||
65 | |||
66 | /* Define this for LCD backlight available */ | ||
67 | #define HAVE_BACKLIGHT | ||
68 | #define HAVE_BACKLIGHT_BRIGHTNESS | ||
69 | |||
70 | /* Main LCD backlight brightness range and defaults */ | ||
71 | #define MIN_BRIGHTNESS_SETTING 4 | ||
72 | #define MAX_BRIGHTNESS_SETTING 255 | ||
73 | #define DEFAULT_BRIGHTNESS_SETTING 255 | ||
74 | |||
75 | /* Which backlight fading type? */ | ||
76 | #define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING | ||
77 | |||
78 | /* Define this if you do software codec */ | ||
79 | #define CONFIG_CODEC SWCODEC | ||
80 | |||
81 | //#define HAVE_MULTIMEDIA_KEYS | ||
82 | #define CONFIG_KEYPAD DX50_PAD | ||
83 | |||
84 | /* define this if the target has volume keys which can be used in the lists */ | ||
85 | #define HAVE_VOLUME_IN_LIST | ||
86 | |||
87 | /* define this if the host platform can change volume outside of rockbox */ | ||
88 | //#define PLATFORM_HAS_VOLUME_CHANGE | ||
89 | |||
90 | #define HAVE_SW_TONE_CONTROLS | ||
91 | |||
92 | #define HAVE_SW_VOLUME_CONTROL | ||
93 | |||
94 | #define BATTERY_CAPACITY_DEFAULT 2100 /* default battery capacity */ | ||
95 | #define BATTERY_CAPACITY_MIN 1700 /* min. capacity selectable */ | ||
96 | #define BATTERY_CAPACITY_MAX 3200 /* max. capacity selectable */ | ||
97 | #define BATTERY_CAPACITY_INC 50 /* capacity increment */ | ||
98 | #define BATTERY_TYPES_COUNT 1 /* only one type */ | ||
99 | |||
100 | #define CONFIG_BATTERY_MEASURE VOLTAGE_MEASURE | ||
101 | |||
102 | #define CONFIG_CHARGING CHARGING_SIMPLE | ||
103 | |||
104 | #define NO_LOW_BATTERY_SHUTDOWN | ||
105 | |||
106 | /* Define current usage levels. */ | ||
107 | #define CURRENT_NORMAL 210 /* 10 hours from a 2100 mAh battery */ | ||
108 | #define CURRENT_BACKLIGHT 30 /* TBD */ | ||
109 | #define CURRENT_RECORD 0 /* no recording */ | ||
110 | |||
111 | /* Define this to the CPU frequency */ | ||
112 | /* | ||
113 | #define CPU_FREQ 48000000 | ||
114 | */ | ||
115 | |||
116 | /* define this if the hardware can be powered off while charging */ | ||
117 | #define HAVE_POWEROFF_WHILE_CHARGING | ||
118 | |||
119 | |||
120 | /* Offset ( in the firmware file's header ) to the file CRC */ | ||
121 | #define FIRMWARE_OFFSET_FILE_CRC 0 | ||
122 | |||
123 | /* Offset ( in the firmware file's header ) to the real data */ | ||
124 | #define FIRMWARE_OFFSET_FILE_DATA 8 | ||
125 | |||
126 | #define CONFIG_LCD LCD_COWOND2 | ||
127 | |||
128 | /* Define this if a programmable hotkey is mapped */ | ||
129 | #define HAVE_HOTKEY | ||
130 | |||
131 | #define BOOTDIR "/.rockbox" | ||
132 | |||
133 | /* No special storage */ | ||
134 | #define CONFIG_STORAGE STORAGE_HOSTFS | ||
135 | #define HAVE_STORAGE_FLUSH | ||
136 | |||
diff --git a/firmware/export/hosted_codec.h b/firmware/export/hosted_codec.h index f5e92ed297..00ab099772 100644 --- a/firmware/export/hosted_codec.h +++ b/firmware/export/hosted_codec.h | |||
@@ -25,7 +25,9 @@ | |||
25 | && !(CONFIG_PLATFORM & PLATFORM_MAEMO5) | 25 | && !(CONFIG_PLATFORM & PLATFORM_MAEMO5) |
26 | AUDIOHW_SETTING(VOLUME, "dB", 0, 1, -80, 0, 0) | 26 | AUDIOHW_SETTING(VOLUME, "dB", 0, 1, -80, 0, 0) |
27 | #else | 27 | #else |
28 | #if !defined(DX50) && !defined(DX90) | ||
28 | #define AUDIOHW_CAPS (MONO_VOL_CAP) | 29 | #define AUDIOHW_CAPS (MONO_VOL_CAP) |
30 | #endif | ||
29 | AUDIOHW_SETTING(VOLUME, "dB", 0, 1, -99, 0, 0) | 31 | AUDIOHW_SETTING(VOLUME, "dB", 0, 1, -99, 0, 0) |
30 | #endif /* CONFIG_PLATFORM & PLATFORM_SDL */ | 32 | #endif /* CONFIG_PLATFORM & PLATFORM_SDL */ |
31 | 33 | ||
@@ -50,4 +52,4 @@ AUDIOHW_SETTING(TREBLE_CUTOFF, "", 0, 1, 1, 4, 1) | |||
50 | #endif | 52 | #endif |
51 | #endif /* CONFIG_PLATFORM & PLATFORM_ANDROID */ | 53 | #endif /* CONFIG_PLATFORM & PLATFORM_ANDROID */ |
52 | 54 | ||
53 | #endif /* HOSTED_CODEC_H */ \ No newline at end of file | 55 | #endif /* HOSTED_CODEC_H */ |