1
0
Fork 0
forked from len0rd/rockbox
Commit graph

28 commits

Author SHA1 Message Date
Christian Soffke
498d581ca6 voice: fix regression 39f8685 (already voiced)
Some of the splashf messages that were converted
to support voicing in commit 39f8685 already had
a voice equivalent that was more appropriate,
since it also voiced parameters, and included
pauses between announcements where necessary.

Change-Id: Ia91a01c82acd6148afb4afadd64b1105802aea36
2025-05-28 11:18:29 +02:00
Solomon Peachy
39f86858c4 voice: Convert a pile of splashf() messages to be voiced
Basically, this just replaces str(STRID) with ID2P(STRID).

The voiced version of these strings cannot not have any format
specifiers (enforced by the language tooling) and are instead more
generic.

As many of these are error conditions, it is doubly important for
them to be voiced in some way.

There are some places in the code that perform their own voicing
for splash messages (eg the shutdown code); those are left alone.

Change-Id: I7d51af351e8fa5c4beee42fbfc02719f1d6591b8
2025-05-17 17:33:46 -04:00
Solomon Peachy
54c5ef60df mikmod: Decouple the info scrolling from volume setting
This way volume setting will always follow UP/DN conventions
but scrolling is reversed as needed.

Change-Id: I3fc72c29d78fab46bdf19947a88c02e039bfad51
2025-03-18 11:02:55 -04:00
Solomon Peachy
1dc8a5a8ce Revert "mikmod: Invert scrolling on everything that's not an ipod"
It fixes scrolling but inverts the volume, which is worse.

This reverts commit 003da4d223.
2025-03-18 10:58:26 -04:00
Solomon Peachy
003da4d223 mikmod: Invert scrolling on everything that's not an ipod
mikmod uses WPS_VOLUP and WPS_VOLDOWN to scroll down and up
respectively, which works for the ipod clickwheel, but results in
inverted scrolling for everyone else.  Correct this for all non-ipods
and correct the manul (which actually didn't report this either)

Change-Id: I5a84512dfbf068ca5c4206f4362185d4d7e5c9fc
2025-03-11 08:38:38 -04:00
William Wilgus
7100090f99 Remove NVRAM infavor of a separate cfg file
remove nvram and use the existing settings framework for it

add a crc check to the user_settings data to see if we need to save
the user setting file or if we can just save the status file (resume.cfg)

move volume to the system_status struct so we don't write the whole settings file
over volume changes

allow user to still export volume with save sound settings

allow the user to also export pitch and speed

name the file .resume.cfg

Rename all the SYSTEM_STATUS save file variables to TLAs to save space and
discourage tinkering

Cleanup DEBUG_AVAIL_SETTINGS output

when saving user_settings it calls status_save as well this cause the resume
file to be written twice. instead remove the callback for status_save
when setting_save is called

remove header text when saving .resume.cfg

convert status_save() to status_save(bool force)
add SYSTEM_STATUS_UPDATE_TICKS

for ATA device set this to 5 minutes
since we arlready wait for the disk to be up before saving
we don't want to miss our window

for all other every 15 minutes

that way if the battery is too low by the time shutdown comes around you
don't lose much progress

Change-Id: I27214ffd6e5d5494ee5ca83b14f04a41ba426ad7
2025-01-21 00:04:32 -05:00
Solomon Peachy
af7ed73f31 FS#13539: Resync mikmod plugin with upstream
Brings it up to libmikmod 3.3.12, relased 2024-12-31

Also fix a segfault that only happened on simulators when using
non-default samplerates.

Change-Id: I2ade2d72a00edab5395328fe76a88a88516aac72
2025-01-03 11:34:24 -05:00
Solomon Peachy
c3d06d21df mikmod: Properly render with fonts larger than 6x8 pixels.
Change-Id: Ib3f8c2cf84e7b6565bb8a00b74e8a662b9980824
2024-11-06 20:18:45 -05:00
Solomon Peachy
10abb34e54 mikmod: Use current theme fonts, not the cut-down SYSFONT
Change-Id: Ia5fff04b22fbad1081fcca6c66bbb7ea7f82fef8
2024-11-06 15:18:33 -05:00
Solomon Peachy
53a43522a3 mikmod: Fix null pointer dereference in mikmod plugin
While playing, the user can switch between
status/samples/instruments/comments screens.  The instrument names are
blindly passed to printf, which will lead to a null pointer dereference if
the instrument name is NULL.

...Which happens with some .IT modules that I have.

This should arguably be fixed in the printf implementation, but we still
shouldn't be passing in NULLs as string arguments!

Change-Id: I2899e2f7e10565c251e495752b3ef1bbccea82c7
2024-06-20 15:16:22 -04:00
Solomon Peachy
ec23260fd1 mikmod: Settings names should _NOT_ be i18n'd.
Regression was introduced back in 2019 in 2ebb8da275

Change-Id: I035e295b4e17e1f834059d1c6466562000749e54
2024-06-11 10:13:40 -04:00
Solomon Peachy
46ec07e4be mikmod: partial revert of previous commit.
The strings in the struct configdata[] are only used in the settings
file, and not displayed.  Therefore there is no need to translate them.

Change-Id: Id9e03c4b0454412b319ad678e6f57a46e1da0f6e
2024-06-07 18:10:48 -04:00
Solomon Peachy
20f50bbca3 plugins: mikmod and chessbox weren't fully translated
This unfortunately required adding four more strings.

Change-Id: I656c3c4902de5f841ea742549b3d122463e399a8
2024-06-07 17:47:17 -04:00
Solomon Peachy
8cc3266b2a Settings: Rename INT/BOOL setting type enum to RB_INT/RB_BOOL
....Because INT and BOOL are already defined in mingw32.

Change-Id: I28ab8189c00002c8f68bc9d0c23d2ae78d9e33d0
2023-09-22 10:00:46 -04:00
Aidan MacDonald
5b27e2255a Add perceptual volume adjustment
The perceived loudness change of a change in volume depends
on the listening volume: at high volumes a 1 dB increment is
noticeable, but at low volumes a larger increment is needed
to get a comparable change in loudness.

Perceptual volume adjustment accounts for this fact, and
divides the hardware volume range into a number of steps.
Each step changes the dB volume by a variable amount, with
most of the steps concentrated at higher volumes. This
makes it possible to sweep over the entire hardware volume
range quickly, without losing the ability to finely adjust
the volume at normal listening levels.

Use "Volume Adjustment Mode" in the system settings menu
to select perceptual volume mode. The number of steps used
is controlled by "Number of Volume Steps". (Number of steps
has no effect in direct adjustment mode.)

It's still possible to set a specific dB volume level from
the sound settings menu when perceptual volume is enabled,
and perceptual volume does not affect the volume displayed
by themes.

Change-Id: I6f91fd3f7c5e2d323a914e47b5653033e92b4b3b
2023-01-22 21:19:57 +00:00
Solomon Peachy
566d836ac6 mikmod: Uninitialized variable used in a control flow decision
Change-Id: I6df903399361f1df7ca0f766fff4062a984e2ba8
2021-08-05 13:44:33 +00:00
Solomon Peachy
cb9b5d3b50 Add 192 and 176KHz to mikmod and test_sampr plugins
Change-Id: I34e835ae0ae39da1ce50153eee86c14747705c4e
2020-09-30 22:52:56 -04:00
Solomon Peachy
b4e70422a3 mikmod: Upgrade mikmod core from v3.2.0 to v3.3.11
* Get rid of the non-functional GT2 loader
 * Add the UMX loader
 * Add HQ mixer routines (and make it configurable)
 * Allow samplerate to be configured at run/playtime
 * Support >64KHz mixing/playback
 * Correctly restore non-boost status

(The diff to upstream is much smaller now too!)

Change-Id: Iaa4ac901ba9cd4123bb225656976e78271353a72
2020-08-11 03:29:12 +00:00
Solomon Peachy
2ebb8da275 Mikmod plugin improvements
- Improved sound quality (use 44.1KHz)
 - Conventional mixer is now used
 - Playback is performed in a separate thread
 - Speech feedback in menus

Patch by Igor Poretsky

Change-Id: I13baa224cefd67aefe6d62b988971bfbd421757d
2019-08-07 09:48:15 -04:00
Bertrik Sikken
c26ab37aca mikmod plugin: make functions static when possible
Change-Id: Ic0102071318c55c19952029be6998ecf5f33eb98
2012-04-14 17:31:14 +02:00
Michael Sevakis
286a4c5caa Revise the PCM callback system after adding multichannel audio.
Additional status callback is added to pcm_play/rec_data instead of
using a special function to set it. Status includes DMA error
reporting to the status callback. Playback and recording callback
become more alike except playback uses "const void **addr" (because
the data should not be altered) and recording  uses "void **addr".
"const" is put in place throughout where appropriate.

Most changes are fairly trivial. One that should be checked in
particular because it isn't so much is telechips, if anyone cares to
bother. PP5002 is not so trivial either but that tested as working.

Change-Id: I4928d69b3b3be7fb93e259f81635232df9bd1df2
Reviewed-on: http://gerrit.rockbox.org/166
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2012-03-03 07:23:38 +01:00
Jonathan Gordon
aa0f4a4bbe FS#12273 - use buflib for font storage. thanks to the testers :)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30589 a1c6a512-1295-4272-9138-f99709370657
2011-09-24 13:19:34 +00:00
Andree Buschmann
6cb5ec1bfe Remove several 'set but not used' GCC 4.6.1 warnings from MikMod.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30426 a1c6a512-1295-4272-9138-f99709370657
2011-09-03 23:54:43 +00:00
Andree Buschmann
e2186479d5 FS#12259: Remove '-w' compiler option for MikMod. Resolve all yet unreported compiler warnings and fix a bug in load_gt2.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30424 a1c6a512-1295-4272-9138-f99709370657
2011-09-03 23:17:42 +00:00
Thomas Martitz
baa070cca6 GSoC/Buflib: Enable compaction in buflib.
This enables the ability to allocate (and free) memory dynamically
without fragmentation, through compaction. This means allocations can move
and fragmentation be reduced. Most changes are preparing Rockbox for this,
which many times means adding a move callback which can temporarily disable
movement when the corresponding code is in a critical section.

For now, the audio buffer allocation has a central role, because it's the one
having allocated most. This buffer is able to shrink itself, for which it
needs to stop playback for a very short moment. For this,
audio_buffer_available() returns the size of the audio buffer which can
possibly be used by other allocations because the audio buffer can shrink.

lastfm scrobbling and timestretch can now be toggled at runtime without
requiring a reboot.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30381 a1c6a512-1295-4272-9138-f99709370657
2011-08-30 14:01:45 +00:00
Thomas Martitz
98096970e0 Cleanup tree.c cache handling a bit.
* Rename stuff to not re-use the term dircache
 * Move cache to own struct
 * Encapsulate retrieving entries a bit

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30242 a1c6a512-1295-4272-9138-f99709370657
2011-08-03 09:49:25 +00:00
Michael Sevakis
b15aa47c56 All kernel objects in code shared amongs targets (core, plugins, codecs) should be declared SHAREDBSS_ATTR as any core could potentially touch them even though they seem only to involve threads on one core. The exception is target code for particular CPUs where proper allocation is fixed. playlist.c was a little odd too-- use one mutex for the current playlist and a separate one for created playlists (still pondering the necessity of more than one).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29305 a1c6a512-1295-4272-9138-f99709370657
2011-02-14 11:27:45 +00:00
Frank Gevaerts
26f2bfde03 Add MikMod plugin, ported by Jason Yu, with some minor work by Craig Mann and William Peters (FS#8806)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28810 a1c6a512-1295-4272-9138-f99709370657
2010-12-12 15:03:30 +00:00