1
0
Fork 0
forked from len0rd/rockbox
Commit graph

17556 commits

Author SHA1 Message Date
Solomon Peachy
563da70139 ipod6g: Reworking the bespoke ATA driver
ipod6g was configured with SECTOR_SIZE of 4096, but this ATA driver
unconditionally translated these to 512B operations on the actual
storage device.

Rockbox's storage layer already has robust support for "logical sectors
larger than physical storage sectors" through use of
MAX_LOG_SECTOR_SIZE.  So switch to that mechanism, allowing the ipod6g
ATA driver to be simplified.

If we want to support drives with physical sector sizes > 512B, then
we need to port the MAX_PHYS_SECTOR_SIZE logic from the primary ATA driver.

Additional changes:

 * Simplify MWDMA/UDMA selection logic
 * Report CE-ATA mode in debug menu
 * Use LBA48 commands only if drive is over 128GiB.
 * Drop default sleep/poweroff time from 20s to 7s (matching main ATA driver)

Finally, the bulk of the changes are the first phase of a badly needed
style cleanup that made reading this driver a lot harder than it should
be. I intend to split this into a separate patch.

Change-Id: I2feca9fd319c8d6cfb3c2610208970428d2fa947
2024-10-17 20:30:37 -04:00
neofright
9efed5542e Add reset EQ menu option
Change-Id: Ia555359263a42545abe3f1039d7933204be02f6d
2024-10-16 17:20:27 +01:00
Solomon Peachy
9b1a92fe36 Fix up a pile of bad format strings passed into simplelist_addline()
Change-Id: Ic45ea8633a1752b2e01cba2aace55309bcb7480d
2024-10-15 19:13:17 -04:00
Solomon Peachy
a2efbf0589 list: Flag simplelist_addline() as accepting format specifiers
And fix up all the problems I've found so far.

...This will undoubtedly introduce a pile of new warnings.

Change-Id: I868de507a0e9790f289676c198e2977c26755f22
2024-10-15 18:50:35 -04:00
Solomon Peachy
d3b7eba405 debug: Correct formatting when displaying drive size.
Change-Id: I95e9a257dcad548ec4378d01c0f9b4370ebf5318
2024-10-15 18:25:28 -04:00
Solomon Peachy
1ece63d054 debug: Log our logical sector multiplier, if enabled.
Change-Id: I077c0a88d8a51d909ff1df1ca79d95c884ba324a
2024-10-15 11:59:35 -04:00
Roman Artiukhin
37652c5e2b imageviewer: jpeg: Fix grayscsale mode with no dithering show black screen
Change-Id: Ib29e3577c59db8e98db1dd5b8e28874a4fbef20f
2024-10-15 17:46:47 +03:00
Christian Soffke
ef19fa4408 plugin load / tagtree retrieval: eliminate storage_disk_is_active check
Since commit e0df995 storage_disk_is_active may be 0
even if there is no disk that needs to be spun up or
device to power on, so it doesn't really make sense
to check for it, anymore, in order to decide whether
to display the loading indicator.

For remaining devices with spinning disks, the noise
or vibration of the disk spinning up may serve as a
sufficient signal when loading a plugin, that the
device isn't frozen. Plus, for the tagtree, search
progress is displayed after 0.5s anyway.

Change-Id: I5791725e2388d7113818a358204968d8a4e6f843
2024-10-14 09:27:26 -04:00
Roman Artiukhin
b8238f7b20 imageviewer: Initial support for JPEG progressive images. Add decoder
Added jpeg decoder jpegp.c using RAINBOW lib. Currently enabled only for pictures not supported by old decoder (as old decoder more optimized for low mem targets)

Someone TODO:
 * Old decoder has optimized downscale logic which new decoder doesn't have (it gives big difference in required memory and time for decoding). This logic should be ported/adapted if possible.

 * Add smooth downscaling.

 * Grayscale support

Change-Id: Ie96bc62848b51cc6a3942f8e069ec6ab02dc1c56
2024-10-14 09:19:34 -04:00
Roman Artiukhin
64ad7354b6 imageviewer: Initial support for JPEG progressive images. Add lib sources
Added unmodified files from RAINBOW library by Attila Tarpai
Full sources:
https://github.com/Halicery/vc_rainbow

Change-Id: I356486b6a332aa3f610ddcae57f8a2044653b051
2024-10-14 09:19:34 -04:00
Solomon Peachy
62d6c7ecaa pdbox: Silence a spurious warning with GCC9 on hosted ARM
(pdbox seems to trigger a lot of false warnings...)

Change-Id: Ia24aa7ece4d6389dbdb36b30729a9372f872b034
2024-10-12 12:26:22 -04:00
Solomon Peachy
41abd8e32f sdlapp: Fix build with SDL2
Not sure why this didn't break in my earlier tests.

Change-Id: Idf643c7ace638d928d41606cec1b90762bc4909e
2024-10-07 12:36:44 -04:00
Christian Soffke
8808c42d6d Fix FS#13494
Change-Id: Ie306418431eb412dac00907eb2f59999d8b4dfb0
2024-10-03 14:03:29 +02:00
Christian Soffke
0cb0cb486f tagtree: remove superfluous code from insert_all_playlist
Code has no effect since commit a0e95c8.
Functionality is now handled by the playlist_insert_context_add function

Change-Id: Ie91f605bd7a7d03556fa70d195a06bc55866741d
2024-09-29 17:37:18 +02:00
William Wilgus
f09693b0be [Feature/BugFix] Dirplay never gets the file I selected
If you have say 1000 playlist entries and select the 1001 song in the directory
dirplay loads tracks 1-1000 shuffles them and track 1001 is never heard from again

Instead start at the file and loop through the directory mod dir len

Change-Id: Ieded5decdc1f7c44b1be8491dbd4f359ae21f79a
Hint: this is a good way to not wait on dirplay to load a ton of tracks
2024-09-26 03:29:15 -04:00
William Wilgus
f55cb77f89 [Bugfix] FS#13492 - Playback resume fails after USB insert
On usb plug system_flush() gets called before the other
threads get a chance to ACK the insert

system_flush() calls playlist_shutdown() (amongst other things)
playlist_shutdown closes the control file

the audio thread acks USB insert
audio_stop_playback is called which now can't look up the
filename from the now closed handle for control the control file

I left the guard for checking for USB insert but it appears to be
fine without it

Change-Id: I935dbf7aed38d4a57413c0063ad953f427e9b3bb
2024-09-26 01:34:56 -04:00
William Wilgus
e6313e4b8e tree.c remove strlcat in favor of strmemccpy
moved a conditional for reload_dir vs strcmp

Change-Id: I1635014fbbc6b9b0905abc3f9c60bbd2a1d08762
2024-09-26 00:38:54 -04:00
Solomon Peachy
9ebfb3fa5c FS#13493: Updated German translation (Wilfried Winkler)
Change-Id: Ib048b82438e81b9cd0a3bcab7f60b5c0556ad13e
2024-09-25 18:08:06 -04:00
William Wilgus
9af325a541 [BugFix] tagcache_search() must be closed with tagcache_search_finish()
fix a couple of places where this could be left open

Change-Id: I43ac7d6b26d728c11f96e5415710341d60f07ab8
2024-09-25 01:33:47 -04:00
William Wilgus
a0e95c888d [Feature/Bugfix] Tagtree use insert context to speed up adding tracks to playlist
I forgot we had duplicated code between playlist.c and tagtree.c this saves
a bit of space and should speed up adding tracks a bit

further I noticed a buf here where there was the potential to return without closing
the opened track search

Change-Id: I15ed8447fc4fe13de5bfeb9fbb59b151e2fbf36a
2024-09-25 01:03:11 -04:00
William Wilgus
ffebb9e244 [Bugfix] Enable Progressive loading for talk clips on devices <= 8MB
our voiceclips are getting in the way of allocs for the tree
on these devices

Change-Id: I556400359df22a2643e6ee3f9a161bc364841002
2024-09-25 00:54:10 -04:00
William Wilgus
f0c208554c [BugFix] Playback.c OOM with large voice file
with our large voice file being loaded in its entirety to the buffer
there isn't enough room to allocate the required pcm buffer
well prior to this patch we looked for 1k free to allow the talk buffer
to be given away
well the pcm buffer expects something like 5-600 kb on the clipzip
and there is 1k allocatable but not 300 more

so instead get the required pcm buffer size and check against that

Change-Id: I40a056e4170c37bc3429f0cb37af221ae7f812e5
2024-09-24 10:47:34 -04:00
Solomon Peachy
77ff799502 lang: Delete two completely redundant strings
Change-Id: Icedae2687688b8d042c9d9ca232b566ff8f65531
2024-09-22 16:44:08 -04:00
Solomon Peachy
6ed8b9091c Misc: Compiling under SDL2 uncovered a few issues unrelated to SDL itself
Change-Id: I625d5dd02d3f70bc6484a8641eafdaf13812f4a7
2024-09-21 16:32:58 -04:00
Solomon Peachy
9a714939e8 features: Add 'sd_storage' if the device uses SD cards
Change-Id: Ied3ca34ef497cf0eeb7db6d0f948e43ebd25359e
2024-09-21 10:48:24 -04:00
Solomon Peachy
c71b6265b0 Fix a mechanical error in the Simplified Chinese translation
Change-Id: Ibdd4b948ec8e2e6d761362e465a7117ef74e1520
2024-09-17 11:09:41 -04:00
Solomon Peachy
e09c055a41 lang: Replace all <...> with [...]
<..> gets interpreted as a drive/volume ID, which has special voicing rules.

(this is especially visible in the DB browser)

Change-Id: I7c2598004a4e58451267d77f786eb52f7c09bd3f
2024-09-17 10:21:46 -04:00
Solomon Peachy
7d9fbae749 Minor mechanical updates to the Russian translation
...This should be sufficient to push it to 100%

Change-Id: I6b884725a7d3823c66742856cd7e581880d0830e
2024-09-16 08:27:42 -04:00
Solomon Peachy
9fb6883d01 FS#13489: Updated Russian translation (Dmitry Prozorov)
Change-Id: I8e605959101b3fd08eae92b7eb80c9a8525bc5e3
2024-09-16 07:53:58 -04:00
Solomon Peachy
5ab334f07f FS#13488: Updated Russian translation (Dmitry Prozorov)
Change-Id: I2950fdef4ba5b8373b7661ececd15c02822dd403
2024-09-15 09:57:59 -04:00
Solomon Peachy
10382caa3b FS#13487: Updated italian translation (Alessio Lenzi)
Change-Id: I47a45002c0da8d6ae5160ffe6d423a3061c654bd
2024-09-15 07:18:20 -04:00
William Wilgus
de355d225c Remove static buffer from shortcts.c
as long as we put it back the way we found it u.path is a
writable buffer

Change-Id: I6f1e6139ce96b8edb61ad8b0ae6a6f2218eee855
2024-09-13 11:22:46 -04:00
William Wilgus
79bed1f422 RFC skin_tokens remove a static buffer
it was hard to hit this branch, I had to comment out:
ln 555    else if (offset == 1)
ln 556        pid3 = state->nid3;

as far as I can tell the reason for the separate filename buffer
was due to the failure mode of audio_peek_track() wiping
the id3->path, stands to reason for me that we can just fill it
again

-Already found a gotcha playlist_peek() mutates the buffer
 makes me like this solution less, might rework tagcache_fill_tags()
instead

--Fixed

Change-Id: I4a2ee71a8e2d0739c9e141948b71c2ed36296e3b
2024-09-12 19:16:02 -04:00
Solomon Peachy
85652e6bd1 FS#13486 - Updated Korean Voice translation (Hoseok Seo)
Change-Id: Ic6266ef664fb158fc1ee2c5c3e67a34d429a4571
2024-09-12 10:46:39 -04:00
Solomon Peachy
7e31b73eda Multiple Translation updates
- Korean (Hoseok Seo)
 - Polish (Adam Rak)
 - Simplified Chinese ( 王吉)
 - US English (Solomon Peachy)

Change-Id: Id5fa80d1d6711cdcb93d158ff014552732168e18
2024-09-10 15:35:14 -04:00
Timothée Jaussoin
6b67f0fd3d Complete the french translation for the main menus and settings
Change-Id: I943b610a49a12e7d98d226a64d1284b96ae5e549
2024-09-10 10:08:56 -04:00
William Wilgus
8b754ce591 tagtree add crc check so we can reuse already loaded entries
If you have a lot of tracks loaded in a database view and play a
track it builds a playlist and puts you into the wps

if you stop playback and exit the WPS you are immediately
loading entries that were just loaded

if you return to the database again reload data thats probably
still there

this patch gets a crc of the data and if it matches reuses it in
the tagtree rather than reloading it

Change-Id: Ice3aba7569f19afdd1627ba18c2dc781f98cbf93
2024-09-10 03:49:21 -04:00
Paul Sauro
f7db73097a Playlist viewer: Add new options to allow formatting using tags
Offer new options to show elegantly your entries in any playlist/dynamic playlist viewer. This is especially important if you dual boot an iPod with Stock OS and want to sync with iTunes; with this very popular setup, file names are obfuscated which results in any Rockbox playlist viewer difficult to enjoy, and it was a long standing issue reported by several Rockbox users over the years. The only way to show the title was to open a contextual menu on each song to get infos about the selected song, which is a very long and anti-ergonomic process to understand what is on your current playlist/randomized playlist. The idea of this patch is to provide new alternatives that the user can select. I personally selected the Title & Album view which provides excellent readability.

This patch was built with performance in mind using lazy loading to load one by one the tags then cache a string and use the little cache as much as possible to make scrolling in the same area as smooth as possible. Performance remains very acceptable even on an iPod 4G with its original hard drive. Using a real compact flash with my iPod Mini 2G reduces the latency even more.

Those new options are disabled by default because they impact noticeably the scrolling performance and are less relevant if your files are decently properly named.

Unfortunately, the search feature in a playlist will need to continue to use the raw filename because reading the tags for a whole playlist is a performance disaster. This works decently while viewing just because I made a code that load those one by one as much as possible.

I focused also on testing that the opening of the playlist viewer UI remained fast, and loading one by one with lazy loading allows to get very little overhead in this regard.

Change-Id: I00d9c802e29f8372447813b035bbae207a016467
2024-09-09 18:21:38 -04:00
Solomon Peachy
1f1b3bce86 FS#13480: Updated Russian Translation (Dimitry Prozorov)
Change-Id: I6f35d6b596c580e22346b806b2f8fc987a85d219
2024-09-08 14:31:56 -04:00
Solomon Peachy
868631e7d1 Update US English "translation"
Change-Id: I8c5213fdec3cec418179920c00ab3766d6249fd7
2024-09-08 14:31:56 -04:00
Solomon Peachy
37ca92d276 lua: button_helper needs $(EXTRA_DEFINES) on the host build side
Change-Id: I526f2deec4e4f9b8dbf00015c2c9a76f738a6248
2024-09-08 12:57:22 -04:00
Solomon Peachy
83890c249c FS#13482 - Corrected italian translation (Alessio Lenzi)
Change-Id: Ibd13cdf68aca4d72865e8f75adfcdcc13753eb0d
2024-09-08 12:32:21 -04:00
William Wilgus
a86e2b5c6e Tagtree selective random playlist -- rewrite
this is a bit cleaner without so much ram (or code) used

Credit to goes to Paul Sauro (OlsroFR) as this was his idea

if available space exists in the pluginbuf it uses fisher yates
shuffle to get good probability
and falls back to random permutation if not

Change-Id: I413078a48314ce4c6f3722c78e0858a407b7b46e
2024-09-08 12:09:04 -04:00
William Wilgus
55e1a78cf8 Reworks to the shuffle system
spread remaining songs amongst segments
bit of code clean-up

Change-Id: I198b54978eb9d111e060bb9aca3d71c348cad7c9
2024-09-04 10:58:24 -04:00
William Wilgus
34e54b33f7 codestyle changes on g5911
Change-Id: I8e3b172686fe78d52a8b407193479d3af36ee536
2024-09-04 10:58:24 -04:00
Solomon Peachy
87e9ca2d3a FS#13481: Updated Simplified Chinese translation (王吉)
Change-Id: I3e6022be2f89e85424a9ead3a3159d7043dc0fcc
2024-09-04 08:50:15 -04:00
Solomon Peachy
142003328d Translation updates:
* English-US (Solomon Peachy)
     * Italian (Alessio Lenzi)
     * Korean (Hoseok Seo)
     * Polish (Adam Rak)

Change-Id: I9c936468e1b96cb8496274076b542f1625d6ae21
2024-09-03 11:21:30 -04:00
William Wilgus
a2cc7546d8 Add DeviceData to bootloaders
same vein as bootdata but for devices that need to pass info back to a
running firmware

Change-Id: I0cdcdc0475804dfbbee415ab487104ae8fc8ac69
2024-09-02 13:29:43 -04:00
Paul Sauro
c16dbbfd1f Reworks to the shuffle system to improve performance and allow fast shuffling from a big library (but this work for all database views)
This improvement brings a huge performance improvement to start a random mix of your library. Previously, the only way to do this was to increase the size of a playlist with absurd sizes number. Now it will respect the limitation but will insert random songs from the current view.

Database: Add true random songs in playlist if it is gonna exceed its maximum capacity

More context is available here : https://www.reddit.com/r/rockbox/comments/1ez0mq4/i_developped_true_full_library_shuffle_for/

Also :
- Improved layout in the DB browser
- New default max playlists capacity is now 2000 on old PortalPlayer targets to give a better user experience and not having to wait dozens of seconds while creating a playlist
- "Show insert shuffled" option is now true by default
- Add a new shortcut to play all songs shuffled in the DB browser
- Now the feature is fully optional and enabled only on targets that have more than 2MB of RAM
- Add entries about this feature in the manual to explain it to the users
Change-Id: I1aebaf7ebcff2bf907080f1861027d530619097c

Change-Id: I3354923b148eeef1975171990e814a1a505d1df0
2024-08-31 10:44:20 -04:00
Solomon Peachy
f6e8c20188 FS#13475: Updated Polish translation (Adam Rak)
Change-Id: I0d06661492c9c174c354974816c115f90d8da92a
2024-08-30 08:33:20 -04:00