diff options
-rw-r--r-- | apps/menu.c | 21 | ||||
-rw-r--r-- | firmware/usb.c | 6 |
2 files changed, 26 insertions, 1 deletions
diff --git a/apps/menu.c b/apps/menu.c index 79919f19af..1f04ef2249 100644 --- a/apps/menu.c +++ b/apps/menu.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include "button.h" | 22 | #include "button.h" |
23 | #include "kernel.h" | 23 | #include "kernel.h" |
24 | #include "debug.h" | 24 | #include "debug.h" |
25 | #include "usb.h" | ||
25 | #include "panic.h" | 26 | #include "panic.h" |
26 | #include "settings.h" | 27 | #include "settings.h" |
27 | #include "status.h" | 28 | #include "status.h" |
@@ -213,8 +214,10 @@ void menu_exit(int m) | |||
213 | 214 | ||
214 | void menu_run(int m) | 215 | void menu_run(int m) |
215 | { | 216 | { |
217 | bool laststate; | ||
218 | |||
216 | menu_draw(m); | 219 | menu_draw(m); |
217 | 220 | ||
218 | while(1) { | 221 | while(1) { |
219 | switch( button_get_w_tmo(HZ/2) ) { | 222 | switch( button_get_w_tmo(HZ/2) ) { |
220 | #ifdef HAVE_RECORDER_KEYPAD | 223 | #ifdef HAVE_RECORDER_KEYPAD |
@@ -278,6 +281,22 @@ void menu_run(int m) | |||
278 | break; | 281 | break; |
279 | #endif | 282 | #endif |
280 | 283 | ||
284 | #ifndef SIMULATOR | ||
285 | case SYS_USB_CONNECTED: | ||
286 | #ifdef HAVE_LCD_BITMAP | ||
287 | laststate = statusbar(false); | ||
288 | #endif | ||
289 | usb_acknowledge(SYS_USB_CONNECTED_ACK); | ||
290 | usb_wait_for_disconnect(&button_queue); | ||
291 | menu_draw(m); | ||
292 | #ifdef HAVE_LCD_BITMAP | ||
293 | statusbar(laststate); | ||
294 | #else | ||
295 | lcd_icon(ICON_PARAM, true); | ||
296 | #endif | ||
297 | break; | ||
298 | #endif | ||
299 | |||
281 | default: | 300 | default: |
282 | break; | 301 | break; |
283 | } | 302 | } |
diff --git a/firmware/usb.c b/firmware/usb.c index 624c2c6c1e..2e978ff54e 100644 --- a/firmware/usb.c +++ b/firmware/usb.c | |||
@@ -185,6 +185,9 @@ static void usb_thread(void) | |||
185 | waiting_for_ack = true; | 185 | waiting_for_ack = true; |
186 | DEBUGF("USB extracted. Waiting for ack from %d threads...\n", | 186 | DEBUGF("USB extracted. Waiting for ack from %d threads...\n", |
187 | num_acks_to_expect); | 187 | num_acks_to_expect); |
188 | #ifdef HAVE_LCD_CHARCELLS | ||
189 | lcd_icon(ICON_USB, false); | ||
190 | #endif | ||
188 | break; | 191 | break; |
189 | 192 | ||
190 | case SYS_USB_DISCONNECTED_ACK: | 193 | case SYS_USB_DISCONNECTED_ACK: |
@@ -369,5 +372,8 @@ void usb_display_info(void) | |||
369 | lcd_update(); | 372 | lcd_update(); |
370 | #else | 373 | #else |
371 | lcd_puts(0, 0, "[USB Mode]"); | 374 | lcd_puts(0, 0, "[USB Mode]"); |
375 | lcd_icon(ICON_PARAM, false); | ||
376 | lcd_icon(ICON_AUDIO, false); | ||
377 | lcd_icon(ICON_USB, true); | ||
372 | #endif | 378 | #endif |
373 | } | 379 | } |