FS#12436 - USB keypad mode text unreadable in Russian regardless of selected font

Attached to Project: Rockbox
Opened by Pavel Roskin (proski) - Friday, 09 December 2011, 16:17 GMT
Task Type Bugs
Category Font/charset
Status Unconfirmed
Assigned To No-one
Operating System Another
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No


I've seen this bug on 3.9.1 and 3.10 on Sansa Fuze. If I set the language to Russian and connect the device to USB, I see a message consisting of squares with the only word "USB" being readable. Choosing another font in the settings makes no difference.

When the language is set to English, the message reads: "USB Keypad Mode: Multimedia". However, the size and look of the font does not depend on the font selected in the settings. This is wrong.

If there is a real need in having a special font for the USB keypad mode text (which I doubt), that font should have glyphs for all supported languages.
This task depends upon

Comment by Boris Gjenero (dreamlayers) - Friday, 09 December 2011, 17:10 GMT
In gui_usb_screen_run() in apps/gui/usb_screen.c, fonts are unloaded before displaying the USB screen. As a result, only the built-in font can be used. The unloading ensures that there aren't any disk accesses from Rockbox during USB mode. That's important, because such accesses would conflict with disk accesses from USB. For an example of a conflict, see  FS#12423 . A conflict would be much less of a problem when USB is handled by Rockbox and not a bridge chip, but it would still be undesirable.
Comment by Pavel Roskin (proski) - Saturday, 10 December 2011, 03:38 GMT
Thank you for the quick and informative reply! It would be great to use a font with Cyrillic glyphs as the default. If the full Unicode font is too big for the memory, maybe an existing Unicode font could be stripped of Asian symbols. Or maybe only the symbols should be left that are only used on the USB screen in any language. The last resort would be to show messages in English for the languages that are not supported by the built-in font. It's still better than series of squares. I would be happy to send a few Sansa players with Rockbox to my friends in Russia, preconfigured with Russian language support, but I don't want to send players with this defect.
Comment by Fred Bauer (freddyb) - Tuesday, 27 December 2011, 15:46 GMT
Pavel, this isn't really a proper fix but you could substitute a small mono-spaced bdf font with Cryllic glyphs for 08-Schumacher-Clean.bdf in firmware/firmware.make to replace the built in SYSFONT. A proper solution would probably require prerendering the text in the theme font before closing the fonts.
Comment by Pavel Roskin (proski) - Wednesday, 28 December 2011, 00:41 GMT
Thanks for the tip! I agree that prerendering would be a better solution that won't exclude users of any language. Or maybe universally understood pictures could be used for the modes. Even an unclear picture won't be as offensive as unreadable text. Even a user with little exposure to computers and standard icons could distinguish between a battery and a treble clef. The exact functionality available in the mode needs to be discovered by the user anyway, even if text description is used.