summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/lang/deutsch.lang6
-rw-r--r--apps/lang/english.lang6
-rw-r--r--apps/misc.c8
-rw-r--r--apps/screens.c27
-rw-r--r--apps/screens.h4
5 files changed, 49 insertions, 2 deletions
diff --git a/apps/lang/deutsch.lang b/apps/lang/deutsch.lang
index f4cfa864af..0ff4778721 100644
--- a/apps/lang/deutsch.lang
+++ b/apps/lang/deutsch.lang
@@ -2827,3 +2827,9 @@ desc: in browse root
2827eng: "Installation incomplete" 2827eng: "Installation incomplete"
2828voice: "" 2828voice: ""
2829new: "Installation unvollständig" 2829new: "Installation unvollständig"
2830
2831id: LANG_REMOVE_MMC
2832desc: before acknowledging usb in case an MMC is inserted (Ondio)
2833eng: "Please remove inserted MMC"
2834voice: "Bitte Multimediakarte entfernen"
2835new: "Bitte eingelegte MMC entfernen"
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index facbe7eaf9..fd3d4d297a 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -2841,3 +2841,9 @@ desc: in browse root
2841eng: "Installation incomplete" 2841eng: "Installation incomplete"
2842voice: "" 2842voice: ""
2843new: 2843new:
2844
2845id: LANG_REMOVE_MMC
2846desc: before acknowledging usb in case an MMC is inserted (Ondio)
2847eng: "Please remove inserted MMC"
2848voice: "Please remove multimedia card"
2849new:
diff --git a/apps/misc.c b/apps/misc.c
index ced0668ae6..96d23a8388 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -34,6 +34,9 @@
34#include "ata.h" 34#include "ata.h"
35#include "kernel.h" 35#include "kernel.h"
36#include "power.h" 36#include "power.h"
37#ifdef HAVE_MMC
38#include "ata_mmc.h"
39#endif
37 40
38#define ONE_KILOBYTE 1024 41#define ONE_KILOBYTE 1024
39#define ONE_MEGABYTE (1024*1024) 42#define ONE_MEGABYTE (1024*1024)
@@ -231,7 +234,10 @@ int default_event_handler(int event)
231 switch(event) 234 switch(event)
232 { 235 {
233 case SYS_USB_CONNECTED: 236 case SYS_USB_CONNECTED:
234 usb_screen(); 237#ifdef HAVE_MMC
238 if (!mmc_detect() || (mmc_remove_request() == SYS_MMC_EXTRACTED))
239#endif
240 usb_screen();
235 return SYS_USB_CONNECTED; 241 return SYS_USB_CONNECTED;
236 } 242 }
237 return 0; 243 return 0;
diff --git a/apps/screens.c b/apps/screens.c
index b31067ad27..ac8dea1c24 100644
--- a/apps/screens.c
+++ b/apps/screens.c
@@ -40,7 +40,8 @@
40#include "action.h" 40#include "action.h"
41#include "talk.h" 41#include "talk.h"
42#include "misc.h" 42#include "misc.h"
43#include "id3.h" 43#include "id3.h"
44#include "screens.h"
44 45
45#ifdef HAVE_LCD_BITMAP 46#ifdef HAVE_LCD_BITMAP
46#define BMPHEIGHT_usb_logo 32 47#define BMPHEIGHT_usb_logo 32
@@ -121,6 +122,30 @@ void usb_screen(void)
121#endif /* USB_NONE */ 122#endif /* USB_NONE */
122} 123}
123 124
125#ifdef HAVE_MMC
126int mmc_remove_request(void)
127{
128 struct event ev;
129
130 lcd_clear_display();
131 splash(1, true, str(LANG_REMOVE_MMC));
132 talk_id(LANG_REMOVE_MMC, false);
133
134 while (1)
135 {
136 queue_wait_w_tmo(&button_queue, &ev, HZ/2);
137 switch (ev.id)
138 {
139 case SYS_MMC_EXTRACTED:
140 return SYS_MMC_EXTRACTED;
141
142 case SYS_USB_DISCONNECTED:
143 return SYS_USB_DISCONNECTED;
144 }
145 }
146}
147#endif
148
124 149
125/* some simulator dummies */ 150/* some simulator dummies */
126#ifdef SIMULATOR 151#ifdef SIMULATOR
diff --git a/apps/screens.h b/apps/screens.h
index 47b85af821..8940bb590c 100644
--- a/apps/screens.h
+++ b/apps/screens.h
@@ -26,6 +26,10 @@ void usb_screen(void);
26int charging_screen(void); 26int charging_screen(void);
27void charging_splash(void); 27void charging_splash(void);
28 28
29#ifdef HAVE_MMC
30int mmc_remove_request(void);
31#endif
32
29#if CONFIG_KEYPAD == RECORDER_PAD 33#if CONFIG_KEYPAD == RECORDER_PAD
30int pitch_screen(void); 34int pitch_screen(void);
31bool quick_screen(const int, const int); 35bool quick_screen(const int, const int);