diff options
Diffstat (limited to 'apps/gui/usb_screen.c')
-rw-r--r-- | apps/gui/usb_screen.c | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/apps/gui/usb_screen.c b/apps/gui/usb_screen.c index f2c25554df..50188274d2 100644 --- a/apps/gui/usb_screen.c +++ b/apps/gui/usb_screen.c | |||
@@ -49,6 +49,7 @@ | |||
49 | 49 | ||
50 | #ifdef USB_ENABLE_HID | 50 | #ifdef USB_ENABLE_HID |
51 | int usb_keypad_mode; | 51 | int usb_keypad_mode; |
52 | static bool usb_hid; | ||
52 | #endif | 53 | #endif |
53 | 54 | ||
54 | #ifndef SIMULATOR | 55 | #ifndef SIMULATOR |
@@ -64,7 +65,7 @@ static int handle_usb_events(void) | |||
64 | { | 65 | { |
65 | int button; | 66 | int button; |
66 | #ifdef USB_ENABLE_HID | 67 | #ifdef USB_ENABLE_HID |
67 | if (usb_core_driver_enabled(USB_DRIVER_HID)) | 68 | if (usb_hid) |
68 | { | 69 | { |
69 | button = get_hid_usb_action(); | 70 | button = get_hid_usb_action(); |
70 | 71 | ||
@@ -157,20 +158,24 @@ static void usb_screen_fix_viewports(struct screen *screen, | |||
157 | logo->height = logo_height; | 158 | logo->height = logo_height; |
158 | 159 | ||
159 | #ifdef USB_ENABLE_HID | 160 | #ifdef USB_ENABLE_HID |
160 | struct viewport *title = &usb_screen_vps->title; | 161 | if (usb_hid) |
161 | int char_height, nb_lines; | 162 | { |
163 | struct viewport *title = &usb_screen_vps->title; | ||
164 | int char_height, nb_lines; | ||
162 | 165 | ||
163 | /* nb_lines only returns the number of fully visible lines, small screens | 166 | /* nb_lines only returns the number of fully visible lines, small |
164 | or really large fonts could cause problems with the calculation below. | 167 | * screens or really large fonts could cause problems with the |
165 | */ | 168 | * calculation below. |
166 | nb_lines = viewport_get_nb_lines(parent); | 169 | */ |
167 | if (nb_lines == 0) | 170 | nb_lines = viewport_get_nb_lines(parent); |
168 | nb_lines++; | 171 | if (nb_lines == 0) |
172 | nb_lines++; | ||
169 | 173 | ||
170 | char_height = parent->height/nb_lines; | 174 | char_height = parent->height/nb_lines; |
171 | 175 | ||
172 | *title = *parent; | 176 | *title = *parent; |
173 | title->y = logo->y + logo->height + char_height; | 177 | title->y = logo->y + logo->height + char_height; |
178 | } | ||
174 | #endif | 179 | #endif |
175 | } | 180 | } |
176 | #endif | 181 | #endif |
@@ -209,9 +214,12 @@ static void usb_screens_draw(struct usb_screen_vps_t *usb_screen_vps_ar) | |||
209 | screen->transparent_bitmap(usblogo, 0, 0, logo->width, | 214 | screen->transparent_bitmap(usblogo, 0, 0, logo->width, |
210 | logo->height); | 215 | logo->height); |
211 | #ifdef USB_ENABLE_HID | 216 | #ifdef USB_ENABLE_HID |
212 | screen->set_viewport(&usb_screen_vps->title); | 217 | if (usb_hid) |
213 | usb_screen_vps->title.flags |= VP_FLAG_ALIGN_CENTER; | 218 | { |
214 | screen->puts_scroll(0, 0, str(keypad_mode_name_get())); | 219 | screen->set_viewport(&usb_screen_vps->title); |
220 | usb_screen_vps->title.flags |= VP_FLAG_ALIGN_CENTER; | ||
221 | screen->puts_scroll(0, 0, str(keypad_mode_name_get())); | ||
222 | } | ||
215 | #endif /* USB_ENABLE_HID */ | 223 | #endif /* USB_ENABLE_HID */ |
216 | } | 224 | } |
217 | screen->set_viewport(parent); | 225 | screen->set_viewport(parent); |
@@ -252,6 +260,7 @@ void gui_usb_screen_run(void) | |||
252 | #endif | 260 | #endif |
253 | 261 | ||
254 | #ifdef USB_ENABLE_HID | 262 | #ifdef USB_ENABLE_HID |
263 | usb_hid = global_settings.usb_hid; | ||
255 | usb_keypad_mode = global_settings.usb_keypad_mode; | 264 | usb_keypad_mode = global_settings.usb_keypad_mode; |
256 | #endif | 265 | #endif |
257 | 266 | ||
@@ -283,7 +292,7 @@ void gui_usb_screen_run(void) | |||
283 | const struct viewport* vp = NULL; | 292 | const struct viewport* vp = NULL; |
284 | 293 | ||
285 | #if defined(HAVE_LCD_BITMAP) && defined(USB_ENABLE_HID) | 294 | #if defined(HAVE_LCD_BITMAP) && defined(USB_ENABLE_HID) |
286 | vp = &usb_screen_vps_ar[i].title; | 295 | vp = usb_hid ? &usb_screen_vps_ar[i].title : NULL; |
287 | #elif !defined(HAVE_LCD_BITMAP) | 296 | #elif !defined(HAVE_LCD_BITMAP) |
288 | vp = &usb_screen_vps_ar[i].parent; | 297 | vp = &usb_screen_vps_ar[i].parent; |
289 | #endif | 298 | #endif |