diff --git a/apps/SOURCES b/apps/SOURCES
index 918fa5d3b9..84f2eecbe2 100644
--- a/apps/SOURCES
+++ b/apps/SOURCES
@@ -212,4 +212,6 @@ keymaps/keymap-hdd1630.c
keymaps/keymap-iaudio67.c
#elif CONFIG_KEYPAD == LOGIK_DAX_PAD
keymaps/keymap-logikdax.c
+#elif CONFIG_KEYPAD == SANSA_FUZE_PAD
+keymaps/keymap-fuze.c
#endif
diff --git a/apps/lang/bulgarian.lang b/apps/lang/bulgarian.lang
index 349c382c81..f598563faf 100644
--- a/apps/lang/bulgarian.lang
+++ b/apps/lang/bulgarian.lang
@@ -10221,17 +10221,17 @@
*: none
button_light: "Изключване на осветяването на бутоните"
- e200*: "Изключване на осветяването на колелото"
+ fuze,e200*: "Изключване на осветяването на колелото"
*: none
button_light: ""
- e200*: ""
+ fuze,e200*: ""
diff --git a/apps/lang/catala.lang b/apps/lang/catala.lang
index ae60e44e98..f4ccec9408 100644
--- a/apps/lang/catala.lang
+++ b/apps/lang/catala.lang
@@ -3828,17 +3828,17 @@
*: none
button_light: "Apagat de llum de botons"
- e200*: "Apagat de llum de roda"
+ fuze,e200*: "Apagat de llum de roda"
*: none
button_light: "Apagat de llum de botons"
- e200*: "Apagat de llum de roda"
+ fuze,e200*: "Apagat de llum de roda"
diff --git a/apps/lang/chinese-simp.lang b/apps/lang/chinese-simp.lang
index eee223ef07..dcaedd8ac0 100644
--- a/apps/lang/chinese-simp.lang
+++ b/apps/lang/chinese-simp.lang
@@ -10687,17 +10687,17 @@
*: none
button_light: "按键背光自动关闭时滞"
- e200*: "转盘背光自动关闭时滞"
+ fuze,e200*: "转盘背光自动关闭时滞"
*: none
button_light: "按键背光自动关闭时滞"
- e200*: "转盘背光自动关闭时滞"
+ fuze,e200*: "转盘背光自动关闭时滞"
diff --git a/apps/lang/chinese-trad.lang b/apps/lang/chinese-trad.lang
index 153f368b6a..3c5b3d9ecc 100644
--- a/apps/lang/chinese-trad.lang
+++ b/apps/lang/chinese-trad.lang
@@ -10704,15 +10704,15 @@
user:
*: none
- e200*: "轉盤燈自動關時間"
+ fuze,e200*: "轉盤燈自動關時間"
*: none
- e200*: "Wheel Light Timeout"
+ fuze,e200*: "Wheel Light Timeout"
diff --git a/apps/lang/czech.lang b/apps/lang/czech.lang
index c852813a11..db023d44e0 100644
--- a/apps/lang/czech.lang
+++ b/apps/lang/czech.lang
@@ -3835,15 +3835,15 @@
user:
*: none
- e200*: "Časový limit osvětlení kolečka"
+ fuze,e200*: "Časový limit osvětlení kolečka"
*: none
- e200*: "Časový limit osvětlení kolečka"
+ fuze,e200*: "Časový limit osvětlení kolečka"
diff --git a/apps/lang/dansk.lang b/apps/lang/dansk.lang
index bd201da686..c96c6b4046 100644
--- a/apps/lang/dansk.lang
+++ b/apps/lang/dansk.lang
@@ -9933,17 +9933,17 @@
*: none
button_light: "Knap-lys sluk"
- e200*: "Hjul-lys sluk"
+ fuze,e200*: "Hjul-lys sluk"
*: none
button_light: "Knap-lys sluk"
- e200*: "Hjul-lys sluk"
+ fuze,e200*: "Hjul-lys sluk"
diff --git a/apps/lang/deutsch.lang b/apps/lang/deutsch.lang
index b05342d4c7..fb3ef520ec 100644
--- a/apps/lang/deutsch.lang
+++ b/apps/lang/deutsch.lang
@@ -3850,17 +3850,17 @@
*: none
button_light: "Tastenbeleuchtungsdauer"
- e200*: "Scrollradbeleuchtungsdauer"
+ fuze,e200*: "Scrollradbeleuchtungsdauer"
*: none
button_light: "Tastenbeleuchtungsdauer"
- e200*: "Scrollradbeleuchtungsdauer"
+ fuze,e200*: "Scrollradbeleuchtungsdauer"
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index 6b8e0850a4..a7b5ef72ed 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -3924,17 +3924,17 @@
*: none
button_light: "Button Light Timeout"
- e200*: "Wheel Light Timeout"
+ fuze,e200*: "Wheel Light Timeout"
*: none
button_light: "Button Light Timeout"
- e200*: "Wheel Light Timeout"
+ fuze,e200*: "Wheel Light Timeout"
diff --git a/apps/lang/espanol.lang b/apps/lang/espanol.lang
index 365c635da2..8afa06239a 100644
--- a/apps/lang/espanol.lang
+++ b/apps/lang/espanol.lang
@@ -11181,17 +11181,17 @@
*: none
button_light: "Tiempo de espera en la luz del botón"
- e200*: "Tiempo de espera en la luz de la rueda"
+ fuze,e200*: "Tiempo de espera en la luz de la rueda"
*: none
button_light: "Tiempo de espera en la luz del botón"
- e200*: "Tiempo de espera en la luz de la rueda"
+ fuze,e200*: "Tiempo de espera en la luz de la rueda"
diff --git a/apps/lang/finnish.lang b/apps/lang/finnish.lang
index 267f0d3930..2754970634 100644
--- a/apps/lang/finnish.lang
+++ b/apps/lang/finnish.lang
@@ -9974,17 +9974,17 @@
*: none
button_light: "Painikevalon aikakatkaisu"
- e200*: "Rullavalon aikakatkaisu"
+ fuze,e200*: "Rullavalon aikakatkaisu"
*: none
button_light: "Painikevalon aikakatkaisu"
- e200*: "Rullavalon aikakatkaisu"
+ fuze,e200*: "Rullavalon aikakatkaisu"
diff --git a/apps/lang/francais.lang b/apps/lang/francais.lang
index ba6a456817..56d95ce9a4 100644
--- a/apps/lang/francais.lang
+++ b/apps/lang/francais.lang
@@ -3880,17 +3880,17 @@
*: none
button_light: "Durée de l'éclairage des touches"
- e200*: "Durée de l'éclairage de la molette"
+ fuze,e200*: "Durée de l'éclairage de la molette"
*: none
button_light: "Durée de l'éclairage des touches"
- e200*: "Durée de l'éclairage de la molette"
+ fuze,e200*: "Durée de l'éclairage de la molette"
diff --git a/apps/lang/greek.lang b/apps/lang/greek.lang
index c5ba1f23e5..032f648f17 100644
--- a/apps/lang/greek.lang
+++ b/apps/lang/greek.lang
@@ -3838,17 +3838,17 @@
*: none
button_light: "Χρόνος σβησίματος πλήκτρων"
- e200*: "Χρόνος σβησίματος τροχού"
+ fuze,e200*: "Χρόνος σβησίματος τροχού"
*: none
button_light: "Χρόνος σβησίματος πλήκτρων"
- e200*: "Χρόνος σβησίματος τροχού"
+ fuze,e200*: "Χρόνος σβησίματος τροχού"
diff --git a/apps/lang/hebrew.lang b/apps/lang/hebrew.lang
index b33c081a14..b8e67ad51d 100644
--- a/apps/lang/hebrew.lang
+++ b/apps/lang/hebrew.lang
@@ -3832,17 +3832,17 @@
*: none
button_light: "זמן תאורת כפתור"
- e200*: "זמן תאורת הגלגל"
+ fuze,e200*: "זמן תאורת הגלגל"
*: none
button_light: "Button Light Timeout"
- e200*: "Wheel Light Timeout"
+ fuze,e200*: "Wheel Light Timeout"
diff --git a/apps/lang/italiano.lang b/apps/lang/italiano.lang
index 38daa868a7..22e88b263f 100644
--- a/apps/lang/italiano.lang
+++ b/apps/lang/italiano.lang
@@ -3853,17 +3853,17 @@
*: none
button_light: "Tempo di spegnimento illuminazione tasti"
- e200*: "Tempo di spegnimento illuminazione rotella"
+ fuze,e200*: "Tempo di spegnimento illuminazione rotella"
*: none
button_light: "Tempo di spegnimento illuminazione tasti"
- e200*: "Tempo di spegnimento illuminazione rotella"
+ fuze,e200*: "Tempo di spegnimento illuminazione rotella"
diff --git a/apps/lang/japanese.lang b/apps/lang/japanese.lang
index 7eee5026db..f190c9bf95 100644
--- a/apps/lang/japanese.lang
+++ b/apps/lang/japanese.lang
@@ -3834,17 +3834,17 @@
*: none
button_light: "ボタンライトのタイムアウト"
- e200*: "ホイールライトのタイムアウト"
+ fuze,e200*: "ホイールライトのタイムアウト"
*: none
button_light: "ボタンライトのタイムアウト"
- e200*: "ホイールライトのタイムアウト"
+ fuze,e200*: "ホイールライトのタイムアウト"
diff --git a/apps/lang/magyar.lang b/apps/lang/magyar.lang
index c381c74510..f652efff67 100644
--- a/apps/lang/magyar.lang
+++ b/apps/lang/magyar.lang
@@ -3826,18 +3826,18 @@
user:
*: none
- e200*: "Kerék világításának hossza"
- clip,c200,gigabeatf,mrobe100: "Gomb világításának hossza"
+ button_light: "Gomb világításának hossza"
+ fuze,e200*: "Kerék világításának hossza"
*: none
- e200*: "Wheel Light Timeout"
- clip,c200,gigabeatf,mrobe100: "Button Light Timeout"
+ button_light: "Button Light Timeout"
+ fuze,e200*: "Wheel Light Timeout"
diff --git a/apps/lang/nederlands.lang b/apps/lang/nederlands.lang
index 98738c8fe5..faab19376a 100644
--- a/apps/lang/nederlands.lang
+++ b/apps/lang/nederlands.lang
@@ -10276,17 +10276,17 @@
*: none
button_light: "Knoppen Licht Vertraging"
- e200*: "Wiel Licht Vertraging"
+ fuze,e200*: "Wiel Licht Vertraging"
*: none
button_light: "Knoppen Licht Vertraging"
- e200*: "Wiel Licht Vertraging"
+ fuze,e200*: "Wiel Licht Vertraging"
diff --git a/apps/lang/norsk-nynorsk.lang b/apps/lang/norsk-nynorsk.lang
index 41bae369fd..bb0add89fd 100644
--- a/apps/lang/norsk-nynorsk.lang
+++ b/apps/lang/norsk-nynorsk.lang
@@ -9871,17 +9871,17 @@
*: none
button_light: "Avbrotstid for knappelys"
- e200*: "Avbrotstid for hjullys"
+ fuze,e200*: "Avbrotstid for hjullys"
*: none
button_light: "Avbrotstid for knappelys"
- e200*: "Avbrotstid for hjullys"
+ fuze,e200*: "Avbrotstid for hjullys"
diff --git a/apps/lang/norsk.lang b/apps/lang/norsk.lang
index e4027e6f2f..ee366360fe 100644
--- a/apps/lang/norsk.lang
+++ b/apps/lang/norsk.lang
@@ -10023,17 +10023,17 @@
*: none
button_light: "Slukketid for knapplys"
- e200*: "Slukketid for hjullys"
+ fuze,e200*: "Slukketid for hjullys"
*: none
button_light: "Tid før lys på knapper slukker"
- e200*: "Tid før lys på hjul slukker"
+ fuze,e200*: "Tid før lys på hjul slukker"
diff --git a/apps/lang/polski.lang b/apps/lang/polski.lang
index f2e1ae1855..ee426df897 100644
--- a/apps/lang/polski.lang
+++ b/apps/lang/polski.lang
@@ -3841,17 +3841,17 @@
*: none
button_light: "Wygaszanie klawiszy"
- e200*: "Wygaszanie koła sterującego"
+ fuze,e200*: "Wygaszanie koła sterującego"
*: none
button_light: "Wygaszanie klawiszy"
- e200*: "Wygaszanie koła sterującego"
+ fuze,e200*: "Wygaszanie koła sterującego"
diff --git a/apps/lang/portugues-brasileiro.lang b/apps/lang/portugues-brasileiro.lang
index c1e256bdb7..82cec23368 100644
--- a/apps/lang/portugues-brasileiro.lang
+++ b/apps/lang/portugues-brasileiro.lang
@@ -3851,17 +3851,17 @@
*: none
button_light: "Duração da Luz do Botão"
- e200*: "Duração da Luz da Roda"
+ fuze,e200*: "Duração da Luz da Roda"
*: none
button_light: "Duração da Luz do Botão"
- e200*: "Duração da Luz da Roda"
+ fuze,e200*: "Duração da Luz da Roda"
diff --git a/apps/lang/romaneste.lang b/apps/lang/romaneste.lang
index f0b63543a1..322dc115cb 100644
--- a/apps/lang/romaneste.lang
+++ b/apps/lang/romaneste.lang
@@ -10303,17 +10303,17 @@
*: none
button_light: "Timp iluminare butoane"
- e200*: "Timp iluminare rotita"
+ fuze,e200*: "Timp iluminare rotita"
*: none
button_light: "Timp iluminare butoane"
- e200*: "Timp iluminare rotita"
+ fuze,e200*: "Timp iluminare rotita"
diff --git a/apps/lang/russian.lang b/apps/lang/russian.lang
index 5f2f265b7b..e489503d17 100644
--- a/apps/lang/russian.lang
+++ b/apps/lang/russian.lang
@@ -10945,17 +10945,17 @@
*: none
button_light: "Таймаут подсветки клавиш"
- e200*: "Таймаут подсветки колёсика"
+ fuze,e200*: "Таймаут подсветки колёсика"
*: none
button_light: "Таймаут подсветки клавиш"
- e200*: "Таймаут подсветки колёсика"
+ fuze,e200*: "Таймаут подсветки колёсика"
diff --git a/apps/lang/svenska.lang b/apps/lang/svenska.lang
index d779dd9f41..03312ecf3e 100644
--- a/apps/lang/svenska.lang
+++ b/apps/lang/svenska.lang
@@ -3852,17 +3852,17 @@
*: none
button_light: "Knappbelysning"
- e200*: "Hjulbelysning"
+ fuze,e200*: "Hjulbelysning"
*: none
button_light: "Knappbelysning"
- e200*: "Hjulbelysning"
+ fuze,e200*: "Hjulbelysning"
diff --git a/apps/lang/tagalog.lang b/apps/lang/tagalog.lang
index 17c85ac68d..103afdf1f5 100644
--- a/apps/lang/tagalog.lang
+++ b/apps/lang/tagalog.lang
@@ -3841,17 +3841,17 @@
*: none
button_light: "Pahintuin buttones sa ilaw"
- e200*: "Pahintuin gulong sa ilaw"
+ fuze,e200*: "Pahintuin gulong sa ilaw"
*: none
button_light: ""
- e200*: "Wheel Light Timeout"
+ fuze,e200*: "Wheel Light Timeout"
diff --git a/apps/lang/thai.lang b/apps/lang/thai.lang
index 2d13ffa09e..a8d1a6f407 100644
--- a/apps/lang/thai.lang
+++ b/apps/lang/thai.lang
@@ -3834,15 +3834,15 @@
user:
*: none
- e200*: "เวลาเปิดไฟล้อหมุน"
+ fuze,e200*: "เวลาเปิดไฟล้อหมุน"
*: none
- e200*: "Wheel Light Timeout"
+ fuze,e200*: "Wheel Light Timeout"
diff --git a/firmware/target/arm/as3525/sansa-fuze/backlight-target.h b/firmware/target/arm/as3525/sansa-fuze/backlight-target.h
index db2cecc07a..ddaa7f2094 100644
--- a/firmware/target/arm/as3525/sansa-fuze/backlight-target.h
+++ b/firmware/target/arm/as3525/sansa-fuze/backlight-target.h
@@ -26,7 +26,8 @@ void _backlight_on(void);
void _backlight_off(void);
void _backlight_set_brightness(int brightness);
int __backlight_is_on(void);
-
+#ifdef HAVE_BUTTON_LIGHT
void _buttonlight_on(void);
void _buttonlight_off(void);
#endif
+#endif
diff --git a/firmware/target/arm/as3525/sansa-fuze/button-target.h b/firmware/target/arm/as3525/sansa-fuze/button-target.h
index c818c602d0..be72e1a35e 100644
--- a/firmware/target/arm/as3525/sansa-fuze/button-target.h
+++ b/firmware/target/arm/as3525/sansa-fuze/button-target.h
@@ -37,12 +37,12 @@ void button_int(void);
/* Sandisk Sansa Fuze button codes */
-/* TODO: These are just a copy of the E200 */
-
/* Main unit's buttons */
-#define BUTTON_REC 0x00000001
+#define BUTTON_HOME 0x00000001
+
#define BUTTON_DOWN 0x00000002
#define BUTTON_RIGHT 0x00000004
+
#define BUTTON_LEFT 0x00000008
#define BUTTON_SELECT 0x00000010
#define BUTTON_UP 0x00000020
@@ -51,7 +51,11 @@ void button_int(void);
#define BUTTON_SCROLL_BACK 0x00000080
#define BUTTON_SCROLL_FWD 0x00000100
-#define BUTTON_MAIN 0x00000fff
+#define BUTTON_HOLD 0x00000200
+
+#define BUTTON_MAIN (BUTTON_HOME|BUTTON_DOWN|BUTTON_RIGHT|BUTTON_LEFT \
+ |BUTTON_SELECT|BUTTON_UP|BUTTON_POWER \
+ |BUTTON_SCROLLBACK|BUTTON_SCROLL_FWD|BUTTON_HOLD)
/* No Remote control */
#define BUTTON_REMOTE 0
diff --git a/tools/configure b/tools/configure
index 244a29d84c..42015df145 100755
--- a/tools/configure
+++ b/tools/configure
@@ -1751,7 +1751,7 @@ fi
output="rockbox.sansa"
bootoutput="bootloader-fuze.sansa"
appextra="recorder:gui"
- plugins="yes"
+ plugins=""
swcodec="yes"
toolset=$scramblebitmaptools
t_cpu="arm"
diff --git a/uisimulator/sdl/UI-fuze.bmp b/uisimulator/sdl/UI-fuze.bmp
new file mode 100644
index 0000000000..02b07b61ba
Binary files /dev/null and b/uisimulator/sdl/UI-fuze.bmp differ
diff --git a/uisimulator/sdl/button.c b/uisimulator/sdl/button.c
index 840a599aac..614308a070 100644
--- a/uisimulator/sdl/button.c
+++ b/uisimulator/sdl/button.c
@@ -950,7 +950,43 @@ void button_event(int key, bool pressed)
case SDLK_SPACE:
new_btn = BUTTON_SELECT;
break;
-
+#elif CONFIG_KEYPAD == SANSA_FUZE_PAD
+ case SDLK_KP4:
+ case SDLK_LEFT:
+ new_btn = BUTTON_LEFT;
+ break;
+ case SDLK_KP6:
+ case SDLK_RIGHT:
+ new_btn = BUTTON_RIGHT;
+ break;
+ case SDLK_KP8:
+ case SDLK_UP:
+ new_btn = BUTTON_SCROLL_BACK;
+ break;
+ case SDLK_KP2:
+ case SDLK_DOWN:
+ new_btn = BUTTON_SCROLL_FWD;
+ break;
+ case SDLK_PAGEUP:
+ case SDLK_KP9:
+ new_btn = BUTTON_UP;
+ break;
+ case SDLK_PAGEDOWN:
+ case SDLK_KP3:
+ new_btn = BUTTON_DOWN;
+ break;
+ case SDLK_KP_MINUS:
+ new_btn = BUTTON_POWER;
+ break;
+ case SDLK_KP_MULTIPLY:
+ new_btn = BUTTON_HOME;
+ break;
+ case SDLK_KP5:
+ case SDLK_SPACE:
+ case SDLK_KP_ENTER:
+ case SDLK_RETURN:
+ new_btn = BUTTON_SELECT;
+ break;
#elif CONFIG_KEYPAD == SANSA_CLIP_PAD
case SDLK_KP4:
case SDLK_LEFT:
diff --git a/uisimulator/sdl/uisdl.h b/uisimulator/sdl/uisdl.h
index 4332426963..5b0f944d3f 100644
--- a/uisimulator/sdl/uisdl.h
+++ b/uisimulator/sdl/uisdl.h
@@ -436,6 +436,16 @@
#define UI_LCD_FGCOLOR 0, 0, 0 /* foreground color of LCD (no backlight) */
#define UI_LCD_FGCOLORLIGHT 0, 0, 0 /* foreground color of LCD (backlight) */
+#elif defined(SANSA_FUZE)
+#define UI_TITLE "Sansa Fuze"
+#define UI_WIDTH 279 /* width of GUI window */
+#define UI_HEIGHT 449 /* height of GUI window */
+/* high-colour */
+#define UI_LCD_POSX 30 /* x position of lcd */
+#define UI_LCD_POSY 31 /* y position of lcd */
+#define UI_LCD_WIDTH LCD_WIDTH
+#define UI_LCD_HEIGHT LCD_HEIGHT
+
#elif defined(SANSA_CLIP)
#define UI_TITLE "Sansa Clip"
#define UI_WIDTH 205 /* width of GUI window */