1
0
Fork 0
forked from len0rd/rockbox
Commit graph

17942 commits

Author SHA1 Message Date
Solomon Peachy
5d5698a616 genlang: Fix inconsistent rules when enumerating strings
* sort contents of generated apps/lang/english.list
 * Ignore all entries with a source of 'none'
 * Filter out all destination strings not present in master english list
 * Always require '-e' argument

Change-Id: Ic86c0cb6c44139465cba6b6ce840131efe217c4d
2025-05-06 13:53:20 -04:00
Solomon Peachy
0ebfab36ba surfansf28: More fixes:
* Use 16-bit audio output
 * More audio tweaks (mute on startup, working volume control)
 * Treat the rotary input as a scroll wheel (works now)

To-dos:

 * Better global keymap (incorporate touchscreen)
 * Turn on plugins and define the approximately eight bajillion keymaps
 * Still have some audible pops when we turn on, need to figure out why
 * Default Cabbiev2 comes off as rather crappy on this device

...I don't know how much work I will do on this thing, as the limited
number of physical controls (and a lack of a line-out) mean I'd never
want to use this thing myself.

Change-Id: I37229d92766495219ee989d9ae48b5ed79bd45f5
2025-05-06 09:56:03 -04:00
Solomon Peachy
9b39c96ac7 input: Correct screen swapping input remapping with touchscreens
The virtual keypad uses BUTTON_MIDLEFT/MIDRIGHT not LEFT/RIGHT

Change-Id: I5f02c1e5b8c22403d3ff243568e562de834cd0a9
2025-05-06 09:30:51 -04:00
Solomon Peachy
95f970076e surfansf28: Major improvements:
* Add a crude keymap
 * Use native "hardware mute" for audiohw_mute()
 * Properly handle touchscreen inputs
 * Can now play back music, with some warts..

Broken:

 * rotary wheel still doesn't work
 * audio garbled/distorted a bit
 * no volume control

Change-Id: I040217035a7bf3983b0e269fca3408eedd972cd0
2025-05-05 20:38:18 -04:00
Solomon Peachy
18f93ec46a FS#13621: Updated Romanian and Moldavian translations (Mihai Alexandru Vasiliu)
Change-Id: I6ce1f7987818c67e9cb4fd992f60938d295af677
2025-05-05 09:20:51 -04:00
Solomon Peachy
7feae37344 FS#13620: Updated Serbian translation (Ivan Pešić)
Change-Id: I3a68bafaf1edc047681304e30dcc1e8e2796ba9d
2025-05-05 09:19:47 -04:00
Solomon Peachy
51d8d452cb erosq: Don't require a long-press to cancel in time setting context
Change-Id: I108a7d795d03f44907f334fc12d38d11476e4b6f
2025-05-05 09:16:01 -04:00
Solomon Peachy
82f3d0c18f WIP hosted port to the Surfans F28
* Only bootloader builds
 * Plugins disabled
 * No keymaps to anything else
 * No simulator
 * Touchscreen not wired up yet
 * Audio still untested

Bugs:

 * rotary encoder does nothing in bootloader
   (might be bootloader bug, might be something else)

Other stuff pulled in:

 * Unify all of the (identical!) hibyos makefiles
 * Rename the "bootloader" to more generic name

Change-Id: I6d8a3b58de726db8e89cf193c90960a070a575c2
2025-05-04 18:34:22 -04:00
Solomon Peachy
f38109f8ed lang: Better handle duplicate translation target matches
For example, LANG_TIME_SET_BUTTON has these:

    *: none
    aigoerosq,erosqnative,gogearsa9200,samsungyh*: "PLAY = Set"
    gigabeat*,iaudiom5,iaudiox5,ipod*,iriverh10,iriverh10_5gb,mrobe100,sansac200*,sansaclip*,sansaconnect,sansae200*,sansafuze*: "SELECT = Set"
    iriverh100,iriverh120,iriverh300: "NAVI = Set"
    mpiohd300: "ENTER = Set"
    mrobe500: "HEART = Set"
    rtc: "ON = Set"
    vibe500: "OK = Set"

But all of these players will match their name _and_ the generic 'rtc'
feature that enables use of this phrase.  The language tooling
always used the final match in the list, so this resulted in
most devices showing the generic (and incorrect) 'ON = Set" instead
of the device-specific strings.

This patch changes the behavior so that only a match with the device
model itself can override the previously used string.

Change-Id: I93ee11b1e4925c39edaecdcbc13ccc51ed176a45
2025-05-04 18:34:22 -04:00
Solomon Peachy
c08bbaac49 Revert "lang: Complain if there are multiple target matches for a given string"
This reverts commit a88ef80560.
2025-05-04 09:21:18 -04:00
Solomon Peachy
a88ef80560 lang: Complain if there are multiple target matches for a given string
The tooling will always use the *final* match, which may or may not be
what is desired.  Treat this as a bug, and complain appropriately.

However, there is a special case.  The RTC set screen uses strings that
include the device button names. There should be an entry for the
specific device, but if not, we wanted to fall back to the string
specified by the 'rtc' feature flag as opposed to falling back to the
default, empty string.

To still support this, add a special "FALLBACK" value; If we end up
using this for a device, the tooling will treat this as a bug, and
complain accordingly.

This should fix FS#13615 and FS13616, and may introduce build failures
on targets that are missing appropriate entries.  We'll see.

Change-Id: Ie78bb247f968e19d450a0fbf6e1177b6d01126a1
2025-05-04 08:53:22 -04:00
Solomon Peachy
336d42c72b FS#13618: Updated German translation (Yannic Schmidt)
Change-Id: Ic3585574ebfd4a5757c326da174ca6376d8b0e30
2025-05-04 07:14:05 -04:00
Solomon Peachy
82f602ae1d FS#13617: Updated German translation (Yannic Schmidt)
Change-Id: I64af8075cddc15df05cf8ee794467b71fec25ef3
2025-05-03 23:03:49 -04:00
Solomon Peachy
3ac252b840 FS#13614: Add Moldavian (ro_MD) language (Mihai Alexandru Vasiliu)
TTS is set up to use ro_RO, but is not enabled yet.

Change-Id: Id71e1453e58b03e0a4205f459de87a79ff11a10e
2025-05-02 16:51:23 -04:00
Solomon Peachy
5f48d44acf FS#13613: Updated Romanian translation (Mihai Alexandru Vasiliu)
Should bring us to 100% coverage!

Change-Id: I5e74d59112e47e48da29e37f9a80ca471d2cd6be
2025-05-02 09:02:37 -04:00
Solomon Peachy
69c0c3f207 languages: Correct Latvian time reporting
12b9419006 stripped out leading/trailing whitespace, but the Latvian
translation used a blank string for VOICE_OH which got wiped out.

This string is only used when voicing the time, eg: 12:05 is spoken in
English as "twelve oh five".  Doing a little digging into Latvian, it
seems that for 24 hour clocks it would be voiced as "<twelve> nulle <five>"
instead, so I changed VOICE_OH to that.

Now for 12-hour clocks, it seems Latvian would voice "12:05" as "<five
past twelve>" but we don't currently have the ability to voice things
in this manner.  Will be addressed in a future patch.

Change-Id: I2c1bcd2e9caff508de3199da29c2e994e9d00c3c
2025-04-29 21:42:54 -04:00
Solomon Peachy
12b9419006 Some fixes for language and voice scripts:
Languages:
  * Get rid of leading space on LANG_ID3_VBR [ " (VBR)" ]
  * Fix up sole user to insert the space programmically
 updatelang:
  * strip leading and trailing spaces on all phrases except VOICE_PAUSE
 voice.pl
  * Debug logging with UTF-8 output
  * Explicitly delete tab character from voiced strings

Change-Id: Ie466793479ce15ce7a9553770583a070530e7afd
2025-04-29 20:03:11 -04:00
Solomon Peachy
0ea02f0268 translations: Delete trailing spaces and tabs in Ukranian translation
Change-Id: If9a7ed7e002cef9012d5849e1ea972d5939e2040
2025-04-29 20:03:10 -04:00
Solomon Peachy
bbca8e3bd9 Another Ukrainian translation update (Pavlo Rudy)
This should bring coverage to a full 100%

Change-Id: Ief051d6e774e94b3dde5b07203a18e7a5ae97b21
2025-04-29 15:08:32 -04:00
Solomon Peachy
232e5b4daf FS#13611: Major update to Ukranian translation (Pavlo Rudy)
Change-Id: I8aca68a151451f710a0069d8a5e1325a21ce901d
2025-04-29 14:26:34 -04:00
Solomon Peachy
20512b03a9 FS#13610: Updated Romanian translation (Mihai Alexandru Vasiliu)
Change-Id: Ib39f0a7ad8a8790e1a93563a087df0e58fa4afdc
2025-04-28 10:27:09 -04:00
Solomon Peachy
2d820bfc7d lang: Correct clock set/revert text for erosq.
All translations with at least 80% coverage are upated.

Most of these also got a few mechanical corrections as well.

Change-Id: Id4cf5e6c066cb7cd0a73bcd5ad68135c9aeb3294
2025-04-24 22:01:49 -04:00
Solomon Peachy
2dd422ffcf FS#13609: Updated Swedish Translation (Wilton Millfjord)
Change-Id: If7df3c6c57ee09e80ac74bcf79081e38494acd3d
2025-04-24 16:19:19 -04:00
Solomon Peachy
8f41516e96 lang: Fix a typo in the Swedish translation
Change-Id: I3bba6ef52a35d9cd9fda8fe94e437b5e691627e0
2025-04-24 16:16:49 -04:00
Solomon Peachy
dd53e99870 FS#13608: Updated Swedish Translation (Wilton Millfjord)
Change-Id: I73e4692375166c55c5171de491895bb3fd8bc3e9
2025-04-24 14:52:43 -04:00
Solomon Peachy
299d255743 FS#13607: Updated Swedish Translation (Wilton Millfjord)
Change-Id: Id780d45ec2057d46f53278be4a4f6460746b411c
2025-04-24 11:23:51 -04:00
Solomon Peachy
1eb06ea0d2 FS#13606: Updated Swedish Translation (Wilton Millfjord)
Change-Id: I96e143d935330a44335b98c5d0c0aeeeb7719169
2025-04-24 11:03:52 -04:00
Solomon Peachy
0771d38c1e FS#13605: Updated Romanian translation (Mihai Alexandru Vasiliu)
Change-Id: I0af77ebe5aaff50961ad14cfc4d5ce70209e07a3
2025-04-24 11:02:19 -04:00
Solomon Peachy
27ad208024 FS#13604: Updated Swedish Translation (wilton millfjord)
Change-Id: I9a5e5b83501b25488033b6edaf31e7c4254e4692
2025-04-23 15:02:31 -04:00
Solomon Peachy
28a3ac6b30 FS#13603: Updated Spanish Translation (Guillermo Garcia Rojas)
Change-Id: I06539c94e216da3bf5bf79248c07dace2dce2791
2025-04-23 13:50:48 -04:00
Solomon Peachy
5b1158e64a misc: Properly annotate some intentional case fallthroughs
Change-Id: Ie758f17fefac72aca1aa28a8ba1126b9334fe134
2025-04-22 20:54:37 -04:00
Aidan MacDonald
83950bf233 New WIP port: Echo R1
The Echo R1 is a new open-hardware music player design, based
on the STM32H743 microcontroller. Schematics and hardware
documentation for it can be found here:

- https://github.com/amachronic/echoplayer

This is an incomplete port. The bootloader can be loaded using
OpenOCD and it can draw to the LCD using SPI. SDRAM is working
but hasn't been extensively tested.

Change-Id: Ifd2bee15c49868fbc989683d3ca14dce48bf3e18
2025-04-22 20:08:08 -04:00
Paul Sauro
abae4660e2 fr translation: 100% coverage
Change-Id: I7b45562f98257139b8c611ed42b52de664bd22f8
2025-04-22 13:10:53 -04:00
Solomon Peachy
6f5760b41a jpeg: Silence -Wshift-negative-value warnings
These are all from upstream code, so just force-ignore the warnings

Change-Id: I9936e1cb79636b0bfee5dd4db0c98a06792d2f69
2025-04-22 09:43:40 -04:00
Solomon Peachy
9e52dcc7e7 iriverify: Fix a build warning
Change-Id: I12a50a8e71c50c232dad89342f59f5afe8d0aace
2025-04-22 09:34:30 -04:00
Solomon Peachy
3975584497 mikmod: We don't need its custom 'strdup()' function
Fixes a warning with newer GCCs

Change-Id: I9ccf7bf77a40a0ad79122e9cf4a5e8e6859cfcfa
2025-04-22 08:54:19 -04:00
Solomon Peachy
6d24ff3257 h1x0/h3x0: Fix missing TIME context in remote button map
It was actually defined but not actually mapped in.

Also shut up a warning in the peakmeter code when not using a color
display.

Both caught by -Wunused-const-variable

Change-Id: Ie2403c0cd77e6fdf3468fd45115a1e0f228238e8
2025-04-22 07:40:27 -04:00
Solomon Peachy
3b974e791a misc: Fix more build warnings uncovered with GCC15 and -Wunused-const-variable
Change-Id: I43f5d03d8496b2ac8b30df30b14d1c6e816ef0e2
2025-04-21 21:55:03 -04:00
Solomon Peachy
9d4632b0c3 misc: Clean up a pile of -Wunused-const-variable warnings
And re-enable the warning (applies to GCC 6+)

Change-Id: I7aa679ec65707db12de83c0433966b3821d07087
2025-04-21 21:13:59 -04:00
Solomon Peachy
c7eda36341 misc: Clean up a large pile of -Wexpansion-to-defined warnings
And re-enable the warning (applies with GCC 7+)

Change-Id: I406ce796ebd06bad53cab911e17a28265a79b420
2025-04-21 21:04:05 -04:00
Solomon Peachy
180753ce0a misc: Correct various -Wunterminated-string-initialization warnings
-Wunterminates-string-initialization will complain if we try to shove
a "string" into a fixed array that is too small.  Sometimes this is
intentional; when you are merely using "string" as a standin for
"non-terminated sequence of bytes".  In these cases we need to mark
the "string" as "not actually a string" with an attribute.  Applies to
GCC >=8, but this warning isn't pulled in by -Wextra until GCC >= 15.

Change-Id: Ib94410a22f4587940b16cf03d539fbadc3373686
2025-04-21 16:39:00 -04:00
Solomon Peachy
ceeca12f07 lang: Apply some mechanical corrections to Romanian and Korean
Change-Id: I01a2d4c2d4ee39e502913e58fc175ab5aaf8e9fd
2025-04-19 20:59:53 -04:00
Christian Soffke
ae54b06af4 playlist catalog: Hide Copy/Cut/Open With
It may make sense to only show these in the
file browser, where you'd expect to do more
general file operations involving other folders.

Change-Id: I008569d2017811ee54b4449acb30359843f35294
2025-04-19 20:59:16 -04:00
Solomon Peachy
b7b20c4a77 FS#13599: Updated Romanian translation (Mihai Alexandru Vasiliu)
Change-Id: Ia87c6a34c6776059e51c06f96708040914d3a97b
2025-04-19 17:43:14 -04:00
Aidan MacDonald
6ea328f0f1 arm: add div0 handler for 64-bit division on ARMv7-M
Even though ARMv7-M has a hardware divider, 64-bit division is
handled in software and needs a div0 handler. The libgcc routines
call __aeabi_{i,l}div0 so we alias those to __div0.

Change-Id: I5152c43d39e25e03f31404753f13978a614aca06
2025-04-19 09:43:40 -04:00
Christian Soffke
96615af033 Shortcuts & QS: Fix tree sort settings not immediately applied
Change-Id: I51158f786ad7dae46ce6201826cb35958e8014ec
2025-04-18 20:00:42 -04:00
Solomon Peachy
d307568410 FS#13598: Updated Spanish translation (Guillermo Garcia Rojas)
Change-Id: Ida5f5319c0b9f37b04ac2d7be35186f798e3480a
2025-04-18 17:30:41 -04:00
Aidan MacDonald
3ed9fb3115 arm: add initial ARM Cortex-M support
M-profile cores manage interrupts differently from classic cores
and lack the FIQ. Split the interrupt management parts out into
separate headers but keep the endian swapping routines (which are
not profile-dependent) in the common system-arm header.

The initial part of the vector table is common to all Cortex-M
CPUs and is intended to be included by the target linker script,
with the vendor-specific part of the vector table appended to it.

Change-Id: Ib2ad5b9dc41db27940e39033cfef4308923db66d
2025-04-18 13:19:42 -04:00
Aidan MacDonald
639b587fc7 arm: add support for processors with hardware division
ARMv7-M has hardware division, so it doesn't require __div0
or any support functions for 32-bit division.

Change-Id: I840683a1a77d737f378899ca4bcf858216b81014
2025-04-18 09:22:48 -04:00
Christian Soffke
93b1611474 tagtree: defer context menu disk access
When the database isn't loaded into RAM,
or the "quick" load setting is enabled,
filenames for tracks must be retrieved
from disk.

With a single track selected, this
can cause a delay before its context
menu is displayed.

Since filenames are only needed after the
user has selected something from the menu,
it makes sense to defer retrieval until
disk access becomes inevitable.

Change-Id: I72b57eff3102b50f3e19441119e20aad903b1f2b
2025-04-17 08:23:45 -04:00