summaryrefslogtreecommitdiff
path: root/apps/screens.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/screens.c')
-rw-r--r--apps/screens.c71
1 files changed, 70 insertions, 1 deletions
diff --git a/apps/screens.c b/apps/screens.c
index c990f6d445..6ec0695e24 100644
--- a/apps/screens.c
+++ b/apps/screens.c
@@ -28,14 +28,83 @@
28#include "mpeg.h" 28#include "mpeg.h"
29#include "usb.h" 29#include "usb.h"
30#include "settings.h" 30#include "settings.h"
31#include "status.h"
31#include "playlist.h" 32#include "playlist.h"
32 33
34#ifdef HAVE_LCD_BITMAP
35#define BMPHEIGHT_usb_logo 32
36#define BMPWIDTH_usb_logo 100
37static unsigned char usb_logo[] = {
38 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
39 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
40 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08,
41 0x04, 0x04, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
42 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x81, 0x81, 0x81, 0x81,
43 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
44 0x01, 0x01, 0x01, 0x01, 0xf1, 0x4f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
45 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0,
46 0x00, 0x00, 0xe0, 0x1c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
47 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
48 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x06, 0x81, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0,
49 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x70, 0x38, 0x1c, 0x1c,
50 0x0c, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0f, 0x1f, 0x1f, 0x1f, 0x1f,
51 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00,
52 0x00, 0x00, 0xe0, 0x1f, 0x00, 0xf8, 0x06, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
53 0x02, 0x02, 0x02, 0x82, 0x7e, 0x00, 0xc0, 0x3e, 0x01,
54 0x70, 0x4f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
55 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
56 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x07, 0x0f, 0x1f, 0x1f, 0x1f, 0x1f,
57 0x0f, 0x07, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0x0f,
58 0x1f, 0x3f, 0x7b, 0xf3, 0xe3, 0xc3, 0x83, 0x83, 0x83, 0x83, 0xe3, 0xe3, 0xe3,
59 0xe3, 0xe3, 0xe3, 0x03, 0x03, 0x03, 0x3f, 0x1f, 0x1f, 0x0f, 0x0f, 0x07, 0x02,
60 0xc0, 0x3e, 0x01, 0xe0, 0x9f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
61 0x80, 0x80, 0xf0, 0x0f, 0x80, 0x78, 0x07, 0x00, 0x00,
62 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
63 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
64 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0c, 0x10, 0x20, 0x40, 0x40, 0x80, 0x80,
65 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
66 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x87, 0x87, 0x87,
67 0x87, 0x87, 0x87, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xf0,
68 0x0f, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
69 0x04, 0x04, 0x04, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00,
70};
71#endif
72
73void usb_display_info(void)
74{
75 lcd_stop_scroll();
76 lcd_clear_display();
77
78#ifdef HAVE_LCD_BITMAP
79 /* lcd_bitmap() only supports 16 pixels height! */
80 lcd_bitmap(usb_logo, 6, 16,
81 BMPWIDTH_usb_logo, 8, false);
82 lcd_bitmap(usb_logo+BMPWIDTH_usb_logo, 6, 24,
83 BMPWIDTH_usb_logo, 8, false);
84 lcd_bitmap(usb_logo+BMPWIDTH_usb_logo*2, 6, 32,
85 BMPWIDTH_usb_logo, 8, false);
86 lcd_bitmap(usb_logo+BMPWIDTH_usb_logo*3, 6, 40,
87 BMPWIDTH_usb_logo, 8, false);
88 status_draw();
89 lcd_update();
90#else
91 lcd_puts(0, 0, "[USB Mode]");
92 lcd_icon(ICON_PARAM, false);
93 lcd_icon(ICON_AUDIO, false);
94 lcd_icon(ICON_USB, true);
95#endif
96}
97
33void usb_screen(void) 98void usb_screen(void)
34{ 99{
35#ifndef SIMULATOR 100#ifndef SIMULATOR
36 backlight_on(); 101 backlight_on();
37 usb_acknowledge(SYS_USB_CONNECTED_ACK); 102 usb_acknowledge(SYS_USB_CONNECTED_ACK);
38 usb_wait_for_disconnect(&button_queue); 103 while(usb_wait_for_disconnect_w_tmo(&button_queue, HZ)) {
104 if(usb_inserted()) {
105 usb_display_info();
106 }
107 }
39 backlight_on(); 108 backlight_on();
40#endif 109#endif
41} 110}