Setting the last_volume_change time was moved here in
commit 2e08b0f82e ("sound: update global volume state
in sound_set_volume()"); however this also triggers the
%mv tag on boot, as if the user was actively changing
the volume.
Move the last_volume_change update back to the original
call sites to fix this.
Change-Id: I895112cea4315f194f67c27839f1082d67c1ffa9
Instead of calling sound_set_volume() and then manually
setting global_status.volume to match, update the global
volume state directly in sound_set_volume(). This makes
things a bit simpler and less error-prone.
Change-Id: I4db4d60ae1a72bd051ef49c90b1ae7f5ba59e535
A "feature target" string must come before the device targets,
otherwise the real target string may be overwritten by the
feature string (happened with CreativeZEN button description
in the time screen).
Change-Id: I75b7441d4dc97b215cc26b42d3af3943fce32e20
When matching the target id in a phrase, if there is more than one match
we always use the final one. This allows us to easily specify a
default/wildcard entry that gets overridden by a target-specific one.
The list of targets was sorted alphabetically to ensure consistent ordering
from one run of the tooling to the next.
However, if a phrase contained both device-specific phrases as well as a
generic "feature" fallback, alphabetical sorting may screw things up, as
the "feature default" was no longer at the top of the list. This is
known to be an issue for LANG_TIME_SET_BUTTON and LANG_TIME_REVERT, but
may affect other phrases as well.
(To be blunt, we shouldn't be mixing feature and device-specific targets
in this context. The "feature default" should be removed in favor of
target-specific entries, but in this specific case it looks to be a
real PITA due to incomplete keymaps)
Consequently, work around this by sorting the target list within each phrase
based on the ordering in the master (ie English) language file.
Change-Id: Id32439c179a98663f414530fb36012f9b217c1b6
Basically use proper register names instead of magic values.
PP5002-based ipods (ie ipod1g-3g) use UART1 to drive the piezo vs
PWM of the newer models.
Change-Id: Ia333717a825ac6a0ebf43850fc31fca34178dd88
Notably, this enables "Group".
This also includes some changes to the Rockbox frontend:
- Removes extraneous underline from Extensive Help text.
- Implements a workaround for an upstream breaking change that removes
the BLITTER_FROMSAVED flag. We depend on this for mouse mode. This
is apparently the only place this flag was ever used. Note that I've
hardcoded an arbitrary negative value for BLITTER_FROMSAVED instead
of -1, for the reason Ben Harris mentioned in his commit removing it
from the upstream source tree.
- Adds an implicit clip() to the game region when drawing a
puzzle. This fixes a bug in Untangle where dragging a point off
screen leads to ugly lines outside the play area.
- Implements "Quick Help" for unfinished plugins (but not "Extensive
Help").
- Documents the need to disable unfinished plugins in resync.sh (weak
symbols on win32).
Change-Id: Ic318a5db4b15acb437a3f951fbc9b7919c6fa652
Dropping this after some failed attempts to work around musl dlclose implementation, fortunately there's a native port.
Change-Id: I17550df81494c6e67ddab21d44fe1287ccfa6156
This reverts commit 5323c49fe6.
This caused build failures on two of the three affected targets. The intent
of the delted code was to force thumb on unless it had been explicitly
disabled. Due to extreme space constraints those targets _need_ to
be built in thumb mode.
asm volatile (
"mov %[t0], %[out], asr #11 \n"
"mul %[out], %[t0], %[envx] \n"
: [out]"+r"(output), [t0]"=&r"(t0)
: [envx]"r"((int) voice->envx));
This is resulting in "Rd and Rm should be different in mul" error,
because the compiler is putting [out] and [t0] into the same
register.
After some poking there doesn't appear to be a sane way to change
the constraints, so just disable it for now.
Change-Id: I7827713c8aadb27f0bf4a6f4a3e1d910c6193686
ata-creativezen looks like a legit memory-trashing bug, the rtc fixes
are bitwise inversion of a bool, and the remaining are just unused
static variables.
Change-Id: I1a818d4839cd3a54ca6e85f26feb743a4a9d29dc
Therefore, turn on MAX_VARIABLE_LOG_SECTOR so we can support 512B and 4K
sector sizes. Additionally, correct the interpretation of identify info
word 106 in CE-ATA mode.
Change-Id: I24dc7dd4a8617fcb60ed87c0c1be98d00dbdfa30
Unless you've modded the device with modern CF or mSATA storage, it's
not likely to achieve anything. the original hard drives (supposedly)
lack SMART support, and none of the SD adapters bother to emulate it.
Change-Id: Id3cbe717c64947faf4b23d8c84a04b822cfb35da
There are numerous sub-commands, this makes it possible to call the others.
Also in this patch is the ability for the "default" ATA driver to
query smart data too
Change-Id: Ie3aaf9e0b2d7a5d25d09dea34e4f10ee29047e1b
This is the first step towards enabling this feature for all ATA
devices.
Only the ipod6g supports it out of the box with its stock storage device
but with the prevalence of flash/ssd mods of one sort or another, this
really should be determined at runtime.
Change-Id: Ie35d97fd857bec8213cd0a2ad80695e8bb04a2d6
This is an unofficial command that many USB<->ATA chipsets support,
allowing direct passthrough of ATA commands to the device.
We don't pass things through as-is; instead we only intercept and handle
requests for IDENFITY INFO and SMART. Everything else will return an
error.
Change-Id: I3bbb76990e5f6f0512f6eb42825fa505475b2ecd
(From 4MB->2MB and 8MB->2MB, respectively)
This is a hosted platform with a decent amount of free RAM; however
plugins and codecs are dlopen() which doesn't count against those
buffers. Furthermore, the rgnano uses musl libc which does NOT
implement dlclose() so plugins, codecs, etc stick around in RAM
indefinitely even if they are never used again.
By shrinking these buffers we free up a bit more headroom for dlopen()
to leak, and for the host OS to provide disk caches and whatnot.
Change-Id: Ie657bd3b9fc8bd2a1f4bbc07debe3b10538c41c3
Shrink audio buffer from ~256MB to ~192MB. Increase plugin buffer size
to 2MB, not that it should matter given how much extra RAM this platform has.
This leaves plenty of room for the base OS to do what it needs to do.
Change-Id: I59ca235b9cf80cf86d406e4a144fee7d7784ed5d
Hosted platforms use dlopen() for plugin loading, and hibylinux is
relatively RAM constrained, so shrink this will free up more memory to
the OS for plugins to use.
Change-Id: I6b7cb17b964eaf5afc4958db242dfe4b82178e2e
This represents a 256K increase from the former (MEMORYSIZE-0.75), and
is necessary due to the growth in our binary sizes over the past decade
or so.
It is debatable if this is enough given that our actual memory
usage is approximately (MEMORYSIZE+3) megabytes (plus runtime OS
overhead) for the typical hosted build, but giving the host OS a bit
more breathing room is warranted.
Change-Id: I53e044585a32efd50a85e68d64fd21921eda01a3
We used 16-bit variables to store the 'character code' everywhere but
this won't let us represent anything beyond U+FFFF.
This patch changes those variables to a custom type that can be 32 or 16
bits depending on the build, and adjusts numerous internal APIs and
datastructures to match. This includes:
* utf8decode() and friends
* font manipulation, caching, rendering, and generation
* on-screen keyboard
* FAT filesystem (parsing and generating utf16 LFNs)
* WIN32 simulator platform code
Note that this patch doesn't _enable_ >16bit unicode support; a followup
patch will turn that on for appropriate targets.
Appears to work on:
* hosted linux, native, linux simulator in both 16/32-bit modes.
Needs testing on:
* windows and macos simulator (16bit+32bit)
Change-Id: Iba111b27d2433019b6bff937cf1ebd2c4353a0e8