summaryrefslogtreecommitdiff
path: root/apps/gui/usb_screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/usb_screen.c')
-rw-r--r--apps/gui/usb_screen.c41
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
51int usb_keypad_mode; 51int usb_keypad_mode;
52static 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