1
0
Fork 0
forked from len0rd/rockbox
Commit graph

36988 commits

Author SHA1 Message Date
Solomon Peachy
1922ac1aac Temporary fix for build warnings under GCC 14.0.1
...Both appear to be false positives, and will hopefully be resolved
in a later GCC point release.  I will periodically revisit this.

Change-Id: I7388932f5be052d39dd8c4195b438bf275dd72d9
2024-04-25 19:19:38 -04:00
Solomon Peachy
04181bb832 Fix sim build error with GCC14.
This is a (thankfully harmless) long-standing callback prototype
mismatch; I'm surprised this wasn't caught before!

Change-Id: Idb3ebc6d7d4fd64841d0a10981c4bf1b10d192c7
2024-04-25 13:32:47 -04:00
Solomon Peachy
c718724a70 Update english-us "translation"
Change-Id: Ia672dab9a1dcd1d57e52144fa43eacc7264803ed
2024-04-25 13:00:05 -04:00
Franklin Wei
6efd7f8f3e FS#8647: Amaze - 3D maze game plugin
- update to build against latest Git
- cleanup (whitespace, indentation)
- fixed old PLA handling
- update indentation/curly brace style
- improve load/save mechanism
- enable marking ground with "select" button
- add compass view
- improve display on 1-bit-targets (floor pattern)
- graphics update: add 3x3 and 5x5 tiles, rework 7x7 and 9x9 tiles,
  load tiles dependant of screen size
- fix: on some targets (Fuze+) division by 0 could occur.
  Fix by calculating the exact view depth on all targets.
- fix: duplicate error checks when saving prefs
- Fully translate it
- Add a simple manual entry (including screenshots for some platforms)

Change-Id: Ic84d98650c1152ab0ad268b51bd060f714ace288
2024-04-24 17:37:58 -04:00
Solomon Peachy
2dbf26f11a FS13414: Updated Polish translation (Adam Rak)
Change-Id: I0d3b208e6ca6f8dc982bcb0e600903674815f2cd
2024-04-24 09:19:05 -04:00
Christian Soffke
b501788629 manual: update browsing, playlists, bookmarking, ipod keymap
Change-Id: I7f3fd66fc973d3ed8d41cf24fba6aa4a44256354
2024-04-24 05:50:28 +02:00
Christian Soffke
e8816552f6 Offer choice of default browsers
The database or playlist catalogue can now be set
as the browser that is launched when pressing
ACTION_WPS_BROWSE on the WPS, unless another browser
has more recently been opened.

Previously you'd always have to exit the File Browser
first, after the player had been restarted, which is
annoying for users who prefer the database.

The playlist catalogue has become part of the MRU
browser list, so pressing ACTION_WPS_BROWSE after
selecting a track from a playlist in the playlist
catalogue will now take you back there.

Settings menus have been slightly restructured.

- Eliminated "Set WPS Context Plugin" and "Hotkey" menus
  from the General menu

- Added "What's Playing Screen" menu in Settings-General
  with option for setting default browser. The "WPS Hotkey"
  and "WPS Context Plugin" menu options have been moved to
  this menu.

- "File Browser Hotkey" is now part of the File View menu,
  which means it is accessible from the browser's context
  menu as well.

Overview of resulting menu structure in Settings->General:

What's Playing Screen
    Default Browser
    WPS Hotkey
    Set WPS Context Plugin

File View
    (...)
    File Browser Hotkey

Change-Id: Iaa3619a791c20ce3562a1efd2cf90c72933b729a
2024-04-24 05:05:42 +02:00
Christian Soffke
3ce3b102dd Provide "quick" option for loading database into RAM
The directory cache and the database's Load to RAM feature
each result in a much better user experience.

But, when both features are enabled at the same time, it
can take a very long time on older players - easily several
minutes for larger libraries - until all of the database's
dircache references have been updated.

Include a 'Quick' option that causes the database to ignore
dircache references which can *significantly* reduce disk
activity after booting.

Change-Id: I25ae779c97d03885b06d5a28d8be55c0d05692a5
2024-04-23 23:02:47 -04:00
Solomon Peachy
4a52147122 configure: strip '--voice' from the 'make reconf' option list to avoid dupes
Change-Id: I09ade245023d51a7553ca6149c9c3effd2b6b9d2
2024-04-23 22:12:25 -04:00
Solomon Peachy
0909c4fe3a FS#13413: Updated Polish translation (Adam Rak)
Change-Id: I64e55c5fff9cf253a0ed1a1c1b8e0934f3f14187
2024-04-23 12:22:21 -04:00
Igor B. Poretsky
a5d75a5743 Russian translations update
Change-Id: I97e92d38f391270f79380a3ec23e3232e91b1ffe
2024-04-23 11:10:57 -04:00
Solomon Peachy
1a60255633 Remove obsolute 'talkclips.py' script, voice.pl does it all and more
Change-Id: Ic6c63f77d2cee1ababd9b5356b48f115cf93e1b1
2024-04-23 11:09:31 -04:00
Christian Soffke
446496c221 Have Repeat Shuffle turn on Shuffle
When "Repeat Shuffle" is enabled, it may make sense
to visibly turn on the Shuffle setting once a playlist
ends and starts from the beginning again.

This seems to fix a few issues:

- After (an unmodified) playlist has been shuffled,
bookmarks now behave correctly in terms of restoring
the playlist's shuffled state and using the correct resume
index. This wasn't the case before. The alternative may be
to set the playlist as modified once it is shuffled, to
prevent creation of bookmarks from that point on.

- Lets you return to the un-shuffled state of the playlist at
any point

- Icon makes it easy to tell if the "unmodified" playlist has
been shuffled already, or not, which wasn't obvious before.

Change-Id: I41af04b041fdc7774c9d9267aaf983ec9d402e13
2024-04-23 05:24:48 +02:00
Solomon Peachy
2905ba2f72 ipod6g: ata: Don't power down devices that can't handle it
...by checking to see if the mandatory ATA PM feature flag is set

The common CF->SD adapters don't report this.

TODO:  When PM is not available, issue a CMD_FLUSH[_EXT] instead?

Change-Id: If9200bd3c03a984376203aeea4fbe11e230a9b4d
2024-04-22 15:47:10 -04:00
Solomon Peachy
4b423e21f6 pp5020: Use DMA Writes by default for SSDs
It is likely that these things accept data far faster than the spinning
rust drives ever would, and while there is a question about PIO timings,
DMA timings seem to be solid.

Change-Id: I70644e0ad85a6ed429c8704e66ca7af91d78765c
2024-04-22 15:46:50 -04:00
Solomon Peachy
886060475e ata: Heavily rework sleep and poweroff logic
* Use of ata_disk_can_poweroff() was inverted, resulting in SATA SSDs
   getting powered off but leaving _everything_ else on, including spinning
   rust!
 * Replace the can_poweroff() heuristic with a test for the mandatory
   ATA power mgmt feature flag. Notably, the CF->SD adapters don't claim
   to support this!
 * Eliminate duplicated tests in sleep code
 * Wrap all poweroff-related code with HAVE_ATA_POWER_OFF
 * Don't ever use SLEEP command, only STANDBY_IMMEDIATE
 * Gate call to STANDBY_IMMEDIATE behind a can_poweroff() test
 * Prefer FLUSH_CACHE_EXT to FLUSH_CACHE where available.
 * Improve SSD detection heuristics to any of these:
   * Explicltly identifies as SSD (covers newer CF and SATA)
   * TRIM support
   * CFA compliant AND (CF level 0 OR high speed support)
 * Report SSD detection in debug menu

Change-Id: I7fcb83b6d6eabddc11c64326a573b08ab85412b5
2024-04-22 15:46:30 -04:00
Aidan MacDonald
6cbcde13b9 skin engine: Fix bug with touch region labeling
Auto-created regions associated with a progress bar did not have
a label which could result in an out of bounds read when looking
up touch regions by label. Fix by initializing the label to NULL.

Change-Id: Ic12d697a6a5a45dad977f307471b91db9e607bd5
2024-04-21 20:38:25 -04:00
Aidan MacDonald
591a83a089 plugins: multiboot_select: Support touchscreen pointing mode
The plugin is menu based, so it should respect the global setting.

Change-Id: Ibfca63c919baa508d1253328c49c6b18f9e815f6
2024-04-21 20:38:11 -04:00
Aidan MacDonald
306caa2754 touchscreen: Fix menu callbacks in touchscreen pointing mode
Touchscreen events get translated into standard actions only after
the call to gui_synclist_do_button(). The menu callback doesn't get
a chance to see the real action if it is called before do_button.

Moving the do_button call up could potentially break callbacks that
want to intercept actions before they hit the list code. Therefore
we need to manually handle touch events first, and pass the action
to do_button afterward.

Fixes a bug where exiting a plugin in touchscreen point mode always
goes to the games list because the callback wasn't invoked properly.

Change-Id: I3b74a16d68a111935fba2157c15fa188f15446e9
2024-04-21 20:37:47 -04:00
Aidan MacDonald
fd4a10719d apps: Move action_cur_t and action_last_t to action.c
These types are not needed outside action.c.

Change-Id: I71d25edf30811022fba32a548906755cf46cd694
2024-04-21 20:37:26 -04:00
Solomon Peachy
7b1dd6b60a RFC: Extend skin engine to handle EQ settings
EQ settings are actually an array of 3 ints.  I added a skin parameter
token that allows specifying which array element to use.

So instead of this now-incorrect syntax:

   %St(0,0,-,-,image,eqbar.bmp,vertical,setting,eq band 1 gain)

You would use:

   %St(0,0,-,-,image,eqbar.bmp,vertical,soffset,2,setting,eq peak filter 1)

(the 'gain' is the third element in the eq setting array, thus soffset 2)

Change-Id: Ibda712ab87759efb45420566c967742bcefb513b
2024-04-21 18:27:11 -04:00
Solomon Peachy
e8a51569ad voice: Add support for the Piper TTS engine
https://github.com/rhasspy/piper

High quality, offline, neural-network-based, with good language coverage

Note that you have to manually download the piper voice models, and set
PIPER_MODEL_DIR appropriately.  The configure script will let you choose
from the available models and remember your choices.

Change-Id: I8eba9fcf78b51b01b89491539aac3e423cc42f16
2024-04-21 18:08:47 -04:00
Solomon Peachy
418a5acea0 translations: Fix some broken strings in the Turkish translation
They had trailing tabs which broke the piper TTS engine

Change-Id: Ic579f41915e9d1dcd9daa124559c6cc213847151
2024-04-21 18:07:50 -04:00
Solomon Peachy
06cf2f0da5 voice: touch re-used voice pool files so we know they're used.
Change-Id: I13779845884f770aabb921543a9fa589fc89294e
2024-04-21 18:07:23 -04:00
Christian Soffke
ea5ce8034b Replace "Reload After Saving" with option to remove queued tracks
The "Reload After Saving" setting was added in
g3347 (4f83e66) to solve FS#13287, by allowing
you to bookmark a modified playlist after saving,
without having to manually reload it first.

Since the rewrite of playlist_save in g5192
(90e3571), a modified playlist doesn't have to be
reloaded anymore in order to be bookmarked after
it's been saved, unless it contains queued tracks.

To cover the remaining use cases of the previously
available option, Rockbox will now offer to remove
any queued tracks from a playlist when saving it.

Change-Id: I2d6f12bcce14d8ff41a4d921ce84d628774103ac
2024-04-21 18:28:16 +02:00
Christian Soffke
e5c65a0039 ft_assemble_path: fix prematurely cut-off path
bug report at https://forums.rockbox.org/index.php/topic,54842.msg

Change-Id: I423c28e277084502b7aaff7c3a8e3b6ba37f54e8
2024-04-20 15:41:21 +02:00
William Wilgus
123858287b fix red rli_img
devices > 16 bit depth use a struct of values for the pixels
this needs converted to use by functions expecting a single integer as
a pixel value

Change-Id: I540d667239bc581e1d31dfe1e07c51ba10803ddf
2024-04-18 13:40:01 -04:00
William Wilgus
a6570b7d37 lua use lcd_drawline to draw lines inside rliimages
rewrite draw_text to use new viewport buffer

set_viewport now accepts rliimage to allowe interfacing with rb. functions

fix long standing 2-bit bug with text drawing in lua
fix 2-bit img
saving bug (i'm guessing just a one off, just enabled clipping)

fix font_getstringsize bug

fix shape of numbers draw_num.lua also add auto centering

add page scrolling to printtable

add a new demo script 'stars'

Change-Id: I866905cee82ee89ebc0eb020a56a7ecdb101bf5e
2024-04-18 13:11:51 -04:00
Solomon Peachy
7f1b49693c translations: Update US English "translation"
Change-Id: I1d91ebac7f878b68759afd408b8a90cf353cf782
2024-04-18 12:25:50 -04:00
Solomon Peachy
ac9003546f release: Revamp release scripts
Covers bins, voices, manuals, fonts, and source tarballs.

Only thing remaining is build-info integration

Change-Id: I3a93fd87bbeb725fc8e1b38c5787e33fa00f3f37
2024-04-17 22:10:52 -04:00
Solomon Peachy
c38aeb3fbc voice: add a 'make talkclips' target for voice builds.
This will use the configured tts engine and language to generate
the talk clips for a specified directory.

  TALKDIR=/path/to/somehere make talkclips
  TALKDIR=/path/to/somehere make talkclips-force

If 'TALKDIR' is not defined then it will error out gracefully.

Normally if a talkclip is present already it will not regenerate the file,
but 'make talkclip-force' will regenerate it anyway.

Change-Id: I62683f9e5ca395fd303ac6029096c20da1e96d01
2024-04-17 14:55:17 -04:00
Solomon Peachy
ebd952da2f voice: minor refactoring in the voice gen script
Change-Id: If0082ca2cb89e36fd5a1c4664cad0c594501db31
2024-04-17 11:21:32 -04:00
Solomon Peachy
613a1432d6 voice: Improvements to the talk clip generation
This covers the voiced directory and filenames

 * Don't regenerate a talk clip if one is present (?)
 * Format awareness; ie if the TTS engine generates an mp3 file,
   convert it to a wav file so we can encode it properly
 * Use a global variable for the wavtrim threshold

Change-Id: I9f441b573704bdf7675794fd0e1984446308463b
2024-04-17 09:02:20 -04:00
Solomon Peachy
39c9c350ae voice: Fix voicefile generation
I updated the scripts to use a generic '.enc' as the filename as we
haven't used true '.mp3' files for some time (and even then, only on the
Archos devices) but I missed the voicefont generation tool.

Change-Id: I450de9215664b6559058b175afc25aa874d11dcc
2024-04-17 09:01:45 -04:00
Solomon Peachy
c8dd31aab7 voice: Fix the 'gtts' voice generation backend.
* Language and dialect need to be specified separately
 * Convert the mp3 files generated by gtts into wav into rbspeex
   (Uses ffmpeg currently)

Change-Id: I6d7b9494e70a61537519221522202ea28469cc70
2024-04-16 18:37:43 -04:00
Christian Soffke
9af812c320 playlist viewer: fix track info for first track of a stopped current playlist
A playlist that hasn't finished and is resumed without starting
playback has its index set to 0 by empty_playlist_unlocked.
So ignore the index for stopped playlists.

Change-Id: I575ceacbcd2369eaa3ae4e47de7b2f7e999248f5
2024-04-16 22:56:43 +02:00
Christian Soffke
b06073f771 buffering: ensure sufficient buffer size loading bitmaps
Commits 5aa0fc3 and 32f1418 (g#4451, g#4452) changed the
amount of space that was allocated for loading bitmaps
used to display album art.

Testing revealed that the size of the JPEG decode buffer
can reach up to (38 * 1024)B in some cases.

When the limit is reached, additional space is required
by the resize_on_load function.

Change-Id: If93b45754a4f5948b6160f659182e4618e01912e
2024-04-13 16:19:48 +02:00
Christian Soffke
05b070b0b8 playlist viewer: get Info for playing track from RAM
No need to hit the disk to retrieve
metadata for the currently playing track

Change-Id: I944910adfb750d3f8fb52b8c057e98d58700cf17
2024-04-11 14:01:27 +02:00
William Wilgus
b57536db8d [BugFix] Hosted incoming directory component leading slashes #2
Fix the rest..

Change-Id: Ie551772a073cba3eb6de176cd73a59d419057183
2024-04-07 16:46:02 -04:00
William Wilgus
d1f14c7b46 [BugFix] Hosted incoming directory component leading slashes
leading slashes in directory components to path_append
makes a path with a leading slash absolute and discards
the basepath

Change-Id: I65253080c0ca4278b559894104ab25ab199a3100
2024-04-07 14:13:21 -04:00
Solomon Peachy
4e1faa032f lcd: fix yellow from accidental commit
Change-Id: I05c2676bcd5a4a0f75804af0e5367da5acd4ee55
2024-04-06 21:37:14 -04:00
Solomon Peachy
75ad7c9792 Remove duplicate 'const' declaration in percent_to_volt_charge[]
Affetcs many hosted targets; probably was a typo that was copy-pasted
everywhere else.

Change-Id: Ifbb31e7ff1fce4874fa0f3c108db59f152e2f927
2024-04-06 21:26:53 -04:00
Solomon Peachy
7b25c32388 lcd: Do not alias lcd_write_yuv420_lines_odither() to lcd_write_yuv420_lines()
Causes a warning with GCC8 as the protoypes are not the same.

Only affects targets that lack an asm-optimized version (eg mips)

Change-Id: I22e4657f3fb71ebbb915e4f290bf3670b1b87636
2024-04-06 21:26:53 -04:00
William Wilgus
76a9a524c0 skin_tokens.c get_dir() improve path detection
get_dir grabs a component of a path
it now handles
multiple slashes, no leading slashes

Change-Id: I6c4a377796652808a02b44f6da0a63b201dd8f46
2024-04-04 14:40:17 -05:00
William Wilgus
3714288f7a add bootpath to bootdata debug menu
show the full path to the currently booted firmware

Change-Id: I9c0b4335ef410a0a5132f1097a29368306497206
2024-04-03 15:57:06 -04:00
William Wilgus
8c994db247 multiboot_select plugin check volume root for valid firmware -- Try 2
I'm not sure why but on my fuze v2 I don't get the '.' nd '..'
directories back from readdir

that make removing '.' to find /.rockbox inconsistent

Instead filter out files and strcmp the incoming dirs
to BOOTDIR (.rockbox) and clear it when they match

Change-Id: Id8f3312cb3ae624dff1be21f745034c08c4ae1a7
2024-04-02 21:04:44 -04:00
William Wilgus
4a91d37613 multiboot_select plugin check volume root for valid firmware
Change-Id: I5feb4b00ae385ff8967de27682d4e4a528dc2ae5
2024-04-02 19:58:12 -04:00
William Wilgus
15fdaa3abc [Fix Red] 957920e9 lcd-bitmap-common 16-bit devices
Bootloaders need lcd_ prepended as well

Change-Id: Id95020bb0dd022fcc9693863a7824e959f994a0e
2024-04-02 19:43:58 -04:00
William Wilgus
957920e915 lcd-bitmap-common 16-bit devices remove branch in character loop
do the depth check outside of the loop
make a helper function to have same
fn signatures between
mono_bitmap_part & lcd_alpha_bitmap_part

Change-Id: I42fab535133607f937430357dab7a20fa97805a8
2024-04-02 19:28:19 -04:00
Aidan MacDonald
5641e8140a tagcache: Rename find_tag() -> tc_find_tag()
The overly-generic name "find_tag()" is part of the skin parser
library and this can cause problems depending on what's included
from headers. Unfortunately.

Change-Id: I0cb02b1203daa6ff36595ed6c6f40b5b56bd3e58
2024-04-01 18:21:37 +01:00